== 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 <> == 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 == [[attachment:icra2010_marder-eppstein.pdf]] == Photos and Video Results == <> {{attachment:digest_image.jpg||height="431px",width="498px"}} == 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 [[navigation | 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 [[#Instructions for reproducing experiments | 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 [[ROS | 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: [[attachment:icra_navigation_gazebo.rosconfig]]. For instructions on installing and building a source tree from a `rosinstall` file please see the following [[ROS/Installation | documentation]]. ==== rosinstall File ==== [[attachment: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. ---- ## PublicationCategory