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.yamlfootprint: [[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.yamlglobal_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.yamllocal_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.yamlTrajectoryPlannerROS:
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!