Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 3.23 KB

README.md

File metadata and controls

92 lines (65 loc) · 3.23 KB

RoboND_Home_Service_Robot

This is a comprehensive repository of Udacity Robotics Software Engineer Nanodegree final project. In this project, we built a package which is capable from SLAM(Simultaneous Localization And Mapping), executing navigation goal and pick up/drop off objects.

This repository is tested and successfully built under Ubuntu 16.04 and ROS Kinetic, with Gazebo 7.15 integration.

Install

Install package tools:

$ pip install catkin_pkg
$ pip install rospkg
$ sudo apt-get install python-rospkg

For related ros package(very important):

$ sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-ar-track-alvar-msgs
$ sudo apt-get install ros-kinetic-navigation

Update everything:

$ sudo apt-get update && sudo apt-get upgrade -y

Now, the core

$ mkdir -p catkin/src
$ cd catkin_ws/src
$ catkin_init_workspace
$ git clone --recursive https://github.com/pat-CIMAR-UF/RoboND_Home_Service_Robot.git
$ cd ..
$ catkin_make

Official ROS pkgs:

slam_gmapping

turtlebot

turtlebot_interactions

turtlebot_simulator

Test

For SLAM testing:

$ cd catkin_ws/src/RoboND_Home_Service_Robot/scripts
$ chmod +x test_slam.sh
$ ./test_slam.sh

Then find the teleop terminal and control the robot as prompted.

For Localization and Navigation Testing:

$ cd catkin_ws/src/RoboND_Home_Service_Robot/scripts
$ chmod +x test_navigation.sh
$ ./test_navigation.sh

Then select the "2D Nav Goal" tab from rviz to give the robot an goal location.

For Pickup/Dropoff and Virtual Object Testing:

$ cd catkin_ws/src/RoboND_Home_Service_Robot/scripts
$ chmod +x home_service.sh
$ ./home_service.sh

Result

A better mp4 file could be downloaded here. It's smaller than this gif and clearer.

Comments about the gif above.

When initiated, the red sparse particles are created by the Adaptive Monte Carlo Localization package. The sparse distribution means the AMCL is very uncertain about the the exact location of the robot.

The blue square is the virtual object the robot is supposed to pick up. As one can see, the red sparse particles didn't converge while the robot is moving towards the pick up location. The AMCL package cannot localize the robot well because of the lack of clear landmarks/features on the way.

When the robot reached the pick-up location, it rotated itself first for a better trajectory later.

When robot moving to the drop-off location, the red AMCL particles converged, because of sufficient good landmarks/features.

The robot reached the planned pick-up and drop-off locations, the xterm terminal reported every step, and the virtual objects appeared and disappeared as planned, so this project could be concluded as a success.