update global path manually
I am using neo_local_planner to control my robot. But as i observed when i use this base local plnner even if obstacle in in the global path the path is not being updated. This doesn't happens when i use dwa_local_planner. Navfn is being used as global path planner. Here is the parameter of neo_local_planner:
NeoLocalPlanner:
# The x acceleration limit of the robot in meters/sec^2
acc_lim_x : 0.25
# The rotational acceleration limit of the robot in radians/sec^2
acc_lim_theta : 0.8
# The maximum x velocity for the robot in m/s.
max_vel_x : 0.8
# The minimum x velocity for the robot in m/s, negative for backwards motion.
min_vel_x : -0.1
# The absolute value of the maximum rotational velocity for the robot in rad/s
max_rot_vel : 0.8
# The absolute value of the minimum rotational velocity for the robot in rad/s
min_rot_vel : 0.1
# The absolute value of the maximum translational velocity for the robot in m/s
max_trans_vel : 0.8
# The absolute value of the minimum translational velocity for the robot in m/s
min_trans_vel : 0.1
# The tolerance in radians for the controller in yaw/rotation when achieving its goal
yaw_goal_tolerance : 0.523599
# The tolerance in meters for the controller in the x & y distance when achieving a goal
xy_goal_tolerance : 0.1
# How long to fine tune for goal position after reaching tolerance limits [s]
goal_tune_time : 0.5
# How far to predict control pose into the future based on latest odometry [s]
lookahead_time : 0.2
# How far to look ahead when computing path orientation [m]
lookahead_dist : 0.5
# Threshold yaw error below which we consider to start moving [rad]
start_yaw_error : 0.2
# Gain when adjusting final x position for goal [1/s]
pos_x_gain : 1
# Gain for lane keeping based on y error (differential only) [rad/s^2]
pos_y_yaw_gain : 1
# Gain for lane keeping based on yaw error (differential only) [1/s]
yaw_gain : 1
# Gain for adjusting yaw when not translating, or in case of holonomic drive [1/s]
static_yaw_gain : 3
# Gain for y cost avoidance (differential only)
cost_y_yaw_gain : 0.1
# How far ahead to compute y cost gradient (constant offset) [m]
cost_y_lookahead_dist : 0
# How far ahead to compute y cost gradient (dynamic offset) [s]
cost_y_lookahead_time : 1
# Gain for yaw cost avoidance
cost_yaw_gain : 1
# Gain for final control low pass filter
low_pass_gain : 0.5
# Max cost to allow, above we slow down to min_trans_vel or even stop
max_cost : 0.95
# Max velocity based on curvature [rad/s]
max_curve_vel : 0.2
# Max distance to goal when looking for it [m]
max_goal_dist : 0.5
# Max distance allowable for backing up (zero = unlimited) [m]
max_backup_dist : 0.5
# Minimal distance for stopping [m]
min_stop_dist : 0.5
# If robot has differential drive, holonomic otherwise
differential_drive : true
max_update_count: 20
Hi @dinesh, this planner fairly new so I am not very familiar and i couldn't too much info in the documentation or repo. Could share your settings please. I am looking at the source code, and it should be updating when obstacles are encountered: https://github.com/neobotix/neo_local...
I've updated the setting. Can you show me from which code segment does the dwa_local_planner updates the global path and how interacts with global planner i.e NavFn to update new global path?
This is the link for the source for
dwa_local_planner
: https://github.com/strawlab/navigatio...When initializing:
Also here:
I am sure I missed some other parts but hope this helps. This weekend I will try to do a side by side comparisons of these different local planners by studying the source code and any info I can get. From what I read
neo_local_planner
is only pure pursuit.Have you played with the
look_ahead_time
andlook_ahead_distance
?yes. but those variables has to do nothing to do with global path update when inside obstacle scenario.
Do you know how local_base_planner like dwa_local_planner checks if global path is valid i.e not inside costmap and updates the global path?