EasyNav Plugins
Loading...
Searching...
No Matches
SerestController Class Reference

SeReST (Safe Reparameterized Time) controller for path tracking. More...

#include <SerestController.hpp>

Inheritance diagram for SerestController:
Collaboration diagram for SerestController:

Classes

struct  Vec2
 Simple 2D vector utility type. More...

Public Member Functions

void on_initialize () override
 Initialize parameters and internal state.
 SerestController ()
 Default constructor.
void update_rt (NavState &nav_state) override
 Real-time control update (called ~20–30 Hz).
 ~SerestController () override
 Destructor.

Detailed Description

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).

Constructor & Destructor Documentation

◆ SerestController()

SerestController ( )
default

Default constructor.

◆ ~SerestController()

~SerestController ( )
overridedefault

Destructor.

Member Function Documentation

◆ on_initialize()

void on_initialize ( )
override

Initialize parameters and internal state.

Exceptions
std::runtime_erroron 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_stateBlackboard for inputs/outputs and diagnostics.

The documentation for this class was generated from the following files: