Ask Your Question
1

Controlling ABB with ROS2?

asked 2020-12-30 17:48:13 -0600

infantasy gravatar image

I'm looking into getting an ABB arm. It doesn't appear that there is any driver for ROS2.

Would it be correct to say that the only way for me to use things like MoveIt would be to use ROS1?

https://github.com/robotics/open_abb

If I wanted to use the arm with ROS2, I would either need to have a custom driver or I would be limited to controlling the arm with packages like the above, is that right?

edit retag flag offensive close merge delete

Comments

1
gvdhoorn gravatar image gvdhoorn  ( 2020-12-31 04:54:47 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-12-31 04:11:56 -0600

fvd gravatar image

updated 2020-12-31 09:26:41 -0600

I don't use ABB robots and don't know, but cursory googling would tell me:

  1. That package you linked does not seem to advertise a FollowJointTrajectory action or equivalent, so you won't be able to use that with MoveIt. Looks like you can use it to connect to your robot even without ROS though.

  2. http://wiki.ros.org/abb_driver is the driver that will let you use MoveIt. edit:Looks like https://github.com/ros-industrial/abb... is the newer one.

  3. You can always port the ROS1 driver to ROS2 and publish it. This is welcome and a common thing in the open-source ecosystem. You can post issues on their Github and/or Discourse if you're stuck. Feel free to just try it out.

edit: To clarify, it's always better to check if there are existing efforts. As noted in the comments, someone already posted this Github issue concerning a port to ROS2.

edit flag offensive delete link more

Comments

2

For users with the EGM option on their controller, I would recommend they use ros-industrial/abb_robot_driver instead of abb_driver.

The latter is just about deprecated.

And:

You can always port the ROS1 driver to ROS2 and publish it. This is welcome and a common thing in the open-source ecosystem. You can post issues on their Github and/or Discourse if you're stuck. Feel free to just try it out.

while everything is open-source, I would add the nuance that every porting effort should not be just started without at least trying to reach out to the developers/maintainers of the ROS 1 version of the package you're planning to port.

They may already be working on something, and it would be a waste of effort to have multiple attempts going on in parallel.

Note: I'm not saying you should ask for permission. That would be something else ...(more)

gvdhoorn gravatar image gvdhoorn  ( 2020-12-31 04:55:41 -0600 )edit

Thanks so much for the helpful answers! I had seen abb_driver but missed abb_robot_driver.

Just to make sure I understand, again, would it be correct to say that the only way for me to use things like MoveIt without writing a new driver would be to use ROS1 + an existing driver like abb_driver or abb_robot_driver?

And if I wanted to use the arm with ROS2, I would either need to write a new ROS2 driver (that could be based on abb_robot_driver) or I would be limited to controlling the arm with packages like the open_abb package, is that right?

infantasy gravatar image infantasy  ( 2020-12-31 12:15:50 -0600 )edit

would it be correct to say that the only way for me to use things like MoveIt without writing a new driver would be to use ROS1 + an existing driver like abb_driver or abb_robot_driver?

well, there is another option, which would involve using the ros1_bridge, which bridges ROS 1 and ROS 2 node graphs. But whether that would be viable really depends on what you want to do exactly.

So if you could provide some more details on what "using the arm with ROS2" means, perhaps we can provide better answers.

gvdhoorn gravatar image gvdhoorn  ( 2021-01-01 03:19:12 -0600 )edit

@gvdhoorn I'm trying to do pick and place. So I'd want to be able to read the current position (xyz and orientation) of the robot arm, and telling it to move into some other position. It would be okay if it moved directly there (and didn't do any obstacle avoidance). Not super sure if this answers your question.

infantasy gravatar image infantasy  ( 2021-01-29 21:40:51 -0600 )edit

Then the bridge would probably be sufficient, and you could use the old driver (ie: abb_driver).

It would be okay if it moved directly there (and didn't do any obstacle avoidance).

that isn't really related to the driver, or robot interface in general, but would depend on your choice of motion planner.

gvdhoorn gravatar image gvdhoorn  ( 2021-01-30 06:54:37 -0600 )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

1 follower

Stats

Asked: 2020-12-30 17:48:13 -0600

Seen: 412 times

Last updated: Dec 31 '20