
3.1 软硬件配置
注意:本小节例子推荐使用PX4的官方固件,任意版本都可以,这里选择了最新固件
本讲的例程源码路径:RflySimAPIs\SimulinkControlAPI
本讲PPT公益课视频地址为:B站:https://www.bilibili.com/video/BV1da411Y7PA 最新版本的平台更新了通信方式。CopterSim与RflySim3D的通信由之前的广播方式,全面迁移到组播方式,使得平台通信与实时性能大大增强。
3.1.1 Pixhawk固件还原(需联网)方法如下:
1)打开
QGC
地面站软件,断开Pixhawk
;
2)如下图所示,点击工具栏齿轮图标进入载具设置页面,再点击“Firmware”
(固件)标签进入固件烧录页面;
3)用 USB 线连接Pixhawk
自驾仪到电脑,此时软件会自动识别Pixhawk
硬件,如右图所示所示,在界面右侧弹出固件配置窗口,勾选第一项“PX4 ***”
,然后点击“确定”,QGC
开始自动下载(需联网,无法联网请参考下一页使用本地固件)并安装最新的PX4
固件到Pixhawk
中;![]()
3.1.2 Pixhawk硬件配置 — 离线固件下载
因网络无法在线下载固件时采用本方法
1)打开QGC
地面站软件;
2)点击“Firmware”
(固件)标签,此时用USB数据线连接Pixhawk
自驾仪,地面站会自动检测自驾仪
3)勾选“advanced settings”
(高级设置)选框;
4)点击“Standard Version (stable)”
(标准版Stable)标签 – “Custom firmware file …”
(自定义固件文件…)选项,再点“确定”;
5)在弹出的文件选择页面中,如果使用Pixhawk1
飞控选择“RflySimAPIs\FlightControlExpCourse\code\e0\4.PX4Firmwares\px4fmu-v3_default1.10.1Stable.px4”
,(如果使用Pixhawk 4
,选择fmu-v5
的固件)
具体如下图所示:
注意:如果文件夹中没有需要版本固件,请访问
https://github.com/PX4/Firmware/releases 下载
3.1.3 Pixhawk硬件在环仿真模式
- 完成固件烧录后,自驾仪会自动重启并连接到
QGC
上;此时,如右图所示,进入“Airframe (机架)”
标签页,选择机架类型为“HILQuadcopter X”
,然后点击右上角的“Apply and Restart”
(应用并重启)按钮,此时自驾仪会自动重启; - 重启后
QGC
会自动寻找串口并连接到Pixhawk
,此时检查“安全”标签页的“硬件在环仿真”选项是否处于“HITL enabled”状态,确保Pixhawk
进入硬件在环仿真模式。 - 完成遥控器校准和模式设置后,暂时拔掉
Pixhawk
上的接收机,本讲课程不需要连接接收机注意:对于四旋翼仿真,机架类型可不仅限于“HILQuadcopter X”的硬件在换机架 ,也可配置为下图“Quadrotor X”类型下的真机机架。但是,需要在上图QGC的“安全标签页”,启用“HITL enable”选项。
注意:出于安全考虑,进入HITL模式后PX4会切断电机信号,确保电机/桨叶不会转动伤人。因此,若使用本方法进入的HITL模式,在真机实验时,需要重新将QGC的“安全”标签页的“硬件在环选项”还原为“HITL and SIH Disabled”来退出HITL硬件在环模式,才能正常的控制电机并进行实飞。
3.1.4 PX4 HITL硬件在环仿真测试
- 如果使用
RflySim
高级版,请插入Pixhawk
,再直接运行桌面的HITLRun
快捷方式,在弹出窗口中输入串口号,按下回车来开启硬件在环仿真系统 - 也可不用一键脚本手动启动,请插入
Pixhawk
,打开CopterSim
软件,在“飞控选择”下拉框选择飞控串口,并点击“开始仿真”,然后手动打开QGC
和3DDisplay
- 在
QGC
中,点击“纸飞机”按钮-起飞-滑动来确认,可以看到视景中飞机自动起飞,说明配置正确注意:无论软件在环还是硬件在环仿真,均需要等待CopterSim消息栏显示 “** EKF initialization finished”后,才能使用QGC/Simulink/Python控制飞机
3.1.5 PX4 SITL软件在环仿真(不需要Pixhawk硬件)
- 双击桌面上的
“SITLRun”
快捷方式,输入数字“1”,启动一个飞机的软件在环仿真系统 - 同上一页,在
QGC
中控制飞机起飞,如果能够正常自动起飞,说明平台配置正确。 - 原理:
PX4 SITL
是在Win10WSL
的Ubuntu
环境中模拟了Pixhawk
的实时操作系统,从而运行完整的PX4
控制器,并与CopterSim
通过网络相连实现传感器/控制指令的交互,形成控制仿真闭环系统,和插入Pixhawk
硬件进行HITL
效果相同 - 注:
PX4 SITL
仿真下也可以通过QGC
来配置参与与获取log
文件(存储在安装目录下的:Firmware\build\px4_sitl_default\instance_
1下)
3.1.6 硬/软件在环一键启动脚本的更新
最新版本的平台中增加了HITLRunPos.bat
和SITLRunPos.bat
一键启动脚本,可以自定义初始的飞机位置。
使用方法如下(SITLRunPos
为例):
(1)点击
SITLRunPos.bat
(2)其中,第一行为输入X的坐标,输入几个代表则模拟几个飞机,中间用','(中英文符号都可以)隔开,例如输入1,2,10
。输入完点击回车键
(3)之后输入Y坐标,输入方法同上一步。需要注意的是,X坐标写了几个,Y坐标也要写对应的个数,中间用逗号隔开
(4)点击回车就可以自动生成对应的飞机和自定义的起始位置
硬件在环启动脚本方法同上,需要注意的是需要插入对应数量的Pixhawk
,比如模拟两个飞机,则需插入两个Pixhawk
。
补充:
最新的平台对C:\PX4PSP\RflySimAPIs
内所有bat脚本进行了更新,可以设置广播到其他计算机。同时支持设置多个目标IP来提升网络性能(广播容易造塞)。其中,令IS_BROADCAST=0
(仅此计算机),IS_BROADCAST=1
(广播方式);或者使用IP地址来提高速度,例如,IS_BROADCAST=192.168.3.1
注:
- 在IP模式下,
IS_BROADCAST=0
等于IS_BROADCAST=127.0.0.1
,IS_BROADCAST=1
等于IS_BROADCAST=255.255.255
您也可以使用带有分隔符“;”的IP列表指定要发送的IP,例如设置“SETIS_BROADCAST=127.0.0.1;192.168.3.5;192.168.3.6”
可向本机和局域网内其他两台电脑发送信息。具体细节见下图所示 - bat脚本默认设置
coptersim.exe
的优先级为high
,以保证更有实时性能。其中high
可以替换成normal
(正常)或realtime
(实时,最高等级)。如图 CopterSim
硬件在环一键启动脚本(需要在Start CoperSim.exe
语句最后加一位数字1)支持根据Pixhawk
的SysID
来动态改变CopterID
,避免了Windows
随机分配COM
端口导致Pixhawk硬件不易匹配的问题。 其他具体细节可以打开脚本自行查阅。
3.1.7 安装Visual Studio 2017 (也可以用其他版本,MATLAB能识别即可)
- 后续课程很多地方都需要用到
Visual Studio
编译器,例如MATLAB
S-Function Builder
模块的使用、Simulink
自动生成C/C++模型代码等- 这里推荐安装
Visual Studio 2017
,在线安装步骤(需联网)如下: - 双击
“RflySimAPIs\SimulinkControlAPI\VS2017Installer\vs_community2017.exe”
- 本课程内容只需勾选右图的“C++的桌面开发”即可。
- 注意:如果后续要用于
UE4C++
开发,还可以在右侧“摘要”里面勾选一个最新的Window 10 SDK
;再点击“单个组件”标签页,勾选.NET 4.7.2
(最新版即可)和对应pack
包。再点安装。
3.1.8 为MATLAB配置C++编译器
- 在
MATLAB
的命令行窗口中输入指令“mex -setup”
- 一般来说会自动识别并安装上
VS 2017
编译器,如右图所示显示“MEX配置使用‘MicrosoftVisual C++ 2017’
以进行编译”说明安装正确 - 本页面还可以切换选择
VS 2015
等其他编译器