Simulation of 2-wheeled robot with differential drive* that applies the GraphSLAM algorithm RTABMAP for simultanous localization and mapping (SLAM). SLAM enables constructing or updating a map of an unknown environment while simultaneously keeping track of the robot's location within it. Inputs: Measurements, Controls, Outputs: Map, Trajestory.
You can use the keyboard to control the robot. See Readme of the Teleoperation Package.
While navigating through the example house, the rtabmap algorithm feeds data into a database. Please find an example rtabmap.db google drive (250 MB)
.
├── LICENSE
├── my_robot
│ ├── CMakeLists.txt
│ ├── images # images for documentation
│ │ ├── CustomWorld.png
│ │ ├── OccupancyGrid.png
│ │ ├── GraphView.png
│ │ └── mybot.png
│ ├── launch # launch files
│ │ ├── maping.launch # launch mapping
│ │ ├── localization.launch # launch localization
│ │ ├── teleop.launch # launch teleop
│ │ ├── robot_description.launch # launch robot
│ │ └── world.launch # launch world
│ ├── meshes
│ │ └── hokuyo.dae # mesh of lidar sensor
│ ├── package.xml # package info
│ ├── rviz # rviz configuration
│ │ └── default.rviz
│ ├── urdf # robot description files
│ │ ├── my_robot.gazebo
│ │ └── my_robot.xacro
│ └── world # the gazebo world definition
│ └── myworld.world
├── slam.rosinstall # install configuration for setting up the worlspace
└── README.md # this README.md file
$ sudo apt-get update
$ sudo apt-get upgrade -y
If you are using the Udacity RoboND Virtual Machine, you might need to update the mesa graphics driver in order to avoid rviz crashes
$ sudo add-apt-repository ppa:ubuntu-x-swat/updates
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ mkdir -p $HOME/catkin_ws/src
$ cd $HOME/catkin_ws/src
$ catkin_init_workspace
$ cd $HOME/catkin_ws
$ sudo apt-get install python-rosinstall
$ rosinstall . https://raw.githubusercontent.com/MarkBroerkens/RoboND-slam/main/slam.rosinstall
$ rosdep install --from-paths src --ignore-src -r -y
$ cd $HOME/catkin_ws
$ catkin_make
$ source devel/setup.bash
$ source $HOME/catkin_ws/devel/setup.bash
$ roslaunch my_robot world.launch
This will open Rviz and Gazebo. Add "gui:=false" in order to switch off the gazebo gui. This is useful in order to save some CPU resources.
$ source $HOME/catkin_ws/devel/setup.bash
$ roslaunch my_robot teleop.launch
This will run the teleoperation mode.
$ source $HOME/catkin_ws/devel/setup.bash
$ roslaunch my_robot mapping.launch
This will run the RTAB mapping.
MIT license
- ros teleop for https://github.com/ros-teleop/teleop_twist_keyboard
- RTAB-Map Parameter Tutorial
- List of RTAB-Map Parameters
- youtube video from The constructsim is a great resource that teaches how the algorithm works internal.