3DR의 IRIS+, X8+는 어느 정도 캘리브레이션이 되어 있으나, Erle copter는 그렇지 못하다. 하나씩 설치하고, 재설정해 주어야 한다. 그래서, 드론을 띄우면, 중심 위치에 호버링하기 매우 힘들다. 이런 이유로 mission planner를 이용해 캘리브레이션을 할 필요가 있다.
3. 짐벌 동작 파라메터 설정하기
짐벌 마운팅 후에 전원을 연결해 보면, 정상 작동하지 않고 짐벌이 진동(vibration)하는 경우가 꽤 많다. 이 경우에는 짐벌 파라메터 설정이 필요하다. 본인의 경우에도 진동문제가 있어, 설정이 필요했다. 개별적으로 부품을 구매해 DIY하는 경우 많이 발생되는 문제이다.
우선 다음 링크에서 타롯 짐벌 컨트롤러를 모니터링하고 펌웨어를 업데이트할 수 있는 프로그램을 다운로드 받는다. 현재 프로그램은 1.4버전과 1.5버전이 있는 데, 본인의 경우 1.4버전으로 테스트하였다.
다운받은 프로그램을 실행하자. 먼저, 펌웨어를 업그레이드하는 것이 좋다. 다음 영상을 참고하여 두개의 펌웨어를 업그레이드한다.
업그레이드가 정상으로 되었다면, 다음과 같이 펌웨어 버전을 확인할 수 있다.
이제, 캘리브레이션을 한다. 캘리브레이션은 다음 영상을 확인해 따라한다. 큰 순서는 짐벌에 마운팅된 카메라 전면을 천장 위로 향하게 하고, 프로그램의 캘리브레이션 버튼을 클릭하면 된다.
그리고, 프로그램의 'Motor on'버튼을 클릭하면, 짐벌 모터가 카메라의 자세를 자동 제어한다. 만약, 이 경우에도 진동이 발생되면, 다음 영상을 보고, 모터 파라메터 값을 적절히 설정해 본다. 이와 관련된 레퍼런스에서는 마운팅된 카메라가 무거울 경우, 모터 구동 전압을 높이라는 설명이 있으나, GoPro의 경우에는 디폴트값으로도 큰 문제 없이 짐벌이 동작되었다.
만약, 모두 잘 조립해 설정하였음에도 불구하고 진동과 같은 문제가 발생하면, 다음 레퍼런스를 참고해 해결한다.
4. 마무리
사실, 특정 목적을 위해 직접 드론 장비들을 DIY 조합해 만들다보면, 이와 같은 일들이 많이 발생한다. 이 글에 소개된 짐벌의 경우만 해도, 짐벌장비의 정보를 확인하고, 구매한 후, 조립하고, 진동 등 문제를 해결하기 위한 구글링/설정/캘리브레이션 등으로 많은 시간이 소비되었다. 하지만, 이런 과정을 통해, 좀 더 깊이 센서를 마운팅하는 기술을 알 수 있고, 이를 통해 다양한 응용력을 키울 수 있다. 만약, 완성된 것을 구매만 하여 사용하였더라면, 연구 개발에 필요한 깊은 아이디어를 얻기가 어려울 것이다.
드론의 경우, Arducopter와 같은 오픈소스 기술도 많이 활용되고 있으나, ROS를 직접 드론에서 구동하기 위한 노력도 많아지고 있다. Arducopter에서 제공하는 미션 플래너 기술을 이용하면, 드론을 실시간으로 모니터링할 수 있다. 하지만, 드론의 자세, 위치, 속도를 모니터링하는 것만으로는 드론 운용에 대한 일부 유스케이스만 커버할 수 있을 뿐이다.
ROS를 잘 활용하면, 다음과 같은 유스케이스를 구현할 수 있다.
인프라스트럭처 시설물 센싱에 필요한 데이터를 효과적으로 캡쳐할 수 있다.
센싱 중 충돌할 수 있는 물체를 자동으로 피할 수 있다.
실시간으로 데이터를 캡쳐하면서, 데이터의 특징이나 정보를 추출해, 원격으로 서버에 전달할 수 있다.
드론이 캡쳐하는 데이터의 정보를 실시간으로 추적/관리할 수 있다.
이 글은 ROS를 직접 드론에서 구동하는 Erle copter 드론과 미션 플래너 연결 방법에 대한 것이다.
1. 개요
Erle copter는 ROS가 설치된 임베디드 컴퓨터가 설치되어 있는 Erle Brain이란 제어장치를 가지고 있다.
Erle Brain을 기반으로 모든 센서, 액추에이터를 제어하고, 지상국(ground station)과 통신하여, 필요한 데이터를 주고 받을 수 있다.
다음 링크를 참고한다. 이 문헌은 UDP 방식으로 미션플래너와 Erle Brain을 연결한다.
ROS기반 드론은 다양한 센서 연동을 통한 실시간 데이터 처리와 전송이 가능하다. 무엇보다, ROS의 수많은 센서 및 액추에이터 드라이버를 공짜로 사용할 수 있다. 이는 ROS기반 드론의 큰 잠재력이다. 이런 기술을 잘 활용한다면 드론 기반의 다양한 응용 서비스를 개발할 수 있을 것이다.
이 글은 아두콥터 기반 3DR IRIS+ 드론과 미션 플래너를 연결하고 설정하는 방법에 대한 것이다. 간단해 보이지만, 내가 원하는 작업을 하는 데, 많은 시행착오와 시간이 필요했다.
미션 플래너는 드론의 비행 모드 및 파라메터들을 설정하기 위해 필요하다. 예를 들어, 드론 기반 3차원 이미지 스캔을 위해서는 실내/실외 스캔 작업을 고려해야 하나, 처음 드론이 설정되어 있는 모드는 GPS Lock이 걸려 있으므로, 실내에서 작업할 때 문제가 된다. 다만, 실내에서 정밀한 드론 제어를 위해서는 별도의 광학 추적(optical tracking) 시스템 등이 필요하다.
연결하면, 다음과 같은 새로운 COM포트(이 경우에는 Teensy USB Serial)가 생성된다. COM포트 번호를 기억해 둔다.
3. 미션 플래너 실행 및 연결
미션 플래너는 관련 유튜브 동영상을 확인한다. 관련 영상은 어떻게 미션 플래너를 사용하는 지 설명되어 있다. 미션 플래너를 실행하기 전에 한번 훝어 본다.
미션 플래너를 실행하고, 동영상에서 지시하는 바 대로, 드론과 통신할 COM포트와 적절한 BPS를 선택하여, 연결한다. 그럼, 동영상처럼, 드론과 노트북이 연결된다.
참고로, 드론과 미션 플래너 간의 연결 프로토콜은 MAVLink 이다. MAVLink는 소형 UAV와 통신을 위한 오픈소스기반 프로토콜로 Lorenz Meier 에 의해 2009년 초에 발표되었다.
연결되면, 다음과 같이 고도 및 자세 각도인 Altitude, Yaw가 드론의 IMU센서에 따라 실시간으로 반영되는 것을 알 수 있다.
4. 미션플래너 살펴보기
미션플래너의 기능을 살펴보자. 우선 왼쪽 화면에 보면, 고도계 등 계기판이 있다.
계기판을 보면, 큰 글씨로 고도계, 속도, WP(work place)로 부터 드론까지 거리, 드론 자세 각도(Yaw), 상승 속도(vertical speed) 등이 표시되어 있다. 아울러, 고도계에서 보면, 드론 고도 및 자세 각도 표시 눈금과 배터리 전압 (그림에서는 12.30V) 등이 표시되어 있고, GPS시간 등이 우측 상단에 표시된다.
각 탭에는 다양한 파라메터 설정 및 센서 값들이 다음과 같이 표시된다.
5. 자동 비행 경로 설정 화면
그림과 같이 FLIGHT PLAN 화면을 이용하면, 비행 경로를 입력할 수 있다. 아래는 운동장에 경로를 입력해 본 모습이다. 첫번째와 마지막 포인트는 TAKEOFF, LAND 명령으로 설정하였다.
6. 초기 설정 화면 (INITIAL SETUP)
초기 설정 화면에서는 다음과 같은 기능을 제공한다.
드론의 MAVLink 펌웨어 업데이트
드론 자세 캘리브레이션(calibration)
라디오 컨트롤 캘리브레이션
비행 모드 설정 (Flight Modes) - AltHold(기본), Auto, Loiter, Stabilizer 등을 설정
FailSafe 기능 설정
배터리 모니터링 센서 설정
소나(sonar) 센서 설정
모터 캘리브레이션
카메라 짐벌(gimbal) 설정
기타 다양한 센서 등 설정
7. 설정/튜닝 (CONFIG/TUNING)기본 튜닝 등 다양한 튜닝 방식을 지원한다.
기본 튜닝 - roll, pitch, hover, climb sensitivity 등 민감도를 조정한다.
표준 파라메터 설정 - 아밍(arming) 체크 설정, 배터리 모니터링 설정, 카메라 서터 설정, 채널 7 옵션 (Land 등) 설정, 채널 8 옵션 설정, GPS Glitch (문제 발생) 보호 활성화 설정 등 모든 파라메터 옵션 설정 기능
어드밴스 파라메터 - 각종 센서 등 좀 더 어드밴스한 파라메터 설정
전체 파라메터 리스트 및 트리 (Full Parameter List / Full Parameter Tree)
플래너 기본 설정
8. 시뮬레이션 화면
가상으로 시뮬레이션할 수 있는 화면을 제공한다.
9. 터미널
APM과 터미널 방식으로 연결하는 기능 제공한다.
10. 시동전(프리암) 안전 체크 (Pre-Arm Safety Check)
드론이 시동전에 비행하기 어려운 문제가 발생하였을 때, 이륙을 방지하고, 사용자에게 에러를 주는 기능이다. 이럴 경우, 보통, 드론의 표시 등이 황색(노란색)으로 점멸(blink)한다.
드론에서 발생된 정확한 에러는 Mission Planner 의 계기판 화면에서 표시되는 적색 메시지 글씨를 통해 확인할 수 있다.
다음은 대표적인 에러들이다.
Need 3D Fix : GPS가 3D Fix를 얻지 못하는 경우로, 비행 모드가 GPS 데이터를 요구하는 모드(PosHold, Loiter, Auto 등)인데, GPS신호를 받지 못하거나(실내의 경우), circular fence 옵션이 활성화되어 있는 경우에 발생
11. Radio module 기반 미션 플래너와 드론 연결
이제 마지막으로 라디오 모듈(radio module)을 이용해 무선으로 미션 플래너와 드론을 연결해 보도록 한다. 사용한 라디오 모듈은 915 MHz이며 아래와 같다. 이를 이용하면, 무선으로 스마트 패드에 라이오 모듈을 연결하고, 안드로이드용 미션 플래너를 통해, 드론을 조정할 수 있다.
mini DRC 참가할 때도 골탕먹었던 펌웨어 문제다. 답변에 언급된 펌웨어 복구 방법 설명 문서와 영상을 참고해 조심스럽게 MX-64 펌웨어를 업데이트해준다.
그리고 다시 스캔... 잘 된다.
다시 용기를 내어 1000000 bps로 적용 후 다시 스캔... 다음처럼 정상 검색된다. 기쁘다^^
2. 관절 목표 위치 테스트
이제 목표 위치를 변경해 볼까^^.... 모터 LED가 적색 점멸.. 깜빡 깜빡 blink ... Dynamixel Wizard의 ERROR 표시기에 5번 불이 켜져 있음.. 헐.. 동작 에러 아닌가.. 또 다시 구글링 삽질을 해 보니. 다음과 같은 에러 메시지 설명을 발견하였다.
과부하 에러? 그렇다면, 전압이... 다시 12V 전압을 줄 수 있는 배터리를 찾아 테스터기로 확인해 본 후, 전원 연결 케이블을 만들고, MX-64에 전원 인가해 보았다. 그리고 다시 시도... 잘 된다.^^
3. 관절 회전 각도 리미트 설정
관절에 해당하는 액추에이터는 0에서 360도로 회전하면, 프레임이나 모터 기어가 망가질 수 있다. 로보티즈 액추에이터는 이런 경우, 오버로드 에러가 발생하여, 기어 고장을 예방한다.
액추에이터에는 편리하게도 프로그램에서 제약된 각도 이상으로 동작하는 경우를 막는 파라메터터가 있다. 처음 아무 생각없이, 목표 위치를 설정하면, 최대치 속도로 한계 이상의 각도로 회전된 액추에이터때문에 놀랄 수 있다.
다음과 같이 시작 각도(CW 위치 제한)와 끝 각도(CCW 위치 제한)를 설정한다. 이 액추에이터에는 엔코더가 달려 있어, 현재 각도 위치를 '현재 위치'파라메터를 통해 알 수 있다. 이를 이용해 최대-최소 회전 가능한 각도를 알아낸다. 아울러, 너무 빠르게 회전하면, 동작이 불안해 지므로, 이동 속도 파라메터도 낮춘다. 본인의 경우에는 10 RPM 으로 하였다.
이제 테스트를 해보면, 10 RPM으로 회전 각도가 정해진 범위내에서만 변화되는 것을 알 수 있다.
나머지 액추에이터도 같은 방식으로 설정해 본다.
TTL케이블이 짧아 테스트해 보지 못했던 부분이 있다. 마운팅 부품들을 모두 결속하고, 케이블을 길게 연결 처리한 후 전원을 연결해 다시 테스트해 보았다. 다음과 같이 잘 동작한다.
마운팅할 센서는 ASUS RGBD센서이며, 차 후에 다른 센서 및 그립퍼 마운팅을 고려해서, 프레임을 좀 더 길게 처리했다. 이 부분은 차후 상황에 따라 조정하도록 한다.
작업 시 주의사항 - 속도, 토크 부하, 위치 최대/최소 리미트 설정에 매우 중의해야 한다. 너무 빠르게 회전해 예상치 못한 곳과 부딧힌다던지, 기구적으로 위치할 수 없는 부분까지 회전하면, 기구나 모터가 망가진다. 아울러, 케이블을 연결할 때도 다른 기구부와 간섭이 일어나지 않도록 주의하여 처리해야 한다. 그렇지 않으면, 기구가 동작할 때 간섭된 케이블이 끊어지거나, 모터의 케이블 연결 부분이 망가져 사용하기 어렵게 된다.
4. 마무리
이동 속도 등은 전원을 다시 인가하고 확인해 보면 0(최대속도)로 초기화되는 문제가 있다. 이 파라메터는 RAM영역에 저장된다. 이런 파라메터들은 미리 테스트하여 코딩으로 설정해야 한다. 분홍색 영역의 파라메터만 EEPROM에 영구 저장된다.
이것으로 액추에이터에 대한 ID, 통신 속도, 회전 각도 리미트 설정 및 테스트를 끝마쳤다. 이 모든 과정은 처음 시도해보는 상황에서 충전된 배터리/전원 케이블 등이 미리 준비되어 있지 않다면 대략 2~3시간 정도 이상 걸린다. 익숙해 지면 30분에서 1시간 내에 가능하다.
로보티즈의 다이나믹셀은 로봇 연구 개발에 가장 많이 활용되고 있는 액추에이터이다. 모터끼리 연결이 매우 쉽다(데이지 체인 연결 방식). RoboPlus 소프트웨어를 설치한 후, 다이나믹셀 위자드 프로그램을 이용해 간단히 각 모터에 ID를 부여하고, 아두이노와 유사한 OpenCM 을 사용해, 속도나 위치를 설정해 주면, 그에 따라서 동작한다.
1. OpenCM 필수 드라이버 및 통합개발환경 설치
다음 링크에서 OpenCM IDE 도움말을 따라하면서, 관련 필수 드라이버 및 OpenCM 통합개발환경을 설치한다.