The Office Marathon: Robust Navigation in an Indoor Office Environment
- Authors: Eitan Marder-Eppstein, Eric Berger, Tully Foote, Brian Gerkey, Kurt Konolige
- Institution/Company: Willow Garage, Inc., USA
- Forum: ICRA 2010
Contents
Citation
@inproceedings { tbd, title = {The Office Marathon: Robust Navigation in an Indoor Office Environment}, booktitle = {International Conference on Robotics and Automation}, year = {2010}, author = {Eitan Marder-Eppstein and Eric Berger and Tully Foote and Brian Gerkey and Kurt Konolige} }
Full Text
Photos and Video Results
Documentation
If you are interested in using the Open Source implementation of the navigation system presented in this paper, you'll find the most up-to-date documentation and code here. If, however, you're interested in running the code and experiments presented in this paper as they were at the time of publication, please follow the instructions presented in the following section.
Instructions for reproducing experiments
In order to run the experiments presented in this paper, we assume some knowlege of the Robot Operating System (ROS). Detailed documentation on ROS can be found here.
Checking Out the Code
An Open Source implementation of the PR2 navigation system written using the Robot Operating System (ROS) is available for download. All of the experiments presented in the paper can be installed and run using the following rosinstall file: icra_navigation_gazebo.rosconfig. For instructions on installing and building a source tree from a rosinstall file please see the following documentation.
rosinstall File
icra_navigation_gazebo.rosconfig
Install Command
Get rosinstall:
sudo apt-get install python-setuptools
sudo easy_install -U rosinstall
Install the code:
rosinstall ~/icra10_navigation_ros 'http://www.ros.org/wiki/Papers/ICRA2010_Marder-Eppstein?action=AttachFile&do=get&target=icra_navigation_gazebo.rosconfig'
Before executing the steps below to build or run the code, be sure to source the shell setup file:
source ~/icra10_navigation_ros/setup.sh
Running Experiments in Simulation
Running the simulated experiments presented in this paper requires two steps.
First, build the icra_navigation_gazebo package:
rosmake icra_navigation_gazebo
Next, run the tests presented in the paper:
roscd icra_navigation_gazebo make test
You should see the robot move through each of the test worlds, avoiding obstacles along the way.
Running Experiments on a Robot
If you have a PR2 Beta robot (stock configuration), you can also run the experiments presented in the paper on the robot itself. First, set up test environments that more-or-less match those of the simulation worlds. Next, for each environment, bring up the PR2 navigation system and give the robot a goal in the environment that requires it to navigate around obstacles. Instructions for bringing the navigation system up on a PR2 Beta are as follows:
On the PR2
First, make sure that you have the navigation system built on the robot:
rosmake 2dnav_pr2 pr2_bringup pr2_tuckarm
Next, bring-up and calibrate the robot:
roslaunch pr2_bringup pr2.launch
Make sure the arms of the robot are tucked:
rosrun pr2_tuckarm tuckarm.py b
Run the navigation system:
roscd 2dnav_pr2 roslaunch move_base_local/2dnav_pr2.launch
On a Local Computer
Make sure that you set your ROS_MASTER_URI environment variable to match that of your robot:
export ROS_MASTER_URI=http://pr2:11311
Run an rviz configuration file that will allow you to send goals to the robot:
roslaunch 2dnav_pr2 rviz_move_base_local.launch
Sending a Goal
With the robot up and rviz running on your local machine, you can now send a goal to the navigation system that will cause it to navigate around the obstacles placed in its way using the "2D Nav Goal" button. Once a goal is sent, you should see the robot move in an attempt to achieve the goal.