2017-02-14 44 views
1

我目前正在研究一个项目,该项目涉及用激光模块测量机器人周围的距离,然后机器人必须根据他得到的点移动。如何在(圆形)点图中查找分段?

我目前可以使用360个点来表示每个相应角度距离中心的距离。 (0°,距离距离为1°等)

这里是什么样的点看时,在二维表面上显示像一个例子: Circular representation of the points

我想怎么能做的是,而不是给机器人全部360点,喂它含有多个点的部分。例如,即使点没有完全对齐,图像的底部也是一个单独的片段。

我给你的问题是,是否有一个现有的算法,可以帮助我实现我想要做的?

(我在python工作但真的不应该是一个因素)

非常感谢。

回答

0

假设你的观点是有序的:

对于每一个点,两个点向前看,如果中间点小于一定距离的两个点之间的分段走,然后进一步推你的端点1分,并检查现在两个中点是否仍在线段的某个距离内。继续执行此操作直至出现错误,此时回滚一个点并生成段,然后将该段的结尾设置为下一段的起点。此外,您可以考虑角度,而不仅仅是距离,因为有些情况下会是有利的。另外,如果多次尝试都不能从某个起始点创建段,请将起始点向前推(因为并非所有事情都将简化为段)

或者,您可以转换为笛卡尔点并使用霍夫投票算法来检测产生的点云中的线。