# Relationsship between map, odom and base_link coordinate frames

Hello ROS community,

in descriptions of the different coordinate frames I read, that they can change with time. For example the odom system can drift and is therefore not suitable for long time/path experiments. I know try to implement that fact into my simulation. The goal is to get the position coordinates that would also be received by the real robot.

Here, the first question arises due to the drifting of the wheels in relation to the ground. If I had a super sticky wheel without any drifting, would the odom system always be the same like the map system? And the other way round, the change from the odom system to the map system would be in a real case exactly the change of coordinates due to drifting movement?

In order to get coordinates in my simulation, I have a second question. If I transfer my algorithm to a real robot, I get my robot pose data again from the integration of the wheel movements (encoder). That would mean, that the only coordinates I have are those in the odom system? Other way round again, do I have to add the drift of the odom system on top of the map coordinates, to get the coordinates, that would be measured in reality?

Is there any chance (without any additional sensors but a Lidar) and without having a map. I have to navigate in an unknown environment and thus can´t use amcl etc.. Is there any other chance to get the absolut position in the map frame?

Best regards and thanks in advance!

edit retag close merge delete

If I had a super sticky wheel without any drifting, would the odom system always be the same like the map system?

An ideal environment would imply that the map and odom system would have had the same relations. But this isn't usually the case as the real world scenario would have many factors other than drifting that would act on the wheel.

the change from the odom system to the map system would be in a real case exactly the change of coordinates due to drifting movement?


Drifting would contribute a major part to the factors which you say are the real cause for the change of co-ordinates.

That would mean, that the only coordinates I have are those in the odom system?


Yes . You can still verify if there are any compensations added on to the navigation stack to compensate drift and other factors, but they aren ...(more)

( 2019-08-03 13:02:48 -0500 )edit

Sort by » oldest newest most voted

If I had a super sticky wheel without any drifting, would the odom system always be the same like the map system?

An ideal environment would imply that the map and odom system would have had the same relations. But this isn't usually the case as the real world scenario would have many factors other than drifting that would act on the wheel.

the change from the odom system to the map system would be in a real case exactly the change of coordinates due to drifting movement?

Drifting would contribute a major part to the factors which you say are the real cause for the change of co-ordinates.

That would mean, that the only coordinates I have are those in the odom system?

Yes. You can still verify if there are any compensations added on to the navigation stack to compensate drift and other factors, but they aren't usually done as it would be different for each and every robot.

Try asking the last part as a separate question as it might have a better change of being answered.

more

Question 1 - Yes, perfect odometry with zero slip would yield no difference between ODOM and MAP provided ODOM was initialized to be correct in the MAP when the robot was started. When robot comes on assume the odometry starts at 0,0,0 and 0,0,0,0 but that isn't where the robot really is.

Question 2 - Yes, The expression you're looking for is the MAP->ODOM Transform. It is the correction vectors between MAP and ODOM frames.

Question 3 and 4 - You haven't said what your algorithm is supposed to do so I can't answer these. Is your algo for localizing or navigating? AMCL generates the pose of the robot in the MAP and then subtracts off the ODOM data, then published the MAP -> ODOM correction. But it starts with the pose of robot in the map.

Question 5 - There are two questions I think in last paragraph. You can navigate without a map using Navigation stack. I don't know however what the path planners use for feedback. I guess they would use another localization method like robot_localization or just ODOM, but not sure. If there are features in the environment for your laser scanner to see, Laser_scan_matcher could be used in place of encoders and it would not suffer from unlimited drift. In that case you could set the MAP->ODOM TF as {0} and Navigation stack should work. I've never tried this use case.

more

Hey and thanks for your answer! The algorithm is for navigating in an unknown map to a goal position. The navigation itself is done by a RL algorithm that constantly compares the goal position with the actual position (to see if the robots comes close to the goal). Therefore I can not use AMCL and it´s MAP -> ODOM correction. Here my core problem is to get a good estimation of the robots actual position in the MAP coordinates and not in the ODOM coordinates.

( 2019-08-04 04:20:32 -0500 )edit

## Stats

Seen: 1,424 times

Last updated: Aug 04 '19