lbr_fri_ros2_stack
lbr_fri_ros2_stack copied to clipboard
Add support for controllers
- 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
Will end controller be updated soon?
you mean end-effector velocity? Yes, we should add support for MoveIt Servo etc
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 :(
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
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.
jap, would be great to use an open-source version for Cartesian impedance control etc
by the way, if you would want to create a pull request for the moveit servo, I am more than happy to review it
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.
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!
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.