본문 바로가기

카테고리 없음

MAVLink message (#147) - AUTOPILOT_VERSION 에 대하여

* message 설명 : autopilot software의 버전과 지원할 수 있는 항목들을 GCS에게 보내줌

 

* message id : 148

 

* Fields 설명 (1번부터 순서대로 MAVLink 문서에 설명된 필드임)

    1. capabilities (uint64_t) : 여러 항목들에 대한 지원 여부를 비트로 표현한 필드(Fields 설명후 자세하게 설명)

    2. flight_sw_version (uint32_t) : 펌웨어 버전 번호

    3. middleware_sw_version (uint32_t) : 미들웨어 버전 번호

    4. os_sw_version (uint32_t) : 운영체제 버전 번호

    5. board-version (uint32_t) : 하드웨어, 보드 버전

    6. flight_custom_version (uint8_t[8]) : git hash(commitment에 대한 hash)의 처음 8바이트

    7. middleware_custom_version (uint8_t[8]) : git hash(commitment에 대한 hash)의 처음 8바이트

    8. os_custom_version (uint8_t[8]) : git hash(commitment에 대한 hash)의 처음 8바이트

    9. vendor_id (uint16_t) : 보드 벤더에 대한 ID

   10. product_id (uint16_t) : 제품에 대한 ID

   11. uid (uint64_t) : 하드웨어에서 제공하는 UID

   12. uid2 (uint8_t[18]) : uid 필드를 대체하는 필드, 0이 아니면 해당 필드를 uid로 인식함

 

* wireshark에 캡처된 모습

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* capabilities 필드에 대한 설명

 

- capabilities 필드는 총 64비트로 이루어져 있으며 각 비트는 다음과 같은 의미를 지닌다.

 

비트 값 필드명
1 (0x0001) MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT
2 (0x0002) MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT
4 (0x0004) MAV_PROTOCOL_CAPABILITY_MISSION_INT
8 (0x0008) MAV_PROTOCOL_CAPABILITY_COMMAND_INT
16 (0x0010) MAV_PROTOCOL_CAPABILITY_PARAM_UNION
32 (0x0020) MAV_PROTOCOL_CAPABILITY_FTP
64 (0x0040) MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET
128 (0x0080) MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED
256 (0x0100) MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT
512 (0x0200) MAV_PROTOCOL_CAPABILITY_TERRAIN
1024 (0x0400) MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET
2048 (0x0800) MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION
4096 (0x1000) MAV_PROTOCOL_CAPABILITY_COMPASS_CALIBRATION
8192 (0x2000) MAV_PROTOCOL_CAPABILITY_MAVLINK2
16384 (0x4000) MAV_PROTOCOL_CAPABILITY_MISSION_FENCE
32768 (0x8000) MAV_PROTOCOL_CAPABILITY_MISSION_RALLY
65536 (0x10000) MAV_PROTOCOL_CAPABILITY_FLIGHT_INFORMATION

 

ex) 본 포스팅에 첨부한 wireshark 파일에서 capabilities 필드의 값은 58607 (ef e4 00 00 00 00 00 00)

--> 0xe4ef

--> 0xe4ef = 0x8000 + 0x4000 + 0x2000 + 0x0400 + 0x0080 + 0x0040 + 0x0020 + 0x0008 + 0x0004 + 0x0002 + 0x0001

--> 그러므로 지원하는 기능 목록은 다음과 같음

0x0001 : MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT 

0x0002 : MAV_PROTOCOL_CAPABILITY_PARAM_FLOAT

0x0004 : MAV_PROTOCOL_CAPABILITY_MISSION_INT

0x0008 : MAV_PROTOCOL_CAPABILITY_COMMAND_INT

0x0020 : MAV_PROTOCOL_CAPABILITY_FTP

0x0040 : MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET

0x0080 : MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED

0x0400 : MAV_PROTOCOL_CAPABILITY_SET_ACTUATOR_TARGET

0x2000 : MAV_PROTOCOL_CAPABILITY_MAVLINK2

0x4000 : MAV_PROTOCOL_CAPABILITY_MISSION_FENCE

0x8000 : MAV_PROTOCOL_CAPABILITY_MISSION_RALLY

 

--> 기능에 대한 자세한 설명은 다음 링크를 참고

mavlink.io/en/messages/common.htmlmavlink.io/en/messages/common.html#MAV_PROTOCOL_CAPABILITY

 

Messages (common) · MAVLink Developer Guide

 

mavlink.io