Is moveit2 ready for industrial robot manipulation?

Hello guys,
Currently, I am working on robot manipulation with ROS Melodic and I am planning to migrate ROS 2 but I am curious about Moveit2 and Industrial Robot Simulator. Have anybody had problem while simulating in gazebo? Are they stable?

@gavanderhoorn , @felixvd

Thanks,

2 Likes

I don’t keep a list but I have heard that multiple groups are using it in production (or are starting down that path).

@mrobinson @davetcoleman @Sean_Kolk and @tylerjw may also have opinions on this.

1 Like

In PickNik Robotics we use ROS 2 and MoveIt 2 with Gazebo Classic / Ignition Gazebo on mulitple projects in multiple distributions (Foxy, Galactic and Rolling). You may need to get your hands a little dirty with possibly reading bunch of source code (or even editing it depending on your needs), but once you know where to look and comfortable, I think the transition from a working MoveIt + ROS + Gazebo configuration to MoveIt 2 + ROS 2 + Ignition Gazebo / Gazebo Classic should be more or less painless. I strongly think people in ROS 2 community are super helpful, so I am pretty sure if you open issues in the relevant repositories (if you have any problems), or open discussions here in Discourse, you would get help.

For a reference integration of Ignition Gazebo, MoveIt 2 and ROS 2, I gave a small presentation yesterday on Ignition Community Meeting.

Feel free to ping me / open issues / discussion if you need any questions on the migration!

2 Likes

As to the specific question about industrial_robot_simulator (I assume that’s what you’re referring to with “Industrial Robot Simulator”): that hasn’t been ported, so you cannot use that without some work.

As to whether or not ROS 2 makes sense: due to the fact that ROS 1 is EOL and Noetic only has 3 years of official support left, there is essentially no choice for anything with a (predicted) lifespan or development/support cycle longer than that.

I would say almost all products (and perhaps also projects) in (commercial) robotics fall into that category.

Will you run into issues? Certainly.

Are things “as easy” as they were in ROS 1? Certainly not.

Will you be able to benefit from the years of cumulative experience with ROS 1 available on fora, Q&A sites, training material and issue trackers? No.

Will you have to relearn your way “with ROS”, and figure out best-practices and come up with new ways to implement the same functionality? Unavoidable.

Do you have a choice? No, not really :slight_smile:

Sounds bad? No, not at all.

ROS 2 has already seen more input from companies and organisations with experience in building actual products and with commercial deployment of software solutions than ROS 1 ever had. It has also seen more contributions from people with backgrounds in real-time and safety-critical systems, state-of-the-art, commercial grade use in logistics and packaging industries and builds on-top of much more mature and up-to-date technologies than ROS 1 ever did when it comes to things like communication infrastructure, but also testing, validation and deployment.

Is it perfect? No. Does it do everything ROS 1 could? No.

But if you’re willing to spend some effort it will allow you to do things you could not do in ROS 1, and collectively we’ve decided (or it has been decided for us :wink: ) that those alone make it worth the switch.

Whether or not that’s sufficient for you to switch we cannot say I believe.


Edit:

This may be a bit of an understatement. There are core packages with a minimum of documentation and reading the sources (or those of packages using them) becomes one of the main ways to understand how things work at that point.

For people already familiar with them it’s less of a problem, but for users just making the transition or even starting with ROS 2 (without any ROS 1 experience) it can be a big issue.


Edit 2: in case it wasn’t clear: I’m not a fan of the “you have no choice” state of things we are in, but unless someone steps up to do the/more work, it is what it is.

6 Likes

A couple thoughts:

  • The core functionality of MoveIt2 is ready and stable, maybe even better than MoveIt for ROS1.

  • The MoveIt Setup Assistant for ROS2 is not ready yet, so setting up the config and launch files takes a lot more manual effort. It’s doable though, and you only have to do it once for each robot.

  • Gazebo is going away in 2025 so I wouldn’t recommend starting a new project with it. Ignition is the replacement.

  • No idea about Industrial Robot Simulator.

2 Likes

Thank you so much for your contribution @vatanaksoytezer. I will definitely check it out.

@Katherine_Scott Thanks.

@gavanderhoorn Yeah, you are totally right. Sooner or later we all will migrate, It is better to stepping up to do some work. Thanks.

@AndyZe Thanks, I think if the core functionality of MoveIt2 is stable other parts are doable.

My best guess is “depends what you want to do and your time frame”. If you have a running system and you’re thinking of presenting something within the next 6 months, I would probably do it on ROS1. If it’s more than a year away and it needs to live past the Noetic EOL, you will want to look into porting to ROS2/MoveIt2.

FWIW, I will release an update to this 2-arm manipulation system next month here and it runs on ROS Melodic/Noetic because it had to work right now.

1 Like

We feel confident in deploying solutions with MoveIt2. I think others have noted that there are some things to work through, such as getting your application/robot set up, but that only happens up front. We also feel that MoveIt2 is at minimum at feature parity with MoveIt, so we are comfortable developing solutions.

We also still make the call to do ROS1 if there is a time crunch to demonstration proof of concept. We do also make every attempt to say “is there a reason I cannot just use ROS 2”. It is important that we start at the assumption we will use ROS 2. We also have more ROS-I Consortium Members starting in ROS 2, and simply asking questions about ROS 1 code bases, so that also is an encouraging trend.

We look forward to seeing the MoveIt set up assistant make it over. That probably is the biggest pain point in our ros-industrial training at this point. We hope that we can support and/or at min provide feedback as it progresses.

MR

3 Likes

Does moveit2 better than moveit1 when it comes to core functionality?

If yes, what are the major modifications/improvements which makes moveit2 better?

Thank you

Some of the things that make ROS 2 / MoveIt 2 a good choice are new integrations and continued development. Two things I can think of that we’ve been using a lot recently that are not available in ROS 1 / MoveIt 1:

  • MoveIt Servo can use an IK solver instead of the inverse jacobian method. This enables you to use optimizing IK solvers to work around singularities instead of getting stuck. One such IK solver only available in ROS 2 is pick_ik.
  • MoveIt 2 works with ros2_control, which now has an admittance controller. This is important when executing motions that make contact with objects that would otherwise fault the arm.

MSA (moveit setup assistant) is now released and available on humble and rolling. I know this was one of the large pain points before for people migrating from ROS 1 to ROS 2.

Recently a significant effort was made to backport some features from MoveIt 2 to MoveIt 1 and get a release out on Noetic, so some of the features I otherwise would have listed have been backported.

We also have been forward-porting all improvements from MoveIt 1 to MoveIt 2.

There are probably more important features and bug fixes in MoveIt 2 that I’m forgetting. @AndyZe @Henning_Kayser

2 Likes