1

컨테이너의 모서리 점을 계산하는 신뢰할 수있는 방법을 찾으려고합니다. 이 코너 포인트의 아이디어는 로봇의 지역화를위한 컨테이너의 중심점을 계산하는 것입니다. 이는 계산 된 중심점이 컨테이너를 선택하기 위해 로봇의 목적지가된다는 것을 의미합니다. 이를 위해 모서리 점을 계산하기위한 제안을 찾고 있거나 중심점을 직접 계산할 수있는 가능성이있을 수 있습니다. 지금까지 PCL 라이브러리 C/C++가 3D 데이터 처리에 사용되었습니다. 아래 이미지는 컨테이너의 스크린 샷입니다.
미리 감사드립니다.3D 데이터에서 로봇의 위치 파악을위한 중심점 계산

afterApplyingPassthrough

+0

그 사각형의 중심을 찾으려고합니까? –

+0

실제로 사각형의 중심을 찾는 것에 대해 생각하지 않았으므로 somhow가 문제를 해결할 수있었습니다. 그것은 나의 승인이 코너를 찾아서 오프 코스가 거의 걸음이없는 센터를 계산하는 것이라면 말입니다. 당신이 센터를 찾는 언급 더 나은 솔루션이 될 수 있습니다. 가운데 찾기 및 오프셋 추가. PCL에서 직접 계산할 수있는 가능성을 제안합니까? –

+1

깊이 데이터가 있습니까? 나는 그 컨테이너의 내부 표면을 보지 못합니다 ... (나는 그것이 3d 데이터라는 것을 이해합니다. 그러나 센서는 카트의 앞면 만 분해 할 수 있습니까?) –

답변

1

바퀴가 바닥에서 알려진 오프셋을 카트에 유지한다고 가정하면 바닥을 식별 할 수 있습니다.바닥에 너무 가까운 모든 점을 걸러 내십시오 (바퀴와 카트를 제외하고는 데이터를 제한하고 이후 단계를 단순화하는 카트를 제거합니다.)

카트를 분리하면 간단한 평균 점 , 그렇지 않으면 정확하지 않은 경우 격리 된 카트 (기본 방향에서 최소 최대 값)의 bounding box을 찾은 다음 해당 경계 상자의 중심을 가져옵니다 (더 정확해야하지만 여전히 약간의 수직 오프셋이 필요합니다)

카트를 분리 할 수 ​​없거나 다른 방법이 잘 작동하지 않는 경우 PCL sample consensus (구체적으로 SACMODEL_LINE)을 사용해 볼 수 있습니다.이 전략은 관련 전략이지만 매우 탄탄한 결과를 제공합니다. 기본 각 라인을 찾아 실행하고 클라우드에서 멤버를 뺀 다음 최상의 라인을 찾으십시오. 4 개의 기본 카트 라인을 확보 한 후 매개 변수를 사용하여 중심을 찾으십시오. * 이것은 카트 안이나 위에있는 무작위 아이템뿐만 아니라 다양한 크기의 카트 (항상 직각 수직 벽이 있다고 가정)

+0

좋은 제안. 감사합니다. (1) 바닥을 식별하고 (2) 바퀴를 제거하고 나중에 카트를 보관하기 위해 바닥에 너무 가까운 점을 필터링하면 (3) 경계 상자를 사용할 수 있습니다. ? –

+1

이것들은 꽤 명확한 설명입니다 ... 실제로 구현하는 방법에 관해서는 설명하기에는 너무 많은 부분이 있습니다. 그것은 잘 클래스의 생각에 대한 튜토리얼 및 웹 문서로 문서화되어 있습니다. 시작하는 것이 좋습니다 : http://pointclouds.org/documentation/tutorials/ 처음에는 튜토리얼을 시도한 다음 필요에 맞게 수정하는 것이 좋습니다. –

+0

실제로 나는 PCL 자습서를 조사하고 RANSAC을 평면 피팅 등에 사용했습니다. 평면 검출 및 제거가 가능한 특정 예를 언급 할 수 있습니다. 어떻게 든 휠을 필터링하지 않고 직각 프리즘을 찾는 것이 더 쉬울 것입니다 장바구니 개체의 경계 상자? –

2

내가했던 다음과 같은 사항 :

  • 이미지 (검정색 픽셀 = 1을 반전 I 이미지 (검정색 픽셀 = 0, 녹색 픽셀 = 1) 진화
    • , 녹색, 픽셀 = 0),
    • 은 3x3 커널로 N 번 이미지를 침식하고 동일한 커널 M 배로 확장합니다.

    왼쪽 : N = 2, M = 1, 오른쪽 : N = 6, M = 6

    enter image description hereenter image description here

    그 후 :

    • I 모든 비의 컨투어를 계산 0 영역 및
    • 은 전체 이미지를 둘러싸는 윤곽선을 제거했습니다. "전형적인"입력 이미지가 귀하의 경우처럼 보이는 방법

      enter image description hereenter image description here

      가 나도 몰라 :

    이 남아 윤곽이다. 하나의 샘플 이미지에만 액세스 할 수 있기 때문에, 나는 당신에게 적합한 "일반적인 솔루션"에 대해 추측하지는 않을 것입니다. 그러나이 특별한 경우를 해결하기 위해, 당신은 다음과 같은 방법으로 모든 윤곽을 분석 할 수 있습니다 :

    • 컴퓨팅은 직사각형 윤곽 내부의
    • 컴퓨팅 영역 (당신이 minAreaRect from OpenCV 비슷한 필요) 당신의 윤곽 주위에 가장 맞는 사각형을 rotatated
    • 윤곽 영역과 회전 된 경계 사각형의 영역 사이의 차이가 작은 경우 윤곽은 대략 직사각형 모양을 갖습니다.
    • 윤곽선이 직사각형이며 다른 조건을 만족합니다 (예 : 컨테이너의 일반적인 영역). 이것은 컨테이너에 속하고 그 중심을 계산한다고 가정합니다.

    실용적인 시나리오에서 잘 작동 할 것이라고 나는 주장하지 않습니다. 그것은 또한 빠르지 않다. 유용한 정보를 추출하는 방법을 보여주는 "스케치"로보아야합니다.

  • +0

    내가 게시 한 그림은 포인트 클라우드 데이터의 스크린 샷입니다. 말 그대로 처리가이 이미지가 아니라 깊이 데이터가되어야 함을 의미합니다. 하지만 고마워요. 2D 이미지라면 좋을 것 같습니다. 그렇지 않아? –