SpectacularAI / HybVIO

HybVIO visual-inertial odometry and SLAM system

Home Page:https://arxiv.org/abs/2106.11857

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenBLAS compile error on Raspberry

GuidoBartoli opened this issue · comments

Hi, I am trying to compile and run HybVIO on a Raspberry Pi 4 with 4 GB of RAM running Debian Bullseye with no desktop environment (Raspberry Pi OS Lite 32-bit).

These are the steps I followed:

  1. sudo apt update && sudo apt upgrade && sudo apt autoremove
  2. sudo apt install clang libc++-dev libgtk2.0-dev libgstreamer1.0-dev libvtk6-dev libavresample-dev libglfw3-dev libglfw3 libglew-dev libxkbcommon-dev cmake git ffmpeg (I was unable to install glfw package, is it supported on Pi?)
  3. git clone https://github.com/SpectacularAI/HybVIO.git --recursive
  4. cd HybVIO/3rdparty/mobile-cv-suite
  5. ./scripts/build.sh

And this is the received error:

CMake Warning (dev) at CMakeLists.txt:135 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "HASWELL" will no longer be dereferenced when the
  policy is set to NEW.  Since the policy is not set the OLD behavior will be
  used.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Reading vars from /home/pi/HybVIO/3rdparty/mobile-cv-suite/OpenBLAS/kernel/arm/KERNEL...
-- Reading vars from /home/pi/HybVIO/3rdparty/mobile-cv-suite/OpenBLAS/kernel/arm/KERNEL.HASWELL...
CMake Error at cmake/utils.cmake:20 (file):
  file STRINGS file
  "/home/pi/HybVIO/3rdparty/mobile-cv-suite/OpenBLAS/kernel/arm/KERNEL.HASWELL"
  cannot be read.
Call Stack (most recent call first):
  kernel/CMakeLists.txt:16 (ParseMakefileVars)
  kernel/CMakeLists.txt:863 (build_core)

Is it something relative to a specific version of CMake that must be used to compile this project?
And furthermore, is there a specific guide available on how to compile HybVIO on Raspberry and parameter optimizations to make it run in real time?

Thanks

Hello! Please update the Pi to a 64-bit operating system (like Ubuntu 20+). 32-bit builds are not supported

Regarding GLFW, a non-GUI build mode with less dependencies is also available:

  • mobile-cv-suite: cd 3rdparty/mobile-cv-suite && BUILD_VISUALIZATIONS=OFF ./scripts/build.sh
  • HybVIO CMake: cmake -DBUILD_VISUALIZATIONS=OFF -DUSE_SLAM=ON ..

... or completely without OpenGL acceleration:

  • cd 3rdparty/mobile-cv-suite && WITH_OPENGL=OFF BUILD_VISUALIZATIONS=OFF ./scripts/build.sh
  • cmake -DBUILD_VISUALIZATIONS=OFF -DBUILD_WITH_GPU=OFF -DUSE_SLAM=ON ..

Hello! Please update the Pi to a 64-bit operating system (like Ubuntu 20+). 32-bit builds are not supported
Thanks for the reply.

Is Debian Bullseye 64-bit Lite suitable too, or is Ubuntu 64-bit with window environment necessary?

Regarding GLFW, a non-GUI build mode with less dependencies is also available:

  • mobile-cv-suite: cd 3rdparty/mobile-cv-suite && BUILD_VISUALIZATIONS=OFF ./scripts/build.sh
  • HybVIO CMake: cmake -DBUILD_VISUALIZATIONS=OFF -DUSE_SLAM=ON ..

... or completely without OpenGL acceleration:

  • cd 3rdparty/mobile-cv-suite && WITH_OPENGL=OFF BUILD_VISUALIZATIONS=OFF ./scripts/build.sh
  • cmake -DBUILD_VISUALIZATIONS=OFF -DBUILD_WITH_GPU=OFF -DUSE_SLAM=ON ..

Ok, thanks

Hello! Please update the Pi to a 64-bit operating system (like Ubuntu 20+). 32-bit builds are not supported
Thanks for the reply.

Is Debian Bullseye 64-bit Lite suitable too, or is Ubuntu 64-bit with window environment necessary?

We haven't tested on 64-bit Debian on Rasberry Pi, but there's no reason to suspect the build would not work, especially if you build without GL & visualizations

Ok, thanks.
In a window-less environment, is it also possible to store SLAM results in order to inspect them later offline instead of visualizing in real-time?

Ok, thanks. In a window-less environment, is it also possible to store SLAM results in order to inspect them later offline instead of visualizing in real-time?

Not directly supported in this codebase, but you can run the same input data through the system in both a window-less and a graphical environment. The results are not guaranteed to be identical on different processors but they are probably quite close