.. _installation_label:
Installation
************
.. contents:: Table of Contents
:depth: 5
Introduction
============
This page aims to provide a quick overview of the installation process of maliput repositories.
The maliput ecosystem is composed of several packages including both core packages and utility packages.
Packages
--------
The following list shows the packages that are part of the maliput ecosystem.
- The first column shows the name of the package.
- The second column shows the packages that are released via ROS 2 Release repositories for the Foxy distribution.
- The third column shows the packages that are added to the `Bazel Central Registry `__ index for Bazel integration.
- The fourth column shows the packages released via `PyPI `__ for the Python API.
- The fifth column shows the packages released via `crates.io `__ for a Rust API.
.. list-table:: Maliput packages
:widths: 25 25 25 25 25
:header-rows: 1
:align: left
* - Packages
- ROS 2 Foxy Index
- Bazel Central Registry
- PyPI Index
- crates.io
* - `maliput `__
- ros-foxy-maliput
- `maliput `__
- `maliput `__
- Via `maliput-sdk `__, `maliput-sys `__ and `maliput `__
* - `maliput_py `__
- ros-foxy-maliput-py
- N/A
- N/A
- N/A
* - `maliput_object `__
- ros-foxy-maliput-object
- N/A
- N/A
- N/A
* - `maliput_object_py `__
- ros-foxy-maliput-object-py
- N/A
- N/A
- N/A
* - `maliput_dragway `__
- ros-foxy-maliput-dragway
- N/A
- N/A
- N/A
* - `maliput_drake `__
- ros-foxy-maliput-multilane
- N/A
- N/A
- N/A
* - `maliput_malidrive `__
- ros-foxy-maliput-malidrive
- `maliput_malidrive `__
- `maliput_malidrive `__
- Via `maliput-sdk `__, `maliput-sys `__ and `maliput `__
* - `maliput_sparse `__
- ros-foxy-maliput-sparse
- N/A
- N/A
- N/A
* - `maliput_osm `__
- ros-foxy-maliput-osm
- N/A
- N/A
- N/A
* - `maliput_viz `__
- ros-foxy-maliput-viz
- N/A
- N/A
- N/A
* - `maliput_integration `__
- ros-foxy-maliput-integration
- N/A
- N/A
- N/A
* - `drake_vendor `__
- N/A
- N/A
- N/A
- N/A
* - `delphyne `__
- N/A
- N/A
- N/A
- N/A
* - `delphyne_gui `__
- N/A
- N/A
- N/A
- N/A
* - `delphyne_demos `__
- N/A
- N/A
- N/A
- N/A
Supported platforms
-------------------
* Ubuntu Focal Fossa 20.04 LTS.
Binary Installation on Ubuntu
=============================
ROS 2 Foxy
----------
Prerequisites
^^^^^^^^^^^^^
Add ROS2 repository to your source list (see `ROS2 Foxy setup process `__):
.. code-block:: sh
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
.. code-block:: sh
sudo apt install python3-rosdep python3-colcon-common-extensions
Install binaries
^^^^^^^^^^^^^^^^
Install the binaries of the packages:
.. code-block:: sh
sudo apt install ros-foxy-
Use `maliput-full` package to install all the maliput packages:
.. code-block:: sh
sudo apt install ros-foxy-maliput-full
Or simple indicate the packages to install.
For example to install `maliput_malidrive` package:
.. code-block:: sh
sudo apt install ros-foxy-maliput-malidrive
This depends on `maliput`` and `maliput_drake` packages so they are expected to be installed too.
PyPI Index
----------
Requirements
^^^^^^^^^^^^
- OS: Ubuntu Focal Fossa 20.04 LTS.
- Python 3.8 or higher
Install binaries
^^^^^^^^^^^^^^^^
For installing maliput packages from PyPI index, you can use pip:
1. Install maliput
.. code-block:: sh
pip install maliput
2. Install maliput_malidrive backend.
.. code-block:: sh
pip install maliput_malidrive
3. Verify installation:
.. code-block:: sh
python3 -c "import maliput; maliput.plugin.MaliputPluginManager()"
The output of the logging should be something like:
.. code-block:: sh
[INFO] Plugin Id: maliput_malidrive was correctly loaded.
[INFO] Number of plugins loaded: 1
`maliput_malidrive` is installed as a plugin for maliput. So if `maliput_malidrive` backend is not listed in the list of plugins, `maliput_malidrive` won't be available for use.
Rust - crates.io
----------------
Requirements
^^^^^^^^^^^^
- Ubuntu Focal Fossa 20.04 LTS.
- Bazel
Install
^^^^^^^
For installing maliput packages from crates.io, you can use cargo:
.. code-block:: sh
cargo install maliput
Then you can use the maliput crate in your Rust project.
Refer to `maliput_examples`_ for examples on how to use maliput in Rust.
Source Installation on Ubuntu
=============================
See :ref:`developer_setup_label`.
.. _maliput_examples: https://github.com/maliput/maliput_examples