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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

Package Summary

Version 0.3.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/EasyNavigation/easynav_plugins.git
VCS Type git
VCS Version kilted
Last Updated 2026-02-27
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 kilted
jazzy kilted
kilted kilted
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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange

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

Package Summary

Version 0.2.1
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

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

Package Description

Easy Navigation: Simple Controller package.

Maintainers

  • Francisco Martín Rico

Authors

No additional authors.

easynav_simple_controller

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

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 kilted
jazzy kilted
kilted kilted
rolling rolling
jazzy jazzy

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
max_linear_speed double 1.0 Maximum linear speed (m/s).
max_angular_speed double 1.0 Maximum angular speed (rad/s).
max_linear_acc double 0.3 Maximum linear acceleration (m/s²).
max_angular_acc double 0.3 Maximum angular acceleration (rad/s²).
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.

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.2.1 (2026-02-27)

  • 0.2.0
  • GPLv3 -> Apache 2.0
  • Documentation was corrected
  • Add a base_footprint frame in TFInfo
  • Remove C++20/C++23 features and update to new MethodBase interface
  • TFInfo in RTTFBuffer
  • Refactor to use TFInfo
  • Referencing base class if ot void
  • Optimize execution
  • Cleanup unused headers
  • Update sheets
  • Contributors: Francisco Martín Rico, Francisco Miguel Moreno, Juan S. Cely G., Miguel, estherag

0.0.2 (2025-10-12)

  • Reorganization initial
  • Contributors: Francisco Martín Rico

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged easynav_simple_controller at Robotics Stack Exchange