lbr_fri_ros2_stack icon indicating copy to clipboard operation
lbr_fri_ros2_stack copied to clipboard

Add support for controllers

Open mhubii opened this issue 4 months ago • 10 comments

  • Cartesian controllers (maybe for velocity mostly): https://github.com/fzi-forschungszentrum-informatik/cartesian_controllers/tree/ros2
    • Add a demo a la https://github.com/fzi-forschungszentrum-informatik/cartesian_controllers#getting-started, https://github.com/stefanscherzinger/cartesian_controllers_universal_robots/tree/ros2
  • Cartesian impedance alternative: https://github.com/matthias-mayr/Cartesian-Impedance-Controller/tree/master (ROS 2 to be added)
  • Admittance controller: https://control.ros.org/master/doc/ros2_controllers/admittance_controller/doc/userdoc.html
  • Somewhat related: MoveIt Servo https://github.com/lbr-stack/lbr_fri_ros2_stack/issues/50

mhubii avatar Mar 14 '24 11:03 mhubii

Will end controller be updated soon?

CarlDegio avatar Mar 25 '24 08:03 CarlDegio

you mean end-effector velocity? Yes, we should add support for MoveIt Servo etc

mhubii avatar Mar 25 '24 09:03 mhubii

Actually I am referring to the end position controller, but it can also be achieved with the end speed controller.

Also, I have tried moveit servo. It's not work well. It seems that its solving frequency cannot reach 100Hz so there are noise when running. And it will move to all joints zero when error in config files, dangerous. It broke my heart :(

CarlDegio avatar Mar 25 '24 09:03 CarlDegio

well lets get that sorted then, I am quite positive this should work now. Moving the end-effector to a target position can be achieved in a variety of ways

mhubii avatar Mar 25 '24 09:03 mhubii

The Cartesian controllers mentioned here may work better. Especially I notice it has force controller and impedance controller, which only realized in kuka workbench (SmartServo) now.

CarlDegio avatar Mar 25 '24 09:03 CarlDegio

jap, would be great to use an open-source version for Cartesian impedance control etc

mhubii avatar Mar 25 '24 09:03 mhubii

by the way, if you would want to create a pull request for the moveit servo, I am more than happy to review it

mhubii avatar Mar 25 '24 09:03 mhubii

FYI, we ran the cartesian_controllers package on an iiwa7 with iiwa_ros in ROS 1 some years ago, but the results were a bit mixed. It was fairly difficult to find a stable configuration and it came of the cost of slow and sluggish behavior. There is a master thesis report on that. But I know that Stefan did some updates on the package that could have changed that.

For us, we proceeded to implement real Cartesian impedance control and made it available on Github and also wrote a short paper. It's fairly easy to integrate. However unfortunately I did not have time to port it to ROS 2 yet and I will also not have time in the near future.
If anyone wants to do that, I am happy to answer questions and review the code.

matthias-mayr avatar Mar 25 '24 20:03 matthias-mayr

hi @matthias-mayr , thank you for reaching out, been following your implementation, congrats on the PhD ! Would love to see what can be done re ROS 2 on your implementation. Let's see!

mhubii avatar Mar 25 '24 21:03 mhubii

Thanks. There have already been requests for ROS 2 and there's an open issue. If one goes down the "easy" road like cartesian_controllers and has a separate branch it should be fairly straight forward. The base library that implements the algorithms is separated and just has a ROS wrapper.

matthias-mayr avatar Mar 25 '24 22:03 matthias-mayr