-
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
Humble 4.4 update broke joints #242
Comments
There were quite a lot of changes to 0.4.4, I don't have a glue now where this could come from. Could you try to compile it from source, and use git bisect to find the commit introducing your issue? |
No problem, after working git bisect what appears to be the offending commit is d18a887#diff-e14963d1c2ba3a31138bda99525946c355191fe361859b5fb7247fddad6c3a2a I believe some of this control code is a little over my head. What is odd is I compared the full ROS log line for line with version 0.4.2 and 0.4.4 expecting some kind of error or something crashing/segfaulting. I did not get any warning as defined here https://github.com/ros-controls/gazebo_ros2_control/pull/177/files#diff-e14963d1c2ba3a31138bda99525946c355191fe361859b5fb7247fddad6c3a2aR138 Looking at the code I don't see much difference since the larger |
I don't see what #208 should change with your setup. Could you provide a full example of your robot including the meshes? I'm curious.. |
That is what I keep thinking 😆 Let me provide a Minimal Reproducible Example of the robot |
@christophfroehlich Here is an example using the above meshes in the original post of this issue https://github.com/mr337/control_mre Instructions and such on how to produce in ROS2 Humble. |
Sorry, I haven't had time earlier to dig into this. The problem is not a broken joint-state, but your gazebo model explodes after touching the ground. The reason why this didn't happen before is that now as a fallback every joint velocity is set to zero (this happens always at the first write until the controllers get activated) gazebo_ros2_control/gazebo_ros2_control/src/gazebo_system.cpp Lines 604 to 607 in 3c8f5bb
Without forcing it to zero they are "not actuated"/compliant and the impact is solved stable. I have to try if this is a problem of your specific robot (falling down, four wheels might not get stable contact points..) or happens also with others. |
OK, your model sometimes also explodes with the version before the commit, after it has already been standing stable on the ground. By increasing physics/solver/iterations to 500 make the simulation stable, even with the latest version of the HEAD. This is an indication that your model or the physics solver is not well configured. A good starting point is always to have a look at the inertia, masses, and contact points (visualize them from the view menu).
I hope I could help with this. I'm pretty sure now that this is not a problem with gazebo_ros2_control, the new version just reveals the problem immediately. I close this issue now, feel free to reopen if you don't agree. |
Just wanted to add that our issue was related to the mass of the wheels. We also did some further work on masses and inertias to get a model that is happy. Thanks again for pointing us in the right direction @christophfroehlich |
you're very welcome, glad you fixed it! |
I recently upgraded ROS packages for my system. Upon launching the simulation a few of the joints are broken. After trying a few things I have pinned down the issue to the ros-humble-gazebo-ros2-control package update. At any time I can roll back to version 0.4.2 and all problems are gone. I don't have access to the 0.4.3 package but looking at the changelog looks like 4.4 introduced a few changes.
With version
0.4.2-1jammy.20230309.194017
Everything works as expected
I am also able to publish an array to the controller and get control of the joint. Here is moving to 1 radian.
After update with version
0.4.4-1jammy.20231003.230725
RVIZ startups up showing this. I don't get any controller errors or repeated messages. I am unable to control the joint via publishing and no errors when publishing the array. It acts like everything is fine except joint broken in RVIZ.
I have a few other joints that are broken as well, looks like things rotated by 90 degrees, so far they all seem to be of type
position_controllers/JointGroupPositionController
. I was thinking maybe the issue #240 was related but no luck as some of the joints are not passive.Link details:
URDF
controllers_sim.yaml
Hardware interfaces
System details:
OS: Ubuntu Jammy
ROS Version: Humble
The text was updated successfully, but these errors were encountered: