Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.5.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

Description

Simple path-following controller that uses PID controllers and a look-ahead reference pose to follow a planned path. It produces velocity commands (cmd_vel) based on the reference pose sampled at a look-ahead distance and limits linear/angular speeds and accelerations.

Authors and Maintainers

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

Supported ROS 2 Distributions

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

Plugin (pluginlib)

  • Plugin Name: easynav_simple_controller/SimpleController
  • Type: easynav::SimpleController
  • Base Class: easynav::ControllerMethodBase
  • Library: easynav_simple_controller
  • Description: Path-following controller using PID (linear and angular) and a look-ahead strategy.

Parameters

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

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
— — — Velocity and acceleration limits are not this plugin’s: they are the robot limits of controller_node (robot_limits.max_linear_vel, min_linear_vel, max_angular_vel, max_linear_acc, max_linear_decel, max_angular_acc, max_angular_decel), queried with ControllerMethodBase::get_robot_limits() and also enforced by ControllerNode’s velocity smoother.
look_ahead_dist double 1.0 Look-ahead distance to sample the reference pose on the path (m).
tolerance_dist double 0.05 Distance threshold to switch to pure orientation tracking (m).
final_goal_angle_tolerance double 0.1 Angular tolerance (rad) used to decide final-goal arrival.
k_rot double 0.5 Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning).
linear_kp double 0.95 Proportional gain for the linear PID controller.
linear_ki double 0.03 Integral gain for the linear PID controller.
linear_kd double 0.08 Derivative gain for the linear PID controller.
angular_kp double 1.5 Proportional gain for the angular PID controller.
angular_ki double 0.03 Integral gain for the angular PID controller.
angular_kd double 0.08 Derivative gain for the angular PID controller.

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

Interfaces (NavState, Topics and Services)

This controller uses the shared NavState bag provided by the easynav_core framework. The following keys are used at runtime by SimpleController:

Key Type Access Notes
robot_pose nav_msgs::msg::Odometry Read Current robot odometry used to compute the robot pose and yaw.
path nav_msgs::msg::Path Read Planned path to follow. The controller samples a reference pose at look_ahead_dist along this path.
cmd_vel geometry_msgs::msg::TwistStamped Write Output velocity command. Header.frame_id is set to path.header.frame_id when available and stamp to the controller node clock.

Topics / Services

The controller itself does not create ROS publishers/subscribers or service servers. It interacts via the NavState abstraction; how NavState is exposed (topics or other IPC mechanisms) depends on the integrating node.

TF Frames

This controller reads pose from nav_msgs/Odometry (NavState key robot_pose). TF is not directly used in this plugin.

License

Apache-2.0

CHANGELOG

Changelog for package easynav_simple_controller

0.5.0 (2026-10-08)

  • Velocity smoother support and runtime reconfiguration
  • Contributors: Francisco Martín Rico

0.4.2 (2026-07-26)

  • Complete deps
  • GPLv3 -> Apache 2.0
  • 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
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Merge branch 'EasyNavigation:rolling' into rolling Navmap obstacle layer
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely, Juan S. Cely G., Miguel, migueldm

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange