Open HongyuanChen opened 6 months ago
@HongyuanChen I have to correct the following two points: 1) The highest velocity of commanded path is 0.01 m/s ( not 0.01 mm/s) 2) in 2, the robot should move 0.09 m (not 0.9 m)
Hello, I am currently also encountering this problem ‘cartesian_motion_generator_joint_acceleration_discontinuity’, and sometimes there are velocity problems. Currently, I am using the smooth trajectory processing method, but the progress is not great. Have you solved this problem?
Hello, I modified it according to your method and it works, but the same error occurs that the moving distance does not reach the set distance. Have you solved this problem?
I want to write my own controller based on the cartesian_example_controller. I have tried two ways to send_command in update() function. 1 send the the command directly without using the RobotState.O_T_EE_D the cartesian_move_controller.cpp code is listed as follow:
Anyone who would like to run the code just need to add the iir for low-pass filer. And add the
into the CMakeList.txt Result: libfranka: Move command aborted: motion aborted by reflex! ["cartesian_motion_generator_joint_acceleration_discontinuity"] control_command_success_rate: 0.97 Analysis: 1、 The cartesian_path don't violate the limits in cartesian space but in joint space (jerk limit violation). However, there is no way for us to get the desired joint command in internal controller (through internal IK solver), because we could get the IK solver of q_d only the next control loop when using the FrankaCartesianPoseInterface.send_command(idealpose) while the joint jerk limits might be violated in this loop which turns out to be an error and aborts. 2、 Since the move speed is not so fast 0.01mm/s which is slower than most of the example_controller could provide, It's quite confusing.
2 send the the command directly without using the RobotState.O_T_EE_D Just like the previous issue #71, I have tried to use the current RobotState.O_T_EE_D to send command.
Result: The command sent by every loop to substract a fixed delta_z from current O_T_EE_d, It should move 0.9 m ideally, but from the ROS_INFO, the real movement is only 0.019 m which differs a lot. Analysis: Maybe the cartesian command of current loop sent to the controller is not regarded as the O_T_EE_d of the next loop. I am also confused of the inner trajectory tracking controller, how it works?
I appreciate it if someone could solve my problem, thanks for your help.