This repository is part of OmniCar project and represents core part of the platform that runs ORB-SLAM2 and share data between microcontroller and remote GUI.
The program was tested on Ubuntu 20.10
Raspberry Pi 4 Model B runs code of this repository and placed on the 2nd floor of the mobile platform.
This project can be described as ORB-SLAM2 + communication module. This communication module presented in a form of OmniCarTransceiver
class. It communicates with Arduino MEGA via UART in half-duplex mode and remote GUI via UPD and TCP protocols.
This project was created as modification of ORB-SLAM2, so you need to install the following libraries first:
- Pangolin - visualization and user interface. In OmniCar project it is not needed as it has own remote GUI for visualization, but I decided to save full ORB-SLAM2 project functionality so you can just toggle vanila ORB-SLAM2/platform functionality by boolean in
System
class constructor (false == platform mode). - Eigen3 - linear algebra library required by g2o (note: you need to
sudo make install
it). - OpenCV - computer vision library to manipulate images and features. Latest version would be fine (note: this guide would be helpful).
Just as ORB-SLAM2, the project has build.sh
file that will do the following:
- build
DBoW2
, - build
g2o
, - uncompress ORB vocabulary,
- build
ORB-SLAM2
, - convert ORB vocabulary from text to binary format (speeds up program launch).
Execute:
cd OmniCar-gui
chmod +x build.sh
./build.sh