0

두 개의 행렬이 있습니다. 하나는 CAD 모델 당 공칭 위치 인 3D 좌표를 포함하고 다른 하나는 CMM을 사용하여 실제 측정 된 위치의 3D 좌표를 포함합니다. 모든 명목 점은 상응하는 측정 값을 가지며, 즉 두 행렬의 길이와 폭이 동일합니다. 가장 좋은 방법은 측정 된 점을 명목상의 점에 맞추는 것입니다. 다른 모든 지점에서 최대 거리에서 허용 오차를 초과하지 않으면 서 각 공칭/측정 된 한 쌍의 점 사이의 최소 거리를 생성하는 모든 측정 점에 적용 할 이동 및 회전을 계산하는 방법이 필요합니다. 이는 점 구름 등록과 비슷하지만 명목상/측정 된 점의 각 쌍에는 허용되는 거리에 대한 고유 한 허용 오차/한계가 있습니다. 그 한도는 일부 쌍이 더 높고 다른 한 쌍은 낮습니다. 저는 .NET에서 프로그래밍 중이며 Point Cloud Library (PCL), OpenCV, Excel 및 기본 행렬 작업을 가능한 접근 방식으로 살펴 보았습니다. 이 데이터측정점과 공칭 점을 일치시키기 위해 회전/평행 행렬을 계산하십시오.

X Nom Y Nom Z Nom X Meas Y Meas Z Meas Upper Tol Lower Tol 
118.81 2.24 -14.14 118.68 2.24 -14.14 1.00 -0.50 
118.72 1.71 -17.19 118.52 1.70 -17.16 1.00 -0.50 
115.36 1.53 -24.19 115.14 1.52 -23.98 0.50 -0.50 
108.73 1.20 -27.75 108.66 1.20 -27.41 0.20 -0.20 

의 샘플입니다 아래는 내가 가장 공칭 지점에 측정 된 점을 맞추기 위해 계산해야 행렬의 유형입니다. 측정 된 점 행렬을 공칭 점 행렬에 가장 잘 맞도록 곱할 것입니다.

Transformation 
0.999897324 -0.000587540 0.014317661 
0.000632725 0.999994834 -0.003151567 
-0.014315736 0.003160302 0.999892530 
-0.000990993 0.001672040 0.001672040 
+0

저는 실제로이 응용 프로그램을 사용할 응용 프로그램에 대해 매우 궁금합니다. – Deepfreeze

+0

@Deepfreeze 개인적으로 비전 기반 품질 관리에 이것을 사용합니다. 먼저 참조/정렬 점 (이 게시물에서 설명한 문제)과 일치하는 변환을 만듭니다. 그런 다음 부품이 사양을 준수하는지 확인하기 위해 피쳐 매칭을 수행합니다. –

답변

0

이것은 실제로 엄격한 등록 알고리즘의 일입니다.

은 허용 오차를 처리하기 위해 당신은 몇 가지 옵션이 있습니다

  • 간단한 옵션 : 결과가 내
  • 비트 열심히 옵션을 공차 경우 나중에 확인, 단단한 등록을 실행하십시오 CAD에 포인트를 오프셋 여기서 불균형 공차는 나머지는 이전 옵션과 동일합니다.
  • 가장 어려운 옵션 : 아마도 원하는 것은 두 번째 옵션과 같이 오프셋을 가지며 측정 된 위치와 공차를 기반으로 가중치 함수를 추가하십시오. 이 가중치 함수는 에너지 함수에 영향을 주어야하며, 작은 공차가있을 때 개별 함수 벡터가 더 커지고 큰 타레네스가있을 때는 작게됩니다. 비주얼 스튜디오 2010 환경에서

    • 사용 PCL C++ 버전 : 옵션 1 아마도 것입니다 결과이 가장 빠른 방법에 대한 구현에 대한 그래서 지금

    . PCL과 VS2010의 설치에 관한 많은 정보가 있으며 실행을 시작하십시오. 또한 PCL에는 좋은 ICP 등록 안내서가있어서 당신을 가야합니다. 파이썬에 대한

  • 사용 VTK는, 그것은 ICP 알고리즘이 있습니다
    Installing VTK for Python
    http://www.vtk.org/Wiki/VTK/Examples/Python/IterativeClosestPoints

당신이 정말로 옵션 3 당신이 할 수 원하는 경우 :

  • 는 PCL 라이브러리 소스의 가중치 함수를 확인 코드 및 컴파일
  • 완전한 ICP 알고리즘을 직접 만드십시오 .net :
    • http://www.math.tau.ac.il/~dcor/Graphics/adv-slides/ICP.ppt
    • 수학을 사용하십시오.수치 희소 행렬/벡터 대수학과 해법은 레프 - Marq 또는 가우스 - 뉴턴의 최적화를 실현
    • 자신 만의 최적화를 만들 수에서 : 비선형 최소 제곱 문제에 대한
      IMM 방법, K. 매드슨 2004
    • 당신의 생성 자신의 기능 벡터 및 (체중 기능) 자 코비안 행렬
    • 가 얻을 꽤 인내심을 가지고 모두가 :) 함께
    • 후 C# .NET에서 ICP 기다리고 있습니다에 StackOverflow에 다른 사람에 대한 결과를 작업하는 것입니다
관련 문제