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

Execution speed and EGM parameter documentation #158

Closed TheodoroCardoso closed 1 year ago

TheodoroCardoso commented 1 year ago

Hi everyone!

My team and I are using this repository with the abb_robot_driver to control an ABB IRB2600 through MoveIt in ROS Noetic.

Following the tutorials available, we were able to get quite nice results already. Our goal is to perform the planned trajectory as fast as possible.

Looking at the position curve recorded from the real robot in the image below, we can see the ramp_in_time is very fast (set to 0.05), however, the deacceleration phase takes a lot longer.

image

This does not match the trajectory planned by MoveIt using the same simulated position_controllers/JointTrajectoryController

I have tried tweaking a bunch of different EgmSettings, including cond_min_max and ramp_out_time. Here's the current setup:

settings.activate.cond_min_max = 5
settings.activate.max_speed_deviation = math.degrees(8.722)
settings.run.cond_time = 600
settings.run.ramp_in_time = 0.005
settings.stop.ramp_out_time = 0.005

Are there specific sets of values accepted for the parameters mentioned above?

Could you please point me to the documentation for the EGM settings / their ROS implementation?

Would you have any ideas on what could be causing this behavior or how to fix it?

Best, Theodoro