neo_local_planner ================= Summary ------- The neo_local_planner package provides a simple but effective local planner plugin for move_base. It supports both differential type and holonomic type platforms. It is installed and used by Neobotix platforms as of February 2020 by default. Working ------- The neo_local_planner employs a pure-pursuit control technique to follow the give global path. Based upon the look-ahead distance and look-ahead time, the velocity commands are generated. Based upon the look-ahead distance, the local path is updated for each and every control step. In ROS 2, this planner is named as neo_local_planner2 .. warning:: Currently the **allow_reversing** parameter will allow the robot to drive in the reverse direction. This feature is **experimental**. Also note that our differential robots does not have laser scanners by default and hence we do not recommend that behavior and it should be done at your own risk. Parameters ---------- :acc_lim_x: ============== ======= Type Default -------------- ------- double 0.25 ============== ======= Description The x acceleration limit of the robot in meters/sec^2 :acc_lim_theta: ============== ======= Type Default -------------- ------- double 0.8 ============== ======= Description The rotational acceleration limit of the robot in radians/sec^2 :max_vel_x: ============== ======= Type Default -------------- ------- double 0.8 ============== ======= Description The maximum x velocity for the robot in m/s. :min_vel_x: ============== ======= Type Default -------------- ------- double -0.1 ============== ======= Description The minimum x velocity for the robot in m/s, negative for backwards motion. :max_rot_vel: ============== ======= Type Default -------------- ------- double 0.8 ============== ======= Description The absolute value of the maximum rotational velocity for the robot in rad/s :min_rot_vel: ============== ======= Type Default -------------- ------- double 0.8 ============== ======= Description The absolute value of the minimum rotational velocity for the robot in rad/s :max_trans_vel: ============== ======= Type Default -------------- ------- double 0.8 ============== ======= Description The absolute value of the maximum translational velocity for the robot in m/s :min_trans_vel: ============== ======= Type Default -------------- ------- double 0.1 ============== ======= Description The absolute value of the minimum translational velocity for the robot in m/s :yaw_goal_tolerance: ============== ======= Type Default -------------- ------- double 0.01 ============== ======= Description The tolerance in radians for the controller in yaw/rotation when achieving its goal :xy_goal_tolerance: ============== ======= Type Default -------------- ------- double 0.1 ============== ======= Description The tolerance in meters for the controller in the x & y distance when achieving a goal :goal_tune_time: ============== ======= Type Default -------------- ------- double 3.0 ============== ======= Description How long to fine tune for goal position after reaching tolerance limits [s] :lookahead_time: ============== ======= Type Default -------------- ------- double 0.3 ============== ======= Description How far to predict control pose into the future based on latest odometry [s] :lookahead_dist: ============== ======= Type Default -------------- ------- double 0.5 ============== ======= Description How far to look ahead when computing path orientation [m] :start_yaw_error: ============== ======= Type Default -------------- ------- double 0.2 ============== ======= Description Threshold yaw error below which we consider to start moving [rad] :pos_x_gain: ============== ======= Type Default -------------- ------- double 1.0 ============== ======= Description Gain when adjusting final x position for goal [1/s] :pos_y_yaw_gain: ============== ======= Type Default -------------- ------- double 1.0 ============== ======= Description Gain for lane keeping based on y error (differential only) [rad/s^2] :yaw_gain: ============== ======= Type Default -------------- ------- double 2.0 ============== ======= Description Gain for lane keeping based on yaw error (differential only) [1/s] :static_yaw_gain: ============== ======= Type Default -------------- ------- double 3.0 ============== ======= Description Gain for adjusting yaw when not translating, or in case of holonomic drive [1/s] :cost_y_yaw_gain: ============== ======= Type Default -------------- ------- double 3.0 ============== ======= Description Gain for y cost avoidance (differential only) :cost_y_lookahead_dist: ============== ======= Type Default -------------- ------- double 0.3 ============== ======= Description How far ahead to compute y cost gradient (constant offset) [m] :cost_y_lookahead_time: ============== ======= Type Default -------------- ------- double 0.3 ============== ======= Description How far ahead to compute y cost gradient (dynamic offset) [s] :cost_yaw_gain: ============== ======= Type Default -------------- ------- double 0.3 ============== ======= Description Gain for yaw cost avoidance :low_pass_gain: ============== ======= Type Default -------------- ------- double 0.2 ============== ======= Description Gain for final control low pass filter :max_cost: ============== ======= Type Default -------------- ------- double 0.95 ============== ======= Description Max cost to allow, above we slow down to min_trans_vel or even stop :max_curve_vel: ============== ======= Type Default -------------- ------- double 0.3 ============== ======= Description Max velocity based on curvature [rad/s] :max_goal_dist: ============== ======= Type Default -------------- ------- double 0.3 ============== ======= Description Max distance to goal when looking for it [m] :max_backup_dist: ============== ======= Type Default -------------- ------- double 0.1 ============== ======= Description Max distance allowable for backing up (zero = unlimited) [m] :min_stop_dist: ============== ======= Type Default -------------- ------- double 0.3 ============== ======= Description Minimal distance for stopping [m] :differential_drive: ============== ======= Type Default -------------- ------- bool true ============== ======= Description If robot has differential drive, holonomic otherwise :allow_reversing: ============== ======= Type Default -------------- ------- bool false ============== ======= Description robot with safety sensors in the rear can be set to reverse Additional Parameters for ROS 2 ------------------------------- :local_frame: ============== ======= Type Default -------------- ------- local_frame odom ============== ======= Description Default local frame id of the robot. For namespace setup, set the frame id with "/" at the beginning :base_frame: ============== ========== Type Default -------------- ---------- base_frame base_link ============== ========== Description Default base frame id of the robot. For namespace setup, set the frame id with "/" at the beginning :odom_topic: ============== ======= Type Default -------------- ------- odom_topic /odom ============== ======= Description Default odom topic set to the local planner. For namespace setup, use the topic without "/" at the beginning See `differential example `_ . See `holonomic example `_ . Video Demo ---------- .. raw:: html