All Projects → Autonomous-Racing-PG → ar-tu-do

Autonomous-Racing-PG / ar-tu-do

Licence: other
ROS & Gazebo project for 1/10th scale self-driving race cars

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects
shell
77523 projects
lua
6591 projects

Projects that are alternatives of or similar to ar-tu-do

Autorally
Software for the AutoRally platform
Stars: ✭ 595 (+815.38%)
Mutual labels:  ros, autonomous-driving, autonomous-vehicles
conde simulator
Autonomous Driving Simulator for the Portuguese Robotics Open
Stars: ✭ 31 (-52.31%)
Mutual labels:  ros, gazebo, autonomous-driving
FusionAD
An open source autonomous driving stack by San Jose State University Autonomous Driving Team
Stars: ✭ 30 (-53.85%)
Mutual labels:  ros, autonomous-driving, autonomous-vehicles
Carla
Open-source simulator for autonomous driving research.
Stars: ✭ 7,012 (+10687.69%)
Mutual labels:  ros, autonomous-driving, autonomous-vehicles
Autonomous driving
Ros package for basic autonomous lane tracking and object detection
Stars: ✭ 67 (+3.08%)
Mutual labels:  ros, autonomous-driving, autonomous-vehicles
Jetson Car
Autonomous Racing Car using NVIDIA Jetson TX2 using end-to-end driving approach. Paper: https://arxiv.org/abs/1604.07316
Stars: ✭ 172 (+164.62%)
Mutual labels:  ros, autonomous-driving, autonomous-vehicles
Self Driving Golf Cart
Be Driven 🚘
Stars: ✭ 147 (+126.15%)
Mutual labels:  ros, autonomous-driving, autonomous-vehicles
Carma Platform
CARMA Platform is built on robot operating system (ROS) and utilizes open source software (OSS) that enables Cooperative Driving Automation (CDA) features to allow Automated Driving Systems to interact and cooperate with infrastructure and other vehicles through communication.
Stars: ✭ 243 (+273.85%)
Mutual labels:  ros, autonomous-driving, autonomous-vehicles
ur ws
Universal robot with robotiq hand workspace
Stars: ✭ 21 (-67.69%)
Mutual labels:  ros, gazebo
wpr simulation
No description or website provided.
Stars: ✭ 24 (-63.08%)
Mutual labels:  ros, gazebo
2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (-46.15%)
Mutual labels:  ros, autonomous-driving
my ROS mobile robot
Differential drive mobile robot using ROS.
Stars: ✭ 123 (+89.23%)
Mutual labels:  ros, gazebo
drl grasping
Deep Reinforcement Learning for Robotic Grasping from Octrees
Stars: ✭ 160 (+146.15%)
Mutual labels:  ros, gazebo
arm
Robot arm simulation using Gazebo, ROS Control and MoveIt.
Stars: ✭ 79 (+21.54%)
Mutual labels:  ros, gazebo
aws-robomaker-robotics-curriculum
Introductory robotics curriculum
Stars: ✭ 78 (+20%)
Mutual labels:  ros, gazebo
PyLidar3
PyLidar3 is python 3 package to get data from Lidar devices from various manufacturers.
Stars: ✭ 35 (-46.15%)
Mutual labels:  autonomous-driving, autonomous-vehicles
aws-robomaker-hospital-world
This Gazebo world is well suited for organizations who are building and testing robot applications in hospitals.
Stars: ✭ 114 (+75.38%)
Mutual labels:  ros, gazebo
PROBOT Anno
ROS Packages for PROBOT Anno.
Stars: ✭ 75 (+15.38%)
Mutual labels:  ros, gazebo
katana driver
This stack contains hardware drivers, Gazebo plugins and other basic functionalities for the Neuronics Katana family of robot arms.
Stars: ✭ 16 (-75.38%)
Mutual labels:  ros, gazebo
raspimouse sim
ROS package suite for Raspberry Pi Mouse Simulator
Stars: ✭ 23 (-64.62%)
Mutual labels:  ros, gazebo

Autonomous Racing Software Stack and Simulation Enviroment

Build Status

This repository contains software for 1/10th scale autonomous race cars to compete in the F1/10 competition. It is developed by the Autonomous Racing Project Group of TU Dortmund.

Features

We provide several LIDAR based driving algorithms:

  • Fast and efficient wallfollowing based on fitting circles into the LIDAR scan
  • ROS navigation stack based implementation that uses SLAM, a precalculated map and path planning
  • Deep Reinforcement Learning (Q-Learning and Policy Gradient)
  • Neural Networks with evolutionary training

Our software works on physical hardware and in a simulated environment using Gazebo. Further features are:

  • Automatic emergency braking
  • Dead Man's Switch
  • Teleoperation via keyboard, Xbox and Playstation controller
  • Speedometer and Lap Timer

Installation

You need to install the Robot Operating System (ROS) to use our software. We target ROS Kinetic on Ubuntu 16.04, but ROS Melodic seems to work as well.

Note for VM users: Gazebo 7.0.0, which is installed with ROS Kinetic by default, does not work on a virtual machine. To solve this, Gazebo has to be updated to at least 7.4.0 as explained here.

Install dependencies:

sudo pip uninstall pip && sudo apt install python-pip
sudo apt install libsdl2-dev clang-format python-pyqtgraph
pip install torch autopep8 cython circle-fit

# RangeLibc
git clone http://github.com/kctess5/range_libc
cd range_libc/pywrapper
# Either:
./compile.sh            # on VM
# Or:
./compile_with_cuda.sh  # on car - compiles GPU ray casting methods

Clone the repository:

git clone --recurse-submodules https://github.com/Autonomous-Racing-PG/ar-tu-do.git

Install missing ROS dependencies:

cd ar-tu-do/ros_ws
rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}

Usage

Compile while inside the ros_wsdirectory:

catkin_make

Set up enviroment variables for your shell:

source devel/setup.bash # (or setup.zsh, depending on your shell)

Use a launch file to start ROS and Gazebo:

roslaunch launch/car.launch                   # (Physical car, Wallfollowing)
roslaunch launch/car_navigation_stack.launch  # (Physical car, SLAM & ROS navigation)
roslaunch launch/gazebo.launch                # (Simulation, Wallfollowing)
roslaunch launch/navigation_stack.launch      # (Simulation, SLAM & ROS navigation)
roslaunch launch/q_learning.launch            # (Simulation, Train the Q-Learning model)
roslaunch launch/policy_gradient.launch       # (Simulation, Train the Policy Gradient model)
roslaunch launch/evolutionary.launch          # (Simulation, Train the evolutionary neural network)

Launch file arguments

These arguments can be passed to the launch files above. For example, to use the gazebo.launch file without emergency stop and with car highlighting, run:

roslaunch launch/gazebo.launch emergency_stop:=false car_highlighting:=true

The arguments can be changed permanently by editing the launch files.

Argument Description Supported by launch/<file>.launch
car car_navstack gazebo navigation_stack q_learning, policy_gradient, evolutionary
debug Boolean value whether Gazebo should run in debug mode. Defaults to false.
emergency_stop Boolean value whether the emergency stop should be active. Defaults to true.
gui Boolean value whether Gazebo should show a user interface. Defaults to true.
joystick_type The type of joystick controller. Possible values: ps3, xbox360 and xboxone
map Name of the map to be used by the particle filter. Defaults to a prerecorded map of racetrack_decorated_2.
(no default)
paused Boolean value whether Gazebo should start paused. Defaults to false.
pf_angle_step Angle step of the particle filter. Defaults to 18.
pf_max_particles Maximum amount of particles to be used by the particle filter. Defaults to 500.
pf_squash_factor Squash factor of the particle filter. Defaults to 2.2.
plot_window Integer value indicating the amount of episodes that should be plotted. Defaults to 200. ✓ / ✓ / ✗
realtime_simulation Boolean value whether Gazebo should try to simulate with a real time factor of 1. If false, Gazebo tries to simulate as fast as possible. Defaults to true.
use_gpu Boolean value whether Gazebo should use the GPU when simulating the lidar. Defaults to true.
use_sim_time Boolean value whether all ros nodes should use simulated Gazebo time instead of wall clock time. Defaults to true.
verbose Boolean value whether Gazebo should give verbose standard output. Defaults to true.
visualize_lidar Boolean value whether Gazebo should show the simulated lidar rays. Defaults to false.
world The name of the racetrack. Possible values: racetrack_decorated, racetrack_decorated_2 (default) and racetrack_decorated_2_big

Hardware

Our car is based on a 1/10th scale RC car (Traxxas Ford Fiesta) with these additions:

Documentation

  • For general information and documentation check out our wiki page.
  • For source code documentation check out the auto-generated Doxygen documentation.

License

This project (excluding git submodules) is under MIT and GPLv3 dual licensed - see the MIT.LICENSE and GPLv3.LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].