1.2 软、硬件使用和配置(Software and hardware usage and configuration)

本节导航


1.2.1 软硬件总体介绍(General introduction of hardware and software)

  • RflySim平台作为一个工具链,包含了众多运用于无人系统开发的软件,如:Python 3.8环境、MATLAB/PSP工具箱、FilghtGear、 QGroundControl等;同时,针对无人系统的自主开发的RflySim3D、CopterSim等。
  • 除了软件系统,RflySim硬件系统有:地面计算机/机载计算机、机架系统、动力系统、遥控器系统、自驾仪系统等等。


1.2.2 RflySim核心软件介绍(RflySim core software introduction)

  • CopterSim:本平台核心仿真软件,运行多旋翼运动动态模型,并连同其他软件构成软/硬件在环仿真。
  • RflySim3D/RflySimUE5:本平台核心三维显示软件,基于Unreal En gine 4( UE4 ,虚幻4,完整版支持UE5)引擎开发,具备高逼真虚拟现实显示效果。
  • HILRun/SILRun:一键快速启动脚本,可以快速开启所有视觉/集群相关软件,并完成所需配置。若运行过程中卡顿,请使用HITLRunL owGPU/SITLRunLowGPU一键启动脚本。
  • Python38Env:包含OpenCV等库的一个Python环境。
  • RflySimAPIs例程文件夹:包含了本课程的所有例程和源码,覆盖了单/多机控制、集群飞行、视觉控制等。
  • PPTs课件文件夹:包含了本课程对应的所有课件。
  • QGroundControl(QGC)地面站:包含配置飞控参数和控制飞机起飞、降落、航线等功能。用户可以阅读如下网址来学习软件使用:https://docs.qgroundcontrol.com/master/en/index.html
  • Win10WSL编译器:用于编译固件和软件在环仿真。
  • Pixhawk Support Package(PSP)工具箱:Mathworks公司官方为 Pixhawk自驾仪推出一个工具箱,用于将Simulink中设计的控制算法生成C代码并编译上传到Pixhawk自驾仪硬件。
  • FlightGear飞行模拟器:一款非常受欢迎的开源飞行模拟器软件,可以通过UDP接收Simulink发送的飞行状态,方便地观测Simulink仿真时飞机的飞行状态。
  • PX4 Firmware固件源代码:PX4 是一款开源飞行控制软件系统,它运行在Pixhawk系列自驾仪硬件平台上,构成了Pixhawk PX4自驾仪软硬件平台,是目前世界范围内广泛应用的开源无人机自驾仪。
  • VS Code/Eclipse/VS:用于代码阅读、编辑与编译。


1.2.3 RflySim核心硬件介绍(RflySim Core Hardware introduction)

  • 地面计算机/机载计算机
  • 机架系统:机臂、机身、起落架等。
  • 动力系统:电机、电调、电池、螺旋桨等。
  • 遥控器系统:遥控器发射器、接收机、充电器、锂电池等。
  • 自驾仪系统:自驾仪/飞控、GPS模块、电源模块、USB数据线、数传模块、机载AI视觉/集群计算机。
  • 动捕系统:完整的动捕系统,可用于算法验证、运动规划、集群控制、人机交互、轨迹回放、步态分析、智慧沙盘等。


1.2.4 软、硬件系统关系与配置(Software and hardware system relationship and configuration)

  • 平台除了软件,还包含了硬件在环仿真和真机实验的部分。
  • 底层飞控算法开发的流程为:底层飞控开发–>MATLAB软件仿真–>自动代码生成–>飞控软件在环仿真–>飞控硬件在环仿真–>室外真机实验。


一键安装脚本的作用主要有以下几点:

  • 首次安装时,将平台一键部署到系统中(使用默认配置,全选“是” 即可),并完成相关配置。
  • 后续使用中,再次运行安装脚本,可以修改编译命令、编译器、固件版本、还原软件等。(不需要还原的项目选择“否”,会根据情况更新配置,节省时间)。
  • 下载新安装包后,直接运行安装脚本(选择“自动”,会需要更新的内容),再点击确认,开始升级。


一键安装脚本选项详解:

1)工具包安装路径。本平台的所有依赖文件都会安装在本路径下,大约需要20G的空间。默认安装路径是“C:\PX4PSP”,如果C盘空间不够可以选择其他盘符下的路径。注意:路径名称必须正确,且只能用纯英文的路径,否则会导致编译失败。

2)PX4固件编译命令。主要对应底层控制器开发需求,并使用代码生成功能,需要根据飞控硬件来选择编译命令(注:顶层视觉和集群算法开发用户不需要配置,保持默认即可) 。默认为 “droneyee_zyfc-h7_default”对应卓翼H7自驾仪。除此之外,平台将长期支持以下三款飞控: Pixhawk V6X 编译命令为: px4_fmu-v6x_default; Pixhawk V6C 编译命令为: px4_fmuv6c_default; Pixhawk 1 编译命令为: px4_fmu-v3_default。 更多飞控编译指令请见: https://doc.rflysim.com/hardware.html。


注:第一次安装完成后,除了重新运行本安装脚本,另一种针对不同的 Pixhawk硬件板子想更换不同的编译命令(例如换成px4_fmu-v3_default)的方法,只需要在MATLAB中输入命令:PX4CMD(‘px4_fmu-v3_default') 或者使用命令:PX4CMD px4_fmu-v3_default

3)PX4固件版本。PX4源代码每年都会进行更新,目前最新的固件版本为1.12。随着固件版本的升级,功能会逐渐增加,支持的新产品也越多,但是对旧的一些自驾仪硬件的兼容就会变差。本实验课程推荐使用卓翼H7飞控,对应的编译指令为“droneyee_zyfc-h7_default”,选用的固件版本PX4-1.12.3

4)PX4固件编译器。由于PX4源代码的编译依赖于Linux编译环境和相关组件,本平台提供了三套编译环境来实现Windows平台下对Linux编译环境的模拟,它们分别是:基于Windows Subsystem for Linux (WSL)的编译环境Win10WSL编译器、基于Msys2 的Msys2Toolchain编译环境和基于Cygwin的CygwinToolchain编译器。注意,如果需要编译≥PX4-1.8版本以上固件,请需要选择CygwinToolchain编译器;编译≤PX4-1.8版本的固件,可选择Msys2Toolchain编译器。基于Msys2或Cygwin的本地编译器,支持WIndows 7~11平台,而且部署方便,但是编译效率较低。对于Windows10 1809及以上的系统版本,推荐安装Win10WSL编译器,这种方式可以大大加快编译速度,而且兼容所有版本的PX4飞控固件。

.jpg)


5)是否全新安装PSP工具箱。如果该选项设置为“是” ,会将PSP工具箱安装在本地MATLAB 软件中。如果PSP工具箱已经安装过,则会对PSP工具箱进行全新安装。如果选择“否” ,脚本对PSP工具箱不做任何更改(不会卸载掉安装的PSP工具箱或其他动作)。

6)是否全新安装其他依赖程序包。如果该选项设置为“是” ,会将QGC地面站、CopterSim、 3DDisplay等软件部署在设定的安装路径上,并安装Pixhawk硬件的相关驱动程序,以及在桌面生成这些软件的快捷方式。如果安装路径上已经部署过相关依赖软件,选择“是”则会删除旧的安装包并进行全新重新安装。如果该选项设置为“否”则不做任何修改。

7)是否全新配置固件编译器编译环境。如果该选项设置为“是” ,会将选定的编译器(Win10WSL、CygwinToolchain或Msys2Toolchain)部署在设定的安装路径上,如果环境已经存在,则会清空旧的编译环境,进行还原与全新部署。反之,如果该选项设置为“否”则不会进行任何更改。


注:你也可以直接在(6)中指定个别你想要重装的应用名字(逗号分隔),可用选项包括CopterSim,drivers,FlightGear,QGroundContr ol,RflySim3D,RflySimAPIs,UE3DDisplay

8)是否全新部署PX4固件代码。如果该选项设置为“” ,会将选定的PX4 Firmware源代码部署在设定的安装路径上,如果固件存在,会删除旧的固件文件夹,并进行全新部署。如果该选项设置为“否”则不会进行任何更改。

9)是否全新编译固件。如果该选项设置为“” ,会对部署固件进行预编译,这样可以大大节省后续代码生成与编译的时间,同时可以检测环境安装是否正常。如果该选项设置为“否”则不会进行任何更改。

10)是否屏蔽PX4自身控制器输出。如果该选项设置为“” ,会对Firmware中对电机的控制信号进行屏蔽,防止与生成代码发生冲突(注:本选项不会屏蔽PX4_SITL控制器的输出,因此可以正常进行软件在环仿真)。如果选择“否” ,则不会进行对固件输出进行屏蔽,可以用于测试 PX4自带的控制算法,因此如果要生成官方固件,本选项请选择“否” 。

.jpg)


1.2.5 基于模型开发流程简介(Introduction to the model-based development process)

(1) 软件在环仿真阶段

​ 整个阶段都在MATLAB环境下进行,利用给定多旋翼仿真模型和例程,在Simulink中进行控制算法设计,并正确连接模型和控制器,确保输入输出信号与实际多旋翼系统一致。类似于实际多旋翼系统,多旋翼模型将传感器数据或状态估计信息(例如,姿态角、角速率、位置和速度等)发送给控制器,控制器将每个电机PWM 控制指令发回给模型,从而形成一个软件在环仿真闭环系统。在本阶段,读者可以观察控制性能,自行修改或设计控制器来达到期望的性能需求。


(2) 硬件在环仿真阶段

​ 利用给定的模型和例程,进行实验。模型在硬件在环多旋翼飞行器仿真器里,而控制器上传到Pixhawk飞控硬件环境下,其中通讯过程是通过串口线直接连接。模型通过串口线将姿态角、姿态角速率、位置和速度发送给控制器,控制器通过串口线将每个电机PWM控制指令发回给模型,从而形成一个闭环。


​ 将Simulink多旋翼模型参数导入到CopterSim中,并将Simulink控制器算法生成代码下载到Pixhawk自驾仪,然后用USB实体信号线替代Simulink中的虚拟信号线。CopterSim将传感器数据(例如,加速度计、气压计、磁力计等)通过USB数据线发送给Pixhawk系统;Pixhawk系统中的PX4自驾仪软件将收到传感器数据进行滤波和状态估计,将估计的状态信息通过内部的uORB消息总线发送给控制器;控制器再通过USB数据线将每个电机的PWM控制指令发回给CopterSim,从而形成一个硬件在环仿真闭环。


相对于软件在环仿真,硬件在环仿真中多旋翼模型运行速度与实际时钟是一致的,以此保证仿真的实时性,同时控制算法可以部署并运行在真实的嵌入式系统中,更加接近实际多旋翼系统。需要注意的是,实际硬件通讯中可能会存在传输延迟,同时硬件在环系统的仿真模型和控制器所运行环境也难免与软件在环系统存在一定差异,因此控制器的参数可能需要进一步调节来达到设计需求,这也恰恰反映实际中的情况。


(3) 飞行测试阶段
在这个阶段,CopterSim的虚拟仿真模型进一步由真实多旋翼飞行器替代,传感器数据直接由传感器芯片感知飞行运动状态得到,控制器信号直接输出给电机,从而实现真实飞机的控制。需要注意的是,无论是硬件在环仿真还是软件在环仿真,其仿真模型都难以与真实飞机保持完全一致,因此进一步的参数调整也是必要的。


results matching ""

    No results matching ""