Costmap plan error using frontier_exploration with DWA planner
I am attempting to use the frontierexploration package to have a turtlebot explore a map in simulation. I have a launch file which starts a mapserver, gazebo, movebase for the turtlebot and RViz. This works fine and I can successfully explore the map by tele-operating the turtlebot. However when I attempt to use the frontierexploration package to explore the map the node crashes with errors :-
[ERROR] [1464960560.742352772, 20146.057000000]: None of the 0 first of 0 (0) points of the global plan were in the local costmap and free
[ WARN] [1464960567.150855773, 20152.467000000]: Clearing costmap to unstuck robot (3.000000m).
[ WARN] [1464960567.551669761, 20152.867000000]: Rotate recovery behavior started.
[ WARN] [1464960567.951526869, 20153.267000000]: Clearing costmap to unstuck robot (1.840000m).
[ WARN] [1464960568.351349369, 20153.667000000]: Rotate recovery behavior started.
[ERROR] [1464960568.751476620, 20154.067000000]: Aborting because a valid plan could not be found. Even after executing all recovery behaviors
[ERROR] [1464960568.751631322, 20154.067000000]: Failed to move
Looking at the Local Map->Cost Cloud for the DWA Planner in RViz it looks as if this is being populated incorrectly (see the multicoloured square around the turtlebot). Could this be the source of the problem causing the frontier_exploration node to crash?
frontier_agent.launch
<launch>
<arg name="map_file" value="$(env TURTLEBOT_GAZEBO_MAP_FILE)"/>
<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />
<node name="map_to_ground_truth" pkg="tf" type="static_transform_publisher" args="0 0 0 0 0 0 1 map ground_truth 100"/>
<include file="$(find turtlebot_gazebo)/launch/turtlebot_world.launch"/>
<include file="$(find openni_launch)/launch/openni.launch">
<arg name="load_driver" value="false"/>
<arg name="depth_registration" value="true"/>
<arg name="publish_tf" value="false" />
<arg name="rgb_processing" value="true"/>
<arg name="depth_processing" value="true"/>
<arg name="depth_registered_processing" value="true"/>
<arg name="sw_registered_processing" value="true" />
<arg name="ir_processing" value="false"/>
<arg name="disparity_processing" value="false"/>
<arg name="disparity_registered_processing" value="false"/>
<arg name="hw_registered_processing" value="false" />
</include>
<include file="$(find ar_track_alvar)/launch/pr2_indiv.launch">
<arg name="marker_size" value="50.0" />
<arg name="max_new_marker_error" default="0.00001" />
<arg name="max_track_error" default="0.00001" />
<arg name="cam_image_topic" value="/camera/depth_registered/points" />
<arg name="cam_info_topic" value="/camera/rgb/camera_info" />
<arg name="output_frame" value="/map" />
</include>
<node name="ground_truth" pkg="turtlebot_rl_agent" type="ground_truth"/>
<node name="ground_truth_tf" pkg="turtlebot_rl_agent" type="ground_truth_tf"/>
<include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml">
<arg name="odom_frame_id" value="ground_truth"/>
<arg name="base_frame_id" value="base_footprint"/>
<arg name="global_frame_id" value="map"/>
<arg name="odom_topic" value="ground_truth" />
<arg name="laser_topic" value="scan" />
</include>
<include file="$(find turtlebot_rviz_launchers)/launch/view_navigation.launch"/>
<node name="frontier_node" pkg="turtlebot_rl_agent" type="frontier_node" output="screen"/>
<include file="$(find frontier_exploration)/launch/global_map.launch"/>
<node name="rl_eval_node" pkg="turtlebot_rl_agent" type="rl_eval_node" output="screen"/>
</launch>
global_map.launch
<launch>
<arg name="sensor_range" default="5.0"/>
<node pkg="frontier_exploration" type="explore_server" name="explore_server" output="screen" >
<param name="frequency" type="double" value="0.0"/>
<param name="goal_aliasing" type="double" value="$(arg sensor_range)"/>
#All standard costmap_2d parameters as in move_base, other than BoundedExploreLayer
<rosparam ns="explore_costmap" subst_value="true">
robot_radius: 0.20
footprint: [[0.2, 0.0], [0.0, 0.2], [0.0, -0.2], [-0.2, 0.0]]
transform_tolerance: 0.5
update_frequency: 10.0
publish_frequency: 10.0
#must match incoming static map
global_frame: map
robot_base_frame: base_footprint
resolution: 0.05
rolling_window: false
track_unknown_space: true
plugins:
- {name: static, type: "costmap_2d::StaticLayer"}
- {name: explore_boundary, type: "frontier_exploration::BoundedExploreLayer"}
#Can disable sensor layer if gmapping is fast enough to update scans
- {name: sensor, type: "costmap_2d::ObstacleLayer"}
- {name: inflation, type: "costmap_2d::InflationLayer"}
static:
#Can pull data from gmapping, map_server or a non-rolling costmap
map_topic: /map
# map_topic: move_base/global_costmap/costmap
subscribe_to_updates: true
explore_boundary:
resize_to_boundary: false
frontier_travel_point: middle
#set to false for gmapping, true if re-exploring a known area
explore_clear_space: false
sensor:
observation_sources: laser
laser: {data_type: LaserScan, clearing: true, marking: true, topic: scan, inf_is_valid: true, raytrace_range: $(arg sensor_range), obstacle_range: $(arg sensor_range)}
inflation:
inflation_radius: 0.15
</rosparam>
</node>
</launch>
Asked by rowanborder on 2016-06-03 09:01:04 UTC
Comments
I've fixed the formatting (launch files should be formatted using the Preformatted Text button), and your image is not visible (you cannot link to
.php
pages, it needs to be a direct link to an image). I've given you the karma to upload images, so that would also be an option.Asked by gvdhoorn on 2016-06-03 09:35:37 UTC
thanks, done
Asked by rowanborder on 2016-06-03 09:39:32 UTC
What are you expecting the square to look like. Doesn't the black represent unexplored space? I am getting the same first error in my waypoint program. Next time I run it I'll look at that option and reply here.
Asked by ed on 2019-12-03 20:27:02 UTC