-
Notifications
You must be signed in to change notification settings - Fork 135
Description
Description
In line with having sharp, pointed tools, I think we need a nav_msgs/Trajectory
message to augment nav_msgs/Path
to include time series information from modern controllers like MPC and Reinforcement Learning.
The Path
only includes geometry_msgs/PoseStamped
for each via point and we also need to be able to communicate velocity, acceleration, and possibly force/torque.
Motivation
See description above.
Design / Implementation Considerations
There already exists today the trajectory_msgs
package, but these broadly apply to manipulators or multi-joint actuation systems. I don't believe that in the theme of conversations we've had recently on Goals
vs PoseStampedArray
that reusing that for a vasting different application is the maintainer's intent.
I am creating temporary versions of these in nav2_msgs
so we can keep moving forward, but given the dominance of MPC-based techniques (and RL, others) that have time-varying trajectory outputs, I think this is an important general standard for ROS interfaces
Additional Information
I propose the following, which make full use of standard geometry_msgs
fields for each data type, with some similar structural analogs to the trajectory_msgs
definitions:
nav_msgs/Trajectory
# An array of trajectory points that represents a trajectory for a robot to follow.
# Indicates the frame_id of the trajectory.
std_msgs/Header header
# Array of trajectory points to follow.
TrajectoryPoint[] points
nav_msgs/TrajectoryPoint
# Trajectory point state
# Desired time from the trajectory start to arrive at this trajectory sample.
builtin_interfaces/Duration time_from_start
# Pose of the trajectory sample.
geometry_msgs/Pose pose
# Velocity of the trajectory sample.
geometry_msgs/Twist velocity
# Acceleration of the trajectory (optional).
geometry_msgs/Accel acceleration
# Force/Torque to apply at trajectory sample (optional).
geometry_msgs/Wrench effort