티스토리 뷰

2021.4.2. 13:02

 

안녕하세요

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

 

SLAM 강의 2번째. Mobile Robot, Thinking about System Dynamics


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

출처: 2강. Mobile Robot, Thinking about System Dynamics

바퀴 - 모바일 로봇에서는 기본적으로 사용되고 있음. 에너지 손실 적다. 적은 힘으로 많은 운동을 만들어 낼 수 있다.
(드론으로 대체될 수 있겠지만 에너지 효율이 떨어진다.)

 

2개 바퀴로 이루어진 로봇 제작 시 무게중심을 고려해 설계해야 한다. 안정성 고려해야함.
왼쪽 사진은 넘어지지 않지만 오른쪽 사진은 무게중심이 위에 있어 넘어질 수 있다.

 

 

<Spherical Robot>

바퀴가 2개 아닌 하나이다. (좌우측 바퀴가 하나로 합쳐진 상태)
밸런스 제어. 빠른 속도, 낮은 전력 소비


바퀴가 크면 클수록 모터의 토크가 일정하다면 많은 토크를 필요로 한다.
바퀴가 클 때 장점: 천천히 굴러갈 수 있다. 가속도가 낮게 나올 수 있다.
V = rw 이기 때문에 w가 작더라도 r이 크기 때문에(바퀴가 크다) 속도(V)가 크다.
-> 바퀴가 크다면 처음 가속은 느리지만 속도는 빨라질 수 있다.
-> 바퀴가 작다면 처음 가속은 빠르지만 속도는 느리다.

 

<Statics Equilibrium>

동역학 관련 공식
- 모멘트의 합 = r X F = 0
- V = w X r

 

 

<Dynamic Model of Two wheeled Robot>

- 가운데 그림은 관성좌표계, 오른쪽 그림은 외력
- 바퀴가 회전하면 좌표계가 이동하면 mass도 이동한다.


- 아래 수식은 모델링에서 나온 것.
 1) 첫 번째는 Fx에 관한 수식이며, m*(r+L)*a와 M*r*a 같다.
 2) 두 번째는 Fy에 관한 수식이며, 반력R은 바퀴와 mass의 무게와 같다.
 3) 세 번째는 토크 파트를 계산한 수식.
-> 토크를 가하면 각도의 변화를 알아보는 것.

 

 

<System Dynamics: Two wheeled Robot>

- 외력이 없다면(바퀴가 돌아가지 않는다면, 토크가 없다면) 가정.
- I*theta = T를 풀기위해서는 미분방정식으로 풀어야하기 때문에 제어 도메인으로 옮기기 위해 Laplace Transform을 해야한다.
- Laplace Transform을 한 번 할때마다 s가 붙기 때문에 theta_2_dot은 s^2이 된다.
- 1/Is^2이라는 수식=s^2은 가속도라고 생각. 댐핑, 마찰이 없다면 쭉 발산한다.

 

 

<Double Pole>
- Dampling이 없다.
- PD 컨트롤 error(e=xd-x)를 적용해서 F를 구한다.
- m*x_2dot + K_d*x_1dot + K_p*x = D_p*x_d에서 K_p는 스프링 역할, K_d는 댐핑이 되면서 에너지를 빨리 소비하게 된다.


<Stability of Torque Input>
- 입력 대비 출력이 어떻게 나오는 지 관찰이 필요.


<Stability of Disturbances>
- D가 입력으로 들어갔을 때 (L+r)에 비례.
- r, L이 커질수록 작은 D가 있어도 theta는 확 커진다. (발산)
-> 그래서 r,L을 줄이려고 한다.
- 만약 L<r이라면 (L+r)이 음수가 되면서 theta는 작아지게 된다. (예시: 오뚜기)
(왜 음수가 되는 지는 모르겠다.)

 

<Mobile Robot Kinematics>

바퀴 두 개의 움직임 각각이 어떻게 다른지에 따라 자동차가 어떻게 움직이나?
왼쪽 오른쪽 바퀴 두개의 속도가 다를때는 회전을 한다. 이때 방향과 각속도를 가진다.

 

<How to Drive a Mobile Robot?>

- PD, PID제어를 통해 해결해야함.
- Goal 위치는 동일하나 접근하는 각도는 다양하기 때문에 단순한 문제는 아니다.

 

<Control in Mobile Robots>

- 좌우가 동일하게 직진이면 자동차는 직진
- 좌는 직진, 우는 후진이면 (크기는 동일) 자동차는 우측으로 제자리 회전
- 좌우 모두 직진인데 좌가 더 크면 자동차는 우회전

*조이스틱으로 하는 것은 쉽다 -> 눈으로 보면서 피드백
*CPU로 제어한다면 -> 피드백이 없다.
- 실제로 똑바로 가는 자동차 없다. (기구학적으로 좌우 모두 100도라면 직진할 것이라는 믿음)
예시: 자동차 핸들을 놓고 엑셀을 밟으면 왼쪽/오른쪽 둘 중 하나로 회전한다.
왜? 접촉이 일어나기 때문. 마찰! 표면의 거칠기는 모두 다르기 때문. 마찰을 정확히 표현하기에는 매우 어렵다. 접촉이 두 군데서 일어나기 때문에 둘 다 다르기 때문.
해결: SLAM기법, 간단하게는 IMU센서 이용해 보정하는 기법 필요 (굉장히 고차원적 솔루션)

!!시스템 설계 시 제어 속도를 고려해야 한다!!
- 드론의 경우 10,000rpm으로 프로펠러가 회전하기 때문에 제어 속도가 중요.

 

<Problems of Tennibot>

- 테니스장을 랜덤하게 돌아다니다가 공과 비슷한 물체를 수거.
- 공이 보이면 좌우 균형을 맞추며 똑바로 갈 수 있다.
- 로봇 혼자만 움직이면 비뚤어지지만 목표지점이 있다면 똑바로 갈 수 있다.
- 외부에 있는 무언가를 관측해서 피드백 제어를 하면 똑바로 갈 수 있다.

 

 

💡강의 후 느낀 점

이번 강의에서는 모바일 로봇에서 중요한 기구학, 동역학 관점의 내용들이 많았다.

오랜만에 보는 v = w x r과 같은 수식부터 시작해 수식으로부터 인사이트를 얻는 내용까지.

실제 하드웨어가 움직이는 것이다 보니 기본적인 역학관계를 파악하고 있어야 한다.

후반부에는 모바일 로봇의 직진에 관한 이야기가 나왔는데.

마찰이라는 요소 때문에 좌측/우측 바퀴를 동일하게 제어한다고 해도 결코 똑바로 직진할 수 없다는 점을 알게 되었다.

그리고 가벼운 모바일 로봇의 경우 질량을 늘려줌으로써 해결할 수 있다고 한다.

또한 목표지점이 있다면 그곳을 향해 좌우 제어를 통해 직진을 할 수 있다는 점을 테니스봇을 통해 소개받았다.

교수님은 계속해서 '직진'제어에 관해 강조하셨다.

그만큼 어려우신 거지.

 

 

 

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

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

 

LIST
댓글