Hello,
how do i use servofloat on KUKA KRC2?
Thanks
Hello,
how do i use servofloat on KUKA KRC2?
Thanks
Very carefully.
This is a simple program I used to put the E2 axis into soft-servo mode and drive it to close a gripper onto a pallet (the pallets changed size, so I had to use a force-based gripper).
GLOBAL DEF Force_Grip (Force:IN, Position:IN)
INT Force
INT Position
;Break Advance Pointer
WAIT FOR TRUE
;Select which axis to put into Torque Mode (binary, Axis1 is LSB)
$TORQUE_AXIS='B10000000'
;Set % of Max Current that Torque-sensing will trip at
$CURR_RED[8,1] = Force
;FOLD Drive E2 towards closure
IF (($MODE_OP==#EX) OR ($MODE_OP==#AUT)) THEN
$VEL_EXTAX[2]=Torque_Speed
ELSE
$VEL_EXTAX[2]=100
IF $OV_PRO>90 THEN
; $OV_PRO=90
ENDIF
ENDIF
wait for true
; oscilloscope troubleshooting triggers
TRIGGER WHEN DISTANCE=0 DELAY=-100 DO $OUT[200]=TRUE
TRIGGER WHEN DISTANCE=1 DELAY= 100 DO $OUT[200]=FALSE
; Close E2 to Position while holding current position otherwise
Next_Pos=$POS_ACT
Next_Pos.E2=Position
PTP Next_Pos
;ENDFOLD
;Reset Current limit
$CURR_RED[8,1]=100
;Disengage Torque Mode
$TORQUE_AXIS=0
END
Display More
You should not use Soft Servo for any axis that has potential to fall -- A2 and A3 most especially, and the wrist axes are... questionable. And the motion of an axis in Soft mode is a bit odd -- the axis will stop moving physically once the torque limit is reached, but if you watch the live Joint Position display, the axis keeps moving "virtually" until the motion command is complete. So $POS_ACT and $AXIS_ACT will not be accurate until you force a move after exiting Torque mode (the Next_Pos move in the above example).