Open SteveMacenski opened 1 year ago
Hi Steve, please note that my answer is only related to the Create3 side of the house (you should reach out to Clearpath Robotics for the TB4 part)
For what concerns ROS 2 Humble:
For what concerns ROS 2 Rolling:
I don't really care too much about the firmware to be honest. This is fully for simulation for CI testing and default bringups for folks to have nice demos to start off with :smile: . I believe this is the simulation repo as well! I still don't have a TB4/iCreate3 :cry:
It's not clear if all the simulator dependencies (in particular those related to ROS 2 control) have a rolling release, but we could have a branch that can be built from sources and it's compatible with Rolling.
This is a minimum requirement for us in Nav2-land to use it. We need binaries. If I can help unblock or have things released that you rely on, let me know. I suspect they are released in Rolling though, moveit2 is in rolling and they rely on ROS 2 control.
Okok perfect.
Let me first focus on the ROS 2 Humble release and then I will get back to you with more details about ROS 2 Rolling and potentially missing packages.
Ok! Thanks!
@SteveMacenski, quick update on the ROS 2 Humble release. We have a fully functional gazebo-classic simulation, but there are several problems in the ignition simulation due to the ROS 2 control libraries.
master
branch, but not in the humble
branch.Ugh OK. I was hoping to do these all in the same thrust. Lets see if our comments will spark some movement. I'm surprised given Ignition's "the simulator of ROS 2" with Gazebo deprecated that this could still be an issue
I did a quick test for a ROS 2 rolling release.
The rolling debian package for ign_ros2_control
seems broken and it causes a segmentation fault in Gazebo.
I opened the following ticket https://github.com/ros-controls/gz_ros2_control/issues/105
Building from sources using master
branch seems to fix the problem (at least the simulation does not immediately crash), but I didn't test it thoroughly.
We may release the Create 3 simulator regardless (Gazebo classic works just fine), and add a disclaimer that users will have to build ign_ros2_control
from sources.
Eventually, when those issues are fixed, no changes will be needed on our side.
@alsora Is it currently possible to use the simulator on Gazebo classic by building from the humble branch or do we have to wait for a release? So far, building is running into errors for me.
Hi @splouisliu, I just created an official humble
branch.
I tested it locally and gazebo classics builds and runs without problems for me
Sounds like https://github.com/turtlebot/turtlebot4_simulator/issues/32#issuecomment-1458331570 is getting close to cutting a release for humble. Would that of course now be the case for create3_sim
as well?
We already did a first humble release of the package. We should do another one now that we fixed some additional bugs/errors
We should do another one now that we fixed some additional bugs/errors
When you do end up having the chance to do that for humble, could it be released into rolling as well? That would help with our gazebo migration for the Nav2 system tests as well, as mentioned earlier.
At the moment, Rolling builds fine but I haven't verified if the runtime issues have been resolved. I can still release it if needed.
I realized that before releasing this repo for rolling, we need also to release its dependency. I opened PR here https://github.com/ros/rosdistro/pull/36434
@alsora reviving this - can we get Jazzy/Rolling support? This is blocking the Nav2 release or we'll need to find another robot platform to base from
I'll look into doing a Jazzy release.
I'll look into doing a Jazzy release.
I guess for Jazzy You'll need to use Gazebo Harmonic, which ditched ignition name, that means rewrite of few sources 😃
FYI:
jazzy
for the create3_sim
and for the irobot_create_msgs
repoirobot_create_msgs
for jazzy (in the meantime you need to build from sources)the jazzy
branch of the create3_sim
builds fine and I don't see any error at startup, but it doesn't work yet
Known issues:
It would be very appreciated if you could take a look and provide suggestions.
@alsora I forgot to mention that there was already some work in Turtlebot4 repo.
One suggestion from me would be to tagret Gazebo Harmonic instead of Jazzy (maybe call the branch Jazzy, but it could run on Humble too). You can actually run Harmonic with Humble, but you have to build ros_gz from source.
One use case is Nvidia Jetson devices which are using now older Ubuntu (22.04) with Humble. My humble guess would be that a large share if not majority of roboticists using create3 would use Jetsons (Me included), so it would be beneficial if the Jazzy branch would run seamlessly with Humble using Gazebo Harmonic.
I know this is sim repo, but the Jetsons are able to run Gazebo simulations pretty fast even though they are embedded SoCs (they have good graphic drivers). I could test the sim on Humble & Harmonic & AGX Orin, my only 24.04 Jazzy device is RPi 5 which is totally slow for any simulation 😁
Thanks, I'll take a look as it seems that the user there already ported this repo to jazzy and harmonic.
About the naming and supported versions: the gazebo harmonic page recommends to use jazzy so I'm not going to advertise using a different version of ROS.
Note that the code builds without any ROS-specific changes, so I would expect that once the gazebo issues are fixed, you should be able to compile this "jazzy" branch from sources against humble ROS libraries
Note that the code builds without any ROS-specific changes, so I would expect that once the gazebo issues are fixed, you should be able to compile this "jazzy" branch from sources against humble ROS libraries
Yeah I meant it like this. Of course there are recommended versions of Gazebo for each ROS version, but since they provide compatibility matrix at https://github.com/gazebosim/ros_gz/tree/humble for different ROS versions, they kinda expect people will going to mix the versions. (They also provide binaries for Humble+Harmonic, but at that point it's easier to build it from source I guess)
For me it would be jumping from Gazebo Classic to Harmonic without using Ignition at all.
Also 24.04 is not yet that stable, so more people would want to use Harmonic with 22.04 for example.
Any updates @alsora ? I'd like to help & contribute, but I don't want to redo any work you already did in local/private git repo.
@martincerven no updates yet.
I don't have any private/local repo; all the work I did so far is pushed to the branch jazzy
of this repo.
Any help is really appreciated.
I have started looking into it, there might be more bugs with Harmonic itself, but at least there is some progress
FYI, thanks to @civerachb-cpr, the jazzy
branch is now ready for use.
We'll keep testing it for a while and then I'll proceed with a release.
It would be great if you could give it a try (building from sources) and provide feedbacks.
I built it inside 24.04 VM, and it runs normally, but since it's VM it doesn't have high OpenGL version so I have to change:
<!-- <engine>ogre2</engine> -->
<engine>ogre</engine>
in gui.config
and then I get these black & white colors 😃 (but everything runs fine)
Also, I haven't been able to run Humble+Harmonic with this jazzy branch, I build all packages from source but, the robot doesn't move as with 24.04 VM, maybe diff_drive controller expects different topic, or there are too many breaking changes in other packages 😑
@civerachb-cpr Have you, by any chance, tried to use Humble + Harmonic with create3?
@martincerven : between Humble and Jazzy there were some pretty significant changes from the ros_control
community, the biggest of which was changing to stamped messages for teleop control. Instead of using geometry_msgs/Twist
messages, the Jazzy branch is set up to use geometry_msgs/TwistStamped
for the control inputs. If the rest of your environment is Humble, you may have other nodes that are publishing/subscribing to the unstamped messages. That could explain why the robot isn't driving.
I have not tried using Humble & Harmonic together. Officially that combination is classified as "Possible, but use with caution" (see: https://gazebosim.org/docs/latest/ros_installation/#summary-of-compatible-ros-and-gazebo-combinations). If you are using ROS 2 Humble, I would strongly recommend using Gazebo's Fortress release.
As part of https://github.com/ros-planning/navigation2/issues/2997, we want to migrate away from the TB3 to the TB4 (or iCreate) and Gazebo to Ignition. To do so, we need them to be available in the distribution so users can pull it in with a Nav2 install and CI can turn over without adding more packages to our underlay list.
Are there plans to release binaries in the near-term future? This would allow us to make a relatively high-visibility integration.