Setup

Table of contents
  1. Xilinx Tools
  2. ROS2
  3. OpenVSLAM dependencies
  4. Additional Dependencies
  5. Workspace
    1. Configure environment variables
  6. Boards

Xilinx Tools

Xilinx Vitis is needed to build acceleration kernels. The release version 2021.2 has been used. After installing Vitis 2021.2, there is a need to apply Y2K22 patch to solve an overflow issue. Refer to Xilinx documentation for that.

ROS2

ROS2 Rolling (Ridley) distribution needs to be installed. Refer to the installation instructions which depends on the host OS.

Note: Another distribution could be used

ros-perception/vision_opencv and ros-perception/image_common are needed. If ROS2 is built from sources, then one has to add vision_opencv and image_common to the repositories list before importing them using vcs

OpenVSLAM dependencies

In addition, OpenVSLAM dependencies needs to be installed. These dependencies are:

FBoW needs to be installed from source. As for the other dependencies, using the OS’ package manager is preferred to handle indirect dependencies.

More details are available here

Additional Dependencies

  • lttng UST and Tools : version 12.3 or later
  • OpenCL development headers and libraries

Workspace

We provide a ROS workspace meta repository.

In the following commands, cd is relative to workspace path

  • Clone
    git clone https://github.com/soallak/ros2_openvslam_acceleration.git
    
  • Import workspace:

    cd src
    vcs import < .repos
    
  • Install colcon KRS extensions:

    cd src/kria/colcon-acceleration
    python setup.py build
    python setup.py install --user
    
    cd src/kria/colcon-mixin
    python setup.py build
    python setup.py install --user
    

Configure environment variables

The preferred way is to use direnv. Therefore, it needs to be installed and hooked to the used shell.

The workspace repository’s file .envrc need to be adjusted depending on the system configuration. This mainly consists of changing ROS2_HOME and XILINX_ROOT variables to point to the installation paths of ROS2 distribution and Xilinx tools.

After adjusting .envrc, run

direnv allow

Boards

The following boards are supported:

Some additional steps specific to each board can be required. Refer to their respective pages for further information.