Why is the navigation stack not planning a path?

asked 2017-05-31 20:19:40 -0500

czhao gravatar image

updated 2017-06-01 09:44:51 -0500

I'm running ROS Kinetic on a Nvidia Jetson TX1. AMCL works fine. However, when I send a navigation goal through rviz, it is published on /move_base_simple/goal, but move_base does not publish anything on /move_base/current_goal or plan a path. There are no errors or warnings. I am using a 2D 270° Hokuyo laser scanner for observation. The navigation stack creates both local and global costmaps successfully, but no path is planned no matter where I place a goal. I don't think this matters, but I'm using tf2 instead of tf. Has anyone had a similar issue and/or know why the navigation stack is not planning a path? My parameter files are below:

base_local_planner_params.yaml

TrajectoryPlannerROS:
  max_vel_x: 0.3
  min_vel_x: 0.1
  max_vel_theta: 0.4
  min_in_place_vel_theta: 0.2

  acc_lim_theta: 3.2
  acc_lim_x: 2.5
  acc_lim_y: 2.5

  meter_scoring: true

  holonomic_robot: false

costmap_common_params.yaml

obstacle_range: 10.0
raytrace_range: 12.0
footprint: [[-0.22, 0.26], [0.22, 0.26], [0.22, -0.26], [-0.22, -0.26]]
inflation_radius: 0.5

observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: laser, data_type: LaserScan, topic: scan, marking: true, clearing: true}

global_costmap_params.yaml

global_costmap:
  global_frame: map
  robot_base_frame: base_link
  update_frequency: 2.0
  static_map: true

local_costmap_params.yaml

local_costmap:
  global_frame: odom
  robot_base_frame: base_link
  update_frequency: 2.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05

controller_frequency: 5.0

move_base.launch

<launch>
  <!-- map server -->
  <arg name="map" default="$(find solace)/maps/hallway2_cleared.yaml" />
  <node name="map_server" pkg="map_server" type="map_server" args="$(arg map)" />

  <!-- amcl -->
  <arg name="scan_topic"    default="scan" />
  <node pkg="amcl" type="amcl" name="amcl" output="screen">
    <param name="odom_model_type"   value="diff" />
    <param name="odom_alpha5"       value="0.1" />
    <param name="gui_publish_rate"  value="4.0" />
    <param name="laser_max_beams"   value="60" />
    <param name="laser_max_range"   value="12.0" />
    <param name="min_particles"     value="500" />
    <param name="max_particles"     value="2000" />
    <param name="kld_err"       value="0.01" />
    <param name="kld_z"         value="0.99" />
    <param name="odom_alpha1"       value="0.3" />
    <param name="odom_alpha2"       value="0.3" />
    <param name="odom_alpha3"       value="0.3" />
    <param name="odom_alpha4"       value="0.3" />
    <param name="laser_z_hit"       value="0.5" />
    <param name="laser_z_short"             value="0.05" />
    <param name="laser_z_max"               value="0.05" />
    <param name="laser_z_rand"              value="0.5" />
    <param name="laser_sigma_hit"           value="0.2" />
    <param name="laser_lambda_short"        value="0.1" />
    <param name="laser_model_type"          value="likelihood_field" />
    <param name="laser_likelihood_max_dist" value="2.0" />
    <param name="update_min_d"              value="0.15" />
    <param name="update_min_a"              value="0.2" />
    <param name="odom_frame_id"             value="gmapping_map" />
    <param name="base_frame_id"             value="base_link" />
    <param name="resample_interval"         value="1" />
    <param name="transform_tolerance"       value="0.5" />
    <param name="recovery_alpha_slow"       value="0.001" />
    <param name="recovery_alpha_fast"       value="0.1" />
    <remap from="scan"                      to="$(arg scan_topic)" />
    <remap from="map"                       to="navigation_map" />
  </node>

  <!-- navigation stack -->
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find solace)/config/racecar-v2/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find solace)/config/racecar-v2/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find solace)/config/racecar-v2/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find solace)/config/racecar-v2/global_costmap_params.yaml" command ...
(more)
edit retag flag offensive close merge delete

Comments

what is the output of move_base? what is the status of your goal: rostopic echo /move_base/status ?

Procópio gravatar imageProcópio ( 2017-06-01 01:55:48 -0500 )edit

sorry, I made an error in my question, which I've fixed. When I send a navigation goal through rviz, it is published on /move_base_simple/goal, but move_base does not publish anything on /move_base/current_goal or plan a path.

czhao gravatar imageczhao ( 2017-06-01 09:41:38 -0500 )edit

the status of the goal has an empty frame_id and status_list is empty.

czhao gravatar imageczhao ( 2017-06-01 09:51:00 -0500 )edit

Did you forget loading the param file base_global_planner_params.yaml which specifies which global planner you would like to use?

DavidN gravatar imageDavidN ( 2017-06-01 11:56:29 -0500 )edit

Hm, the navigation stack robot setup tutorial doesn't say anything about a base_global_planner_params.yaml file. Is the file necessary? If so, what should I put in it?

czhao gravatar imageczhao ( 2017-06-01 19:36:14 -0500 )edit

See section "2.4 Base Local Planner Configuration" of the tutorial and 2.5. for the launch file.

Humpelstilzchen gravatar imageHumpelstilzchen ( 2017-06-02 00:56:01 -0500 )edit

Adding a base_global_planner_params.yaml file did not fix it.

czhao gravatar imageczhao ( 2017-06-02 13:46:14 -0500 )edit

You did add a rosparam load tag for global planner params file, right? Can you post the output of move_base launch after adding the tag for loading global planner?

DavidN gravatar imageDavidN ( 2017-06-02 21:03:09 -0500 )edit