精华内容
下载资源
问答
  • MavLink

    2020-08-17 19:28:02
    2.1 MAVLink (Micro Air Vehicle Link)是一种用于小型无人载具的通信协议, 于2009年首次发布。该协议广泛应用于地面站(Ground Control Station,GCS) 与无人载具(Unmanned vehicles)之间的通信,同时也应用在...

    2.1 MAVLink (Micro Air Vehicle Link)是一种用于小型无人载具的通信协议,

    于2009年首次发布。该协议广泛应用于地面站(Ground Control Station,GCS)
    与无人载具(Unmanned vehicles)之间的通信,同时也应用在载具内部子系统的
    内部通信中,协议以消息库的形式定义了参数传输的规则。MAVLink协议支持
    无人固定翼飞行器、无人旋翼飞行器、无人车辆等多种载具。
    • 官方使用文档网站:
    https://mavlink.io/en/messages/common.html
    • MAVLink源码:
    https://github.com/mavlink/mavlink
    • 基于MAVLink的QGroundControl地面站源码:
    https://github.com/mavlink/qgroundcontrol

    2.2 MAVLink的本质就是字节流的封装与解析协议

    • MAVLink 1的数据包格式如下:
      在这里插入图片描述

    • MAVLink 2的数据包如下:
      在这里插入图片描述
      在这里插入图片描述

    2.3 解析原理

    • 读取:所有字节流存入buffer,依次读取buffer中的字节数据,遇到STX标志位(MAVLink v1的标志位是0xFE,v2的标志位为0xFD)开始识别一条消息直到消息尾部,如果消息校验正确则将消息发送给处
    理程序• 发送:按上一页PPT将消息转换成字节流。
    在这里插入图片描述

    2.4 接收解析源码分析

    给定一定长度的字节流buffer,长度为length,通过下列脚本解析,每解析出一
    个mavlink数据包就执行onMavLinkMessage函数

    for(int i = 0 ; i < length ; ++i)
    {
    msgReceived = mavlink_parse_char(MAVLINK_COMM_1, (uint8_t)buffer[i], &message, &status);
    if(msgReceived){
    emit onMavLinkMessage(message);
    } 
    }
    

    其中:
    void onMavLinkMessage(mavlink_message_t message);
    是得到一个MAVLink消息包后的处理函数,需要根据这个消息的ID来识别当前包的用途(心跳包,
    GPS位置,姿态等),并提取出感兴趣的数据。
    解析函数实现如下,根据message.msgid跳到对应的_decode函数,解码出数据

    void onMavLinkMessage(mavlink_message_t message){
    switch (message.msgid){
    case MAVLINK_MSG_ID_GLOBAL_POSITION_INT:{
    mavlink_global_position_int_t gp;
    mavlink_msg_global_position_int_decode(&message, &gp);
    outHilData.time_boot_ms = m_LastReceiveMavMsg;
    outHilData.GpsPos[0]=gp.lat;
    outHilData.GpsPos[1]=gp.lon;
    outHilData.GpsPos[2]=gp.alt;
    outHilData.relative_alt = gp.relative_alt;
    outHilData.GpsVel[0]=gp.vx;
    outHilData.GpsVel[1]=gp.vy;
    outHilData.GpsVel[2]=gp.vz;
    outHilData.hdg = gp.hdg;
    break;
    }
    }
    }
    

    2.5 发送源码解析 — 发送一条mavlink_hil_actuator_controls消息

    void sendHILCtrlMessage(uint8_t modes, uint64_t flags, float ctrl[])
    {
    mavlink_hil_actuator_controls_t hilctrl;
    hilctrl.mode = modes;
    hilctrl.flags = flags;
    for(int i=0;i<16;i++){
    hilctrl.controls[i]=ctrl[i];
    }
    mavlink_message_t mess;
    mavlink_msg_hil_actuator_controls_encode(SystemID, TargetCompID, &mess, &hilctrl);
    char buffer[500];
    memset(buffer,0,500);
    unsigned int length = mavlink_msg_to_send_buffer((uint8_t*)buffer, & mess);
    udp.writeDatagram(buffer,length);//通过UDP或者串口将buffer发送出去即可
    }
    

    2.6 MAVLink消息包的ID列表
    在这里插入图片描述

    展开全文
  • MAVLink

    千次阅读 2020-03-30 11:37:19
    MAVLink 是一种用于飞行器上的轻量级成熟通信协议,与很多自定的协议相比,它的开发难度非常小,有现成的配置工具,可直接生成MSG代码(简单来说,就是生成对应的函数接口供你直接调用即可),直接调用几个相应的...

          MAVLink 是一种用于飞行器上的轻量级成熟通信协议,与很多自定的协议相比,它的开发难度非常小,有现成的配置工具,可直接生成MSG代码(简单来说,就是生成对应的函数接口供你直接调用即可),直接调用几个相应的函数接口即可,不需要自己封装、解析等;突出的优点在于配置调用比较简单


    Pixhawk/APM都是采用MAVLINK协议实现的飞控的数据链路传输。先简单介绍下mavlink协议。Mavlink协议最早由 苏黎世联邦理工学院 计算机视觉与几何实验组 的  Lorenz Meier于2009年发布,并遵循LGPL开源协议。Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议,主要应用在微型飞行器(micro aerial vehicle)的通讯上。Mavlink是为小型飞行器和地面站(或者其他飞行器)通讯时常常用到的那些数据制定一种发送和接收的规则并加入了校验(checksum)功能。据说亿航四轴的初期版本就是参考的MAVLINK协议或者说参考的APM飞控系统。
    下面是mavlink的消息简介和官方指导连接:

    https://pixhawk.ethz.ch/mavlink/

    http://qgroundcontrol.org/mavlink/start


     MAVLink 1 packet

     

    Byte IndexC versionContentValueExplanation
    0uint8_t magicPacket start marker0xFEProtocol-specific start-of-text (STX) marker used to indicate the beginning of a new packet. Any system that does not understand protocol version will skip the packet.
    1uint8_t lenPayload length0 - 255Indicates length of the following payload section (fixed for a particular message).
    2uint8_t seqPacket sequence number0 - 255Used to detect packet loss. Components increment value for each message sent.
    3uint8_t sysidSystem ID1 - 255ID of system (vehicle) sending the message. Used to differentiate systems on network. Note that the broadcast address 0 may not be used in this field as it is an invalid source address.
    4uint8_t compidComponent ID1 - 255ID of component sending the message. Used to differentiate components in a system (e.g. autopilot and a camera). Use appropriate values in MAV_COMPONENT. Note that the broadcast address MAV_COMP_ID_ALL may not be used in this field as it is an invalid source address.
    5uint8_t msgidMessage ID0 - 255ID of message type in payload. Used to decode data back into message object.
    6 to (n+6)uint8_t payload[max 255]Payload data Message data. Content depends on message type (i.e. Message ID).
    (n+7) to (n+8)uint16_t checksumChecksum (low byte, high byte) X.25 CRC for message (excluding magic byte). Includes CRC_EXTRA byte.
    • The minimum packet length is 8 bytes for acknowledgment packets without payload.
    • The maximum packet length is 263 bytes for full payload.

    MavlinkMessage的具体消息格式

    STX-红色的是起始标志位(stx),在v1.0版本中以“FE”作为起始标志。这个标志位在mavlink消息帧接收端进行消息解码时有用处。
    LEN-第二个格子代表的是灰色部分(payload,称作有效载荷,要用的数据在有效载荷里面)的字节长度(len),范围从0到255之间。在mavlink消息帧接收端可以用它和实际收到的有效载荷的长度比较,以验证有效载荷的长度是否正确。
    SEQ-第三个格子代表的是本次消息帧的序号(seq),每次发完一个消息,这个字节的内容会加1,加到255后会从0重新开始。这个序号用于mavlink消息帧接收端计算消息丢失比例用的,相当于是信号强度。
    SYS-第四个格子代表了发送本条消息帧的设备的系统编号(sys),使用PIXHAWK刷PX4固件时默认的系统编号为1,用于mavlink消息帧接收端识别是哪个设备发来的消息。
    COMP-第五个格子代表了发送本条消息帧的设备的单元编号(comp),使用PIXHAWK刷PX4固件时默认的单元编号为50,用于mavlink消息帧接收端识别是设备的哪个单元发来的消息(暂时没什么用) 。
    MSG-第六个格子代表了有效载荷中消息包的编号(msg),注意它和序号是不同的,这个字节很重要,mavlink消息帧接收端要根据这个编号来确定有效载荷里到底放了什么消息包并根据编号选择对应的方式来处理有效载荷里的信息包。
    PAYLOAD-数据包
    CKACKB-最后两个字节是16位校验位。


    MAVLink的C源代码都是.h头文件。头文件只需要添加对应路径,包含头文件即可(#include "mavlink.h")

    1

    替换代码:#define MAVPACKED( __Declaration__ )       __Declaration__ 

    为              #define MAVPACKED( __Declaration__ )      

    2

    #pragma   anon_unions

    keil中默认是不支持匿名结构体的,需要编译指令#pragma anon_unions指名。

    3

    去掉  #include <math.h>


        mavlink_msg_test_types_encode_chan(1, 2, 0, &gMavlinkMsgSnd, (const mavlink_test_types_t*)&gTestTypesSnd);
        mavlink_msg_to_send_buffer(gMavSndBuf, (const mavlink_message_t *)&gMavlinkMsgSnd);
       ------------------------------------------------------------------------


    int8_t TestMAVLinkParse(uint8_t* rxBuf, uint16_t len)
    {

        uint16_t i=0,res=0;
        for(i=0; i<len; ++i){
            res =  mavlink_parse_char(0, rxBuf[i], &gMavlinkMsgRcv, &gMavlinkStatus);
            if (res){
                printf("Received message with msgID %d, sequence: %d from component %d of system %d\r\n", 
                       gMavlinkMsgRcv.msgid, gMavlinkMsgRcv.seq, gMavlinkMsgRcv.compid, gMavlinkMsgRcv.sysid);
                return 0;
            }
        }   

    }

     

    展开全文
  • Mavlink2Rest mavlink2rest创建一个REST服务器,该服务器提供来自mavlink源的mavlink信息。 当前版本支持ardupilotmega方言,其中包括common , icarous和uavionix 。 抓住它 资料下载 :package: : :laptop_...
  • mavlink parse

    2018-02-08 22:23:29
    just simplely parse the header and check code of mavlink packet
  • mavlink的入门资料;适合纯粹的mavlink小白,配合笔者的博文介绍,助你理解深入理解mavlink协议。 尊重原著未删减,原名叫“MavLink Tutorial for Absolute Dummies (Part –I)” 支持开源,不要资源分。
  • mavlink DSP

    2017-01-18 21:37:15
    无人机数据链的MAVLINK移植
  • MAVLink MAVLink -- Micro Air Vehicle Message Marshalling Library. MAVLink is a very lightweight, header-only message library for communication between drones and/or ground control stations. It ...
  • mavlink分享

    2018-01-25 09:48:15
    描述了ros与pixhawk通讯的mavlink协议,通过此图可以很清晰的知道ros和pixhawk之间的topic信息流程图
  • mavlink.js MAVLink 协议的 JavaScript 库集合 如何生成 从克隆 mavlink 存储库 执行生成器工具(它是一个 python 脚本..): python \ -m pymavlink.tools.mavgen \ --lang=JavaScript \ message_definitions/v...
  • sdk.mavlink.io Mavlink SDK指南
  • MAVLink学习之路01_认识MAVLink

    千次阅读 2018-09-03 14:52:23
    MAVLink最新全套教程: 1.MAVLink学习之路01_认识MAVLink 2.MAVLink学习之路02_工具下载、环境搭建 3.MAVLink学习之路03_XML中定义MSG并生成C代码 4.MAVLink学习之路04_MAVLink移植到STM32具体步骤 5....

    MAVLink最新全套教程:
    1.MAVLink学习之路01_认识MAVLink
    2.MAVLink学习之路02_工具下载、环境搭建
    3.MAVLink学习之路03_XML中定义MSG并生成C代码
    4.MAVLink学习之路04_MAVLink移植到STM32具体步骤
    5.MAVLink学习之路05_MAVLink应用编程接口分析
    ······

    该系列教程已经在我的个人微信公众号 「strongerHuang」 整理并分享。因在这里分享文章,还需单独整理一遍,时间有限,就不再一一重复整理出来了。

    想要查看更多相关教程,可以关注我的个人微信公众号「strongerHuang」,在公众号底部菜单,或者回复【MAVLink学习之路】即可查看。

    申明:该文档由作者「strongerHuang」原创发布,仅供个人学习使用,转载请公众号联系作者授权。版权所有,禁止商用

    一、写在前面

    1.MAVLink是一种非常轻量级的通信协议,在简单的8位单片机上也可以运行。

    2.MAVLink的初衷主要是用于无人机上,但它的通用性和可移植性非常好,它也可以应用于其它很多场合。

    3.MAVLink的设计方式值得学习通信的朋友研究一下。

    因此,学习无人机开发、学习通信原理、需要实现设备间通信的朋友都值得参看本文。

    二、关于MAVLink

    2.1 描述

    MAVLink:Micro Air Vehicle Link,即微型飞行器连接通信协议,于2009年初由Lorenz Meier首次发布。

    Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议。

    MAVLink是一种非常轻量级的通信协议,主要用于与无人机(以及板载无人机组件之间)进行通信。

    2.2 主要特征

    1.效率很高
    MAVLink V1每帧最少只有8个字节的数据,包括帧头和数据包丢弃检测;
    MAVLink V2每帧最少只有14个字节的数据(是一个更加安全和可扩展的协议);

    2.非常可靠
    自2009年以来,MAVLink一直被用于在各种不同且具有挑战性的通信信道上的许多不同车辆,地面站(和其他节点)之间进行通信。它提供了检测数据包丢失,损坏和数据包身份验证的方法。

    3.支持多种编程语言
    可在多种MCU(如:STM32、Atmega、ARM7)和操作系统(如:Windows,Linux,MacOS,Android和iOS)上运行。

    4.支持网络上最多255个并发系统

    2.3 参考网址

    官网:https://mavlink.io/en

    地面站:http://qgroundcontrol.org/mavlink/start

    维基百科:https://en.wikipedia.org/wiki/MAVLink

    三、MAVLink协议格式

    目前MAVLink有两个版本:V1和V2版本,差异及详情请看下图:

    MAVLink V2是V1的拓展版本,是一个更加安全和可扩展的协议。

    由于市面上应用较广的还是V1版本,且支持的编程语言也是V1多余V2。因此,接下来(MAVLink学习之路)我都会结合MAVLink V1来讲述(学会V1,V2和容易就掌握了)。

    3.1 MAVLink V1格式

    MAVLink通信内容包含常见通信协议帧头、帧尾、长度、校验等。协议格式及详情见下图:

    四、MAVLink使用方法和步骤

    MAVLink之所以受广大无人机开发朋友的喜爱,原因就在于MAVLink移植方便、操作简单,以及它的兼容性很好(当然,这些都是它的优点,缺点肯定也是有的)。

    要想使用MAVLink,一些基本的操作肯定还是得有。方便初学者对MAVLinK有进一步的认识,我先罗列主要步骤。

    4.1 主要步骤

    1.下载相应安装包及工具

    2.环境搭建

    3.通过xml配置MSG

    4.移植到STM32

    5.结合实例应用编程

    当然,以上几点只是概要内容,详细的内容请查看该系列教程后面文章。

    五、说明

    1.因IAR各种IDE针对的处理器差异较大,所以关于节点选项的配置差异也较大。本文讲述关于EWSTM8的许多节点选项可能在其他IDE中没有。
    2.版权所有,禁止商用
    3.该文档由作者「strongerHuang」原创发布,仅供个人学习使用,转载请公众号联系作者授权。

    六、最后

    为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该系列教程已更新于我的个人微信公众号 「strongerHuang」 ,关注微信公众号回复【MAVLink学习之路】即可查看。

    我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

    展开全文
  • 通过stm32f103cbt6解析apm,pix飞控数传口的mavlink消息。
  • Mavlink相机管理器[WIP为0.3.0,请检查发布标签] Mavlink相机管理器是可扩展的跨平台相机服务器。 它提供用于共享视频流的RTSP服务,以及与MAVLink相机协议兼容的API,用于配置地面控制站(例如:QGroundControl)...
  • 学习MavLink

    2016-08-15 16:39:51
    轻松学习MavLink通讯协议,by luoshi006
  • mavlink python

    2019-11-20 09:23:17
    from pymavlink import mavutil # Create the connection m = mavutil.mavlink_connection('udpin:0.0.0.0:14550') ...['_MAVLink__callbacks', '_MAVLink__parse_char_legacy', '_MAVLink__parse_char_n...
    from pymavlink import mavutil
    
    # Create the connection
    m = mavutil.mavlink_connection('udpin:0.0.0.0:14550')
    dir(m.mav)
    
    ['_MAVLink__callbacks', '_MAVLink__parse_char_legacy', '_MAVLink__parse_char_native', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__long__', '__module__', '__native__', '__new__', '__nonzero__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', 'actuator_control_target_encode', 'actuator_control_target_send', 'adsb_vehicle_encode', 'adsb_vehicle_send', 'ahrs2_encode', 'ahrs2_send', 'ahrs3_encode', 'ahrs3_send', 'ahrs_encode', 'ahrs_send', 'airspeed_autocal_encode', 'airspeed_autocal_send', 'altitude_encode', 'altitude_send', 'ap_adc_encode', 'ap_adc_send', 'att_pos_mocap_encode', 'att_pos_mocap_send', 'attitude_encode', 'attitude_quaternion_cov_encode', 'attitude_quaternion_cov_send', 'attitude_quaternion_encode', 'attitude_quaternion_send', 'attitude_send', 'attitude_target_encode', 'attitude_target_send', 'auth_key_encode', 'auth_key_send', 'autopilot_version_encode', 'autopilot_version_request_encode', 'autopilot_version_request_send', 'autopilot_version_send', 'battery2_encode', 'battery2_send', 'battery_status_encode', 'battery_status_send', 'buf', 'buf_index', 'buf_len', 'bytes_needed', 'callback', 'callback_args', 'callback_kwargs', 'camera_feedback_encode', 'camera_feedback_send', 'camera_status_encode', 'camera_status_send', 'camera_trigger_encode', 'camera_trigger_send', 'change_operator_control_ack_encode', 'change_operator_control_ack_send', 'change_operator_control_encode', 'change_operator_control_send', 'check_signature', 'collision_encode', 'collision_send', 'command_ack_encode', 'command_ack_send', 'command_int_encode', 'command_int_send', 'command_long_encode', 'command_long_send', 'compassmot_status_encode', 'compassmot_status_send', 'control_system_state_encode', 'control_system_state_send', 'crc_extra', 'data16_encode', 'data16_send', 'data32_encode', 'data32_send', 'data64_encode', 'data64_send', 'data96_encode', 'data96_send', 'data_stream_encode', 'data_stream_send', 'data_transmission_handshake_encode', 'data_transmission_handshake_send', 'debug_encode', 'debug_send', 'debug_vect_encode', 'debug_vect_send', 'decode', 'deepstall_encode', 'deepstall_send', 'digicam_configure_encode', 'digicam_configure_send', 'digicam_control_encode', 'digicam_control_send', 'distance_sensor_encode', 'distance_sensor_send', 'ekf_status_report_encode', 'ekf_status_report_send', 'encapsulated_data_encode', 'encapsulated_data_send', 'estimator_status_encode', 'estimator_status_send', 'expected_length', 'extended_sys_state_encode', 'extended_sys_state_send', 'fence_fetch_point_encode', 'fence_fetch_point_send', 'fence_point_encode', 'fence_point_send', 'fence_status_encode', 'fence_status_send', 'file', 'file_transfer_protocol_encode', 'file_transfer_protocol_send', 'follow_target_encode', 'follow_target_send', 'gimbal_control_encode', 'gimbal_control_send', 'gimbal_report_encode', 'gimbal_report_send', 'gimbal_torque_cmd_report_encode', 'gimbal_torque_cmd_report_send', 'global_position_int_cov_encode', 'global_position_int_cov_send', 'global_position_int_encode', 'global_position_int_send', 'global_vision_position_estimate_encode', 'global_vision_position_estimate_send', 'gopro_get_request_encode', 'gopro_get_request_send', 'gopro_get_response_encode', 'gopro_get_response_send', 'gopro_heartbeat_encode', 'gopro_heartbeat_send', 'gopro_set_request_encode', 'gopro_set_request_send', 'gopro_set_response_encode', 'gopro_set_response_send', 'gps2_raw_encode', 'gps2_raw_send', 'gps2_rtk_encode', 'gps2_rtk_send', 'gps_global_origin_encode', 'gps_global_origin_send', 'gps_inject_data_encode', 'gps_inject_data_send', 'gps_input_encode', 'gps_input_send', 'gps_raw_int_encode', 'gps_raw_int_send', 'gps_rtcm_data_encode', 'gps_rtcm_data_send', 'gps_rtk_encode', 'gps_rtk_send', 'gps_status_encode', 'gps_status_send', 'have_prefix_error', 'heartbeat_encode', 'heartbeat_send', 'high_latency_encode', 'high_latency_send', 'highres_imu_encode', 'highres_imu_send', 'hil_actuator_controls_encode', 'hil_actuator_controls_send', 'hil_controls_encode', 'hil_controls_send', 'hil_gps_encode', 'hil_gps_send', 'hil_optical_flow_encode', 'hil_optical_flow_send', 'hil_rc_inputs_raw_encode', 'hil_rc_inputs_raw_send', 'hil_sensor_encode', 'hil_sensor_send', 'hil_state_encode', 'hil_state_quaternion_encode', 'hil_state_quaternion_send', 'hil_state_send', 'home_position_encode', 'home_position_send', 'hwstatus_encode', 'hwstatus_send', 'landing_target_encode', 'landing_target_send', 'led_control_encode', 'led_control_send', 'limits_status_encode', 'limits_status_send', 'little_endian', 'local_position_ned_cov_encode', 'local_position_ned_cov_send', 'local_position_ned_encode', 'local_position_ned_send', 'local_position_ned_system_global_offset_encode', 'local_position_ned_system_global_offset_send', 'log_data_encode', 'log_data_send', 'log_entry_encode', 'log_entry_send', 'log_erase_encode', 'log_erase_send', 'log_request_data_encode', 'log_request_data_send', 'log_request_end_encode', 'log_request_end_send', 'log_request_list_encode', 'log_request_list_send', 'mag_cal_progress_encode', 'mag_cal_progress_send', 'mag_cal_report_encode', 'mag_cal_report_send', 'manual_control_encode', 'manual_control_send', 'manual_setpoint_encode', 'manual_setpoint_send', 'mav10_unpacker', 'mav20_h3_unpacker', 'mav20_unpacker', 'mav_csum_unpacker', 'mav_sign_unpacker', 'meminfo_encode', 'meminfo_send', 'memory_vect_encode', 'memory_vect_send', 'message_interval_encode', 'message_interval_send', 'mission_ack_encode', 'mission_ack_send', 'mission_clear_all_encode', 'mission_clear_all_send', 'mission_count_encode', 'mission_count_send', 'mission_current_encode', 'mission_current_send', 'mission_item_encode', 'mission_item_int_encode', 'mission_item_int_send', 'mission_item_reached_encode', 'mission_item_reached_send', 'mission_item_send', 'mission_request_encode', 'mission_request_int_encode', 'mission_request_int_send', 'mission_request_list_encode', 'mission_request_list_send', 'mission_request_partial_list_encode', 'mission_request_partial_list_send', 'mission_request_send', 'mission_set_current_encode', 'mission_set_current_send', 'mission_write_partial_list_encode', 'mission_write_partial_list_send', 'mount_configure_encode', 'mount_configure_send', 'mount_control_encode', 'mount_control_send', 'mount_status_encode', 'mount_status_send', 'named_value_float_encode', 'named_value_float_send', 'named_value_int_encode', 'named_value_int_send', 'native', 'nav_controller_output_encode', 'nav_controller_output_send', 'next', 'optical_flow_encode', 'optical_flow_rad_encode', 'optical_flow_rad_send', 'optical_flow_send', 'param_map_rc_encode', 'param_map_rc_send', 'param_request_list_encode', 'param_request_list_send', 'param_request_read_encode', 'param_request_read_send', 'param_set_encode', 'param_set_send', 'param_value_encode', 'param_value_send', 'parse_buffer', 'parse_char', 'pid_tuning_encode', 'pid_tuning_send', 'ping_encode', 'ping_send', 'position_target_global_int_encode', 'position_target_global_int_send', 'position_target_local_ned_encode', 'position_target_local_ned_send', 'power_status_encode', 'power_status_send', 'protocol_marker', 'radio_encode', 'radio_send', 'radio_status_encode', 'radio_status_send', 'rally_fetch_point_encode', 'rally_fetch_point_send', 'rally_point_encode', 'rally_point_send', 'rangefinder_encode', 'rangefinder_send', 'raw_imu_encode', 'raw_imu_send', 'raw_pressure_encode', 'raw_pressure_send', 'rc_channels_encode', 'rc_channels_override_encode', 'rc_channels_override_send', 'rc_channels_raw_encode', 'rc_channels_raw_send', 'rc_channels_scaled_encode', 'rc_channels_scaled_send', 'rc_channels_send', 'remote_log_block_status_encode', 'remote_log_block_status_send', 'remote_log_data_block_encode', 'remote_log_data_block_send', 'request_data_stream_encode', 'request_data_stream_send', 'resource_request_encode', 'resource_request_send', 'robust_parsing', 'rpm_encode', 'rpm_send', 'safety_allowed_area_encode', 'safety_allowed_area_send', 'safety_set_allowed_area_encode', 'safety_set_allowed_area_send', 'scaled_imu2_encode', 'scaled_imu2_send', 'scaled_imu3_encode', 'scaled_imu3_send', 'scaled_imu_encode', 'scaled_imu_send', 'scaled_pressure2_encode', 'scaled_pressure2_send', 'scaled_pressure3_encode', 'scaled_pressure3_send', 'scaled_pressure_encode', 'scaled_pressure_send', 'send', 'send_callback', 'send_callback_args', 'send_callback_kwargs', 'sensor_offsets_encode', 'sensor_offsets_send', 'seq', 'serial_control_encode', 'serial_control_send', 'servo_output_raw_encode', 'servo_output_raw_send', 'set_actuator_control_target_encode', 'set_actuator_control_target_send', 'set_attitude_target_encode', 'set_attitude_target_send', 'set_callback', 'set_gps_global_origin_encode', 'set_gps_global_origin_send', 'set_home_position_encode', 'set_home_position_send', 'set_mag_offsets_encode', 'set_mag_offsets_send', 'set_mode_encode', 'set_mode_send', 'set_position_target_global_int_encode', 'set_position_target_global_int_send', 'set_position_target_local_ned_encode', 'set_position_target_local_ned_send', 'set_send_callback', 'signing', 'sim_state_encode', 'sim_state_send', 'simstate_encode', 'simstate_send', 'sort_fields', 'srcComponent', 'srcSystem', 'startup_time', 'statustext_encode', 'statustext_send', 'sys_status_encode', 'sys_status_send', 'system_time_encode', 'system_time_send', 'terrain_check_encode', 'terrain_check_send', 'terrain_data_encode', 'terrain_data_send', 'terrain_report_encode', 'terrain_report_send', 'terrain_request_encode', 'terrain_request_send', 'timesync_encode', 'timesync_send', 'total_bytes_received', 'total_bytes_sent', 'total_packets_received', 'total_packets_sent', 'total_receive_errors', 'v2_extension_encode', 'v2_extension_send', 'vfr_hud_encode', 'vfr_hud_send', 'vibration_encode', 'vibration_send', 'vicon_position_estimate_encode', 'vicon_position_estimate_send', 'vision_position_estimate_encode', 'vision_position_estimate_send', 'vision_speed_estimate_encode', 'vision_speed_estimate_send', 'wind_cov_encode', 'wind_cov_send', 'wind_encode', 'wind_send']
    
    dir(m)
    ['WIRE_PROTOCOL_VERSION', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__long__', '__module__', '__native__', '__new__', '__nonzero__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_timestamp', 'address', 'arducopter_arm', 'arducopter_disarm', 'auto_mavlink_version', 'base_mode', 'broadcast', 'calibrate_level', 'calibrate_pressure', 'check_condition', 'close', 'disable_signing', 'fd', 'field', 'first_byte', 'flightmode', 'idle_hooks', 'last_address', 'last_seq', 'location', 'logfile', 'logfile_raw', 'mav', 'mav_count', 'mav_loss', 'mav_type', 'mavlink10', 'mavlink20', 'message_hooks', 'messages', 'mode_mapping', 'motors_armed', 'motors_armed_wait', 'motors_disarmed_wait', 'next', 'notimestamps', 'packet_loss', 'param', 'param_fetch_all', 'param_fetch_one', 'param_fetch_start', 'param_set_send', 'param_state', 'param_sysid', 'params', 'port', 'portdead', 'post_message', 'pre_message', 'probably_vehicle_heartbeat', 'reboot_autopilot', 'recv', 'recv_match', 'recv_msg', 'resolved_destination_addr', 'robust_parsing', 'select', 'set_mode', 'set_mode_apm', 'set_mode_auto', 'set_mode_fbwa', 'set_mode_flag', 'set_mode_loiter', 'set_mode_manual', 'set_mode_px4', 'set_mode_rtl', 'set_relay', 'set_rtscts', 'set_servo', 'setup_logfile', 'setup_logfile_raw', 'setup_signing', 'source_component', 'source_system', 'start_time', 'stop_on_EOF', 'sysid', 'sysid_state', 'target_component', 'target_system', 'time_since', 'timestamp', 'udp_server', 'uptime', 'vehicle_type', 'wait_gps_fix', 'wait_heartbeat', 'waypoint_clear_all_send', 'waypoint_count_send', 'waypoint_current', 'waypoint_request_list_send', 'waypoint_request_send', 'waypoint_set_current_send', 'write']
    
    

    from pymavlink import mavutil

    # Create the connection
    m = mavutil.mavlink_connection('udpin:0.0.0.0:14550')
    dir(m.mav)

    ['_MAVLink__callbacks', '_MAVLink__parse_char_legacy', '_MAVLink__parse_char_native', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__long__', '__module__', '__native__', '__new__', '__nonzero__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', 'actuator_control_target_encode', 'actuator_control_target_send', 'adsb_vehicle_encode', 'adsb_vehicle_send', 'ahrs2_encode', 'ahrs2_send', 'ahrs3_encode', 'ahrs3_send', 'ahrs_encode', 'ahrs_send', 'airspeed_autocal_encode', 'airspeed_autocal_send', 'altitude_encode', 'altitude_send', 'ap_adc_encode', 'ap_adc_send', 'att_pos_mocap_encode', 'att_pos_mocap_send', 'attitude_encode', 'attitude_quaternion_cov_encode', 'attitude_quaternion_cov_send', 'attitude_quaternion_encode', 'attitude_quaternion_send', 'attitude_send', 'attitude_target_encode', 'attitude_target_send', 'auth_key_encode', 'auth_key_send', 'autopilot_version_encode', 'autopilot_version_request_encode', 'autopilot_version_request_send', 'autopilot_version_send', 'battery2_encode', 'battery2_send', 'battery_status_encode', 'battery_status_send', 'buf', 'buf_index', 'buf_len', 'bytes_needed', 'callback', 'callback_args', 'callback_kwargs', 'camera_feedback_encode', 'camera_feedback_send', 'camera_status_encode', 'camera_status_send', 'camera_trigger_encode', 'camera_trigger_send', 'change_operator_control_ack_encode', 'change_operator_control_ack_send', 'change_operator_control_encode', 'change_operator_control_send', 'check_signature', 'collision_encode', 'collision_send', 'command_ack_encode', 'command_ack_send', 'command_int_encode', 'command_int_send', 'command_long_encode', 'command_long_send', 'compassmot_status_encode', 'compassmot_status_send', 'control_system_state_encode', 'control_system_state_send', 'crc_extra', 'data16_encode', 'data16_send', 'data32_encode', 'data32_send', 'data64_encode', 'data64_send', 'data96_encode', 'data96_send', 'data_stream_encode', 'data_stream_send', 'data_transmission_handshake_encode', 'data_transmission_handshake_send', 'debug_encode', 'debug_send', 'debug_vect_encode', 'debug_vect_send', 'decode', 'deepstall_encode', 'deepstall_send', 'digicam_configure_encode', 'digicam_configure_send', 'digicam_control_encode', 'digicam_control_send', 'distance_sensor_encode', 'distance_sensor_send', 'ekf_status_report_encode', 'ekf_status_report_send', 'encapsulated_data_encode', 'encapsulated_data_send', 'estimator_status_encode', 'estimator_status_send', 'expected_length', 'extended_sys_state_encode', 'extended_sys_state_send', 'fence_fetch_point_encode', 'fence_fetch_point_send', 'fence_point_encode', 'fence_point_send', 'fence_status_encode', 'fence_status_send', 'file', 'file_transfer_protocol_encode', 'file_transfer_protocol_send', 'follow_target_encode', 'follow_target_send', 'gimbal_control_encode', 'gimbal_control_send', 'gimbal_report_encode', 'gimbal_report_send', 'gimbal_torque_cmd_report_encode', 'gimbal_torque_cmd_report_send', 'global_position_int_cov_encode', 'global_position_int_cov_send', 'global_position_int_encode', 'global_position_int_send', 'global_vision_position_estimate_encode', 'global_vision_position_estimate_send', 'gopro_get_request_encode', 'gopro_get_request_send', 'gopro_get_response_encode', 'gopro_get_response_send', 'gopro_heartbeat_encode', 'gopro_heartbeat_send', 'gopro_set_request_encode', 'gopro_set_request_send', 'gopro_set_response_encode', 'gopro_set_response_send', 'gps2_raw_encode', 'gps2_raw_send', 'gps2_rtk_encode', 'gps2_rtk_send', 'gps_global_origin_encode', 'gps_global_origin_send', 'gps_inject_data_encode', 'gps_inject_data_send', 'gps_input_encode', 'gps_input_send', 'gps_raw_int_encode', 'gps_raw_int_send', 'gps_rtcm_data_encode', 'gps_rtcm_data_send', 'gps_rtk_encode', 'gps_rtk_send', 'gps_status_encode', 'gps_status_send', 'have_prefix_error', 'heartbeat_encode', 'heartbeat_send', 'high_latency_encode', 'high_latency_send', 'highres_imu_encode', 'highres_imu_send', 'hil_actuator_controls_encode', 'hil_actuator_controls_send', 'hil_controls_encode', 'hil_controls_send', 'hil_gps_encode', 'hil_gps_send', 'hil_optical_flow_encode', 'hil_optical_flow_send', 'hil_rc_inputs_raw_encode', 'hil_rc_inputs_raw_send', 'hil_sensor_encode', 'hil_sensor_send', 'hil_state_encode', 'hil_state_quaternion_encode', 'hil_state_quaternion_send', 'hil_state_send', 'home_position_encode', 'home_position_send', 'hwstatus_encode', 'hwstatus_send', 'landing_target_encode', 'landing_target_send', 'led_control_encode', 'led_control_send', 'limits_status_encode', 'limits_status_send', 'little_endian', 'local_position_ned_cov_encode', 'local_position_ned_cov_send', 'local_position_ned_encode', 'local_position_ned_send', 'local_position_ned_system_global_offset_encode', 'local_position_ned_system_global_offset_send', 'log_data_encode', 'log_data_send', 'log_entry_encode', 'log_entry_send', 'log_erase_encode', 'log_erase_send', 'log_request_data_encode', 'log_request_data_send', 'log_request_end_encode', 'log_request_end_send', 'log_request_list_encode', 'log_request_list_send', 'mag_cal_progress_encode', 'mag_cal_progress_send', 'mag_cal_report_encode', 'mag_cal_report_send', 'manual_control_encode', 'manual_control_send', 'manual_setpoint_encode', 'manual_setpoint_send', 'mav10_unpacker', 'mav20_h3_unpacker', 'mav20_unpacker', 'mav_csum_unpacker', 'mav_sign_unpacker', 'meminfo_encode', 'meminfo_send', 'memory_vect_encode', 'memory_vect_send', 'message_interval_encode', 'message_interval_send', 'mission_ack_encode', 'mission_ack_send', 'mission_clear_all_encode', 'mission_clear_all_send', 'mission_count_encode', 'mission_count_send', 'mission_current_encode', 'mission_current_send', 'mission_item_encode', 'mission_item_int_encode', 'mission_item_int_send', 'mission_item_reached_encode', 'mission_item_reached_send', 'mission_item_send', 'mission_request_encode', 'mission_request_int_encode', 'mission_request_int_send', 'mission_request_list_encode', 'mission_request_list_send', 'mission_request_partial_list_encode', 'mission_request_partial_list_send', 'mission_request_send', 'mission_set_current_encode', 'mission_set_current_send', 'mission_write_partial_list_encode', 'mission_write_partial_list_send', 'mount_configure_encode', 'mount_configure_send', 'mount_control_encode', 'mount_control_send', 'mount_status_encode', 'mount_status_send', 'named_value_float_encode', 'named_value_float_send', 'named_value_int_encode', 'named_value_int_send', 'native', 'nav_controller_output_encode', 'nav_controller_output_send', 'next', 'optical_flow_encode', 'optical_flow_rad_encode', 'optical_flow_rad_send', 'optical_flow_send', 'param_map_rc_encode', 'param_map_rc_send', 'param_request_list_encode', 'param_request_list_send', 'param_request_read_encode', 'param_request_read_send', 'param_set_encode', 'param_set_send', 'param_value_encode', 'param_value_send', 'parse_buffer', 'parse_char', 'pid_tuning_encode', 'pid_tuning_send', 'ping_encode', 'ping_send', 'position_target_global_int_encode', 'position_target_global_int_send', 'position_target_local_ned_encode', 'position_target_local_ned_send', 'power_status_encode', 'power_status_send', 'protocol_marker', 'radio_encode', 'radio_send', 'radio_status_encode', 'radio_status_send', 'rally_fetch_point_encode', 'rally_fetch_point_send', 'rally_point_encode', 'rally_point_send', 'rangefinder_encode', 'rangefinder_send', 'raw_imu_encode', 'raw_imu_send', 'raw_pressure_encode', 'raw_pressure_send', 'rc_channels_encode', 'rc_channels_override_encode', 'rc_channels_override_send', 'rc_channels_raw_encode', 'rc_channels_raw_send', 'rc_channels_scaled_encode', 'rc_channels_scaled_send', 'rc_channels_send', 'remote_log_block_status_encode', 'remote_log_block_status_send', 'remote_log_data_block_encode', 'remote_log_data_block_send', 'request_data_stream_encode', 'request_data_stream_send', 'resource_request_encode', 'resource_request_send', 'robust_parsing', 'rpm_encode', 'rpm_send', 'safety_allowed_area_encode', 'safety_allowed_area_send', 'safety_set_allowed_area_encode', 'safety_set_allowed_area_send', 'scaled_imu2_encode', 'scaled_imu2_send', 'scaled_imu3_encode', 'scaled_imu3_send', 'scaled_imu_encode', 'scaled_imu_send', 'scaled_pressure2_encode', 'scaled_pressure2_send', 'scaled_pressure3_encode', 'scaled_pressure3_send', 'scaled_pressure_encode', 'scaled_pressure_send', 'send', 'send_callback', 'send_callback_args', 'send_callback_kwargs', 'sensor_offsets_encode', 'sensor_offsets_send', 'seq', 'serial_control_encode', 'serial_control_send', 'servo_output_raw_encode', 'servo_output_raw_send', 'set_actuator_control_target_encode', 'set_actuator_control_target_send', 'set_attitude_target_encode', 'set_attitude_target_send', 'set_callback', 'set_gps_global_origin_encode', 'set_gps_global_origin_send', 'set_home_position_encode', 'set_home_position_send', 'set_mag_offsets_encode', 'set_mag_offsets_send', 'set_mode_encode', 'set_mode_send', 'set_position_target_global_int_encode', 'set_position_target_global_int_send', 'set_position_target_local_ned_encode', 'set_position_target_local_ned_send', 'set_send_callback', 'signing', 'sim_state_encode', 'sim_state_send', 'simstate_encode', 'simstate_send', 'sort_fields', 'srcComponent', 'srcSystem', 'startup_time', 'statustext_encode', 'statustext_send', 'sys_status_encode', 'sys_status_send', 'system_time_encode', 'system_time_send', 'terrain_check_encode', 'terrain_check_send', 'terrain_data_encode', 'terrain_data_send', 'terrain_report_encode', 'terrain_report_send', 'terrain_request_encode', 'terrain_request_send', 'timesync_encode', 'timesync_send', 'total_bytes_received', 'total_bytes_sent', 'total_packets_received', 'total_packets_sent', 'total_receive_errors', 'v2_extension_encode', 'v2_extension_send', 'vfr_hud_encode', 'vfr_hud_send', 'vibration_encode', 'vibration_send', 'vicon_position_estimate_encode', 'vicon_position_estimate_send', 'vision_position_estimate_encode', 'vision_position_estimate_send', 'vision_speed_estimate_encode', 'vision_speed_estimate_send', 'wind_cov_encode', 'wind_cov_send', 'wind_encode', 'wind_send']

    dir(m)
    ['WIRE_PROTOCOL_VERSION', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__long__', '__module__', '__native__', '__new__', '__nonzero__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_timestamp', 'address', 'arducopter_arm', 'arducopter_disarm', 'auto_mavlink_version', 'base_mode', 'broadcast', 'calibrate_level', 'calibrate_pressure', 'check_condition', 'close', 'disable_signing', 'fd', 'field', 'first_byte', 'flightmode', 'idle_hooks', 'last_address', 'last_seq', 'location', 'logfile', 'logfile_raw', 'mav', 'mav_count', 'mav_loss', 'mav_type', 'mavlink10', 'mavlink20', 'message_hooks', 'messages', 'mode_mapping', 'motors_armed', 'motors_armed_wait', 'motors_disarmed_wait', 'next', 'notimestamps', 'packet_loss', 'param', 'param_fetch_all', 'param_fetch_one', 'param_fetch_start', 'param_set_send', 'param_state', 'param_sysid', 'params', 'port', 'portdead', 'post_message', 'pre_message', 'probably_vehicle_heartbeat', 'reboot_autopilot', 'recv', 'recv_match', 'recv_msg', 'resolved_destination_addr', 'robust_parsing', 'select', 'set_mode', 'set_mode_apm', 'set_mode_auto', 'set_mode_fbwa', 'set_mode_flag', 'set_mode_loiter', 'set_mode_manual', 'set_mode_px4', 'set_mode_rtl', 'set_relay', 'set_rtscts', 'set_servo', 'setup_logfile', 'setup_logfile_raw', 'setup_signing', 'source_component', 'source_system', 'start_time', 'stop_on_EOF', 'sysid', 'sysid_state', 'target_component', 'target_system', 'time_since', 'timestamp', 'udp_server', 'uptime', 'vehicle_type', 'wait_gps_fix', 'wait_heartbeat', 'waypoint_clear_all_send', 'waypoint_count_send', 'waypoint_current', 'waypoint_request_list_send', 'waypoint_request_send', 'waypoint_set_current_send', 'write']

    展开全文
  • mavlink在线-源码

    2021-02-19 01:04:13
    mavlink在线
  • 锈-mavlink UAV消息传递协议的Rust实现,带有对所有消息集的绑定。 添加到您的Cargo.toml: mavlink = "0.9" 例子 有关用法示例,请参见 。 也可以通过cargo命令行安装工作示例: cargo install mavlink 社区...
  • Mavlink协议整理

    2019-07-24 11:39:54
    这是我通过MissionPlanner地面站和mavlink官网整理的协议文档,有问题请指正。
  • MAVLink开发人员指南 MAVLink是一个非常轻巧的,仅标头的消息编组库,适用于微型飞行器/无人机。 MAVLink遵循现代的混合发布-订阅和点对点设计模式:数据流作为主题发送/发布,而配置子协议(例如或则是点对点的重...
  • Eastbay-Mavlink 在某些mavlink代码上进行点缀 demos /目录中有一些代码显示了如何访问和解码mavlink消息。 basic-reading.py:连接到mavlink设备并读取字节 parse-stream.py:解析并显示mavlink数据包 mavbus-rx....
  • Qt基于Mavlink通信协议的串口助手,可进行接收和发送。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,781
精华内容 1,112
关键字:

MAVLINK