최근 한 개발자가 러스트(Rust) 언어와 TUI(Terminal User Interface)를 활용해 나노 드론 '크레이지플라이(Crazyflie)'를 터미널에서 직접 조종할 수 있는 프로젝트를 공개해 화제입니다. 이 '크레이지플라이 커맨더(Crazyflie Commander)'는 키보드 조작만으로 드론의 이착륙, 방향 전환, 속도 조절 등 자유 비행을 가능하게 하며, 실시간 텔레메트리 데이터와 상공 지도를 터미널에 표시해 직관적인 조종 경험을 제공합니다.
이 프로젝트의 핵심 기능은 크게 세 가지입니다. 첫째, 키보드(WASD 및 화살표 키)를 이용한 자유 비행과 비행 중 경로 녹화 기능입니다. 녹화된 비행은 JSON 형식의 임무 파일로 저장되어 언제든지 재생할 수 있습니다. 둘째, 미리 정의된 임무(mission)를 실행하는 기능입니다. 이륙, 웨이포인트 이동, 궤도 비행, 착륙 등 고수준 명령으로 구성된 임무를 선택하여 실행할 수 있으며, 터미널 지도에서 드론의 실시간 위치와 경로 진행 상황을 확인할 수 있습니다. 셋째, 러스트의 엘름 아키텍처(Elm Architecture) 구현체인 '라타테아(ratatea)'와 TUI 라이브러리 '라타투이(ratatui)'를 활용하여 터미널 환경에서 사용자 친화적인 인터페이스를 구현한 점입니다. 이 시스템은 크레이지플라이 2.1(+) 드론과 플로우 덱(Flow deck) V2, 그리고 크레이지라디오(Crazyradio) USB 동글이 필요합니다.
이 프로젝트는 러스트 언어의 학습 프로젝트에서 시작되었지만, 터미널 환경에서 드론을 제어하는 새로운 접근 방식을 제시하며 개발자 커뮤니티의 관심을 끌고 있습니다. 특히, 임무 계획 및 실행, 비행 기록 재생 등 고급 기능을 터미널이라는 제한된 환경에서 구현했다는 점에서 러스트와 TUI 기술의 잠재력을 보여줍니다. 이는 향후 드론 제어 시스템 개발이나 임베디드 시스템 인터페이스 설계에 있어 영감을 줄 수 있으며, 개발자들이 새로운 기술 스택을 탐색하고 실용적인 애플리케이션을 구축하는 데 좋은 참고 사례가 될 것입니다.