This is a mini-project created to demonstrate a mobile service robot, capable of mapping its environment and autonomously navigating through it. It is capable of moving towards a certain goal, pick up an object, and drop it off at a certain other location.
Buildin-Service-Bot.mp4
Steps involved in the implementation.
- Driving around (with the help of the teleop_twist_keyboard package) through the environment, and scanning it using laser and RGBD camera.
- The robot is able to localize itself, and the amcl package helps it in that (after having carefully tuned the AMCL parameters). AMCL, or Adaptive Monte Carlo Localization is a probabilistic localization system for a robot moving in 2D environment, and uses a particle filter approach to keep track of the robot's pose w.r.t. the environment.
- It generates a static map of the environment, using RTAB-Map, i.e. the Real-Time Appearance-Based Mapping, which is an RGB-D SLAM approach, based on global loop closure detector, with real-time constraints. The package is: rtabmap_ros.
- Next comes the navigation part. Here, the popular ROS package, move_base has been used, and here again, we have to carefully tune the move_base parameters so that the robot is able to move around in the environment properly. This node links together a global and local planner to navigate through and reach a goal in the environment.
- Lastly, a node has been created in this project, which gives 2 locations to the robot to navigate to, step, by step demonstrating the 'service' feature of the robot. The robot travels to a location where a 'marker' is set (akin to an object to be picked up), and 'dropped' to the appropriate location by the robot.
Before running the shell scripts, do:
catkin_make
source devel/setup.bash
from the catkin_ws
directory.
- Clone the repo.
git clone git@github.com:amanarora9848/Building-Service-Bot.git
- Navigate to the
catkin_ws
directory and do acatkin_make
cd catkin_ws
catkin_make
- Source setup.bash
source devel/setup.bash
- To run the SLAM script, enter:
./src/scripts/test_slam.sh
slam.mp4
- To run the Navigation script, enter:
./src/scripts/test_navigation.sh
- To run the script to perform object delivery service, enter:
./src/scripts/home_service.sh