Cannot build voxl-mapper in voxl-cross docker image: fatal error: voxblox/Eigen/Core: No such file or directory
-
I intend to modify some codes in voxl-mapper and so would like to build it after the modification. I am building it following the instructions in the Build Instructions section in the voxl-mapper gitlab (i.e. in
voxl-cross
docker image).
Therefore,following the instructions in voxl-mapper gitlab, I execute the following:- Install the dependencies
using apq8096 sdk-0.8 repo Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//Packages.gz. Updated source 'sdk-0.8'. installing: libmodal-json libvoxl-cutils voxl-ceres-solver voxl-nlopt voxl-mpa-tools libmodal-pipe voxl-voxblox Package libmodal-json (0.4.2) installed in root is up to date. Package libvoxl-cutils (0.1.1) installed in root is up to date. Package voxl-ceres-solver (1.14.0-9) installed in root is up to date. Package voxl-nlopt (2.5.0-4) installed in root is up to date. Package voxl-mpa-tools (0.7.3) installed in root is up to date. Package libmodal-pipe (2.4.4) installed in root is up to date. Package voxl-voxblox (1.1.2) installed in root is up to date. Done installing dependencies
- Run the script for building
voxl-cross:~/voxl-mapper(master)$ ./build.sh apq8096 -- Configuring done -- Generating done -- Build files have been written to: /home/root/voxl-mapper/build64 Consolidate compiler generated dependencies of target mav_trajectory_generation [ 2%] Building CXX object server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/polynomial.cpp.o [ 5%] Building CXX object server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/rpoly_ak1.cpp.o [ 8%] Building CXX object server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/segment.cpp.o [ 11%] Building CXX object server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/trajectory_sampling.cpp.o [ 13%] Building CXX object server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/trajectory.cpp.o [ 16%] Building CXX object server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/vertex.cpp.o In file included from /home/root/voxl-mapper/server/mav_trajectory_generation/src/polynomial.cpp:20:0: /home/root/voxl-mapper/server/mav_trajectory_generation/include/mav_trajectory_generation/polynomial.h:24:30: fatal error: voxblox/Eigen/Core: No such file or directory #include <voxblox/Eigen/Core> ^ compilation terminated. In file included from /home/root/voxl-mapper/server/mav_trajectory_generation/include/mav_trajectory_generation/trajectory_sampling.h:24:0, from /home/root/voxl-mapper/server/mav_trajectory_generation/src/trajectory_sampling.cpp:21: /home/root/voxl-mapper/server/mav_comm/mav_msgs/include/mav_msgs/eigen_mav_msgs.h:24:30: fatal error: voxblox/Eigen/Core: No such file or directory #include <voxblox/Eigen/Core> ^ compilation terminated. In file included from /home/root/voxl-mapper/server/mav_trajectory_generation/src/segment.cpp:21:0: /home/root/voxl-mapper/server/mav_trajectory_generation/include/mav_trajectory_generation/segment.h:24:30: fatal error: voxblox/Eigen/Core: No such file or directory #include <voxblox/Eigen/Core> ^ compilation terminated. In file included from /home/root/voxl-mapper/server/mav_trajectory_generation/src/vertex.cpp:21:0: /home/root/voxl-mapper/server/mav_trajectory_generation/include/mav_trajectory_generation/vertex.h:24:30: fatal error: voxblox/Eigen/Core: No such file or directory #include <voxblox/Eigen/Core> ^ compilation terminated. server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/build.make:173: recipe for target 'server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/vertex.cpp.o' failed make[2]: *** [server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/vertex.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/build.make:159: recipe for target 'server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/trajectory_sampling.cpp.o' failed make[2]: *** [server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/trajectory_sampling.cpp.o] Error 1 server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/build.make:117: recipe for target 'server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/segment.cpp.o' failed make[2]: *** [server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/segment.cpp.o] Error 1 server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/build.make:89: recipe for target 'server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/polynomial.cpp.o' failed make[2]: *** [server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/polynomial.cpp.o] Error 1 In file included from /home/root/voxl-mapper/server/mav_trajectory_generation/include/mav_trajectory_generation/trajectory.h:25:0, from /home/root/voxl-mapper/server/mav_trajectory_generation/src/trajectory.cpp:21: /home/root/voxl-mapper/server/mav_trajectory_generation/include/mav_trajectory_generation/segment.h:24:30: fatal error: voxblox/Eigen/Core: No such file or directory #include <voxblox/Eigen/Core> ^ compilation terminated. In file included from /home/root/voxl-mapper/server/mav_trajectory_generation/src/rpoly_ak1.cpp:47:0: /home/root/voxl-mapper/server/mav_trajectory_generation/include/mav_trajectory_generation/rpoly_ak1.h:20:30: fatal error: voxblox/Eigen/Core: No such file or directory #include <voxblox/Eigen/Core> ^ compilation terminated. server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/build.make:145: recipe for target 'server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/trajectory.cpp.o' failed make[2]: *** [server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/trajectory.cpp.o] Error 1 server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/build.make:103: recipe for target 'server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/rpoly_ak1.cpp.o' failed make[2]: *** [server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/src/rpoly_ak1.cpp.o] Error 1 CMakeFiles/Makefile2:259: recipe for target 'server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/all' failed make[1]: *** [server/mav_trajectory_generation/CMakeFiles/mav_trajectory_generation.dir/all] Error 2 Makefile:135: recipe for target 'all' failed make: *** [all] Error 2
It seems that the main issue here is
voxblox/Eigen/Core: No such file or directory
In the first step, where I install all the dependencies, it seems voxblox package was installed. But still this error shows up.
As a reference,
voxl-voxblox - 1.0.4 - voxblox library api
seems to be installed.voxl-cross:~/voxl-mapper(master)$ opkg list apq8096-dfs-server - 0.3.0 - depth-from-stereo server for Modal Pipe Architecture apq8096-imu-server - 1.0.2 - VOXL IMU interface for Modal Pipe Architecture apq8096-libpng - 1.6.38-1 - 64-bit version of native libpng for voxl1 apq8096-rangefinder-server - 0.1.2 - publishes rangefinder data apq8096-system-tweaks - 0.1.2 - ModalAI common on-target utilities for VOXL apq8096-tflite - 2.2.3-4 - Tensorflow Lite Build For VOXL libapq8096-io - 0.5.8 - ModalAI library allowing apps processor access to accessory serial ports libmodal-cv - 0.1.0 - ModalAI CV library libmodal-exposure - 0.0.7 - ModalAI Auto Exposure Library libmodal-json - 0.4.2 - Helper library for handling JSON config files libmodal-pipe - 2.4.0 - Interface for services to communicate over posix named pipes libmodal-pipe - 2.4.4 librc-math - 1.1.8 - Math and Linear Algebra Routines for Robotics libvoxl-cutils - 0.1.1 - ModalAI's c utils mavlink-camera-manager - 0.1.0 - ModalAI implementation of the Mavlink camera protocol qualcomm-proprietary - 0.0.1 voxl-camera-calibration - 0.2.2 - On-board camera calibration for VOXL voxl-camera-server - 1.1.0 - publishes camera frames over named pipe interface voxl-ceres-solver - 1.14.0-7 - ceres-solver for voxl voxl-ceres-solver - 1.14.0-9 voxl-cpu-monitor - 0.2.6 - publishes CPU Data over MPA pipe and provides fan tools voxl-docker-support - 1.2.4 - tools to improve the usability of docker on VOXL voxl-gphoto2-server - 0.0.10 - Gstreamer-based application to pull raw video frames from PTP cameras voxl-jpeg-turbo - 2.1.3-4 - libjpeg_turbo build for voxl voxl-libgphoto2 - 0.0.4 - Library to control digital cameras over USB voxl-libuvc - 1.0.6 - cross-platform library for USB video devices voxl-logger - 0.3.2 - misc tools for modal pipe architecture voxl-mapper - 0.0.7 - voxl-mapper voxl-mavlink - 0.1.0 - mavlink headers voxl-mavlink-server - 0.1.3 - MPA interface for mavlink over UART or UDP voxl-modem - 0.16.0 - VOXL Modem Utils voxl-mongoose - 7.6.0 - mongoose build for voxl voxl-mpa-to-ros - 0.3.3 - ROSNode converting MPA pipes voxl-mpa-tools - 0.7.2 - misc tools for modal pipe architecture voxl-mpa-tools - 0.7.3 voxl-nlopt - 2.5.0-4 - nlopt voxl-opencv - 4.5.5-1 - opencv built for VOXL voxl-portal - 0.2.8 - Debug web interface for VOXL voxl-qvio-server - 0.7.1 - publishes QVIO data over named pipe interface voxl-streamer - 0.3.6 - Gstreamer-based application to handle RTSP streaming voxl-suite - 0.8.1 - voxl-suite for APQ8096 VOXL voxl-tag-detector - 0.0.4 - Detect apriltags for MPA voxl-tflite-server - 0.2.7 - client of voxl-camera-server that does deep learning voxl-utils - 1.1.4 - ModalAI common on-target utilities for VOXL voxl-uvc-server - 0.1.1 - libuvc application to handle UVC camera frame output to MPA voxl-vision-px4 - 1.2.0 - Interface between VOXL's computer vision services and PX4 voxl-voxblox - 1.0.4 - voxblox library api voxl-voxblox - 1.1.2 voxl-vpn - 0.0.6 - ModalNet VPN software
-
Heey @ahmed-mustahid,
Looks like you have some dependency version issues. The voxl-voxblox version you are using is NOT from the sdk-0.8 release, it is a much newer version from our dev repos. See the versions that get grabbed here:
voxl-cross:~(master)(0.0.7)$ ./install_build_deps.sh apq8096 sdk-0.8 using apq8096 sdk-0.8 repo Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//Packages.gz. Updated source 'sdk-0.8'. installing: libmodal-json libvoxl-cutils voxl-ceres-solver voxl-nlopt voxl-mpa-tools libmodal-pipe voxl-voxblox Installing libmodal-json (0.4.2) on root. Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//libmodal-json_0.4.2.ipk. Configuring libmodal-json. Installing libvoxl-cutils (0.1.1) on root. Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//libvoxl-cutils_0.1.1.ipk. Configuring libvoxl-cutils. Installing voxl-ceres-solver (1.14.0) on root. Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//voxl-ceres-solver_1.14.0-7.ipk. Configuring voxl-ceres-solver. Installing voxl-nlopt (2.5.0) on root. Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//voxl-nlopt_2.5.0-4.ipk. Configuring voxl-nlopt. Done installing nlopt Installing voxl-mpa-tools (0.7.2) on root. Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//voxl-mpa-tools_0.7.2.ipk. Configuring voxl-mpa-tools. Installing libmodal-pipe (2.4.0) on root. Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//libmodal-pipe_2.4.0.ipk. Configuring libmodal-pipe. Installing voxl-voxblox (1.0.4) on root. Downloading http://voxl-packages.modalai.com/dists/apq8096/sdk-0.8/binary-arm64//voxl-voxblox_1.0.4.ipk. Configuring voxl-voxblox. Done installing voxblox Done installing dependencies
Try rebuilding with a fresh docker env and installing all dependencies from either the
stable
orsdk-0.8
repos. -
Also,
opkg list
shows all available versions of packages, so to see what you are actually using you can runopkg list-installed