-
PX4 MAVSDK – C++ Programming [10편] 사용자 정의 로깅 및 통합 테스트(gtest)
안녕하세요! 마케팅팀 에이든(Aiden)입니다. 지난 연재들에서는 오프보드(Offboard) 모드를 비롯하여 드론을 실제로 제어하는 다양한 방법론을 다루었습니다. 하지만 대학 연구실이나 기업에서 실제 로보틱스 소프트웨어를 개발하다 보면, 코드를 작성하는 시간보다 버그를 잡고 시스템의 안정성을 검증하는 시간이 훨씬 더 오래 걸린다는 사실을 깨닫게 됩니다. 드론의 특성상 사소한 논리 오류 하나가 추락이라는 치명적인 하드웨어 손상으로 이어질 수 있기 때문입니다. 그래서 이번…
-
PX4 MAVSDK – C++ Programming [9편] 정밀한 드론 제어: 오프보드(Offboard) 모드
안녕하세요! 마케팅팀의 에이든(Aiden)입니다. 지난 연재들을 통해 우리는 드론의 센서 데이터를 수신하고(Telemetry), 기본적인 이착륙을 수행하며(Action), 다수의 웨이포인트를 순회하는 자율 비행(Mission)까지 알아보았습니다. 하지만 카메라(Vision) 기반의 장애물 회피, 인공지능(AI) 표적 추적, 다수 기체의 군집 비행a(Swarm)과 같은 첨단 로보틱스 연구를 수행하려면, 정해진 경로를 따라가는 것만으로는 부족합니다. 드론의 두뇌 역할을 하는 컴패니언 컴퓨터(Companion Computer)가 밀리초(ms) 단위로 상황을 판단하고, 기체의 속도와…
-
PX4 MAVSDK – C++ Programming [7편] 특정 위치로 이동 (goto_location) 및 하버사인 공식의 이해
안녕하세요! 마케팅 팀의 에이든(Aiden)입니다. 지난 6편에서는 Action API를 활용하여 드론에 시동을 걸고 하늘로 이륙(Takeoff)시킨 뒤, 다시 지면으로 안전하게 착륙(Land)시키는 기본 제어 루프를 마스터했습니다. 하지만 제자리에서 위아래로만 움직이는 것은 진정한 의미의 자율 비행 로봇이라고 부르기 어렵습니다. 이번 7편에서는 드디어 드론을 지구상의 특정 GPS 좌표(위도, 경도)로 스스로 날아가게 하는 goto_location 명령에 대해 학습하겠습니다. 더불어 로보틱스 연구원이라면 반드시…
-
PX4 MAVSDK – C++ Programming [6편] Action API를 이용한 기본 비행 제어
안녕하세요! 마케팅 팀의 에이든(Aiden)입니다. 지난 5편에서는 드론의 신경망이라고 할 수 있는 Telemetry 플러그인을 통해 기체의 현재 상태와 GPS 위치를 비동기 콜백으로 수신하는 방법을 알아보았습니다. 센서 데이터를 성공적으로 읽어왔다면, 이제 드디어 기체에 물리적인 움직임을 명령할 차례입니다! 자율 비행 로보틱스 연구에 있어서 드론을 원하는 시점에 정확히 이륙(Takeoff)시키고 안전하게 착륙(Land)시키는 것은 모든 알고리즘의 시작과 끝을 담당하는 가장 핵심적인…
-
드론 자재 선정 – 제어·통신부 : 911 FALCON 프로젝트
안녕하세요, 쿼드(QUAD) 드론연구소의 이근찬 선임연구원입니다. 지난 편에서는 911 FALCON 드론의 전원부(Power System) 설계와 자재 선정 과정을 정리해 보았습니다. 추력부에서 요구되는 전력 조건을 기준으로 배터리 용량을 결정하고, 비행제어기와 ESC에 안정적으로 전원을 공급하기 위한 파워모듈과 PDB를 선정한 뒤, 각 장치에 전원이 어떤 경로로 분배되는지까지 전체 전원 구조를 함께 정리했습니다. 이번 편에서는 그 다음 단계로, 드론의 비행과 운용을…
-
PX4 MAVSDK – C++ Programming [5편] 시스템 정보 쿼리 및 원격 측정(Telemetry) 활용
안녕하세요! 마케팅팀의 Aiden(에이든)입니다. 지난 4편에서는 빈 프로젝트에서 CMake를 설정하고 드론과 통신 채널을 연결하여 시스템을 발견(Discovery)하는 과정에 대해 설명드렸습니다. 그렇다면 다음 단계는 무엇일까요? 바로 드론이 현재 어떤 상태인지, 배터리는 얼마나 남았는지, 현재 위치(GPS)는 어디인지 파악하는 것입니다. 자율 비행 알고리즘을 설계하는 연구원들에게 드론의 실시간 센서 데이터를 빠르고 정확하게 수신하는 것은 제어 로직의 핵심 기반이 됩니다. 이번 5편에서는…
-
PX4 MAVSDK – C++ Programming [4편] C++ 앱 빌드 및 통신 연결
안녕하세요! 마케팅팀 에이든(Aiden)입니다. 지난 3편에서는 안전한 자율 비행 테스트를 위한 SITL 가상 환경을 구축하고, MAVSDK에서 제공하는 기본 예제를 실행해 보며 드론이 가상 공간에서 이륙하는 모습을 확인했습니다. 하지만 연구자나 개발자라면 남이 만들어둔 예제를 실행하는 것에 만족할 수 없겠죠? 이번 4편에서는 빈 폴더에서부터 시작해 나만의 C++ 프로젝트를 설정(Build)하고, 드론 시스템과 통신을 연결(Connection)하는 방법을 처음부터 끝까지 친절하게 안내해…
-
[PX4 튜닝 시리즈 부록] 레이싱 드론 튜닝 가이드 (Racer Setup): 한계를 뛰어넘는 극강의 퍼포먼스
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분, 안녕하십니까! 지금까지 우리는 [시리즈 1]부터 [시리즈 7]까지 일반적인 연구용 멀티콥터의 비행 성능을 최적화하고 안전하게 착륙시키는 모든 과정을 다루었습니다. 하지만 여러분의 연구 목적이 단순히 ‘안정적으로 떠 있는 것’을 넘어, 군집 비행에서의 급기동, FPV(First-Person View) 기반의 고속 회피 기동, 혹은 레이싱 드론(Racing Drone) 제작에 있다면 기존의 튜닝 방식과는…
-
[PX4 튜닝 시리즈 7] 착륙 감지기 설정 (Land Detector Configuration): 완벽한 비행의 마무리를 위한 필수 가이드
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분, 안녕하십니까! 어느덧 길고 길었던 PX4 튜닝 가이드의 마지막 장에 도달했습니다. 우리는 [시리즈 1]부터 [시리즈 6]까지, 기체의 물리적 진동을 잡고, 고주파 로깅을 통해 필터를 최적화하며, 수동/자동 PID 튜닝을 거쳐 우아한 S-Curve 궤적을 그리는 비행 최적화까지 모두 마쳤습니다. 이제 여러분의 기체는 공중에서 그 어떤 드론보다도 완벽하게 동작할 것입니다….
-
PX4 MAVSDK – C++ Programming [3편] MAVSDK C++ 설치 및 SITL 시뮬레이션 환경 구축
안녕하세요! 마케팅팀 에이든(Aiden)입니다. 지난 2편에서는 MAVSDK C++을 다루기 위해 필수적인 C++의 핵심 문법(포인터, 참조, 람다 함수, 템플릿 등)을 함께 살펴보았습니다. 이론적인 배경지식을 탄탄히 다졌으니, 이제 본격적으로 코드가 실행될 ‘놀이터’를 만들어 볼 차례입니다. 연구실이나 실험실에서 개발한 드론 제어 코드를 실제 기체에 바로 올려서 테스트하는 것은 매우 위험합니다. 작은 오타 하나, 로직의 사소한 오류 하나가 수백만 원짜리…
-
PX4 MAVSDK – C++ Programming 제 [2편] MAVSDK 활용을 위한 C++ 핵심 문법
안녕하세요! 마케팅팀 에이든(Aiden)입니다. 지난 1편에서는 자율 비행 로봇 시스템에서 MAVSDK가 가지는 의미와 전반적인 아키텍처에 대해 알아보았습니다. 본격적으로 드론을 제어하는 코드를 작성하기에 앞서, 우리가 사용할 도구인 C++에 대해 짚고 넘어갈 필요가 있습니다. 파이썬(Python)과 같은 스크립트 언어에 익숙한 대학생이나 연구원분들에게 C++은 다소 무겁고 복잡하게 느껴질 수 있습니다. 하지만 MAVSDK 코어는 현대적인 C++17 표준으로 작성되어 있으며, 고성능 실시간…
-
[PX4 튜닝 시리즈 6] 궤적 생성기(Trajectory Generator) 및 셋포인트 튜닝: 조종감과 비행 궤적의 예술
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분, 안녕하십니까! 길고 길었던 PX4 튜닝 시리즈의 대미를 장식할 마지막 시간입니다. 우리는 지난 [시리즈 1]부터 [시리즈 5]까지, 하드웨어의 미세한 진동을 잡는 것부터 시작해, 필터 튜닝을 거쳐 PID 제어기를 수동 및 자동으로 최적화하는 방법까지 완벽하게 마스터했습니다. 그 결과, 여러분의 드론은 이제 거센 바람 속에서도 끄떡없이 목표 위치를 유지하고,…
-
[PX4 튜닝 시리즈 5] 마법 같은 40초, 자동 튜닝(Auto-Tuning)의 모든 것
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분, 안녕하십니까! 지금까지 [시리즈 1]부터 [시리즈 4]까지 차근차근 따라오시느라 정말 고생 많으셨습니다. 우리는 하드웨어 진동을 잡고, 고주파 로깅을 통해 필터를 튜닝했으며, 수동으로 PID 제어기의 원리를 파헤치며 극한의 비행 성능을 끌어올리는 방법까지 모두 살펴보았습니다. 하지만 연구실에서 매번 새로운 프레임을 설계하고 모터를 교체할 때마다 수십 번의 비행과 수동 튜닝을…
-
PX4 MAVSDK – C++ Programming 제 [1편] 라이브러리 개요 및 아키텍처
안녕하세요! 마케팅팀 에이든(Aiden)입니다. 오늘은 전 세계적으로 가장 널리 사용되는 오픈 소스 비행 제어 스택인 PX4 Autopilot과, 이를 외부 컴퓨터(Companion Computer)에서 제어하기 위한 핵심 도구인 MAVSDK C++ 라이브러리에 대해 다뤄보려 합니다. 첫 번째 시간인 오늘은 코드를 본격적으로 작성하기 전에 반드시 알아야 할 MAVSDK의 탄생 배경, 통신 프로토콜, 그리고 전반적인 시스템 아키텍처를 설명해 드리겠습니다. MAVSDK의 탄생 배경과…
-
[연재 안내] PX4 MAVSDK C++ 프로그래밍의 모든 것
안녕하세요. 자율 비행 로봇 연구와 드론 소프트웨어 개발에 흥미를 느끼고 계신 대학생, 대학원생, 그리고 연구원 여러분. 과거의 드론은 조종사의 수동 조작에 의존하는 단순한 비행체였지만, 오늘날의 무인 항공기(UAV)는 복잡한 알고리즘을 통해 스스로 경로를 계획하고 장애물을 회피하는 ‘고도의 자율 비행 로봇’으로 진화했습니다. 이러한 자율성의 핵심에는 전 세계적으로 가장 널리 사용되는 오픈 소스 비행 스택인 PX4 Autopilot이 자리…
-
[PX4 튜닝 시리즈 4] 고급 PID 튜닝 및 비행 최적화: 극한의 비행 성능을 끌어내는 숨겨진 1%의 비밀
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분, 안녕하십니까! 지난 [시리즈 3]에서는 수동 PID 튜닝의 기초를 다루며, 기체가 호버링(Hovering)하는 상태에서 조종기의 스틱 입력에 얼마나 빠르고 정확하게 반응하는지를 튜닝했습니다. 기본 튜닝 절차를 잘 따라오셨다면, 여러분의 기체는 이제 꽤 안정적인 비행 성능을 보여주고 있을 것입니다. 하지만 연구 목적의 기체이거나 FPV 레이싱 드론처럼 한계까지 성능을 쥐어짜 내야…
-
[PX4 튜닝 시리즈 3] 초보자를 위한 수동 PID 튜닝: 기체와 완벽하게 교감하는 법
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분, 다시 만나게 되어 반갑습니다! 지난 [시리즈 1]과 [시리즈 2]를 통해 우리는 하드웨어의 유격을 잡고 제어 지연(Latency)을 최소화했으며, 비행 로그 분석을 통해 진동을 걸러내는 ‘필터 튜닝(Filter Tuning)’까지 완벽하게 마쳤습니다. 이제 여러분의 드론은 어떠한 기계적 노이즈에도 방해받지 않고 제어기의 명령에 즉각적으로 반응할 수 있는 ‘최고의 신체적 조건’을 갖추었습니다….
-
드론 자재 선정 – 전원부 : 911 FALCON 프로젝트
안녕하세요, 쿼드(QUAD) 드론연구소의 이근찬 선임연구원입니다. 지난 편에서는 911 FALCON 드론의 추력부 선정 과정을 정리해 보았습니다. 임무 요구조건을 KPI로 먼저 고정한 뒤, Iteration(반복 수렴) 방식으로 프레임/프로펠러 체급 결정, 타깃 AUW 수립, 모터·ESC·배터리를 단계적으로 수렴해 나간 흐름을 공유드렸습니다. 이번 편에서는 그 다음 단계로, 추력부가 안정적으로 동작할 수 있도록 뒷받침하는 전원부(Power System)를 다루겠습니다. 이번 글에서는 배터리, 파워모듈, PDB를…
-
PX4 MAVLink-Python 프로그래밍: 7. MAV_CMD
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘 소개해드릴 내용은 PX4 MAVLINK-PYTHON 프로그래밍의 7번째 단계인 MAV_CMD입니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁드립니다. MAV_CMD 개요 MAV_CMD 메세지는 자동 비행 모드에서 기체에 줄 수 있는 제어명령 목록 입니다. MAV_CMD는 크게 COMMAND_INT 와 COMMAND_LONG 타입이 있으며, 드론에 어떠한 명령을 보낼때 사용합니다. COMMAND_INT 는 GPS 좌표 또는…
-
PX4 MAVLink-Python 프로그래밍: 6.비행 모드 (PX4 멀티콥터)
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘 소개해드릴 내용은 PX4 MAVLINK-PYTHON 프로그래밍 – 비행모드(PX4 멀티콥터)입니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁드립니다. 비행 모드는 자동 조종 기능을 지원하여 차량을 수동으로 조종하고, 이륙 및 착륙과 같은 일반적인 작업을 자동화하고, 자율 임무를 실행하거나 비행 제어를 외부 시스템에 위임하는 작업을 더 쉽게 해줍니다. 이 주제에서는 멀티콥터와…
-
PX4 MAVLink-Python 프로그래밍: 5-2. [참고]HMAC-SHA256이란?
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘 소개해드릴 내용은 PX4 MAVLINK-PYTHON 프로그래밍 – MAVLINK 2 메세지 서명 과정에서 참고하실 수 있는 HMAC-SHA256입니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁드립니다. ✳️ HMAC = Hash-based Message Authentication Code 예) HMAC-SHA256 → HMAC 방식에서 SHA-256 해시 함수 사용 ⚙️ 어떻게 작동하나? 입력: 출력: 🔁 내부 동작…
-
PX4 MAVLink-Python 프로그래밍: 5-1. MAVLINK 2 메세지 서명
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은 PX4 MAVLINK-PYTHON 프로그래밍 그 중에서도 MAVLINK 2 메세지 서명에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁 드립니다. 🔐 MAVLink 2 메시지 서명 개요 🎯 목적 [참고] 현재까지 PX4는 MAVLink 2의 메시지 서명(Message Signing) 기능을 공식적으로 지원하지 않습니다. 2021년에 MAVLink 서명 기능을 추가하려는 Pull Request가 제출되었지만, 아직까지…
-
PX4 MAVLink-Python 프로그래밍: 5.MAVLINK 신뢰성 보장
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은 PX4 MAVLINK-PYTHON 프로그래밍 그 중에서도 MAVLINK 신뢰성 보장에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁 드립니다. HEARTBEAT 모든 MAVLink 구성 요소는 주기적으로 HEARTBEAT 메시지를 브로드캐스트하고 다른 시스템의 하트비트를 수신해야 합니다. 시스템은 다른 시스템에서 정기적으로 HEARTBEAT를 받는 한 자신이 다른 시스템에 연결된 것으로 간주합니다 . 메시지 는…
-
[PX4 튜닝 시리즈 2] 숨은 진동 잡기와 필터 튜닝(Filter Tuning): 제어 지연과 노이즈의 완벽한 타협점 찾기
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분, 다시 만나게 되어 반갑습니다! 지난 [시리즈 1]에서는 고품질 프레임을 사용하고 모터 선을 AUX 핀으로 옮겨 제어 지연(Latency)을 물리적으로 최소화하는 하드웨어 점검 과정을 마쳤습니다. 또한, 정밀한 데이터 분석을 위해 고주파 로깅 프로필(SDLOG_PROFILE)을 활성화해 두었죠. 오늘은 본격적으로 소프트웨어 영역으로 넘어가, 기체의 두뇌인 비행 제어기(FC) 내부에서 이루어지는 **’필터 튜닝(Filter…
-
[PX4 튜닝 시리즈 1] PX4 튜닝의 첫걸음: 완벽한 하드웨어 준비와 제어 지연(Latency)의 이해
항공우주공학과 자율비행 드론을 연구하시는 대학생, 대학원생, 그리고 연구원 여러분 반갑습니다! 복잡한 수식과 방대한 코드 속에서 밤낮으로 드론과 씨름하고 계실 여러분을 위해, 실전 비행과 직관적인 데이터 분석에 기반한 **’PX4 튜닝 연재 블로그’**를 시작합니다. 여러분이 설계하고 조립한 기체가 이론처럼 완벽하게 하늘을 날아오르기 위해서는 정교한 튜닝이 필수적입니다. 하지만 소프트웨어의 파라미터를 건드리기 전에 우리가 반드시 짚고 넘어가야 할 첫…
-
PX4 MAVLink-Python 프로그래밍: 4. MAVLINK 메세지 주고받기
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은 PX4 MAVLINK-PYTHON 프로그래밍 그 중에서도 MAVLINK 메세지 주고받기에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 양해주시길 부탁 드립니다. MAVLINK 메시지 주고받기 메시지 보내기 MAVLink주요 프로토콜 처리 클래스입니다. 각 다이알렉트 모듈에서 정의되며 <message_name>_send()의 형식으로 메시지 정의 에 있는 모든 메시지에 대한 메소드를 포함합니다 . 메시지 필드 값은 함수에 대한…
-
[연재 안내] 드론 연구자와 학생을 위한 완벽 가이드: PX4 튜닝의 모든 것
항공우주공학을 전공하는 대학생, 대학원생, 그리고 자율비행 드론을 연구하시는 연구원 여러분, 안녕하세요! 연구실에서 목적에 맞게 직접 조립한 드론이 생각처럼 날지 않거나, 원인을 알 수 없는 진동과 불안정한 호버링 때문에 비행 테스트를 망쳐본 경험이 한 번쯤은 있으실 겁니다. 오픈소스 비행 제어 소프트웨어인 PX4는 매우 강력하고 다양한 기능을 제공하지만, 그만큼 수많은 파라미터가 존재하여 처음 접하는 분들에게는 튜닝 과정이…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제12편]: 문제 해결 가이드 및 로깅 기법
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생 및 연구원 여러분. 쿼드(QUAD) 드론연구소의 MAVSDK-Python 연재 블로그 열두 번째 시간에 오신 것을 환영합니다. 지금까지 우리는 오프보드(OFFBOARD) 모드를 통한 정밀한 위치/속도 제어부터 키보드를 활용한 수동 제어까지, 자율비행 구현을 위한 핵심적이고 화려한 기능들을 차근차근 마스터해 왔습니다. 여러분의 코드에 맞춰 시뮬레이터 속 드론이 완벽한 궤적을 그리며 날아갈…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제11편]: 키보드 입력을 활용한 드론 수동 제어 만들기
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생 및 연구원 여러분. 쿼드(QUAD) 드론연구소의 MAVSDK-Python 연재 블로그 열한 번째 시간에 오신 것을 환영합니다. 지난 **[제10편]**까지 우리는 드론이 스스로 판단하고 정해진 목표를 향해 날아가는 자율비행(위치 제어, 속도 제어, 피드포워드 동시 제어 등)의 핵심 원리들을 심도 있게 다루었습니다. 모든 코드가 완벽하게 짜여 있어 드론이 스스로 장애물을…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제10편]: 목표 도달 효율을 높이는 피드-포워드(Feed-Forward) 동시 제어
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생 및 연구원 여러분. MAVSDK-Python 연재 블로그의 대망의 열 번째 시간에 오신 것을 환영합니다. 지난 **[제8편]**과 **[제9편]**에 걸쳐 우리는 특정 좌표로 기체를 이동시키는 **위치 제어(Position Control)**와, 기체의 진행 방향 및 속도를 지정하는 **속도 제어(Velocity Control)**에 대해 깊이 있게 학습했습니다. 이 두 가지 제어 방식만으로도 훌륭한 자율비행…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제9편]: OFFBOARD 속도 제어 (BODY 및 NED 기준)
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생 및 연구원 여러분. MAVSDK-Python 연재 블로그의 아홉 번째 시간에 오신 것을 환영합니다. 지난 **[제8편]**에서는 특정 좌표(NED)로 기체를 이동시키는 오프보드 위치 제어(Position Control)에 대해 알아보았습니다. 하지만 위치 제어만으로는 카메라 비전을 이용해 움직이는 물체를 실시간으로 추적하거나, 장애물을 부드럽게 회피하는 다이내믹한 기동을 구현하기에 한계가 있습니다. 이를 해결하기 위해…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제8편]: OFFBOARD 위치 제어 (NED 기준)
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생 및 연구원 여러분. MAVSDK-Python 연재 블로그의 여덟 번째 시간에 오신 것을 환영합니다. 지난 **[제7편]**에서는 드론 제어의 핵심인 ‘OFFBOARD(오프보드) 모드’의 통신 원리와 3가지 필수 전제 조건, 그리고 방위 기준이 되는 좌표계에 대한 이론적인 배경을 탄탄하게 다졌습니다. 오프보드 모드는 컴패니언 컴퓨터(외부 기기)가 비행 제어기(FC)에게 초당 수십 번의…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제7편]: OFFBOARD 모드의 핵심 원리 이해하기
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생 및 연구원 여러분. MAVSDK-Python 연재 블로그의 일곱 번째 시간에 오신 것을 환영합니다. 지금까지 우리는 MAVSDK의 기본 클래스와 비동기(asyncio) 프로그래밍을 익히고, 드론을 이착륙시키며 목적지(Waypoint)로 날려 보내는 방법들을 배웠습니다. 하지만 강화학습을 이용한 자율비행 알고리즘, 카메라 비전 기반의 실시간 객체 추적, 군집 비행 등을 연구하는 대학원생이나 연구원분들에게 기존의…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제6편]: MAVSDK-Python 기본 샘플 프로그램 분석
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생 및 연구원 여러분. MAVSDK-Python 연재 블로그의 여섯 번째 시간에 오신 것을 환영합니다. 지난 5편에서는 프로그래밍의 가장 큰 허들이었던 파이썬의 비동기 프로그래밍(asyncio) 문법을 드론 제어의 관점에서 완벽하게 이해하는 시간을 가졌습니다. 이제 우리는 드론에게 명령을 내릴 수 있는 어휘(클래스)와, 대화하는 방식(비동기 처리)을 모두 터득했습니다. 새로운 언어를 배울…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제5편]: MAVSDK 제어를 위한 Python ‘asyncio’ 완벽 이해
안녕하세요! 자율비행 로봇과 드론 제어 알고리즘 연구에 매진하고 계신 대학생, 그리고 연구원 여러분. 연재 블로그의 다섯 번째 시간에 오신 것을 환영합니다. 지난 4편에서는 System, Action, Telemetry, Offboard 등 드론에게 구체적인 명령을 내리는 MAVSDK의 주요 클래스들을 살펴보았습니다. 그때 예제 코드들을 보시면서 아마 공통적으로 눈에 띄는 낯선 파이썬 키워드들이 있었을 것입니다. 바로 async, await, async for와 같은…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제4편]: MAVSDK 라이브러리 주요 클래스 알아보기
안녕하세요! 자율비행 연구와 드론 애플리케이션 개발의 세계로 깊이 들어가고 계신 대학생, 그리고 연구원 여러분. 지난 3편에서는 원격 제어를 위한 MAVSDK Server 구축이라는 꽤 까다롭지만 중요한 인프라 설정을 마쳤습니다. 이제 통신 환경이 완벽하게 준비되었으니, 드론에게 어떤 명령어(단어)들을 사용하여 구체적인 명령을 내릴 것인지 알아야 할 차례입니다. 이번 **[제4편: MAVSDK 라이브러리 주요 클래스 알아보기]**에서는 MAVSDK-Python이 제공하는 풍부한 API…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제3편]: 리모트 통신을 위한 MAVSDK Server 구축
안녕하세요! 자율비행 드론 제어 및 애플리케이션 개발에 매진하고 계신 대학생, 그리고 연구원 여러분 환영합니다. 지난 시간까지 우리는 MAVSDK-Python의 기본 개념을 익히고, 로컬 환경에서 드론을 이륙시키는 간단한 맛보기 코드를 실행해 보았습니다. 하지만 실제 연구실 환경이나 필드 테스트를 상상해 봅시다. 무거운 3D 시뮬레이터(Gazebo, ROS 등)나 실제 PX4 비행 제어기(FC)는 고성능 리눅스 PC나 드론 내부의 컴패니언 컴퓨터(Companion Computer)에서…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제2편]: MAVSDK-Python 개발 환경 설정
안녕하세요! 자율비행 연구와 드론 애플리케이션 개발에 매진하고 계신 대학생, 연구원 여러분. 지난 1편에서는 MAVSDK의 개념과 프로그래밍을 위한 기초 전제 조건들을 가볍게 살펴보았습니다. 이전 시간에 우리는 pip3 install mavsdk라는 간단한 명령어로 패키지를 설치하고 가상 드론을 띄워 보았습니다. 하지만 실제 연구 환경에서는 **라즈베리파이(Raspberry Pi)나 젯슨 나노(Jetson Nano)**와 같은 ARM 기반의 임베디드 보드에 환경을 구축하거나, **Windows 노트북에서 Linux…
-
MAVSDK-Python 프로그래밍 완벽 가이드 [제1편]: MAVSDK 소개 및 프로그래밍 전제 조건
안녕하세요! 자율비행 드론 제어 및 애플리케이션 개발에 관심을 가지고 계신 대학생, 그리고 연구원 여러분 환영합니다. 드론 연구를 진행하다 보면, 단순히 조종기로 드론을 날리는 것을 넘어 우리가 직접 작성한 코드로 드론에게 명령을 내리고, 상태 데이터를 받아오며, 복잡한 임무를 수행하게 만드는 과정이 필수적입니다. 이 연재 블로그에서는 이러한 과정을 아주 쉽고 강력하게 구현할 수 있도록 돕는 MAVSDK-Python에 대해…
-
[PX4 ROS 2 Programming] 5편: 심화 기법 (서비스 서버 및 다중 기체 시뮬레이션)
안녕하세요! 자율 비행 로봇과 군집 드론 시스템을 연구하시는 대학생 및 연구원 여러분, 다시 뵙게 되어 대단히 반갑습니다. 지난 4편에서는 비행 제어의 꽃인 ‘Offboard(오프보드) 제어’를 통해 ROS 2에서 C++ 노드를 작성하여 드론에 시동을 걸고 목표 고도까지 이륙시키는 과정을 함께 진행해 보았습니다. 여기까지 성공하셨다면 단일 기체를 제어하는 기본적인 ROS 2 아키텍처는 완벽히 마스터하신 셈입니다. 하지만 실제 연구…
-
[PX4 ROS 2 Programming] 4편: Offboard 제어 (드론 위치 및 궤적 제어)
안녕하세요! 자율 비행 로봇을 연구하고 개발하시는 대학생 및 연구원 여러분, 다시 뵙게 되어 반갑습니다. 지난 3편에서는 ROS 2와 PX4 간에 데이터를 주고받는 기초적인 Listener(구독자)와 Advertiser(발행자) 노드를 작성해 보며 통신망을 테스트했습니다. 시스템의 맥박이 뛰는 것을 확인하셨다면, 이제 본격적으로 드론의 뇌를 장악하여 우리가 원하는 대로 움직이게 만들 차례입니다. 이번 4편에서는 드론 프로그래밍의 핵심이자 꽃이라고 할 수 있는…
-
[PX4 ROS 2 Programming] 3편: ROS 2 기초 노드 작성 (Listener & Advertiser)
안녕하세요! 로봇 공학과 자율 비행 시스템에 푹 빠져계신 예비 개발자 및 연구자 여러분, 다시 뵙게 되어 반갑습니다. 지난 2편에서는 코드를 작성하기 전 반드시 이해해야 할 세 가지 핵심 개념인 **QoS(Quality of Service), 좌표계(Frames), 그리고 시간 동기화(Time Synchronization)**에 대해 깊이 있게 다루어 보았습니다. 통신 지연이나 엉뚱한 비행 방향과 같은 ‘통곡의 벽’을 피하는 방법을 익히셨으니, 이제 드디어…
-
[PX4 ROS 2 Programming] 2편: ROS 2 프로그래밍 필수 주의사항 (QoS, 좌표계, 시간 동기화)
안녕하세요! 로봇 공학과 자율 비행에 관심을 가지고 계신 여러분을 환영합니다. 지난 1편에서는 새롭게 도입된 uXRCE-DDS 미들웨어의 개념을 알아보고, Ubuntu 22.04 환경에서 ROS 2 Humble과 PX4의 작업 공간(Workspace)을 빌드하는 과정까지 함께 진행해 보았습니다. 환경 구축을 무사히 마치셨다면, 이제 본격적으로 C++ 코드를 작성하여 드론을 제어해 볼 차례입니다. 하지만 많은 대학생과 초보 연구자분들이 이 단계에서 이른바 **’통곡의 벽’**을…
-
[PX4 ROS 2 프로그래밍] 1편: PX4-ROS 2 연동 아키텍처 이해와 환경 구축
드론 자율주행이나 컴퓨터 비전 기반의 제어를 구현하기 위해 PX4와 ROS 2를 연동하는 것은 필수적인 과정입니다. 이번 포스트에서는 PX4와 ROS 2가 어떻게 통신하는지 아키텍처를 이해하고, 실제 코드를 돌려볼 수 있는 시뮬레이션 개발 환경을 구축해 보겠습니다. 1. PX4-ROS 2 연동 아키텍처 이해하기 과거 PX4(v1.13 이전)에서는 FastRTPS라는 미들웨어를 사용했지만, PX4 v1.14 버전부터는 ‘uXRCE-DDS’라는 새로운 미들웨어를 사용하여 ROS 2와…
-
NVIDIA Isaac ROS: 자율 주행의 한계를 넘는 시각적 인식 기술의 정수
1. 서론: 비정형 환경에서의 결정론적 상태 추정(Deterministic State Estimation) 로보틱스 연구에 있어 자율 주행의 성패는 비이상적이고 동적인 매니폴드(Non-idealized, non-static manifolds) 상에서 로봇이 자신의 상태를 얼마나 정교하게 추정하느냐에 달려 있습니다. 하지만 실제 현장은 실험실과 다릅니다. 센서의 스토캐스틱 노이즈(Stochastic noise), 누적되는 드리프트(Drift), 그리고 실시간 제어 루프의 결정성을 해치는 연산 지연(Computational latency)은 전통적인 기하학적 SLAM이 직면한 거대한 장벽입니다….
-
PX4 MAVLink-Python 프로그래밍: 3. 드론에 연결하기(Connect)
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은 PX4 MAVLINK-PYTHON 프로그래밍 그 중에서도 드론에 연결하기(Connect)에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 양해주시길 부탁 드립니다. 드론에 연결하기(Connect) 개요 mavutil 모듈은 serial, tcp 또는 udp 채널을 통해 MAVLink 시스템에 대한mavlink_connection() 통신 링크를 설정하는 방법을 제공합니다 . 원격 측정 로그로 작업할 때 유용한 파일 개체에 연결할 수도 있습니다….
-
드론 자재 선정 – 추력부 : 911 FALCON 프로젝트
안녕하세요, 쿼드(QUAD) 드론연구소의 이근찬 선임연구원입니다. 지난 2주차 글에서는 911 FALCON의 GPS 기반 복귀 목적지 갱신 구조를 포함한 통신 시스템 아키텍처(System Architecture)를 정리해 보았습니다.이번 3주차부터는 드론 제작에 앞서 기체 자재 선정 과정을 파트별로 정리해 보겠습니다. 한 번에 다 담기엔 내용이 많아, 추력부 → 전원부 → 제어·통신부 순서로 나누어 연재할 예정입니다. 이번 글에서는 그 첫 번째로 추력부(모터·ESC·프롭·배터리)를…
-
PX4 MAVLink-Python 프로그래밍: 2. Python MAVLink 라이브러리 사용
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은 PX4 MAVLINK-PYTHON 프로그래밍 그 중에서도 Python MAVLink 라이브러리 사용에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 양해주시길 부탁 드립니다. Python MAVLink 라이브러리 사용 개요 pymavlink 패키지에는 메시지를 인코딩 및 디코딩하고 서명을 적용 및 확인하는 저수준 기능을 제공하는 언어별 생성 모듈이 포함되어 있습니다. pymavlink 패키지 의 모듈 세트는 다음과…
-
PX4 MAVLink-Python 프로그래밍 : 1. MAVLink 개요
MAVLink 개요 안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은PX4 MAVLink-Python 프로그래밍 그 중에서도 MAVLink 개요에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 양해주시길 부탁 드립니다. 유튜브 강좌 하단의 유튜브 영상과 함께 순차적으로 작업해주시길 바랍니다. 가. MAVLink 프로토콜 MAVLink 는 드론과 지상국(GCS) 간에 데이터 및 명령을 전송하는 데 가장 일반적으로 사용되는 직렬 프로토콜입니다. 이…
-
GPS가 끊겨도 드론은 멈추지 않는다: Isaac ROS V-SLAM으로 여는 자율 비행의 신세계
실내 공간이나 거대한 빌딩 숲 사이로 드론을 날려본 적이 있나요? 갑자기 GPS 수신 불가를 알리는 경고등이 켜지고 드론이 흐르기 시작할 때, 조종사가 느끼는 공포는 상상 이상입니다. 하지만 우리는 이제 이 공포에서 해방될 준비를 해야 합니다. 쿼드(QUAD) 드론연구소가 제시하는 해법, Isaac ROS V-SLAM은 드론의 ‘눈(Camera)’과 ‘감각(IMU)’만을 활용해 GPS가 없는 극한의 환경에서도 완벽한 위치 추정을 가능케 합니다….
-
PX4 개발환경 구성 – Gazebo 시뮬레이터 사용하기
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은 PX4 개발환경 구성 그 중에서도 Gazebo 시뮬레이터 사용하기에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 양해주시길 부탁 드립니다. Gazebo 시뮬레이터 사용하기 하단의 유튜브 영상과 함께 순차적으로 작업해주시길 바랍니다. Gazebo는오픈 소스 로봇 시뮬레이터입니다. 이는 이전 Gazebo Classic 시뮬레이터를 대체하며 Ubuntu 22.04 이상에서 유일하게 지원되는 Gazebo 버전입니다. 지원…
-
PX4 개발환경 구성 – ROS2 + PX4 Toolchain 구성
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 오늘은 PX4 개발환경 구성 그 중에서도 ROS2 + PX4 Toolchain 구성에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 양해주시길 부탁 드립니다. ROS2 + PX4 Toolchain 구성 하단의 유튜브 영상과 함께 순차적으로 작업해주시길 바랍니다. 1. Ubuntu 22.04 + ROS2 Humble 설치 ROS2 Humble 설치는 링크를 참고 하십시오. 2….
-
V-SLAM 컴패니언컴퓨터 소프트웨어 – QUAD isaac-ros-vslam NVMe SSD 출시
안녕하세요. 쿼드(QUAD) 드론연구소 입니다. 오늘은 여러분의 자율주행 SLAM 드론 개발 시간을 단축시켜 드릴 PX4 컴패니언 컴퓨터(Jetson Orin Nano)용 V-SLAM 소프트웨어를 소개해 드리겠습니다. 이제 복잡한 NVIDIA isaac-ros-vslam 개발 환경 구축에 많은 시간을 뺏기지 마세요!!! Jetson Orin Nano에 NVMe 디스크를 꼽고 전원을 넣으면 바로 PX4와 함께 V-SLAM을 구현할 수 있습니다. quad-compsd-orin-nano-cuvslam-1.0.0 포함 소프트웨어 NVMe 제작시 100GB로 할당되어…
-
PX4 개발환경 구성 – Gazebo Classic 시뮬레이터 사용하기
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 이어서 PX4 개발환경 구성 그 중에서도 Gazebo Classic 시뮬레이터 사용법에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁 드립니다. Gazebo Classic은 객체 회피 및 컴퓨터 비전 테스트에 특히 적합한 자율 로봇을 위한 강력한 3D 시뮬레이션 환경입니다. 이 페이지에서는 SITL 및 단일 차량에서의 사용에 대해…
-
PX4 개발환경 구성 – ROS(1) + PX4 Toolchain 구성
안녕하세요. 마케팅팀 에이든(Aiden)입니다. 이번에는 PX4 개발환경 구성 그 중에서도 ROS(1) + PX4 Toolchain 구성에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁 드립니다. ROS(1) + Gazebo Classic 이 섹션에서는 PX4 Toolchain에 ROS(1)을 설치하는 방법을 설명합니다 . ROS(1) Desktop full version은 Gazebo Classic과 함께 제공되므로 일반적으로 PX4 시뮬레이터…
-
PX4 개발환경 구성 – Windows 10/11 WSL2 설치
안녕하세요. 마케팅팀 에이든 입니다. 이번에는 PX4 개발환경 구성 그 중에서도 Windows 10/11에서 WSL2를 설치하는 방법에 대해 소개해드리려 합니다. 해당 내용은 저희 QUAD 드론 연구소의 저작권으로 등록되어있는 내용이며 무단 배포는 지양해주시길 부탁 드립니다. 하단의 유튜브 영상과 함께 순차적으로 작업해주시길 바랍니다. Windows PowerShell (관리자모드) 실행 후 아래 명령어를 입력합니다. 작업이 완료되면 반드시 재부팅 해주셔야 합니다. WSL2 설치…
-
수색드론의 복귀를 위한 시스템 통신 아키텍쳐 : 911 FALCON 프로젝트
안녕하세요, 쿼드(QUAD) 드론연구소의 이근찬 선임연구원입니다. 지난 1주차 글에서는 911 FALCON 프로젝트를 시작하게 된 배경과, 짧은 비행시간 및 초기조치 부재라는 현장 문제를 해결하기 위해 어떤 운용 구조를 고안했는지 개요를 정리해 보았습니다.이번 2주차에서는 911 FALCON의 시스템 아키텍처(System Architecture)를 소개하겠습니다. 드론 – 로버 – 스테이션의 역할 분담과 데이터·통신 흐름을 중심으로, 전체 동작 구조를 정리해 보겠습니다. 출발점: 시스템 간…
-
차세대 AI 및 V-SLAM 연구를 위한 최적의 플랫폼: QUAD Q250-V3 심층 분석
안녕하세요. 마케팅팀 에이든 입니다.오늘은 연구자분들의 귀한 시간을 아껴드리고, 오직 연구 본연의 성과에 집중할 수 있도록 설계된 저희 쿼드(QUAD)의 Q250-V3 Opti 자율주행 드론 플랫폼을 소개해 드리고자 합니다. 1. 서론: 현대 UAV 연구의 핵심 과제와 플랫폼의 필연성 오늘날 무인 항공기(UAV) 연구는 단순한 비행 제어를 넘어 AI 기반 상황 인식, 실내 비순응 환경(Non-GPS)에서의 자율 주행, 그리고 ROS2 기반의…
-
골든타임을 사수하는 기술 : 911 Falcon 프로젝트
안녕하세요, 쿼드(QUAD) 드론연구소의 이근찬 선임연구원입니다. 이번 연재를 시작으로 QUAD 드론연구소의 911 FALCON 프로젝트를 소개해 드리겠습니다. 재난 현장에서 탐색과 초기조치가 끊기지 않도록 연속 운용이 가능한 시스템을 구축하는 과정을, 제작 과정 중심으로 차근차근 공유 드릴 예정입니다. 출발점: 재난 현장에서 드러난 ‘수색드론의 한계’ 작년 9월, 인천 해양경찰청 故 이재석 경사 사건이었습니다. 밀물이 들어오는 바다에서 인명을 구조 중 실종된 이 경사는…
