-
Notifications
You must be signed in to change notification settings - Fork 26
Description
This is a proposal to trigger generic "things" during trajectory execution.
I propose extending the trajectory_msgs/JointTrajectory message type with an additional string[] waypoint_callbacks field. The length of this field should match length(points). If the string is non-empty for that waypoint, the corresponding callback gets executed. The user should be responsible for not breaking realtime in this callback, or being aware that they are breaking it and it does not matter for their robot. (For example, UR robots are well tolerant of non-realtime commands, so it may not matter if realtime is broken for them.) Since there is a separate thread to execute the callbacks, opportunities to break realtime performance are less.
The new message type might look like this:
trajectory_msgs/JointTrajectoryWithCallbacks
std_msgs/Header header
string[] joint_names
trajectory_msgs/JointTrajectoryPoint[] points
string[] waypoint_callbacks
I would propose a master/slave threading architecture for this, as shown below. (Please propose a different name if political correctness is a concern, I'm aware that this name is not tactful).
