为什么ORB-SLAM2处理完成相机数据后,时间戳变少?
比如,800张图片,处理后只有300个位置和姿态?
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
为什么ORB-SLAM2处理完成相机数据后,时间戳变少?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
- 这个问题的回答你可以参考下: https://ask.csdn.net/questions/1090379
- 你也可以参考下这篇文章:ORB-SLAM2源码解读(2.2):单目初始化、匀速运动模型跟踪、跟踪参考关键帧、跟踪局部地图
- 除此之外, 这篇博客: ORB_SLAM2 源码解析 ORB_SLAM2简介(一)中的 2、三个线程是怎样运转的 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
LocalMapping
和LoopClosing
线程都是靠Tracking
线程产生的关键帧而运转的,在Tracking
线程没有产生关键帧时,LocalMapping
和LoopClosing
线程都是处于空转状态,直到Tracking
线程产生关键帧时,LocalMapping、
LoopClosing
线程和Tracking
线程一起运转。// Tracking线程主函数 void Tracking::Track() { // 进行跟踪 // ... // 若跟踪成功,根据条件判定是否产生关键帧 if (NeedNewKeyFrame()) // 产生关键帧并将关键帧传给LocalMapping线程 KeyFrame *pKF = new KeyFrame(mCurrentFrame, mpMap, mpKeyFrameDB); mpLocalMapper->InsertKeyFrame(pKF); } // LocalMapping线程主函数 void LocalMapping::Run() { // 死循环 while (1) { // 判断是否接收到关键帧 if (CheckNewKeyFrames()) { // 处理关键帧 // ... // 将关键帧传给LoopClosing线程 mpLoopCloser->InsertKeyFrame(mpCurrentKeyFrame); } // 线程暂停3毫秒,3毫秒结束后再从while(1)循环首部运行 std::this_thread::sleep_for(std::chrono::milliseconds(3)); } } // LoopClosing线程主函数 void LoopClosing::Run() { // 死循环 while (1) { // 判断是否接收到关键帧 if (CheckNewKeyFrames()) { // 处理关键帧 // ... } // 查看是否有外部线程请求复位当前线程 ResetIfRequested(); // 线程暂停5毫秒,5毫秒结束后再从while(1)循环首部运行 std::this_thread::sleep_for(std::chrono::milliseconds(5)); } }
- 以下回答由chatgpt基于相关博客总结生成:
这个问题可能是因为ORB-SLAM2程序处理过程中丢失了一些帧,导致相应的时间戳也丢失了一部分,所以最终只能获取300个位置和姿态信息。解决该问题可以进行以下步骤: 1. 检查ORB-SLAM2程序处理过程中是否有丢帧现象,可以通过打印日志来观察,并进行一定的处理,如跳帧等,确保所有的帧都被处理上。 2. 对于已经丢失的帧,可以通过插值的方式来进行数据补全,即根据相邻帧的位置和姿态信息来推算出丢失帧的位置和姿态信息,从而将数据完整性恢复。 3. 检查程序中时间戳的处理方式,确保在处理过程中不会丢失原始数据的时间戳,可以在代码中添加必要的保护机制,如数据备份等。 4. 对现有的数据进行分析,找出问题所在,如丢帧或者时间戳处理不当等,并进行相应的修改和优化,以提高程序的稳定性和可靠性。
可能需要进一步分析程序代码和数据,才能确定具体的解决方案。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 在centos7安装conda
- ¥15 c#调用yolo3 dll文件获取的数据对不上
- ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译
- ¥15 STM32F103上电短路问题
- ¥15 关于#单片机#的问题:以ATMEGA128或相近型号单片机为控制器设计直流电机调速的闭环控制系统(相关搜索:设计报告|软件设计|流程图)
- ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
- ¥15 (标签-python|关键词-char)
- ¥15 python+selenium,在新增时弹出了一个输入框
- ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
- ¥20 学生成绩管理系统设计