Skip to content

Source Build

Ryohsuke Mitsudome edited this page Mar 13, 2023 · 5 revisions

Supported Configurations

Autoware Version Ubuntu 14.04 Ubuntu 16.04 Ubuntu 18.04
v1.14.0 x
v1.13.0 X
v1.12.0 X X
v1.11.1 X
v1.11.0 X
v1.10.0 X
v1.9.1 X X
v1.9.0 X X

NOTE: The following packages are not supported in ROS Kinetic.

  • orb slam
  • dpm ocv

Requirements

Product Ubuntu 14.04 Ubuntu 16.04 Ubuntu 18.04
ROS Indigo Kinetic Melodic
Qt 4.8.6 or higher 5.2.1 or higher 5.9.5 or higher
CUDA (optional) 8.0GA(?) 9.0 10.0
FlyCapture2 (optional)
Armadillo (optional)

System dependencies for Ubuntu 14.04 / Indigo

$ sudo apt-get install -y  python-catkin-pkg python-rosdep python-wstool ros-$ROS_DISTRO-catkin
$ sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa
$ sudo apt-get update
$ sudo apt-get install libmosquitto-dev

NOTE for 14.04 / Indigo: Please do not install ros-indigo-velodyne-pointcloud package. If it is already installed, please uninstall it.

System dependencies for Ubuntu 16.04 / Kinetic

$ sudo apt-get update
$ sudo apt-get install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin gksu
$ sudo apt-get install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
$ pip3 install -U setuptools

System dependencies for Ubuntu 18.04 / Melodic

$ sudo apt update
$ sudo apt install -y python-catkin-pkg python-rosdep ros-$ROS_DISTRO-catkin
$ sudo apt install -y python3-pip python3-colcon-common-extensions python3-setuptools python3-vcstool
$ pip3 install -U setuptools

Additional system dependencies for CUDA support

See Requirements above for which CUDA version to use with your OS.

NOTE: To enable CUDA support on Melodic, Eigen is required to be updated.
WARNING: This might break your system, or the compilation of other programs

$ cd && wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip #Download Eigen
$ mkdir eigen && tar --strip-components=1 -xzvf 3.3.7.tar.gz -C eigen #Decompress
$ cd eigen && mkdir build && cd build && cmake .. && make && make install #Build and install
$ cd && rm -rf 3.3.7.tar.gz && rm -rf eigen #Remove downloaded and temporary files

How to build

For 1.12.0 and Newer

  1. Create a workspace

    $ mkdir -p autoware.ai/src
    $ cd autoware.ai
    
  2. Download the workspace configuration for Autoware.AI.

    For the 1.12.0 release:

    $ wget -O autoware.ai.repos "https://raw.githubusercontent.com/autowarefoundation/autoware_ai/1.12.0/autoware.ai.repos"
    

    For newer releases, replace 1.12.0 with the version you want to install.

    For the master version (bleeding edge):

    $ wget -O autoware.ai.repos "https://raw.githubusercontent.com/autowarefoundation/autoware_ai/autoware.ai.repos"
    
  3. Download Autoware.AI into the workspace.

    $ vcs import src < autoware.ai.repos
    
  4. Install dependencies using rosdep.

    $ rosdep update
    $ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
    
  5. Compile the workspace

    With CUDA support

    $ AUTOWARE_COMPILE_WITH_CUDA=1 colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
    

    Without CUDA Support

    $ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
    

For 1.11.1 and Older

  1. Clone the GitHub repository.

    $ cd $HOME
    $ git clone https://github.com/autowarefoundation/autoware_ai.git
    $ cd autoware
    
  2. Check out the tag for the appropriate version. To see a list of versions, type git tag.

    $ git checkout 1.11.1
    $ cd ros
    
  3. Install dependencies using rosdep.

    $ rosdep update
    $ rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
    
  4. Compile the workspace

    Version 1.11.0 or 1.11.1 Compile using colcon

    $ ./colcon_release
    

    Version 1.10 or older Compile using catkin

    $ ./catkin_make_release
    

DNN-based nodes

Some DNN-based nodes, such as SSD, are not automatically built.

To build these nodes please follow the respective node's README SSD Darknet is now included in Autoware perception.

Next steps

See the ROS bag file demo for how to start Autoware.AI using some sample data.