이글은 4wheel skid steering mobile robot의 물리적 모델링에 관한 포스트이다.
4wheel skid steering mobile robot(SSMR)은 robust한 환경에서도 잘 견딜 수 있는 성질덕분에 우주 탐사 등과 같은 환경에서 쓰이는 형태의 로봇이다. 그러나 제어에 있어서는 challenging task이다.
Robot Coordinate and World Coordinate
로봇의 운동을 규정하기 위해서는 좌표계를 생각해볼 필요가 있다. 좌표계는 robot coordinate와 world coordinate로 나뉘게 된다.
SSMR에서는 z축 방향이나 roll, pitch의 운동은 생각할 필요가 없다. 따라서 로봇의 속도에 대해 robot coordinate에서는 linear velocity는 이고, angular velocity는 로 쓸 수 있다.
world coordinate상에서 상태는 X, Y 위치와 X축과의 각도 $\theta$로 표현할 수 있다. 따라서 world coordinate상에서 로봇의 상태는 로 표현하고 속도는 이다.
world coordinate와 robot coordinate간의 속도변환은 회전변환행렬을 사용하면 아래와 같이 나타낼 수 있다.
로봇 좌표계에서 yaw축에 대한 회전은 world 좌표계에서 yaw축의 회전과 동일하다. 따라서 로 표현할 수 있다.
따라서 로봇좌표계와 world 좌표계의 속도에 대한 완전한 변환은 다음과 같이 쓸 수 있다.
바퀴의 운동 modeling
i번째 바퀴의 회전 속도를 라 하자.
여기서는 3가지 가정을 한다.
- 여기서는 바퀴의 두께는 무시한다.
- 지면과 한점 에서 만난다.
- longitudinal 방향으로의 미끄러짐은 없다
로봇이 정면 방향으로 움직이지 않는 이상 바퀴의 lateral 방향 속도는 0이 아니다. 바퀴는 longitudinal 방향으로는 완전히 구르고, lateral 방향으로는 미끄러지게 된다.
longitudinal 방향으로의 속도는 다음과 같이 바퀴의 반지름과 바퀴의 각속도로 표현할 수 있다.
4바퀴의 운동이 합쳐져 만들어지는 로봇의 움직임
로봇 회전의 중심(ICR)으로부터 각 i 바퀴와 로봇의 무게중심 COM으로 가는 거리벡터를 다음과 같이 쓸 수 있다.
ICR에 대한 i 번째 바퀴의 회전 속도와 COM의 회전속도는 같으므로 다음과 같이 쓸 수 있다. (스칼라 개념)
더 자세한 형태는 벡터로 다음과 같이 나타낼 수 있다.
위와는 반대로 로봇의 무게중심(로봇 좌표계)을 기준으로 ICR을 나타내면 다음과 같다.
위의 두 식을 이용해서 다음과 같이 나타낼 수 있다.
회전중심을 기준으로하는 바퀴거리벡터와 무게중심거리벡터는 a, b, c를 이용해 다음과 같이 나타낼 수 있다. (a, b, c는 로봇 좌표계를 기준으로 +의 방향의 벡터이다.)
식과 위의 식을 결합하면 다음과 같은 식을 얻을 수 있다. (로봇 좌표계에서 x방향의 거리벡터는 (1, 2), (3, 4)바퀴가 같고, y방향의 거리벡터는 (1, 4), (2, 3)바퀴가 같기 때문이다.)
위의 식을 모두 종합하면 바퀴의 속도는 로봇의 속도의 관계는 다음 식으로 정리된다.
그리고 이므로 모든 바퀴의 반지름이 같다는 가정하에 왼쪽바퀴와 오른쪽바퀴의 각속도를 묶어서 전체 바퀴의 각속도를 다음과 같이 쓸 수 있다.
위의 두 식을 묶으면 로봇 전체(COM)의 속도에 대한 식은 각 바퀴의 각속도로 다음과 같이 표현 가능하다.
(Caracciolo L., De Luca A. and Iannitti S. (1999): Trajectory tracking control of a four-wheel differentially driven mobile robot) 논문에 따르면 SSMR 로봇에서는 다음과 같은 제약이 들어간다. (왜 이런 제약이 필요한지는 이해가 되지는 않음 )
로봇 좌표계와 world 좌표계의 변환을 통해 를 얻을 수 있고, 위의 식과의 결합을 통해 제약을 다시 다음과 같이 표현할 수 있다.
그리고 world 좌표계에서의 속도를 각 바퀴와 COM의 운동에 대해 변환하면 다음과 같이 나타낼 수 있다.
where
and
주목해야할점은 로봇의 운동은 2차원() 으로 표현되고, world 좌표계에서의 움직임은 3차원()으로 표현된다는 것이다. 또 흥미로운점은 SSMR에 대해 물리적으로 기술한 식들이 two-wheel mobile robot과 상당히 유사하다는 점이다.
바퀴에서의 마찰력을 고려한 modeling
바퀴에서의 마찰력이 있는 경우를 고려해보자. 마찰력은 longitudinal 방향에서의 그리고 lateral 방향에서의 가 있다. 그리고 바퀴에서 앞으로 가려는 힘은 토크와 바퀴의 반지름으로 처럼 표현할 수 있다.
각 바퀴에 가해지는 수직항력은 COM과 바퀴사이의 거리 a, b를 통해 다음과 같이 나타낼 수 있다.
(1, 4) 바퀴와 COM사이 거리가 같고, (2, 3) 바퀴와 COM사이 거리가 같다.
마찰력을 modeling하는 것은 상당히 복잡하다. 여기서는 간단하게 Coulumb 마찰과 Viscous 마찰로만 표현을 한다.
여기서 는 linear 속도, N은 수직항력, 은 coulomb 마찰계수, 은 viscous 마찰계수이다. lateral 방향에서 미끄러짐이 일어날 때 는 매우 작다. 따라서 근사가 가능하다. 따라서 viscous 마찰은 무시가 가능하다.
항 때문에 가 0일 때는 마찰력이 smooth하지 않다.(미분불가능하기 때문) 따라서 아래와 같은 근사식을 이용한다.
에서는 다음과 같은 근사가 가능하다.
lateral 방향, longitudinal 방향의 마찰력을 다음과 같이 나타낼 수 있다.
에너지 보존을 이용한 운동 modeling
로봇의 potential 에너지는 0으로 가정한다. ( ) 그러면 Lagrange-Euler 식(Lagrange-Euler 참고), 그리고 제약조건을 붙이기 위해 Lagrange multiplier을 이용한다. (Lagrange multiplier 참고)Lagrangian L은 다음과 같이 나타낼 수 있다.
바퀴의 회전 에너지를 무시한다고 가정하고, 로봇의 운동에너지는 로봇 좌표계에서 다음과 같다.
는 로봇 COM의 회전모멘트(moi)이다.이기 때문에 로봇의 운동에너지는 world 좌표계에서는 다음과 같다.
운동에너지의 시간에 대한 미분항은 [] 각 성분에 대해 다음과 같다.
where
world 좌표계에서의 X, Y 성분에 대한 마찰은 4개의 바퀴의 마찰력의 합으로 다음과 같이 쓸 수 있다.
그리고 COM에 대한 회전 저항력 은 다음과 같다.
따라서 전체적인 resistive forces는 [] 에 따라 다음과 같다.
전체 로봇에 힘은 input으로 넣어주는 각 바퀴의 힘의 합이다. world 좌표계에서 로봇에 input으로 넣어주는 힘은 다음과 같다.
그리고 COM에 작용하는 input으로 들어가는 torque는 다음과 같다.
따라서 전체 로봇에 input으로 들어가는 힘은 [] 에 대해 다음과 같다.
바퀴의 왼쪽 바퀴 쌍의 토크, 오른쪽 바퀴 쌍의 토크는 다음 식과 같다.
위의 두 식을 결합하여 로봇의 총 input으로 들어가는 힘은 다음과 같이 정리할 수 있다.
where
실제 로봇의 운동에너지 + 마찰력으로 손실되는 에너지 = input으로 들어가는 에너지로 다음과 같이 표현할 수 있다.
그리고 앞에서 기술한대로 SSMR에는 제약이 들어가 식은 다시 아래와 같이 정리된다.(Lagrange multiplier를 참고하세요)
정리를 위해 위의 식에 양변에 를 곱해주면 다음과 같다.
또한 위에서 구한 식을 미분하면 다음과 같다.
위의 식을 통해 전체적으로 정리하면 다음과 같다.
where
각 바퀴에 input으로 넣어주어야하는 torque를 구하기 위한 식을 풀기 위해서 알아야하는 변수들은 아래에 정리해두었다.
, , , , , , , , , , , , , , , ,