ORB-SLAM2中使用ROS遇到Bad argument (Invalid pointer to file storage) in cvGetFileNodeByName

在使用ORB-SLAM2与ROS Kinetic集成时遇到了'Bad argument (Invalid pointer to file storage) in cvGetFileNodeByName'的错误。经过两天的排查,解决方案是在Ubuntu 16.04 VMWare环境下安装单独的OpenCV 3.1.0,并修改ORB-SLAM2的CMakeLists.txt文件,将OpenCV版本指定为3.1.0。同时,确保ROS节点使用的OpenCV版本也与之匹配。此问题通常由ORB-SLAM2和ROS不同OpenCV版本引起,统一版本即可解决。

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

在最近的调试代码中,有一个问题Bad argument (Invalid pointer to file storage) in cvGetFileNodeByName困扰了我一段时间,查询国内的方案也没有找到方法。在寻找了github的问答中,有人提出了解决方案,且亲测可行。

https://github.com/raulmur/ORB_SLAM2/issues/103

Ok with two days of struggling here is my solution:
First my environment:

Ubuntu 1604 under VMware
ROS Kinetic
OpenCV 2.4.10

I first tried to compile ORB_SLAM with the OpenCV3.1.0 inside ROS follow the introduction provided by

### 配置 ORB-SLAM2ORB-SLAM3 运行环境 要在 Ubuntu 20.04 上成功配置 ORB-SLAM2ORB-SLAM3 并使其与 ROS 实现无缝集成,需遵循以下方法: #### 安装依赖项 首先安装必要的软件包和工具链。这些包括编译器、构建工具以及 OpenCV 等库的支持。 ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake git libeigen3-dev libsuitesparse-dev \ libopencv-dev python3-catkin-tools ros-noetic-* -y ``` 上述命令会安装 CMake、Eigen 库、SuiteSparse 数学优化库、OpenCV 开发版本以及其他 ROS Noetic 所需的相关组件[^1]。 #### 下载并编译 ORB-SLAM2ORB-SLAM3 克隆官方仓库到本地目录,并按照说明完成源码的下载与编译过程。 对于 **ORB-SLAM2**: ```bash git clone https://github.com/raulmur/ORB_SLAM2.git cd ORB_SLAM2 chmod +x build.sh ./build.sh ``` 而对于 **ORB-SLAM3**, 类似操作适用于此项目结构: ```bash git clone https://github.com/UZI-CVSLAB/orb_slam3_ros.git cd orb_slam3_ros/ catkin_make source devel/setup.bash ``` 注意,在此过程中可能遇到路径设置问题;确认最终生成可执行二进制文件位于指定位置 `PATH/ORB_SLAM3/Examples/ROS` 即表明正确无误。 #### 启动节点和服务 为了验证整个系统的功能正常与否,可以开启多个终端窗口来分别启动不同的服务端口及数据流处理程序。 在一个新的 Terminal 中输入以下指令初始化核心通信框架: ```bash roscore ``` 接着于第二个 Tab 页面加载预先录制好的传感器数据集用于测试目的: ```bash rosbag play MH_01_easy.bag --clock ``` 最后一步是在第三个独立 Session 内调用实际算法逻辑模块本身: ```bash rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml ``` 以上三步共同协作实现了完整的视觉里程计解决方案演示效果展示[^2]。 通过这样的方式不仅完成了基础软硬件平台准备工作还确保了各子系统之间良好交互性能达到预期目标——即支持实时定位映射任务需求满足条件下的高效运作模式转换机制形成闭环控制体系架构设计思路清晰明确易于维护扩展性强等特点优势明显突出表现优异值得推广普及应用价值极高前景广阔未来潜力无限!
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值