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

autonomously localise robot at "starting" point

asked 2015-03-30 17:13:56 -0500

sobot gravatar image

updated 2015-03-31 11:49:54 -0500


I need a little clarification for the localisation methods for the following purpose:

  • I want to autonomously localise my Turtlebot at the starting point (which could be anywhere in a room) then send some navigation goals for it to follow, then at the end i want my turtlebot to return to the same initial point which it had localised itself in the beginning, all without any user intervention.

my setup is a Turtlebot, Hokuyo Lidar, ROS indigo and without initial map (i'd want to create the map on the fly). as i am still learning ROS, im wondering what components can provide a solution for this task in order to localise the robot in the start and save the pose for later use?

UPDATE: with which functions i could set and retrieve the initial pose?

Thanks a lot for the inputs.

edit retag flag offensive close merge delete


Hello, I am trying to do the same thing. Could you help me out regarding the steps I must follow? Thank you!

blueberrycheesecake2019 gravatar image blueberrycheesecake2019  ( 2019-08-09 13:54:46 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-03-30 23:01:58 -0500

slam_gmapping is a SLAM implementation that is often used with ROS.

You can start with this tutorial to show how to use it with a Turtlebot.

edit flag offensive delete link more


An alternative to gmapping is hector_slam

But @Morgan is right - you need to have a SLAM node that will take your initial position, mark it in the map and expand out from there. You can then send navigation goals anywhere wrt to this building/built map.

2ROS0 gravatar image 2ROS0  ( 2015-03-30 23:24:41 -0500 )edit

@Morgan , @2ROS0 worked with gmapping this much.. is there a specific function or service that i should call to give me the initial position for the robot before it even moved? wud those first laser readings really help the localisation here w/o a map built yet? or shld do an out n back to get info?

sobot gravatar image sobot  ( 2015-03-30 23:56:54 -0500 )edit

That's one of the requirements for a SLAM algorithm - to give you an initial position "even before it moved" and build from there so you don't need to give it anything like that. Yes, it will use the first laser readings to seed localization.

2ROS0 gravatar image 2ROS0  ( 2015-03-31 00:04:25 -0500 )edit

@2ROS0 thank you, so how do i do it in practice since i want it to be autonomous, i mean how do i call or get the initial pose in order to use it later (i.e. as the final move_base goal). or is it always (0,0)?

sobot gravatar image sobot  ( 2015-03-31 00:12:35 -0500 )edit

When you don't have a map, there is no initial pose. You can look at it like it will always start at (0, 0). Once you have the map, you can set initial pose in that map that could be the place your robot always starts in. The robot could alternatively autonomously localize in the map to get pose.

2ROS0 gravatar image 2ROS0  ( 2015-03-31 00:17:30 -0500 )edit

@2ROS0 thanks so much for the replies. so just to round it up for myself, when it start from scratch for gmapping i set the initial pose to (0,0) and then it builds the map around it. then when it gets the nav command to go to (0,0) it will return to point 1? thanks again :)

sobot gravatar image sobot  ( 2015-03-31 02:52:01 -0500 )edit

Question Tools

1 follower


Asked: 2015-03-30 17:13:56 -0500

Seen: 801 times

Last updated: Mar 31 '15