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

ROS2 port #6

Open
jontje opened this issue Dec 21, 2020 · 23 comments
Open

ROS2 port #6

jontje opened this issue Dec 21, 2020 · 23 comments
Labels
task Something to do

Comments

@jontje
Copy link
Contributor

jontje commented Dec 21, 2020

It would be great to port the packages in this repository to ROS2.

The packages have been developed with this in mind, and most of them should be straightforward to adapt to the ROS2 APIs.

The most tricky parts should be the ros_control-based components, however ros2_control might be a good way to go. Although, I haven't yet had time to try it out myself, so I don't know much about its current status.

Regardless, the components not based on ros_control could be ported first, and then the remaining packages could be done at a later time.

Related: ros-industrial/abb_robot_driver_interfaces#4

@jontje jontje pinned this issue Dec 21, 2020
@jontje jontje added the task Something to do label Dec 21, 2020
@gavanderhoorn
Copy link
Member

I've understood an attendee of the ros2_control WG has worked on a ROS 2 driver based on abb_libegm and abb_librws.

Perhaps @bmagyar knows more?

That would of course not be a port of the packages in this repository, but perhaps it could serve as a starting point and/or inspiration.

@bmagyar
Copy link

bmagyar commented Jan 1, 2021

Here's a driver that was shown to work with ABB Studio: https://github.com/dignakov/ros2_control_demo_drivers, there's also one for KUKA in there. These are PoC implementations but should provide with a good reference for you guys.

@gbartyzel
Copy link

gbartyzel commented Jul 29, 2021

Hello, @jontje, @gavanderhoorn is there any progress in porting this driver to ROS2?

@jontje
Copy link
Contributor Author

jontje commented Sep 29, 2021

Hello, @jontje, @gavanderhoorn is there any progress in porting this driver to ROS2?

No progress from my side, I have only recently started working more consistently with ROS2, so it will be a while yet.

@gbartyzel
Copy link

Hello, @jontje, @gavanderhoorn is there any progress in porting this driver to ROS2?

No progress from my side, I have only recently started working more consistently with ROS2, so it will be a while yet.

Well, I think I might help with this in my free time.

@gbartyzel
Copy link

@jontje, @gavanderhoorn I am slowly starting to port this driver to ROS2. I think that ROS2 version should be written in the way like ur_ros2_driver https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver. So, I suggest to merge https://github.com/ros-industrial/abb_robot_driver and https://github.com/ros-industrial/abb_robot_driver_interfaces in to one repo abb_ros2_driver. At the moment, I am developing this in the private repo.

@gavanderhoorn
Copy link
Member

I think that ROS2 version should be written in the way like ur_ros2_driver https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver. So, I suggest to merge https://github.com/ros-industrial/abb_robot_driver and https://github.com/ros-industrial/abb_robot_driver_interfaces in to one repo abb_ros2_driver. At the moment, I am developing this in the private repo.

Please don't unnecessarily host packages in the same repository.

What advantage do you expect by copying the structure / repository layout of Universal_Robots_ROS2_Driver?

@gbartyzel
Copy link

gbartyzel commented Nov 26, 2021

@gavanderhoorn I thought about some kind of concept unification. However, this is just a suggestion. I have already migrated interfaces to ROS2 https://github.com/Souphis/abb_robot_driver_interfaces/tree/ros2_devel. I can stick with the current concept of abb ros driver.

@AndyZe
Copy link

AndyZe commented Jan 25, 2022

PickNik Robotics has a ROS2 project that will require an ABB driver soon. I'd just like to check if the maintainers here would be open to a PR for ROS2? Or is there a better place?

Is there any current work that we could start from? (@Souphis)

(We'll try to preserve whatever the structure currently is.)

@gbartyzel
Copy link

gbartyzel commented Jan 25, 2022

@AndyZe due to lack of time (mostly because of my PhD) currently I rewrote abb interfaces https://github.com/Souphis/abb_robot_driver_interfaces/tree/ros2_devel and started analyzing how to rewrite the hardware interface. I would love to collaborate in porting this to ROS2.

@gavanderhoorn
Copy link
Member

There is an old attempt available at dignakov/abb_experimental (from #6 (comment)).

It doesn't really port abb_robot_driver though. It's more a minimal ros2_control wrapper around abb_libegm.

@jaztiria99
Copy link

Hi @gavanderhoorn, I'm new to ROS2 and GitHub. Have you tested the mentioned repo?

I was trying to launch it from ROS2 Foxy, but not succeeding. In the repo they're telling that only irb120 is enabled for now, but the package "abb_irb120_gazebo" contains a "COLCON_IGNORE" file. I've tried deleting , but it seems that the launch files haven't been migrated from ROS to ROS2.

Do you know if there are advances in this topic?

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Feb 8, 2022

If you're just starting out, I would not recommend trying 'random' Github repositories.

Especially with ros2_control and robot drivers, getting some experience with other packages in ROS 2 first would be a good idea.

In the repo they're telling that only irb120 is enabled for now, but the package "abb_irb120_gazebo" contains a "COLCON_IGNORE" file

The _gazebo package is for use with Gazebo, the physics simulator. It's not intended to be used with real hw.

@jaztiria99
Copy link

jaztiria99 commented Feb 9, 2022

Sorry, I've forgot to mention. My objective is to simulate an ABB robot with ROS2-Gazebo.

What do you recommend me to do @gavanderhoorn?

@gavanderhoorn
Copy link
Member

My objective is to simulate an ABB robot with ROS2-Gazebo.

you don't need the packages in this repository in that case.

Gazebo does not use any real hardware, so there is nothing for the driver to communicate with.

What do you recommend me to do

You could port one of the packages in ros-industrial/abb_experimental.

None of the packages there are ROS 2 compatible, but at least the .xacros should be reusable.

@jaztiria99
Copy link

Okay, I'll try it. Thanks and sorry if it wasn't the place for my question.

@AndyZe
Copy link

AndyZe commented Mar 18, 2022

Please don't unnecessarily host packages in the same repository.

What advantage do you expect by copying the structure / repository layout of Universal_Robots_ROS2_Driver?

What I like about putting the robot description and config package in the same driver pkg is, it's very easy for first-time users. There's only one Readme to find. There's only one repo to clone.

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Apr 28, 2022

What I like about putting the robot description and config package in the same driver pkg is, it's very easy for first-time users. There's only one Readme to find. There's only one repo to clone.

while true, developing for "first-time users" is not really something I believe should be the goal.

Over the past 10 years, such decisions have made maintenance and development in ROS 1 quite a bit more difficult than it necessarily had/has to be.

Separation of concerns is a very worthwhile principle to apply, if only, in this case, to avoid duplication of effort/files/etc.


Edit: additionally, decisions made "now" are most often permanent. With that I mean: decisions of the form "let's do this like this for now" tend to introduce patterns which tend to not go away easily.

@robberthofmanfm
Copy link

Not sure how relevant this is, but someone seems to have a working ROS2 ABB YuMi driver.
https://github.com/matiov/disambiguate-BT-execution/tree/master/world_interface/abb_robot
https://github.com/matiov/disambiguate-BT-execution#disclaimer

@gavanderhoorn
Copy link
Member

gavanderhoorn commented May 3, 2022

That's not really "someone", but @matiov, who works at ABB CR. Likely a colleague of @jontje.


Edit: or an intern/phd.

@robberthofmanfm
Copy link

Ah, excuse my ignorance, I'm relatively new in the field.

@gavanderhoorn
Copy link
Member

No need to apologise.

I just wanted to clarify why it would 'make sense' for that someone to have worked on a ROS 2 version.

@mora200217
Copy link

Hi!

Any update on this? We are trying to use ROS2 humble for a IRB 140. At first glance, we thought on bridge connection and have a ROS1 instance running to connect to HW and ROS2 process to send the desired joint config.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task Something to do
Development

No branches or pull requests

8 participants