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,通知点云生成函数,解锁生成显示点云
每当插入关键帧时,就更新一次点云地图
回环点云就是每发生一次回环,就更新当前所有关键帧点云,并显示。