MITKimera-VIO-ROS安装
- 电脑硬件
- 2025-08-15 15:03:01

前言
我安装Kimera-VIO-ROS的时间是2023.10.28。由于已经离Kimera发布过去两年,所以遇到版本不同步问题,Kimera-VIO,Kimera-VIO-ROS,GTSAM的版本需要精心挑选。
Kimera-VIO在2021.07.01之后没有更新,git commit版本为641576f Kimera-VIO-ROS在2021.07.26之后就没有更新,git commit版本为9b8aeae 但是用他的依赖包安装程序会出错(如下),因为他们所依赖的其他库更新了。
wstool merge Kimera-VIO-ROS/install/kimera_vio_ros_ssh.rosinstall我们只能找2021.07.01之前其他库的版本。再考虑到MIT团队开发一个庞大程序,时间必然不会小于半年,于是所依赖的库版本最早也得是2021年上半年的版本。
GTSAM需要选则 4.1.1 ,git commit版本是69a3a75,虽然是2021.12.21的,但是发现版本依旧适配。但是更新版本的GTSAM就不行了(比如4.2,4.3不行)。因为GTSAM后面大部分函数的指针都变成了std::shared_ptr.而Kimera依旧用大量使用了boost::shared_ptr。因为旧版本的GTSAM就是用了boost::shared_ptr。所以适配没问题。
Kimera-RPGO需要选择master分支 git commit版本是9e1bf93
正确安装方式 # Setup catkin workspace mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin init catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -DGTSAM_TANGENT_PREINTEGRATION=OFF catkin config --merge-devel # Add workspace to bashrc for automatic sourcing of workspace. echo 'source ~/catkin_ws/devel/setup.bash' >> ~/.bashrc # 如果是自己新建的目录,举个例子,在~/.zshrc中 source ~/ros_ws/kimera_ws/devel/setup.zsh export ROS_PACKAGE_PATH=/opt/ros/melodic:$HOME/ros_ws/kimera_ws/src export LD_LIBRARY_PATH=/usr/local/lib:usr/lib:/home/zph/ros_ws/kimera_ws/devel/lib # Clone repo cd ~/catkin_ws/src # For ssh: # 需要下载三角mesh所用的插件 git clone github /ToniRV/mesh_rviz_plugins.git # 下载主文件 git clone git@github :MIT-SPARK/Kimera-VIO-ROS.git git checkout 9b8aeae # For https: # git clone github /MIT-SPARK/Kimera-VIO-ROS.git # Install dependencies from rosinstall file using wstool wstool init # Use unless wstool is already initialized # For ssh: wstool merge Kimera-VIO-ROS/install/kimera_vio_ros_ssh.rosinstall # For https # wstool merge Kimera-VIO-ROS/install/kimera_vio_ros_https.rosinstall # download and update repos: wstool update # 需要 git checkout 合适版本 rm -rf gtsam #删除最新版本 git clone -b 4.1.1 github /borglab/gtsam.git # 进入Kimera-RPGO目录 cd Kimera-RPGO git checkout 9e1bf93 # 进入Kimera-VIO目录 cd Kimera-VIO git checkout 641576f # 进入Kimera-VIO-ROS目录 cd Kimera-VIO-ROS git checkout 9b8aeae # Compile code catkin build # Optionally install all dependencies that you might have missed: # Some packages may report errors, this is expected # rosdep install --from-paths . --ignore-src -r -y Bug1
为防止Pangolin报错,需要在Kimera-VIO中CmakeLists.txt添加
if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() Bug2注意GTSAM在4.1.1中使用了quaternion()函数,但在未来版本4.2或者4.3中使用toQuaternion()代替,因为之前的4.1.1有歧义。所以目前Kimera使用了带歧义的GTSAM。自己改写时需要注意。见Fix / Move Rot3::quaternion to deprecated block #1219
Bug3我电脑Ubuntu里自带tbb不是4.0版本以上的,而最新的GTSAM对TBB有了要求,在gtsam/cmake/HandleTBB.cmake文件中
if (GTSAM_WITH_TBB) # Find TBB find_package(TBB 4.4 COMPONENTS tbb tbbmalloc) # Set up variables if we're using TBB if(TBB_FOUND) set(GTSAM_USE_TBB 1) # This will go into config.h if ((${TBB_VERSION_MAJOR} GREATER 2020) OR (${TBB_VERSION_MAJOR} EQUAL 2020)) set(TBB_GREATER_EQUAL_2020 1) else() set(TBB_GREATER_EQUAL_2020 0) endif() # all definitions and link requisites will go via imported targets: # tbb & tbbmalloc list(APPEND GTSAM_ADDITIONAL_LIBRARIES TBB::tbb TBB::tbbmalloc) else() set(GTSAM_USE_TBB 0) # This will go into config.h endif() ############################################################################### # Prohibit Timing build mode in combination with TBB if(GTSAM_USE_TBB AND (CMAKE_BUILD_TYPE STREQUAL "Timing")) message(FATAL_ERROR "Timing build mode cannot be used together with TBB. Use a sampling profiler such as Instruments or Intel VTune Amplifier instead.") endif() endif()但是我不计划用新的TBB,因为之前的OpenCV4.6也是基于旧的TBB编译的,重新安装新的TBB会破坏原有环境。
MITKimera-VIO-ROS安装由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“MITKimera-VIO-ROS安装”