ros-industrial / abb_libegm

A C++ library for interfacing with ABB robot controllers supporting Externally Guided Motion (689-1)
BSD 3-Clause "New" or "Revised" License
93 stars 53 forks source link

abb_libegm vs abb_robot_driver #120

Closed stevedanomodolor closed 3 years ago

stevedanomodolor commented 3 years ago

this is out of curiosity, What are the advatatges of using the abb_libegm vs using the abb_driver?

traversaro commented 3 years ago

abb_libegm is a pure C++ library that do not depend on ROS, while the abb_robot_driver provides ready to use ROS nodes. Internally, to implement the ROS nodes abb_robot_driver uses the abb_libegm C++ library.

gavanderhoorn commented 3 years ago

abb_libegm vs abb_driver

abb_driver is not the same as abb_robot_driver.

Could you clarify which one you're asking about @stevedanomodolor?

stevedanomodolor commented 3 years ago

abb_robot_driver, @gavanderhoorn, If i wanted to use moveit for motion planning, would you advice me to use abb_robot_driver or send the command directly with the abb_lib_egm? Or it there already a way of doing motion plannig directlty with the abb_robot_driver?

gavanderhoorn commented 3 years ago

What are the advatatges of using the abb_libegm vs using the abb_driver?

I believe @traversaro explained it well enough: abb_robot_driver is an actual ROS driver for ABB controllers. abb_libegm is a low-level library for interfacing with EGM capable ABB controllers.

The former uses the latter, but they are definitely not comparable.

If i wanted to use moveit for motion planning, would you advice me to use abb_robot_driver or send the command directly with the abb_lib_egm?

Depends on how much work you want to do yourself.

Do you want to simply execute trajectories? Use abb_robot_driver.

Do you first want to have to write your own action server, trajectory interpolator and execution node(s)? Then use abb_libegm (probably in combination with abb_librws).

Or it there already a way of doing motion plannig directlty with the abb_robot_driver?

I'm not sure I understand what you mean by this.

Drivers typically don't perform any "motion planning". They are components which essentially transform data and control flow:

depending on what you'd classify as motion planning, I don't believe that would fall under these two responsibilities.

gavanderhoorn commented 3 years ago

As this is not an issue with abb_libegm, but more of a usage / general question, I'm going to close it.

Feel free to keep commenting on it of course @stevedanomodolor.

stevedanomodolor commented 3 years ago

@gavanderhoorn thank you very much , I understood it clearly