Python MAVLink 라이브러리 사용
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo / Updated: 2025-04-20
Last updated
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo / Updated: 2025-04-20
Last updated
pymavlink 패키지에는 메시지를 인코딩 및 디코딩하고 서명을 적용 및 확인하는 저수준 기능을 제공하는 언어별 생성 모듈이 포함되어 있습니다.
pymavlink 패키지 의 모듈 세트는 다음과 같습니다.
\dialects\v20\* 및 \dialects\v10\* : 각각 MAVLink v2 및 v1에 대한 각 소스 XML 에 해당하는 Dialect(전문) 모듈입니다 . 각 dialects 모듈에는 다음이 포함됩니다.
XML 파일에 정의된 모든 열거형 및 열거형 값에 대한 상수.
메시지 식별자에 대한 상수 집합입니다.
XML 파일에 정의된 MAVLink 메시지의 각 유형에 대한 클래스.
메시지를 보내고 받는 데 사용할 수 있는 MAVLink 클래스:
각 메시지 유형에 대한 _send _decode
기능을 가지고 있습니다.
서명을 확인하고 적용하는 방법이 있습니다.
데이터 압축 및 구문 분석을 위한 하위 수준 메서드가 있습니다.
common
모든 MAVLink 시스템이 공통적으로 사용하는 메시지
ardupilotmega
ArduPilot 펌웨어에서 사용하는 확장 메시지 포함
px4
PX4 프로젝트 전용 확장 메시지 포함
minimal
최소 메시지만 포함 (테스트/초경량 장비용)
mavutil.mavlink_connection(device, baud, ...)
(처음에) 메시지를 수신하거나 채널(예: udp, 직렬 등)에서 메시지를 보내기 위한 링크를 설정합니다. 이것은 연결을 나타내는 객체를 반환합니다. 당신이 사용할 수있는:
mav
메시지를 인코딩하고 보내기 위해 선택한 언어/프로토콜 모듈에 액세스하기 위한 속성
setup_signing()
서명 설정을 위해
recv_match()
특정 이름 또는 필드 값이 있는 메시지 캡처
연결을 통해 다른 많은 유용한 작업을 수행할 수 있습니다. 모든 자동 조종 매개변수 가져오기, 수신된 각 유형의 마지막 메시지에 액세스, 현재 비행 모드 또는 무장 상태를 포함한 자동 조종 원격 측정 가져오기 등.
일반적으로 대부분의 개발자는 통신 채널을 설정하고 관리하는데 mavutil 모듈을 사용합니다. 시작하기가 매우 쉽기 때문입니다. 이 모듈은 링크 설정, 메시지 송수신, 현재 활성화된 비행 모드와 같은 몇 가지 기본 자동 조종 장치 속성 쿼리를 위한 간단한 메커니즘을 제공합니다. 속성(mav
)을 통해 메시지를 인코딩, 디코딩 및 서명하는 데 사용되는 모듈에 대한 액세스를 제공합니다.
mavutil을 사용할 때 알아야 할 몇 가지 주요 주의 사항이 있습니다 .
이 모듈은 ArduPilot에 최적화되어 있으며 일부 기능은 다른 자동 조종 장치에서 제대로 작동하지 않을 수 있습니다.
mavutil을 사용할 필요는 없지만 처음부터 작성해야 하는 유용한 코드가 많이 포함되어 있습니다. 특히 들어오는 메시지를 필터링하는 연결 코드 및 방법은 모든 자동 조종 장치에 유용합니다.
: 통신 링크 설정, 메시지 수신 및 디코딩, 주기적인 작업 실행 등을 위한 MAVLink 유틸리티 기능
: 웨이포인트, 지오펜스, 랠리 포인트를 로드/저장합니다.
: MAVLink 매개변수 세트를 로드/저장합니다.
: 값과 메시지를 변환하는 데 유용한 기능(예: 미터/초를 Km/h로, 오일러를 라디안으로 쿼터니언 등).
(internal): MAVLink 표현식 평가 함수.
링크는 동일한 포트에서 실행 중인 여러 시스템을 제대로 처리하지 않습니다. 다중 차량 네트워크가 필요한 경우 샘플을 참조하십시오 .
mavutil은 여전히 상대적으로 낮은 수준의 MAVLink API입니다. 가장 일반적인 에 대한 지원도 제한적입니다 .