/RSEND-Home_Service_Robot

Combined AI paradigms to build a home service robot that can map, localize, and navigate to perform household tasks, moving from one room to another autonomously.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

RoboND-HomeServiceRobot-Project

The goal of this project is to program a robot than can autonomously map an environment and navigate to pick up and drop off virtual objects. List of the steps in this project :

  • Write a Shell Script
  • Design your environment with Gazebo Building Editor
  • Test SLAM
  • Wall Follower to map the environment
  • Test Navigation
  • Reach Multiple Goals
  • Model Virtual Objects
  • Put it all together

Project setup

Update your system: sudo apt-get update

Install the ROS navigation stack: sudo apt-get install ros-kinetic-navigation

Create catkin workspace, if you haven't already.For this project catkin_ws is used, if your workspace name is different, change the commands accordingly.

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make

Clone the following repositories to catkin_ws/src:

$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-perception/slam_gmapping.git
$ git clone https://github.com/turtlebot/turtlebot.git
$ git clone https://github.com/turtlebot/turtlebot_interactions.git
$ git clone https://github.com/turtlebot/turtlebot_simulator.git

Install package dependencies with rosdep install [package-name]

Copy content of this repository to catkin_ws/src

Catkin workspace should look something like this:

catkin_ws/src
    ├── slam_gmapping                  # gmapping_demo.launch file                   
    │   ├── gmapping
    │   ├── ...
    ├── turtlebot                      # keyboard_teleop.launch file
    │   ├── turtlebot_teleop
    │   ├── ...
    ├── turtlebot_interactions         # view_navigation.launch file      
    │   ├── turtlebot_rviz_launchers
    │   ├── ...
    ├── turtlebot_simulator            # turtlebot_world.launch file 
    │   ├── turtlebot_gazebo
    │   ├── ...
    ├── World                          # world files
    │   ├── ...
    ├── ShellScripts                   # shell scripts files
    │   ├── ...
    ├──RvizConfig                      # rviz configuration files
    │   ├── ...
    ├──wall_follower                   # wall_follower C++ node
    │   ├── src/wall_follower.cpp
    │   ├── ...
    ├──pick_objects                    # pick_objects C++ node
    │   ├── src/pick_objects.cpp
    │   ├── ...
    ├──add_markers                     # add_marker C++ node
    │   ├── src/add_markers.cpp
    │   ├── ...
    └──

Source and build the project:

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

To run home service robot navigate to ShellScripts directory and run ./home_service.sh

After running you will see (int Rviz) robot picking up a virtual object from the pickup zone and dropping it off at the drop off zone.