1. 오픈 소스 소프트웨어

오픈소스 플랫폼은 결국 크게는 두 가지로 분류 해볼 수 있다. Non-OS 기반의 펌웨어로 구성된 소프트웨어와 그에 맞는 FC 보드가 있고, OS(Embedded Linux, RTOS) 기반의 소프트웨어와 그에 맞는 FC 보드가 있습니다.

    1. ArduPilot(https://ardupilot.org/)

ArduPilot은 세계 최대 아마추어 자작 드론 커뮤니티 DIY Drones(http://diydrones.com)에서 2007년부터 시작된 GNU GPL v3 라이선스의 오픈 소스 드론 프로젝트이다. 하드웨어로는 APM(ArduPilot Mega), pixhawk, pixhawk2이라 하여 Arduino 기반의 하드웨어를 자체 개발하여 사용하고 있습니다. 3D Robotics와는 자작 드론 커뮤니티 설립부터 함께 해왔기 때문에 3D Robotics 제품에 ArduPilot 기술이 포함되어 커뮤니티와 함께 성장하고 있다. ArduPilot은 드론용 제어 펌웨어는 물론 APM 미션 플래너(APM Mission Planner)라고 하는 그라운드 스테이션용 프로그램도 오픈 소스로 개발/제공하고 있습니다. 뿐만 아니라 ArduPilot은 드론 외에도 일반적인 헬리콥터, 고정익 비행기, 자동차 형태의 로버도 제어할 수 있게 제작되었습니다.

소스코드 https://github.com/diydrones/ardupilot

B. 드론코드(https://www.dronecode.org)

3D Robotics, 퀄컴, Walkera, 패럿, 바이두, Intel, 유닉 등등의 1,200개 이상의 업체가 참여하며 산업용 드론을 포함한 드론 코드로 발전하였습니다. 리눅스 재단이 2014년 Ardupilot, Pixhawk를 체계화 하여 독립적인 오픈 소스, 오픈 하드웨어를 갖는 Dronecode 프로젝트의 하나로서 취리히 연방 공과대학교(ETH Zurich) 출신의 Lorenz Meier가 중심이 되어 진행 중인 자동항법 시스템으로 학계와 마니아 커뮤니티에 표준화된 자동 조종 장치를 제공하는 것을 목표로 하고 있습니다. 2007년부터 DIY Drones(http://diydrones.com)에서 오픈 소스로 진행 중인 프로젝트인 Ardupilot과 양대 산맥을 이루는 오픈 소스 프로젝트라고 볼 수 있습니다. 대표적인 하드웨어로는 Pixhawk와 같은 제어기가 있으며 거의 모든 종류의 비행기 뿐만 아니라 고급 기술이라고도 할 수 있는 수직이착륙형(VTOL) 기체에도 사용할 수 있도록 개발되었습니다.

DroneCode에서는 APM과 더불어, PX4 프로젝트도 통합할 예정으로 알려지며, Pixhawk3 이하 버전에서는 Ardupilot과 PX4가 모두 지원되었지만 Pixhawk4에서는 Ardupilot가 완벽하게 지원할지 모릅니다.

C. PX4 Autopilot(http://px4.io/)

Pixhawk 이후에 하드웨어 소프트웨어적으로 완전한 오픈 소스를 제공하는 Platform으로 다른 오픈 소스와의 가장 큰 차이점은 BSD 3-clause라는 라이선스를 사용하고 있다는 것인데, 이는 GNU GPL 류의 라이선스와는 달리 상업적으로 사용하고 수정하여도 공개할 의무가 없어 예를 들어, 퀄컴(Qualcomm)의 경우 스마트폰용 스냅드래곤 칩을 내장한 Snapdragon Flight를 내놓았으며, 강아지 목줄과 비슷한 형태의 Fotokite, 3DR사의 신제품 Solo drone, 액션 스포츠 촬영용 무인 항공기로 유명세를 치르고 있는 하늘을 나는 개 에어도그(Airdog), 연구용으로 많이 사용되는 AR. Drone 등의 보조 제어기로 사용되어집니다.

민간용 드론에는 각 사가 개발한 Embedded OS가 사용되었습니다. Embedded OS는 한정된 임무만 수행할 수 있었으며, 소프트웨어가 제각각이기 때문에 다른 드론 여러 대를 한번에 조종하는 데 한계가 있었습니다. 최근 드론이 수행하는 역할의 범위가 확대되고 소프트웨어가 관리할 센서와 부품수가 많아지면서 전용 OS의 필요성이 절실해진 상황이 되었고 개발을 진행 중에 있습니다.

소스코드 https://github.com/PX4/Firmware

D. MultiWii(http://www.multiwii.com)

MultiWii는 Multi-rotor RC 모델을 제어하기 위한 범용의 소프트웨어으로 초기에는 Nitendo Wii 콘솔의 자이로와 가속도 센서를 이용하는 것으로부터 시작되었으며 Arduino 환경에서 개발 가능한 8-bit 기반의 AVR 시리즈 마이크로컨트롤러를 사용하는 GNU GPL v3 라이선스의 오픈 소스 FC가 탄생하였습니다.

소스코드 https://code.google.com/p/multiwii

E. Afroflight32(https://github.com/multiwii/baseflight)

BaseFlight로 불리는 Multiwii에 STM32 시리즈 MCU를 채용한 32비트 펌웨어 버전입니다.

F. Cleanflight(http://cleanflight.com)

Cleanflight는 오리지날 8비트 MultiWii 코드의 32비트 버전인 BaseFlight가 이후에 다시 정리된 오픈 소스 비행제어 소프트웨어이고 레이싱 드론을 위한 소프트웨어로 자리매김 하였습니다. 그 이후 더 나아가 자이로센서의 정보를 동기화하는 기술을 접목시켜 BetaFlight를 완성하게 됩니다. 애시당초 CleanFlight에도 GPS 기능이나 RTH(Return to Home) 기능, Waypoint 기능이 있었지만 레이싱 드론의 특성상 진화의 수순이라는 것입니다. 이와 같은 기능들을 유지하고 강화한 iNav는 고정익 드론에서 널리 사용하게 되었습니다. 이외에도 연장선에서 변속기(ESC)도 32-bit STM32 시리즈를 이용한 FC 내부에 포함하는 RaceFlight가 탄생하였고 Kiss와 같은 완성도가 높은 유료 FC가 예입니다.

G. OpenPilot(http://www.openpilot.org)

OpenPilot은 일반 민간인과 연구용으로 사용할 목적으로 OpenPilot 커뮤니티에서 생성된 GNU GPL v3 라이선스의 오픈 소스 UAV Autopilot입니다. 멀티 콥터, 헬리콥터, 고정익 항공기 및 기타 차량을 위한 고성능 플랫폼입니다. 전세계 6,000여 명의 개발자가 모인 드론 OS 개발을 위한 큰 축 중 하나로 관련 기업들 중심인 드론코드와 달리 개발자 중심의 드론 OS 프로젝트입니다. 개발자들 중심으로 운영돼 커뮤니티 성격이 강하며, OS 뿐 아니라 드론 관련 하드웨어를 함께 개발하고 있습니다.

OpenPilot은 2009년에 시작된 FC 펌웨어(On-board firmware)와 지상 조종 스테이션(Ground Control Station)으로 구분해서 개발된 FC입니다. BaseFlight보다 더 다양한 확장성을 가진 LibrePilot을 탄생시켰고 로보틱스까지 다양한 하드웨어를 지원하였지만 2015년 사라지게 되었습니다. 이후 드론 연구와 드론을 이용한 연구에 적합한 소프트웨어인 TauLabs로 발전하였고 비행 본연를 즐기기 위해 오픈 소스인 dRonin이 개발되기도 하였는데, 손쉬운 설정과 함께 골치 아픈 PID 설정을 위한 자동 튜닝(Auto Tune) 기능을 자랑합니다.

H. AeroQuad(http://aeroquad.com)

AeroQuad는 GNU GPLv3 라이선스의 오픈 소스 하드웨어와 소프트웨어 프로젝트입니다. STM32 기반의 AeroQuad32 FC 보드와 AVR Arduino 기반의 보드로 구성되어 있다. 최신 버전은 2013년 1월 이후 개발이 중지된 상태입니다.

소스코드 https://github.com/AeroQuad/AeroQuad

I. Emlid(https://emlid.com)

RaspberryPi 보드에 확장보드 형태로 연결하여 Linux 기반으로 드론을 제어할 수 있도록 한 것입니다.

소스코드 https://github.com/emlid

J. Crazyflie(http://www.bitcraze.io)

GNU GPL v3 라이선스로 다른 오픈 소스 프로젝트들이 대부분 30cm 이상의 중/대형을 목적으로 만들고 있으나, Crazyfly의 경우는 Parrot의 나라 프랑스에서 2003년에 시작된 Paparazzi 등, 작은 소형 기체를 목적으로 하고 있습니다.

소스코드 https://github.com/bitcraze


2. 비 오픈 소스 소프트웨어

A. KK 보드

ATmega644PA MCU를 사용합니다.

B. NAZA

DJI사의 제품입니다.


나. Airware 드론 OS(https://www.airware.com)

Airware 비행제어 시스템은 가상의 어떤 상용 비행체에도 설치가 가능하게 하는 유연하고 확장가능한 모듈라 아키텍처 구조를 지향하는 드론 OS의 개념입니다. 그리고, 안전 민감한 비행 제어부분과는 별도로 어플리케이션 개발이 분리되어 있습니다. 구글벤처스, 인텔캐피탈, GE로부터 자금을 투자받았습니다.


4. 오픈 소스 하드웨어

가. Ardupilot 계열 콘트롤러

오픈 소스 FC 보드의 계열 중에 많이 사용하는 것 중에 하나로서, Arduino기반의 APM(ArduPilot Mega) 계열이 있고, 32비트 ARM 프로세서를 사용하는 Pixhawk 계열이 있습니다. 이들의 확장 버전으로 Dronecode가 있습니다.

나. MultiWii 계열 콘트롤러

가장 많은 사용자들이 사용하고 있는 오픈 소스 프로젝트 중의 하나입니다. 8비트 AVR MCU 기반의 CRIUS나 Flexbot이 있으며, 32비트 ARM 기반의 NAZE32가 있고, 그중 Cleanflight 펌웨어는 상당히 작고 안정된 펌웨어로 알려집니다.

다. OpenPilot 계열 콘트롤러

OpenPilot 계열은 32비트 ARM 기반의 CC3D가 있습니다.

라. Crazyflie 계열 콘트롤러

비트크레이즈사의 Crazyfly는 32비트 ARM 계열의 콘트롤러입니다.




'Radio Control > Flight Controller' 카테고리의 다른 글

비행제어기(FC)란?  (0) 2017.03.07
AutoQuad 6 비행제어기의 스펙  (0) 2015.12.02
AutoQuad 사이트에서 소소 코드를 확인하는 법  (0) 2015.12.02
AutoQuad란?  (0) 2015.11.29
APM v2.5 vs. Crius AIOP  (0) 2014.03.04
Posted by Nature & Life


각종 센서들이 측정한 상태측정치들은 각 센서들 고유의 오차 및 잡음이 포함되기 때문에 비행제어기에서 바로 사용할 수 없습니다. 센서융합기는 자이로 센서, 가속도 센서 및 지자기 센서가 측정한 드론의 회전운동 상태측정치와 GPS 수신기 및 기압 센서가 측정한 드론의 병진운동 상태측정치들을 적절히 융합하여 각종 오차 및 잡음이 최소화 된 상태추정치를 계산합니다.


자이로 센서(Gyroscope)

관성측정장치(IMU) 내부에 있는 3축 자이로 센서를 이용해 드론 기체좌표 x, y, z 세 축이 지구관성좌표에 대하여 회전하는 각속도를 측정한 후 고정좌표로 변환된 값(Wx.gyro, Wx.gyro, Wx.gyro)을 계산합니다. 자이로 센서 측정치는 선형 미분방정식을 이용해 오일러 각도 (Φgyro, ϴgyro, ψgyro)로 변환될 수 있다. 자이로 센서 측정치는 저주파수 대역에서 바이어스(bias) 오차를 포함하기 때문에(즉, 드론이 정지해 있을 때에도 자이로 센서의 측정치가 '0'이 되지 않음) x, y, z 세 축에 대한 자이로 센서의 바이어스 오차가 제거되어야 합니다.


가속도 센서(Accelerometer)

자이로 센서의 스코프의 오차를 제거하기 위해 가속도 센서가 이용됩니다. 관성측정장치(IMU) 내부에 있는 가속도 센서를 이용해 드론 기체좌표 x, y, z 세 축의 지구관성좌표에 대한 가속도를 측정한 후 고정좌표로 변환된 값 (fx,acc, fy,acc, fz,acc)을 계산합니다. 가속도센서 측정치 역시 오일러 각도의 '롤(Φacc)'과 '피치(ϴacc)'로 변환될 수 있으며, 이 값들은 자이로 센서의 측정치를 이용해 계산한 '롤(Φgyro)'과 '피치(ϴgyro)'에 포함된 바이어스 오차를 제거하는데 이용됩니다. 하지만, 가속도 센서는 '요(yaw)'를 측정할 수 없기 때문에 자이로 센서를 이용해 측정한 '요(ψgyro)'에 포함된 바이어스 오차를 제거할 수 없습니다.


지자기 센서(Magetometer or Compass)

지자기 센서를 이용해 드론 기체좌표 x, y, z 세 축의 자북점에 대한 방향을 측정합니다. 이 값을 이용해 기체좌표의 NED 좌표에 대한 '요' 값을 계산할 수 있으며, 센서융합기는 지자기 센서로 측정한 '요(ψmag)'를 이용해 자이로 센서 측정치 '요(ψgyro)'에 포함된 바이어스 오차를 제거합니다. 고정날개 드론의 경우 몸체 전면에 피토관(Pitot Tube)을 부착해 좀 더 정확한 '요' 값을 측정할 수 있으나, 드론의 경우 몸체가 회전하면서 날아가기 때문에 피토관을 이용하기가 어렵다는 것입니다.


GPS 수신기 

GPS 수신기는 GPS 위성들로부터 수신한 신호를 이용해 NED 좌표 상에서 드론의 병진운동상태, 즉 위도(Pn.GPS), 경도(Pe.GPS), 고도(hMSL.GPS), 위도상의 속도(Vn.GPS), 경도상의 속도(Ve.GPS) 및 고도상의 속도(Vd.GPS)를 계산합니다. 여기서 첨자 MSL은 해수면(MSL: Mean Sea Level)을 의미합니다.


기압 센서(Barometer)

GPS 수신기를 통해 수신한 위치 좌표에는 항상 5~10m의 오차가 존재합니다. 민수용 GPS 수신기는 L1 주파수밴드(1.5GHz)의 C/A(Coarse-Acquisition) 코드 혹은 L2 주파수밴드(1.2GHz)의 C/A 코드 둘 중의 하나만을 수신할 수 있습니다. 하지만 군사용 GPS 수신기는 L1 C/A와 L2 C/A를 동시에 수신할 수 있어 Diversity로 인한 이득을 얻을 수 있으며, 추가로 암호화 신호(Encrypted Signal) P(Y)를 수신할 수 있어 GPS 신호가 지구의 이온층을 통과할 때 교란되는 것을 보정할 수 있습니다. 이를 이온층 보정(Ionospheric Correction라 일컫습니다. 5~10m의 GPS 고도 오차는 주로 저공비행을 하는 드론의 지상시설물들과의 충돌 위험을 야기시킵니다. 따라서 별도의 기압 센서를 이용하여 고도(hALP.baro)를 측정하기도 한다는 것입니다. 여기서, 첨자 ALP는 기압(Air-Level Pressor)를 의미하며 드론의 이륙시 기압과 현재 비행고도에서의 기압을 비교해 이륙 지점으로부터의 현재 고도를 계산합니다.


센서융합기는 회전운동상태(ΦE, ϴE, ψE)만을 추정하거나, 회전운동 상태와 병진운동상태(Plon.E, Plat.E, hE)를 동시에 추정할 수 있습니다. 회전운동상태 만을 추정하는 센서융합기를 AHRS(Attitude & Heading Reference System)라고 부르고, 회전운동상태와 병진운동상태를 동시에 추정하는 센서융합기를 관성항법기(INS; Inertial Navigation System)라고 부릅니다.


AHRS를 이용한 센서융합기

AHRS 센서융합기는 보상필터(Complimentary Filter; 상보필터)를 이용하거나 확장 칼만 필터(EKF: Extended Kalman Filter)를 이용합니다. AHRS 보상필터는 고주파 대역 특성이 좋은 자이로 센서의 상태측정치(Φgyro, ϴgyro)를 고주파 대역 필터로 추출하고, 저주파 대역 특성이 좋은 가속도 센서의 상태측정치(Φacc, ϴacc)를 저주파 대역 필터로 추출한 후 합쳐서 자이로 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE)를 비행제어기(FC)로 전달해 줍니다.


AHRS 확장칼만필더(AHRS-EKF)는 드론의 비행역학(Flight Dynamics)을 이용해 각종 오차를 제거하는 방법입니다. 자이로 센서를 이용한 측정치(Φgyro, ϴgyro, ψgyro), 가속도 센서를 이용한 측정치(Φacc, ϴacc), 지자기 센서를 이용한 측정치(ψmag) 및 GPS 수신기를 이용한 측정치(Vn.GPS, Ve.GPS, Vd.GPS)를 이용해 실시간으로 드론의 회전운동역학(Rotational Dynamics)을 확장 칼만 필터를 이용해 모델링하면서 자이로 센서 및 가속도 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE, ψE)를 계산해 비행제어기로 전달해 줍니다. GPS 수신기로 측정한 병진운동상태 측정치(Pn.GPS, Pe.GPS) 및 기압 센서로 측정한 고도측정치(hALP.baro)는 융합과정을 거치지 않고 그대로 비행제어기로 전달된다.




Posted by Nature & Life


쿼드콥터(Quadcopter)는 다음 그림에서와 같이 모터 4개의 상대적인 회전속도에 의해 비행이 제어됩니다. 시계방향(CW)으로 회전하는 모터들에 장착되는 프로펠러를 '푸셔(Pusher) 프로펠러'라 부르고 반시계방향(CCW)으로 회전하는 모터들에 장착되는 프로펠러를 '트랙터(Tractor) 프로펠러'라 부릅니다.



  • Yaw Left - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 > 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합

  • Yaw Right - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 < 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합

  • Hovering - 시계방향으로 회전하는 모터 ①, ③의 회전속도의 합 = 반시계방향으로 회전하는 모터 ②, ④의 회전속도의 합


소위 Hovering(정지 비행)은 전체 토크(Torque)가 상쇄되어 드론이 공중에서 정지하는 것이며, 이러한 상황에서 모든 프로펠러들이 발생시키는 추력의 합이 드론의 무게보다 크거나 작을 경우, 드론은 수직으로 상승(Throttle Up) 혹은 하강(Throttle Down)을 합니다.


  • Pitch Up(후진) - 전면에 위치한 모터 ①, ②의 회전속도의 합 > 후면에 위치한 모터 ③, ④의 회전속도의 합

  • Pitch Down(전진) - 전면에 위치한 모터 ①, ②의 회전속도의 합 < 후면에 위치한 모터 ③, ④의 회전속도의 합


  • Roll Left - 우측에 위치한 모터 ①, ④의 회전속도의 합 > 좌측에 위치한 모터 ②, ③의 회전속도의 합

  • Roll Right - 우측에 위치한 모터 ①, ④의 회전속도의 합 < 좌측에 위치한 모터 ②, ③의 회전속도의 합


전체 프로펠러들의 중력방향 추력의 합이 드론의 무게와 동일 할 경우, 드론은 좌측 혹은 우측으로 수평비행을 하게 됩니다.



모터 ①, ②, ③, ④의 회전속도를 각각 라 하고 모터들에 장착된 프로펠러들이 발생시키는 전체 추력을 라 할 때, 각 모터들의 회전속도와 오일러 각도의 변화량  및 추력의 변화량 과의 관계는 다음 수식으로 표현할 수 있습니다.



위 식을 행렬식으로 나타내면 다음과 같습니다.



그러므로 각 모터의 회전속도 관점에서 다음과 같이 나타낼 수 있다.



위 식을 시간 에서 오일러 각도 및 추력의 변화량을 시간 증분을 이용해 표시하면 다음과 같습니다.



위 식에서 는 시간 에서 Tx(송신기)로부터 수신한 비행명령어이고, 는 시간 에서 각종 센서들을 이용하여 추정한 드론의 상태추정치이며, 는 드론의 비행제어기가 수행하는 함수로 볼 수 있습니다. 이 경우, 첨자 ''는 desired(Tx가 원하는)의 ''로 대체할 수 있고, 첨자 ''은 Estimated(센서융합기가 추정한)의 ''로 대체할 수 있습니다.



Tx에 조정키들을 움직여 오일러 각도 및 추력으로 구성된 비행명령어 를 드론에 송신하고, 드론의 Rx(수신기)는 이 비행명령어를 받아서 비행제어기(FC)에 전달합니다. 센서융합기는 자이로 센서, 가속도 센서 및 지자기 센서를 이용해 측정한 회전운동 상태측정치 와 기압 센서를 이용해 측정한 고도측정치 을 적절히 융합해 각 센서들의 오차가 최대한 제거된 상태추정치 를 계산해 비행제어기에 전달합니다. 비행제어기는 Rx로부터 받은 비행명령어를 센서융합기가 보내온 상태추정치와 비교해 그 차이 값을 이용해 각 모터들의 회전속도를 계산합니다. 여기서 첨자 'M'은 Measured(각종 센서들이 측정한)을 의미합니다.


드론은 Tx를 이용하지 않고 GPS 경로비행을 할 수도 있습니다. 한편으로, 센서융합기는 드론의 회전운동 상태측정치 와 GPS 수신기와 기압 센서를 이용해 측정한 병진운동 상태측정치 를 함께 융합하여 센서 오차들을 좀 더 줄일 수 있습니다. 여기서 는 위치벡터, 는 속도 벡터, 는 고도를 의미한다. 아래 그림에서 센서융합기는 드론의 회전운동 및 병진운동 상태측정치를 융합하여 자이로 센서와 가속도 센서의 오차가 최대한 제거된 상태추정치 를 비행제어기에 전달하고, 비행제어기는 Rx로부터 전달 받은 비행명령어 혹은 GPS 비행경로 좌표와 상태추정치를 비교해 그 차이 값을 이용하여 각 모터들의 회전속도를 계산합니다. 여기서 'lon'은 longitude(경도), 'lat'는 latitude(위도)의 약자입니다.




Posted by Nature & Life
Radio Control/etc2017. 3. 8. 16:36


드론에서 비행제어기(FC)와 각 암(arm)의 끝에 위치하는 모터들은 ESC(Electronic Speed Controller)를 통해서 LiPo 밧데리로부터 전원이 공급됩니다. 수신기(Rx)와 각종 센서들은 대부분 비행제어기에서 공급되는 구조를 갖습니다. 모터에 공급되는 전원은 밧데리로부터 곧바로 공급되는데 이는 하나의 모터가 수십 암페어의 전류를 소비하므로 밧데리의 셀(cell)이 증가할수록 유리하다는 것입니다.


하지만 MCU와 각종 센서들을 포함하는 비행제어기는 5V의 안정된 전원이 요구되므로 일종의 전압 레귤레이터(regulator)인 UBEC(Universal Battery Elimination Circuit)를 이용하여 밧데리로부터 정류하여 전원을 공급받게 됩니다. 사실상 대부분의 전력은 양력을 얻기 위한 모터에 의해 소비되고, 수십 암페어의 전류를 소모하기에 IR 드롭이 불가피하여, 비록 드론의 중심에 밧데리를 위치하더라도 미세한 차이는 각 암의 모터의 인가전압 차이로 나타나 기체의 안정성을 해치게 됩니다. 이를 고려하여 안정적으로 전력을 각 암에 동일하게 공급하고 저항을 최소화한 전력 재분배를 위한 보드의 기하학적 설계가 요구된다는 것입니다. 이러한 보드를 Power Distribution Board(전력 분배 보드)라 일컫습니다.



기존의 모형 헬기에서는 ESC에서 제공하는 BEC(Battery Elimination Circuit)를 그대로 사용하였지만, 멀티로터(multi-rotor)는 다수의 ESC가 존재하기 때문에 보다 안정된 ESC의 선택에 의미가 없고, 다양한 센서들과 카메라, 텔레메트리(telemetry) 등 다양한 장치들의 추가로 ESC에서 자체적으로 제공하는 BEC의 용량이 한계에 부딪쳤고, ESC의 특성상 비행제어기가 간섭에 자유롭지 못하고 동작 온도의 상승으로 양질의 전원이 되지 못한다는 것입니다.


뿐만아니라 어느 순간에 모터의 추력을 최대화하면 IR 드롭 등의 이유로 UBEC 전원에 순간적인 전압강하로 이어지고, 이는 비행제어기 내에 민감한 센서들이나 MCU에 오류를 일의킬 수도 있다는 것입니다. 따라서 이러한 전기적 간섭의 문제는, 센서 모듈간에 혹은 센서 모듈과 비행제어기, 모터나 ESC와 비행제어기 등 서로간의 EMI 현상과 함께, 향후 추가되는 센서들이나 각종 장치로 인해 Power Distribution Board의 중요성의 증가하고 있다는 것입니다.



 


'Radio Control > etc' 카테고리의 다른 글

입문자를 위한 F450 기체 바디  (0) 2015.04.30
Posted by Nature & Life


과거 모형 헬기와 같은 전통적 RC는 메인 로터가 양력을 얻어 부양하고 메인 로터가 회전할 때 회전각에 따른 로터의 피치를 조절하여 헬기가 원하는 방향으로 나아가는데, 메인 로터로 인한 헬기 동체의 반동 토크를 상쇄시킬 목적으로 테일 로터도 함께 회전시키게 됩니다(안정성을 강조한 동축반전 헬기는 제외). 이때 헬기 동체가 정숙하게 방향성을 유지하고 호버링하거나 이동하기 위해서는 자이로(gyroscope) 센서의 도움을 받아 실시간 보상하였는데, 이것이 사실 비행 자동화의 전부였으며 나머지는 오직 조종자의 오랜 비행 경험을 토대로 한 자동 반사적인 키감에 의존하여 매우 역동적인 스포츠를 즐기게 되었습니다.


반면에 드론은 쿼드콥터를 예를 들어, 4개의 프로펠러로 양력을 얻고 원하는 방향으로 나아가기 위해서는 개별 로터의 회전속도를 정교히 제어해야 하는데 이는 컴퓨터의 도움없이는 거의 불가능하다는 것입니다. 이러한 이유로 드론의 비행제어기(FC; Flight Controller)는 사람의 심장과도 유사하여 수신모듈로 부터 수신된 명령 신호를 처리하여 각 암(ARM)의 모터를 제어하고, 게다가 가속도계/자이로 센서를 포함하는 관성측정장치(IMU), 바로미터, 컴파스/지자계 등의 센서 데이터를 기반으로 안정적인 비행이 가능하도록 한다는 것입니다.


최근에는 GPS 센서를 탑재하여 GPS 데이터에 기반하여 사전에 입력된 경유지(waypoint)를 순차적으로 운항하거나 RTL(Return to Launch)라는 자동 회귀 기능 등의 탑재로 조종자의 명령이나 각종 기체 이상 등을 감지하여 이륙 장소로 스스로 귀환시키거나, 영상 및 소리 센서들을 활용한 충돌회피 등등 다양한 기능들이 추가되면서 FC는 날로 매우 빠른 연산을 수행하는 MCU가 필요한 추세라는 것입니다.


이를 증명하듯 수 년전에는 오픈 소스에 기반한 APM(AutoPilot Mega) 보드나 multiwii 보드는 8bit 16MHz의 ATmega328이나 ATmega2560의 MCU가 사용되었는데, 그 후로 AruPilot의 PixHawk(3DR)은 훨씬 강력한 32bit 168MHz의 STMicro사의 ARM Cortex M4를 사용하게 되었습니다. 현재의 오픈 소스의 드론 플랫폼으로 가장 인기있는 PX4는 64bit quad-core 2.26GHz의 퀄컴사 SOC(System on Chip) 기반 스냅드래곤 SOC(System on Chip)을 채용하고 있는 실정입니다.



사실 드론이 안정적인 비행으로 대중화를 선언한 그 이면에는 고성능의 MCU 채용만큼이나 FC에서 중요한 것은 센서 기술의 진화에 있다고 해도 지나치지 않다라는 것입니다. 각종 센서들로부터 드론은 비행 속도/각도, 좌표, 위치 데이타 등을 실시간으로 MCU에 제공하여 상당히 안정적인 비행을 가능하게 하지만, 최근에는 저고도에서의 정확한 고도 유지와 포지션홀드 기능을 위해 초음파센서, 옵티컬플루우(Optical Flow) 센서 등이 사용되고 있으며, 또한 충돌회피를 위해 카메라 센서 기반한 SLAM(SImultaneous Localization and Mapping)등의 알고리즘들이 활발히 연구되고 있다는 것입니다.



Posted by Nature & Life
Drone News/Review2017. 2. 23. 22:13


Cheerson CX-20 Auto-Pathfinder는 'Quanum NOVA'라고도 불리우며 비행제어기(flight controller)로서 APM v2.5.2가 사용되며 firmware는 ArduCopter v3.1.2입니다. APM v2.5.2는 외장 지자기(magnetometer) 센서을 사용하며 메인 마이크로컨트롤러는 ATmega2560입니다.


다음은 Cheerson CX-20 Auto-Pathfinder의 내부 구성입니다.


CX-20 Auto-Pathfinder(Quanum NOVA)의 내부 모습


외장 I2C magnetometer와 APM v2.52


Barometric sensor를 보호하기 위해서 폼(foam)을 사용


APM과 프레임 사이에 진동을 차단하기 위해서 폼(foam)을 사용


GPS 


APM은 위의 CPU 보드와 아래의 I/O 보드로 구성


I/O 보드


Brushless 모터와 ESC


CPU 보드(APM v2.5.2)


I/O 보드


Cheerson CX-20 Auto-Pathfinder의 Open Source Version의 구입처:



Posted by Nature & Life
Drone News/News2016. 1. 10. 18:08


근래에 드론(Drone)이 레저 스포츠로 각광을 받으며 국내에서도 동호회가 봇물처럼 생겨나고 있습니다. 이런 이유로 야외나 주변 공원에서 드론을 날리를 모습을 심심치 않게 보게 됩니다. 특별히 드론으로 레이싱 경기를 하지 않는 이상 일반인도 구매에서부터 쉽게 비행할 수 있기 때문입니다.


예를 들어, 헬기를 비행하는 기존의 RC에서는 기체가 순간적으로 기울어지면 반대방향으로 싸이클릭을 주어 기체를 인위적으로 안정시키는데, 이는 거의 무의식적으로 이루어져야 추락을 면할 수 있으므로 비행을 즐기기 위해서는 마치 자전거를 배우는 것처럼(사실 이보다는 어렵습니다!)상당한 기간의 비행기술 습득 및 반복 연습이 요구되었습니다.


하지만 요즈음 드론은 기체의 수평을 잡아주는 장치나 각종 센서의 발달로 기체가 기울어지면 스스로 안정화시키고, 고도를 스스로 유지한다던가 아니면 비행지점을 설정해 놓으면 스스로 비행하는 자율 비행 기술이 발달함에 따라, 조종자는 이동하고자 하는 방향으로 조종간을 주기만 하면 되기 때문에 일반인도 쉽게 비행 가능하며, 전용 조종기 대신 스마트폰으로도 간단히 조종 가능하다는 것입니다.


뿐만아니라 드론의 대중화는 드론에 필요한 장치를 개발하고 판매하는 업체가 다양화되면서 장치들의 일정한 표준화가 이루어져, 완전히 조립된 기체에 싫증이 난 매니아층이나 성능 개선, 비용을 줄이기 위해서 드론 자작을 시도하는 사람들도 증가하는 추세라는 것입니다. 이러한 DIY(Do It Yourself)를 지향하는 사람들은 비행만큼이나 드론의 조립에도 특별한 경험과 즐거움을 갖게 된다는 것입니다.


하지만 드론을 자작하기 위해서는 드론에 대해서 어느 정도 지식이 요구되며 이로 인해서 어린이용 장난감과도 구분이 된다는 것입니다. 드론 부품은 국내외 온라인 사이트나 오프라인 매장에서 쉽게 구할 수 있는데, 어떤 분은 3D 프린터를 이용해서 기체의 프레임을 직접 자작하기도 합니다. 기체의 프레임이란 기체에서 비행제어기나 추진용 모터, 수신기, 각종 센서들을 제외한 이를 탑재하는 기구적인 기체를 의미합니다.


드론은 날개 수에 따라 쿼드콥터나 옥토콥터 등으로 구분되는데, 날개를 축 혹은 암(Arm)이라고 합니다. 날개가 4개이면 쿼드콥터이고 8개이면 옥토콥터가 되며 날개 수가 많을 수록 기체는 안정화되고 양력이 커서 무거운 짐을 더 많이 매달고 비행할 수 있습니다. 하지만 날개 끝에 프로펠러(줄여서 프롭(prop.))를 회전시키는 모터도 같이 증가하므로 밧데리 소모량이 많고 이는 체공시간의 감소를 가져와 고용량 밧데리의 사용으로 비용이 증가한다는 것입니다. 프롭을 회전하는 것이라는 하여 '로터(rotor)'라고도 부릅니다.


트라이콥터(Tricopter)


그러므로 초보자는 4개의 날개를 가진 쿼드콥터를 선택하는 것이 바람직하며, 드론을 전후좌우로 움직이기는 방향타를 주고 스로틀을 조절할 수 있는 저렴한 4채널의 조종기면 충분하다는 것입니다. 드론에 카메라를 장착하여 기구적으로 비행 중에 움직이길 원한다면 데이터를 주고받을 추가적인 채널이 필요하게 되는데, 채널의 증가는 곧 조종기의 비용으로 이어진다는 것입니다. 여기서 스로틀(throttle)이란 드론이 지상에서 양력을 얻어 이륙하고 착륙할 수 있도록 수직방향의 '엑셀레이터'와 같은 것입니다.


통상 초보자가 입문단계에서 기체의 비용은 20만원 전후도 있으며 4채널 조종기를 포함하여 40~60만원 정도로 구입할 수 있습니다. 기체가 커지거나 장착한 카메라 등의 조종이 필요하다면 비용은 증가하게 됩니다. 보통 초보에게는 250급 쿼드콥터가 추천되는데 250급이란 양 암(축)의 길이로 기체의 수평방향 폭과 같으며 이 길이가 250mm라는 것입니다. 완제품 드론의 구입시 조종기를 제외한 가격을 예시하는 경우도 많아 반드시 알아보고 구입해야 합니다.


드론은 구성은 기체 프레임(frame)과 모터(motor), 변속기(Electronic Speed Controller; ESC), 수신기(Receiver; Rx), 비행제어기(Flight Controller; FC), 밧데리(battery) 등으로 구성되며 드론을 조종할 수 있는 조종기(Transceiver; Tx)가 필요하게 됩니다. 여기서 카메라를 장착한다만 카메라 등의 별도의 장치가 필요하게 되고, 위성 신호를 수신하는 경우에 비행제어기에 포함되지 않고 외장 모듈로서 구입하여 장착하는 경우가 많습니다. 



기체 프레임(frame)은 근래에 유리 섬유(fiberglass sheet; G10)나 탄소 섬유(carbon fiber)의 재질이 대부분인데 특히 후자는 가볍고 잦은 추락에도 강인함이 있기 때문입니다. 모터는 프롭을 회전시켜 추력을 발생시키는 중요한 동력원으로 브러시(brush)가 있는 DC 모터보다는 브러시가 없는 BLDC(Brushless DC) 모터를 사용하게 됩니다. 이는 브러시로 인하여 기구적인 내구성 문제도 있지만 고효율이라는 장점으로 고효율은 밧데리 수명과도 직결되기 때문입니다.


BLDC 모터는 우수한 특성을 갖지만 이를 제어하기 위해서는 까다로와 마이크로컨트롤러를 사용하여 제어기를 구성하게 되며, 최근에서 BLDC의 부류이지만 유도 전동기와 개념이 동일한 PMSM 타입의 모터가 사용되는 추세입니다. 이는 BLDC 모터보다 정밀한 제어와 효율이 뛰어나지만 보다 고성능의 마이크로컨트롤러가 요구된다는 단점이 있습니다. 이러한 제어기는 전자적으로 속도를 제어한다고 하여 '전자 변속기'라 부르고 통상 ESC라 합니다. 따라서 쿼드콥터이면 각각 4개의 모터와 프롭 그리고 ESC가 필요하게 됩니다.


수신기와 송신기는 동일한 주파수를 사용하여 데이터를 주고 받는 장치로 기존의 주파수 변조 방식(FM)에서 크게 DSM(Digital Spectrum Modulation)과 FASST(Futaba Advanced Spread Spectrum Technology) 등의 디지털 방식으로 진화하였고, 수 GHz의 주파수 사용으로 대역폭이 늘어나 이제는 송신기에서 일방적으로 데이터를 보내기보다는 기체의 센서로부터 각종 데이터 받아 조종자에게 보여주는 양방향 방식으로 변천하였고, 높은 주파수의 사용은 안테나 길이의 감소를 가져와 송신기의 거추장스러운 긴 안테나의 모습은 이제 사라지게 되었습니다.



또한 밧데리는 근래에 리튬폴리머(Li-Po) 타입을 사용하는데, 최소 1개의 셀이 3.7V로 250급 쿼드콥터에서 3개정도의 셀을 사용하여 11.1V를 만들게 됩니다. 이 3개의 셀을 '3S'라 쉽게 표현하고 3개의 셀을 직렬 연결하여 사용함을 의미합니다. 스마트폰에도 사용하는 리튬폴리머 전지의 특징은 충전용량이 높고 4개의 모터를 강력하게 회전시킬 수 있는 우수한 방전능력을 가지지만 사용시에나 충전시에 조건을 만족시키지 못하면 폭발하는 성질이 있어 전용 충전기가 반드시 필요하게 됩니다. 이는 대부분 별도의 비용이고 대부분의 쿼드콥터에서 비용이 합리적인 선에서 체공시간은 20분 정도로 20분 후면 밧데리가 완전 방전되게 됩니다.


마지막으로 비행제어기는 드론의 두뇌역활을 하는 마이크로컨트롤러가 탑재된 중앙처리장치로 송신기에서 보낸 지령을 수신기로 받아 이를 해석하고, 축의 모터에 연결된 변속기를 제어하는가 하면 고도센서와 같은 각종 센서들의 정보를 이용하여 기체의 안정도를 꾀하고, 필요하다면 조종자에게 알리며 센서를 이용하여 고도를 유지하거나 인공위성 신호를 분석하여 자동비행 모드에서 정해진 절차에 따라 기체의 비행을 스스로 시행하기도 합니다.



드론의 자작은 다양한 전기전자적인 지식을 요구합니다. 어디까지 개인의 취향에 맞게 개선하느냐에 따라 단순한 납땜을 비롯해 메이커만을 변경하는 문제에서 비행제어기나 변속기 내의 펌웨어까지도 수정할 수 있습니다. 후자의 경우 상당한 지식과 노하우가 요구되며 전문가이더라도 상당한 시행착오가 있을 수도 습니다. 드론 비행 자체는 결코 장난감이 아니며 남에게 상해 이상의 피해를 가할 수 있슴을 직시하고 안전에 만전을 기하여야 할 것입니다.


최근에 드론으로 인한 사고와 주변 안전이 우려되어 관련법의 마련이나 개정이 대두되고 있습니다. 또한 서울지역의 약 80%가 드론 비행 제한 구역이기에 드론을 날릴 때에서 각별히 유의해야 할 것입니다. 드론을 직접 자작하여 비행하면 기쁨은 분명 배가 될 수 있습니다. 하지만 때로는 인고의 노력과 유연한 인내심이 요구될 수도 있습니다. 자작에 앞서서 동호회 등에서 주변 지식에 대한 두루 섭력이 반드시 요구될 것입니다.



Posted by Nature & Life
Radio Control/ESC2015. 12. 8. 21:19


The PX4 dev team is working on a brushless motor controller (ESC) with UAVCAN interface. Please contact the mailing list for further information. ESCs will be available early 2015.


PX4 dev 팀은 UAVCAN 인터페이스로 구동하는 브러시리스 모터 제어기(ESC)를 개발 중에 있습니다. 자세한 정보는 메일링 리스트로 연락주시기 바랍니다. ESC는 2015년 전반에 출시될 것입니다.


Hardware: The reference hardware is Pixhawk ESC v1.4. While the ESC can run with other flight controller hardware as well, the reference flight controller is Pixhawk, and hence the hardware designation.


하드웨어: 참고할 하드웨어는 Pixhawk ESC v1.4입니다. ESC는 게다가 다른 비행제어기(FC)에서도 사용될 수 있습니다. 참고할 비행제어기는 Pixhawk이고 최종 목표가 됩니다.





Firmware: The firmware is called PX4ESC and runs on all compatible ESC designs. Please refer to the PX4ESC page to learn more.


펌웨어: 펌웨어는 PX4ESC라 불리고 모든 호환가능한 ESC에서 구동가능합니다. 자세한 것은 PX4ESC를 참조하시기 바랍니다.


다음의 인터페이스를 지원합니다.

    • UAVCAN

    • Command line interface (CLI) over UART (see the connector pinout below)

    • PWM input


Please refer to the PX4ESC firmware documentation to learn more about interfacing.


Developer Connector Pinout






'Radio Control > ESC' 카테고리의 다른 글

VESC 하드웨어(v4.x) 설정 메뉴얼  (0) 2018.01.24
대표적인 상업용 VESC 구입처  (1) 2018.01.22
ESC32의 스펙  (0) 2015.12.04
RapidESC, 오픈 소스 펌웨어 개발 사이트  (0) 2014.06.19
RapidESC FAQ's  (0) 2014.06.11
Posted by Nature & Life


AutoQuad 6 Flight Controller


What makes the AutoQuad flight controllers special?


무엇이 AutoQuad 비행제어기(FC)를 특별하게 만들까요?


Besides using top quality sensors and MCU, AutoQuad differs in its approach of using sensor calibration techniques and calculating the magnetic profile of the entire multirotor creating the ultimate stable flying and navigation experience.


최고 양질의 센서들과 MCU를 사용한 것 외에도 AutoQuad는 센서 보정 기술을 사용하는 그리고 최고의 안정된 비행과 조종 경험을 갖게 하는 전체 멀티로터의 자기 프로파일을 계산하는 접근 방식에서부터 차이가 납니다.





Summary of specifications of the AQ 6.x flightcontroller hardware

    • 2″ x 2.5″ main board with 4.5×4.5cm mounting hole pattern

    • Input voltage: 6.5v => 18v

    • 2 High efficiency DC/DC converters, separate power to flight controller logics and accessories.

    • STM32F407 32bit Cortex M4 microcontroller (1MB flash)

    • Standard Arm 10 pin 0.05″ pitch SWD connector

    • 14 general purpose PWM controllers / receivers (powered or un-powered)

    • Dedicated Spektrum satellite (remote receiver) 2.4Ghz R/C radio connector

    • uSD card slot driven by 4bit SDIO capable of 100Mb/s transfer (up to 32GB storage)

    • onboard uBlox LEA-6T GPS module with battery backup and time pulse capture

    • u.FL active GPS antenna connector

    • optional external bi-directional telemetry radio via standard 6 pin FTDI connector – powered up to 1A

    • I2C bus connector for I2C ESC’s (or other I2C devices)

    • X, Y Mag: HMC6042

    • Z Mag: HMC1041Z

    • X, Y Gyro: IDG500

    • Z Gyro: ISZ500

    • Accel: ADXL325

    • Pressure Sensor: MP3H6115A (optional 2. tube sensor)

    • Battery voltage monitor


Onboard IMU options:


Summary of capabilities of the AQ 6.x firmware

    • Fly extremely stable yet offer full dynamic control to the pilot.

    • Limit flying angles.

    • Mavlink 1.0x compatible protocol, Ground Stations for Win, Mac, Linux & Android

    • Very accurate position hold, depending on GPS reception a hold within 15-30 cm is possible.

    • Altitude override (ascend / descend) during position hold with controlled vertical speed.

    • Full mission flight, speed, heading and 'loiter time' is settable.

    • Return to home position, altitude is also recorded during home position set.

    • POI (point of interest), autonomous circling around given coordinates

    • Heading Free flight mode, Follow Me, Click & Go (needs exp. firmware)

    • Radio loss detection and event triggering.

    • Low battery detection and event triggering.

    • 2 axis gimbal control with pitch angle override on transmitter.

    • Gimbal working angle and response time is settable.

    • Gimbal servos can use 50Hz (analog) to 400+ Hz (digital) settable.

    • Radio options: Spektrum satellite (10 & 11bit), S-bus receiver, (C)PPM input, SUMD (Graupner) M-Link (Multiplex)

    • User Addon Waypoint recording and playback using transmitter switch.

    • User Addon External LED / Piezo signaling for status and events, MAVLink telemetry for Graupner HOTT radios





'Radio Control > Flight Controller' 카테고리의 다른 글

비행제어기(FC)의 역사와 종류(1)  (1) 2020.03.28
비행제어기(FC)란?  (0) 2017.03.07
AutoQuad 사이트에서 소소 코드를 확인하는 법  (0) 2015.12.02
AutoQuad란?  (0) 2015.11.29
APM v2.5 vs. Crius AIOP  (0) 2014.03.04
Posted by Nature & Life



ARM 기반에 32 비트 MCU(STM32 계열)을 사용하여 비행제어기 보드(Flight Control Board)와 ESC를 만든 AutoQuad 프로젝트를 소개합니다. MCU가 갖는 빠르고 강력한 이점 외에도 C언어 기반의 ESC를 포함한 완전한 오프 소스 프로젝트라는 것입니다.


AutoQuad is an Open Source firmware project with closed source hardware. It is aimed at providing a flight controller board with stabilization, dynamic flight and autopilot features. The community can enhance the AutoQuad code. The powerful hardware with a 32 bits MCU and a selection of the best IMU sensors form the base for the AutoQuad flight controller, the possibilities are endless and only limited by the imagination and skills of the coders.


AutoQuad는 비공개 하드웨어를 사용한 오픈 소스 펨웨어 프로젝트입니다. 이는 안정성과 역동적인 비행 그리고 자동 항법 특징을 갖는 비행 제어 보드를 공급하는데 목적이 있습니다. 이 커뮤니티는 AutoQuad 코드를 진보시킬 수 있습니다. 32 비트 MCU와 가장 훌륭한 IMU 센서들의 장착한 강력한 하드웨어로 AutoQuad 비행제어기의 기본을 갖추었습니다. 그 가능성은 무한하고 단지 코드를 프로그램하는 사람의 상상력에 의해서 제한될 뿐입니다.


The current code base is targeting multicopters up to 14 motors. However the platform is flexible and can be adapted to fixed wing or single rotor applications.


현재의 코드는 14 모터까지 장착한 멀티콥터를 목표로 합니다. 그러나 개발환경은 유연하고 고정익 혹은 단일 로터를 갖는 기체에도 적용될 수 있습니다.


AutoQuad has recognized the need for specially adapted speed controllers or ESC’s. During the initial project setup, an 32bit ESC is developed: the ESC32. As with AutoQuad, the ESC32 is based on open source code, but closed source hardware.


AutoQuad는 특별한 속도 제어기 혹은 ESC를 요구해왔습니다. 초기 프로젝트 착수 동안에 32 비트 ESC가 개발되었습니다: ESC32. AutoQuad와 함께 사용되어지기 때문에 ESC32는 오픈 소스 코드 기반이지만 비공개 하드웨어에 사용되어집니다.



다음은 실제 프로젝트의 로드맵(Actual Project Timeline)니다.

Actual Project Timeline




'Radio Control > Flight Controller' 카테고리의 다른 글

AutoQuad 6 비행제어기의 스펙  (0) 2015.12.02
AutoQuad 사이트에서 소소 코드를 확인하는 법  (0) 2015.12.02
APM v2.5 vs. Crius AIOP  (0) 2014.03.04
다양한 Multiwii 보드  (0) 2014.03.03
Multiwii란?  (0) 2014.02.26
Posted by Nature & Life