orbslam2稠密重建

这里用的是高翔的稠密点云版本,需要注意的
1 . 因为DK彩色图是bgra格式,yaml RGB记得设为0
2。加入yamlk4,k5,k6的参数。参照这个老哥的设置,不然会追踪失败。
Azure-Kinect-DK跑通ORB_SLAM2: link.
参数可以在运行DK后,用查看内参

rostopic echo /rgb/camera_info

3.tracking.cc的cv::Mat Tracking::GrabImageRGBD加一行cvtColor(mImRGB,mImRGB,CV_BGRA2BGR);不然点云颜色会显示不正确,如下图。请添加图片描述
4。ros_rgbd.cc的topic改为DK的

请添加图片描述
5。我跑高翔代码时体素滤波那行代码报了内存泄漏,segmeng fault out的问题,注释后就正常。请添加图片描述最终效果如下请添加图片描述

视频效果

链接: orbslam2+azure kinect DK稠密重建_哔哩哔哩.

具体实现

1.system.cc构造函数里建立pointcloudmapping建图对象,输入滤波分辨率,构造函数初始化。
Tracking建立对象初始化时,输入刚刚建立的点云对象

join是等待该线程完成,再执行下一步的意思
pointcloudmapping主要包括,构造函数,insertkeyframe插入关键帧,generate点云函数
insert完就会notify,通知点云生成函数,解锁生成显示点云

每当插入关键帧时,就更新一次点云地图
回环点云就是每发生一次回环,就更新当前所有关键帧点云,并显示。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐