Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

视觉里程计中的一段代码逻辑是否存在问题? #2

Open
zhchyang2004 opened this issue Dec 27, 2018 · 5 comments
Open

Comments

@zhchyang2004
Copy link

感谢提供了这么专业的代码和文档。我按照你的资料进行了复现,受益匪浅!但是发现了如下问题:

如下二者的逻辑关系不一致:

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图像相差很大。

@watertianyi
Copy link

请问你运行过前面的棋盘格py文件与readYaml的py文件没有,也出现很多bug,很想问一下,作者这块都是验证上传的吗

@zhchyang2004
Copy link
Author

棋盘格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)

@watertianyi
Copy link

@zhchyang2004 你好,是的,我已经调通了readYaml,但是在slamBase.py
运行的点云图应该是包含RGB的,但是出来的图不是RGB的,你运行过这个程序没有

@zhchyang2004
Copy link
Author

是哪一个主题中的的slamBase.py?

@zsirui
Copy link
Owner

zsirui commented May 18, 2019

感谢提供了这么专业的代码和文档。我按照你的资料进行了复现,受益匪浅!但是发现了如下问题:

如下二者的逻辑关系不一致:

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库是没有颜色区域的,我是通过自己的一些代码改造,让点云能够显示颜色,但到后期发现,想完整实现别人的视觉里程计的完整教程,需要很多其他知识,所以最终只出现了这四章内容。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants