introduction
로봇의 움직임은 크게 kinematic level과 dynamic level로 구분된다.
움직이는 Mobile Robot의 Position과 Motion을 추정할 때 Kinematics를 사용한다.
-> Kinematics는 로봇의 행동을 기계적으로 서술하고, 로봇의 설계와 조종하는 법을 결정한다.
-> Kinematics는 기계 시스템이 어떻게 작동하는지에 대한 가장 기본적인 연구이다.
mobile robotics에서 우리는 [작업에 적합한 모바일 로봇을 설계하고] [모바일 로봇 하드웨어에 대한 제어 소프트웨어를 만드는 방법을 이해하기 위해] 로봇의 기계적 행동을 이해할 필요가 있다.
* 특히 Wheel은 로봇의 motion에 큰 영향을 끼친다.
-> mobile robot의 위치를 순간적으로 측정할 수 있는 직접적인 방법은 없다.
-> 대신, 시간이 지남에 따라 로봇의 움직임을 통합해야 한다.
-> robot motion 과정을 이해하기 위해선 wheel에 집중해야 한다.
-> 각 개별 휠은 로봇의 모션에 기여하고 동시에 로봇 모션에 제약을 가한다.
<순서>
global reference frame(전역 좌표계), local reference frame(로컬 좌표계)에서의 각각 로봇 동작 표기법
forward kinematic models(전방 운동학적 모델) : 로봇 전체가 (기하학적이고 개별적인 wheel 동작의) 함수로 움직임 설명
kinematic constraints of individual wheels : 개별 휠의 제약 조건 및 전체 로봇의 운동학적 제약 조건 표현
Robot Reference Frame
각 휠의 힘과 구속조건은 명확하고, 일관된 기준 프레임에 대해 표현되어야 한다.
즉, global reference frame과 local reference frame 간의 명확한 매핑이 필요하다.
두 가지 Reference frame(좌표계)이 존재한다.
1. The global reference frame
2. The robot local reference frame
-> the global reference frame에서는 {XI, YI}, 즉 2가지 차원이 존재한다.
-> the robot local reference frame에서는 평면상에서 3가지 차원이 존재한다. {XR, YR, θ}
평면에서 로봇의 위치를 지정하기 위해, 위 그림과 같이 frame 사이의 관계를 설정한다.
θ는 [the robot local reference frame]과 [the global reference frame] 사이의 각도를 의미한다. 위치 기준점이 되는 P점은 (x,y)로 나타내고, 이를 행렬로 나타내면 아래와 같다.
Orthogonal Rotation Matrix
로봇 모션을 component motions(구성 요소 모션)의 관점에서 설명하려면
[global reference frame]의 축을 따른 모션을 [local reference frame]의 축을 따른 모션에 매핑해야 한다.
-> 매핑은 로봇의 current pose(현재 자세)의 함수이다.
-> 이 매핑은 직교 회전 행렬을 사용하여 수행된다.
직교회전행렬을 사용하여 로봇의 위치를 추정해보자.
로봇의 속도가 변하면 직교회전행렬과 곱으로 나타낼 수 있다.
-> 회전행렬은 n차원 공간 상 존재하는 물체를 회전시킬 때 사용하는 행렬이다.
아래의 식에서 R(θ) 에 곱해진 전치행렬은 [로봇의 속도 값]을 나타낸다.
Forward kinematic models
로봇 휠의 속도 값을 주면, global reference frame에서의 로봇의 속도를 알 수 있다.
-> Forward kinematics provides an estimate of the robot's position given its geometry and speed of its wheels.
(1) global 좌표계에서의 속도 값
차동 드라이버 로봇은 두 개의 휠을 가지고 있고, 각각 지름이 있다.
두 구동 휠 사이에 중심이 되는 점 P가 주어지면, 각 휠과 P 사이의 거리는 l이 된다.
로봇의 바퀴는 각각 ϕ1', ϕ2' 의 각속도(회전속도)를 갖는다.
-> l, r, θ, 각 바퀴의 회전속도가 주어졌을 때 forward kinematic model은 로봇의 전체 속도를 예측할 수 있다.
(global reference frame에서 예측 가능)
-> 비선형 함수의 선형화가 필요함
(2) global 좌표계에서의 속도 값
(로봇의 속도로부터) global reference frame에서의 속도 값을 구하려면 다음과 같이 수식을 변형할 수 있다.
(3) 좌표계에서, x방향으로의 선속도
우선적으로, 로컬 좌표계에서 두 휠 각각의 영향을 계산해보자.
-> 로봇이 +XR 방향으로 일직선에 맞춰 간다고 가정해보자.
-> [각 휠의 회전 속도]가 [+XR 방향의 Pin에서 변환 속도에 미치는 영향]을 고려해보자.
-> 만약 한 바퀴만 회전하고, 다른 바퀴는 아무런 기여를 하지 않고(정지) 있다면,
-> P는 두 바퀴 사이의 중간에 있기 때문에
-> 그것은 절반의 속도로 (순간적으로) 움직일 것이다. 그래서 식들이 아래와 같다.
(r값에 따라 바퀴의 회전반경이 달라진다.)
** 로봇의 구조상 +YR 방향으로는 움직일 수가 없다.
(4) 좌표계에서, 회전속도
-> 다시 한 번 말하자면, 각 휠의 기여도는 독립적으로 계산할 수 있고, add만 가능하다.
오른쪽 휠(wheel1)을 고려하자.
-> 이 휠의 전방 회전은 P지점에서 반시계 방향으로 회전한다.
-> 휠1이 단독으로 회전하는 경우, 로봇은 휠2(왼쪽 휠) 주위를 회전하게 된다. [윗그림 참고]
따라서 로봇이 움직인 각도는 다음과 같이 구해진다.
-> 왼쪽 휠과 오른쪽 휠의 움직임에 따라 방향이 결정된다. (w1이 오른쪽, w2가 왼쪽)
-> [바퀴가 반지름 2l의 원호를 따라 순간적으로 움직이기 때문에] P에서의 회전속도는 아래와 같이 계산 가능하다.
-> 시계 방향 회전이 발생하는 예외만 고려하면, 왼쪽 휠 역시 동일한 계산이 적용된다.
이러한 개별 공식을 결합하면,
differential-drive example robot에 대한 운동학적 모델이 생성된다.
-> 역행렬 계산은 쉽지 않지만, 단순이 [세타R]에서 [세타I]로 변환하는 것이기에 이 계산은 쉽다.
(ex) 예제 풀기
출처 :
https://www.cs.cmu.edu/~rasc/Download/AMRobots3.pdf
참고 :
rotation matrix 관련 정보
회전 행렬(rotation matrix)
Picture of 회전행렬 by wikipedia.org 좌표축을 기준으로 회전변환을 하려면 (1) 기준이 되는 좌표를 구하자. (2) 얼마나 회전을 할 지 정하자. (3) 시계 방향, 반시계 방향과 같은 회전 방향을 정하자. 예
ufubbd.tistory.com
'LAB > Kinematics' 카테고리의 다른 글
Kinematics(3) - 개별 휠의 kinematic constraints(제약) (0) | 2023.02.16 |
---|---|
Kinematics(1) - Kinematics Equations (0) | 2023.02.07 |