-
Notifications
You must be signed in to change notification settings - Fork 15
Support for ros_control #12
Support for ros_control #12
Conversation
|
this is exciting! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
*simply
|
Great looking code, good work! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also, according to ROS style guide, there should be a space after the if
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
|
Thanks for your first review! Personally, I dislike the roscpp style (especially the braces!), I do not consider it while binge coding. |
|
Anything else that I need to change apart from the code style? |
|
I've compiled and used your new plugin just now and have some feedback. First, control latency is really bad. I'm doing some crazy stuff with MoveIt! where I command trajectories at ~30hz, so perhaps I'm not an ideal use case, but even so the latency difference is huge: That's 100x slower! I tried to disable all the service calls going on by commenting out the Other issues: it would be nice if we made the usability/setup of the plugin very similar to SetupIn In Final Thoughts Line indentations should be 2, not 4, per ROS style, throughout the code. Thanks for contributing this plugin! |
|
As far as I read the code for the Can you provide a simple test-setup? How did you measeure the times? |
|
I have a node using MoveIt! functionality and I create a control_msgs::JointTrajectory with I send that as an action through the TrajectoryExecutionInterface and I measure the delay inside the JointTrajectoryController using the code I just created a PR for an hour ago, here By the way, if you like that compiler flag latency measuring code, perhaps +1 it in that pull request. I feel like some developers under appreciate adding good debugging tools for other users to benefit from. |
|
I have implemented a test suite to analyse the performance drop (https://github.com/ipa-mdl/traj_ex_test). Now all controller manager plugins show the same performance. I have found a new bottleneck.. my notebook, ~350 Hz seem to be my limit ;) At 30 Hz I measured a latency of 0.00135252 s on average for a one-joint, one-point trajectory.
This parameter name is very confusing since
Sounds reasonable. I will add this and a setup section to the README.md :) |
|
Great, so glad you added pre-allocation! I'll test again when you tell me its ready. The parameter name change is fine with me as long as its documented - you're right, it is currently ambiguous. But perhaps @mikeferguson has a thought. |
|
I think the naming is fine -- the naming in the simple_controller_manager simply tries to imitate the pr2 version (since that was the documentation most people would initially stumble upon). +1 to merge once @davetcoleman signs off on his final testing round |
The functionality is ready now and can be tested. |
|
I have updated the documentation. I can squash it before the merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needa = needs
|
I've re-run my benchmark and the average latency is much much better - 0.00111334 seconds! Is your test suite something that should be maintained going forward for testing this component of MoveIt! ? Do you think it could be converted into a real test? Thanks for the hard work on this and sorry for my delay! |
I am not sure. It contains a lot of plugins for MoveIt! and ros_control that basically do nothing.. |
|
2 things
|
|
@davetcoleman -- we can merge this into indigo -- as this is a new plugin in a new package (thus no real API change) |
|
We still target indigo with our robots and I cannot support jade for now. To ease up the migration I can squash the PR. |
|
I just created this repo/documentation for you, let me know if you run into problems with it: |
|
Great, thanks for your efforts! |
|
fyi I added a |
|
Again: I do not develop for jade. I don't even have a jade set-up. |
|
Ah, I didn't realize the jade version of xacro was back ported to indigo, I suppose its fine then. Re: developing for jade. I understand you want to stick to indigo. I only partially switched to jade last Friday for the first time, it took about an hour. Its just that MoveIt! developers will need to start doing this since the branches are likely to diverge. |
|
Thanks! |
These plugins connect to running ros_control nodes and add handles for execution.
For the sake of flexibility I have outsource the handle creation to plugins. I added a simple implementation for the
joint_trajectory_controllertypes that uses themoveit_simple_controller_manageraction handles.That's why I had to expose its headers.
I have tested it with our https://github.com/ipa320/cob_gazebo_plugins environment.
it still lacks proper unit tests and the configuration is rather limited.
it would be great if other ros_control users would test it with theirs setups and give some feedback.