2017년 8월 15일 화요일

로봇 만들기 - 8편 (Euclid 이해하기)

이제 로봇이 완성 되었으니 Euclid 개발키트와 연결할 시간이 다가왔다. 예상치 못한 3D 프린터가 많은 비중을 차지하는 바람에 벌~~써 시작했어야 하는 Euclid 세팅을 이제서야 할 수 있게 되었다.

너무 오래 되서 기억을 좀 되살려 보면, Intel Euclid 개발자 킷을 구매한 이유가 Depth camera 를 사용해서 '장애물도 피하기', '사람 인식', '사람 따라다니기' 가 가능하기 때문에 OTIS 로봇과 연결해서 아들을 따라 다니면서 잔소리를 하고 싶어서였다. OTIS 를 1주일 정도면 만들 수 있을 거라고 에상했던 것과는 달리 거의 한달이 지나서야 준비가 된게 지금의 현실이다.

음. 일단 Euclid 외관을 좀 살펴 보면, 본체와 배터리를 분리 할 수 있게 되어 있고, 합체 했을 때 모습이 아래와 같다.
전면+아래
전면에 RGB 와 Depth 를 위한 카메라가 좌우로 있고, 아래 스탠드에 설치 할 수 있는 홀, 디버깅을 위한 UART 그리고 micro SD 카드를 위한 포트가 있다.
전면+위
위에는 2개의 하드키가 있는데, 설명으로는 프로그래밍이 가능한 여분의 키인듯 하다.
우측
 우측에는 전원 스위치와 USB3.0 포트가 있다. 충전을 위해서는 이 USB 포트를 이용한다.
좌측
좌측에는 모니터와 연결 가능한 HDMI, 키보드 마우스를 추가로 연결할 수 있는 USB Host 포트가 있다. USB 허브를 연결해서 각종 장치를 추가 연결해서 사용하면 된다.

이게 전부다. 대단한 악세사리도 없고 추가 옵션도 없다. 대부분의 개발자 키트가 그렇듯이...

그럼 이제 전원을 넣어 보자. 우측에 있는 버튼을 꾸욱.. 몇 초 눌러주면 위 사진처럼 녹색 불이 들어온다. USB3.0 케이블을 연결해 주면 충전중이라는 빨간불도 추가로 들어온다.
밥먹이는 Euclid
그런데 전원을 켜고 '띠링' 소리 까지 들었는데... 뭘 할지 모르겠다. 그래서 박스에 들어있는 간단 메뉴얼을 읽어 봤더니 Euclid 를 사용하는 방법은 2가지가 있는데,

1. 모니터, 키보드, 마우스를 연결해서 Local PC 처럼 사용하기.
2. Wifi 로 연결해서 서버처럼 사용하기

위 2가지 모드 중에 내가 스벅에서 해 볼 수 있는 것은 두번째이기 때문에 메뉴얼을 따라 'EUCLID_4CA3' 라는 와이파이를 검색해서 연결하고 chrome 브라우저에서 'http://10.42.0.1' 에 연결 해 봤다.

Utilities > System Status
웹을 접속하면 상단에 '시나리오' 부터 '전원' 까지 메뉴가 있는데, 처음에는 무슨 기능을 하는지 모르니 일단 익숙한 '시스템 정보' 를 들어가 봤다.

위에서 부터 CPU 사용량, 온도를 보여주고 Wifi, 하드웨어 정보 그리고 ROS 를 위한 Master URI 를 설정 할 수 있는 메뉴가 있다. 생각보다 온도가 높다는 것에 당황하고 손으로 만져보고 깜짝 놀란다. '이거 정말 괜찮은거야?' 라는 생각이 들수록 너무 뜨거운 상황이 많다.

그 다음으로 첫번째 메뉴인 시나리오에 들어가 보면,
다양한 시나리오
첫 6DoF 부터 뭔지 모르겠다. ㅠㅜ
일단 DoF (Degree of Freedom) 을 검색해 보니 로봇과 드론에 관한 얘기가 많이 보인다. 통계학 용어도 있는데 이건 설마 아니겠지...

로봇 세계에서 자유도는 '로봇의 위치와 자세를 결정할 수 있는 변수' 라고 하는데 6DoF 를 찾아보면 죄다 산업용 로봇 팔이 나온다.
https://en.wikipedia.org/wiki/Six_degrees_of_freedom
여튼 6가지 변수는 위 그림에서 설명 하듯 위/아래, 앞/뒤, 왼쪽/오른쪽, yaw, pitch, roll 이 되겠다.

드론 세계에서의 6DoF 를 좀 들여야 보면,
3축 자이로 센서
사진처럼 X, Y, Z 를 감지할 수 있는 3축 자이로 센서의 자유도가 3.

3축 자이로 + 3축 가속도

여기에 가속도 까지 인식할 수 있는 센서까지 추가 되면 +3 되서 자유도가 6이 된다고 한다.
여기까지로도 충분하지만 추가로 나침반(지자기센서) 가 추가 되면 9. 기압계를 추가하면 10 의 자유도를 가진다고 한다.

여튼 나의 관심사는 6DoF 이니 X/Y/Z 와 가속도(yaw/pitch/roll) 을 알 수 있다는 의미를 알았으니 된것 같다.

다음으로 '6DoF Person' 은 6 자유도에 사람을 인식하는 기능까지 추가 된 것같고, 'Arduino CA' 는 설명에 써 있듯이 Collision Avoidance 로 장애물을 피할 수 있는 기능을 사용할 수 있는 것 같다. Arduino 를 위한 것이기 때문에 USB 로 아두위노와 연결하면 로봇을 조종할 수 있겠지

그리고 'ArduinoPersonFollower'. 바로 내가 원하는 기능이다.
그 외에 기본적인 'Cameras', 'PersonView' 가 있고, Turtlebot 을 위한 3개의 시나리오가 있다.

Turtlebot 이 뭔가 궁금해서 찾아 봤더니,
http://www.turtlebot.com/
위 사이트를 찾을 수 있었고 국내에서도 판매하는 지사가 있는 것 같았다.
뭔가 멋져 보이고 비싸 보이는데.. 처음부터 이걸 봤다면 Turtlebot 을 고려해 봤겠지만, 이미 너무 먼 길을 왔기 때문에 못 본걸로 쳐야 겠다. ㅎㅎ

시나리오의 종류는 다 살펴 봤으니, 시험삼아 하나 실행해 보면,
카메라 시나리오 실행
요렇게 화면이 바뀐다. 그 다음 메뉴에서 모니터링에 들어가 보면 아래 처럼 확인이 가능하다.
Person View 모니터링
Person View 모니터링 화면인데 아쉽게도 특별 출연한 숭이는 사람이 아니라 Euclid 가 무시해 버렸다. ㅋㅋㅋ

이정도면 기본적인 Euclid 사용법은 익힌 것 같다. 다음에는  ArduinoPersonFollower 를 위해 아두이노와 연결하고 실행하는 것을 해 봐야 겠다.

댓글 없음: