밸런싱 로봇 (Balancing Robot) 만들기 연재
1. 동역학 구축 (1) [바로가기]
2. 동역학 구축 (2) [바로가기]
3. 동역학 구축 (3) [바로가기]
4. 기구부 구성 및 모터 파라미터 측정 [바로가기]
5. 제어기 설계 및 MATLAB을 이용한 시뮬레이션 [바로가기]
6. 밸런싱 로봇 만들기 [바로가기]



요즘 너무 머리가 복잡하고 일손이 잡히질 않습니다. 왜냐구요? 먹고살 궁리때문이지요. 그러서 자꾸 살만 찝니다. 응? 먹고살 궁리를 하는데 왜 살찌냐구요? 음... 먹고살 궁리를 하다보니 스트레스 받아서 야밤까지 안자고 있다가 새벽에 술먹거든요... 응? 먹고살 궁리하는데 술먹을 돈은 어디 있냐구요??? 이제 다 떨어져 갑니다. ㅋㅋㅋ

음 본론으로 들어와서 밸런싱로봇을 만드는 걸 연재하다가 갑자기 레고 마인드스톰으로 넘어와버렸네요. 뭐 저의 나쁜 머리탓입니다만...ㅠㅠ 직접 공부하는 것이나 요즘 준비하는 논문과 관련없이 별도의 연재를 다루는 것이 힘들다는 것을 뼈저리게 느끼는 중입니다. 뭐 그래도 하기로한 연재니 계속 하는 것이고, 또 이것도 저의 공부가 될테니 말이죠.

하여간, 지난번에 제가 레고 마인드 스톰의 기술문서의 내용중 동역학 유도부분이 이상하게 제가 한 거랑 안맞다 [관련글] 라는 이야기를 했었는데요. 찾았습니다. 원인은 저한테 있더군요. ㅠㅠ


바로 위의 항이었지요... ㅎㅎ. 희한하게 손으로 푸는 경우 자신이 틀린곳을 찾기가 좀 어렵죠. (응? 저만 그런가요???) 하여간 





그래서 MATLAB의 힘을 빌렸습니다. 예전에 크레인 제어기 설계를 위해서 동역학 유도할때, 하도 수식이 복잡해서 MATLAB으로 유도하기 위해 짜놓았던 코드가 있거든요. 그걸 조금 뜯어 고쳐서 밸런싱로봇에 적용했습니다.


저게 그 결과입니다. (언제 그 MATLAB으로 동역학 유도라는 주제로 연재를 하고싶어지는 군요.. ㅋㅋ) 하여간, 그 결과를 한글에서 정리했습니다.


저 부분은 Lagrangian인데요. 음... 마지막항에서 제가 손으로 유도한것이 잘 못 되었음을 확인했습니다. 그리고


theta의 라그랑지 방정식은 제일 위의 레고 문서와 제가 손으로 유도한 것과 마지막으로 MATLAB으로 유도한 것이 동일합니다.


음 phi의 라그랑지 방정식도 셋 다 동일하구요.


ㅎㅎ 그 문제의 psi의 라그랑지 방정식은 레고 문서와 MATLAB의 결과가 같고, 제가 손으로 한 것만 다르더군요. 큭...>.< 뭐가 잘못되었는지도 확인했습니다.

결국, 제가 잘 못된 것이더군요... 쩝.. 뭐 그래서든 이래서든 하여간 


요게 맞다.. 라는 것을 알게 되었습니다. 이제 위 식 각 우변의 Generalized Force라고 흔히 부르는 것을 정의해 줘야겠는데요.


theta를 움직이는 힘은 두 바퀴의 합력이 될 것이고, psi를 움직이는 힘은 두 바퀴를 움직이는 힘의 반력이 있을 것입니다. phi를 움직이는 힘은 비례식이 적용된 상태에서 두 바퀴가 내는 힘의 차이가 될 것입니다. 비례식이 적용되는 부분에 대한 설명은 이전에 레고 문서를 처음 소개할때 했었구요.[관련글] 위 힘에서 모터에 인가하는 전류가 입력으로 되어있는데 이는 일반적인 모터 사용에서 힘이 좀 듭니다. 통상 마이크로 프로세서를 통해서 쉽게 DC모터를 다루는 방법이 PWM이니까요. 그래서 전압으로 바꾸도록 하지요.



일반적인 DC 모터의 경우


위의 식을 따릅니다. 여기서 보통 모터 내부 인덕턴스는 아주 작다고 보니까


로 간략히 표현할 수 있겠습니다. 여기서, Kb는 DC 모터의 back EMF 상수이고, Rm은 DC 모터의 내부 저항입니다.

위 식을 대입해서 힘을 다시 표현하면


이 됩니다. 여기서 f_w는 바퀴와 바닥과의 마찰 계수이고, f_m은 모터와 바디사이의 마찰계수입니다.



이제 레고 문서 따라하기는 그만하고, (아 이후 포스팅에서 언급은 계속하겠습니다.) 이제 라그랑지 방정식까지 나타났고, 힘의 관계도 잡았으니, 다음부터는 원래 제가 좋아하는 스타일로 진행하도록 하겠습니다. 

http://pinkwink.kr/trackback/333 관련글 쓰기
  • 건뚱이 2010/06/20 04:59

    잠이 안와서 포스팅한거 읽엇습니다. 수식이 마이복잡 하네요. 빨리 따라가야겟습니다. 좀자다가일어나서 화이팅 해야 겟습니다. 행님도 주무시고 나중에뵙겟습니다. 아이폰으로 사길잘햇습니다

  • 라라윈 2010/06/20 09:18

    오오.. 외계어같지만 문양으로 보기에도 아름다운 수식이 한가득이네요.. ^^
    저도 이제 한 학기 남았는데, 학기 마무리와
    나중 생각을 하노라면, 뾰족한 해법이 나오는 것도 아니면서
    살만 찌네요... ㅜㅜ

    • PinkWink 2010/06/20 15:00

      헉.. 맞아요맞아요... 희한하게 살이쪄요.. ㅋㅋㅋ^^

  • 탐진강 2010/06/20 09:57

    항상 미래는 불안하게 만들기도 합니다.
    그렇지만 자신감을 갖고 꾸준히 정진하다보면 희망찬 길이 보이겠지요.
    힘내세요

    • PinkWink 2010/06/20 15:00

      넵.. 안그래도.. 푹 자고.. 힘낼려고 하는 중입니다.^^

  • 핑구야 날자 2010/06/21 00:18

    EBS의 로봇대전인가... 가끔보는데 요즘 PinkWink님이 생각이 납니다.

    • PinkWink 2010/06/21 02:17

      아.. EBS에서 그런 프로를 하는군요.. 한번 봐야겠습니다..^^

  • 바람처럼~ 2010/06/21 15:01

    먹고 살만한거 생각 다 하시면 저도 좀... 굽신굽신 ㅠ_ㅠ

    • PinkWink 2010/06/21 15:32

      ㅋㅋ... 해결이 되면... 적금넣고 마다가스카르로 떠버릴겁니다. ㅋㅋㅋ

  • 아이미슈 2010/06/21 16:46

    휴..여기 먹고살 궁리로 자꾸 살만찌는 1인 추가요!!

    • PinkWink 2010/06/21 16:47

      헉.. 역시 먹고살 궁리하면 살찌는 것이 맞는 모양입니다. ㅋㅋㅋ^^

  • 아고라 2010/06/21 17:17

    믿거나말거나 제가 어렸을때 로봇장난감조립 넘넘 좋아했는데...'창조'단계로 넘어가려면 저 정도는 되어야한다고 생각하니..진작에 포기하길 잘했군요. 흐흐흐. 제눈에는 저 수식들이 모짜르트의 아름다운 악보로 보입니다. 글씨 넘 멋지세요. (뭔뜻인지는모르니까그냥보이는것만찬양하라!)

    • PinkWink 2010/06/21 17:16

      헉 .. 아닙니다. 믿습니다.. 그리고.. 일반적으로 로봇을 만들때 저렇게 수식을 생각하지 않는 경우가 더 많습니다.^^.

  • 재오리 2010/06/22 09:42

    MATLAB으로 동역학 유도라는 주제로 간단한 포스팅이라도 부탁드립니다. 굽신굽신 ㅋ

    • PinkWink 2010/06/22 09:58

      그러게요.. 필요한 분들이 있으실것 같은데..말이죠..
      의외로 글로 작성하기가 쉽지가 않네요^^

  • 야옹~ 2010/09/01 19:44

    블로그 잘 보고있습니다. 위 모터 관계식이 다음과 같이 되어있는데,

    L_m*dot_i = v + K_b*(dot_psi-dot_theta)-R_m*i

    아래와 같이 감속비 n이 포함되어야하지 않나요?

    L_m*dot_i = v + K_b*n*(dot_psi-dot_theta)-R_m*i

    감속비가 왜 고려되지 않았을까 의아해서 여쭤봅니다.

    • PinkWink 2010/09/02 13:01

      네 그렇습니다. 실제로는 감속비가 고려되어야합니다. 그러나 당시 모터 구매를 담당했던 후배가 기어비가 고려된 역기전력상수라고 알려주어서 감속비는 고려하지 않는게 맞겠군이라고... 생각을 했습니다. 그런데 약간 의구심이 드네요. 다시 확인을 해봐야겠습니다. 왜냐면, 그게 제가 이 동역학 유도의 원본이 되는 마인드스톰의 문서를 확인해보니 거기도 고려하지 않았네요. 제가 단순히 마인드스톰의 문서를 검증없이 따라간건지.. 아니면 방금 말씀드린 이유에서였는지 확신이 갑자기 서지를 않는 군요... 지적에 감사합니다. 확인해보도록 하겠습니다.^^

    • 야옹~ 2010/09/02 14:26

      아~~ 빠른 답변 감사드립니다. ^^ PinkWink님 블로그에서 많은 도움을 얻고 있습니다.

    • PinkWink 2010/09/02 15:21

      오히려 명쾌하게 처리하지 못해 창피하네요
      지금은 졸업준비중이라 너무 바빠서... 시간이 좀 걸릴듯합니다.

  • Hollyho 2010/11/22 15:24

    안녕하세요.. 블로그를 통해서 많은 것을 배우고 있는 1人입니다.

    일반적인 DC모터의 경우 다음의 식(Li = v+K_b(dot(psi)-dot(theta))-Ri)을 따른다고 하셨는데요. 이런건 어디서 정보를 얻으시는지..ㅡㅜ
    일반적이라고 하는 것의 정보도 알고 싶습니다. 이 식이 DC모터의 역학모델을 뜻하는것인지도요..;; 답변 주시면 감사해요

    • PinkWink 2010/11/29 11:43

      일반적...이라는 것의 정보라... 음... 그냥 일반적인 건데요..ㅠㅠ
      Dorf의 Modern Control System이라던지
      각종 인터넷상의 자료들이나
      MATLAB의 기술문서들
      혹은 DC를 그냥 간단히 구현하는 여러 논문들이지요...ㅠㅠ
      그리고 말씀하신 식은 모터의 전압에 대한 토크식입니다.