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
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
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 | humble |
| Last Updated | 2026-10-09 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Francisco Martín Rico
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 | |
| jazzy | |
| kilted | |
| lyrical | |
| 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, wherecontroller_node.robot_limits.*does not set that limit. They will stop working soon: move them torobot_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.
NavState Keys
| 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 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