Robotics StackExchange | Archived questions

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

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

subscribed to [/navigation/cmd_vel]
no new messages
no new messages
no new messages
no new messages
no new messages
no new messages
no new messages
no new messages
average rate: 7.104
    min: 0.087s max: 0.203s std dev: 0.05103s window: 6
no new messages
no new messages
average rate: 1.499
    min: 0.087s max: 3.298s std dev: 1.17773s window: 7
no new messages
average rate: 1.378
    min: 0.087s max: 3.298s std dev: 1.10086s window: 9
average rate: 1.447
    min: 0.087s max: 3.298s std dev: 0.98927s window: 11
average rate: 1.537
    min: 0.087s max: 3.298s std dev: 0.91835s window: 13
no new messages
no new messages
no new messages
average rate: 1.166
    min: 0.087s max: 3.797s std dev: 1.17968s window: 15
average rate: 1.240
    min: 0.087s max: 3.797s std dev:

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:

/move_base/DWAPlannerROS/global_plan

Asked by pravin1 on 2019-09-18 07:45:35 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