Getting MAP -> ODOM transformation in a unknown map

asked 2019-08-04 04:31:46 -0500

Tima1995 gravatar image

updated 2019-08-04 04:47:53 -0500

Hey ROS forum,

my problem is that my robot needs to navigate in a unknown environment. Here, it uses a RL algo to navigate from a start position to a goal position. For that navigation, it constantly measures the distance from start to goal but also the heading. Here it would be nice to get a good estimation of the robots pose because only using the odom data is getting worse with time. Thats why I need the tranformation from map to odom to be "good" again.

I thought about using the AMCL, but here I need a given map to be able to use it (unknown environment). I also thought about merging the encoder data together with the IMU data in the laser_scan_matcher. Would that be an acceptable idea?

Is there any other chance to get the absolut position in the map frame or the transformation MAP -> ODOM?

Best regards and thanks in advance!

edit retag flag offensive close merge delete


What it sounds like is you want to use a SLAM algorithm to create a map of your unknown area. Then as you move around it should correct the odom->map for drift in odometry

stevemacenski gravatar image stevemacenski  ( 2019-08-04 18:23:03 -0500 )edit

Yes. That was one solution I thought about. But for example amcl needs a map that is already known or is there a opportunity to transfer an updated map while moving the robot through the environement time by time?

Tima1995 gravatar image Tima1995  ( 2019-08-05 01:10:26 -0500 )edit

You could try using an EKF to combine different sensor sources. From your description it indeed sounds like you need some kind of SLAM algorithm (you could have a look at hector_mapping). Simultaneous Localization And Mapping does what the name implies. You could also map first using hector_mapping, save that map and feed it into AMCL. I'm not sure if there is a way to combine the two at runtime.

MCornelis gravatar image MCornelis  ( 2019-08-05 05:46:24 -0500 )edit

There isn’t a need for AMCL when you’re using SLAM. All you’re looking for is a map to odom transform based on the current knowledge of the environment, which it will do.

stevemacenski gravatar image stevemacenski  ( 2019-08-05 09:13:26 -0500 )edit

But when I use slam I already need some good position data to have the algo working. But if I use that data, the SLAM Map will be not exact as well, right?

Tima1995 gravatar image Tima1995  ( 2019-08-05 09:24:49 -0500 )edit

I’m not sure what you’re talking about there. My advise is to try it for yourself and tinker around. SLAM doesn’t require any priors.

stevemacenski gravatar image stevemacenski  ( 2019-08-05 09:31:33 -0500 )edit