无人机控制模块教学例程 - 经纬高控制

<span style="display: flex; flex-direction: column; width: 100%"> <img src = https://qiniu.md.amovlab.com/img/m/202206/20220630/1051424338210948570316800.gif>

运行结果展示

经纬高控制demo对应脚本文件位于 ~/Prometheus/Scripts/simulation/tutorial_demo/global_pos_control/global_pos_control_P450.sh

操作步骤

  1. 将遥控器开机并通过USB接口接入电脑

  2. 输入以下命令启动经纬高控制仿真demo

    cd ~/Prometheus/Scripts/simulation/tutorial_demo/global_pos_control
    # 第一次启动该脚本时,需要添加可执行权限
    chmod +x global_pos_control_P450.sh
    ./global_pos_control_P450.sh
    
  3. 遥控器SWA档杆向下拨解锁无人机

  4. 遥控器SWB档杆拨到中间位置将无人机控制状态切换到RC_POS_CONTROL

  5. 遥控器SWB档杆拨到最底部将无人机控制状态切换到COMMAND_CONTROL

  6. 无人机将自动起飞,飞行到预设位置(无人机当前经纬度,高度5米的位置点)后将悬停30秒,随后降落

注意

高度数据为相对高度,并不是海拔高度

检查终端运行是否正常

  • ros主节点
    • 下图所示为正常运行

110.png

  • PX4飞控仿真
    • 下图所示为正常运行

111.png

  • Prometheus控制
    • 下图所示为正常运行

112.png

  • Prometheus经纬高控制demo
    • 下图所示为正常运行

113.png

  • 正常启动仿真界面
    • 下图所示为正常运行

114.png

运行仿真功能

  • 拨动遥控器的SW-A拨杆,到最下面,解锁无人机

115.png

  • 拨动遥控器的SW-B拨杆,到中间位置,切换到RC_POS_CONTROL模式

116.png

  • 拨动遥控器的SW-B拨杆,到最下面,切换到COMMAND_CONTROL模式

117.png

  • 在COMMAND_CONTROL模式下可以使用代码控制无人机飞行了,此处运行代码控制无人机,到达惯性系控制预设点后(无人机当前经纬度,高度5米的位置点)悬停30秒,随后自动降落

118.png

代码讲解

经纬高控制demo.png

该demo为Prometheus LAT_LON_ALT控制接口开发示例,LAT_LON_ALT为无人机经纬度以及高度位置(WGS84坐标系)的控制模式,核心代码如上图所示;主要是填充以下数据:

  1. Agent_CMD设置为Move模式
  2. Move_mode设置为LAT_LON_ALT
  3. 填充经纬度以及高度数据
  4. 每发送一次数据,Command_ID加1