SeReST (Safe Reparameterized Time) controller for path tracking.
More...
#include <SerestController.hpp>
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).
◆ SerestController()
◆ ~SerestController()
◆ on_initialize()
Initialize parameters and internal state.
- Exceptions
-
| std::runtime_error | on initialization error. |
◆ update_rt()
| void update_rt |
( |
NavState & | nav_state | ) |
|
|
override |
Real-time control update (called ~20–30 Hz).
Consumes NavState keys:
- "path":
nav_msgs::msg::Path
- "robot_pose":
nav_msgs::msg::Odometry
- (optional) "closest_obstacle_distance":
double
Produces:
- "cmd_vel":
geometry_msgs::msg::TwistStamped
- Parameters
-
| [in,out] | nav_state | Blackboard for inputs/outputs and diagnostics. |
The documentation for this class was generated from the following files: