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.
- Installation
- Package description
- Helper scripts
- Team
- Contributing
- FAQ
- Support
- License
- Acknowledgments
All the
code
required to get started
-
- You should have ROS melodic on your ubuntu 18.04.
- All ROS dependency is satisfied.
-
git clone https://github.com/iamrajee/slam_rosmelodic_ws.git
-
cd slam_rosmelodic_ws/ ./refresh.sh make
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.
-
To do mapping run slam.launch file along with telop. Also, you can which slam_method to use among [Gmapping, Karto, Hector, Cartographer].
Terminal 1: roslaunch test_slam slam.launch slam_method:=gmapping #here gmapping is default
Terminal 2: roslaunch test_slam teleop.launch
After mapping you can run navigation by running navigation.launch file.
Terminal: roslaunch test_slam navigation.launch
-
#!/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
-
SHELL=/bin/bash all: make run run: catkin_make bash refresh.sh
It will build the workspace . Run it as
make
-
#!/bin/bash cd src/ catkin create $1 cd ../ make source refresh.sh
It will create new package . Run it as
./createpkg.sh newpkg_name
-
#!/bin/bash rosrun rqt_tf_tree rqt_tf_tree
It will launch the gui to visvualise the tf tree. Run it as
./tftree.sh
-
#!/bin/bash printenv | grep -i ROS
It will print the ROS related environment variable . Run it as
./printenv.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
-
#!/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
Or Contributors/supporters/mentors/guides who helped me out in these projects.
Rajendra Singh | Sachin Rustagi | S M Rafi |
---|---|---|
To get started...
-
Option 1
- 🍴 Fork this repo!
-
Option 2
- 👯 Clone this repo to your local machine using
https://github.com/iamrajee/slam_rosmelodic_ws.git
- 👯 Clone this repo to your local machine using
- HACK AWAY! 🔨🔨🔨
- 🔃 Create a new pull request using
https://github.com/iamrajee/slam_rosmelodic_ws/compare/
.
- I ran into some issue while running above package, what to do now?
- Simply contact me!
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 |
|
- MIT license
- Copyright (c) 2019 Rajendra Singh.
- Hat tip to anyone whose code was used and thanks to everyone who inspired and supported me in this project.