Learn(으)로 돌아가기

로봇 기술 에서 조정 프레임 과 변형: 명확 한 가이드

로봇 세계, 로봇 기반, 도구 및 카메라 프레임과 변환 예시로 좌표 프레임과 균일한 변환을 이해하는 것.

[← 배우기]

로봇 시스템 에서 팔 이 잘못된 방향으로 움직인다고 하는 거의 모든 버그 는 좌표 프레임 버그 입니다. 이 가이드 는 그것 을 피 하는 데 도움 이 됩니다.

왜 조정 프레임 이 중요 합니까?

각 센서, 각 로봇 링크, 그리고 환경의 모든 객체는 자체의 좌표 시스템을 가지고 있습니다. "앞으로", "오르고", "우측". 카메라가 카메라 프레임에서 위치 (0.1, -0.05, 0.3) 에 있는 객체를 감지할 때, 로봇은 이것을 직접적으로 행동할 수 없습니다.

프레임들 사이의 위치와 방향을 변환하는 것은 좌표 변환의 작업입니다. 이러한 오류를 잘못 만드는 것은 로봇 시스템에서 디버깅하기 어려운 유일한 가장 일반적인 오류입니다.

균일한 변형

동일 변환 T0은 4×4 매트릭스로서 동시 로테이션과 번역을 암호화한다.

T = [[R, t], [0, 0, 0, 1]]

여기서 T2은 3×3 회전 행렬 (오직선, det(R) =1) 이며 T3은 3×1 번역 벡터입니다.

표기 T4은 "프레임 A에서 표현된 프레임 B의 자세" 또는 이에 해당하는 "프레임 B의 좌표를 프레임 A의 좌표로 변환하는 변환"을 의미합니다.

회전 표현

회전량은 3DOF의 양이지만, 그것을 표현하는 방법은 여러 가지가 있습니다. 잘못된 것을 선택하면 버그가 발생합니다.

  • ** 회전 행렬 (3×3):** 가장 지리적으로 정확한 표현. 정형성 제약 (9 값 3 DOF) 은 그것을 과다 매개 변수를 만듭니다. 많은 변환을 작곡할 때 사용하십시오.
  • 유러 각 (roll, pitch, yaw): 직관적: "z축을 45°로 회전한다". 그러나 특정 구성에서 gimbal lock 로 고통받습니다. 두 축이 정렬되어 자유의 정도를 잃습니다. ** 하드웨어에서 지속적으로 실행되는 코드에서 유러 각을 사용하지 마십시오. ** 인간으로 읽을 수 있는 로그링을 위해만 사용하십시오.
  • ** 쿼터니온 (qx, qy, qz, qw):** 4 값 (단체 제한은 3 DOF) 이다. 기말 잠금 없다. 컴팩트. 원활하게 인터폴레이션 (SLERP). 로봇 소프트웨어 표준. ** 코드를에서 이것을 사용하십시오.** 이중 표면을 참고하십시오. q와 -q는 같은 회전을 나타냅니다.
  • 6D 회전 (R의 두 열): 신경 네트워크 출력 연속성 없이 연속성 표현. 그래미스미드트를 통해 전체 R를 재구성. 현대 로봇 학습 정책에서 사용됩니다.

일반적인 로봇 프레임

전형적인 조작 설정은 적어도 네 개의 좌표 프레임을 포함합니다.

  • 세계 프레임: 고정된 글로벌 참조. 일반적으로 로봇의 설치 지점이나 테이블에 있는 캘리브레이션 목표에서 정의된다. 다른 모든 프레임은 궁극적으로 이에 대한 표현된다.
  • ** 로봇 기저 프레임:** 로봇의 마운팅 플랜지 중부에 위치한다. 팔의 앞 기역학은 이 프레임에 비해서 계산된다.
  • ** 최종 효과자 / 도구 프레임:** 기원은 지갑 끝 (tool center point) 또는 TCP) 이다. 이것은 당신이 카르테스 목표물을 지정할 때 명령입니다.
  • ** 카메라 프레임:** 카메라의 광학 중심에서 기원. z 축은 카메라의 광학 축을 따라 점합니다. 이 프레임에서 객체 탐지가 처음에는 표현됩니다.

체인 변환

카메라 프레임에서 감지된 객체 포즈를 세계 프레임으로 변환하려면, 변환을 연쇄하십시오:

T_world_obj = T_world_robot × T_robot_ee × T_ee_camera × T_camera_obj

오른쪽에서 왼쪽으로 이 문서를 읽어보세요: 먼저 객체를 카메라 프레임으로 변환하세요 (인증 이미 거기에 있습니다), 그 다음 최종 효과자 프레임으로, 로봇 기본 프레임으로, 그리고 세계 프레임으로.

각 변환은 4×4 매트릭스이며, 체인은 매트릭스 곱하기일 뿐이다. ROS2에서는 T9 라이브러리가 이러한 변환들을 자동으로 관리하고, 하나의 호출으로 프레임에서 프레임으로 변환을 검색할 수 있게 한다.

손-눈 기량

위의 변환 연쇄를 사용하려면 로봇의 최종 효과에 대한 카메라의 자세가 T10이 필요합니다. 이것은 ** 손-눈 캘리브레이션**에 의해 결정됩니다.

프로세스: 로봇을 여러 가지 서로 다른 합동 구성 (최소한 1520) 으로 이동하여 현장에서 캘리브레이션 목표 (ArUco 마커 또는 체커보드) 가 보이도록 한다. 각 구성에서 로봇의 FK 계산 최종 효과자 자세와 카메라의 목표 관측을 기록한다. 이것은 방정식 체계 AX = XB를 제공합니다. X는 알려지지 않은 T11이다. 표준 해제자 (OpenCV의 T12) 는 이 문제를 초 내에 해결합니다.

** 카메라가 물리적으로 이동되거나 충돌하거나 새로운 카메라가 설치되거나 체계적인 포착 오프셋 오류가 발생하는 경우 재계급합니다.

실용적인 파이썬 도구

  • scipy.spatial.transform.rotation: 회전 매트릭스, 쿼터니온, 유일러 각, 축-각 사이의 변환. 오프라인 데이터 처리의 이동.
  • ROS2 tf2 (Python rclpy): 실시간 트랜스포스트 트리 관리. 트랜스포스트를 게시하기 위해 T13, 검색하기 위해 T14을 사용하십시오.
  • pytransform3d: 모든 SE(3) 작업에 대한 순수한 파이썬 라이브러리
  • numpy: 4×4 동질 변환의 매트릭스 곱셈은 T15입니다.

로봇 자원 및 교과서 보다 자세한 내용은 [RCSV 자원 섹션](T17 참조).