README
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.
Supported ROS 2 Distributions
Distribution |
Status |
|---|---|
humble |
|
jazzy |
|
kilted |
|
rolling |
Plugin (pluginlib)
Plugin Name:
easynav_simple_controller/SimpleControllerType:
easynav::SimpleControllerBase Class:
easynav::ControllerMethodBaseLibrary:
easynav_simple_controllerDescription: 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 |
|---|---|---|---|
|
|
|
Maximum linear speed (m/s). |
|
|
|
Maximum angular speed (rad/s). |
|
|
|
Maximum linear acceleration (m/s²). |
|
|
|
Maximum angular acceleration (rad/s²). |
|
|
|
Look-ahead distance to sample the reference pose on the path (m). |
|
|
|
Distance threshold to switch to pure orientation tracking (m). |
|
|
|
Angular tolerance (rad) used to decide final-goal arrival. |
|
|
|
Gain used to reduce linear speed based on angular velocity (higher: stronger reduction while turning). |
|
|
|
Proportional gain for the linear PID controller. |
|
|
|
Integral gain for the linear PID controller. |
|
|
|
Derivative gain for the linear PID controller. |
|
|
|
Proportional gain for the angular PID controller. |
|
|
|
Integral gain for the angular PID controller. |
|
|
|
Derivative gain for the angular PID controller. |
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