高博的ORB-SLAM2,彩色地图补全计划,并保存点云地图


132
被贴吧老哥文字剧透了,还好我什么党都不是,刀不到我,希望能早点在中国上映

点云拼接与三维稠密点云重建

高博的ORBSLAM2_with_pointcloud_map:
github
基于高博的加入回环地图的:
GITHUB
csdn
它们编译存在EIGEN版本不合问题,只要改写cmakelist文件就好,不用卸载重装,详见我的博客

彩色地图补全计划

现存问题:建立点云地图的点云没有颜色
解决思路:原来代码在
src/pointcloudmapping.cc中的
pcl::PointCloud< PointCloudMapping::PointT >::Ptr PointCloudMapping::generatePointCloud(KeyFrame* kf, cv::Mat& color, cv::Mat& depth)
函数中传递来的是灰度图像信息,自然没有颜色。
因此把带有颜色信息的图片矩阵传递过来就行了
在这里插入图片描述

具体操作如下:
include/Tracking.h

class Tracking
{
public:
cv::Mat mlmrgb;//增加此处
}

src/Tracking.cc

cv::Mat Tracking::GrabImageRGBD(const cv::Mat &imRGB,const cv::Mat &imD, const double &timestamp)
{
 	mlmrgb=imRGB; //增加此处
    mImGray = imRGB;
    mImDepth = imD;
}
void Tracking::CreateNewKeyFrame()
{
	mpLocalMapper->InsertKeyFrame(pKF);
    mpLocalMapper->SetNotStop(false);
    // insert Key Frame into point cloud viewer
    mpPointCloudMapping->insertKeyFrame( pKF, this->mlmrgb, this->mImDepth ); //修改此处
    mnLastKeyFrameId = mCurrentFrame.mnId;
    mpLastKeyFrame = pKF;
}

保存点云地图补全计划

ORB-SLAM2_RGBD_DENSE_MAP/Examples/RGB-D/rgbd_tum.cc

int main(int argc, char **argv)
{
SLAM.save();
最末处
}

include/pointcloudmapping.h

#include <pcl/io/pcd_io.h>
class PointCloudMapping
{
public:
void save();
}

include/System.h

class System
{
public:
void save();
}

src/pointcloudmapping.cc

void PointCloudMapping::save()
{
	pcl::io::savePCDFile( "result.pcd", *globalMap );
	cout<<"globalMap save finished"<<endl;
}

src/System.cc

void System::save()
{
    mpPointCloudMapping->save();
}

使用pcl_viewer result.pcd 指令查看
使用sudo apt install pcl-tools 安装pcl_viewer
下图为回看结果
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值