-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Switch Controller Failed #27
Comments
Hi, Yes, there is a problem sometimes when switching controllers very quickly, which happens when the first controller is not fully stopped. I am planning to work on a fix for this soon. robot.exec_velocity_cmd(joints_velocity) # send a velocity command
rospy.sleep(0.5) # add a delay of 0.5 sec
robot.move_to_joint_positions(joints_positions) # uses position controller (joint_trajectory_controller) Hope this helps. -- Saif |
Hi, Saif, Thank you for your reply! I add a delay of 0.5 second between two commands, but it raises an error that "Controller position_joint_trajectory_controller failed with error GOAL_TOLERANCE_VIOLATED". And robot just stopped. My solution is delete the current INTERFACE instance, and create a new one, like that: robot.exec_velocity_cmd(joints_velocity)
robot.exit_control_mode()
del robot
robot = PandaArm()
robot.move_to_joint_positions(joints_positions) It works for me, but restarting is time consuming. Following please find the execution log of
|
Hi, |
Also I would suggest not to use |
Hi, Saif, Hank |
Hi, justagist,
Thank you for your nice work of franka arm!
I meet a problem when I try to send a joints position command after a joints velocity command.
There was an error that "robot still moving", and the following position command failed.
I found a notice in franka FCI website, which says "When using velocity interfaces, do not simply command zero velocity in
stopping
. Since it might be called while the robot is still moving, it would be equivalent to commanding a jump in velocity leading to very high resulting joint-level torques."It seems that I need to call
stopping
function to stop velocity controller before I start position controller.Then, I try to stop the velocity controller and switch to position controller, but the position command failed too. My code looks like that:
robot.exec_velocity_cmd(joints_velocity) # send a velocity command
robot.exit_control_mode() # exit currernt control mode
robot.move_to_joint_positions(joints_positions) # send a position command, but failed
Could you please give some suggestions about that?
Thank you so much!
The text was updated successfully, but these errors were encountered: