🎱D.11 Regulated Pure Pursuit
Regulated Pure Pursuit Controller ဆိုတာ service နဲ့ industrial robot တွေ အတွက် အထူးထုတ် ထားတဲ့ Pure Pursuit controller တမျိုး ဖြစ်ပါတယ်။ Robot Safety ဖြစ်ရန် အလိုငှါမျက်ကွယ်ထောင့်တွေ ရောက်ရင် controller ရဲ့ linear velocity ကို လျော့ချပေးပါတယ်။
တိကျတဲ့ trajectory တွေ ၊ smoother robot motion တွေ အတွက် အခြားသော controller pkg တွေထက် path-following ကောင်းပါတယ်။ Obstacle တွေ တွေ့တဲ့ အခါ controller ကို အလိုအလျောက် အရှိန်လျော့စေပါတယ်။
ဒီလို အရှိန်လျော့စေခြင်းအားဖြင့် accident အရေအတွက်ကို လျော့ချပေးပါတယ်။ Dynamic Environments အတွက် သုံးတဲ့ robot တွေ အတွက် ဒီ Regulated Pure Pursuit controller က safety ဖြစ်ပြီး path-following အတွက် Performance ကောင်းကောင်း ထုတ်ပေးနိုင်ပါတယ်။
accident အရေအတွက်ကိုလည်း လျော့ချပေးပါတယ်။ Dynamic Environments အတွက် သုံးတဲ့ robot တွေ အတွက် ဒီ Regulated Pure Pursuit controller က safety ဖြစ်ပြီး path-following အတွက် Performance ကောင်းကောင်း ထုတ်ပေးနိုင်ပါတယ်။
desired_levelt_vel
desired max linear velocity
double
0.5
lookahead_dist
lookahead distance to find the lookahead point
double
0.6
min_lookahead_dist
minimum lookahead distance
double
0.3
max_lookahead_dist
maxmum lookahead distance
double
0.9
lookahead_time
The time to project the velocity
double
1.5
rotate_to_heading_angular_vel
If use_rotate_to_ heading is true, this's the angular velocity
double
1.8
transform_tolerance
The TF transform tolerance
double
0.1
use_velocity_scaled_lookahead_dist
Whether to use the velocity scaled lookahead distance
bool
TRUE
min_approach_linear_velovity
The minimum velocity to apply when approaching the goal (Must be >0.01)
double
0.05
approach_velocity_scaling_dist
Distance left on the path to start slowing down. (Should be less than hlaf the costmap width)
double
0.6
use_collision_detection
To enable collision detection
bool
TRUE
max_allowed_time_to_collision_up_to_carrot
time (s) to project a velocity command forward to check for collisions
double
1
use_regulated_linear_velocity_scaling
To use the regulated features for path curvature
bool
TRUE
use_cost_regulated_linear_velocity_scaling
To use the regulated features for proximity to obstacles
bool
TRUE
regulated_linear_scaling_min_radius
turning radius (m) for which the regulation features are triggered
double
0.9
regulated_linear_scaling_min_speed
minimum speed for any of the regulated heuristics can send
double
0.25
use_fixed_curvature_lookahead
To use a fixed lookahead distance to compute curvature from.
bool
FALSE
curvature_lookahead_dist
Distance to look ahead on the path to detect curvature.
double
0.6
use_rotate_to_heading
To enable rotating to rough heading and goal orientation when using holonomic planners.
bool
TRUE
allow_reversing
Enables the robot to drive in the reverse direction, when the path planned involves reversing
bool
FALSE
rotate_to_heading_min_angle
The difference in the path orientation and the starting robot orientation to trigger a rotate in place
double
0.785
max_angular_accel
Maximum allowable angular acceleration (rad/s/s) while rotating to heading
double
3.2
max_robot_pose_search_dist
Upper bound on integrated distance along the global plan to search for the closest pose to the robot pose. This should be left as the default unless there are paths with loops and intersections that do not leave the local costmap, in which case making this value smaller is necessary to prevent shortcutting.
double
Local costmap max extent (max(width, height) / 2)
use_interpolation
Enable linear interpolation between poses for lookahead point selection. Leads to smoother commanded linear and angular velocities.
bool
TRUE
The Regulated Pure Pursuit controller implements a variation on the Pure Pursuit controller that specifically t argeting service / industrial robot needs. It regulates the linear velocities by curvature of the path to help reduce overshoot at high speeds around blind corners allowing operations to be much more safe.
It also better follows paths than any other variation currently available of Pure Pursuit. It also has heuristics to slow in proximity to other obstacles so that you can slow the robot automatically when nearby potential collisions. It also implements the Adaptive lookahead point features to be scaled by velocities to enable more stable behavior in a larger range of translational speeds.
နမူနာ
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 20.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
progress_checker_plugins: ["progress_checker"] # progress_checker_plugin: "progress_checker" For Humble and older
goal_checker_plugins: ["goal_checker"]
controller_plugins: ["FollowPath"]
progress_checker:
plugin: "nav2_controller::SimpleProgressChecker"
required_movement_radius: 0.5
movement_time_allowance: 10.0
goal_checker:
plugin: "nav2_controller::SimpleGoalChecker"
xy_goal_tolerance: 0.25
yaw_goal_tolerance: 0.25
stateful: True
FollowPath:
plugin: "nav2_regulated_pure_pursuit_controller::RegulatedPurePursuitController"
desired_linear_vel: 0.5
lookahead_dist: 0.6
min_lookahead_dist: 0.3
max_lookahead_dist: 0.9
lookahead_time: 1.5
rotate_to_heading_angular_vel: 1.8
transform_tolerance: 0.1
use_velocity_scaled_lookahead_dist: false
min_approach_linear_velocity: 0.05
approach_velocity_scaling_dist: 0.6
use_collision_detection: true
max_allowed_time_to_collision_up_to_carrot: 1.0
use_regulated_linear_velocity_scaling: true
use_fixed_curvature_lookahead: false
curvature_lookahead_dist: 0.25
use_cost_regulated_linear_velocity_scaling: false
regulated_linear_scaling_min_radius: 0.9
regulated_linear_scaling_min_speed: 0.25
use_rotate_to_heading: true
allow_reversing: false
rotate_to_heading_min_angle: 0.785
max_angular_accel: 3.2
max_robot_pose_search_dist: 10.0
use_interpolation: false
Last updated