本小节主要讲解使用Prometheus地面站-Pro控制无人机
默认Prometheus地面站-Pro连接成功,也会自动启动uav_control节点。如果要使用轨迹跟踪功能,需要单独重新启动轨迹跟踪节点。
关于Prometheus的控制接口说明,可以提前熟悉一下控制接口,可参考Prometheus控制节点介绍
- 在进行以下操作之前给无人机上电
连接过程
断开连接
在连接之前,请使用地面站关闭连接,详细可参考Prometheus地面站-Pro启动与连接
断开连接可以将上一次功能所运行的节点全部都kill掉,不会新节点的运行,若上一次并没有运行任何功能节点,则可以不用执行断开连接操作。
重新连接
关闭之后,重新连接,详细可参考Prometheus地面站-Pro启动与连接
遥控器操作过程
拨杆开关 | 最上方第一段 | 中间第二段 | 最下方第三段 |
---|---|---|---|
SW1 | 上锁无人机 | 未启用 | 解锁无人机 |
SW2 | INIT控制状态下的POSCTL遥控器定点模式,<br> 坐标系基于飞机自身机体系 | RC_POS_CONTROL控制状态OffBoard模式下 <br> 的遥控器控制模式,坐标系基于ENU惯性系 | COMMAND_CONTROL控制状态OffBoard <br> 模式下的自主控制模式 |
SW3 | 关闭紧急降落 | 未启用 | 开启紧急降落(会立刻锁桨) |
SW4 | 关闭降落 | 未启用 | 开启降落(缓慢降落) |
注意
SW2拨杆请先拨到拨杆,中间进RC_POS模式,再拨到最下进入command模式,如果遇到紧急情况可以将SW2快速拨到最上进入INIT手动定点模式控制无人机(RC_POS_CONTROL模式是板外手动控制,也可以控制,但可能不能直接油门降落),如遇到紧急情况,将SW3拨到最下会直接锁桨,非特殊情况不建议使用
COMMAND_CONTROL下自主控制
回到主界面,进行无人机控制指令的发送。使用此节下面的Prometheus地面站-Pro控制无人机飞行,切换H16控制器SW2至最下面,无人机控制状态随即切换到COMMAND_CONTROL状态下。
控制界面介绍
- 1、控制界面框
- 2、当前点悬停:保持无人机当前位置进行悬停(一般用于移动模式后)
- 3、初始点悬停:无人机飞回到COMMAND_CONTROL初始位置(初始位置为无人机起飞初始位置,高度数据可通过参数设定初始起飞高度)
- 4、降落:无人机降落,进入LAND_CONTROL模式
- 5、移动模式:可以选择移动模式下的不同子模式,根据选择不同的子模式,填写与子模式匹配的控制量。(默认子模式为XYZ_POS惯性系-位置控制)
- 6、控制量数据填充:根据选择不同的子模式,填写相匹配的控制量数据。
- x:惯性ENU坐标系下的朝东方向或者机体BODY坐标系下机头朝前方向,单位为米
- y:惯性ENU坐标系下的朝北方向或者机体BODY坐标系下机头朝左方向,单位为米
- z:惯性ENU坐标系下的朝天方向或者机体BODY坐标系下机头朝上方向,单位为米
- yaw:惯性ENU坐标系下的期望航向,单位为度。(地面站预留接口为度单位,二次开发源码预留接口为弧度单位)
- 7、上传按钮,期望数据填充完成之后,可以通过点击上传按钮发送至飞机
移动模式子模式介绍
参考链接一:Prometheus地面站-Pro移动模式介绍
参考链接二:Prometheus源码msg定义
- 1、惯性系-位置控制(XYZ_POS)
- 2、惯性系-定高速度控制(XY_VEL_Z_POS)
- 3、惯性系-速度控制(XYZ_VEL)
- 4、机体系-位置控制(XYZ_POS_BODY)
- 5、机体系-速度控制(XYZ_VEL_BODY)
- 6、机体系-定高速度控制(XY_VEL_Z_POS_BODY)
- 7、轨迹控制(TRAJETCORY)
- 8、姿态控制(XYZ_ATT)
- 9、经纬高控制(LAT_LON_ALT)
实验飞行
注意
所有惯性系下的实验,在上传指令之前,都需要点击上图所示的 初始点悬停。
以下实验默认在开启视频推拉流,刚连接无人机,H16遥控器配置完成,拨杆SW1、SW2、SW3、SW4全部向上的情况下进行。
地面站正常拉流后如下图所示,H16遥控器开关全部向上时无人机控制状态为INIT状态,飞行模式为POSCTL
注意
POSCTL模式下飞行,为机体系,在飞控飞行模式只有拨杆SW2最上为POSCTL模式,所以只能手动降落,没有一键锁桨。
遥控器操作
- 拨动SW1,到最下面,解锁无人机,桨叶开始转动。(或者左摇杆拨动到右下角解锁无人机)
- 拨动SW2,到中间位置,飞行模式变为OFFBOARD,控制状态变为RC_POS_CONTROL(注意与POSCTL操作的区别) 如下图所示:
H16遥控器(出厂默认为美国手)左遥感上下拨动控制油门,左右拨动控制方向
右摇杆,上下拨动控制前后,左右拨动控制向左向右,即可通过遥控器控制无人机飞行。
拨动SW4到最下方,无人机降落。
地面站虚拟摇杆控制
- 拨动SW1,解锁无人机。
- 拨动SW2,到最下面,控制状态变为COMMAND_CONTROL,模式变为OFFBOARD,会自动飞到预设的地点、高度和方向,如下图所示。 至此,控制操作将在电脑完成。
- 点击主界面。
- 点击地图监控
- 平面地图。
- 查看飞机方向、位置等信息。
- 点击系统设置。
- 点击基本设置。
- 点击虚拟遥感设置
会出现以下画面,根据步骤打开虚拟摇杆,同时需要设置各轴以及偏航的最大速度(默认为0,大于0无人机才会有响应)
两个拉流内核都可以使用,此处选择gsteramer拉流。
点击显示虚拟遥感开关
- 点击主界面,出现如上图 2 所示。
- 点击 2 部分出现的青色原点,将会以下画面:
虚拟摇杆可以使用鼠标控制或者键盘控制(需要焦点在虚拟摇杆上,点击一下虚拟摇杆即可)。
虚拟摇杆主要调用机体系-速度控制(XYZ_VEL_BODY)的接口,所以无人机机头方向为前方。
鼠标拖动控制
在开启了虚拟摇杆之后,则可以使用鼠标来控制无人机。
在箭头处按下鼠标左键,上下左右拖动控制无人机前后左右移动。
在箭头处按下鼠标右键,上下控制无人机的z轴高度,左右控制无人机偏航。
松开鼠标,无人机停止移动。
键盘按键控制
在开启了虚拟摇杆之后,还可以使用键盘来控制无人机。
在箭头处点一下鼠标左键,键盘上下左右控制无人机前后左右移动。
在箭头处点一下鼠标左键,键盘shift+上下控制无人机z轴高度,shift+左右控制无人机偏航。
在箭头处点一下鼠标左键,键盘home按钮回到初始点悬停。
注意
在进行下列操作前,需要清楚发送指令后无人机会如何飞行,再点击上传,如果右上角无人机的位置数据与实际位置不符,则需要降落后,在QGC重置ekf定位数据(在快速入门指南的准备飞行有演示)
XYZ_POS控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
- 选择XYZ_POS
- 输入
-1
,让无人机向后1米 - 输入
-1
,让无人机向右移动1米 - 输入
2
,让无人机向上移动2米 - 输入
0
,不改变无人机方向 - 点击上传,无人机随即移动到惯性系下的(-1,-1,2)位置。(0,0,0)为上电的位置。
XY_VEL_Z_POS控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
2. 选择XY_VEL_Z_POS
3. 输入
0
,无人机前后不移动
4. 输入 -1
,无人机以1m/s的速度向右移动
5. 输入 2
,无人机飞到两米高的位置
6. 输入 0
,不改变无人机的方向
注意
无人机会一直在两米高的位置向右以1m/s的速度移动 点击在当前点悬停则会在无人机当前位置悬停
- 点击上传,(0,0,0)为上电的位置。
XYZ_VEL控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
- 选择XYZ_VEL
- 输入
-1
,无人机向后以1m/s的速度移动 - 输入
0
,不改变无人机的左右。 - 输入
0.2
,无人机向上以0.2m/s的速度移动 - 输入
0
,不改变无人机的方向
注意
无人机会一直以向上0.2m/s向右1m/s的速度移动 点击在当前点悬停则会在无人机当前位置悬停
- 点击上传
XYZ_POS_BODY控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
- 选择XYZ_POS_BODY
- 输入
-1
,无人机在当前位置向后移动1米 - 输入
-1
,无人机在当前位置向右移动1米 - 输入
1
,无人机在当前位置向上移动1米 - 输入
0
,不改变无人机方向。 - 点击上传
- 点击在 当前点悬停 则会在无人机当前位置悬停
XYZ_VEL_BODY控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
- 选择XYZ_VEL_BODY
- 输入
1
,无人机向前以1m/s速度移动 - 输入
0.5
,无人机向左以0.5m/s速度移动 - 输入
0
,不改变无人机上下的位置 - 输入
0
,不改变无人机的方向
注意
无人机会一直向前以1m/s速度,向左以0.5m/s的速度移动 点击在当前点悬停则会在无人机当前位置悬停
- 点击上传
XY_VEL_Z_POS_BODY控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
- 选择XY_VEL_Z_POS_BODY
- 输入
-1
,无人机向后以1m/s的速度移动 - 输入
0
,不改变无人机的左右位置 - 输入
1
,无人机在当前高度向上移动1米 - 输入
0
,不改变无人机的方向、
注意
无人机会向上1米并且一直向后以1m/s的速度移动 点击在当前点悬停则会在无人机当前位置悬停
- 点击上传
LAT_LON_ALT控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
2. 选择LAT_LON_ALT
3. 点击 地图监控
4. 点击 百度地图
5. 移动鼠标到边框位置,等待变成5所示的图标,单击向左拉出选项框 。
- 选择 离线地图(没有离线地图数据则需要下载好放到地面站配置文件路径下)
- 点击 更新位置
- 移动鼠标到如3所示边框位置,等待变成3所示图标,单击向右拉,隐藏选项框。
- 点击地图
- 向上滑动鼠标滚轮,放大地图
- 点击图标
- 此时没有数据
- 图标变成十字,点击地图,会显示点击的位置
- 自动获取到1点击位置的经纬数据
- 输入
2
,无人机移动到离地高2米的位置向目标点飞去 - 输入
0
,不改变无人机方向
注意
此功能下飞机飞行速度较快,请在空旷无人的地方飞行并注意安全!!- 点击上传
- 无人机当前位置和目标点位置
如上图所示,无人机移动到指定位置
点击在当前点悬停则会在无人机当前位置悬停
TRAJETCORY控制实验
- SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
- 点击 系统设置,切换到系统设置界面。
- 点击 参数设置,切换参数设置界面。
- 点击 通信模块,切换通信模块参数显示界面。
- 点击 加载,加载机载端参数,加载完成后,会通过消息反馈进行提示,如果没有提示请检查数据链路(组网)情况或通信节点是否正常启动。(没有加载出参数则可以狂点几次)
- 选择 参数trajectory_ground_control的值,修改为
true
,收到打印成功的消息反馈后表示修改成。
注意
修改后需要断开连接,再重新连接
拨动SW1到最下方,解锁无人机,拨动SW2到最下方,无人机飞到初始起飞位置。
- 点击 系统设置
- 点击 参数控制,打开 轨迹控制
- 修改数据 Circle/Center_z 为
2.0
, Circle/Center_x、Circle/Center_y 为0
,即绕圆飞行的圆心为初始位置高度2米 - 修改数据 Eight/Center_z 为
2 .0
,Eight/Center_x、Eight/Center_y 为0,即绕八飞行的圆心为初始位置高度2米 - 输入
0.5
,无人机飞行的速度为0.5m/s
- 点击 调试帮助
- 点击 traject,启动相关节点
- 点击 主界面
- 点击 地图监控
- 点击 平面地图
- 选择 TRAJECTORY
- 选择 Circle,进行圆轨迹控制飞行(绕八飞行、直线前后,直线左右依次类推)
- 在time处输入轨迹控制飞行的运行时间
- 点击 系统设置
- 点击 基本设置
- 点击 其他
- 输入
60
,表示平面地图打点时间持续60秒 - 平面地图打点的频率
- 点击启动,出现以下画面
- 输入
60
,无人机轨迹控制飞行60秒 - 点击上传
- 上传后出现3所示轨迹