-
Notifications
You must be signed in to change notification settings - Fork 125
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
Updated with ros2-control Foxy API #44
Conversation
Signed-off-by: ahcorde <[email protected]>
Signed-off-by: ahcorde <[email protected]>
@bmagyar and @Karsten1987 do you mind to have a look ? |
Signed-off-by: Karsten Knese <[email protected]>
The demo for the velocity controller is not working. The position controller demo works properly. Steps to reproduce this:
You will see that the cart is not moving. Digging around a bit, I saw that the node |
Signed-off-by: ahcorde <[email protected]>
…on/gazebo_ros2_control into ahcorde/update/foxy
@MartinPeris thank you for testing. This commit should fix the issue a69ff7c |
Thanks for the quick fix! It works :) |
Signed-off-by: ahcorde <[email protected]>
Signed-off-by: ahcorde <[email protected]>
Signed-off-by: ahcorde <[email protected]>
Signed-off-by: ahcorde <[email protected]>
@ahcorde Before merging this PR to the master branch, I think those lines below should use RCLCPP_INFO rather than RCLCPP_ERROR. (not sure but maybe...) |
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.
I built transmission_interface
from source and was able to run the demos 👍
We should update CI not to build ros2_control
from source and use debs instead.
gazebo_ros2_control/include/gazebo_ros2_control/gazebo_ros2_control_plugin.hpp
Outdated
Show resolved
Hide resolved
gazebo_ros2_control/include/gazebo_ros2_control/gazebo_system_interface.hpp
Show resolved
Hide resolved
I've just released |
Signed-off-by: ahcorde <[email protected]>
Signed-off-by: ahcorde <[email protected]>
Signed-off-by: ahcorde <[email protected]>
Signed-off-by: ahcorde <[email protected]>
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.
Hi @ahcorde, I was trying out this new version. I was playing around with the control_period
some bugs were found.
Signed-off-by: ahcorde <[email protected]>
@ahcorde it seems the current gazebo_ros2_control does not support multiple ros2_control tags. Only the joints in the first ros2_control tag are detected. |
Signed-off-by: ahcorde <[email protected]>
@JaehyunShim can you try the last commit 794da79? |
Signed-off-by: ahcorde <[email protected]>
I'm going to try this today, but for me #44 (review) is still an issue. Just wrapping the code that parses the yaml file with:
is enough. Also, last time I tried, I had error parsing complex yaml files like this one. The double arrays were loaded as string arrays. |
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.
The position and velocity demos work for me, but the effort demo is failing to find the cart_pole_controller
, and that causes gzserver
to crash:
[gzserver-1] [ERROR] [1612310632.481354867] [controller_manager]: Loader for controller 'cart_pole_controller' not found
[gzserver-1] terminate called without an active exception
[gzserver-1] Aborted (core dumped)
[ERROR] [gzserver-1]: process has died [pid 259898, exit code 134, cmd 'gzserver
|
It works. Thanks! |
I am encountering the same problem actually. How did you fix it? |
@JaehyunShim Here is my comments #44 (comment). There are several ways to workaround it. Currently, I created an additional gazebo plugin to help calling
@ahcorde Should there be a notice in the doc on the problem that the missing |
Regarding this, we're not providing any ROS2 control params through the URDF, and instead use ros-controls/ros2_control#310 to load them once gazebo and the controller manager in it are running. Here you can see the controller params yaml file I've got a launch file ready but not pushed, hopefully I can push it tonight. |
Signed-off-by: ahcorde <[email protected]>
@JaehyunShim and @v-lopez I unified the yaml file. Can you try it ? |
@chapulina, I was able to reproduce the issue in the docker container. The available classes are:
I can see that the package |
@v-lopez I think @ahcorde made modifications on corresponding lines in the last commit for the first point. What I mean by the following
is it is not really intuitive you set which controller you are going to use for your robot in a urdf file. You will have to recompile your package every time you switch to different controllers (or you can compile with the symlink option but still does not look that intuitive). Why does gazebo_ros2_control take this method rather than link? |
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.
All the demos work well for me. The code also looks reasonable to me, although I'm not very familiar with the recent developments on ros2_control
.
I suggest we get this in to fix the master
branch and make a first release. We can open tickets for all outstanding issues to be addressed in follow-up PRs. Otherwise we're going to feature-creep this pull request.
@Briancbn I still do not understand why I need to additionally add it to my code to make it work whereas the example provided in the gazebo_ros2_control_demos (which uses the same gazebo_ros2_control::GazeboSystem) already works without it. |
@JaehyunShim I only find out through experiment. I don't know what is causing this, and why the rrbot is working. Maybe @ahcorde or @chapulina could explain this? |
@JaehyunShim or @Briancbn can you open an issue ? |
Updated gazebo_ros2_control with the ros2-control Foxy API
NOTE:
ros-foxy-transmission-interface
is still not avaiblable, you should include this dependency in your workspaceSigned-off-by: ahcorde [email protected]