-
Notifications
You must be signed in to change notification settings - Fork 89
Closed
Description
Scenario:
- robot enabled
- using moveit to create a plan
- execution of the plan through moveit (or directly through joint trajectory server)
- robot reaches end pose
- program quits (planned or via fault)
- robot gets disabled
- arms are released, so they slowly reach a relaxed position
- robot gets enabled (the current user might not even know about the previous events, he just knows the robot is disabled)
- joint trajectory server tries to reach the last goal in the shortest time possible without checking the distance, the speed, or anything, just blindly exploding to the target pose.
- arms might hit each other, the environment or people
Note: this is a high speed, uncontrolled movement, the fastest I've seen Baxter moving ever, so using the maximum torque probably at the limits of mechanics. This usecase might even reduce the mechanical parts lifetime.
Workaround1:
when disabling the robot one could kill the joint trajectory server, and restart it, to start clean.
Workaround2:
Before enabling the robot, a program could use a TF listener (or other method), to get the current joint state, and command the joint trajectory server to that joint state, so when enabling the robot the joint trajectory server would move to there, not the dangerous remote one.
Suggested solution:
- joint trajectory server should listen on robot enabled / disabled state changes, and forget to
Metadata
Metadata
Assignees
Labels
No labels