Class SerestController
Defined in File SerestController.hpp
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public ControllerMethodBase
Class Documentation
SeReST (Safe Reparameterized Time) controller for path tracking.
This controller follows a discrete polyline path (e.g., A* on grid) using a local geometric substitute (LGS) to obtain a smooth reference heading and a surrogate curvature. Progress along the path is time–reparameterized by a safety governor that depends on the closest obstacle distance. It supports:
Forward-only or reverse-enabled operation
Smooth slowdown and precise arrival at a goal pose (position + yaw)
Real-time reaction to dynamic obstacles with emergency stop
Corner-guard behavior to avoid opening to the outside of tight turns
The controller consumes:
A continuously refreshed path (robot -> goal)
Robot pose (odometry) and outputs: a Twist (linear, angular velocities).
Public Functions
Default constructor.
Destructor.
Initialize parameters and internal state.
- Throws:
std::runtime_error – on initialization error.
Real-time control update (called ~20–30 Hz).
Consumes
NavStatekeys:”path”:
nav_msgs::msg::Path”robot_pose”:
nav_msgs::msg::Odometry(optional) “closest_obstacle_distance”:
double
Produces:
”cmd_vel”:
geometry_msgs::msg::TwistStamped
- Parameters:
nav_state – [inout] Blackboard for inputs/outputs and diagnostics.
Simple 2D vector utility type.
Provides basic arithmetic operators and a friend scalar multiplication (scalar * vector).
Public Functions
Vector addition.
Vector subtraction.
Scalar multiplication (vector * scalar).
Public Members
X component.
Y component.
Friends
Scalar multiplication (scalar * vector).