Contents — find the section you need
Change parameters and verify
Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.
Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.
The experiment controls are in English.
좌표 변환을 시작하려면 입력 좌표계와 출력 좌표계를 지정해야 합니다. 방향을 반전시켜 행렬 연산을 수행하더라도 객체의 위치가 잘못될 수 있습니다.
아래첨자는 방향으로 해석
R_AB는 B 좌표를 A 좌표계로 매핑하고, t_AB는 A 좌표계에서 표현된 B의 원점입니다. 열 벡터를 사용합니다.
회전 행렬의 열은 A 좌표계에서 표현된 B의 축입니다. 이동 또한 A 좌표계에서 표현됩니다. 점은 이동을 받지만, 방향과 같은 자유 벡터는 회전만 합니다. 모든 세 요소 배열에 동일한 처리를 적용하면 이러한 의미가 혼동될 수 있습니다.
90도 회전된 센서
2D에서 B의 원점은 A 좌표계의 (1, 2)m에 위치하고, B의 x축은 A의 y축을 따라 정렬됩니다. 좌표계 B의 점 (2, 0) m은 다음과 같이 변환됩니다.
프레임이 (1,2) m로 이동하고 90도 회전했습니다. 변환된 점은 (1,4) m입니다.
Python 스크립트의 transforms 함수는 이 결과와 그 역변환을 확인합니다. 이 스크립트는 Python 3.12.3, NumPy 1.26.4 및 Matplotlib 3.6.3 환경에서 실행되었습니다. 그림과 결과를 다시 생성하려면 python3 engineering_labs.py를 실행하십시오.
다시 생성하려면 연결된 스크립트를 새 디렉터리에 engineering_labs.py로 저장하고 해당 디렉터리에서 실행하십시오. 출력 파일은 작업 디렉터리에 저장됩니다. 이 그림은 transforms.svg 파일에 저장되고, 검증된 좌표는 engineering-results.json 폴더 내의 transform 파일에 저장됩니다. 동일한 스크립트로 칼만 필터, ICP, 주파수 응답 및 에일리어싱 그림과 CSV 파일도 생성할 수 있습니다. 기존 출력 파일은 덮어쓰기되므로 작업 디렉터리를 비워 두십시오.
역행렬 계산은 단순히 변환을 음수로 바꾸는 것 이상의 과정이 필요합니다.
회전 행렬의 역행렬은 전치 행렬입니다.
(1, 4)에서 (1, 2)를 뺀 다음 -90° 회전시키면 (2, 0)을 얻을 수 있습니다. 역변환은 (-2, 1)이며, 단순히 (-1, -2)가 아닙니다. 방향 오류를 감지하기 위해 임의의 점을 왕복 변환합니다.
동차 변환 구성
3D에서 4×4 행렬은 회전과 이동을 결합합니다.
가장 오른쪽 변환이 먼저 적용됩니다. 지도 A, 물체 B, 센서 C를 사용하여 점이 센서 → 물체 → 지도 순으로 이동합니다. 행렬 곱셈은 일반적으로 순서를 바꿀 수 없습니다. 중간 변환 B의 순서를 일치시키면 변수 이름 지정에도 도움이 됩니다.
쿼터니언은 동일한 회전을 나타냅니다.
단위 축 u와 각도 θ에 대해 ROS 컴포넌트 순서(x, y, z, w)는 다음과 같습니다.
z축을 중심으로 90° 회전은 (0, 0, 0.7071, 0.7071)입니다. 일부 라이브러리는 (w, x, y, z)를 사용하므로 배열을 복사하기 전에 순서를 확인해야 합니다. q와 -q는 동일한 회전을 나타냅니다. 컴포넌트 빼기만으로는 회전 오류를 측정할 수 없습니다. 정규화도 확인해야 합니다.
REP-103은 ROS 오른손 좌표계 SI 규칙, 즉 본체는 x축을 앞으로/y축을 왼쪽으로/z축을 위로, 광학계는 z축을 앞으로/x축을 오른쪽으로/y축을 아래로 정의합니다. 카메라 지오메트리가 회전된 것처럼 보일 경우 먼저 규칙을 확인하십시오.
TF는 시간에 따라 달라집니다.
부모/자식 변환은 위의 T_AB와 일치하도록 부모에서 표현된 자식의 포즈로 읽습니다. 점 변환 API는 대상/소스 프레임 선택에 신중을 기해야 합니다. 고정된 장착 변환은 시간에 따라 변하는 차량 포즈와 다릅니다.
REP-105은 점프할 수 있는 전역적으로 보정된 맵과 연속적이지만 드리프트하는 odom을 구분합니다. 잘못된 타임스탬프의 수정된 행렬은 여전히 움직이는 센서 포인트의 위치를 잘못 지정합니다. 방향과 타이밍을 함께 확인하려면 센서 융합 디버깅을 계속 진행하십시오.
댓글
먼저 로그인해 주세요.
아직 데이터가 없습니다.