PickNikRobotics / abb_ros2

Apache License 2.0
82 stars 34 forks source link

Real robot controller throws error for joint_1 #43

Closed Yadunund closed 1 year ago

Yadunund commented 2 years ago

Hi @stephanie-eng

I had a chance to try this hardware_interface with a real IRB manipulator. The AbbHardwareInterface class was able to successfully initializeand the EGM client on the robot was successfully connected. The robot's state in RViz matched that of the physical robot's current pose. No joint trajectory commands were sent. But after 10 seconds or so of idle operation, the ABB controller throws this error below

image

The Probable case in the error description hinted that it might be due to speed limitations. I figured the hardware_interface is sending higher than expected speed values to the joints and so I increased the \MaxSpeedDeviation parameter in rapid to 100. The rest of the RAPID code is the same. But now the robot violently jerks after the same 10 seconds and comes to a halt with the error below.

image

I'm not able to replicate this behaviour with the exact same robot+controller running in RobotStudio. I'm able to successfully plan and execute trajectories when connected to RobotStudio.

Hence, I'm wondering if you or your team might have any debugging suggestions for this problem. Would it be related to joint speeds in the urdf? Or something in the ros2_control.xacro file? Would modifying the PID values used by the joint_trajectory_controller help? Any advise would be much appreciated.

We plan to contribute the description package of our robot and launch files to this repo once we can confirm everything works with the real robot. We're having no issues in RobotStudio simulation.

Yadunund commented 1 year ago

Managed to resolve these issues by

  1. Updating RW from 6.11 -> 6.13
  2. Explicitly defining min max limits for all velocity command interfaces and initial values for all state interfaces in the ros2_control.xacro file.