ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A answers.ros.org

# navigation stack with errors on launch

Hi,

I am using a Pioneer 3dx with a Sick lms 200 Laserscanner. I wanted to access the robot via ROS and the already supported p2os_driver. Everything works fine including the transformation from base_link to laser_scanner and so on. Now my Problem:

I did the navigation stack tutorial and created the files like its told in the tutorial. I started all relevant things (p2os driver for odom and tf, laser_wrapper, transformation from laser to baselink and slam gmapping for the map) after that I launched the move_base.launch file and got some warnings and errors:

[ WARN] [1310979131.605673459]: Planner specifications should now include the package name. You are using a deprecated API. Please switch from NavfnROS to navfn/NavfnROS in your yaml file.

In which file do I have to adjust the path? I can't find it.

[ERROR] [1310979131.801336625]: You are using acc_limit_x where you should be using acc_lim_x. Please change your configuration files appropriately. The documentation used to be wrong on this, sorry for any confusion.

I checked the used yaml-Files and I am using only acc_lim_x variables. The error occurs for x,y and th. Where else can this error come from?

[ WARN] [1310978768.698218184]: Map update loop missed its desired rate of 2.0000Hz... the loop actually took 2.1595 seconds

Whats that? I am totally confused with all these warnings and errors.

Same with that warning:

[ WARN] [1310979131.859018260]: The backup_vel parameter has been deprecated in favor of the escape_vel parameter. To switch, just change the parameter name in your configuration files.

Despite of all warnings I started rviz and was happy to see the occupacy grid map but the rest of the navigation didnt work. There are warnings in rviz that the topics dont recieve any data... I tried to set an estimated pose and navigate to somewhere but no chance of moving the bot. Why? What is wrong with my config?

I read everything about my problem here in the answers.ros.org but couldn't find anything helpful so i created an own question.

thanks for your help.

Jan

Edit:

The code of the config-files:

<launch>
<master auto="start"/>

<!-- Run the map server (you can run it here or in another terminal) -->
<!-- <node name="map_server" pkg="map_server" type="map_server" args="path_to_map.yaml"/> -->

<!--- Run AMCL -->
<include file="$(find p2os_launch)/amcl.launch" /> <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen"> <rosparam file="$(find p2os_launch)/costmap_common_params.yaml" command="load" ns="global_costmap" />
<rosparam file="$(find p2os_launch)/costmap_common_params.yaml" command="load" ns="local_costmap" /> <rosparam file="$(find p2os_launch)/local_costmap_params.yaml" command="load" />
<rosparam file="$(find p2os_launch)/global_costmap_params.yaml" command="load" /> <rosparam file="$(find p2os_launch)/base_local_planner_params.yaml" command="load" />
<param name="base_global_planner" type="string" value="navfn/NavfnROS" />
<!--  <param name="conservative_reset_dist" type="double" value="3.0" /> -->
<!--  <param name="controller_frequency" type="double" value="15.0" /> -->
</node>


</launch>

I already tried the diff_amcl.launch in the examples but there are even more errors and the map cant be found...

local_costmap_params.yaml:

local_costmap:
global_frame: /odom
robot_base_frame: base_link ...
edit retag close merge delete

Jan, any chance you could post your configuration files here? That'll make it much easier to track down what's going on.
( 2011-07-18 14:40:20 -0600 )edit
Oh sorry. I edited my comment with the code. If you want any other information please let me know.
( 2011-07-18 18:33:34 -0600 )edit

Sort by » oldest newest most voted

Ok I solved the problem. I had to set the ROS_IP to my own ip. I am using two Ubuntu machines cause the pc on the bot is not powerful enough for rviz and so on. All I had to do was setting the ROS_IP to my local machines IP and the set_2d_nav_goal of rviz worked!

Thank you all for your help

more

The parameter dump above looks more reasonable. A couple of questions/comments.

• You should make sure that your "inflation_radius" parameter is set to be larger than the radius of the robot. I'm actually surprised that you're not getting a warning about this because you should be.

• Have you tried to "rostopic echo cmd_vel" to see if move_base is trying to publish velocity commands.

• Why are you running both gmapping and AMCL? It should probably be one or the other.

• Does the global plan created by the navigation stack look reasonable in rviz?

• Have you looked at the navigation tuning guide to make sure that things are set up more or less correctly for navigation.

more

You should make sure that your "inflation_radius" parameter is set to be larger than the radius of the robot. I'm actually surprised that you're not getting a warning about this because you should be.

I get a warning about the inflation_radius but this was not an important warning to me. I set the inflattion to a lower value because there would be no space to move my bot if i do it as big as the robots shape or bigger. This was my first thought to lower the inflation so that it would be possible for the bot to move.

Have you tried to "rostopic echo cmd_vel" to see if move_base is trying to publish velocity commands.

I did echo the cmd_vel but nothing is publsihed. When I start the simple_navigation_goals there is a speed value published on the cmd_vel topic.

Why are you running both gmapping and AMCL? It should probably be one or the other.

I am not sure which topics, nodes and so on to run. I tried it like that. So if I start the gmapping I should not start AMCL with the navigation? Ok I will try this now.

Does the global plan created by the navigation stack look reasonable in rviz?

In RVIZ there is no Global or Local Plan created when I set a navigation goal. So I cant tell you if it is a good plan or not. The plan that is created by the simple_navigation_goals function looks pretty good.

Have you looked at the navigation tuning guide to make sure that things are set up more or less correctly for navigation.

I will do that now but the things have to be set correctly cause I use the param-Files of the p2os_launch stack.

more

I tried all your hints but nothing worked at all.
( 2011-07-26 23:57:15 -0600 )edit
From your post above I've got a couple comments. First, if your inflation radius is smaller than the radius of your robot, the robot will likely hit obstacles when it does start moving.
( 2011-07-27 05:35:22 -0600 )edit
Second, if velocities are being published on the cmd_vel topic after sending a goal, this means that things are working. You need to take the output from that command and pass it to your base controller for the robot to move.
( 2011-07-27 05:35:59 -0600 )edit
Third, if you start gmapping, you're right that you probably don't want to be running AMCL as they'll conflict with each other in the TF trees that they try to publish.
( 2011-07-27 05:36:57 -0600 )edit
I think if have to specify my actual problem. The simple_navigation_goals example works. Not perfect but there is a path planned an arrow is shown in rviz and the robot moves to the given position.
( 2011-07-27 18:33:50 -0600 )edit
My actual problem is the setting a goal in rviz doesnt work. When i do so the value is set in debug information of rviz but no path is planned and the robot isnt moving. I did the same like in the tutorial video of navigation and rviz. Did I forget to start something?
( 2011-07-27 18:35:32 -0600 )edit
Oh, I totally misinterpreted your current problem. Are you running both rviz and simple_navigation_goals from the same computer? If not, you likely have an issue with your ROS_HOSTNAME or ROS_IP environment variable.
( 2011-07-28 04:49:38 -0600 )edit
I have two machines running Ubuntu and the same ROS version. 1 PC is connected to the bot and one PC is connected to the other over ethernet. All my nodes are started on the robot PC. By using the ROS_MASTER_URI I connect to the bot via ethernet and let rviz run on my pc cause of the graphics card..
( 2011-07-28 06:34:55 -0600 )edit

Yeah my posted warnings are a bit confusing to myself. Sometimes i got these warnings sometimes other warnings. I tried a lot with the yaml files and got a lot of strange warnings. Not all of them at the same time... sorry. I wanted to show you all errors i get but these are not based on one configuration set. I tried a lot and got a version now without errors and warnings! But I dont know how i did this.

The nodes and topics I run :

roscore &
rosrun p2os_driver p2os
rosrun p2os_dashboard p2os_dashboard & (I enabled the motors)
roslaunch p2os_launch gmapping_tf_lrf_p2os_teleop_joy.launch &
roslaunch p2os_launch navigation.launch &


The funny thing is, the warnings are gone but it is still not working. I am running 2 Systems. One on the Robot and one I work with. Both are installed with Ubuntu 10.04LTS.

This is my param dump

axis_vw: 2
axis_vx: 1
axis_vy: 0
rosdistro: diamondback
roslaunch:
uris: {host_flyingdutchman__46266: 'http://FlyingDutchman:46266/', host_flyingdutchman__50524: 'http://FlyingDutchman:50524/'}
rosversion: 1.4.7
run_button: 4
run_id: c7d0f6ec-b695-11e0-9e1b-00012e270b37
sicklms_node: {baud: 500000, port: /dev/ttyUSB0, resolution: 1}
slam_gmapping: {map_update_interval: 1.5}


Are you using a pioneer bot too? Perhaps the problem is the bot itself and not the running software? How can I move the bot from A to B by a command?? I tried the simple_navigation_goals tutorial and it was possible to send the bot a command to move a bit. Normally the bot should move 1 meter but he moves so slow as if there is something completely wrongwith the bot. Normal joystick movement works perfect. Perhaps these information can help you to see whats going wrong with my bot. If you need some more code/config params of the actual setting let me know.

more

I don't have a Pioneer, but, from your param dump, it looks like you're not setting any navigation-related parameters. There should be a whole bunch under the "move_base" namespace. Either the dump isn't quite right, or something really strange is going on. Are you sure what you posted is correct?
( 2011-07-25 05:49:16 -0600 )edit
First of all I tried to move the bot with the simple navigation goals function and the problem was the teleop_joy node running at the same time. After that I tried to let the bot move with the goal setting in rviz. But still no movement.
( 2011-07-26 01:15:00 -0600 )edit

Based on those configuration files, I'm surprised at some of the warnings that you're getting. Are you sure that you don't have any stale parameters on the parameter server for some reason? In particular, if you haven't set the "backup_vel" parameter, you really shouldn't get a warning about it being set. Also, you've set the frequency for map updates to 5Hz, but the warning you posted complains about it not hitting 2Hz... something there seems strange. Can you post the output from a "rosparam dump" so that we can see what parameters are actually set?

One thing I did notice, is that you'll probably want to set "static_map" to true and "rolling_window" to false in your global_costmap_params.yaml file if you plan to use AMCL to localize and want to create plans that go across the entire map.

Also, out of curiosity, what version of navigation are you running? What kind of computer are you trying to run things on?

more
amcl: {gui_publish_rate: 10.0, kld_err: 0.050000000000000003, kld_z: 0.98999999999999999,
laser_lambda_short: 0.10000000000000001, laser_likelihood_max_dist: 2.0, laser_max_beams: 30,
laser_model_type: likelihood_field, laser_sigma_hit: 0.20000000000000001, laser_z_hit: 0.5,
laser_z_max: 0.050000000000000003, laser_z_rand: 0.5, laser_z_short: 0.050000000000000003,
max_particles: 5000, min_particles: 500, odom_alpha1: 0.20000000000000001, odom_alpha2: 0.20000000000000001,
odom_alpha3: 0.80000000000000004, odom_alpha4: 0.20000000000000001, odom_alpha5: 0.10000000000000001,
odom_frame_id: odom, odom_model_type: diff, recovery_alpha_fast: 0.0, recovery_alpha_slow: 0.0,
resample_interval: 1, transform_tolerance: 0.10000000000000001, update_min_a: 0.5,
update_min_d: 0.20000000000000001, use_map_topic: true}
move_base:
TrajectoryPlannerROS: {acc_lim_th: 3.2000000000000002, acc_lim_x: 2.5, acc_lim_y: 2.5,
goal_distance_bias: 0.59999999999999998, holonomic_robot: true, max_rotational_vel: 0.59999999999999998,
max_vel_x: 0.80000000000000004, min_in_place_rotational_vel: 0.5, min_vel_x: 0.20000000000000001,
path_distance_bias: 0.59999999999999998, sim_time: 2.0}
aggressive_reset: {reset_distance: 1.8400000000000001}
base_global_planner: navfn/NavfnROS
conservative_reset: {reset_distance: 3.0}
conservative_reset_dist: 3.0
controller_frequency: 15.0
global_costmap:
footprint:
- [0.254, -0.050799999999999998]
- [0.17780000000000001, -0.050799999999999998]
- [0.17780000000000001, -0.17780000000000001]
- [-0.1905, -0.17780000000000001]
- [-0.254, 0]
- [-0.1905, 0.17780000000000001]
- [0.17780000000000001, 0.17780000000000001]
- [0.17780000000000001, 0.050799999999999998]
- [0.254, 0.050799999999999998]
global_frame: /map
laser_scan_sensor: {clearing: true, data_type: LaserScan, marking: true, sensor_frame: laser,
topic: scan}
map_type: costmap
observation_sources: laser_scan_sensor
obstacle_range: 3.5
raytrace_range: 4.0
rolling_window: true
static_map: false
transform_tolerance: 0.20000000000000001
update_frequency: 5.0
local_costmap:
footprint:
- [0.254, -0.050799999999999998]
- [0.17780000000000001, -0.050799999999999998]
- [0.17780000000000001, -0.17780000000000001]
- [-0.1905, -0.17780000000000001]
- [-0.254, 0]
- [-0.1905, 0.17780000000000001]
- [0.17780000000000001, 0.17780000000000001]
- [0.17780000000000001, 0.050799999999999998]
- [0.254, 0.050799999999999998]
global_frame: /odom
height: 5.0
laser_scan_sensor: {clearing: true, data_type: LaserScan, marking: true, sensor_frame: laser,
topic: scan}
map_type: costmap
observation_sources: laser_scan_sensor
obstacle_range: 3.5
publish_frequency: 2.0
raytrace_range: 4.0
resolution: 0.050000000000000003
rolling_window: true
static_map: false
transform_tolerance: 0.20000000000000001
update_frequency: 5.0
width: 5.0
robot_description: "<?xml version=\"1.0\" ?>\n<!-- ===================================================================================\
\ -->\n<!-- |    This document was autogenerated by xacro from /opt/ros/diamondback/stacks/usc-ros-pkg/p2os/p2os_urdf/defs/pioneer3dx.xacro\
\ | -->\n<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                \
\                 | -->\n<!-- ===================================================================================\
\ -->\n<robot name=\"pioneer3dx\" xmlns:controller=\"http://playerstage.sourceforge.net/gazebo/xmlschema/#controller\"\
\ xmlns:interface=\"http://playerstage.sourceforge.net/gazebo/xmlschema/#interface\"\
\ xmlns:sensor=\"http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor\" xmlns:xacro=\"\
\    <inertial>\n      <mass value=\"3.5\"/>\n      <!--<origin xyz=\"-0.025 0 -0.223\"\
/>-->\n      <origin xyz=\"-0.05 0 0\"/>\n      <inertia ixx=\"1\" ixy=\"0\" ixz=\"\
0\" iyy=\"1\" iyz=\"0\" izz=\"1\"/>\n    </inertial>\n    <visual name=\"base_visual\"\
>\n      <origin rpy=\"0 0 0\" xyz=\"-0.045 0 0.148\"/>\n      <geometry name=\"\
pioneer_geom\">\n        <mesh filename=\"package://p2os_urdf/meshes/p3dx_meshes/chassis.stl\"\
/>\n      </geometry>\n      <material name=\"ChassisRed\">\n        <color rgba=\"\
0.851 0.0 0.0 1.0\"/>\n      </material>\n    </visual>\n    <collision>\n     \
\ <origin rpy=\"0 0 0\" xyz=\"-0.045 0 0.145\"/>\n      <geometry>\n        <box\
\ size=\"0.35 0.25 0.14\"/>\n      </geometry>\n    </collision>\n  </link>\n  <gazebo\
\ reference=\"base_link\">\n    <material value=\"Gazebo/Red\"/>\n  </gazebo>\n\
\  <!-- Top ...
more