strange movement with dwa
Dear all,
I am trying to perform navigation with my robot. I have created a map using rtabmap_ros with stereo+2Dlaser configuration. I have tried to tune the navigation parameter, but still there is this strange behaviour. (see video here). I think it might be localization problem. I am not sure. Can some guide me?
Here are my costmap parameters:
global costmap:
#global_costmap:
global_frame: map
robot_base_frame: base_link
update_frequency: 1
publish_frequency: 1
static_map: true
rolling_window: false
always_send_full_costmap: false
transform_tolerance: 0.5
inflation_radius: 0.55
cost_scaling_factor: 10.0
plugins:
- {name: static_layer, type: "rtabmap_ros::StaticLayer"}
- {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
local_costmap:
local_costmap:
global_frame: wheel_odom
robot_base_frame: base_link
update_frequency: 5.0
publish_frequency: 2.0
static_map: false
rolling_window: true
width: 4.0
height: 4.0
resolution: 0.03
inflation_radius: 0.55
cost_scaling_factor: 5.0
origin_x: -2.0
origin_y: -2.0
common_costmap:
footprint: [[0.2,0.28],[-0.45,0.28],[-0.45,-0.28],[0.2,-0.28]]
obstacle_range: 2.5
raytrace_range: 3.0
footprint_padding: 0.02
robot_radius: 0.36
transform_tolerance: 2
observation_sources: laser_scan_pls point_cloud_sensor
laser_scan_pls: {sensor_frame: sick_pls_link, data_type: LaserScan, topic: /sick_pls/scan, marking: true, clearing: true}
point_cloud_sensor: {sensor_frame: bumblebee_left, data_type: PointCloud2, topic: /planner_cloud, expected_update_rate: 0.5, marking: true, clearing: true, min_obstacle_height: -99999.0, max_obstacle_height: 1.5}
map_type: costmap
local_planner: DWAPlannerROS:
###Robot Configuration Parameters
acc_lim_x : 1.5
#The x acceleration limit of the robot in meters/sec^2
acc_lim_y : 2
#The y acceleration limit of the robot in meters/sec^2
acc_lim_theta : 3
#The rotational acceleration limit of the robot in radians/sec^2
max_vel_trans : 0.12
#The absolute value of the maximum translational velocity for the robot in m/s
min_vel_trans : 0.05
#The absolute value of the minimum translational velocity for the robot in m/s
max_vel_x : 0.12
#The maximum x velocity for the robot in m/s.
min_vel_x : 0
#The minimum x velocity for the robot in m/s, negative for backwards motion.
max_vel_y : 0
#The maximum y velocity for the robot in m/s
min_vel_y : 0
#The minimum y velocity for the robot in m/s
max_vel_theta : 0.35
#The absolute value of the maximum rotational velocity for the robot in rad/s
min_vel_theta : -0.2
#The absolute value of the minimum rotational velocity for the robot in rad/s
meter_scoring: true
#
min_in_place_vel_theta: 0.0
###Goal Tolerance Parameters
yaw_goal_tolerance : 0.1
#The tolerance in radians for the controller in yaw/rotation when achieving its goal
xy_goal_tolerance : 0.1
#The tolerance in meters for the controller in the x & y distance when achieving a goal
#latch_xy_goal_tolerance : false
#If goal tolerance is latched, if the robot ever reaches the goal xy location it will simply rotate in place, even if it ends up outside the goal tolerance while it is doing so.
###Forward Simulation Parameters
sim_time : 1.3
#The amount of time to forward-simulate trajectories in seconds
sim_granularity : 0.025
#The step size, in meters, to take between points on a given trajectory
angular_sim_granularity: 0.017
vx_samples : 3
#The number of samples to use when exploring the x velocity space
#vy_samples : 0
#The number of samples to use when exploring the y velocity space
vth_samples : 10
#The number of samples to use when exploring the theta velocity space
use_dwa: true
###Trajectory Scoring Parameters
path_distance_bias : 20
#The weighting for how much the controller should stay close to the path it was given
goal_distance_bias : 12
#The weighting for how much the controller should attempt to reach its local goal, also controls speed
occdist_scale : 0.01
#The weighting for how much the controller should attempt to avoid obstacles
forward_point_distance : 0
#The distance from the center point of the robot to place an additional scoring point, in meters
stop_time_buffer : 0.2
#The amount of time that the robot must stop before a collision in order for a trajectory to be considered valid in seconds
scaling_speed : 0.25
#The absolute value of the velocity at which to start scaling the robot's footprint, in m/s
max_scaling_factor : 0.2
#The maximum factor to scale the robot's footprint by
###Oscillation Prevention Parameters
oscillation_reset_dist : 0.05
#How far the robot must travel in meters before oscillation flags are reset
publish_cost_grid : true
##Global Plan Parameters
prune_plan : true
Asked by pravin1 on 2019-09-12 11:40:01 UTC
Answers
Please visualize the local plan at /move_base/DWAPlannerROS/local_plan
Asked by David Lu on 2019-09-18 10:23:47 UTC
Comments
Can you A) zoom in B) visualize the cost cloud and local path C) clarify which part of the navigation surprised you
Asked by David Lu on 2019-09-12 11:44:32 UTC
Apologies, here is the zoomed version showing local path (green) and global path (blue). What I find strange is that the robot is not following the local path. And the local path does not get updated like the global path.
Also, I do not understand why the move_base takes some time at the beginning to send velocity command.
Asked by pravin1 on 2019-09-12 13:34:01 UTC
How many velocity commands is is sending per second
Asked by David Lu on 2019-09-12 13:47:53 UTC
I need to check it. I will report it tomorrow. It is already night here.
Does poor localization affect navigation?
Asked by pravin1 on 2019-09-12 14:40:12 UTC
rate of velocity commands seems to be decreasing. rostopic hz /navigation/cmd_vel gives me
Asked by pravin1 on 2019-09-13 05:29:46 UTC
Hello David, Could you give me a hint, what might be wrong?
Asked by pravin1 on 2019-09-13 10:32:48 UTC
What topic is the green line?
Asked by David Lu on 2019-09-17 15:17:27 UTC
Green line represents the global plan from DWA planner. The topic is:
Asked by pravin1 on 2019-09-18 07:45:35 UTC