Setup
Table of contents
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:
- Eigen: version 3.3.0 or later.
- g2o
- SuiteSparse
- FBoW
- yaml-cpp : version 0.6.0 or later.
- OpenCV : version 3.3.1 or later.
- Pangolin
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 < .reposInstall colcon KRS extensions:
cd src/kria/colcon-acceleration python setup.py build python setup.py install --usercd 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.