Skip to content

Joint trajectory server might cause unexpected movements when disabling and enabling the robot #65

@Petrox

Description

@Petrox

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions