본문으로 바로가기

저는 아주 예전에 자이로센서나 가속도센서로 실험을 꽤 했던 적이 있습니다. 그 때가 아마 7~8년 전인 것 같습니다. 그렇게 해서 2009년 6월경 자이로센서와 가속도센서를 융합해서 각도를 측정하는 방법인 상보필터라는 개념을 블로그에 포스팅[바로가기]했었죠~^^ 그리고, 다시 그로부터 몇 년 후 학교를 졸업하고, 첫 직장에 과분하게도 연구소장[바로가기]이라는 직함을 받으면서 진행했던 초반부 작품으로 각도 측정 모듈을 출시[바로가기]했었습니다. 지금 생각해보면, 제품 개발의 프로세스도 모르면서 그냥 뭐 이렇게 하면 되겠지하고 막연히 밀어부친.. 무책임한 제품이었습니다. 갑자기 이불킥이라도 하고 싶네요ㅠㅠ. 아무튼 그리고나서 이런류의 제품들은 사라져 갔던 것 같습니다. 왜냐면 칩 chip 레벨에서 이미 너무 좋은 제품이 많이 나오고 또 오픈소스로 좋은 코드를 많이 구할 수 있기 때문이지요. 그러다가 최근 자이로센서와 가속도센서가 하나로 합쳐져 있는 InvenSense의 MPU6050이라는 칩을 포함한 GY-86이라는 모듈을 테스트할 기회가 있었는데요...

잘 생겼죠?^^ 이 아이를 아두이노에서 테스트를 했습니다.~~ 그냥 I2C로 통신하는 아이라 Raw 데이터를 직접 받아도 되지만... 라이브러리를 찾아보았습니다. 그랬더니... i2cDev라고, i2c 통신을 사용하는 센서의 오픈소스 라이브러리를 제공해주는 정말 멋진 분들의 모임이 나타나더군요~

와우.. 이곳[바로가기]에서 한동안 공부를 좀 해야겠더라구요~ 아무튼...

그곳에서 MPU6050을 찾았습니다.[바로가기]

거기서 예제폴더[바로가기]에 먼저 들어가봤는데요.. 오늘은 저기서 MPU6050_raw와 MPU6050_DMP6를 실행해봤죠~~

아참... 클래서 reference 페이지[바로가기]도 잘 가지고 있어야죠^^

그리고 [바로가기] github 페이지에서는 다양한 제품을 타겟으로 mpu6050라이브러리를 제공하고 있었습니다. 그 중 아두이노

페이지에서 MPU6050을 선택하고 난 후 나타난 페이지[바로가기]를 받아서 아두이노폴더의 라이브러리폴더에 넣어두면 됩니다. 그리고, 파일->예제->MPU6050_raw를 열면 되죠~~

그리고, 아두이노 우노에서는 우노의 SCL, SDA는 각각 GY86과 물리고, 전압은 5V를 v-in에 넣었습니다. GND도 연결하고, INTA를 우노의 D2핀에 넣었습니다. 다음 예제에서 필요하거든요^^

아무튼 저렇게 연결합니다. 아.. 디폴트로 i2c로 접근하는 어드레스는 0x68입니다. AD0에 High를 걸면 0x69로 접근할 수 있다고 하네요^^

그리고~~

시리얼 모니터로 받은 값들입니다. 자이로 3개, 가속도 3개의 값이죠^^

이제.. MPU6050_DMP6 예제를 돌렸습니다.

아~ 그전에 코드 117번줄 근처에 있는 OUTPUT_TEAPOT의 define을 주석 해제해 주어야 합니다.

그리고, 예제가 있는 폴더에 보면 Processing이라는 폴더가 있는데요...

그 안에... MPUTeapot.pde 파일이 있습니다. 우와~ 방갑더라구요^^ 한때, Processing 포스팅 많이 했었는데 말이죠^^[바로가기] 아무튼 이 아이를 실행하면...

Processing IDE가 실행되고... PC에서 각도 측정 모듈을 테스트해볼 수 있는

화면이 나타납니다. 참 대단한 세상입니다. 이런걸 단지 데모만으로 구경해 볼 수 있다니요~~^^ 아래는 테스트 장면입니다.~~



댓글을 달아 주세요

  1. BlogIcon 스티마 2018.04.04 09:36 신고

    와. 간단하게 해볼 수 있다는게, 세상 편해졌다는 말이 절로 나옵니다.
    아두이두와 관련 칩들만 잘 이어 붙이면(?) 시제품만드는게 정말 편리해 진것 같습니다.
    이제 무얼만들지만 고민하면 되겠는데.... 무얼만들어야 할지 생각이 안나네요. ^^;;;

  2. BlogIcon 공수래공수거 2018.04.04 09:49 신고

    참 대단한 세상이라는데 공감을 합니다 ㅋ
    비가 오네요..봄비가

  3. BlogIcon 쵸파 블로그 2018.04.05 00:17 신고

  4. BlogIcon 핑구야 날자 2018.04.05 06:51 신고

    동영상까지 작업하시느라고 고생 많으셨겠네요 덕분에 구경 잘 하고 갑니다

    • BlogIcon PinkWink 2018.04.06 00:44 신고

      사실..저는 블로그에 글쓰는게 오래 걸리지 않아요^^
      글 하나당 한 30~40분정도..^^
      동영상까지 한 20분정도
      원체 퀄리티는 생각하지 않고 작성하는 거라..
      오히려 고생했다고 해주시니 더 민망합니다.^^

  5. BlogIcon 요니피그 2018.04.05 09:54 신고

    동영상보니 완전 싱기방기하네요
    근데 진짜 볼때마다 느끼지만 좀 대단하신것 같아요 정말 어째 저런 걸 다~~~~짱짱짱!!!!

  6. BlogIcon 라디오키즈 2018.04.05 10:52 신고

    함께 일하는 개발자중 한 분이 사내 동호회에서 아두이노를 잠깐 만져보시더니 급히 접으시더라고요.ㅎ
    이공계라고 해도 역시 끌려야 팔 수 있는 법. 늘 열심히 파고 계신 모습 잘 보고 있습니다.

    • BlogIcon PinkWink 2018.04.06 00:45 신고

      앗~~ 감사합니다.
      이미 관련 전공 개발자이시라면 아두이노가 재미없을 수도 있어요..
      저도 다들 좋아하는데 하드웨어 개발하시는 분은 좀 시큰둥하시더라구요^^

  7. BlogIcon Deborah 2018.04.05 13:07 신고

    잘 정리를 해주셨네요. 이해하기엔 역부족이지만 잘 보고 가요. 늘 고운날로 가득하시길 바래요.

  8. BlogIcon 휴식같은 친구 2018.04.05 13:46 신고

    ㅎ 재밌네요. 이렇게 테스트 해 볼 수 있어서요.
    잘 보고 갑니다.

  9. BlogIcon IT넘버원 2018.04.05 18:21 신고

    칩만 잘 붙이면 되는 정말 대단한 세상인거 같습니다.^^

  10. BlogIcon 잉여토기 2018.04.05 21:26 신고

    와, 이런 것도 직접 만져보고 테스트해보고 너무 멋지네요.
    저는 컴퓨터 뚜껑 까는 거 자체가 두려워요~^^;

  11. BlogIcon peterjun 2018.04.06 02:21 신고

    이불킥 단어를 보니... 괜히 인간미가 느껴지네요.
    원래 그렇게 발전하는 게 아닐까 싶어요. ^^
    다른 분야지만.. 저도 처음 '팀장'이라는 걸 달았을 때...
    그 오만했음을 생각하면 너무 부끄러워집니다. ㅋ

  12. BlogIcon 핑구야 날자 2018.04.06 06:49 신고

    가속 센서 테스트 잘 보고갑니다

  13. BlogIcon 즐거운 우리집 2018.04.06 07:24 신고

    우와 정말 간단히(응???) 작업이 되네요 ㅎㅎㅎ
    대단하세요 ^^

  14. ㅇㅅㅇ 2018.04.08 15:33 신고

    안녕하세요ㅠㅠ 가속도 센서 검색하다가 PinkWink님 블로그로 왔습니다~
    가속도 센서를 이용하면 충격량을 구할 수 있을거 같은데 좋은 아이디어가 있을지
    궁금해서 댓글 남겨봅니다^^ 좋은 하루 되세요!

    • BlogIcon PinkWink 2018.04.09 07:00 신고

      가속도센서의 출력을 한 번 관찰해 보시죠.
      충격을 가했을때 센서 출력을 보면
      어떤 정도를 충격이라고 정희할 수 있을지 알 수 있지 않을까요?^^

  15. BlogIcon 아인스본 2018.05.28 02:35 신고

    질문을 남겨봅니다. 좀처럼 정보가 나오질 않아서요 ㅠㅠ. 답변해주시면 정말 감사합니다.

    질문:제가 요즘 로봇에 적용하는 강화학습에 대해 공부해보고 있습니다. 개인 프로젝트로 평평하지 않은 불균형한 지형에서 가속도 자이로 센서를 사용해서 자세를 보정해서 안정적으로 걷게 하는 것을 해보려고 합니다. 로봇의 몸체쪽에 센서를 장착할 것입니다. 먼저 시뮬레이션에서 학습을 시킨 후 실제 로봇에서도 학습을 시켜서 보정을 하려고 합니다. 여기서 가속도 자이로 센서의 경우 딜레이는 어느정도 일까요? 그것을 고려해서 시뮬레이션에서의 센서를 좀 조정할 생각입니다. 그리고 현실 센서의 경우노이즈 등이 있기 때문에 정확도는 어느정도 될까요? 필터같은것을 써야될까 궁금합니다. 저가와 고가의 차이가 있는지도 궁금합니다. 이왕이면 정확도가 젹당히 좋은거를 써야겠죠. 그리고 몸체의 양옆에 센서를 달아서 두개를 쓸 생각인데 자이로 값은 두개의 평균을 내면 정확도가 올라가겠죠?

    참고로 제어기는 라떼판다 또는 라즈베리를 쓸 생각이고 아두이노도 사용할 수 있습니다. 로봇은 휴머노이드의 다리만 있는 형태이고요.



    질문 요약:
    1. 가속도 자이로 센서의 딜레이와 정확도(또는 오차)는 어느정도인가요?
    2. 가격에 따른 차이가 있나요? (정확도 등)
    3. 자이로 센서의 경우 두개 이상을 쓸 경우 정확도가 한개보다 더 증가하겠죠?

    • BlogIcon PinkWink 2018.05.28 10:19 신고

      봉 양끝에 자이로 센서를 달고 두 센서를 평균하면 오차가 줄어들듯 하지만 아닙니다. 랜덤하기 때문에 두 센서의 평균을 취해도 자이로센서 자체의 한계(각속도 측정)를 벗어나기는 어렵습니다.

      자이로센서와 가속도센서의 응답시간은 각 센서 스펙에 있습니다.(어떤 센서를 사용하실지 모르니.ㅠㅠ)
      그리고 자이로센서나 각속도센서를 융합-칼만필터든, madgwick이든, 상보필터든-해서 사용할때 각도를 추정하는 필터의 성능의 입장에서의 응답시간은 설계하는 환경과 목표에 따라 다를겁니다. 상용으로 판매되는 10만원 이내의 센서들 중에도 좋은 아이들이 많습니다. 이 역시 각 제품별로 응답시간은 다르니 확인을 하셔아할듯 하네요.