如何在(圆形)点图中找到段?

时间:2017-02-14 13:28:08

标签: point points robotics segment segments

我目前正在开展一个项目,该项目涉及使用激光模块测量机器人周围的距离,然后机器人必须根据他获得的点进行移动。

我目前可以访问360个点,这些点代表每个相应角度与中心的距离。 (距离为0°,距离为1°等)

以下是在2D表面上显示的点的示例: Circular representation of the points

我希望能够做的是,而不是给所有360点的机器人喂食,以喂它包含多个点的段。例如,即使点未完全对齐,图像的底部也将是单个段。

我的问题是,是否有现成的算法可以帮助我实现我的目标?

(我在python中工作,但这不应该是一个因素)

非常感谢。

1 个答案:

答案 0 :(得分:0)

假设您的积分已订购:

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

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