move_base problem - Robots just spins in circles - volume 1, chapter "8.2 Testing move_base in the ArbotiX Simulator"

1,871 views
Skip to first unread message

Henrik Sundberg

unread,
Feb 9, 2015, 3:05:27 AM2/9/15
to ros-by-...@googlegroups.com
I'm recently bought your book "ROS by Example Hydro volume 1" pdf version,

I have worked my way up to chapter "8.2 Testing move_base in the ArbotiX Simulator"

and now I have run into some problem. The robot can´t find its goal. It just spins in circles.

I can launch the simulated Turtlebot and Rviz nodes and everything looks ok.


------

roslaunch rbx1_bringup fake_turtlebot.launch


viki@c3po:~/catkin_ws/devel$ roslaunch rbx1_bringup fake_turtlebot.launch
... logging to /home/viki/.ros/log/e087bece-afa6-11e4-b2e6-080027b3edc7/roslaunch-c3po-8103.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http
://c3po:58953/

SUMMARY
========

PARAMETERS
 
* /arbotix/baud
 
* /arbotix/controllers/base_controller/Kd
 
* /arbotix/controllers/base_controller/Ki
 
* /arbotix/controllers/base_controller/Ko
 
* /arbotix/controllers/base_controller/Kp
 
* /arbotix/controllers/base_controller/accel_limit
 
* /arbotix/controllers/base_controller/base_frame_id
 
* /arbotix/controllers/base_controller/base_width
 
* /arbotix/controllers/base_controller/ticks_meter
 
* /arbotix/controllers/base_controller/type
 
* /arbotix/port
 
* /arbotix/rate
 
* /arbotix/read_rate
 
* /arbotix/sim
 
* /arbotix/sync_read
 
* /arbotix/sync_write
 
* /arbotix/write_rate
 
* /robot_description
 * /
robot_state_publisher/publish_frequency
 
* /rosdistro
 * /
rosversion
 
* /use_sim_time

NODES
  /

    arbotix
(arbotix_python/arbotix_driver)
    robot_state_publisher
(robot_state_publisher/state_publisher)

ROS_MASTER_URI
=http://localhost:11311

core service
[/rosout] found
running rosparam delete /
arbotix
process
[arbotix-1]: started with pid [8129]
process
[robot_state_publisher-2]: started with pid [8130]
[INFO] [WallTime: 1423425323.752622] ArbotiX being simulated.
[INFO] [WallTime: 1423425324.149484] Started DiffController (base_controller). Geometry: 0.26m wide, 4100.0 ticks/m.





-------------

rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz


viki@c3po
:~/catkin_ws/src/rbx1/rbx1_nav/config/fake$ rosrun rvirviz -d `rospack find rbx1_nav`/nav.rviz
[ INFO] [1423425453.885730377]: rviz version 1.10.18
[ INFO] [1423425453.892085172]: compiled against OGRE version 1.7.4 (Cthugha)
OpenGL Warning: Failed to connect to host. Make sure 3D acceleration is enabled for this VM.
[ INFO] [1423425463.310107565]: Stereo is NOT SUPPORTED
[ INFO] [1423425463.354650864]: OpenGl version: 2.1 (GLSL 1.2).



------------

roslaunch rbx1_nav fake_move_base_blank_map.launch

viki@c3po:~$ roslaunch rbx1_nav fake_move_base_blank_map.launch
... logging to /home/viki/.ros/log/e087bece-afa6-11e4-b2e6-080027b3edc7/roslaunch-c3po-8195.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http
://c3po:42053/

SUMMARY
========

CLEAR PARAMETERS
 
* /move_base/

PARAMETERS
 
* /move_base/TrajectoryPlannerROS/acc_lim_th
 
* /move_base/TrajectoryPlannerROS/acc_lim_x
 
* /move_base/TrajectoryPlannerROS/acc_lim_y
 
* /move_base/TrajectoryPlannerROS/angular_sim_granularity
 
* /move_base/TrajectoryPlannerROS/dwa
 
* /move_base/TrajectoryPlannerROS/escape_vel
 
* /move_base/TrajectoryPlannerROS/gdist_scale
 
* /move_base/TrajectoryPlannerROS/heading_lookahead
 
* /move_base/TrajectoryPlannerROS/heading_scoring
 
* /move_base/TrajectoryPlannerROS/heading_scoring_timestep
 
* /move_base/TrajectoryPlannerROS/holonomic_robot
 
* /move_base/TrajectoryPlannerROS/latch_xy_goal_tolerance
 
* /move_base/TrajectoryPlannerROS/max_rotational_vel
 
* /move_base/TrajectoryPlannerROS/max_vel_x
 
* /move_base/TrajectoryPlannerROS/max_vel_y
 
* /move_base/TrajectoryPlannerROS/meter_scoring
 
* /move_base/TrajectoryPlannerROS/min_in_place_vel_theta
 
* /move_base/TrajectoryPlannerROS/min_vel_x
 
* /move_base/TrajectoryPlannerROS/min_vel_y
 
* /move_base/TrajectoryPlannerROS/occdist_scale
 
* /move_base/TrajectoryPlannerROS/oscillation_reset_dist
 
* /move_base/TrajectoryPlannerROS/pdist_scale
 
* /move_base/TrajectoryPlannerROS/prune_plan
 
* /move_base/TrajectoryPlannerROS/publish_cost_grid_pc
 
* /move_base/TrajectoryPlannerROS/sim_granularity
 
* /move_base/TrajectoryPlannerROS/sim_time
 
* /move_base/TrajectoryPlannerROS/simple_attractor
 
* /move_base/TrajectoryPlannerROS/vtheta_samples
 
* /move_base/TrajectoryPlannerROS/vx_samples
 
* /move_base/TrajectoryPlannerROS/vy_samples
 
* /move_base/TrajectoryPlannerROS/xy_goal_tolerance
 
* /move_base/TrajectoryPlannerROS/yaw_goal_tolerance
 
* /move_base/clearing_rotation_allowed
 
* /move_base/controller_frequency
 
* /move_base/global_costmap/global_frame
 
* /move_base/global_costmap/inflation_radius
 
* /move_base/global_costmap/map_type
 
* /move_base/global_costmap/max_obstacle_height
 
* /move_base/global_costmap/min_obstacle_height
 
* /move_base/global_costmap/observation_sources
 
* /move_base/global_costmap/obstacle_range
 
* /move_base/global_costmap/publish_frequency
 
* /move_base/global_costmap/raytrace_range
 
* /move_base/global_costmap/resolution
 
* /move_base/global_costmap/robot_base_frame
 
* /move_base/global_costmap/robot_radius
 
* /move_base/global_costmap/rolling_window
 
* /move_base/global_costmap/scan/clearing
 
* /move_base/global_costmap/scan/data_type
 
* /move_base/global_costmap/scan/expected_update_rate
 
* /move_base/global_costmap/scan/marking
 
* /move_base/global_costmap/scan/topic
 
* /move_base/global_costmap/static_map
 
* /move_base/global_costmap/transform_tolerance
 
* /move_base/global_costmap/update_frequency
 
* /move_base/local_costmap/global_frame
 
* /move_base/local_costmap/height
 
* /move_base/local_costmap/inflation_radius
 
* /move_base/local_costmap/max_obstacle_height
 
* /move_base/local_costmap/min_obstacle_height
 
* /move_base/local_costmap/observation_sources
 
* /move_base/local_costmap/obstacle_range
 
* /move_base/local_costmap/publish_frequency
 
* /move_base/local_costmap/raytrace_range
 
* /move_base/local_costmap/resolution
 
* /move_base/local_costmap/robot_base_frame
 
* /move_base/local_costmap/robot_radius
 
* /move_base/local_costmap/rolling_window
 
* /move_base/local_costmap/scan/clearing
 
* /move_base/local_costmap/scan/data_type
 
* /move_base/local_costmap/scan/expected_update_rate
 
* /move_base/local_costmap/scan/marking
 
* /move_base/local_costmap/scan/topic
 
* /move_base/local_costmap/static_map
 
* /move_base/local_costmap/transform_tolerance
 
* /move_base/local_costmap/update_frequency
 
* /move_base/local_costmap/width
 
* /move_base/recovery_behavior_enabled
 
* /rosdistro
 * /
rosversion

NODES
 
/
    map_server
(map_server/map_server)
    move_base
(move_base/move_base)
    odom_map_broadcaster
(tf/static_transform_publisher)

ROS_MASTER_URI
=http://localhost:11311

core service
[/rosout] found
process[map_server-1]: started with pid [8214]
process[move_base-2]: started with pid [8229]
process[odom_map_broadcaster-3]: started with pid [8244]
[ INFO] [1423425360.265478699]: Loading from pre-hydro parameter style
[ INFO] [1423425361.333800718]: Using plugin "static_layer"
[ INFO] [1423425364.603937291]: Requesting the map...
[ INFO] [1423425364.876700435]: Resizing costmap to 600 X 600 at 0.010000 m/
pix
[ INFO] [1423425364.972904669]: Received a 600 X 600 map at 0.010000 m/pix
[ INFO] [1423425365.199899211]: Using plugin "obstacle_layer"
[ INFO] [1423425365.404233819]:     Subscribed to Topics: scan
[ INFO] [1423425366.440568557]: Using plugin "inflation_layer"
[ INFO] [1423425369.904635360]: Loading from pre-hydro parameter style
[ INFO] [1423425370.464513312]: Using plugin "static_layer"
[ INFO] [1423425372.235661986]: Requesting the map...
[ INFO] [1423425372.271305368]: Resizing costmap to 600 X 600 at 0.010000 m/pix
[ INFO] [1423425372.386507353]: Received a 600 X 600 map at 0.010000 m/pix
[ INFO] [1423425372.499958118]: Using plugin "obstacle_layer"
[ INFO] [1423425372.587125547]:     Subscribed to Topics: scan
[ INFO] [1423425373.214676443]: Using plugin "inflation_layer"
[ INFO] [1423425375.933213953]: Created local_planner base_local_planner/TrajectoryPlannerROS
[
 WARN
] [1423425376.193332871]:
/move_base/TrajectoryPlannerROS/acc_lim_th should be acc_lim_theta, this
 param will be removed
in J-turtle
[ INFO] [1423425376.439148106]: Sim period is set to 0.33
[ INFO] [1423425383.264310792]: Recovery behavior will clear layer obstacles
[ INFO] [1423425385.740396992]: Recovery behavior will clear layer obstacles
[ INFO] [1423425386.749230403]: odom received!




------------------------

But when I try to send a move base goal according to page 84 nothing happens...

rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped \'{
header: { frame_id: "map" }, pose: { position: { x: 1.0, y: 0, z: 0 },
orientation: { x: 0, y: 0, z: 0, w: 1 } } }'



no movement and no output text in any terminal...

When I try to manually set a goal in Rviz according to chapter "8.2.1 Point and Click Navigation in RViz".
After setting the "2D nav goal" manually the robot starts to going in circles and looks likes it dosen´t know where it is.
A lot of this warnings shows up in the "roslaunch rbx1_nav fake_move_base_blank_map.launch" terminal

[ WARN] [1423427378.667803335]: Map update loop missed its desired rate of 3.0000Hz... the loop actually took 4.2873 seconds
[ WARN] [1423427378.675970187]: Control loop missed its desired rate of 3.0000Hz... the loop actually took 4.5928 seconds
[ WARN] [1423427382.714418603]: Map update loop missed its desired rate of 3.0000Hz... the loop actually took 3.7133 seconds
[ WARN] [1423427382.770611246]: Control loop missed its desired rate of 3.0000Hz... the loop actually took 4.0946 seconds
[ WARN] [1423427388.398529653]: Map update loop missed its desired rate of 3.0000Hz... the loop actually took 3.6841 seconds
[ WARN] [1423427388.401623191]: Control loop missed its desired rate of 3.0000Hz... the loop actually took 3.9644 seconds
[ WARN] [1423427392.586643161]: Map update loop missed its desired rate of 3.0000Hz... the loop actually took 3.8547 seconds
[ WARN] [1423427392.613056477]: Control loop missed its desired rate of 3.0000Hz... the loop actually took 4.2114 seconds




After a while the robot goes of the map and this warnings shows up:

[ WARN] [1423427437.510337103]: The robot's start position is off the
global costmap. Planning will always fail, are you sure the robot has
been properly localized?
[ WARN] [1423427437.540717610]: The robot'
s
start position
is off the global costmap. Planning will always fail, are
 you sure the robot has been properly localized
?
[ WARN]
[1423427437.590432712]: The robot's start position is off the global
costmap. Planning will always fail, are you sure the robot has been
properly localized?



And finally this error:

[ERROR] [1423427437.623082434]: Aborting because a valid plan could not be found. Even after executing all recovery behaviors




Any idea what can be wrong?

I have tried to find a answer online but all the answers to similar problems seams to be related to the wrong fixed frame in Rviz.
But my fixed frame is set to map as it should be.

I have also tried to set the "2D initil pose" in Rviz but with no luck.

Tool properties is set up like this:
"2D nav goal" - goal
"2D pose estimate" - initial pose

All files are "originals" from the books repository.

I´m running Ubuntu 12.04 on a virtual machine on a Windows vista host machine and ROS Hydro.



//Best regards
Henrik

Patrick Goebel

unread,
Feb 9, 2015, 9:16:05 AM2/9/15
to ros-by-...@googlegroups.com
Hi Henrik,

It sounds like your CPU does not have enough power to run all the navigation nodes in a virtual machine.  The key warning message is:


[ WARN] [1423427378.667803335]: Map update loop missed its desired rate of 3.0000Hz... the loop actually took 4.2873 seconds


The move_base node is expecting a map update at least 3 times per second (once every 0.33 seconds) but the updates are only coming once every 4.28 seconds which is ten times too slow.  So the robot keeps spinning since the updates are not fast enough to do proper planning.

What type of machine are you running this on?

--patrick

Henrik Sundberg

unread,
Feb 9, 2015, 5:39:18 PM2/9/15
to ros-by-...@googlegroups.com
I have a Intel Core 2 Duo 2,1GHz CPU and 4GB RAM on the host machine (HP Pavilion laptop) and the virtual maschine is using 2048MB RAM and 1 CPU core.

What do you recommed as minimum hardware requirements to be able to run the navigation smootly? 
And also to be able to run the rest of the examples in your book. Including volume 2.

Patrick Goebel

unread,
Feb 10, 2015, 1:43:13 PM2/10/15
to ros-by-...@googlegroups.com
Hi Henrik,

I don't have a good sense of the minimum recommended hardware since I don't typically run ROS in a virtual machine.  You might get some ideas over on http://answers.ros.org.   However, my guess is that RViz is the biggest CPU hog in your setup so you could try the same set of nodes but leave out RViz.  That way you can at least see if the warning goes away and you can get a sense of how the robot is moving by using the command:

$ rostopic echo /odom

--patrick
Reply all
Reply to author
Forward
0 new messages