Skip to content

Latest commit

 

History

History
130 lines (104 loc) · 3.63 KB

README.md

File metadata and controls

130 lines (104 loc) · 3.63 KB


ICRA 2023 BARN Challenge

Solution

  • New package "tps_astar" is the project that will be used to solve the challenge.
  catkin_create_pkg tps_astar std_msgs roscpp rospy tf sensor_msgs
  • Create submodule for the underlying algorithm library
  mkdir submodules && cd submodules
  git submodule add https://github.com/jlblancoc/selfdriving.git 
  • since its already created, get it with
  git submodule update --init --recursive
  • Install mrpt requirements
  sudo add-apt-repository ppa:joseluisblancoc/mrpt 

  sudo apt-get install libmrpt-dev

  sudo apt-get install -y ros-<distro>-mrpt2 \
                          ros-<distro>-mrpt-msgs \
                          ros-<distro>-marker-msgs
  • Add mrpt_navigation as a submodule using
  git submodule add https://github.com/mrpt-ros-pkg/mrpt_navigation.git
  • Get the lidar scan from the Jackal robot using mrpt_local_obstacles node using the launch file

  • Start publishing the map as a NavMsg using the mrpt_map map_server_node.

  • Use the published map for localization node.

Steps are given below

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 (zfxu@utexas.edu).

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 $HOME/nav_challenge
export PATH="$HOME/nav_challenge/bin:$PATH"
  1. Install Python dependencies
# Activate (JL: needed?? If not, remove this line)
. ~/nav_challenge/bin/activate
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:
git clone https://github.com/SRai22/barn-tps-astar-icra2023.git --recursive
git clone https://github.com/jackal/jackal.git
git clone https://github.com/jackal/jackal_simulator.git
git clone https://github.com/jackal/jackal_desktop.git 
git clone https://github.com/utexas-bwi/eband_local_planner.git
  1. Install ROS package dependencies:
cd ..
source /opt/ros/$ROS_DISTRO/setup.bash
rosdep init; rosdep update
rosdep install -y --from-paths . --ignore-src --rosdistro=$ROS_DISTRO
  1. Build the workspace (if catkin_make fails, try changing -std=c++11 to -std=c++17 in jackal_helper/CMakeLists.txt line 3)
catkin_make
source devel/setup.bash

Run Simulations

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)