IFL-CAMP / iiwa_stack

ROS integration for the KUKA LBR IIWA R800/R820 (7/14 Kg).
Other
338 stars 250 forks source link

Use of DirectServo instead of SmartServo? #291

Open yoonhokim0409 opened 2 years ago

yoonhokim0409 commented 2 years ago

Hello,

I was wondering whether there is a way to enable the use of DirectServo, which seems to have benefits for some applications that require low latency. For joystick teleoperation, for instance, it seems DirectServo works much better from my experiences of using KST-Kuka-Sunrise-Toolbox based on DirectServo than with iiwa_stack based on SmartServo.

Screenshot 2022-08-20 122228

Unlike SmartServo, in which both velocity and acceleration can be configured, DirectServo has only velocity as a configurable parameter. I have been looking into the Java codes of iiwa_stack and came to the conclusion that some class files that are equivalent to SmartServo may be needed for DirectServo in the iiwa_msgs package.

For example, I will need equivalents of SetSmartServoJointSpeedLimits.class --> SetDirectServoJointSpeedLimits.class SetSmartServoJointSpeedLimitsRequest.class --> SetDirectServoJointSpeedLimitsRequest.class SetSmartServoJointSpeedLimitsResponse.class --> SetDirectServoJointSpeedLimitsResponse.class, with the accleration parameter deleted.

It seems, however, that there are no .java source files from which these class files are compiled in iiwa_stack package, so I was wondering how I could add these new classes.

@exo-core: Do you have any idea or advice on my attempt to enable the use of DirectServo?

omarrayyann commented 1 year ago

@luke-kim409 @exo-core Did you manage to enable the use of Direct Servo?