카테고리 보기

MAVLink-Python 프로그래밍

1 하위 카테고리 | 14 Doc

MAVLINK 개요

마지막 업데이트: 2025년 12월 08일

가. MAVLink 프로토콜 MAVLink 는 드론과 지상국(GCS) 간에 데이터 및 명령을 전송하는 데 가장 일반적으로 사용되는 직렬 프로토콜입니다. 이 프로토콜은 common.xml 및 ardupilot.xml 에서 찾을 수 있는 대규모 메시지 집합을 정의합니다. MAVLink 메시지는 거의 모든 직렬 연결을 통해 전송될 수 있으며 기본 기술(WiFi, 900MHz 라디오 등)에 의존하지 않습니다. 메시지 전달이 보장되지 않으므로 지상국 또는 컴패니언...

Python MAVLink 라이브러리 사용

마지막 업데이트: 2025년 12월 08일

개요 pymavlink 패키지에는 메시지를 인코딩 및 디코딩하고 서명을 적용 및 확인하는 저수준 기능을 제공하는 언어별 생성 모듈이 포함되어 있습니다. pymavlink 패키지 의 모듈 세트는 다음과 같습니다. Dialect 이름 용도/설명 common 모든 MAVLink 시스템이 공통적으로 사용하는 메시지 ardupilotmega ArduPilot 펌웨어에서 사용하는 확장 메시지 포함 px4 PX4 프로젝트 전용 확장 메시지 포함 minimal 최소 메시지만 포함 (테스트/초경량...

드론에 연결하기(Connect)

마지막 업데이트: 2025년 12월 08일

개요 mavutil 모듈은 serial, tcp 또는 udp 채널을 통해 MAVLink 시스템에 대한mavlink_connection() 통신 링크를 설정하는 방법을 제공합니다 . 원격 측정 로그로 작업할 때 유용한 파일 개체에 연결할 수도 있습니다. 이 메서드는 단일 시스템을 나타내는 개체를 반환하지만 링크의 여러 시스템에서 메시지를 수집합니다. 이는 2-시스템 네트워크에 적합하지만 다중 차량 IP 네트워크를 통해 연결해야 하는 경우 source-system-filtering 을...

MAVLINK 메시지 주고받기

마지막 업데이트: 2025년 12월 08일

메시지 보내기 MAVLink주요 프로토콜 처리 클래스입니다. 각 다이알렉트 모듈에서 정의되며 <message_name>_send()의 형식으로 메시지 정의 에 있는 모든 메시지에 대한 메소드를 포함합니다 . 메시지 필드 값은 함수에 대한 인수로 전달됩니다. 모든 메시지에 대해 동일한 필드는 클래스(예: 소스 시스템, 소스 구성 요소)에서 정의됩니다. 각 메시지는 자동으로 생성된 경우에도 다이알렉트 소스 코드에 문서화됩니다 . 예를 들어 system_time_send() 이...

비행 모드 (PX4 멀티콥터)

마지막 업데이트: 2025년 12월 08일

비행 모드는 자동 조종 기능을 지원하여 차량을 수동으로 조종하고, 이륙 및 착륙과 같은 일반적인 작업을 자동화하고, 자율 임무를 실행하거나 비행 제어를 외부 시스템에 위임하는 작업을 더 쉽게 해줍니다. 이 주제에서는 멀티콥터와 헬리콥터에 사용 가능한 비행 모드에 대한 개요를 제공합니다. 비행 모드는 수동 또는 자동 모드 입니다 . 수동 모드는 RC 조종 스틱이나 조이스틱을 사용하여 수동으로...

MAV_CMD

마지막 업데이트: 2025년 12월 08일

개요 MAV_CMD 메세지는 자동 비행 모드에서 기체에 줄 수 있는 제어명령 목록 입니다. MAVLINK Common Message Set (common.xml) | MAVLink Guidemavlink.io MAV_CMD는 크게 COMMAND_INT 와 COMMAND_LONG 타입이 있으며, 드론에 어떠한 명령을 보낼때 사용합니다. COMMAND_INT 는 GPS 좌표 또는 고도 정보가 포함된 명령을 보낼 때 사용해야 합니다. 이는 위치 및 고도 값에 대해 정확한 좌표 프레임을...

PX4 ‘OFFBOARD” 와 Ardupilot ‘GUIDED’ 모드 차이

마지막 업데이트: 2025년 12월 08일

✈️ 1. 공통점 요약 항목 설명 목적 외부에서 실시간으로 위치/속도/자세/명령을 줘서 드론을 제어 인터페이스 MAVLink로 GCS 또는 Companion Computer와 통신 활용 VIO, SLAM, AI 경로 계획, 비주얼 서보잉 등 ⚙️ PX4 – Offboard Mode 특징 주요 포인트 항목 설명 요구사항 매 50ms 이내로 SET_POSITION_TARGET_LOCAL_NED 등을 지속 송신 제어 단위 위치 / 속도 / 가속도 /...

PX4 Offboard 모드에서만 유효한 주요 MAV_CMD

마지막 업데이트: 2025년 12월 08일

아래 명령들은 오직 Offboard 모드에서만 “accept”되고 수행되며, 다른 모드에서는 “Command Denied” 또는 무시됨: 🔹 1. 위치/속도/가속도/자세 제어 관련 명령 MAV_CMD 설명 비고 MAV_CMD_DO_SET_POSITION 위치 직접 제어 비공식 / 내부 구현 필요 MAV_CMD_DO_SET_POSITION_LOCAL 로컬 프레임 위치 설정 NED 또는 ENU 기준 MAV_CMD_DO_SET_VELOCITY 속도 제어 PX4 자체 구현 없음 (속도 토픽 사용 권장) MAV_CMD_DO_SET_VELOCITY_LOCAL 로컬 속도 제어...

드론에 시동걸기(MAV_CMD_COMPONENT_ARM_DISARM)

마지막 업데이트: 2025년 12월 08일

개요 MAVLINK를 통해 드론에 명령을 내릴때는 COMMAND_LONG 메시지에 MAV_CMD 값을 사용하여 MAVLINK 커멘드를 전달합니다. MAV_CMD에는 이미 정의된 여러개의 명령 메시지들이 정의되어 있으며 COMMAND_LONG 메시지에 7개파라메터에 정확한 전문의 값을 채워 전달 합니다. MAV_CMD에 대한 목록은 아래 링크를 참고 하세요. MAVLINK Common Message Set (common.xml) | MAVLink Guidemavlink.io 이번 시간에는 드론에 시동을 걸고 끄는 MAV_CMD(MAV_CMD_COMPONENT_ARM_DISARM)를 알아 보고...

이륙하기(MAV_CMD_NAV_TAKEOFF)

마지막 업데이트: 2025년 12월 08일

이번 시간에는 COMMAND_LONG 메시지를 이용하여 드론을 이륙하는 MAV_CMD 명령에 대해 알아 보겠습니다. 드론을 이륙시키기 위해서는 MAV_CMD_NAV_TAKEOFF (22 ) 명령을 사용 합니다. MAV_CMD_NAV_TAKEOFF 전문 파라메터 설명 단위 1: Pitch Minimum pitch (if airspeed sensor present), desired pitch without sensor deg 2 Empty 3 Empty 4: Yaw Yaw angle (if magnetometer present), ignored without magnetometer. NaN to...

이동하기(SET_POSITION_TARGET_GLOBAL_INT)

마지막 업데이트: 2025년 12월 08일

SET_POSITION_TARGET_GLOBAL_INT SET_POSITION_TARGET_GLOBAL_INT 명령은 드론의목표 위치(WGS84 좌표), 속도, 방향 또는 선회율을 설정합니다. 이는 위치가 위도 및 경도 값으로 제공되고 고도가 집 또는 지형에 상대적인 해수면보다 높을 수 있다는 점을 제외하면 SET_POSITION_TARGET_LOCAL_NED 메시지와 유사합니다. 메시지 정의는 여기에서 찾을 수 있습니다. 명령 매개변수 명령 필드 설명 time_boot_ms 부팅 이후 보낸 사람의 시스템 시간(밀리초) target_system 차량의 시스템 ID target_component...

이동하기(SET_POSITION_TARGET_LOCAL_NED)

마지막 업데이트: 2025년 12월 08일

개요 드론의 이동 명령은 아래 3가지 MAV_CMD가 사용될 수 있으며, GUIDED 모드(ArduPilot) 또는 OFFBOARD 모드(PX4) 에 있는 동안 드론의 위치, 속도 또는 자세를 제어하는 ​​데 사용할 수 있습니다. 본 교재에서는 SET_POSITION_TARGET_LOCAL_NED 와 SET_POSITION_TARGET_GLOBAL_INT 대해 학습 합니다. (SET_ATTITUDE_TARGET 은 잘 사용되지 않음) SET_POSITION_TARGET_LOCAL_NED 차량의 목표 위치(EKF 원점에서 NED의 오프셋으로), 속도, 가속도, 방향 또는 선회율을 설정합니다. 메시지...

기수 방향과 속도 변경

마지막 업데이트: 2025년 12월 08일

기수 방향(Yaw) 제어 기체의 기수 방향(Yaw)를 변경하기 위해서는 MAV_CMD_CONDITION_YAW 커맨드를 사용 합니다. 매개변수를 사용하면 대상 방향이 현재 요 방향에 대해 절대적인지 또는 상대적인지를 지정할 수 있습니다. 방향이 상대적인 경우 현재 방향에서 값을 더하거나 뺄 것인지 여부를 (별도로) 지정할 수도 있습니다(차량은 항상 param3 값에 관계없이 새 대상 방향으로 가장 빠르게 이동하는 방향으로 회전합니다). 명령 매개변수 명령...

[별첨]참고 자료

마지막 업데이트: 2025년 12월 08일

MAVLINK Messages MAVLINK Common Message Set (common.xml) | MAVLink Guidemavlink.io MAVLINK Python Examples pymavlink/examples at master · ArduPilot/pymavlinkGitHub Shortcut Links