Yaskawa-Global / motoros2

ROS 2 (rcl, rclc & micro-ROS) node for MotoPlus-compatible Yaskawa Motoman robot controllers
95 stars 16 forks source link

Allow trajectory execution to be delayed (ie: when `trajectory.header.stamp != 0`) #29

Open gavanderhoorn opened 1 year ago

gavanderhoorn commented 1 year ago

The FollowJointTrajectory action server in ros_control (joint_trajectory_controller) allows clients to request trajectory execution to start at a specific time in the future instead of immediately upon reception of the goal.

This is done by setting trajectory.header.stamp to something other than 0.

See wiki/joint_trajectory_controller/UnderstandingTrajectoryReplacement for a (terse) discussion of this functionality (note: that page is mostly about how the joint_trajectory_controller performs trajectory replacement or blending, that's not what I link it for here).

As MotoROS2 and the ROS 2 host PC sync their clocks, we could consider supporting this.

The 'dwell' time this results in can be calculated as goal.trajectory.header.stamp - current_controller_time.

gavanderhoorn commented 1 year ago

This is a nice-to-have, so low-priority and added to untargeted.