Tài liệu kỹ thuật

Giao thức MAVLink

MAVLink là giao thức serial kết nối giữa thiết bị bay và trạm điều khiển mặt đất.

- Giao thức quy định các bản tin theo common.xml và ardupilot.xml.

- Bản tin MAVLink chuyển được theo bất kỳ giao tiếp serial nào không phụ thuộc công nghệ  (wifi, 900mhz radio ...)

- Bản tin không được đảm bảo đã đi đến bên nhận, do đó trạm mặt đất hoặc máy tính trên thiết bị bay phải kiểm tra trạng thái để xem lệnh đã được thực thi chưa.

Định dạng bản tin

Khung Mavlink

Bản tin không quá 263 byte (Mavlink phiên bản 1.0) hoặc 280 byte (Mavlink phiên bản 2.0).

Bên gửi sẽ điền thông tin vào trường System ID và Component ID để bên nhận biết gói tin đến từ đâu. System ID là dãy ID duy nhất cho mỗi thiết bị hoặc trạm mặt đất. Mặc định trạm mặt đất dùng ID "255" còn thiết bị dùng ID "1" (có thể đổi được dùng tham số MAV_SYSID). Component ID cho trạm mặt đất và thiết bị thường là 1. MAVLink cho phép System ID giống như Component ID, nhưng nên chọn giá trị khác.

Trường Message ID trong common.xml và ardupilot.xml bên cạnh tên bản tin. 

Phần Data trong bản tin lưu giá trị trường riêng lẻ gửi đi.

Luồng trao đổi bản tin mức cao

Luồng trao đổi bản tin

  1. Khi kết nối được mở tại mỗi thiết bị, Hệ thống "System" sẽ gửi bản tin HEARTBEAT tại tần số  1hz.
  2. Trạm mặt đất hoặc máy tính sẽ gửi yêu cầu dữ liệu mong muốn, tốc độ truyền bằng bản tin có cấu trúc sau:
    • REQUEST_DATA_STREAM thiết lập tốc độ nhóm bản tin.
    • COMMAND_LONG chứa lệnh SET_MESSAGE_INTERVAL kiểm soát chính xác bản tin được gửi và tốc độ gửi (nhưng chỉ được hỗ trợ từ phiên bản ArduPilot 4.0 hoặc cao hơn).
  3.  Trạm mặt đất hoặc máy tính đồng hành gửi lệnh đến phương tiện bay. Chi tiết các lệnh cho trực thăng và máy bay phản lực được quy định trong phụ lục.