Package Summary
| Version | 0.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.1 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | kilted |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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.4.1 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, 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.4.2 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | lyrical |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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.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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico
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.4.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/EasyNavigation/easynav_plugins.git |
| VCS Type | git |
| VCS Version | jazzy |
| Last Updated | 2026-07-26 |
| 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 | |
| rolling | |
| jazzy |
Plugin (pluginlib)
-
Plugin Name:
easynav_serest_controller/SerestController -
Type:
easynav::SerestController -
Base Class:
easynav::ControllerMethodBase -
Library:
easynav_serest_controller - Description: A SeReST (Smooth Error-Responsive Speed and Turning) controller for path tracking.
Parameters
All parameters are declared under the plugin namespace, i.e., /<node_fqn>/easynav_serest_controller/SerestController/....
This plugin derives from
easynav::ControllerMethodBase.
See that section for shared collision-checking parameters and debug markers common to all controllers.
| Name | Type | Default | Description |
|---|---|---|---|
<plugin>.a_acc |
double |
0.8 |
Comfortable forward acceleration (m/s²). |
<plugin>.a_brake |
double |
1.2 |
Comfortable braking deceleration (m/s²). |
<plugin>.a_lat_max |
double |
1.5 |
Maximum lateral acceleration (m/s²). |
<plugin>.a_lat_soft |
double |
1.1 |
Soft lateral acceleration bound (m/s²). |
<plugin>.allow_reverse |
bool |
false |
Allow reversing when beneficial. |
<plugin>.apex_ey_des |
double |
0.05 |
Desired lateral error at apex for shaping (m). |
<plugin>.blend_base |
double |
0.6 |
Base blending factor for curvature tracking. |
<plugin>.blend_k_per_v |
double |
0.6 |
Additional blending proportional to speed. |
<plugin>.corner_boost_omega |
double |
0.8 |
Omega boost when cornering. |
<plugin>.corner_gain_eth |
double |
0.7 |
Cornering gain for heading error. |
<plugin>.corner_gain_ey |
double |
1.5 |
Cornering gain for lateral error. |
<plugin>.corner_gain_kappa |
double |
0.4 |
Cornering gain for curvature error. |
<plugin>.corner_guard_enable |
bool |
true |
Enable cornering guard logic. |
<plugin>.corner_min_alpha |
double |
0.35 |
Minimum blending near corners. |
<plugin>.d0_margin |
double |
0.30 |
Base obstacle clearance margin (m). |
<plugin>.d_hard |
double |
0.20 |
Hard-stop distance threshold (m). |
<plugin>.dist_search_radius |
double |
2.0 |
Search radius when matching to path (m). |
<plugin>.ell |
double |
`` | Lookahead distance (m). |
<plugin>.eps |
double |
1e-3 |
Small epsilon to avoid division by zero. |
<plugin>.final_align_k |
double |
2.0 |
Gain used during final alignment. |
<plugin>.final_align_wmax |
double |
0.6 |
Max angular speed during final alignment (rad/s). |
<plugin>.goal_pos_tol |
double |
0.05 |
Goal position tolerance (m). |
<plugin>.goal_yaw_tol_deg |
double |
5.0 |
Goal yaw tolerance (degrees). |
<plugin>.k_s |
double |
`` | Gain on progress along path (s). |
<plugin>.k_s_share_max |
double |
0.5 |
Max share of speed from s-progress term. |
<plugin>.k_theta |
double |
`` | Heading error gain. |
<plugin>.k_y |
double |
`` | Lateral error gain. |
<plugin>.kappa_max |
double |
2.5 |
Maximum allowed curvature (1/m). |
<plugin>.max_angular_acc |
double |
2.0 |
Angular acceleration limit (rad/s²). |
<plugin>.max_angular_speed |
double |
1.5 |
Angular speed limit (rad/s). |
<plugin>.max_linear_acc |
double |
0.8 |
Linear acceleration limit (m/s²). |
<plugin>.max_linear_speed |
double |
0.6 |
Speed limit (m/s). |
<plugin>.slow_min_speed |
double |
0.03 |
Minimum speed within slow zone (m/s). |
<plugin>.slow_radius |
double |
0.60 |
Radius to start slowing down near goal (m). |
<plugin>.t_emerg |
double |
0.25 |
Emergency stop time horizon (s). |
<plugin>.tau_latency |
double |
0.10 |
Actuation latency (s). |
<plugin>.v_progress_min |
double |
0.05 |
Minimum forward speed to ensure progress (m/s). |
<plugin>.v_ref |
double |
0.6 |
Nominal reference speed (m/s). |
Interfaces (Topics and Services)
Subscriptions and Publications
This controller communicates through NavState (no direct ROS topics in this plugin).
Services
This package does not create service servers or clients.
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 |
File truncated at 100 lines see the full file
Changelog for package easynav_serest_controller
0.4.0 (2026-07-26)
- Add missing easynav_sensors deps
- Navstate key among filters are always map, not an arbitrary key
- Adaptations to #94
- Update plugins to new sensors API
- Fix segfault in some cases and reduce extrapolation to the future
- GPLv3 -> Apache 2.0
- Sync to current EasyNavigation
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, migueldm
0.2.1 (2026-02-27)
- 0.2.0
- GPLv3 -> Apache 2.0
- Documentation was corrected
- Remove C++20/C++23 features and update to new MethodBase interface
- Merge branch 'set_robot_frame' into frames-fix-pr-40
- TFInfo in RTTFBuffer
- Refactor to use TFInfo
- Sync to current EasyNavigation
- Translate comments
- Referencing base class if ot void
- Merge remote-tracking branch 'upstream/rolling' into rolling
- Fix Link error in controller
- Optimize execution
- Cleanup unused headers
- Contributors: Francisco Martín Rico, Francisco Miguel Moreno, José Miguel Guerrero, Juan S. Cely G., Miguel, estherag
0.0.2 (2025-10-12)
- Reorganization initial
- Contributors: Francisco Martín Rico