husky_cartographer_navigation package from husky_cartographer_navigation repohusky_cartographer_navigation
|Tags||No category tags.|
|CI status||No Continuous Integration|
|Tags||No category tags.|
Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)
- Tony Baltovski
- Aditya Bhattacharjee
Husky Cartographer Demo
This tutorial shows you how to use move_base with Google Cartographer to perform autonomous planning and movement with simultaneous localization and mapping (SLAM), on a simulated Husky, or a factory-standard Husky with a laser scanner publishing on the /scan topic.
Developed by Google, Cartographer is an open-source library used for real-time simultaneous localization and mapping (SLAM). Using LIDAR data, it generates submaps which are later optimized and scan-matched to provide real-time loop closure. As a result, Cartographer is able to successfully close loops and generate a consistent map each time whereas Gmapping can occasionally fail to do so, resulting in unique maps generated after every iteration . A variety of sensor configurations are supported allowing Cartographer to be used for a broad range of applications. In this demo, Cartographer uses IMU and LIDAR data from the Husky to perform real-time SLAM.
To adapt this demo to your own Husky, you may need to clone the husky_cartographer_navigation repository, and modify the relevant parameters. To learn about move_base and the navigation stack, see the Navigation Tutorials. To learn more about Google Cartographer for ROS, see the Cartographer ROS documentation.
To get started with 2-D SLAM using Google Cartographer, clone this repository into your working directory (e.g. catkin_ws):
git clone http://github.com/husky/husky_cartographer_navigation.git
Install the dependencies in your workspace (e.g. catkin_ws):
rosdep install --from-paths src --ignore-src --rosdistro=$ROS_DISTRO -y
Build the workspace and open two new terminal/tabs, source the workspace for each terminal/tab:
- Launch the Gazebo simulation: `roslaunch husky_gazebo husky_playpen.launch` - Launch the Cartographer node to begin SLAM: `roslaunch husky_cartographer_navigation cartographer_demo.launch` - Launch Rviz: `roslaunch husky_viz view_robot.launch`
In the Rviz visualizer, make sure the visualizers in the Navigation group are enabled.
Use the 2D Nav Goal tool in the top toolbar to select a movement goal in the visualizer. Make sure to select an unoccupied (dark grey) or unexplored (light grey) location.
As the robot moves, you should see the grey static map (map topic) grow. There might be discrete jumps in the map as the Cartographer algorithm attempts to localize the robot.
To save the generated map, you can run the map_saver utility:
rosrun map_server map_saver -f <filename>
To tune Cartographer for low latency SLAM, edit the husky.lua configuration file found in the husky_cartographer_navigation/config directory.
For more information on tuning, click here
 T. Coroiu and O. Hinton, "A Platform for Indoor Localisation, Mapping, and Data Collection using an Autonomous Vehicle," M.S. thesis, Lund Univ., Lund, Sweden, 2017.
Changelog for package husky_cartographer_navigation
- Updated to package.xml format 2.
- Added husky_navigation as run dep.
- Contributors: Tony Baltovski
- Updated maintainer.
- Removed rviz to use husky_viz.
- minor change to install instructions
- removed unused file
- added cartographer_ros as run depend
- updated install instructions
- Added brief Cartographer description and generated image
- Update CMakeLists.txt to install custom RViz config
- Modified install script to clone repos based on ros distro
- Slight tuning
- Update README.md
- Fix install script
- Added config and launch files to use Cartographer on the Husky
- Contributors: Aditya Bhattacharjee, Tony Baltovski, ljazzal
- Copyright 2016 The Cartographer Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.