/Autoware

Open-source software for urban autonomous driving.

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Autoware

Integrated open-source software for urban autonomous driving, maintained by Tier IV. The following functions are supported:

  • 3D Localization
  • 3D Mapping
  • Path Planning
  • Path Following
  • Accel/Brake/Steering Control
  • Data Logging
  • Car/Pedestrian/Object Detection
  • Traffic Signal Detection
  • Traffic Light Recognition
  • Lane Detection
  • Object Tracking
  • Sensor Calibration
  • Sensor Fusion
  • Cloud-oriented Maps
  • Connected Automation
  • Smartphone Navigation
  • Software Simulation
  • Virtual Reality

Autoware is protected by BSD License. Please use it on your own responsibility. For safe use, we provide a ROSBAG-based simulation method for those who do not own real autonomous vehicles. In case that you use Autoware with real autonomous vehicles, please formulate safety measures and assessment of risk before field testing.

License

  • New BSD License
    • See LICENSE

Spec Recommendation

  • of CPU cores: 8

  • RAM size: 32GB
  • Storage size: 30GB

Requirements

  • ROS indigo(Ubuntu 14.04) or ROS jade(Ubuntu 15.04)
  • OpenCV 2.4.10 or higher NOTE: As of Octber 2016, Autoware does not support OpenCV 3 or higher. Please use OpenCV 2
  • Qt 5.2.1 or higher
  • CUDA(Optional)
  • FlyCapture2(optional)
  • Armadillo

Please use checkout revision before 2015/OCT/21 if you use Autoware on ROS hydro or Ubuntu 13.04, 13.10.

Install dependencies for Ubuntu 14.04 indigo

% sudo apt-get install ros-indigo-desktop-full ros-indigo-nmea-msgs ros-indigo-nmea-navsat-driver ros-indigo-sound-play ros-indigo-jsk-visualization ros-indigo-grid-map
% sudo apt-get install ros-indigo-controller-manager ros-indigo-ros-control ros-indigo-ros-controllers ros-indigo-gazebo-ros-control ros-indigo-sicktoolbox ros-indigo-sicktoolbox-wrapper ros-indigo-joystick-drivers ros-indigo-novatel-span-driver
% sudo apt-get install libnlopt-dev freeglut3-dev qtbase5-dev libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev gksu libgl1-mesa-dev

NOTE: Please do not install ros-indigo-velodyne-pointcloud package. Please uninstall it if you already installed.

Install dependencies for Ubuntu 15.04 jade

% sudo apt-get install ros-jade-desktop-full ros-jade-nmea-msgs ros-jade-nmea-navsat-driver ros-jade-sound-play
% sudo apt-get install ros-jade-controller-manager ros-jade-ros-control ros-jade-ros-controllers ros-jade-gazebo-ros-control ros-jade-sicktoolbox ros-jade-sicktoolbox-wrapper ros-jade-joystick-drivers ros-jade-novatel-span-driver
% sudo apt-get install libnlopt-dev freeglut3-dev qt5-default libqt5opengl5-dev libssh2-1-dev libarmadillo-dev libpcap-dev gksu libgl1-mesa-dev

NOTE: jsk_visualization and grid_map is not provided in Ubuntu15.04 Jade. Please download it from the following repository and build it by yourself. https://github.com/jsk-ros-pkg/jsk_visualization https://github.com/ethz-asl/grid_map

How to Build

$ cd $HOME
$ git clone https://github.com/CPFL/Autoware.git
$ cd ~/Autoware/ros/src
$ catkin_init_workspace
$ cd ../
$ ./catkin_make_release

###Caffe based object detectors CV based detectors RCNN and SSD nodes are not automatically built.

To build these nodes please follow the respective node's README SSD RCNN

How to Start

$ cd $HOME/Autoware/ros
$ ./run

For Developers

Be careful for changing files under ros/src/sensing/drivers/lidar/packages/velodyne. There is subtree. Original repository is here. If you change those files from this repository, you must use git subtree push. (Please never change and push code if you don't understand git subtree well).

GitFlow, git branching model, is introduced in Autoware repository.

  • When you adding new features, you can branch off your feature branch from develop.
    you can use the following command.
    $ git checkout -b feature/[your_branch_name] develop
  • When you find bugs in master branch, you can branch off your hotfix branch from master.
    you can use the following command.
    $ git checkout -b hotfix/[your_branch_name] master

More Details here

Documents

See Autoware/docs. As of Aug 2015, we provide only Japanese documents. English documents will be added shortly.

Main Packages

Localization

  • ndt_localizer
  • icp_localizer

Detection

  • lidar_tracker
  • cv_tracker
  • road_wizard

Mission (Global) Planning

  • lane_planner
  • way_planner
  • freespace_planner

Motion (Local) Planning

  • astar_planner
  • lattice_planner
  • dp_planner

Vehicle Control

  • waypoint_follower
  • waypoint_maker

Research Papers for Citation

  1. S. Kato, E. Takeuchi, Y. Ishiguro, Y. Ninomiya, K. Takeda, and T. Hamada. "An Open Approach to Autonomous Vehicles", IEEE Micro, Vol. 35, No. 6, pp. 60-69, 2015. Link

Demo Videos

Public Road Demonstration

Public Road Demonstration

Instruction Videos

Quick Start

Quick Start

Loading Map Data

Loading Map Data

Localization with GNSS

Localization with GNSS

Localization without GNSS

Localization without GNSS

Mapping

Mapping

Detection with SSD

SSD

Detection with DPM

DPM

Detection with Euclidean Clustering

Clustering

Traffic Light Recognition

Traffic Light Recognition

Planning with ROSBAG

Planning with ROSBAG

Planning with wf_simulator

Planning with wf_simulator

Planning with Hybrid State A*

Planning with wf_simulator

Calibration Toolkit

Calibration Toolkit

Sample Data

3D map of Moriyama in Nagoya

ROSBAG data of Moriyama driving

Script for generating demo launch files of Moriyama

ROSBAG data for Calibration

IROS 2016 Data

ROSBAG data of Nagoya driving

Contact

Autoware Developers (autoware@googlegroups.com)

To subscribe the Autoware Developers ML,