MAVkit은 명령줄에서 MAVLink 2.0을 위한 C++ 도구 상자입니다.
다양한 유형의 인터페이스( 직렬 , UDP , TCP , 파일 )에서 데이터를 표시 , 리디렉션 , 브로드캐스트 , 로그 , 재생할 수 있습니다.
MAVkit은 MAVLink 프로그래머를 위한 프레임워크이기도 합니다. 각 모듈을 다른 프로젝트 내에서 독립적으로 사용할 수 있는 모듈식 아키텍처를 기반으로 구축되었습니다. 이 경우 통신 하드웨어에 따라 교체할 수 있는 간단한 MAVLink 블록을 제공합니다.
낮은 대기 시간을 염두에 두고 설계된 이 인터페이스는 인터페이스당 이중 스레드 처리 루프(빠른 읽기 및 처리)를 사용하여 오버플로(데이터 손실로 이어짐)로부터 IO 버퍼를 안전하게 유지합니다.
참고: 다음 재귀 명령을 사용하십시오. mavlink에는 두 개의 하위 모듈 레벨이 있습니다.
git submodule update --init --recursive
종속성 : Boost + MAVLink 일반적인 종속성
mkdir build
cd build
cmake ..
make
Mavkit은 메신저 라는 모듈로 구성됩니다. 메신저는 완전히 동시적인 방식으로 다른 사람에게 메시지를 주고받을 수 있습니다.
각 메신저는 직렬 링크, UDP 소켓, 로그 파일 등이 될 수 있습니다.
master 역할에 대해 최소한 하나의 메신저(첫 번째)를 지정해야 합니다. 이 특정 메신저는 당시 생성된 다른 모든 메신저와 이중으로 연결됩니다. 반대로, 보조 메신저는 그들 사이에 연결되지 않습니다.
다음은 각각 4개와 2개의 메신저로 구성되고 UDP를 통해 서로 연결된 두 개의 MAVkit 인스턴스의 예입니다. 마스터는 다른 모든 메신저와 연결되어 있지만 마스터는 서로 연결되어 있지 않습니다.
일단 빌드한 후에는 메신저를 하나씩 지정하여 명령줄에서 MAVKit을 실행할 수 있습니다.
첫 번째 메신저가 마스터 역할을 맡게 됩니다.
인수:
예: --tty /dev/ttyUSB0 57600
인수:
예: --udp_server 14550
인수:
--udp_client 192.168.1.10 14550
인수:
예 : --tcp_server 14550
인수:
--tcp_client 192.168.1.10 14550
수신된 메시지를 .raw 및 .ts 파일에 저장합니다(.raw에는 mavlink 원시 데이터가 포함되어 있고, .ts에는 각 메시지에 대한 타임스탬프가 포함되어 있습니다).
인수가 없습니다.
--log
.raw 및 .ts 파일의 콘텐츠를 재생합니다.
인수:
예: --file ../myLog 2.0 50
메시지를 stdout으로 출력합니다.
인수가 없습니다.
--display
명령줄에서 원하는 만큼 거의 많은 메신저를 결합할 수 있습니다.
예 :
./mavkit --tty 57600 /dev/ttyACM0 --udp_server 14550 --display --log --tcp_client 127.0.0.1 14551