# 01 prefac ko

### 전통적인 비행 제어 장치의 문제

Pixhawk와 같은 전통적인 드론 비행 제어 장치(Flight Controller, FC)는 기본적으로 자율 비행을 위한 기초적인 비행 제어와 안정성을 제공하는데 최적화되어 있다. 그러나 인공지능(AI)과 같은 고성능 연산 작업을 처리하는 데는 몇 가지 한계가 있다. 이러한 한계 때문에 Pixhawk만으로는 AI와 같은 복잡한 연산을 수행하기 어렵고, Jetson과 같은 고성능 연산 장치가 필요할 수 있다. 그 이유를 아래와 같이 정리할 수 있다.

#### 1. **처리 성능의 한계**

* **Pixhawk의 처리 성능**은 주로 비행 안정성, 위치 추적, 센서 데이터 처리(예: GPS, IMU, 자이로스코프 등)와 같은 기본적인 작업을 실시간으로 처리하는 데 중점을 둔다. 이러한 기능들은 일반적으로 연산 요구량이 낮고, 빠른 응답을 요구하는 임베디드 시스템에 적합한 ARM 기반 프로세서에서 수행된다.
* 그러나 **인공지능** 작업은 특히 컴퓨터 비전(예: 객체 감지, 경로 계획, SLAM)과 같은 분야에서 매우 높은 처리 능력을 요구한다. AI는 이미지나 비디오 데이터를 실시간으로 처리해야 하는데, 이를 위해서는 GPU 또는 고성능 CPU가 필요하다. Pixhawk는 이러한 작업을 처리할 수 있는 GPU나 고성능 CPU를 탑재하지 않았기 때문에 AI를 직접 실행하기에는 연산 성능이 부족한다.

#### 2. **메모리 제약**

* Pixhawk와 같은 임베디드 시스템은 **메모리 용량**이 매우 제한적이다. Pixhawk의 경우 수 MB 정도의 RAM과 플래시 메모리를 사용하여 비행 제어 프로그램을 실행한다. 이는 센서 데이터나 비행 상태를 빠르게 처리하는 데 충분하지만, AI 모델(특히 딥러닝 기반 모델)을 실행하기에는 매우 부족한다.
* 인공지능 모델은 수백 MB에서 수 GB에 이르는 메모리 사용량을 요구할 수 있으며, 특히 딥러닝 기반의 신경망을 실행하려면 메모리와 저장 공간이 더 많이 필요하다. 따라서 Pixhawk의 메모리 제약으로 인해 AI 작업을 처리하기 어렵다.

#### 3. **실시간 제어와 AI 작업의 상충**

* Pixhawk는 **실시간 제어**에 최적화되어 있으며, 이로 인해 일정한 주기로 센서 데이터를 읽고 비행 제어 명령을 빠르게 처리해야 한다. 이러한 작업은 일정한 주기로 실행되어야 하므로, 시스템이 항상 빠르게 응답할 수 있어야 한다.
* 반면, **AI 작업**은 주로 복잡하고 시간이 많이 소요되는 연산이기 때문에 실시간으로 실행하기 어려울 수 있다. 예를 들어, 이미지나 영상 데이터를 분석하여 객체를 인식하거나 경로를 계산하는 작업은 많은 시간이 걸릴 수 있으며, 이로 인해 실시간 비행 제어에 필요한 응답 시간을 지연시킬 수 있다.
* Pixhawk의 임베디드 환경에서는 이러한 두 가지 작업을 동시에 수행하기가 어렵기 때문에, AI 작업을 처리하려면 별도의 고성능 컴퓨팅 장치가 필요하다.

#### 4. **하드웨어 가속기의 부재**

* AI와 관련된 많은 작업은 **하드웨어 가속기**(예: GPU 또는 AI 전용 프로세서)가 있을 때 훨씬 효율적으로 처리된다. GPU는 대규모 병렬 연산을 처리할 수 있기 때문에, 딥러닝이나 컴퓨터 비전과 같은 작업을 매우 빠르게 수행할 수 있다.
* 그러나 Pixhawk에는 이러한 **하드웨어 가속기**가 없다. Pixhawk는 주로 저전력으로 설계된 ARM 기반 프로세서를 사용하며, 이는 비행 제어와 관련된 단순한 작업에는 충분하지만, AI 작업을 가속하기 위한 GPU나 TPU(텐서 처리 장치)는 포함되어 있지 않는다. 따라서 AI 연산을 수행하려면 별도의 하드웨어 플랫폼이 필요하다.

#### 5. **소프트웨어 환경의 제한**

* **Pixhawk의 소프트웨어 환경**은 주로 드론 비행 제어에 필요한 최소한의 기능을 제공하도록 설계되어 있다. 주로 PX4, ArduPilot과 같은 비행 제어 스택이 사용되며, 이는 비행 관련 센서 데이터를 처리하고 제어 명령을 수행하는 데 최적화되어 있다.
* 그러나 **AI 관련 프레임워크**(예: TensorFlow, PyTorch)나 **컴퓨터 비전 라이브러리**(예: OpenCV)는 고급 연산 기능을 요구하며, Pixhawk의 소프트웨어 환경에서는 이를 실행할 수 있는 충분한 자원이 없다. 반면, NVIDIA Jetson과 같은 플랫폼은 이러한 프레임워크를 실행할 수 있도록 설계되어 있으며, AI 관련 개발을 쉽게 지원한다.

#### 6. **확장성 부족**

* **Pixhawk**는 주로 비행 제어에 집중된 폐쇄적인 시스템 구조를 가지고 있다. 비행 제어 및 안정성을 제공하기 위한 주요 기능이 내장되어 있지만, 추가적인 고급 기능을 구현하는 데는 어려움이 있다.
* 반면, **Jetson** 같은 고성능 플랫폼은 리눅스 기반의 운영체제를 실행하며, 여러 가지 오픈소스 소프트웨어 및 AI 도구들을 설치하고 사용할 수 있다. 이를 통해 다양한 AI 기능을 쉽게 통합할 수 있으며, 더 높은 확장성과 유연성을 제공한다.

#### 7. **UART 대역폭의 한계**

* **UART 통신의 전송 속도**는 일반적으로 **115.2 kbps**에서 **1 Mbps** 정도이며, 경우에 따라 더 높은 속도를 지원하기도 하지만, 이 정도의 대역폭은 비행 중 필요한 정밀 제어에 있어 **AI 기반 처리 결과**나 **고해상도 센서 데이터**를 실시간으로 전송하기에는 매우 부족한다.
* 예를 들어, 카메라 이미지, LiDAR 데이터, 혹은 복잡한 센서 데이터를 실시간으로 임무 컴퓨터에 전달하고 이를 기반으로 즉각적인 비행 제어 명령을 내리려면 더 높은 데이터 전송 속도가 필요하다. **AI 처리**는 대개 고용량의 데이터(예: 이미지나 비디오 스트림)를 다루기 때문에, UART의 대역폭으로는 충분하지 않는다.
* 이러한 제한으로 인해 Pixhawk와 임무 컴퓨터 간의 통신은 주로 기본적인 비행 상태 정보(예: 위치, 속도, 고도) 및 간단한 명령(예: 이륙, 착륙, 경로 전환)만을 처리할 수 있으며, **실시간 제어**나 **고해상도 데이터 처리**에는 적합하지 않는다.

#### 8. **정밀 제어를 위한 실시간 데이터 요구**

* **정밀한 비행 제어**를 구현하려면 **고속 실시간 데이터 교환**이 필수적이다. 특히 AI 기반 제어 시스템에서는 임무 컴퓨터가 실시간으로 카메라, LiDAR, IMU(관성 측정 장치) 등의 데이터를 받아서, 이를 처리한 후 Pixhawk에 피드백을 주어야 한다.
* 하지만 UART를 사용하면 이러한 데이터를 충분히 빠르게 전송할 수 없어 **제어 신호**의 지연이 발생할 수 있다. 예를 들어, 물체 감지나 장애물 회피와 같은 AI 기반 시스템은 초당 수십 프레임의 이미지 데이터를 처리해야 하는데, UART는 이러한 대용량 데이터를 처리하는 데 적합하지 않는다.
* 즉, **제어 신호의 실시간성**이 떨어지기 때문에, 빠르고 정밀한 제어가 필요한 시나리오에서 지연 문제가 발생할 수 있으며, 이는 드론의 안전성과 성능에 영향을 미칠 수 있다.

#### 9. **데이터 지연(latency) 문제**

* **UART 통신**은 기본적으로 비동기 방식이기 때문에 데이터의 전송 속도가 제한되고, 그로 인해 통신 지연이 발생할 수 있다. 이 지연 시간은 데이터를 빠르게 전송하고 처리해야 하는 정밀한 제어 시스템에 악영향을 미친다.
* 지연이 발생하면 임무 컴퓨터가 비행 상황에 대해 최신 데이터를 받지 못하게 되고, AI 기반 경로 계획이나 물체 회피 알고리즘이 실시간으로 작동하지 않을 수 있다. 즉, **시스템 응답성**이 저하되어 정밀한 비행 제어가 어려워진다.

### 전통적인 FC와 고성능 SBC의 연결 사례

#### 1. **JetsonHacks: Jetson + Pixhawk 통합**

* **JetsonHacks**는 NVIDIA Jetson을 드론 프로젝트에 통합하는 방법을 공유하는 개발 커뮤니티로, Jetson 모듈과 다양한 하드웨어의 인터페이스 방법을 다룬다. JetsonHacks는 Pixhawk와의 직접적인 통합보다는 Jetson을 메인 컨트롤러로 사용하는 고급 기능을 구현하는 데 집중하고 있다.
* JetsonHacks에서는 드론의 비행 제어 외에도 컴퓨터 비전을 통한 장애물 회피, 자동 착륙, 경로 최적화 등을 Jetson을 이용해 구현할 수 있는 다양한 튜토리얼을 제공한다.
* 이 프로젝트를 통해 Jetson을 기반으로 커스텀 비행 제어 시스템을 구축할 수 있다.

#### 2. **DroneKit & Jetson 통합**

* **DroneKit**은 Pixhawk와 MAVLink 프로토콜을 기반으로 드론을 제어할 수 있는 오픈소스 Python 라이브러리이다. DroneKit은 Pixhawk 대신 Jetson과 같은 고성능 연산 장치와도 통합 가능하며, 특히 자율 비행 및 원격 제어 기능 구현에 강점을 가지고 있다.
* Jetson과 DroneKit을 함께 사용하면, 비행 경로 계획, 미션 수행, 컴퓨터 비전을 통한 환경 인식 기능을 쉽게 통합할 수 있다. 드론의 모든 비행 제어는 DroneKit으로 처리하고, Jetson의 연산 능력으로 추가적인 인공지능 기능을 구현할 수 있다.

#### 3. **ArduPilot with Jetson**

* **ArduPilot**은 오픈소스 비행 제어 소프트웨어로, Pixhawk를 사용하는 많은 드론들이 이 소프트웨어를 기반으로 하고 있다. 하지만, Jetson과 같은 고성능 플랫폼과도 잘 연동된다.
* Jetson은 ArduPilot과 MAVLink 프로토콜을 통해 통신할 수 있으며, 비행 제어는 ArduPilot이 처리하면서 Jetson은 추가적인 비전 처리 및 AI 기능을 수행하게 된다. 이를 통해 자율 비행을 위한 복합 센서 데이터를 처리하고 고급 경로 계획을 수행할 수 있다.
* ArduPilot과 Jetson을 연동하는 방법은 드론 제작자 커뮤니티에서 활발히 논의되고 있으며, 다양한 자율 비행 시나리오에 활용할 수 있다.

#### 4. **Jetson + PX4와 ROS 통합**

* Jetson을 기반으로 비행 제어 시스템을 구축할 때, **PX4** 오픈소스 비행 스택과 **ROS**(Robot Operating System)을 함께 사용하는 것도 좋은 선택이다. PX4는 오픈소스 비행 제어 소프트웨어이고, ROS는 로봇 제어와 센서 데이터를 처리하는 데 최적화된 플랫폼이다.
* Jetson은 비행 중 드론이 수집하는 다양한 센서 데이터(카메라, LiDAR 등)를 실시간으로 처리할 수 있다. 이를 통해 컴퓨터 비전 기반의 장애물 회피, 경로 계획 및 자율 비행 기능을 추가할 수 있다.
* PX4와 ROS의 통합은 커스텀 비행 제어 시스템을 구축하려는 개발자들에게 널리 사용되고 있다.

### 고성능 FC 통합

#### 1. **하드웨어 통합의 장점**

* \*\*싱글 보드 컴퓨터(SBC)\*\*에서 비행 제어와 인공지능을 통합하는 방식은 **NVIDIA Jetson**, **Raspberry Pi** 또는 **Qualcomm Snapdragon Flight** 같은 고성능 프로세서를 활용하여 가능한다. 이러한 SBC들은 고성능 CPU와 GPU를 탑재하고 있어, 드론의 비행 제어 및 AI 연산을 동시에 처리할 수 있는 능력을 갖추고 있다.
* **비행 제어 소프트웨어**(예: PX4, ArduPilot)를 SBC에 설치하고, 동시에 AI 연산을 처리하는 컴퓨터 비전, 물체 인식, 경로 계획 등의 기능을 구현할 수 있다. 이 경우 비행 제어와 AI가 동일한 하드웨어에서 실행되기 때문에 데이터 전송의 지연 문제나 대역폭 제한 없이 직접적인 상호작용이 가능한다.

#### 2. **데이터 전송 없이 로컬에서 실시간 처리**

* **로컬 데이터 처리**가 가능해지므로 센서 데이터를 외부 장치로 보내지 않고 **SBC 내에서 직접 처리**할 수 있다. 예를 들어, 카메라나 LiDAR 데이터를 Jetson 또는 Raspberry Pi와 같은 SBC가 실시간으로 처리한 뒤, 바로 비행 제어 명령을 생성할 수 있다.
* 이렇게 하면 **데이터 전송**에 따른 지연 시간이 없기 때문에, 실시간 제어가 더 정확하고 빠르게 이루어진다. UART 또는 다른 통신 프로토콜을 사용해 데이터를 주고받을 필요 없이, AI 연산 결과를 즉시 활용하여 비행 경로를 수정하거나 장애물을 회피할 수 있다.

#### 3. **더 높은 반응성 및 제어 정밀도**

* **비행 제어와 AI 시스템이 같은 프로세서에서 실행**되면, **응답 시간**이 매우 짧아지고 제어의 정밀도가 향상된다. AI는 실시간으로 환경을 분석하고, 드론의 상태를 지속적으로 모니터링하면서 필요한 경우 즉시 비행 경로를 변경할 수 있다.
* 예를 들어, 컴퓨터 비전을 통해 드론 앞의 장애물을 인식하면, 데이터를 전송하고 처리할 필요 없이 즉시 드론의 방향을 조정하거나 비행 경로를 수정할 수 있다. 이는 기존에 Pixhawk와 임무 컴퓨터가 분리되어 있을 때보다 훨씬 빠르고 효율적인 제어를 가능하게 한다.

#### 4. **하드웨어 효율성 증가**

* 하나의 SBC에서 비행 제어와 AI 연산을 함께 처리하면 **하드웨어 효율성**이 증가한다. Pixhawk와 같은 별도의 비행 제어 장치와 임무 컴퓨터가 필요하지 않기 때문에, 시스템 복잡성을 줄이고, 무게와 전력 소비도 감소시킬 수 있다.
* 드론의 경우 **무게와 전력 효율성**이 매우 중요하므로, 하나의 보드에서 모든 기능을 처리하면 배터리 수명도 늘어나고, 시스템이 간결해져 유지보수도 더 용이해진다.

#### 5. **소프트웨어 통합**

* **소프트웨어 통합** 측면에서도 하나의 SBC에서 비행 제어와 AI 처리를 모두 수행하면, 두 시스템 간의 데이터 교환을 쉽게 할 수 있다. 예를 들어, AI가 감지한 정보를 바로 비행 제어 소프트웨어로 전달하는 과정이 간단해진다.
* 통합 시스템에서는 **MAVLink**와 같은 통신 프로토콜을 외부에서 사용하는 대신, 비행 제어 소프트웨어와 AI 처리 소프트웨어 간의 내부 API나 메모리 공유를 통해 훨씬 더 효율적인 데이터 흐름을 구현할 수 있다. 이를 통해 시스템의 안정성도 크게 향상된다.

#### 6. **더 많은 확장성**

* SBC 기반의 통합 시스템은 **확장성** 측면에서도 장점이 있다. 예를 들어, 새로운 AI 기능이나 센서를 추가하고, 이를 비행 제어에 통합하는 것이 훨씬 더 쉽다. Jetson이나 Raspberry Pi와 같은 SBC 플랫폼은 다양한 소프트웨어 및 하드웨어 확장을 지원하므로, 필요에 따라 손쉽게 성능을 확장할 수 있다.
* Pixhawk 같은 기존의 FC는 비행 제어에 특화된 기능만을 제공하고, 고성능 연산이나 AI 관련 작업을 확장하는 데는 한계가 있지만, 통합된 SBC에서는 이를 자유롭게 추가하거나 조정할 수 있다.

#### 7. **실제 사례**

* 이미 **NVIDIA Jetson** 기반의 드론 시스템들은 비행 제어와 AI 연산을 통합한 사례가 많다. 예를 들어, **Skydio**의 자율 비행 드론은 Jetson 플랫폼을 사용하여 AI 기반 장애물 회피 및 자율 비행을 수행한다. 이 드론은 Jetson에서 모든 센서 데이터를 처리하고, 비행 제어와 AI 기능을 통합하여 매우 빠르고 정밀한 자율 비행을 구현하고 있다.
* **Auterion Skynode**도 마찬가지로 Jetson 기반으로 드론의 비행 제어 및 AI 기능을 통합하여 수행하며, 다양한 상업용 드론에서 활용되고 있다.

### 고성능 FC 프로젝트 사례

현재 드론의 비행 제어 장치(Flight Controller, FC)를 개발하는 데 NVIDIA Jetson 시리즈를 사용하려는 경우, Pixhawk와 같은 전용 FC 하드웨어를 사용하지 않고도 Jetson 기반으로 시스템을 구축할 수 있는 다양한 옵션이 존재한다. Jetson은 고성능 GPU를 탑재하고 있어 드론의 자율 비행 및 인공지능(AI) 기반 기능을 구현하는 데 유리한다. 이를 위해 주로 사용되는 몇 가지 확장 하드웨어 및 프로젝트들을 소개하겠다.

#### 1. **FlytBase (FlytOS)**

* **FlytOS**는 Jetson과 같은 고성능 프로세서를 활용하여 드론의 자율 비행, 경로 계획, 컴퓨터 비전 등의 고급 기능을 구현할 수 있는 소프트웨어 플랫폼이다. FlytOS는 Pixhawk와 같은 전통적인 FC를 사용하지 않고도 Jetson과 직접 통합하여 비행 제어 기능을 제공한다.
* Jetson Nano, Jetson Xavier, Jetson TX2와 같은 제품을 지원하며, FlytBase에서 제공하는 SDK와 하드웨어 인터페이스를 통해 확장 가능한다.
* 또한, 다양한 센서 및 비행 제어를 위해 인터페이스 보드가 필요할 수 있다.

#### 2. **Skynode by Auterion**

* **Auterion Skynode**는 드론 및 로봇을 위한 개방형 운영 체제를 제공하는 Auterion의 하드웨어로, NVIDIA Jetson Xavier NX 모듈을 통합하고 있다. Skynode는 Pixhawk와 비슷한 역할을 수행하지만, 고성능 프로세서를 통해 더 높은 수준의 처리 및 AI 작업을 수행할 수 있도록 설계되었다.
* Skynode는 다양한 센서와 통신 모듈을 지원하며, Jetson 모듈을 기반으로 드론 비행 제어를 처리한다.

#### 3. **Jetson 및 ROS 기반 DIY 프로젝트**

* Jetson 플랫폼은 \*\*ROS (Robot Operating System)\*\*과도 잘 통합되며, 이를 통해 비행 제어 소프트웨어를 구축할 수 있다. ROS와 함께 Jetson을 사용하면 다양한 센서 입력을 처리하고 AI를 활용한 자율 비행 및 경로 계획을 쉽게 구현할 수 있다.
* DIY 드론 커뮤니티에서 Jetson을 기반으로 한 여러 확장 하드웨어와 FC 솔루션을 제시하고 있으며, ROS와 MAVLink 같은 프로토콜을 함께 사용하는 경우가 많다.

#### 4. **CUAV의 Jetson 확장 하드웨어**

* CUAV는 비행 제어 및 드론 하드웨어를 제작하는 회사로, **Jetson TX2**와 같은 고성능 컴퓨팅 장치와 통합된 확장 하드웨어 솔루션을 제공한다. Pixhawk 대체 제품을 찾는 경우 CUAV의 비행 제어 장치가 Jetson과 호환되며, 커스텀 드론 개발에 적합한 옵션이다.

#### 5. **ModalAI VOXL 플랫폼**

* **VOXL**은 드론과 로봇을 위한 고성능 컴퓨팅 플랫폼으로, 특히 자율 비행 및 비전 기반 제어에 중점을 둔 솔루션이다. ModalAI에서 개발한 VOXL 플랫폼은 Qualcomm 프로세서와 함께 Jetson과 비슷한 수준의 고성능 연산 능력을 제공한다.
* VOXL은 드론의 비행 제어 기능을 처리하는 동시에, 실시간 비전 데이터 처리와 경로 계획을 가능하게 한다. 이 플랫폼은 특히 SLAM(동시적 위치추정 및 지도작성)과 같은 고급 기능을 드론에 적용할 수 있게 한다.
* VOXL은 PX4와 호환되며, 기존 Pixhawk와의 통합도 가능하지만 Jetson을 활용한 고성능 드론 제어 기능을 제공할 수 있다.

#### 6. **Elroy Air Chaparral**

* **Elroy Air**는 **Chaparral**이라는 자율 드론을 개발하는 회사로, 이 드론은 물류 및 화물 운송에 중점을 둔 자율 비행 시스템을 구축하고 있다. 이 시스템은 NVIDIA Jetson과 같은 고성능 컴퓨팅 장치를 활용하여 자율 비행과 AI 기반 기능을 구현하고 있다.
* Elroy Air의 드론은 상업용 및 군용으로도 활용될 수 있으며, 물류 분야에서 AI와 컴퓨터 비전 기술을 활용해 자율적인 물체 감지, 장애물 회피, 비행 경로 최적화 등을 제공한다.
* 이 사례는 Jetson이 드론의 FC와 함께 상업적 용도로도 사용될 수 있다는 것을 보여준다.

#### 7. **Snav – Qualcomm Snapdragon Flight Platform**

* Qualcomm의 **Snapdragon Flight** 플랫폼은 드론과 로봇을 위한 고성능 SoC(Sytem on Chip) 솔루션이다. Jetson처럼 높은 연산 능력을 갖춘 하드웨어로, 자율 비행, AI 기반 컴퓨터 비전, SLAM 기능 등을 처리할 수 있다.
* Snapdragon Flight는 여러 드론에서 자율 비행 시스템을 구현하는 데 사용되고 있으며, NVIDIA Jetson과 유사한 기능을 제공한다. 특히, 경량 드론이나 AI 기반의 경로 최적화 및 비행 제어 기능을 필요로 하는 프로젝트에 적합한다.
* 이 플랫폼은 Jetson과 경쟁할 수 있는 성능을 제공하지만, Jetson과 통합하여 사용할 수도 있다.

***

**비행 제어와 인공지능을 같은 싱글 보드 컴퓨터에서 통합**하는 것은 매우 효과적인 솔루션이다. 이렇게 하면 Pixhawk와 임무 컴퓨터 간의 대역폭 제한 문제를 완전히 해결할 수 있으며, 시스템 반응성을 높이고 제어의 정밀도를 향상시킬 수 있다. 또한, 하드웨어 효율성, 확장성, 그리고 유지보수 측면에서도 큰 장점이 있다. **Jetson**이나 **Raspberry Pi** 같은 플랫폼을 통해 비행 제어와 AI 기능을 통합하는 것은 드론의 성능을 한 단계 높이는 방법 중 하나이다.
