Subscribe to get a 5% discount.
Free Shipping on All FPV Products Over $199

MAD Motor Components Co., Ltd

드론이 빠르게 대중화된 것은 주로 오픈소스 비행 컨트롤러의 발전 덕분입니다. 드론의 발전을 가로막았던 핵심 장치가 바로 오토파일럿이기 때문입니다. 그렇다면 오픈소스 비행 컨트롤러란 무엇이며 어떻게 발전해 왔을까요?

무인 항공기의 복잡한 세계에서 쿼드콥터는 구조가 단순하고 사용이 쉬우며 비용이 낮아 대중의 주목을 가장 먼저 받았습니다.

그러나 쿼드콥터는 가장 높은 수준의 비행 제어 능력을 요구하며, 이로 인해 MEMS 센서 기반의 다수의 오픈소스 비행 컨트롤러가 등장했습니다.

오픈소스의 정의

오픈소스는 최초로 오픈소스 소프트웨어에 적용된 개념을 말합니다. 오픈소스 이니셔티브(Open Source Initiative)는 소스 코드를 대중이 사용할 수 있고 그 사용, 수정, 배포가 라이선스에 의해 제한되지 않는 소프트웨어를 설명할 때 이 용어를 사용합니다.

각 오픈소스 프로젝트는 팀이나 개인이 관리하는 자체 포럼을 가지고 있으며, 오픈소스 코드가 정기적으로 공개됩니다. 프로젝트에 관심 있는 프로그래머는 코드를 다운로드하여 수정하고 자신의 작업물을 업로드할 수 있습니다. 그러면 관리자가 여러 수정 사항 중 적절한 것을 선택하여 프로그램 개선에 활용하고 새 버전을 배포합니다.

오픈소스 소프트웨어의 발전은 점차 하드웨어와 결합되어 오픈소스 하드웨어(OSHW)로 이어졌습니다. 소프트웨어와 달리 물리적 자원은 항상 물리적 제품을 만드는 것을 목표로 해야 합니다.

따라서 오픈소스 하드웨어 라이선스에 따라 물품(제품)을 생산하는 개인과 기업은 원래 설계자의 승인을 받기 전에 해당 제품이 제조, 판매 또는 허가되지 않았음을 보장하고 원래 설계자가 소유한 상표를 사용하지 않을 의무가 있습니다.

하드웨어 설계의 소스 코드는 다른 사람이 특정 형식으로 입수하여 수정할 수 있습니다. 오픈소스 하드웨어는 기술적 자유를 가능하게 하면서 지식 공유를 제공하고 하드웨어 설계의 열린 소통과 거래를 장려합니다.

오픈소스 하드웨어(OSHW) 1.0의 정의는 오픈소스 소프트웨어의 정의를 기반으로 합니다.

이 정의는 데비안 자유 소프트웨어 지침의 일부로 Bruce Perens와 데비안 개발자들에 의해 만들어졌습니다.

오픈소스 비행 제어란 무엇인가?

오픈소스 하드웨어의 개념을 이해하면 오픈소스 비행 컨트롤러의 개념도 더 쉽게 이해할 수 있습니다.

이른바 오픈소스 비행 컨트롤러는 오픈소스 사상을 기반으로 한 오픈소스 오토파일럿(Open Source Auto Pilot) 프로젝트로, 오픈소스 소프트웨어와 하드웨어를 모두 포함합니다. 소프트웨어는 비행 제어 하드웨어의 펌웨어와 지상국 소프트웨어로 구성됩니다.

애호가들은 소프트웨어 개발에 참여할 수 있을 뿐만 아니라 하드웨어 개발에도 참여할 수 있습니다. 하드웨어를 구매하여 소프트웨어를 개발하거나 직접 하드웨어를 제작할 수 있어, 더 많은 사람이 프로젝트의 개발 성과를 자유롭게 누릴 수 있습니다.

오픈소스 프로젝트의 사용은 상업적 의미를 가지므로, 각 오픈소스 비행 컨트롤러 프로젝트는 개발자와 사용자의 권리를 정의하는 공식 법적 조항을 제공합니다. 오픈소스 비행 컨트롤러마다 법적 정의가 다릅니다.

오픈소스 비행 제어의 발전

1세대 오픈소스 비행 제어 시스템은 Arduino 또는 이와 유사한 오픈소스 전자 플랫폼을 기반으로 하며, 다양한 MEMS 센서를 확장 연결할 수 있어 드론이 원활하게 비행할 수 있게 합니다. 주요 특징은 모듈성과 확장성입니다.

2세대 오픈소스 비행 제어 시스템은 대부분 자체 오픈소스 하드웨어, 개발 환경 및 커뮤니티를 갖추고 있습니다. 완전 통합 하드웨어 아키텍처를 채택하여 10DOF 센서 전체와 제어 MCU, 심지어 GPS 장치까지 하나의 회로 기판에 통합하여 신뢰성을 높였습니다. 자세 제어 시스템(IMU)에는 전디지털 3축 MEMS 센서를 사용하며, 기체가 자율 항법을 수행하도록 제어할 수 있고 무선 및 지상국과 통신할 수 있어 완전한 오토파일럿의 기능을 갖추고 있습니다. 이러한 유형의 비행 제어는 고정익 항공기, 멀티로터 항공기, 헬리콥터, 차량 등 다양한 무인 장치를 지원할 수 있으며, 수동 비행, 반자율 비행, 완전 자율 비행 등 다양한 비행 모드를 갖추고 있습니다. 2세대 비행 제어의 주요 특징은 높은 통합도와 높은 신뢰성이며, 기능은 상용 오토파일럿 수준에 근접합니다.

3세대 오픈소스 비행 제어 시스템은 소프트웨어와 인공지능 분야에서 혁신을 이룰 것입니다. 군집 비행, 이미지 인식, 자율 장애물 회피, 자동 추적 비행 등 고급 비행 기능을 포함하며, 머신 비전, 클러스터링, 개발 과정의 플랫폼화 방향으로 발전할 것입니다.

Arduino 비행 제어

오픈소스 비행 제어의 발전을 이야기하려면 유명한 오픈소스 하드웨어 프로젝트인 Arduino부터 시작해야 합니다.

Arduino는 2005년 이탈리아 Interaction Design Institute Ivrea에서 Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, Nicholas Zambetti가 개발한 최초의 오픈소스 비행 제어입니다.

Arduino는 먼저 전자 개발 애호가를 위한 유연한 오픈소스 하드웨어 플랫폼과 개발 환경을 구축했습니다. 사용자는 Arduino 공식 웹사이트에서 하드웨어 설계 문서를 입수하여 실제 설계 요구에 맞게 회로 기판과 부품을 조정할 수 있습니다.

Arduino는 Arduino IDE 소프트웨어를 통해 소스 코드를 확인하고 직접 작성한 코드를 업로드할 수 있으며, C와 C++ 기반의 Arduino 언어를 사용합니다. 배우기 매우 쉬우며 Arduino IDE는 Windows, Macintosh OSX, Linux의 세 가지 주류 운영체제에서 실행할 수 있습니다.

이 플랫폼이 애호가들에게 점차 받아들여지면서 다양한 기능의 전자 확장 모듈이 등장했고, 그중 가장 복잡한 것이 MEMS 센서를 통합한 비행 컨트롤러였습니다.

더 나은 비행 제어 설계 소스 코드를 확보하기 위해 Arduino는 자사의 비행 제어 소스 코드를 공개하기로 결정하여 오픈소스 비행 제어의 발전 경로를 열었습니다. 유명한 오픈소스 비행 제어 시스템인 WMC와 APM은 Arduino 비행 제어의 직접적인 파생 제품이며, 오늘날에도 Arduino 개발 환경을 사용하여 개발되고 있습니다.

APM 비행 제어

APM(ArduPilotMega)는 2007년 DIY 드론 커뮤니티(DIY Drones)가 출시한 비행 컨트롤러 제품이며, 현재 가장 성숙한 오픈소스 하드웨어 프로젝트입니다.

APM은 Arduino 오픈소스 플랫폼을 기반으로 가속도계, 자이로스코프, 자기계를 포함한 관성 측정 장치(IMU) 등 여러 하드웨어 구성 요소를 개선했습니다.

뛰어난 사용자 정의 능력 덕분에 APM은 전 세계 RC 모형 애호가들 사이에서 빠르게 확산되었습니다. 오픈소스 소프트웨어인 Mission Planner를 사용하면 개발자가 APM 설정을 구성하고 센서 데이터를 수신·표시하며 Google Maps를 활용한 자동 비행 등을 구현할 수 있습니다. 그러나 Mission Planner는 Windows 운영체제에서만 호환됩니다.

현재 APM 비행 제어는 성숙한 오픈소스 비행 제어의 기준이 되었으며, 멀티로터, 고정익, 헬리콥터, 무인 차량 등의 무인 장치를 지원할 수 있습니다.

멀티로터의 경우 APM 비행 제어는 다양한 4축, 6축, 8축 제품을 지원하며, 외부 GPS 센서를 연결하면 안정화와 함께 자동 이착륙, 자율 항법 비행, 자동 귀환, 고도 유지, 위치 유지 등 풍부한 비행 모드를 수행할 수 있습니다.

APM은 외부 초음파 센서와 광류(옵티컬 플로우) 센서를 연결하여 실내에서 고도 및 위치 유지 비행을 구현할 수도 있습니다.

PX4와 PIXHawk

PX4는 BSD 라이선스를 따르는 오픈소스 소프트웨어 및 하드웨어 프로젝트입니다. 학계, 애호가, 산업계에 합리적인 가격의 고성능 오토파일럿을 제공하는 것이 목표입니다.

이 프로젝트는 취리히 연방공과대학(ETH Zurich)의 컴퓨터 비전 및 기하학 연구소, 자율 시스템 연구소, 자동 제어 연구소의 PIXHawk 프로젝트에서 시작되었습니다.

PX4FMU 오토파일럿 모듈은 고효율 실시간 운영체제(RTOS)를 구동하며, Nuttx를 이식 가능한 운영체제 인터페이스(POSIX) 환경으로 사용합니다. 이를 통해 소프트웨어는 printf(), pthreads, /dev/ttyS1, open(), write(), poll(), ioctl() 등의 인터페이스를 사용할 수 있습니다. 소프트웨어는 USB 부트로더를 사용하여 업데이트할 수 있습니다.

PX4는 MAVLink를 통해 지상국과 통신하며 QGroundControl 및 Mission Planner와 호환됩니다. 모든 소프트웨어는 오픈소스이며 BSD 라이선스를 따릅니다.

2014년 3DR이 APM 및 PX4 팀과 협력하여 출시한 PIXHawk 비행 컨트롤러는 PX4 비행 컨트롤러의 업그레이드 버전입니다. PX4와 APM 펌웨어 및 그에 대응하는 지상국 소프트웨어를 모두 갖추고 있습니다. 이 비행 컨트롤러는 현재 비행 제어 제품 중 가장 고급 제품이며 애호가들 사이에서 가장 인기 있는 제품입니다.

PIXHawk는 처리 주파수가 168MHz이고 하드웨어 부동소수점 연산 장치가 통합된 Cortex-M4 마이크로컨트롤러를 메인 제어 칩으로 사용합니다. 서로를 보완하는 2세트의 자이로스코프와 가속도계 MEMS 센서, 3축 자기장 센서(외부에 또 다른 3축 자기장 센서를 추가 연결할 수 있음), 그리고 고장 시 자동으로 전환되는 주·예비 2개의 GPS 센서를 갖추고 있습니다.

고속 처리 코어와 부동소수점 알고리즘을 기반으로 PIXHawk는 가장 발전된 고도 유지 알고리즘을 사용하며, 기압 고도계만으로 기체의 고도를 1미터 이내로 고정할 수 있습니다. 트라이콥터와 H4처럼 구조가 불규칙한 기종을 포함하여 거의 모든 유형의 멀티로터를 지원합니다.

완전 자율 경로 비행, 관심 지점 선회, 마우스 유도, “FollowMe”, 후진 비행 등 여러 고급 비행 모드를 기체에 제공할 수 있으며 자동 튜닝도 완료할 수 있습니다.

프로젝트 주소: https://github.com/pixhawk

PIXHawk 비행 컨트롤러는 매우 개방적이어서 수백 개의 파라미터가 사용자 조정용으로 공개되어 있으며, 기본 모드에 기반한 간단한 디버깅만으로 비행할 수 있습니다. PIXHawk는 여러 전자 지도를 통합하고 있어 애호가들이 현지 상황에 맞게 선택할 수 있습니다.

OpenPilot과 Taulabs

OpenPilot은 2009년 OpenPilot 커뮤니티가 출시한 오토파일럿 프로젝트로, 저렴하면서도 강력하고 안정적인 오토파일럿을 사회에 제공하는 것을 목표로 합니다. 프로젝트는 OpenPilot 오토파일럿과 그에 맞는 소프트웨어의 두 부분으로 구성됩니다.

오토파일럿의 펌웨어는 C 언어로 작성되었고 지상국은 C++로 작성되었으며, Windows, Macintosh OSX, Linux의 세 가지 주류 운영체제에서 실행할 수 있습니다.

OpenPilot의 가장 큰 특징은 매우 단순한 하드웨어 아키텍처로, 여러 하드웨어 설계에서 이를 확인할 수 있습니다.

공식 출시된 비행 제어 하드웨어로는 CC, CC3D, ATOM, Revolution, Revolution nano와 Sparky, Quanton, REVOMINI 등의 파생 하드웨어, 그리고 STM32 개발 보드에서 직접 확장된 FlyingF3, FlyingF4, DescoveryF4까지 있습니다. 이 중 CC3D는 휠베이스 300mm 미만의 드론과 초소형 실내 모델의 선호 비행 제어가 되었고, DiscoveryF4는 애호가들이 비행 제어를 연구하는 데 널리 사용됩니다. Quanton은 Taulabs의 선호 하드웨어가 되었습니다.

CC3D

CC3D는 Openpilot 계열에서 가장 인기 있는 하드웨어로, 이 비행 제어 보드는 72MHz 32비트 STM32 마이크로컨트롤러 1개와 MPU6000 1개만으로 쿼드콥터, 고정익 항공기, 헬리콥터의 자세 제어 비행을 구현합니다(이 하드웨어는 3자유도 자세 제어만 가능하며 안정화 기능은 없습니다). 회로 기판 크기는 35mm×35mm에 불과합니다.

다른 모든 오픈소스 비행 제어와 달리 GPS 융합이나 자기장 센서 보정 없이도 장기간 자세 제어를 유지할 수 있습니다. 위의 모든 기능은 하나의 펌웨어를 사용하며 설정을 변경하여 기체 유형, 비행 모드, 짐벌 안정화 지원 등의 기능을 전환할 수 있습니다.

컴파일된 펌웨어는 약 100KB의 저장 공간만 필요로 하며 코드 효율이 인상적이어서 모든 비행 제어 프로그래머의 모범이 됩니다. 지상국 소프트웨어는 완전한 전자 지도를 통합하고 있으며 무선을 통해 기체 상태를 실시간으로 모니터링할 수 있습니다.

TauLabs 비행 제어는 OpenPilot 비행 제어의 파생 제품입니다.

현재 TauLabs의 가장 인기 있는 하드웨어는 Quanton이며, 이는 원래 OpenPilot 비행 제어 팀의 구성원들이 독자적으로 완성한 것입니다.

OpenPilot의 단순하고 효율적인 특징을 계승하고 여기에 기압계와 3축 자기계를 추가하여 확장했습니다. 메인 제어 마이크로컨트롤러는 하드웨어 부동소수점 연산을 지원하는 Cortex-M4 코어로 업그레이드되었습니다. 이 비행 제어는 자동 파라미터 튜닝을 지원하는 최초의 오픈소스 비행 제어 제품이며, 비행 중 자세 PID 제어 파라미터를 자동으로 튜닝할 수 있는 모델 식별 알고리즘을 갖추고 있습니다.

TauLabs는 다양한 고급 비행 모드를 구현할 수 있으며, 외부 GPS를 연결하면 멀티로터에 고도 유지, 위치 유지, 자동 귀환 등의 기능을 제공할 수 있습니다. 비행 제어에 전자 지도가 통합되어 있고 인터페이스가 매우 사용자 친화적이며, 초기화 마법사 모드가 있어 초보자도 쉽게 시작할 수 있습니다.

Multi Wii Copter (MWC)

Multi Wii Copter(MWC) 비행 컨트롤러는 저비용 멀티로터를 위해 특별히 설계된 대표적인 Arduino 파생 제품입니다. Arduino IDE의 개발, 장치 업그레이드 및 사용 방식을 그대로 유지합니다.

낮은 비용, 단순한 아키텍처, 성숙한 펌웨어 덕분에 이 비행 컨트롤러는 국내외에 많은 애호가를 확보하고 있습니다.

일반적인 쿼드콥터, 헥사콥터, 옥토콥터를 지원하는 것 외에도 이 비행 컨트롤러의 가장 큰 특징은 트라이콥터, BIcopter 아바타형 기체, Y4형 멀티로터(두 축이 수직으로 배치됨) 등 독특한 유형의 기체를 많이 지원한다는 것입니다. 이는 이 비행 컨트롤러의 개발을 흥미롭게 만들고 많은 사랑을 받게 했습니다.

KKMulti Copter

KK 비행 제어(KKFC)는 한국에서 시작된 오픈소스 비행 제어 프로젝트이며, 오픈소스 비행 제어 발전 초기에 널리 받아들여진 최초의 멀티로터 비행 제어였습니다. 그 등장은 전체 쿼드콥터 산업에 큰 충격이었습니다.

이 비행 제어는 3개의 저렴한 단축 자이로와 간단한 4채널 원격 조종 장치만으로 일반적인 3축, 4축, 6축 기체를 제어하며, “크로스”, X형, H형, 상하 반전 등 다양한 배치를 지원합니다.

이 비행 제어는 3개의 가변 저항으로 감도를 조정하는 방식을 튜닝 방법으로 사용하며, 초기 모형 자이로의 특징을 유지하고 있습니다. 멀티로터 비행 제어의 시작을 보여주는 중요한 증거로서, 이 “골동품” 클래식 비행 제어에는 여전히 많은 사용자가 있습니다.

Paparazzi(PPZ)

Paparazzi(PPZ)는 2003년에 시작된 소프트웨어 및 하드웨어 오픈소스 프로젝트로, 유연하고 강력한 오픈소스 오토파일럿 시스템을 만드는 것을 목표로 합니다. PPZ의 독특한 특징 중 하나는 하드웨어와 소프트웨어 같은 일반적인 비행 제어 시스템 구성 요소뿐만 아니라 다양한 모뎀과 안테나 같은 지상국 하드웨어도 포함하여, 보다 완전한 소형 무인 항공 시스템에 가깝다는 점입니다.

이 오픈소스 프로젝트의 또 다른 특징은 Ubuntu 운영체제를 사용하여 모든 지상국 소프트웨어와 개발 도구를 하나의 시스템에 통합한 것으로, 프로젝트에서는 이를 Live CD라고 부릅니다. CD와 비행 제어 하드웨어만 있으면 사용자가 모든 개발 및 운용 작업을 완료할 수 있습니다.

PPZ의 가장 인기 있는 하드웨어 버전은 현재 Paparazzi(PPZ) Lisa/M v2.0이며, 확장 인터페이스가 많고 확장 가능한 별도의 IMU 센서 보드를 사용합니다. 이러한 방식은 데스크톱 컴퓨터를 업그레이드하는 것처럼 개선된 센서로 지속적인 하드웨어 업그레이드가 가능하기 때문에 오픈소스 비행 컨트롤러 초기에 인기가 있었습니다.

Autoquad 비행 제어와 ESC32 ESC

Autoquad는 오픈소스 비행 제어 초기에 개발된 독일의 오픈소스 비행 컨트롤러입니다. Autoquad는 강력한 기능으로 알려졌지만 당시 사용 가능한 센서의 한계로 인해 다수의 아날로그 MEMS 센서를 사용해야 했습니다.

아날로그 센서는 센서 칩 내부에 아날로그-디지털 변환기(ADC)와 연산 코어를 통합하지 않은 센서를 말합니다. 대신 미세 전자기계 센서의 변화를 증폭과 하드웨어 필터링을 거쳐 전압으로 직접 출력하며, 메인 제어 MCU가 AD 수집을 수행해야 합니다.

센서의 출력 값이 온도 환경에 따라 영향을 받기 때문에 아날로그 MEMS 센서는 많은 캘리브레이션 문제를 야기했습니다.

많은 사용자가 이 비행 컨트롤러를 처음 사용할 때 센서 캘리브레이션을 위해 냉장고를 사용해야 했습니다. 배치 제품의 안정성을 보장하기 위해 일부 제조사는 기체의 회로 기판을 가열하여 일정한 온도를 유지해야 했습니다.

그러나 이러한 캘리브레이션 방식은 일부 숙련된 사용자에게 색다른 재미를 주었고 많은 사람이 즐겼습니다. 대부분의 일반 애호가에게는 확실히 어려운 작업이었습니다. 공장 캘리브레이션이 적용된 디지털 센서가 보편화되면서 Autoquad는 역사적 축적물로서 사명을 완수했습니다.

그러나 이 오픈소스 프로젝트의 또 다른 분파인 ESC32는 사용자들 사이에서 점차 인정을 받았습니다.

이 ESC는 제어에 디지털 인터페이스를 사용한 최초의 ESC 제품입니다. 사용자는 시리얼 포트, I2C 인터페이스, CAN 인터페이스를 통해 모터 속도를 제어할 수 있으며, 이는 기존 PWM 인터페이스보다 훨씬 빠릅니다.

일반적인 PWM ESC의 파형 업데이트 속도는 초당 400회인 반면 디지털 인터페이스의 업데이트 속도는 초당 수백만 회에 달할 수 있습니다. 이러한 고속 통신은 특히 전력 변화에 매우 민감한 멀티로터 항공기에 반드시 필요합니다.

이 ESC는 속도 폐루프 제어도 지원하며 모터에 대해 세부적인 파라미터 튜닝을 수행할 수 있는데, 이는 기존 RC ESC에서는 불가능합니다. 프로젝트는 다음에서 확인할 수 있습니다: http://autoquad.org/wiki/wiki/aq-esc32/.

물론 Autoquad도 발전하고 있습니다. 메인 제어 MCU와 센서를 전면 업그레이드한 새로운 비행 컨트롤러 제품 Autoquad M4를 출시했으며, 일반적인 STM32F4 MCU와 디지털 센서를 사용합니다.

그러나 수년간 성숙해 온 PIXHawk와 APM 같은 고급 비행 제어 제품에 비하면 전신에서 신생 제품으로 전락했습니다.

따라서 오픈소스 비행 제어는 쿼드콥터 드론과 같은 제품이 일반 가정에 들어오도록 크게 기여했고, 무인 항공기 기술 발전에 이바지했으며, 심지어 사람들이 비행의 꿈을 이루도록 도왔습니다.

댓글 남기기

비교0

              BEFORE YOU
              LEAVE...

              Take 5% off your first order
              Enter the code: 05OFF

              Recommended