运行VINS-Mono没有轨迹的原因

本文主要探讨了VINS-Mono运行时无法显示轨迹的两个原因:一是代码问题,可能是由于特定版本的更新导致的错误,解决方案是回退到稳定版本;二是环境配置问题,包括eigen3版本冲突和ceres与VINS-Mono的eigen3版本不一致。解决这些问题后,一般可以避免vins_estimator的报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 代码原因

最近这一周(2018年12月1日起)测试估计很多人都会遇到轨迹没有出现,vins_estimator报错的问题。

报错如下图所示。

解决办法:对应的Issue
换一个之前版本的(18年8月17日那次提交的可以用)。
在VINS-Mono目录下执行

git checkout b638c08

在这里插入图片描述
在这里插入图片描述

2 环境配置原因

如果修改了还是有问题,说明是自身配置的问题了。

可以参考这个问题的讨论

第一:我们要确保自己电脑上的eigen3版本只有一个,

sudo updatedb
locate eigen3

第二:确保自己电脑的ceres编译使用的eigen3版本和VINS-Mono是一致的。

最后我电脑的环境为

ubuntu 16.04 64位
ROS Kinetic
opencv3.3.1
eigen3.3.3
ceres-solver 1.4.0

确保上面没问题基本就不会报错了。

### 运行 VINS-Mono 的安装与使用教程 #### 1. 软件环境准备 为了成功运行 VINS-Mono,需要配置以下软件环境: - Ubuntu 16.04 或更高版本(推荐 Ubuntu 18.04) - ROS Kinetic 或 Melodic 版本 - OpenCV 3.x 或更高版本 - CMake 和编译工具链 - Python 及其依赖库 上述环境可以通过官方文档或社区资源完成设置[^2]。 #### 2. 下载并构建 VINS-Mono 源码 从 GitHub 获取源码,并按照如下步骤操作: ```bash git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git cd VINS-Mono catkin_make -j4 source devel/setup.bash ``` 此命令会克隆仓库至本地目录,并通过 Catkin 工具进行编译。如果遇到错误,请确认依赖项已正确安装。 #### 3. 配置传感器驱动程序 对于 Realsense D435i 设备,需先启动摄像头节点: ```bash roslaunch realsense2_camera rs_camera.launch ``` 该命令加载 RealSense SDK 并发布图像和 IMU 数据流。确保设备连接正常且驱动无误。 #### 4. 启动 VINS-Mono 主进程 执行以下指令以启动核心算法模块: ```bash roslaunch vins_estimator realsense_color.launch ``` 这一步将读取相机校准文件 `camera.yaml` 并初始化状态估计器[^1]。 #### 5. 显示可视化界面 为便于调试,可启用 RViz 查看轨迹和其他数据: ```bash roslaunch vins_estimator vins_rviz.launch ``` RViz 将显示实时位姿、特征点云以及地图信息。 --- ### 常见问题解决方法 #### a. 编译失败 可能原因包括缺少依赖包或路径冲突。建议逐一排查缺失组件,例如重新安装 Eigen 库或其他第三方支持函数[^3]。 #### b. 初始化困难 单目相机缺乏绝对尺度约束,可能导致系统难以收敛。此时可通过手动指定初始位置或将 IMU 放置于静态环境中辅助计算。 #### c. 性能不稳定 若发现漂移过大或者频率下降,则可能是参数调优不足所致。尝试调整窗口大小、重投影误差阈值等超参设定[^4]。 --- ### 提供一段代码片段用于验证功能 以下是检测是否成功订阅主题的一个简单脚本: ```python import rospy from sensor_msgs.msg import Image, Imu def image_callback(msg): print("Image received:", msg.header.stamp) def imu_callback(msg): print("IMU data received:", msg.linear_acceleration) if __name__ == "__main__": rospy.init_node('vins_test', anonymous=True) rospy.Subscriber("/camera/color/image_raw", Image, image_callback) rospy.Subscriber("/imu/data", Imu, imu_callback) rospy.spin() ``` ---
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南山二毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值