Python MAVLink 라이브러리 사용

저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo / Updated: 2025-04-20

개요

pymavlink 패키지에는 메시지를 인코딩 및 디코딩하고 서명을 적용 및 확인하는 저수준 기능을 제공하는 언어별 생성 모듈이 포함되어 있습니다.

pymavlink 패키지 의 모듈 세트는 다음과 같습니다.

  • \dialects\v20\*\dialects\v10\* : 각각 MAVLink v2 및 v1에 대한 각 소스 XML 메시지 정의 에 해당하는 Dialect(전문) 모듈입니다 . 각 dialects 모듈에는 다음이 포함됩니다.

    • XML 파일에 정의된 모든 열거형 및 열거형 값에 대한 상수.

    • 메시지 식별자에 대한 상수 집합입니다.

    • XML 파일에 정의된 MAVLink 메시지의 각 유형에 대한 클래스.

    • 메시지를 보내고 받는 데 사용할 수 있는 MAVLink 클래스:

      • 각 메시지 유형에 대한 _send _decode기능을 가지고 있습니다.

      • 서명을 확인하고 적용하는 방법이 있습니다.

      • 데이터 압축 및 구문 분석을 위한 하위 수준 메서드가 있습니다.

Dialect 이름
용도/설명

common

모든 MAVLink 시스템이 공통적으로 사용하는 메시지

ardupilotmega

ArduPilot 펌웨어에서 사용하는 확장 메시지 포함

px4

PX4 프로젝트 전용 확장 메시지 포함

minimal

최소 메시지만 포함 (테스트/초경량 장비용)


  • mavutil : 통신 링크 설정, 메시지 수신 및 디코딩, 주기적인 작업 실행 등을 위한 MAVLink 유틸리티 기능

    • mavutil.mavlink_connection(device, baud, ...)(처음에) 메시지를 수신하거나 채널(예: udp, 직렬 등)에서 메시지를 보내기 위한 링크를 설정합니다. 이것은 연결을 나타내는 객체를 반환합니다. 당신이 사용할 수있는:

      • mav메시지를 인코딩하고 보내기 위해 선택한 언어/프로토콜 모듈에 액세스하기 위한 속성

      • setup_signing()서명 설정을 위해

      • recv_match()특정 이름 또는 필드 값이 있는 메시지 캡처

    • 연결을 통해 다른 많은 유용한 작업을 수행할 수 있습니다. 모든 자동 조종 매개변수 가져오기, 수신된 각 유형의 마지막 메시지에 액세스, 현재 비행 모드 또는 무장 상태를 포함한 자동 조종 원격 측정 가져오기 등.

  • mavwp : 웨이포인트, 지오펜스, 랠리 포인트를 로드/저장합니다.

  • mavparm : MAVLink 매개변수 세트를 로드/저장합니다.

  • mavextra : 값과 메시지를 변환하는 데 유용한 기능(예: 미터/초를 Km/h로, 오일러를 라디안으로 쿼터니언 등).

  • maveexpression (internal): MAVLink 표현식 평가 함수.

일반적으로 대부분의 개발자는 통신 채널을 설정하고 관리하는데 mavutil 모듈을 사용합니다. 시작하기가 매우 쉽기 때문입니다. 이 모듈은 링크 설정, 메시지 송수신, 현재 활성화된 비행 모드와 같은 몇 가지 기본 자동 조종 장치 속성 쿼리를 위한 간단한 메커니즘을 제공합니다. 속성(mav)을 통해 메시지를 인코딩, 디코딩 및 서명하는 데 사용되는 모듈에 대한 액세스를 제공합니다.

mavutil을 사용할 때 알아야 할 몇 가지 주요 주의 사항이 있습니다 .

  • 링크는 동일한 포트에서 실행 중인 여러 시스템을 제대로 처리하지 않습니다. 다중 차량 네트워크가 필요한 경우 source-system-filtering 샘플을 참조하십시오 .

  • 이 모듈은 ArduPilot에 최적화되어 있으며 일부 기능은 다른 자동 조종 장치에서 제대로 작동하지 않을 수 있습니다.

  • mavutil은 여전히 ​​상대적으로 낮은 수준의 MAVLink API입니다. 가장 일반적인 MAVLink 마이크로 서비스에 대한 지원도 제한적입니다 .

mavutil을 사용할 필요는 없지만 처음부터 작성해야 하는 유용한 코드가 많이 포함되어 있습니다. 특히 들어오는 메시지를 필터링하는 연결 코드 및 방법은 모든 자동 조종 장치에 유용합니다.

pip3 install pymavlink

Last updated