티스토리 뷰

2021.4.6. 00:24

 

안녕하세요

프로그래밍을 배우는 샤트입니다.

 

SLAM 강의 4번째. 이동로봇 기구학의 자코비안 행렬


*이 포스팅은 목원대학교 양정연 교수님의 SLAM강의 유튜브 영상을 보고 제작되었음을 밝힙니다.

출처: 4강. 이동로봇 기구학의 자코비안 행렬

4강. 이동로봇 기구학의 자코비안 행렬

🎉강의 요약

1. 지난 시간에 배운 내용 복습: v,w를 양쪽 바퀴의 각속도를 이용해 구할 수 있었음
2. 최근에는 모바일 로봇 위치 제어에서 각도보다 속도 제어를 많이 사용
3. 또한 극좌표계보다 원점 좌표계를 많이 사용(이유: 레이저 스캐너 사용)
4. 모바일 로봇의 위치는 x,y,θ를 이용해 알 수 있으며, 이를 미분하면 위치의 변화량을 구할 수 있다. (로봇의 각도와 각 바퀴의 각속도, 축간거리(a), 바퀴 반지름(r) 알고 있을 때)
5. 자코비안 행렬을 통해 로봇 위치 변화량(dX)을 구할 수 있다. dX = Jdθ (자유도 측면에서 보면 3 = (3x2)2)
6. 또한 바퀴(dθ)는 2개라서 2자유도, 위치(dX)는 3자유도이기에 J(자코비안)은 3x2 행렬이다.
7. 자코비안 행렬의 모양이 3x2이기에 역행렬 구하기 어려워 dθ = J^(-1)dX를 구하기 어렵다 -> 로봇의 위치(dX)를 제어하고 싶을 때 얼마나 바퀴를 움직여야(dθ) 하는지 알기 어렵다.

 

v,w를 양쪽 바퀴의 각속도로 구할 수 있음을 지난 시간에 배움.
모바일 로봇에서는 각 바퀴의 각속도를 안다면 끝단의 속도와 각속도를 알 수 있다는 의미.
=> 각도보다 속도로 접근하는게 좋다. 수식을 간결하게 할 수 있다. 각도를 사용하면 구속조건을 사용해야해서 더 어렵다.

 


<Kinematic Position>

이제까지는 공간 상의 위치에 대해서는 모름.
속도 v와 좌표평면과의 각도는 Heading Angle
현재 로봇의 위치는 X이며 좌표위치 (x,y)와 각도 θ만큼 틀어져 있는 상태.
현재 좌표계는 절대 좌표계이므로 X_g로 표현 가능. (g는 global)

속도로 표현하려면 미분을 해서 표현. (이전에도 속도를 이용해 표현했으므로)
미분하게 되면 v,w와 cosθ, sinθ을 행렬로 표현 가능.

 


<Jacobian Matrix>

위 그림은 앞서 설명한 행렬을 계산한 결과이며 의미하는 바는 아래와 같다.
로봇의 각도와 각 바퀴의 각속도, 축간거리(a), 바퀴 반지름(r)를 알고 있다면 로봇의 움직임을 알 수 있다.

 

식을 다시 쓰면 각 바퀴의 각도 변화(Δθ_L, Δθ_R)를 알 때 공간 상의 x,y,θ의 변화를 알 수 있다.

 

 

<Jacobian for Cartesian Control>

자코비안 행렬을 통해 각 바퀴의 각도 변화를 알면 공간 상의 위치 변화를 알 수 있게 해준다.
아래 수식을 보면 X의 변화량은 자코비안*각도 변화량 비슷하다 -> 모바일 로봇의 구동 방식
즉, Heading Angle의 변화량을 조절하고 싶다면 각도 변화량과 자코비안을 곱해 알아내는 방식

우측 그림에서 우항에서 좌항을 구하는 것은 쉽지만 반대는 어렵다.


*자코비안은 역행렬이 있나?
- J의 shape = [3 x 2] 이다. 역행렬 구하기 어렵다. 이말은 로봇을 얼만큼 움직이고 싶은지 알 때(ΔX를 알 때) 얼만큼 바퀴의 각도를 움직여야 하는지(Δθ)는 알기 어렵다.

 

 

<Kinematic Position>

dX = Jdθ
위 식을 보면 알 수 있는 사실
1. 관절의 각도(바퀴의 각도)를 토대로 자코비안 행렬을 이용하면 위치 변화량을 구할 수 있다.
2. 바퀴는 2개라서 2자유도, 위치는 3자유도(x,y,θ)이므로 자코비안 행렬이 3x2 형태가 된다.

 

 

<Polar Coordinate>

극좌표계를 이용해 로봇의 움직임을 나타낼 수 있다.
ρ: 거리
α: 속도v와 비교해 얼마나 변화를 해야하는 지 각도
β: Heading Angle
-> 최근에는 잘 사용되지 않는다. 카메라가 하늘을 보고 있고 그 위에 원뿔 모양의 거울을 두면 360도로 영상이 입력되는데 이때는 잘 사용되었다. 계산이 많이 나오기 때문에 에러가 많이 나왔다.
로봇 입장에서는 극좌표계가 편하다. 최근에는 레이저 스캐너를 이용해 원점 좌표계를 움직이기 때문.

 

<Simulation Environment>

path-finder를 구현한 모습.


💡강의 후 느낀 점

모바일 로봇의 위치 제어에 대해 기본 내용을 학습할 수 있었다.
자코비안 행렬을 통해 로봇의 위치 변화를 구할 수 있음을 알았다.
하지만 자코비안 행렬의 모양(3x2)이기 때문에 반대의 경우(로봇의 위치 변화를 알 때 로봇의 움직임 구하는 방법)은 어려웠다.
이러한 어려움은 시뮬레이션은 비교적 간단하지만 현실에서는 굉장히 어렵겠다고 느꼈다.
또한 최근에는 극좌표계는 많이 사용하지 않고 원점 좌표계를 사용하는 사실과 그 이유는 레이저 스캐너를 사용하기 때문이라는 점도 알게 되었다.
오늘 강의는 꽤 짧아서 행복

 

 

 

피드백은 언제나 환영합니다.😊

틀린 부분 있다면 지적해주시고 도움이 되었다면 댓글 공감 눌러주세요.

LIST
댓글