deoxys_control icon indicating copy to clipboard operation
deoxys_control copied to clipboard

`joint_acceleration_discontinuity` for `CARTESIAN_VELOCITY` control

Open jstmn opened this issue 5 months ago • 0 comments

Hi,

I'm trying to use the CARTESIAN_VELOCITY controller but am unable to send any commands, due to the cartesian_motion_generator_joint_acceleration_discontinuity: true error being thrown, even for very small actions. This error crashes the franka-interface program. I haven't made any changes to the controller config files. It seems like the logic in cartesian_velocity_control.py avoids this error by very slowly increasing the input. I'd like to be able to command to any arbitrary velocity however, and have the controller try to reach that velocity on its own. Is that possible? How can I do that if so?

Example code:

franka_interface = FrankaInterface(deoxys_interface_cfg,  use_visualizer=False)
reset_joint_positions = [
    0.09162008114028396,
    -0.19826458111314524,
    -0.01990020486871322,
    -2.4732269941140346,
    -0.01307073642274261,
    2.30396583422025,
    0.8480939705504309,
]
reset_joints_to(franka_interface, reset_joint_positions)

controller_type = "CARTESIAN_VELOCITY"
controller_cfg = get_default_controller_config(controller_type=controller_type)
for i in range(100):
    action = [0.0025, 0.0, 0.0, 0.0, 0.0, 0.0] + [-1] # repeat crashes
    franka_interface.control(
        controller_type=controller_type,
        action=action,
        controller_cfg=controller_cfg,
    )
    print(franka_interface._state_buffer[-1].current_errors) # returns 'cartesian_motion_generator_joint_acceleration_discontinuity: true'

Thanks

jstmn avatar Aug 14 '25 00:08 jstmn