본문으로 바로가기

최근 로보티즈의 전문가용 로봇키트인 ROS 연구용 플랫폼 TurtlBot3를 만지고 놀 수 있게 되어 그 개봉기를 올렸는데요[바로가기]. 그 속에 모터와 각 종 센서를 제어하거나 모니터링하는 보드로 OpenCR이라는 보드가 들어가 있습니다. 이 보드만 따로 보다가 참 잘 만들어졌다고 느껴지더군요. 저도 예전에 지내던 회사[바로가기]에서 이런 느낌의 보드가 어떨지 기획한 적이 있는데 당시 동료 연구원들이 많이 반대해서 못 헀던게 또 아쉬움으로 남네요... 절대 절대 그때 만들었으면 잘 팔았을거라는 이야기를 하는 것이 아닙니다.^^. 그때는 나왔으면 아마 그대로 사장되었을 확률이 높죠... 아무튼~~~ 이 보드 좋더라구요^^ 판매페이지[바로가기]에서 보여주는 그림을 보면...

이렇습니다. 로보티즈가 판매하는 다이나믹셀과 직접 연결되는 커넥터에 아두이노 지원, UART, RS485, CAN 등의 다양한 통신 지원, 심지어~~~ MPU9250이라는 IMU 센서도 하나 가지고 있습니다. 괜찮네요~~ 오늘 저는 이 보드가 제공하는 아두이노 예제 중에서 IMU 센서에 대한 것을 돌려본 이야기를 할려고 합니다. 아무래도 로봇이 ROS를 대상으로 하고 있으니 예제와 그 설명도 당연히 ROS가 설치되는 Ubuntu를 기준으로 설명하게 되고, 저 역시도 그걸 따라했으니, 이 번 예제의 환경은 Ubuntu 16.04 버젼이 기준입니다. 

먼저 Ubuntu에서 아두이노를 설치하기 위한 절차를 수행해야 하는데요. 시리얼 포트에 대한 설정때문에 Ubuntu에서는 뭔가 하나 거쳐야 하는 단계가 있는 모양입니다.

wget https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/99-opencr-cdc.rules
sudo cp ./99-opencr-cdc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger

.이 단계는 로보티즈의 github에서 리눅스 환경에서 아두이노 설치 문서[바로가기]에 설명되어 있습니다. 그리고 ROS 로봇 프로그래밍이라는 책에서는 그 이유를 

리눅스에서는 시리얼 장치가 연결되었을 때 모뎀 장치인지 알기 위해 특정 명령어를 송신하는데 이것이 문제가 될 수 있기 때문에 해당 절차를 진행하지 않도록 하는 USB 포트에 대한 접근 권한과 모뎀으로 인식하지 않도록하는 설정을 추가

하는 것으로 설명하고 있습니다. 그리고... OpenCR의 GCC가 32비트용으로 64비트를 사용하는 저는

sudo apt-get install libncurses5-dev:i386

명령으로 따로 32비티와의 호환성에 대비를 해야한다고 하네요~ 그리고 난 후,

터미널 설정에서...

아두이노를 다운 받은 경로를 추가하고~~~ 아.. 아두이노를 다운 받은 후, tools 폴더에 압축을 풀었습니다.

이제 심플하게 터미널에서 arduino라고 입력하면 됩니다.~~~^^

아~~~ 윈도우에서만 보다가 여기서 보니 또 방갑네요~~^^

여기서... 파일>예제>OpenCR>IMU>IMU_Read_RollPitchYaw를 선택합니다.~

이렇게... 잘 로딩이 되죠^^

그리고 저는 TurtleBot에 있는 OpenCR 보드와 PC를 연결했습니다.

그리고 잘 실행되면 저 화면에 보이는 print 문의 내용이 시리얼 통신으로 들어오겠죠^^

아~~~ 이런... OpenCR 보드를 지원하게 하기 위해 위 그림처럼 Preference에서 추가 보드 매니저 URL에

ttps://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json

라고 입력합니다.

그러면 저렇게 OpenCR 보드를 선택할 수 있습니다.

그리고... 포트도 ttyACM0에 잘 연결되었구요~

컴파일해 보니 괜찮네요~

업로드도 무사히 잘 수행되었습니다~~~

그리고 시리얼 모니터를 실행하셔도 되지만, 시리얼 플로터를 실행하면 이럴때는 좋습니다.~

안 움직일때는 저렇게 플랫하게 나오네요.. 타임 틱이 살짝 떨긴하지만, 아두이노에 시리얼 통신인 걸 감안하면 아주 좋은 것 같습니다.

이제 로봇을 저렇게 기울여 보았습니다.

앗.. 요렇게 뜨네요~~~^^ y축을 중심으로 회전하는 Pitch가 검출되고 있는 것 같습니다.

이번에는 요렇게~~~

ㅎㅎ.. 요렇게~~~ 잘 되네요^^

물론 Yaw 방향으로 회전도 잘 센싱됩니다.^^ 좋네요~~^^ 마음에 쏙 드는 아이입니다.^^


댓글을 달아 주세요

  1. BlogIcon 즐거운 우리집 2017.11.20 11:02 신고

    우와~!
    뭔가 모르지만 뭔가 전문적이다~!
    멋져보여욤 ^^

  2. BlogIcon 류시화 2017.11.20 14:03 신고

    테스트 과정 잘봤습니다. ^^..

  3. BlogIcon 꿈의벨벳 2017.11.20 14:56 신고

    역시 저한테는 너무 어려워요...

  4. BlogIcon 『방쌤』 2017.11.20 19:46 신고

    맘에 드신다니,,, 하핫,,^^;;
    날씨가 많이 추워졌어요~ 따뜻한 저녁 보내세요~

  5. BlogIcon 감자튀김 2017.11.20 22:13 신고

    오~ 아두이노와 비슷한 것 같은데~
    흥미로운 로봇키트이군요~ ^^

  6. BlogIcon peterjun 2017.11.21 01:06 신고

    난해한 이야기들이...주르륵... ㅎㅎ
    하지만, 멋진 이야기들입니다.
    미래형 이야기들. ^^

  7. BlogIcon 핑구야 날자 2017.11.21 06:54 신고

    각종 센서를 제어하는 재미가 좋겠어요

  8. BlogIcon 봉리브르 2017.11.21 07:52 신고

    뭔가 어려운 듯하지만
    심취하면 재미가 있을 것 같습니다..^^

  9. BlogIcon 멜로요우 2017.11.21 08:55 신고

    저도 너무 어렵네요!! 그치만 배워보고싶기도하는... 능력자들이십니다

  10. BlogIcon 평강줌마 2017.11.21 21:40 신고

    저는 어렵네요. 전문가 포스가 느껴지네요. 편안한 밤 되세요.

  11. 잘 보고 갑니다^^

  12. BlogIcon 드래곤포토 2017.11.22 10:24 신고

    저같은 사람에겐 쉽지 않네요
    즐거운 하루되세요 ^^

  13. 두두 2017.12.05 12:19 신고

    ros에서 혹시 사용해보셨나요?