切掉点云的一部分

我有一个Intel D415深度相机,想识别机器人路径中的障碍物。 我想将cam pc =(102720,3)的点减少到机器人必须通过的矩形区域

我想出了这个列表理解,p [0]是x轴,p [2]的距离和值以米为单位,机器人需要大约1米的“门”,并且我将距离限制为2米。

inPathPoints = np.asarray([p for p in pc if p[0] > -0.5 and p[0] < 0.5 and p[2] > 0.2 and p[2] < 2])

在我的笔记本电脑上,cProfile显示此评估的运行时间为0.25秒。

由于机器人在移动时需要检查障碍物,因此我想重复此检查大约5..10次 第二。有什么提示我可以尝试加快速度吗?

mxmkeai 回答:切掉点云的一部分

使用numpy代替列表理解,并给出以下语句:

inPathPoints = pc[(pc[:,0] > -0.5) & (pc[:,0] < 0.5) & (pc[:,2] > 0.2) & (pc[:,2] < 2)]

这是如此之快,甚至没有显示在配置文件输出中。

本文链接:https://www.f2er.com/3100823.html

大家都在问