No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

Package Summary

Version 0.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version kilted
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric
serest.debug.e_theta double/int Write Debug metric
serest.debug.kappa_hat double/int Write Debug metric
serest.debug.d_closest double/int Write Debug metric
serest.debug.v_safe double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

No version for distro github showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description
Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version jazzy
Last Updated 2026-02-27
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easy Navigation: SeReST Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_serest_controller

ROS 2: kilted ROS 2: rolling ROS 2: jazzy

Description

A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Authors and Maintainers

  • Authors: Intelligent Robotics Lab
  • Maintainers: Francisco Martín Rico fmrico@gmail.com

Supported ROS 2 Distributions

Distribution Status
humble kilted
jazzy jazzy
kilted kilted
rolling rolling
jazzy jazzy

Plugin (pluginlib)

  • Plugin Name: easynav_serest_controller/SerestController
  • Type: easynav::SerestController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_serest_controller
  • Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.

Parameters

All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....

This plugin derives from easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.

Name Type Default Description
<plugin>.a_acc double 0.8 Comfortable forward acceleration (m/s²).
<plugin>.a_brake double 1.2 Comfortable braking deceleration (m/s²).
<plugin>.a_lat_max double 1.5 Maximum lateral acceleration (m/s²).
<plugin>.a_lat_soft double 1.1 Soft lateral acceleration bound (m/s²).
<plugin>.allow_reverse bool false Allow reversing when beneficial.
<plugin>.apex_ey_des double 0.05 Desired lateral error at apex for shaping (m).
<plugin>.blend_base double 0.6 Base blending factor for curvature tracking.
<plugin>.blend_k_per_v double 0.6 Additional blending proportional to speed.
<plugin>.corner_boost_omega double 0.8 Omega boost when cornering.
<plugin>.corner_gain_eth double 0.7 Cornering gain for heading error.
<plugin>.corner_gain_ey double 1.5 Cornering gain for lateral error.
<plugin>.corner_gain_kappa double 0.4 Cornering gain for curvature error.
<plugin>.corner_guard_enable bool true Enable cornering guard logic.
<plugin>.corner_min_alpha double 0.35 Minimum blending near corners.
<plugin>.d0_margin double 0.30 Base obstacle clearance margin (m).
<plugin>.d_hard double 0.20 Hard-stop distance threshold (m).
<plugin>.dist_search_radius double 2.0 Search radius when matching to path (m).
<plugin>.ell double `` Lookahead distance (m).
<plugin>.eps double 1e-3 Small epsilon to avoid division by zero.
<plugin>.final_align_k double 2.0 Gain used during final alignment.
<plugin>.final_align_wmax double 0.6 Max angular speed during final alignment (rad/s).
<plugin>.goal_pos_tol double 0.05 Goal position tolerance (m).
<plugin>.goal_yaw_tol_deg double 5.0 Goal yaw tolerance (degrees).
<plugin>.k_s double `` Gain on progress along path (s).
<plugin>.k_s_share_max double 0.5 Max share of speed from s-progress term.
<plugin>.k_theta double `` Heading error gain.
<plugin>.k_y double `` Lateral error gain.
<plugin>.kappa_max double 2.5 Maximum allowed curvature (1/m).
<plugin>.max_angular_acc double 2.0 Angular acceleration limit (rad/s²).
<plugin>.max_angular_speed double 1.5 Angular speed limit (rad/s).
<plugin>.max_linear_acc double 0.8 Linear acceleration limit (m/s²).
<plugin>.max_linear_speed double 0.6 Speed limit (m/s).
<plugin>.slow_min_speed double 0.03 Minimum speed within slow zone (m/s).
<plugin>.slow_radius double 0.60 Radius to start slowing down near goal (m).
<plugin>.t_emerg double 0.25 Emergency stop time horizon (s).
<plugin>.tau_latency double 0.10 Actuation latency (s).
<plugin>.v_progress_min double 0.05 Minimum forward speed to ensure progress (m/s).
<plugin>.v_ref double 0.6 Nominal reference speed (m/s).

Interfaces (Topics and Services)

Subscriptions and Publications

This controller communicates through NavState (no direct ROS topics in this plugin).

Services

This package does not create service servers or clients.

Key Type Access Notes
path nav_msgs::msg::Path Read Reference path.
robot_pose nav_msgs::msg::Odometry Read Robot odometry.
points PointPerceptions Read Obstacle point cloud(s).
closest_obstacle_distance double Read Precomputed dynamic obstacle metric.
cmd_vel geometry_msgs::msg::TwistStamped Write Commanded velocity.
serest.debug.e_y double/int Write Debug metric

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package easynav_serest_controller

0.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Remove C++20/C++23 features and update to new MethodBase interface
  • Merge branch 'set_robot_frame' into frames-fix-pr-40
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Sync to current EasyNavigation
  • Translate comments
  • Referencing base class if ot void
  • Merge remote-tracking branch 'upstream/rolling' into rolling
  • Fix Link error in controller
  • Optimize execution
  • Cleanup unused headers
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_serest_controller at Robotics Stack Exchange