개요
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
최소 메시지만 포함 (테스트/초경량 장비용)
pymavlink 모듈
- 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을 사용할 필요는 없지만 처음부터 작성해야 하는 유용한 코드가 많이 포함되어 있습니다. 특히 들어오는 메시지를 필터링하는 연결 코드 및 방법은 모든 자동 조종 장치에 유용합니다.
나. pymavlink 설치
Copy
pip3 install pymavlink
