Ask Your Question

Difference between ABB Moveit! package and ABB ROS-I package

asked 2021-12-15 00:36:13 -0500

yash_5 gravatar image


I am trying to send trajectory commands to the ABB IRB120. I have looked at the Moveit!-based package provided for this robot as well as the ROS-I based packages to control the robot.

Both the individual packages have sort-of enough documentation, but it wasn't very clear to me when to use which one. For my simple task of sending a trajectory command, is it okay to just work with the Moveit! based package?

Appreciate the help!

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2021-12-17 09:10:28 -0500

marip8 gravatar image

The packages you are referring to are actually both part of the ROS-I project. Packages with the name abb_xxx_support provide URDF models for various ABB robots, and packages with the name abb_xxx_moveit_config provide configuration files for integration with the MoveIt! planning framework. These packages are distributed via the ROS build farm (as you linked), and the source code is hosted on this ROS-I Github repository. Additional "experimental" models can be found in this repository.

The second package that you linked to is a robot driver that allows trajectories planned in ROS to be executed on the robot controller. It also publishes the current joint state of the robot. This package used to be part of the same repository as the support and MoveIt packages, but it was recently moved to its own repository.

For my simple task of sending a trajectory command, is it okay to just work with the Moveit! based package?

You'll actually need all three packages:

  • The support package provides the URDF to be a representation of the robot (i.e. meshes, kinematic structure, etc.)
  • The MoveIt! config package defines launch and configuration files for running a MoveIt! motion planning node
  • The driver allows trajectories planned in MoveIt to be executed on the robot

Check out the ABB driver wiki for instructions on installing the driver onto your robot controller. There are also some good tutorials here in exercises 3.3 and 3.4 and here about MoveIt! config packages and basic planning in MoveIt! using Rviz.

edit flag offensive delete link more


Thanks for the detailed answer with clear explanations of how different packages talk to each other!

yash_5 gravatar image yash_5  ( 2021-12-17 12:43:08 -0500 )edit

answered 2021-12-17 10:25:40 -0500

bgreenberg gravatar image

Using MoveIt! is a great way to do simple tasks like the one you describe. The key thing to understand is that although the MoveIt! package may include calls to start up the robot itself, it doesn't include any of the robot-specific drivers. To make a physical robot move, you'll need to build the robot driver package in addition to the ...moveit_config package (as well as configuring the robot to accept commands from ROS). This page has some info on how to set up the robot itself.

The ABB driver package that you linked is a new one which has a lot of great features, but for something simple like you're doing, you might look at the older version (which is still in wide use). This is the driver that the MoveIt! config package is currently trying to call when this launch file is run with the sim flag set to false (the actual call to launch the driver is in the included launch file).

edit flag offensive delete link more


Understood, thanks!

yash_5 gravatar image yash_5  ( 2021-12-17 12:43:26 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2021-12-15 00:36:13 -0500

Seen: 128 times

Last updated: Dec 17 '21