Ask Your Question

Navigation with only Odometry

asked 2014-09-09 13:52:07 -0500

ROSCMBOT gravatar image


I'm trying to set up the navigation stack on a robot possessing only odometry sensors (wheel encoder, IMU published to /odom /imu). No camera/laser. The robot is also using robot_state_publisher to publish the transformations between robot coordinates.

I want to use only odometry sources (wheel encoder, IMU) to navigate the robot, so my plan is to use robot_pose_ekf to fuse the odometry data and use fake_localization to localize the robot on the known map (since no laser is involved).

So I was wondering where I can change the default parameters in order to use robot_pose_ekf and fake_localization in my navigation system. Also, I could not find the launch file for robot_pose_ekf in the package directory (/opt/ros/hydro/share/robot_pose_ekf) as mentioned in the tutorial. There is no launch file for fake_localization in /opt/ros/hydro/share/fake_localization either.


edit retag flag offensive close merge delete


The fake_localization package only contains a node. You'll have to write your own launch file for it.

ahendrix gravatar image ahendrix  ( 2014-09-09 14:23:32 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2014-09-09 14:30:07 -0500

ahendrix gravatar image

robot_pose_ekf does not currently install the launch files. I've reported this as a bug:

Until that is fixed, you can get the launch files from the source repository, or write your own based on the wiki page.

The fake_localization package only contains the fake_localization node; no launch files. It should be trivial to launch it from your own launch file.

edit flag offensive delete link more


Thanks. For clarification, should I replace fake_localization node with amcl_diff.launch file in move_base.launch? and isn't robot_pose_ekf the default state estimator in the navigation package? If so, Do I still need to launch it manually?

ROSCMBOT gravatar image ROSCMBOT  ( 2014-09-09 14:58:22 -0500 )edit

The move_base.launch described in the robot setup tutorial does not contain a robot_pose_ekf node.

ahendrix gravatar image ahendrix  ( 2014-09-09 15:09:01 -0500 )edit

Since you're using fake_localization instead of AMCL, your launch file should launch a fake_localization node instead of including one of the AMCL launch files.

ahendrix gravatar image ahendrix  ( 2014-09-09 15:09:47 -0500 )edit

Do you know what the default state estimator is in navigation stack?

ROSCMBOT gravatar image ROSCMBOT  ( 2014-09-09 15:13:29 -0500 )edit

and I'm getting the following error message when running the robot_pose_ekf.launch downloaded from the source repository:

 Invalid roslaunch XML syntax: not well-formed (invalid token): line 32, column 70
ROSCMBOT gravatar image ROSCMBOT  ( 2014-09-09 15:15:16 -0500 )edit

The robot_pose_ekf launch file in the source repository is only 16 lines. I suggest you check to make sure you've downloaded it properly.

ahendrix gravatar image ahendrix  ( 2014-09-09 15:23:07 -0500 )edit

You are right. It was my mistake. Thanks a lot.

ROSCMBOT gravatar image ROSCMBOT  ( 2014-09-09 15:49:22 -0500 )edit

and can you please tell me why I have to add robot_pose_ekf in move_base.launch when I'm using only odometry for navigation, but otherwise it does not need to be added. Does this means navigation stack by default is using some other package to fuse the odometry sensors?

ROSCMBOT gravatar image ROSCMBOT  ( 2014-09-09 18:06:46 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2014-09-09 13:52:07 -0500

Seen: 1,668 times

Last updated: Sep 09 '14