Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

controller_manager: publish controller timing state (ros ticket #3397) #241

Open
ahendrix opened this issue Mar 12, 2013 · 5 comments
Open

Comments

@ahendrix
Copy link
Member

At a fairly low frequency (so as to try to get all the packets through realtime_publisher), publish as an array the dt data on all cycles of each controller. The goal is to emit timing data on all cycles for all controllers, so that externals tools can analyze it.

trac data:

@ahendrix
Copy link
Member Author

[gerkey] If possible, provide some kind of frame / cycle number that can be used to correlate timing data with overrun errors from etherCAT (#3018).

@ahendrix
Copy link
Member Author

[berger] Only useful if this is reliable.

Prioritize for 1.1

@ahendrix
Copy link
Member Author

[wim] With the new rt-publishers that will be part of D-turtle, you can configure the controller manager to publish joint states at 1000 Hz. So this feature might not be needed any more.

@ahendrix
Copy link
Member Author

[gunter] I didn't think the timing information is part of the joint states or even currently computed?

When all is said and done, the controller manager is really acting like a simple realtime scheduler, coordinating the various realtime threads (controllers). As I understood the request, it was to allow the user to see the timing information of each thread. Meaning it would be great to see what times were used in which controller. [I won't even mention that the manager could then act on such information, e.g. de-prioritizing a controller that is taking too much time...]

Maybe this is best done via OROCOS integration - though I have no idea on what schedule that will occur. But I'm hesitant to believe that the rt-publisher alone provides the feature.

@ahendrix
Copy link
Member Author

[sglaser] The timing information is not currently in the joint states. Rough aggregates are thrown into the mechanism statistics, but I want access to the run time for every controller.

The current realtime publisher is unable to publish at 1kHz, but the new rosrt publisher is capable of it. That's why this feature is waiting on better realtime publishing. The controller manager already knows how much time each controller is taking; it's just having difficulty pushing it out fast enough.

In short, the new rt-publishers in rosrt make implementing this feature straightforward, but the implementation does require adding a "controller timings" topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant