본문 바로가기

Theory/ControlTheory

밸런싱 로봇의 동역학 유도


2010년 1월 24일을 기준으로 사소한 오타와 잘못된 식을 다시 정리했습니다. 혹시 이전에 이 글을 읽으셨던 분들이라면 다시 확인하시길 바랍니다.

이번에 크리스마스때 태국에서 개최되는 학회를 다녀왔는데요. 비행시간이 6시간인데 갈때 너무 지루하더군요. 잠도 오질 않고... 그래서 이전에 밸런싱로봇([공학기초/Robot] - Balancing Robot 밸런싱 로봇) 동역학이 엉망으로 정리된듯해서 그걸 다시 정리해서 올려야겠다고 생각하고 정리했습니다. 비행기 안에서 주는거 다 받아 먹으면서 정리했더니 대략 한 3시간 정도 걸렸네요. 뭐 그래도 지루하지 않은 비행이었습니다^^.


이번엔 저도 이걸 다시 만들어야겠다는 생각을 해서 제가 만들어 가는 과정을 당연히 정리하는 과정에서 예상 기구부를 생각하고 위와 같이 개념도를 만들었습니다. 일단 기구부의 자세한 설명은 나중에 다시 이야기 하고, 로봇은 전체적으로 하단과 상단에 질랴이 모여있도록 만들것입니다. 동역학을 유도해보면 그게 식도 간편하고 편하거든요^^ 하단의 질량체의 위치벡터와 상단의 위치벡터는 각각


입니다. 여기서 R은 하단 질량체를 원형이라고 가정했을 때 반지름이고, l은 하단과 상단 질량체간의 거리입니다. 또한, theta는 전체 밸런싱로봇의 기울어진 각도, y는 하단 질량체의 이동거리입니다. 질량체의 회전각속도와 y의 관계는


이므로


라고 생각할 것입니다. 위의 위치벡터에서 속도벡터는


입니다. 라그랑지 방법을 사용하기 위해 각 운동에너지와 위치에너지를 정의하면


입니다. 여기서 라그랑지




입니다. 각 상태, y, theta에 대해서 일반적 외부힘을 고려한 라그랑지 방정식


을 유도하면


입니다. 여기서 로봇을 이동시키는 힘을 고려하여 외력을 잡으면


입니다. 여기서 f_i는 마찰계수입니다. 상태


에 대해


의 형태로 위 라그랑지방정식을 다시 표현하면


입니다. 이제




를 이용해서 흔히 사용하는 동역학을 구해보면


입니다. 이렇게 동역학이 완성이 되었네요. 이 동역학대로 로봇을 만들려고 하는데요. 기구부는 뭐 언제 만들어질진 저도 잘 모르겠네요^^ 근데 꼭 필요한 것은 theta와 y의 상태를 꼭 알아야한다는 것을 알 수 있네요. 아참 MATLAB으로 정리한 것을 일반적 수식 전개법을 사용하지 않아 각 문자의 배치가 영엉망이네요... 그래도 식이 간단하니 알아보실 수는 있겠죠?^^


반응형