Git Product home page Git Product logo

robond-slam's Introduction

Udacity - Robotics NanoDegree Program ROS CI

Robot Simulatnous Localization and Mapping (SLAM)

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)

Impressions

The robot

Robot

The environment

World

3D Occupancy Grid Map

3D Occupancy Grid

Graph

RTABMap Database Viewer

Directory Structure

.
├── 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

Steps to launch the simulation

Step 1 Update and upgrade the Workspace image

$ sudo apt-get update
$ sudo apt-get upgrade -y

Step 1a fix graphics driver

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

Step 2 Create the catkin workspace

$ mkdir -p $HOME/catkin_ws/src
$ cd $HOME/catkin_ws/src
$ catkin_init_workspace

step 3 Install dependencies of packages in 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

Step 4 Compile the code

$ cd $HOME/catkin_ws
$ catkin_make
$ source devel/setup.bash

Step 5 Run the Simulation

in Terminal 1
$ 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.

in Terminal 2
$ source $HOME/catkin_ws/devel/setup.bash
$ roslaunch my_robot teleop.launch

This will run the teleoperation mode.

in Terminal 3
$ source $HOME/catkin_ws/devel/setup.bash
$ roslaunch my_robot mapping.launch

This will run the RTAB mapping.

License

MIT license

Thanks to

Further Reading

robond-slam's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.