8.1 软硬件配置
本讲的例程源码路径:
RflySimAPIs\FaultInjectionAPI
注意:本小节例子推荐使用PX4的官方固件,任意版本都可以,这里选择了最新固件
8.1.1 Pixhawk硬件配置(1) — 在线固件下载方法如下:
1)打开
QGC
地面站软件,断开Pixhawk
;
2)如下图所示,点击工具栏齿轮图标进入载具设置页面,再点击“Firmware”
(固件)标签进入固件 烧录页面;
3)用 USB 线连接Pixhawk
自驾仪到电脑,此时软件会自动识别Pixhawk
硬件,如右图所示所示,在界面右侧弹出固件配置窗口,勾选第一项“PX4 ***”
,然后点击“确定”,QGC
开始自动下载(需联网,无法联网请参考下一页使用本地固件)并安装最新的PX4
固件到Pixhawk
中;
8.1.2 Pixhawk硬件配置(2) — 离线固件下载(因网络无法在线下载固件时采用本方法)方法如下:
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 下载
8.1.3 Pixhawk硬件配置(3) — 离线固件生成(前两者都无法使用时采用本方法)
注意:前两种方法都失效时才尝试本方法;下图针对RflySim高级版,如果是RflySim基础版请使用支持的固件和编译器版本。
- 在MATLAB中重新运
“OnekeyScript.p”
一键安装脚本;- 第2行输入
“px4_fmu-v3_default”
(注意:这里针对Pixhawk 1
,请根据自己的飞控硬件选择编译命令)- 如右图所示,将第9项和第10项分别设置为“是”和“否”,其他选项保持默认,点击“确定”按钮,即可编译出不屏蔽
PX4
自身输出的PX4
官方固件。- 在
MATLAB
中运行“PX4Upload”
命令,即可弹出固件烧录页面,此时插入Pixhawk
飞控,即可将官方固件烧入。
8.1.4 Pixhawk硬件在环仿真模式
- 完成固件烧录后,自驾仪会自动重启并连接到
QGC
上;此时,如右图所示,进入“Airframe (机架)”
标签页,选择机架类型为“HILQuadcopter X”
,然后点击右上角的“Apply and Restart”
(应用并重启)按钮,此时自驾仪会自动重启; - 重启后
QGC
会自动寻找串口并连接到Pixhawk
,此时查看各个配置页,确保Pixhawk
进入硬件在环仿真模式。 - 完成遥控器校准和模式设置后,暂时拔掉
Pixhawk
上的接收机,本讲课程不需要连接接收机
8.1.5 PX4 SITL配置(仅限RflySim高级版)
- 重新运行
“OnekeyScript.p”
脚本,按照右图所示配置,点击“确定” - 本配置是用于运行PX4的SITL软件在环仿真模式,使得我们可以在
Windows
下运行完整的PX4
控制器,从而不需要Pixhawk
硬件就能进行仿真。
关键配置如下:- 编译命令:
“px4_sitl_default”
- 固件版本:“4”—
PX4 1.10.2
- 编译器:“1”—
Win10WSL
- 是否预编译固件:“是”
- 是否屏蔽
PX4
控制输出:“否”— 这里直接用PX4
官方固件来做顶层控制
- 编译命令:
8.1.6 PX4 HITL硬件在环仿真测试
- 如果使用
RflySim
高级版,请插入Pixhawk
,再直接运行桌面的HITLRun
快捷方式,在弹出窗口中输入串口号,按下回车来开启硬件在环仿真系统 - 如果使用
RflySim
基础版,请插入Pixhawk
,打开CopterSim
软件,在“飞控选择”下拉框选择飞控串口,并点击“开始仿真”,然后手动打开QGC
和3DDisplay
- 在
QGC
中,点击“纸飞机”按钮-起飞-滑动来确认,可以看到视景中飞机自动起飞,说明配置正确注意:无论软件在环还是硬件在环仿真,均需要等待CopterSim消息栏显示 “** EKF initialization finished”后,才能使用QGC/Simulink/Python控制飞机
8.1.7 PX4 SITL软件在环仿真(不需要Pixhawk硬件)
- 该功能仅限
RflySim
高级版(对应步骤1.5中设置) - 双击桌面上的
“SITLRun”
快捷方式,输入数字“1”,启动一个飞机的软件在环仿真系统 - 同上一页,在
QGC
中控制飞机起飞,如果能够正常自动起飞,说明平台配置正确。 - 原理:
PX4 SITL
是在Win10WSL
的Ubuntu
环境中模拟了Pixhawk
的实时操作系统,从而运行完整的PX4
控制器,并与CopterSim
通过网络相连实现传感器/控制指令的交互,形成控制仿真闭环系统,和插入Pixhawk
硬件进行HITL
效果相同 - 注:
PX4 SITL
仿真下也可以通过QGC
来配置参与与获取log
文件(存储在安装目录下的:Firmware\build\px4_sitl_default\instance_
1下)
8.1.8 安装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
包。再点安装。
8.1.9 为MATLAB配置C++编译器
- 在
MATLAB
的命令行窗口中输入指令“mex -setup”
- 一般来说会自动识别并安装上
VS 2017
编译器,如右图所示显示“MEX配置使用‘MicrosoftVisual C++ 2017’
以进行编译”说明安装正确 - 本页面还可以切换选择
VS 2015
等其他编译器