The Trajectory Tracker Node is a ROS 2 node designed to track and execute vehicle trajectories. It supports multiple controllers that calculate the optimal control commands (acceleration and steering) based on the current vehicle state and a desired trajectory.
- Multiple Controllers Supported: The node supports different controllers for trajectory tracking, including:
- NMPC (Nonlinear Model Predictive Controller)
- PID (Proportional-Integral-Derivative Controller)
- iLQR (Iterative Linear Quadratic Regulator)
- Real-time Control: The node operates in real-time, constantly computing and publishing vehicle commands.
- Configurable via ROS 2 Parameters: You can dynamically choose which controller to use and configure controller parameters via ROS 2 launch files or parameter servers.
- NMPC: Optimizes the trajectory over a prediction horizon while respecting control and vehicle limits.
- PID: Adjusts steering and speed based on the error between the current state and the desired trajectory.
- iLQR: Computes the optimal control commands using iterative linear quadratic methods.
set_controller(int): Defines which controller to use. Options:0: NMPC (default)1: PID3: iLQR
controller_settings: A dictionary of controller-specific parameters. Each controller can be configured with different settings (e.g., PID gains, NMPC weights). These are given in two vectors: keys (string) and values (double)vehicle_type(string): Specifies the type of vehicle being controlled, e.g., "simulation" or a real-world vehicle type.
-
Published Topics:
/next_vehicle_command(adore_ros2_msgs::msg::VehicleCommand): The next control command (acceleration, steering) for the vehicle.
-
Subscribed Topics:
/planned_trajectory(adore_ros2_msgs::msg::Trajectory): The desired trajectory the vehicle should follow./vehicle_state/dynamic(adore_ros2_msgs::msg::VehicleStateDynamic): The current dynamic state of the vehicle (e.g., position, velocity, yaw)./choosen_decision_maker(adore_ros2_msgs::msg::DecisionMakerSelect): The decision-maker selecting the mode (normal or emergency).