Navigation Stack + rtabmap requesting map configuration problem

Posted by mjedmonds on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Navigation-Stack-rtabmap-requesting-map-configuration-problem-tp1378.html

Hi,

I've been trying to setup rtabmap and the standard ROS navigation stack. However, I can't get the move_base package to get past the "Requesting the map..." stage. Below is my complete configuration (largely followed from here). I'm using a Microsoft Kinect as point cloud sensor

Files


costmap_common_params.yaml

footprint: [[0.42, -0.43], [0.42, 0.43], [-0.42, 0.43], [-0.42, -0.43]]
footprint_padding: 0.02

inflation_layer:
  inflation_radius: 0.55

transform_tolerance: 2

obstacle_layer:
  obstacle_range: 3.0
  raytrace_range: 3.5
  max_obstacle_height: 0.7
  track_unknown_space: true


  observation_sources: point_cloud_sensor
  
  point_cloud_sensor: {
    #sensor_frame: /camera_link,
    data_type: PointCloud2,
    topic: /rtabmap/cloud_map,
    marking: true,
    clearing: true
  }

global_costmap_params.yaml

global_costmap:
  global_frame: /map
  robot_base_frame: base_footprint
  update_frequency: 0.5
  publish_frequency: 0.5
  static_map: true

  plugins:
     - {name: static_layer, type: "rtabmap_ros::StaticLayer"}
     - {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"}
     - {name: inflation_layer, type: "costmap_2d::InflationLayer"}

local_costmap_params.yaml

local_costmap:
  global_frame: map
  robot_base_frame: base_footprint
  update_frequency: 2
  publish_frequency: 2
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.025
  origin_x: -3.0
  origin_y: -3.0

  plugins:
    - {name: obstacle_layer,   type: "costmap_2d::ObstacleLayer"}
    - {name: inflation_layer,  type: "costmap_2d::InflationLayer"}

base_local_planner_params.yaml

TrajectoryPlannerROS:

  acc_lim_x:  0.05
  acc_lim_y:  0.05
  acc_lim_theta: 0.05
  max_vel_x:  0.1
  min_vel_x:  0.02
  max_vel_theta: 0.05
  min_vel_theta: -0.05
  min_in_place_vel_theta: 0.01
  holonomic_robot: true

  xy_goal_tolerance:  0.05
  yaw_goal_tolerance: 0.05
  latch_xy_goal_tolerance: true
  
  # make sure that the minimum velocity multiplied by the sim_period is less than twice the tolerance on a goal. Otherwise, the robot will prefer to rotate in place just outside of range of its target position rather than moving towards the goal.
  sim_time: 1.5 # set between 1 and 2. The higher he value, the smoother the path (though more samples would be required).
  sim_granularity: 0.025
  angular_sim_granularity: 0.05
  vx_samples: 12
  vtheta_samples: 20

  meter_scoring: true

  pdist_scale: 0.7 # The higher will follow more the global path.
  gdist_scale: 0.8
  occdist_scale: 0.01
  publish_cost_grid_pc: false

#move_base
controller_frequency: 5.0 #The robot can move faster when higher.

#global planner 
NavfnROS:
  allow_unknown: true
  visualize_potential: true

move_base.launch

<launch>

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <!-- remap topics -->
    <remap from="cmd_vel" to="/mobility_base/cmd_vel" />
    <remap from="odom" to="/odometry/filtered" />
    
<remap from="map" to="/rtabmap/get_proj_map" />

    <rosparam file="$(find bender_2dnav)/config/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find bender_2dnav)/config/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find bender_2dnav)/config/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find bender_2dnav)/config/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find bender_2dnav)/config/base_local_planner_params.yaml" command="load" />
  </node>
</launch>

Note: I've bolded the line in the file above that corresponds to mapping the /map service call to rtabmap's get_proj_map. I believe this is the proper configuration; I don't have laser scan sources. I've verified that the get_proj_map indeeds returns a nav_msgs/GetMap and the /rtabmap/proj_map topic is publishing a correct occupancy grid.

Any guidance on where to go would be appreciated; I've been scratching my head as to what could be wrong.

I can provide rosbags if that would be helpful.

Thanks!