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