C/C++教程

树莓派ubuntu mate系统连接PX4并通过UDP连接至QGC地面站

本文主要是介绍树莓派ubuntu mate系统连接PX4并通过UDP连接至QGC地面站,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前提条件:

  1. 树莓派安装了ubuntu mate 20.04系统
  2. ubuntu mate已经安装好ros(这里是noetic版本)系统,Mavros
  3. 安装好QGC地面站的PC
  4. USB数据线(确定能传输数据)

进入正题

  1. QGC设置相关参数

    PC端QGC连接PX4,进入Parameters,找到Standard下面的MAVLINK,MAV_1_CONFIG初始为Disable,不会出现MAV_1_MODE和MAV_1_RATE这些参数,只有选择MAV_1_CONFIG为TELEM 2之后,重启飞控板,才会出现MODE和TARE这两个参数。至于为什么这样设置,请参考PX4官方关于配置协同计算机的参考文档
    MAVLINK参数设置
    之后再Standard的Serial参数找到SER_TEL2_BAUD参数设置为921600
    Serial参数设置
    改完之后,请务必重启飞控,查看相应参数是否已经更改成功。

  2. 更改px4.launch参数

    sudo vim opt/ros/noetic/share/mavros/px4.launch
    

    更改下面两行,第一行是fcu_url参数,作用是ubuntu系统通过USB连接PX4,注意树莓派系统是ttyACM0,如果是别的嵌入式板子,去搜一下,可能是ttyUSB0;第二行是gcs_url参数,作用是PC端的QGC地面站通过UDP网络连接至树莓派的ubuntu系统,注意PC机与ubuntu系统需连接至同一个无线网,另外ubuntu系统的端口是14550,需要在系统中开放14550端口,具体操作可以百度搜一下。

     <arg name="fcu_url" default="/dev/ttyACM0:921600" />
     <arg name="gcs_url" default="udp://:14550@" />
    

    在这里插入图片描述
    将树莓派ubuntu系统与PX4通过USB数据线连接,在ubuntu终端输入以下命令测试,这里注意两点1)PX4连接树莓派之前,树莓派的USB接口不能插入任何别的设备,防止其他设备占用ttyACM0端口;2)如果出现serial0: receive: End of file错误,请插上航模电池,接入电源至px4飞控,解决方案来源这里
    终端输入以下命令,测试树莓派ubuntu系统与否PX4连通

    roslaunch mavros px4.launch
    

    测试成功界面
    在这里插入图片描述

  3. PC端QGC UDP设置

    1)添加Listening Port为14550,监听端口可以选择其他端口,务必保证端口不被占用且前后设置保持一致
    2)添加Target Host的地址为树莓派ubuntu系统所在的网络IP地址,与PC端应在同一局域网下PC端QGCUDP网络设置
    PC端QGC通过UDP与树莓派连接的PX4通信,必须是在ubuntu系统启动PX4.launch的前提下

这篇关于树莓派ubuntu mate系统连接PX4并通过UDP连接至QGC地面站的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!