Building third-party software#

Build the HighFive library#

The HighFive library is used for simulation output serialization to Hierarchical Data Format 5 (HDF5).

The HighFive library requires the HDF5 development headers to be installed.

apt-get install --yes libhdf5-dev

Clone the HighFive repository to a new folder:

git clone https://github.com/highfive-devs/highfive highfive

Create a build folder and configure the CMake project.

mkdir -p highfive/build
cd highfive/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DHIGHFIVE_UNIT_TESTS=OFF

Run the build:

cmake --build . -j$(nproc) --target install && \

Install the HighFive library at system level:

cmake --build . --target install

Building Project Chrono#

This section will guide you through installing Project Chrono with the modules required to run DYNO.

DYNO has been tested on the Project Chrono main branch, commit c5c97f2117baf67f5194c84a8f4afddf506f5d02. The minimum set of modules required to run DYNO are:

  • Chrono::Vehicle

  • Chrono::Irrlicht

In addition to the above, the following modules provide additional functionalities in DYNO:

  • Chrono::Sensor, for sensor simulation in the DYNO ROS 2 interface

  • Chrono::VSG, for visualization using the VulkanSceneGraph engine

You may follow the build guide on the official Project Chrono documentation guide on the official Project Chrono documentation for building the Project Chrono core and the Chrono::Vehicle modules from sources, and the VSG module build guide for the Chrono::VSG module.

Install the dependencies:

  sudo apt install --yes \
    build-essential \
    cmake \
    cmake-curses-gui \
    libeigen3-dev

Clone the repository:

mkdir ~/Repositories/github.com/projectchrono
cd ~/Repositories/github.com/projectchrono
git clone https://github.com/projectchrono/chrono
cd chrono
git checkout feature/cvt_transmission
mkdir build
cd build
ccmake ../

Press [c] then [e] then [q]

Optionally, build OpenCRG:

sudo mkdir -p /opt/opencrg
sudo apt install --yes unzip
cd contrib/build-scripts/opencrg
chmod +x ./buildOpenCRG.sh
sudo ./buildOpenCRG.sh /opt/opencrg
sudo apt install --yes ninja-build

Optionally, build VulkanSceneGraph. First, install the dependencies for the OpenGL module:

sudo apt install --yes \
  libxcb1-dev \
  libxinerama-dev \
  libxcursor-dev \
  libxrandr-dev \
  libgl1-mesa-dev \
  freeglut3-dev