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

Evaluation on Using ROS2 Iron on ergoCubSN000 #148

Open
SimoneMic opened this issue Jul 13, 2023 · 9 comments
Open

Evaluation on Using ROS2 Iron on ergoCubSN000 #148

SimoneMic opened this issue Jul 13, 2023 · 9 comments
Assignees
Labels
domain-software Related to Software prj-ergocub Related to ErgoCub Project team-fix Related to Team Fix

Comments

@SimoneMic
Copy link
Contributor

Hello,

As per title, since ROS2 Iron (the latest release) has been released I think that we should evaluate the possibility to replace ROS2 Humble.
Here there are the release notes with the changes since Humble.
There are some pros, like the improved and managed discoverability of topics (similar to the issue that we had #142 ).
The con that I can think of is that it's not a long term supported version, unlike Humble. Comparison here.

Also since the HSP Navigation team is moving to Iron, it could be helpful to have all the projects in CRIS aligned on this. cc @randaz81
What would be the impact on switching to Iron on the actual robot?

@Nicogene Nicogene added domain-software Related to Software prj-ergocub Related to ErgoCub Project team-fix Related to Team Fix labels Jul 13, 2023
@traversaro
Copy link
Member

The two things that could prevent updating to Iron are:

  • P1: Iron at the moment is not available on RoboStack/conda (Support ROS2 iron RoboStack/robostack.github.io#24). However, this is just a nice to have, and if we are able to run everything with the official apt binaries it is not a problem to use Iron.
  • P2: ergocub-head is now constraned to be on 20.04 due to the absence of a JetPack compatible with Ubuntu 22.04, while ROS2 iron is constrained to run on 22.04, at least when using official apt binaries (see https://docs.ros.org/en/rolling/Releases/Release-Iron-Irwini.html#supported-platforms). This could be solved by migrating all uses of ros2 to be inside a docker with Ubuntu 22.04, but we should understand if someone is ready to migrate the ergocub-head from the current setup (in which ROS is installed via conda, if I recall correctly) to a docker-based setup in which the official apt binaries of Iron Irwini are used. Another alternative we could consider is to drop any use of ROS2 from ergocub-head, I am not sure in which demos ROS2 is currently used in ergocub-head. Regardless of the choice, probably it is a matter to evaluate the tradeoff and if the benefit of updating to Iron is worth the additional work required to update.

cc @lrapetti

@SimoneMic
Copy link
Contributor Author

To avoid the head issue we could exclude it completely from having ros2.
I don't know if in the future it could be useful to still have it, but I am actually using yarp to stream the lidar and camera data from the head to the laptop, and here convert it to ros2.
The only other sensor that could be helpful to have is the head IMU, but if we can keep the same process above it should be fine.

So we could remove ros2 from the head and keep it only on the torso and the laptop.
Or could this create some future issues?
cc @randaz81

@traversaro
Copy link
Member

@GiulioRomualdi in the past used ergocub-head/realsense with ROS2, but I am not sure what it is the status now.

@randaz81
Copy link

randaz81 commented Jul 14, 2023

I discussed this issue with f2f with @Nicogene and @pattacini. We concluded that it would be optimal to schedule a f2f meeting with also @traversaro and @GiulioRomualdi to check the impact on all groups about migrating to ROS2 iron.

  • In general switching the whole setup (robot/laptop) to iron is a mandatory step, given the fact that humble is affected by some bugs. On R1 we are already using iron.
  • The solution proposed by @SimoneMic about using yarp nwc/nws to transfer data without involving ROS2 in the head is very good and I would definitely go for it. (This is not a workaround, it is a viable and efficient solution!)
  • On the long term, nvidia is NOT going to support ubuntu 22 on our agx bord (https://forums.developer.nvidia.com/t/jetson-software-roadmap-for-2023/238889). It would be nice to start thinking to replace it with an Orin board.

@GiulioRomualdi
Copy link
Contributor

The need of ros2 for the realsense was required for some preliminary test on visual odometry where I tried to use the imu of the realsense. Since on ergocub we have an xsens IMU on the robot root link, we currently do not need this feature. So long story short we do not use ROS2 at all

@traversaro
Copy link
Member

From what I understand from @pattacini , the plan is now to update to ROS2 Iron, switching to do the installation with apt and not with conda. However, something that I missed is what is the plan with ergocub-head that has 20.04, the possible options I see are:

  • Do not install ros2 in ergocub-head
  • Install it via Docker on 22.04

What was the decision w.r.t. to this point?

@pattacini
Copy link
Member

For what regards the head, I think that @randaz81 and @SimoneMic will rely on NWS, which also allows for some data compression.

@traversaro
Copy link
Member

Ok, so I guess ROS2 will not be installed in ergocub-head.

@SimoneMic
Copy link
Contributor Author

Actually I am testing some packages like robot_localization that have a stable version based on humble. While there's a rolling version supporting Iron, I want to test before the stable version first. So I'll wait a bit to start switching the versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain-software Related to Software prj-ergocub Related to ErgoCub Project team-fix Related to Team Fix
Projects
None yet
Development

No branches or pull requests

7 participants