Skip to content

A service robot that can be tasked to pick up and drop off items in an indoor environment.

Notifications You must be signed in to change notification settings

l0g1c-80m8/Service-Robot

Repository files navigation

Service-Robot

A service robot that can be tasked to pick up and drop off items in an indoor environment.

Demo Run

A full demo run for this project can be found at this link (alt. link).

Overview

In this project a service robot has been used to simulate service tasks in an indoor environment. This project acts as a basis for building more advanced systems such as a roomba (robot vaccum cleaner). The models of the robot and the world have been made in gazebo.

Keywords: slam, localization, mapping, path planning, ros_nav_stack, base_planner, amcl.

Author: Rutvik Patel

The my_robot, add_markers and pick_objects packages have been tested under [ROS] Kinetic on Ubuntu 16.04.7 LTS (Xenial Xerus). This is prototype code, expect that it won't be maintained for future ROS versions.

Installation, Building and Running

ROS Version

The project has been developed and tested on Ubuntu 16.04 LTS with ROS Kinetic.

Start by updating your system using sudo apt-get update && sudo apt-get upgrade

Dependencies

  • Install map_server package using the command sudo apt install ros-kinetic-map-server

  • Install slam_gmapping package using the command sudo apt install ros-kinetic-slam-gmapping

  • Install amcl package using the command sudo apt install ros-kinetic-amcl

  • Install move_base package using the command sudo apt install ros-kinetic-move_base

  • Install teleop_twist_keyboard package using the command sudo apt-get install ros-kinetic-teleop-twist-keyboard

  • Additionally install xterm using the command sudo apt-get install xterm

Building

At the catkin workspace root, use catkin_make to build the packages from source.

Launching the Project

To Launch the file go to the scripts directory and run the shell script of choice. The scripts will launch all the required ros nodes in different xterm terminals. The scripts perform the following tasks:

  • test_slam.sh: Launch the gazebo world containing the robot along with slam_gmapping node to perform slam and generate map, rviz to vizualize the results and teleop_twist_keyboard to allow manual control of the robot.
  • test_navigation.sh: Launch the gazebo world containing the robot along with amcl node to perform localization and rviz to vizualize the results.
  • pick_objects.sh: Launch the gazebo world containing the robot along with amcl node to perform localization, rviz to vizualize the results and pick_objects node to test and simulate the robot motion from spawn location to pickup point and finally to drop-off point.
  • add_markers.sh: Launch the gazebo world containing the robot along with rviz to vizualize the results and add_markers node to test and simulate the spawning of a visual object marker (purple colour) at the pickup and drop-off points.
  • home_service.sh: This script launches the full project to simulate the working of the service robot and orchastrate the pickup and delivery mission. It launches the gazebo world containing the robot along with amcl node to perform localization, rviz to vizualize the results, and pick_objects and add_marker nodes to orchastrate the robot mission (path-planning and dummy object marker vizualization).

Run the scripts by invoking them as shell commands - ./<script_name>.sh. If the script is not an executable, run the command chmod +x <script_name>.sh to make it an executable and then run the previous command. Alternatively, you can run the scripts using bash <script_name>.sh or sh <script_name>.sh

Result

For a full demo run of the mission, refer to the video link above.

  1. Robot at spawn location as soon as the gazebo world loads:
    spawn
  2. Robot is on its way to pick up the purple ball (object in question): en_route_pickup
  3. Robot has reached the pickup point and has collected the object: at_pickup
  4. Robot is en route to the drop-off point: en_route_dropoff
  5. Robot has reached the drop-off point and has delivered the object: at_dropoff
  6. Robot has moved away and has successfully completed its mission: mission_success

References

About

A service robot that can be tasked to pick up and drop off items in an indoor environment.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published