2017-02-14 4 views
1

저는 현재 레이저 모듈을 사용하여 로봇 주변의 거리를 측정하는 프로젝트를 진행하고 있습니다. 로봇은 로봇 모듈이있는 지점을 기준으로 이동해야합니다.(원형) 포인트 맵에서 세그먼트를 찾는 방법은 무엇입니까?

현재 각 각도에 대한 중심으로부터의 거리를 나타내는 360 포인트에 액세스 할 수 있습니다. (1 ° 0 °, 거리에 대한 거리 등) 여기

는 점은 2D 화면에 표시 할 때 어떻게 생겼는지의 예 : Circular representation of the points

나는 수 있도록하고 싶습니다 무엇 할 것은 로봇에게 360 포인트를 모두 넘겨주는 것이 아니라 여러 포인트를 포함하는 세그먼트를 먹이는 것입니다. 예를 들어, 포인트가 완전히 정렬되지 않았더라도 이미지의 하단 부분은 단일 세그먼트가됩니다.

내 질문에 내가하려는 것을 달성하는 데 도움이되는 기존 알고리즘이 있습니까?

고마워 (나는 파이썬에서 일하고 있어요하지만 정말 요인이 될 안된다).

답변

0

은 당신의 포인트는 정렬 가정하면 각 지점에 대한

이, 중간 지점 떨어진 두 점 사이의 세그먼트에서 약간의 거리보다 작 으면 다음, 두 지점에 의해 예견 더 엔드 포인트 1 점을 누르면, 중간 점이 둘 다 선 세그먼트에서 어느 정도 떨어져 있는지 확인하십시오. false가 될 때까지이 작업을 계속 진행하십시오.이 시점에서 한 포인트를 롤백하고 세그먼트를 생성 한 다음 해당 세그먼트의 끝을 다음 세그먼트의 시작으로 설정하십시오. 또한 거리가 아닌 각도를 고려해 볼 수 있습니다. 또한 몇 가지 시도를 위해 특정 시작점에서 세그먼트를 만들 수 없으면 시작점을 앞으로 밀어 넣으십시오 (모든 것이 세그먼트로 단순화되지는 않으므로)

또는 교 전기 점으로 변환하여 호퍼를 사용할 수 있습니다 그 결과의 포인트 - 클라우드로부터 선을 검출하는 투표 알고리즘.

관련 문제