ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Which ROS version makes sense for Universal Robot applications?

asked 2022-02-24 04:05:58 -0500

rosberrypi gravatar image

Hello all,

I feel a little bit confused regarding deciding what robotics stack to use for our application with universal robot (ur5e and ur10e) and where to start from.

ROS-industrial seems very well developed and maintained but it is based on ROS-Kinetic which was already EOL in April'21. I found out that there's a fork for ROS-noetic: https://github.com/fmauch/universal_r...

I also consider starting from ROS2, using the universal robot drivers here: https://github.com/UniversalRobots/Un...

However, if I didn't misunderstand, there are some useful features from moveit that are not ported to moveit2 yet, for example moveit setup assistant would be crucial for me since I want to merge urdf models to represent the real environment of the robot.

Also, ros2-galactic EOL is already November'22 and ros1-noetic is still supported until May'25 which I found confusing as well.

I would appreciate some feedback, Thanks in advance!

edit retag flag offensive close merge delete

Comments

In case you choose ROS1, I suggest this as a reference: https://github.com/o2ac/o2ac-ur

fvd gravatar image fvd  ( 2022-02-24 04:57:25 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-02-24 16:53:58 -0500

ROS-industrial seems very well developed and maintained but it is based on ROS-Kinetic which was already EOL in April'21. I found out that there's a fork for ROS-noetic: https://github.com/fmauch/universal_r...

There are probably not much relevant changed since Kinetic, so 'kinetic' branch might be active. Furthermore, usually ROS branches are named after the oldest compatible version. This means that the code on Kinetic branch is compatible with Melodic and Noetic. This was very frequently the case in ROS1. Especially, the core messages and libraries didn't change much since Kinetic. Everything became very stable.

However, if I didn't misunderstand, there are some useful features from moveit that are not ported to moveit2 yet, for example moveit setup assistant would be crucial for me since I want to merge urdf models to represent the real environment of the robot.

Actually MoveIt2 is further regarding features then MoveIt. To my knowledge only missing part MoveItSetupAssistant. But, TBH, working without it was also not soooo painful. It depends how complex are your models, but on the end you will have to manually update one or two files.

Also, ros2-galactic EOL is already November'22 and ros1-noetic is still supported until May'25 which I found confusing as well.

Why is this confusing? Galactic is not "Long-Time-Supported" (LTS) version, and Melodic is. Anyway, this year in May ROS2 Humble is coming out and it will be good place to start with ROS2 because some of the core library got much more stable in the last months. Galactic is also very good and stable. I still don't see many missing hot-new features compared to current Rolling release.

I also consider starting from ROS2

To conclude. If you are starting just now, start with ROS2 and save yourself some transition pain in the future. For what I can say, most of the UR-Driver, ros2_control and MoveIt2 developments are happening here and maintainers from those repositories are short on time to give much love to ROS1 version. Therefore, ROS1 versions of libraries will soon (is not already) become obsolete. Depending on what you want to do, some of the more complex scenarios are now much easier to do with ROS2 than it is with ROS1.

edit flag offensive delete link more

Comments

Just to add: For ROS1 the whole stack is runnable (and supported) for ROS noetic. See the ur_robot_driver for details on how to get started. ros_industrial/universal_robot has its default branch on kinetic devel, but the melodic_devel_staging is pretty close to my fork, except the MoveIt! support. If you want to use MoveIt! I suggest starting with my fork as described in the driver's README would be the way to go for now.

If you are just getting started with ROS, I agree that starting with ROS2 might be a good option. We are very close to actually releasing a first binary package for the UR packages which will be available in galactic and probably also in humble asap.

fexner gravatar image fexner  ( 2022-02-25 02:28:20 -0500 )edit

Thank you for both answers. I think it is a little bit more clearer now. I am familiar with ROS so I am not starting from zero, however it still looks beneficial to start from ROS2 with respect to my future plans, to minimize the migration process at the end.

Actually MoveIt2 is further regarding features then MoveIt. To my knowledge only missing part MoveItSetupAssistant. But, TBH, working without it was also not soooo painful. It depends how complex are your models, but on the end you will have to manually update one or two files.

It looks like the real question I have is how to use UR robot with MoveIt! setup which is created via MSA in ROS noetic and for that I will create a separate question in the future.

Thanks again!

rosberrypi gravatar image rosberrypi  ( 2022-02-25 05:46:20 -0500 )edit
1

For ROS2 MoveIt! setup (for a plain robot) is included.

fexner gravatar image fexner  ( 2022-02-25 10:12:46 -0500 )edit

Yes I saw that and that's great, but I meant creating a custom URDF for my own environment with table etc...

rosberrypi gravatar image rosberrypi  ( 2022-02-26 08:44:16 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2022-02-24 04:05:58 -0500

Seen: 799 times

Last updated: Feb 25 '22