戴训华 副教授
中南大学 计算机学院
dai.xh@csu.edu.cn
http://faculty.csu.edu.cn/daixunhua/zh_CN


3.1 软硬件配置

本节导航


注意:本小节例子推荐使用PX4的官方固件,任意版本都可以,这里选择了最新固件
本讲的例程源码路径:RflySimAPIs\SimulinkControlAPI
最新版本的平台更新了通信方式。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软件,在“飞控选择”下拉框选择飞控串口,并点击“开始仿真”,然后手动打开QGC3DDisplay
  • QGC中,点击“纸飞机”按钮-起飞-滑动来确认,可以看到视景中飞机自动起飞,说明配置正确




    注意:无论软件在环还是硬件在环仿真,均需要等待CopterSim消息栏显示
    “** EKF initialization finished”后,才能使用QGC/Simulink/Python控制飞机
    

3.1.5 PX4 SITL软件在环仿真(不需要Pixhawk硬件)

  • 双击桌面上的“SITLRun”快捷方式,输入数字“1”,启动一个飞机的软件在环仿真系统
  • 同上一页,在QGC中控制飞机起飞,如果能够正常自动起飞,说明平台配置正确。
  • 原理:PX4 SITL是在Win10WSLUbuntu环境中模拟了Pixhawk的实时操作系统,从而运行完整的PX4控制器,并与CopterSim通过网络相连实现传感器/控制指令的交互,形成控制仿真闭环系统,和插入Pixhawk硬件进行HITL效果相同
  • 注:PX4 SITL仿真下也可以通过QGC来配置参与与获取log文件(存储在安装目录下的:Firmware\build\px4_sitl_default\instance_1下)


3.1.6 硬/软件在环一键启动脚本的更新

最新版本的平台中增加了HITLRunPos.batSITLRunPos.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
注:

  1. 在IP模式下,IS_BROADCAST=0等于IS_BROADCAST=127.0.0.1IS_BROADCAST=1等于IS_BROADCAST=255.255.255您也可以使用带有分隔符“;”的IP列表指定要发送的IP,例如设置“SETIS_BROADCAST=127.0.0.1;192.168.3.5;192.168.3.6”可向本机和局域网内其他两台电脑发送信息。具体细节见下图所示
  2. bat脚本默认设置coptersim.exe的优先级为high,以保证更有实时性能。其中high可以替换成normal (正常)或realtime (实时,最高等级)。如图
  3. CopterSim硬件在环一键启动脚本(需要在Start CoperSim.exe语句最后加一位数字1)支持根据PixhawkSysID来动态改变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等其他编译器

results matching ""

    No results matching ""