Main Content

se2

SE(2) 동차 변환

R2023b 이후

    설명

    se2 객체는 SE(2) 변환을 평행 이동과 회전으로 구성된 2차원 동차 변환 행렬로 나타냅니다.

    자세한 내용은 2차원 동차 변환 행렬 섹션을 참조하십시오.

    이 객체는 숫자형 행렬처럼 작용하므로 곱셈과 나눗셈을 사용해 자세를 구성할 수 있습니다.

    생성

    설명

    회전 행렬, 평행 이동 벡터, 변환 행렬

    transformation = se2는 평행 이동 없이 항등 회전을 나타내는 SE(2) 변환을 만듭니다.

    transformation=[100010001]

    transformation = se2(rotation)은 평행 이동 없이 정규 직교 회전 rotation으로 정의되는 순수 회전을 나타내는 SE(2) 변환을 만듭니다. 회전 행렬은 transformation 행렬의 좌상단에 있는 요소들에 의해 표현됩니다.

    rotation=[r11r12r21r22]

    transformation=[r11r120r21r220001]

    transformation = se2(rotation,translation)은 정규 직교 회전 rotation과 평행 이동 translation으로 정의되는 회전을 나타내는 SE(2) 변환을 만듭니다. 이 함수는 회전 행렬을 먼저 적용한 다음, 평행 이동 벡터를 적용하여 변환을 만듭니다.

    rotation=[r11r12r21r22], translation=[t1t2]

    transformation=[r11r12t1r21r22t2001]=[10t101t2001]·[r11r120r21r220001]

    transformation = se2(transformation)은 동차 변환 transformation으로 정의되는 평행 이동과 회전을 나타내는 SE(2) 변환을 만듭니다.

    기타 2차원 회전과 변환 표현

    transformation = se2(angle,"theta")는 z축 중심의 회전(단위: 라디안)으로부터 SE(2) 변환 transformation을 만듭니다. 이 변환은 평행 이동이 없음을 의미합니다.

    예제

    transformation = se2(angle,"theta",translation)은 z축 중심의 회전으로부터 평행 이동 translation이 있는 SE(2) 변환을 만듭니다(단위: 라디안).

    transformation = se2(translation,"trvec")는 평행 이동 벡터 translation으로부터 SE(2) 변환을 만듭니다.

    transformation = se2(pose,"xytheta")는 간소한 표현의 2차원 자세 pose로부터 SE(2) 변환을 만듭니다.

    입력 인수

    모두 확장

    정규 직교 회전으로, 2×2 행렬, 2×2×N 배열, 스칼라 객체 또는 so2 객체로 구성된 요소를 N개 가진 배열로 지정됩니다. 여기서 N은 총 회전 개수입니다.

    rotation에 2개 이상의 회전이 포함되고 생성 시점에 translation도 지정한다면, translation의 평행 이동 개수는 1이거나 rotation의 회전 개수와 같아야 합니다. 그 결과로 생성된 변환 객체의 개수는 translation의 값 또는 rotation 인수 중 더 큰 값입니다.

    rotation에 하나의 회전이 포함되고 translation을 N×2 행렬로 지정한다면, 그 결과로 생성된 변환은 rotation에 의해 지정된 동일한 회전과 translation의 대응하는 평행 이동 벡터를 포함합니다. 그 결과로 생성된 변환 객체의 개수는 translation의 평행 이동 개수와 같습니다.

    예: eye(2)

    데이터형: single | double

    평행 이동으로, N×2 행렬로 지정됩니다. 여기서 N은 총 평행 이동 개수이며, 각 평행 이동의 형식은 [x y]입니다.

    translation에 2개 이상의 평행 이동이 포함되는 경우 rotation의 회전 개수는 1이거나 translation의 평행 이동 개수와 같아야 합니다. 그 결과로 생성된 변환 객체의 개수는 translation의 값 또는 rotation 인수 중 더 큰 값입니다.

    평행 이동을 2개 이상 지정하고 회전은 하나만 지정하는 경우 그 결과로 생성된 변환은 rotation에서 지정된 동일한 회전과 translation의 대응하는 평행 이동을 포함합니다. 그 결과로 생성된 se2 객체의 개수는 translation의 값과 같습니다.

    예: [1 4]

    데이터형: single | double

    동차 변환으로, 3×3 행렬, 3×3-N 배열, 스칼라 se3 객체 또는 se2 객체 요소를 N개 가진 배열로 지정됩니다. 여기서 N은 지정된 총 변환 개수입니다.

    transformation이 배열인 경우 그 결과로 생성된 se2 객체의 개수는 N과 같습니다.

    예: eye(3)

    데이터형: single | double

    z축 회전 각도로, N×M 행렬로 지정됩니다. 행렬의 각 요소는 z축을 중심으로 하는 각도(단위: 라디안)입니다. se2 객체는 각 각도에 대해 se2 객체를 만듭니다.

    angle이 N×M 행렬인 경우 그 결과로 생성된 se2 객체의 개수는 N과 같습니다.

    회전 각도는 축을 따라 원점 방향을 바라볼 때 반시계 방향의 양수입니다.

    데이터형: single | double

    간소한 표현의 3차원 자세로, N×3 행렬로 지정됩니다. 여기서 N은 간소한 표현의 자세의 총 개수입니다. 각 행이 자세이며, xy 위치와 z축 중심의 회전으로 구성된 [x y theta] 형식입니다. x, y는 xy 자세이고 theta는 z축 중심의 회전입니다.

    pose가 N×3 행렬인 경우 그 결과로 생성된 se2 객체의 개수는 N과 같습니다.

    데이터형: single | double

    객체 함수

    모두 확장

    mtimes, *변환 또는 회전의 곱셈
    mrdivide, /변환 또는 회전의 오른쪽 나눗셈
    rdivide, ./변환 또는 회전의 요소별 오른쪽 나눗셈
    times, .*변환 또는 회전의 요소별 곱셈
    interp변환 사이의 보간
    dist두 변환 간의 거리 계산
    normalize변환 또는 회전 행렬의 정규화
    transform점에 강체 변환 적용
    rotm회전 행렬 추출
    trvec평행 이동 벡터 추출
    tform동차 변환 추출
    theta변환 또는 회전을 2차원 회전각으로 변환
    xytheta변환 또는 회전을 간소한 2차원 자세 표현으로 변환
    so2SO(2) 회전

    예제

    모두 축소

    pi/4의 각도 회전과 [6 4]xyz 평행 이동을 정의합니다.

    angle = pi/6;
    trvec = [2 1];

    각도와 평행 이동을 사용하여 SE(2) 변환을 만듭니다.

    TF = se2(angle,"theta",trvec)
    TF = se2
        0.8660   -0.5000    2.0000
        0.5000    0.8660    1.0000
             0         0    1.0000
    
    

    알고리즘

    모두 확장

    확장 기능

    C/C++ 코드 생성
    MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

    버전 내역

    R2023b에 개발됨

    참고 항목

    객체