Toni-SM / libiiwa

Scalable cross-platform multi-control framework for KUKA LBR iiwa cobots (Python - ROS - ROS2)
https://libiiwa.readthedocs.io
MIT License
15 stars 3 forks source link

Some Characteristics about libiiwa. #2

Closed CodingCatMountain closed 1 year ago

CodingCatMountain commented 1 year ago

Hello, developer! @Toni-SM . Thank you for this repo! There is a KUKA iiwa7 in my lab. So far,we utilize the iiwa_stack or even "iiwa_ros" repo to control KUKA iiwa7. However, we have met some problems. 1. iiwa_stack is too slow due to the Protocol used in this repo. And iiwa_stack does not provide the API to control joint_torque. So a lot of useful controller, e.g., LQR, could not be implemented via iiwa_stack. 2. iiwa_ros is not very stable. For example, KUKA iiwa7 will randomly swing when the control mode is set as "Position". And there are some problems happen in gravity compensation when the tool is attached on the end-effector of iiwa7. So I wanna to ask some questions about this repo. Which protocol used in this repo? Does any controller example rely on the joint_torque have been implemented on the real robot via this repo? Or could you provide more real-robot examples which the input of the controller running on the real robot is joint_torque? Looking forward to your reply! :-)

Toni-SM commented 1 year ago

Hi @CodingCatMountain

Current libiiwa implementation relies on the KUKA Standard and Servoing interfaces:

Neither of them allows the application of torque for robot control.

For this, it is necessary to rely on the KUKA Fast Robot Interface (FRI), a fast robot interface that enables access to the robot controller from an external computer in real time. FRI can only be controlled in C++ (KUKA Fast Robot Interface C++ SDK) and requires JAVA to initialize the FRI interface at robot (cabinet) side.

The idea is to eventually add FRI support to libiiwa... although I don't know for when