Using Google Cartographer with Turtlebot in a custom world?
I am a beginner in robotics and I am trying to use Google Cartographer to make my simulated Turtlebot build a map autonomously of its environment.
I have done already all the tutorials in ROS and I can make the robot build the map using teleoperation, but I don't know how to make it build the map by itself. I want to use Google Cartographer for this.
I can however run the demo provided by Google and it works (it builds the map of a Museum).
# Launch the 2D depth camera demo.
roslaunch cartographer_turtlebot demo_depth_camera_2d.launch bag_filename:=${HOME}/Downloads/cartographer_turtlebot_demo.bag
The questions:
How can I run it on my own world instead of the bag file of that museum?
Does it need a yaml map like the one I built with teleoperation? what is the command to make it use my yaml map instead of a bag file?
Can I use a .png image with yaml context?
Could it use the gazebo simulated worlds that are .sdf? What is the command to input this then?
These are the specifications I have:
- Ubuntu Xenial
- ROS Kinetic
- Gazebo 7
- Turtlebot2
- Google Cartographer for turtlebot
Thanks a lot! It's like I understand the concepts but I don't know how to link things together to make them work.
Autonomous map building is often called "exploration", and I don't think cartographer can do it. The existing cartographer example data sets come from someone teleoperating a robot to collect bag files.
You can probably collect bag files while teleoperating your robot and use those with cartographer to build a map.
Perhaps #q269765 is related here.
Thanks a lot @ahendrix , I was really confused! I will do the .bag file. So the point of Cartographer is that it makes more accurate map? I've been checking your link @gvdhoorn , should I use this for the exploration task? turtlebot_exploration_3d
I cannot say. I haven't used that particular component, so I cannot (dis)recommend it.