Repository Summary
Description | F1Tenth Simulation Code: Platooning, Computer Vision, Reinforcement Learning, Path Planning |
Checkout URI | https://github.com/pmusau17/platooning-f1tenth.git |
VCS Type | git |
VCS Version | noetic-port |
Last Updated | 2022-05-20 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ackermann_cmd_mux | 0.7.0 |
computer_vision | 1.0.0 |
f110_rrt_star | 0.0.0 |
map_server2 | 1.17.1 |
mpc | 0.0.0 |
multi_object_tracking_lidar | 1.0.3 |
particle_filter | 0.1.0 |
pure_pursuit | 0.0.0 |
race | 1.0.0 |
racecar | 0.0.1 |
rl | 0.0.0 |
rtreach | 1.0.0 |
racecar_control | 0.0.0 |
racecar_description | 0.0.0 |
racecar_gazebo | 0.0.0 |
README
F1Tenth: Platooning, Computer Vision, Reinforcement Learning, Path Planning
Table of Contents
- Introduction
- Installation
- Runtime Verification
- Zero-Shot Policy Transfer
- Platooning
- Computer Vision
- Reinforcement Learning
- System Identification
- Docker
- Developers
Introduction
Welcome! This repository contains a host of ROS packages for the F1Tenth Autonomous Racing Competition. In this repository you will find ROS packages designed for both simulation and the F1Tenth hardware platform. The simulation is based on a Gazebo based virtual racing environment. Our goal is to develop the F1Tenth platform for AI research to experiment with deep learning, computer vision, reinforcement learning, and path planning for autonomous racing.
If you have any questions or run into any problems. Feel free to send me an email or to post an issue and I’ll do my best to get back to you promptly. If you think something needs more documentation or explaining please send me an email too (I mean it).
Installation
Install Necessary Environments
Installation has been tested on 20.04 LTS. We highly recommend using the dockerized version of the simulator. The instructions can be found at the botton of this file. For a native installation see below.
The computer vision packages contained in this repository assume your system is GPU enabled. If your system is GPU enabled, you will need to install cuda and cudnn. New versions of cuda are released periodically each year. Thus to keep this repo up to date, we refer you to nvidia’s installation guide here. Cudnn requires membership in the NVIDIA developer program and you can register for this program here.
For ease of python library installation we highly recommend using anaconda. Installation of Anaconda can be found here. ROS still uses python 2 and if you want to use python 3, we leave that adventure to you.
Once anaconda installed run the following:
$ conda create --name ros27 python=2.7 && conda activate ros27
Note: If your system is not gpu enabled, change the requirements in setup.sh to requirements-cpu.txt.
Installing Pytorch
To install pytorch kindly visit the following link.
Installing Reinforcement Learning Libraries
Our reinforcement Learning Approaches leverage a couple of custom libraries. To install them run the following.
pip install gdown
gdown https://drive.google.com/uc?id=152KL7JzDReYdg6quBznL9WtC0I5IvNx6
Unzip the rl_library.zip file.
cd rl_library
pip install -e .
Install the Repo
If you already have these environments set up, then go with this choice. We assume that you have ROS Kinetic and Gazebo installed. If not please installed these packages using the following link: Install ROS-Kinetic.
Once you have ROS-Kinetic installed. Run the following commands:
$ source /opt/ros/kinetic/setup.bash
$ git clone https://github.com/pmusau17/Platooning-F1Tenth
$ cd Platooning-F1Tenth
After everything has been cloned in to Platooning-F1Tenth Run:
$ chmod u+x setup.bash
$ ./setup.sh
$ catkin_make
$ source devel/setup.bash
Troubleshooting
If you get the error: ImportError: No module named catkin_pkg.packages and you are using anaconda. Run the following command:
conda install -c auto catkin_pkg
Runtime Verification
Recent advances in Artificial Intelligence research have led to the emergence of machine learning models deployed within safety critical systems, where their tremendous ability to deal with complex data makes them particularly useful for sensing, actuation, and control. Despite the prolific advances enabled by machine learning methods, such systems are notoriously difficult to assure. The challenge here is that some models, such as neural networks, are “black box” in nature, making verification and validation difficult, and sometimes infeasible. In this repo, we provide the code used for our evaluation of the use of a real-time reachability algorithm in order to reason about the safety of a 1/10 scale open source autonomous vehicle platform known as F1/10. Our regime allows us to (a) provide provable guarantees of safety and (b) detect potentially unsafe scenarios in the context of autonomous racing.
File truncated at 100 lines see the full file