Skip to content

Latest commit

 

History

History
214 lines (159 loc) · 8.39 KB

README.md

File metadata and controls

214 lines (159 loc) · 8.39 KB

ROS Melodic Workspace

Build Status Coverage Status MIT License GitHub Issues GitHub Pull Requests Gitter Join our Slack Workspace

The below codebase is a ROS melodic workspace that contains a variety of packages for simultaneous localization and mapping (SLAM). Workspace is for testing various SLAM methods(Gmapping, Karto, Hector, Cartographer etc).The codebase is well-organized and easy to use. It includes a number of tutorials that provide instructions on how to use the SLAM packages. The codebase is a valuable resource for anyone who wants to learn about SLAM or who wants to use SLAM in their own projects.

Table of content


Installation

All the code required to get started

  • Prerequisite

    • You should have ROS melodic on your ubuntu 18.04.
    • All ROS dependency is satisfied.
  • Clone

    git clone https://github.com/iamrajee/slam_rosmelodic_ws.git
    
  • Setup

    cd slam_rosmelodic_ws/
    ./refresh.sh
    make
    

Package description

Here are some details about the packages in the codebase:

gmapping: gmapping is a 2D SLAM package that uses a Rao-Blackwellized particle filter. It is a popular choice for SLAM applications that require low computational resources.

hector_slam: Hector_slam is a 2D SLAM package that uses a Hector laser scanner odometry and mapping algorithm. It is a good choice for SLAM applications that use a laser scanner.

slam_gmapping: slam_gmapping is a 2D SLAM package that combines the gmapping and Hector SLAM packages. It is a good choice for SLAM applications that require the best of both worlds.

cartographer: cartographer is a 3D SLAM package that uses a probabilistic graph SLAM algorithm. It is a good choice for SLAM applications that require high accuracy and robustness.

The codebase also includes a number of other packages that are used to support the SLAM packages, such as:

tf: A package that provides a transformation framework for ROS.

nav_msgs: A package that provides messages for navigation.

sensor_msgs: A package that provides messages for sensor data.

  • Mapping

    To do mapping run slam.launch file along with telop. Also, you can which slam_method to use among [Gmapping, Karto, Hector, Cartographer].

    Run
    Terminal 1: roslaunch test_slam slam.launch slam_method:=gmapping          #here gmapping is default
    
    Terminal 2: roslaunch test_slam teleop.launch
    

    Navigation

    After mapping you can run navigation by running navigation.launch file.

    Run
    Terminal: roslaunch test_slam navigation.launch
    



Helper Scripts

  • refresh.sh

    #!/bin/bash
    source /opt/ros/melodic/setup.bash
    source devel/setup.bash
    clear
    

    It will source the workspace after buiding workspace or after creating new pkg. Run it as ./refresh.sh

  • makefile

    SHELL=/bin/bash
    all:
        make run
    run:
        catkin_make
        bash refresh.sh
    

    It will build the workspace . Run it as make

  • createpkg.sh

    #!/bin/bash
    cd src/
    catkin create $1
    cd ../
    make
    source refresh.sh
    

    It will create new package . Run it as ./createpkg.sh newpkg_name

  • tftree.sh

    #!/bin/bash
    rosrun rqt_tf_tree rqt_tf_tree
    

    It will launch the gui to visvualise the tf tree. Run it as ./tftree.sh

  • printenv.sh

    #!/bin/bash
    printenv | grep -i ROS
    

    It will print the ROS related environment variable . Run it as ./printenv.sh

  • rosdep.sh

    sudo rosdep install -i --from-path src --rosdistro $ROS_DISTRO -y
    

    It will install dependencies of all pkg in the workspace. Run it in the workspace as ./rosdep.sh

  • ssh_into_another_computer.sh

    #!/bin/bash
    ssh rajendra@rajendra
    

    It will ssh into another system. Useful when using multiple ros masters. Run it as ./ssh_into_another_computer.sh




Team

Or Contributors/supporters/mentors/guides who helped me out in these projects.

Rajendra Singh Sachin Rustagi S M Rafi

Contributing

To get started...

Step 1

  • Option 1

    • 🍴 Fork this repo!
  • Option 2

    • 👯 Clone this repo to your local machine using https://github.com/iamrajee/slam_rosmelodic_ws.git

Step 2

  • HACK AWAY! 🔨🔨🔨

Step 3


FAQ

  • I ran into some issue while running above package, what to do now?
    • Simply contact me!

Support

Reach out to me for any help!

Name : Rajendra Singh
Email : [email protected]
Web : https://iamrajee.github.io/
LinkedIn : https://www.linkedin.com/in/rajendra-singh-6b0b3a13a/
Twitter: @i_am_rajee

License

MIT License


Acknowledgments

  • Hat tip to anyone whose code was used and thanks to everyone who inspired and supported me in this project.