视觉里程计中的一段代码逻辑是否存在问题?
感谢提供了这么专业的代码和文档。我按照你的资料进行了复现,受益匪浅!但是发现了如下问题:
如下二者的逻辑关系不一致:
https://github.com/zsirui/slam-python/tree/master/4/joinPointCloud.py 中的第51、52行: p = slamBase.transformPointCloud(p0, pnp.T) pointCloud = slamBase.addPointCloud(pointCloud.to_list(), p)
与 https://github.com/zsirui/slam-python/blob/master/3/joinPointCloud.py中的第23、24行: p = slamBase.transformPointCloud(p0, pnp.T) pointcloud = slamBase.addPointCloud(p, p1)
是否应该将前者的代码改为如下形式,即与后者一致? p = slamBase.transformPointCloud(pointCloud, pnp.T) pointCloud = slamBase.addPointCloud(p,p0)
在没有滤波的情况下,我将颜色加入到4/joinPointCloud.py 的点云中,经过若干次拼接后,可以观察到,这样修改后的点云效果与rgb图像相仿,而按照原来的代码形式,带颜色的点云效果与rgb图像相差很大。
请问你运行过前面的棋盘格py文件与readYaml的py文件没有,也出现很多bug,很想问一下,作者这块都是验证上传的吗
棋盘格py文件没有运行过。 运行过readYaml文件。有时候在进行读写操作的时候,里面的'rb'和'wb'处会报错。但是对于复现项目来说,这个问题不大,因为readYaml只是帮助提取了相机内参和畸变系数。我在运行主程序的时候,屏蔽了读取readYaml文件,并直接用如下代码:
CameraIntrinsicData=np.array([ 4.0221263617087789e+02, 0., 2.7927783248995860e+02, 0.,
4.0221263617087789e+02, 2.6686931417897887e+02, 0., 0., 1. ]).reshape(3,3)
DistortionCoefficients=np.array([ -8.6610044683997529e-03, -6.8094690368079636e-01,
1.3699186493148167e-02, -1.0121417303145586e-02,
1.2108008011320421e+00 ])
#CameraIntrinsicData, DistortionCoefficients = readyaml.parseYamlFile(CalibrationDataFile)
@zhchyang2004 你好,是的,我已经调通了readYaml,但是在slamBase.py 运行的点云图应该是包含RGB的,但是出来的图不是RGB的,你运行过这个程序没有
是哪一个主题中的的slamBase.py?
感谢提供了这么专业的代码和文档。我按照你的资料进行了复现,受益匪浅!但是发现了如下问题:
如下二者的逻辑关系不一致:
https://github.com/zsirui/slam-python/tree/master/4/joinPointCloud.py 中的第51、52行: p = slamBase.transformPointCloud(p0, pnp.T) pointCloud = slamBase.addPointCloud(pointCloud.to_list(), p)
与 https://github.com/zsirui/slam-python/blob/master/3/joinPointCloud.py中的第23、24行: p = slamBase.transformPointCloud(p0, pnp.T) pointcloud = slamBase.addPointCloud(p, p1)
是否应该将前者的代码改为如下形式,即与后者一致? p = slamBase.transformPointCloud(pointCloud, pnp.T) pointCloud = slamBase.addPointCloud(p,p0)
在没有滤波的情况下,我将颜色加入到4/joinPointCloud.py 的点云中,经过若干次拼接后,可以观察到,这样修改后的点云效果与rgb图像相仿,而按照原来的代码形式,带颜色的点云效果与rgb图像相差很大。
首先,我是参照别人的一个视觉里程计(C++代码)教程,进行了使用Python编写的工作。原本别人的教程是一个循序渐进的过程,第三章和第四章侧重的主题不太一样,所以这里表现的逻辑是不一样的。Python版的PCL库是没有颜色区域的,我是通过自己的一些代码改造,让点云能够显示颜色,但到后期发现,想完整实现别人的视觉里程计的完整教程,需要很多其他知识,所以最终只出现了这四章内容。