MIT-SPARK / Kimera-VIO

Visual Inertial Odometry with SLAM capabilities and 3D Mesh generation.
BSD 2-Clause "Simplified" License
1.56k stars 418 forks source link

Can I compile Kimera without the OpenCV viz module? #229

Open sarika93 opened 7 months ago

sarika93 commented 7 months ago

When I compile Kimera-VIO, I get the below error, indicating that the OpenCV viz module is not installed.

`[ 6%] Building CXX object CMakeFiles/kimera_vio.dir/src/dataprovider/EurocDataProvider.cpp.o In file included from /cc_kimera/Kimera-VIO/include/kimera-vio/logging/Logger.h:25:0, from /cc_kimera/Kimera-VIO/include/kimera-vio/dataprovider/EurocDataProvider.h:36, from /cc_kimera/Kimera-VIO/src/dataprovider/EurocDataProvider.cpp:17: /cc_kimera/Kimera-VIO/include/kimera-vio/mesh/Mesh.h:23:10: fatal error: opencv2/viz/types.hpp: No such file or directory

include <opencv2/viz/types.hpp> // Just for color type.

      ^~~~~~~~~~~~~~~~~~~~~~~`

I do not want to install or use this module (as well as VTK) as I'm trying to run this on a not-especially-powerful aarch64 device and I don't really care for this type of visualization.

Is there an easy way (e.g. a flag) to disable this as a build dependency? If not, how important is it for Kimera's core VIO operation and would it be simple to remove (for my use case)?

bharadwajsirigadi commented 4 months ago

Did you find the solution, i ran into same error.

sarika93 commented 4 months ago

There isn't an easy way to remove the VTK dependency, unfortunately. My workaround was to actually modify the code remove everything related to it from my build, which I have on a branch here. It's very hacky and based off of an older commit than master, but I really didn't want to install a bunch of unnecessary (for my application) things on my device.

Are you compiling or cross-compiling? If you're compiling on a machine which has a package manager, the other solution would be to install VTK and recompile opencv from source. You can use the Dockerfile here as a guide for how to do this, but this is for Ubuntu 18.04, so you may need to make some changes for your device. I used opencv 4.6, rather than 3.3.1 which is included there.