Giter Site home page Giter Site logo

cs685-nav-competition-icra2022's Introduction


ICRA 2022 BARN Challenge

Requirements

If you run it on a local machine without containers:

  • ROS version at least Kinetic
  • CMake version at least 3.0.2
  • Python version at least 3.6
  • Python packages: defusedxml, rospkg, netifaces, numpy

If you run it in Singularity containers:

  • Go version at least 1.13
  • Singularity version at least 3.6.3

The requirements above are just suggestions. If you run into any issue, please contact organizers for help ([email protected]).

Installation

Follow the instructions below to run simulations on your local machines. (You can skip 1-6 if you only use Singularity container)

  1. Create a virtual environment (we show examples with python venv, you can use conda instead)
apt -y update; apt-get -y install python3-venv
python3 -m venv /<YOUR_HOME_DIR>/nav_challenge
export PATH="/<YOUR_HOME_DIR>/nav_challenge/bin:$PATH"
  1. Install Python dependencies
pip3 install defusedxml rospkg netifaces numpy
  1. Create ROS workspace
mkdir -p /<YOUR_HOME_DIR>/jackal_ws/src
cd /<YOUR_HOME_DIR>/jackal_ws/src
  1. Clone this repo and required ros packages: (replace <YOUR_ROS_VERSION> with your own, e.g. melodic)
git clone https://github.com/Daffan/nav-competition-icra2022.git
git clone https://github.com/jackal/jackal.git --branch <YOUR_ROS_VERSION>-devel
git clone https://github.com/jackal/jackal_simulator.git --branch <YOUR_ROS_VERSION>-devel
git clone https://github.com/jackal/jackal_desktop.git --branch <YOUR_ROS_VERSION>-devel
git clone https://github.com/utexas-bwi/eband_local_planner.git
  1. Install ROS package dependencies: (replace <YOUR_ROS_VERSION> with your own, e.g. melodic)
cd ..
source /opt/ros/<YOUR_ROS_VERSION>/setup.bash
rosdep init; rosdep update
rosdep install -y --from-paths . --ignore-src --rosdistro=<YOUR_ROS_VERSION>
  1. Build the workspace (if catkin_make fails, try changing -std=c++11 to -std=c++17 in jackal_helper/CMakeLists.txt line 3)
source devel/setup.bash
catkin_make

Follow the instruction below to run simulations in Singularity containers.

  1. Follow this instruction to install Singularity: https://sylabs.io/guides/3.0/user-guide/installation.html. Singularity version >= 3.6.3 is required to successfully build the image!

  2. Clone this repo

git clone https://github.com/Daffan/nav-competition-icra2022.git
cd nav-competition-icra2022
  1. Build Singularity image (sudo access required)
sudo singularity build --notest nav_competition_image.sif Singularityfile.def

Run Simulations

Navigate to the folder of this repo. Below is the example to run move_base with DWA as local planner.

If you run it on your local machines: (the example below runs move_base with DWA local planner in world 0)

source ../../devel/setup.sh
python3 run.py --world_idx 0

If you run it in a Singularity container:

./singularity_run.sh /path/to/image/file python3 run.py --world_idx 0

A successful run should print the episode status (collided/succeeded/timeout) and the time cost in second:

>>>>>>>>>>>>>>>>>> Test finished! <<<<<<<<<<<<<<<<<<

Navigation collided with time 27.2930 (s)

>>>>>>>>>>>>>>>>>> Test finished! <<<<<<<<<<<<<<<<<<

Navigation succeeded with time 29.4610 (s)

>>>>>>>>>>>>>>>>>> Test finished! <<<<<<<<<<<<<<<<<<

Navigation timeout with time 100.0000 (s)

Test your own navigation stack

We currently don't provide a lot of instructions or a standard API for implementing the navigation stack, but we might add more in this section depending on people's feedback. If you are new to the ROS or mobile robot navigation, we suggest checking move_base which provides basic interface to manipulate a robot.

The suggested work flow is to edit section 1 in run.py file (line 89-109) that initialize your own navigation stack. You should not edit other parts in this file. We provide a bash script test.sh to run your navigation stack on 50 uniformly sampled BARN worlds with 10 runs for each world. Once the tests finish, run python report_test.py --out_path /path/to/out/file to report the test. Below is an example of DWA:

python report_test.py --out_path res/dwa_out.txt

You should see the report as this:

Avg Time: 33.4715, Avg Metric: 0.1693, Avg Success: 0.8800, Avg Collision: 0.0480, Avg Timeout: 0.0720

Except for DWA, we also provide three learning-based navigation stack as examples (see branch LfH, applr and e2e).

Submission

Submit a link that downloads your customized repository to this Google form. Your navigation stack will be tested in the Singularity container on 50 hold-out BARN worlds sampled from the same distribution as the 300 BARN worlds. In the repository, make sure the run.py runs your navigation stack and Singularityfile.def installs all the dependencies of your repo. We suggest to actually build an image and test it with ./singularity_run.sh /path/to/image/file python3 run.py --world_idx 0. You can also refer to branch LfH, applr and e2e, which are in the correct form for submissions.

cs685-nav-competition-icra2022's People

Contributors

daffan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.