Robotics StackExchange | Archived questions

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?

image description

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

Answers