# 규제 및 인증 요구사항

#### 국제 민간 항공 기구 (ICAO)

국제 민간 항공 기구(ICAO)는 전 세계 드론 규제의 기초를 제공하는 역할을 한다. ICAO는 각 국가가 따르는 기본적인 가이드라인과 표준을 제공하며, 드론의 안전한 운영을 위한 필수적인 규칙을 규정한다.

#### 미국 연방 항공국 (FAA)

미국에서는 연방 항공국(FAA)이 드론 비행 규제의 주된 역할을 담당한다. 주요 요구사항은 다음과 같다:

* **등록:** 무게가 250g 이상인 드론은 반드시 등록해야 한다.
* **인증:** 드론 조종사는 상업적 용도로 드론을 운용하려면 Part 107 자격증을 취득해야 한다.
* **운영 규칙:** 드론은 낮 시간에만 비행할 수 있으며, 조종사 시야 내에서 비행해야 한다.

#### 유럽 항공 안전청 (EASA)

유럽에서는 유럽 항공 안전청(EASA)이 주요 규제 기관이다. EASA는 모든 EU 회원국에 걸쳐 표준화된 드론 규제를 제공한다. 주요 규제 사항은 다음과 같다:

* **분류 시스템:** 드론을 무게와 위험성에 따라 여러 카테고리로 분류.
* **인증:** 특정 카테고리에 속하는 드론의 경우, 조종사가 별도의 인증을 받아야 함.
* **운영 규칙:** 상업적 용도와 비상업적 용도로 드론을 구분하여 각기 다른 규칙을 적용.

#### 기타 국가별 규제

전 세계 다른 국가들도 자국 내 드론 운영을 위한 자체적인 규제를 가지고 있다. 예를 들어:

* **중국:** 중국민용항공국(CAAC)에서 드론 등록 및 운영 규칙을 제정.
* **일본:** 국토교통성에서 드론 운영에 필요한 허가 및 규제 적용.
* **한국:** 국토교통부와 항공안전기술원에서 드론 관련 규제와 인증을 담당.

#### FC의 기능 및 역할

드론의 비행 컨트롤러(FC, Flight Controller)는 비행 제어, 안정화 및 다양한 센서 데이터를 처리하는 핵심 컴포넌트이다. 주요 기능은 다음과 같다:

* **비행 제어:** 드론의 자세, 위치, 속도를 조절.
* **센서 데이터 처리:** 자이로스코프, 가속도계, GPS 등의 센서 데이터를 수집 및 처리.
* **모터 제어:** ESC(Electronic Speed Controller)에 신호를 보내 모터의 속도를 제어.

#### 하드웨어 요구사항

드론 FC 하드웨어는 주로 다음과 같은 컴포넌트로 구성된다:

* **마이크로컨트롤러(MCU):** 센서 데이터 처리 및 제어 알고리즘 실행.
* **IMU(Inertial Measurement Unit):** 자이로스코프 및 가속도계 포함.
* **GPS 모듈:** 위치 추적 및 네비게이션.
* **RC 수신기:** 원격 조종 신호 수신.
* **전력 관리 유닛:** 전원 공급 및 배터리 관리.

#### 소프트웨어 개발

소프트웨어 개발은 주요로 펌웨어 개발과 실시간 제어 알고리즘 구현을 포함한다. 주요 단계는 다음과 같다:

* **펌웨어 개발:** MCU에 설치되는 저수준 소프트웨어, 주로 C 또는 C++로 작성.
* **제어 알고리즘:** PID 제어, 칼만 필터 등 고급 제어 알고리즘 구현.
* **센서 인터페이스:** 다양한 센서 데이터를 읽고 처리.
* **통신 인터페이스:** 지상국(ground station)과의 통신을 위한 프로토콜 구현.

#### 실시간 리눅스 기반 제어 소프트웨어

리눅스는 강력한 멀티태스킹 및 멀티쓰레딩 기능을 제공하며, 실시간 처리를 위한 다양한 라이브러리와 프레임워크를 지원한다. 예를 들어:

* **RT-Preempt Patch:** 실시간 응답성을 높이기 위한 리눅스 커널 패치.
* **ROS(Robot Operating System):** 로봇 제어를 위한 오픈소스 프레임워크, 특히 드론 제어에 많이 사용.
* **POSIX Threads:** 멀티쓰레딩 및 동기화 기능을 제공.

#### 개발 환경 설정

드론 FC와 실시간 제어 소프트웨어 개발을 위한 개발 환경 설정은 다음과 같다:

* **Toolchain:** GCC, GDB, Make 등을 포함한 GNU Toolchain.
* **IDE:** Visual Studio Code, CLion, Eclipse 등.
* **시뮬레이션 소프트웨어:** Gazebo, AirSim 등.
