Skip to content

Latest commit

 

History

History
176 lines (132 loc) · 5.74 KB

README.md

File metadata and controls

176 lines (132 loc) · 5.74 KB

EPSILON (Ros2 Version on Ubuntu 22.04)

This repository presents an enhanced version of the HKUST-Aerial-Robotics/EPSILON project, migrated from ROS1 to ROS2 for improved performance and compatibility with modern autonomous driving frameworks.

About

This is the project page of the paper "EPSILON: An Efficient Planning System for Automated Vehicles in Highly Interactive Environments". In this repo, we provide a simple and lightweight multi-agent simulator based on ROS2 and a demo implementation of the proposed EPSILON planning system.

If you use EPSILON for your academic research, please consider citing the follow

  • Ding, Wenchao, et al. "EPSILON: An Efficient Planning System for Automated Vehicles in Highly Interactive Environments." IEEE Transactions on Robotics (2021).

Paper: IEEE Xplore, arXiv

Demo video: YouTube

BibTex

@article{ding2021epsilon,
  title={EPSILON: An Efficient Planning System for Automated Vehicles in Highly Interactive Environments},
  author={Ding, Wenchao and Zhang, Lu and Chen, Jing and Shen, Shaojie},
  journal={IEEE Transactions on Robotics},
  year={2021},
  publisher={IEEE}
}

The following papers are also related:

  • Ding, Wenchao, et al. "Safe trajectory generation for complex urban environments using spatio-temporal semantic corridor." IEEE Robotics and Automation Letters 4.3 (2019): 2997-3004. (arXiv link)
  • Zhang, Lu, et al. "Efficient uncertainty-aware decision-making for automated driving using guided branching." 2020 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2020. (arXiv link)

If you have any question, please feel free to contact us via [email protected] (Lu Zhang) and [email protected] (Wenchao Ding).

Prerequisites

This project has been tested on Ubuntu 22.04 (ROS2 humble). For ROS installation, please refer to the official website.

Denpendencies

  • Install required packages
sudo apt-get install libgoogle-glog-dev libdw-dev libopenblas-dev gfortran
pip install empy pygame

Install OOQP

Prerequisites:

BLAS:

wget http://www.netlib.org/blas/blas.tgz
tar zxf blas.tgz
cd BLAS-3.12.0/
gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f
ar r libfblas.a *.o
ranlib libfblas.a
rm -rf *.o     
export BLAS=~/my_lib/BLAS-3.10.0/libfblas.a 

MA27:

git clone https://github.com/HITSZ-LeggedRobotics/ma27.git
cd ma27/ma27-1.0.0/
bash ./configure CPPFLAGS="-fPIC" CFLAGS="-fPIC" FFLAGS="-fPIC"
sudo make install
  • Copy the libma27.a file in ma27/src to the ooqp folder

OOQP

git clone https://github.com/emgertz/OOQP.git
cd OOQP/
./configure
sudo make
sudo make install

We use OOQP for solving quadratic programming problems. Please refer to link_1 and link_2 for the installation instruction.

Install Protobuf

We use Protocol Buffers for parameter configuration. For the installation guide, please refer to this link.

Build on ROS

We recommend the users create an empty workspace. Clone the repo and build:

  cd ${YOUR_WORKSPACE_PATH}/src
  git clone https://github.com/ZhouTao415/Autonomous-Motorsports-Motion-Planning-for-the-IAC.git
  cd EPSILON/
  colcon build
  source ~/${YOUR_WORKSPACE_PATH}/install/setup.bash
├── EPSILON
│   └── src
│       ├── app
│       ├── aux_tools
│       ├── core
│       ├── misc
│       ├── README.md
│       ├── toolchain
│       └── util
├── LICENSE
└── README.md

Just have a try!

  1. Launch RViz with .rviz file:
cd EPSILON/src/core/phy_simulator/rviz/
ros2 run rviz2 rviz2 --display-config phy_simulator_planning.rviz 
  1. Launch the planner's node and AI nodes:
ros2 launch planning_integrated test_ssc_with_eudm_ros_launch.py
ros2 launch ai_agent_planner onlane_ai_agent_launch.py
  1. Launch the simulator:
ros2 launch phy_simulator phy_simulator_planning_launch.py

Note that the simulator should be launched last.

  1. We provide a simple interface for controlling the behavior of the agents:
cd aux_tools/src/
python3 terminal_server.py

You can select the target agent by clicking on the colored dots and change its behavior using W-A-S-D buttons.

  1. ros node & topic graph

Acknowledgements

We would like to express sincere thanks to the authors of the following tools and packages:

Licence

The source code is released under MIT license.

Disclaimer

This is research code, it is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of merchantability or fitness for a particular purpose.