Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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.5.0
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-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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.5.0
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-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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.5.0
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 lyrical
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 ardent showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 bouncy showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 crystal showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 eloquent showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 dashing showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 foxy showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 lunar showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 jade showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 indigo showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 hydro showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 kinetic showing humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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 humble. Known supported distros are highlighted in the buttons above.

Package Summary

Version 0.5.0
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 humble
Last Updated 2026-10-09
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 humble
jazzy jazzy
kilted kilted
lyrical lyrical
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).
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
<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).

Deprecated: this plugin’s former limit parameters (max_linear_speed, max_angular_speed, max_linear_acc, max_angular_acc, under the plugin’s name) still apply, with a warning, where controller_node.robot_limits.* does not set that limit. They will stop working soon: move them to robot_limits.

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.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Fixed failures with short paths
  • Tolerance parameters take effect
  • Removed unused dependencies
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno

0.4.2 (2026-07-26)

  • Complete deps
  • Navstate key among filters are always map, not an arbitrary key
  • Navstate key among filters are always map, not an arbitrary key
  • Adaptations to #94
  • Update plugins to new sensors API
  • GPLv3 -> Apache 2.0
  • Adjust output time in costmap stack
  • Add a base_footprint frame in TFInfo
  • 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
  • Final alignements
  • Referencing base class if ot void
  • Fix Link error in controller
  • Optimize execution
  • Adaptation to EasyNavigation#71
  • Fix CI with the correct branch
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

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