Adds command timeout. This is implemented on the real robot, preventing the robot from continuously moving if JointCommand is published too infrequently. If the minimum frequency is met, the controllers will function as normal. If the timeout is violated, the arm switches to Position Control mode and holds its position.
This PR:
Switches controllers back to Position Control (from Torque or Velocity control modes) if command timeout is violated
Adds a subscriber to configure how long to wait for JointCommand Timeouts
Note: This approach does not not stop the arm from moving if the arm is already in Position/Trajectory mode. Additional investigation is required to force these modes to stop movement and hold position if the timeout is violated.
Adds command timeout. This is implemented on the real robot, preventing the robot from continuously moving if JointCommand is published too infrequently. If the minimum frequency is met, the controllers will function as normal. If the timeout is violated, the arm switches to Position Control mode and holds its position.
This PR:
Note: This approach does not not stop the arm from moving if the arm is already in Position/Trajectory mode. Additional investigation is required to force these modes to stop movement and hold position if the timeout is violated.