vins-fusion gpu, docker, opencv4.5.4(cuda) 复现
代码:https://gitee.com/zheng-yongjie/vins-fusion-gpu-cv4?skip_mobile=true
硬件: jetson xavier nx, 系统 20.04
nvcc -V 可查看cuda版本
本文在docker里面复现
1. opencv cuda 安装
root@ubuntu:~# pwd /root wget -O opencv-4.5.4.zip https://github.com/opencv/opencv/archive/4.5.4.zip # check version wget -O opencv_contrib-4.5.4.zip wget https://github.com/opencv/opencv_contrib/archive/4.5.4.zip unzip opencv.zip && unzip opencv_contrib-4.5.4.zip cd opencv-4.5.4/ && mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.4/modules \ -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \ -D CMAKE_INSTALL_PREFIX=/workspace/opencv-4.5.4 \ -D WITH_CUDA=ON \ -D CUDA_ARCH_BIN=7.2 \ # nx -D CUDA_ARCH_PTX=7.2 \ -D ENABLE_FAST_MATH=ON \ -D CUDA_FAST_MATH=ON \ -D WITH_CUBLAS=ON \ -D WITH_LIBV4L=ON \ -D WITH_GSTREAMER=ON \ -D WITH_GSTREAMER_0_10=OFF \ -D WITH_QT=OFF \ -D WITH_OPENGL=ON \ -D CUDA_NVCC_FLAGS="--expt-relaxed-constexpr" \ -D WITH_TBB=ON .. export http_proxy=http://IP:7890 # 需要打开 clash 中允许局域网连接 export https_proxy=http://IP:7890 make -j8 sudo make install # 安装到:/workspace/opencv-4.5.4 下 # 删除下载的安装包即可。(可选) pkg-config --modversion opencv4 # Check opencv Version sudo find /workspace -name "OpenCVConfig.cmake" # 找到 OpenCVConfig.cmake 文件 /workspace/opencv-4.5.4/lib/cmake/opencv4/OpenCVConfig.cmake
2. CV-Bridge的编译
在安装 OpenCV4 后必须重新构建 cv_bridge,这样就不会发生 OutOfMemoryError。
https://github.com/ros-perception/vision_opencv/tree/noetic
直接下载 noetic zip。
root@ubuntu:~/vision_opencv-noetic# pwd /root/vision_opencv-noetic root@ubuntu:~/vision_opencv-noetic/cv_bridge# vim CMakeLists.txt # 修改为自己的 opencv 安装路径 20 # set(_opencv_version 4) 21 # 指定 OpenCVConfig.cmake 的路径 22 set(OpenCV_DIR "/workspace/opencv-4.5.4/lib/cmake/opencv4") # 编译 mkdir build && cd build cmake .. make -j8
3. Vins-Fusion GPU编译安装
root@ubuntu:/workspace# mkdir -p vins_fusion_gpu_catkin_ws/src root@ubuntu:/workspace# cd vins_fusion_gpu_catkin_ws/src && git clone https://gitee.com/jerry-ironman/vins-fusion-gpu-cv4.git # 在宿主机上更改代码库权限,以方便修改代码。 sudo chown -R 用户名:用户组 vins_fusion_gpu_catkin_ws # 修改 cv_bridge_DIR 和 OpenCV_DIR vim vins-fusion-gpu-cv4-master/vins_estimator/CMakeLists.txt 9 set(cv_bridge_DIR /root/vision_opencv-noetic/cv_bridge/build/devel/share/cv_bridge/cmake) 21 set(OpenCV_DIR "/workspace/opencv-4.5.4/lib/cmake/opencv4") vim vins-fusion-gpu-cv4-master/camera_models/CMakeLists.txt 16 set(OpenCV_DIR "/workspace/opencv-4.5.4/lib/cmake/opencv4") vim vins-fusion-gpu-cv4-master//loop_fusion/CMakeLists.txt 9 set(cv_bridge_DIR /root/vision_opencv-noetic/cv_bridge/build/devel/share/cv_bridge/cmake) 19 set(OpenCV_DIR "/workspace/opencv-4.5.4/lib/cmake/opencv4")
编译:
root@ubuntu:/workspace/vins_fusion_gpu_catkin_ws# catkin_make -j8
4. 运行
更改配置参数, 加入:
use_gpu: 1 use_gpu_acc_flow: 1 rosrun vins vins_node src/VINS-Fusion/config/custom/xx.yaml
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律