ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Odometry Information Source

asked 2012-01-24 00:14:35 -0500

Cav gravatar image

updated 2016-10-24 08:59:39 -0500

ngrennan gravatar image

Hi,

I'm trying to generate odometry information following this tutorial. I am using a robot like this one - build with phidgets and with a Kinect mounted.

My problem is that I don't have a speed-source for the robot. It does not have a stepper motor or encoder and the actual speed depends on many factors (laptop weight, floor type, battery state, ...). Seems like this is my best shot for now (Obtaining nav_msgs/Odometry from a laser_scan (eg. with laser_scan_matcher)). Is vslam worth trying with kinect? Is there any other possibility? Am I missing something?

Edit: it's quite pointless. I can say that the robot moves with fixed speed x and it kind of works but the next issue is the yaw angle - I don't have a gyro and laser_scan_matcher estimations are not very accurate.

For me it means: gmapping won't work without a good odometry source.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2012-01-24 00:48:40 -0500

DimitriProsser gravatar image

I believe that this is what you're looking for. You can then use laser_scan_matcher to compute odometry information.

edit flag offensive delete link more

Comments

This is what was in the answer I mentioned (Obtaining nav_msgs/Odometry from a laser_scan), too, but in order to make it work I would have to modify laser_scan_matcher pkg, if I understood it correctly. Is there no other option? FYI I am quite new to ROS :)
Cav gravatar image Cav  ( 2012-01-24 02:10:27 -0500 )edit
Why would you have to modify laser_scan_matcher?
DimitriProsser gravatar image DimitriProsser  ( 2012-01-24 02:16:15 -0500 )edit
Why do you need the velocity information specifically? Usually the velocity information is integrated to help inform the position. The laser scan matching goes directly to positional which is usually what you care about.
tfoote gravatar image tfoote  ( 2012-01-24 03:50:56 -0500 )edit
@DimitriProsser: laser_scan_matcher is publishing the information as geometry_msgs/Pose2D so I would have to modify it to obtain the needed nav_msgs/Odometry and publish it to the odom topic, right?
Cav gravatar image Cav  ( 2012-01-25 20:15:58 -0500 )edit
@tfoote: I was following the Odom-tutorial and using the code from it - I need the vx, vy, vth to compute the odometry. laser_scan_matcher is giving me the position already but to be able to publish nav_msgs/Odometry I still need the speed.
Cav gravatar image Cav  ( 2012-01-25 20:17:28 -0500 )edit

The scan matcher algorithm is inherently discrete. Whatever you do you will need to therefore differentiate the signal. Thus you could simply write a node which computes the velocity based on the sequence of pose messages. Then you don't have to modify the node.

tfoote gravatar image tfoote  ( 2012-02-22 19:57:57 -0500 )edit

yes but in my case it does not work too good (movement in a corridor is not being recognized with laser_scan_matcher only). if anyone is interested, tom did some modifications already, links are here: http://answers.ros.org/question/12489/obtaining-nav_msgsodometry-from-a-laser_scan-eg#18434

Cav gravatar image Cav  ( 2012-02-22 22:12:36 -0500 )edit

If you still need it we have a node to transform several kind of messages to odometry http://www.ros.org/wiki/iri_msg_to_odom In this case would be "pose2d_to_odom"

martimorta gravatar image martimorta  ( 2012-07-31 21:34:48 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2012-01-24 00:14:35 -0500

Seen: 2,225 times

Last updated: Feb 21 '12