4.2 其他多旋翼

本节导航


本讲的例程源码路径:
RflySimAPIs\OtherVehicleTypes\ DLLModelTemp、 ExternalCtrlAPI、 HexarotorModelCTRL、 MulticopterModelCTRL、 OctoCoxRotor

4.2.1 六旋翼的Pixhawk机架选择

  • 启动QGC,然后将Pixhawk插入电脑,QGC会自动识别并连接到Pixhawk自驾仪。
  • 进入“Firmware”(机架)标签页,选择机架类型为“Hexarotor x”-“GenericHexarotor x geometry”,然后点击右上角的“Apply andRestart”(应用并重启)按钮,此时自驾仪会自动重启;
  • 重启后QGC会自动寻找串口并连接到Pixhawk,此时可以查看各个配置页。

4.2.2 Pixhawk进入硬件在环仿真模式

  • 进入“Safety”(安全)标签页,在其“Hardware in the LoopSimulation”(硬件在环仿真)下拉菜单下,选择“HITLenabled”来启用六旋翼的硬件在环仿真。
  • 上述步骤完成后,拔掉Pixhawk飞控,再重新插入电脑,QGC重连之后,在Pixhawk上插上接收机并打开遥控器,检查遥控器校准、模态设置等选项是否正确。

4.2.3 飞行模式设置进入自稳模式

  • 确保遥控器校准完成后,点击地面站进入“Flight Modes”(飞行模式)设置页面,选择“Mode Channel”(模式通道)为前面试过的CH6通道(步骤见高级课程第2讲)。由于CH6通道是一个三段开关,开关的前部(远离人)、中部、后部(靠近人)档位分别对应了“Flight Mode(飞行模式) 1、4、6”三个标签。
  • 将这三标签分别设置为“Stabilized”(自稳模式,只有姿态控制)、“Altitude”(定高模式,姿态和高度控制)和“Position”(定点模式,有姿态、定高和水平位置控制)。
  • 拨动遥控器CH6开关,确保飞控进入第一个模式Stabilized自稳模式。

4.2.4 CopterSim上设置六旋翼模型

方法一:自行组装搭建六旋翼

  • 打开CopterSim软件,在“机架类型”下拉菜单中选择“六旋翼”。
  • 在主界面中选择合适的“整机质量”,“机架轴距”,和电机、螺旋桨等动力系统组件选型,即可自行组装搭建六旋翼。(注意:方便起见,这里也可以直接沿用四旋翼的默认参数)
  • 点击“计算”按钮,即可估算得到六旋翼的模型参数,并弹出右下图所示参数管理界面。
  • 点击“存储并使用参数”按钮,即可将参数保持,供后续仿真使用。
  • 注意:如果后续要做四旋翼仿真,记得在此页面点“还原默认参数”按钮。

方法二:直接输入六旋翼模型参数

  • 打开CopterSim软件,直接点击“模型参数”按钮,弹出右下图所示参数管理界面。
  • 在参数管理页面手动输入 旋翼数、机臂数和构型可以设置不同类型多旋翼机架。
  • 在右侧的模型参数框中输入质量、转动惯量、螺旋桨拉力系数等参数,可以设置六旋翼动态模型。
  • 配置完六旋翼参数后,点击“存储并使用参数”按钮,即可将参数保持,供后续仿真使用。
  • 注意:如果后续要做四旋翼仿真,记得在此页面点“还原默认参数”按钮。

4.2.5 六旋翼硬件在环仿真

  • 打开CopterSim软件,连上Pixhawk自驾仪到电脑,等Pixhawk启动完毕(一般8秒钟左右)后,在“飞控选择”下拉菜单中选择Pixhawk串口号,确认所有的QGC地面站程序已经关闭(避免串口占用),再点击“开始仿真”按钮,即可开始六旋翼的硬件在环仿真。
  • 打开RflySim3D,此时可以看到三维引擎中显示六旋翼;打开QGC地面站,可以观察到Pixhawk的状态参数。
  • 等待CopterSim左下角显示“GPS 3Dfixed & …”字样说明滤波器初始化完毕,可以用遥控器解锁飞行,并切换模态。注:这里请自行测试。

RflySim:如何仿真其他的多旋翼机型,例如六旋翼本视频观看地址: 优酷:https://v.youku.com/v_show/id_XNDcwNjA4MDY2MA==.html YouTube:https://youtu.be/bryZXxaJE5M


4.2.5-2 六旋翼软件在环仿真

  • 按上小节流程在CopterSim中设置模型为六旋翼X布局
  • “Firmware\ROMFS\px4fmu_common\init.d\airframes”文件夹中拷贝“6001_hexa_x”文件到“Firmware\ROMFS\px4fmu_common\init.d-posix”文件夹。
  • 另存一个SITLRun.bat脚本,用编辑器将SIL机架设置部分代码修改为“set PX4SitlFrame=hexa_x”
  • 运行bat脚本,输入飞机数量(支持多机),开始仿真

4.2.6 Simulink开发其他多旋翼模型

  • 打开MATLAB,并进到入“RflySimAPIs\OtherVehicleTypes\MulticopterModelCTRL”文件夹,打开“MulticopterNoCtrl.slx”即可得到本平台使用的多旋翼模型。
  • 点击Simulink的编译按钮,即可生成C/C++代码,方法如下
  • 对于MATLAB 2019a及之前版本,工具栏样式见下图,直接点击它的编译按钮即可。
  • 对于对于2019b及之后版本,如右图所示,点击APPS - CODE GENERATION – EmbeddedCoder才能弹出代码生成工具栏,在其中如下图所示点击“C++ CODE”-“GenerateCode”-“Build”按钮就能编译生成代码。

4.2.7 生成得到DLL文件

  • 如右图所示,在MATLAB中,鼠标右键点击“GenerateModelDLLFile.p”文件,在右键菜单中点击“运行”按钮,即可自动将C++模型代码生成为DLL动态链接库,以供CopterSim使用。本例子生成得到和slx文件同名的“MulticopterNoCtrl.dll”文件。

4.2.8 得到不同类型多旋翼

  • 本例程默认是四旋翼模型,可以通过修改init.m中的ModelParam_uavType参数得到不同的多旋翼类型,具体支持类型见“MulticopterModelCTRL\readme.docx”文档,部分机型如下。

4.2.9 扩展到任意无人载具系统的模版

  • “MulticopterNoCtrl.slx”可以看做一个自定义模型的接口模版,用户可以将自己的模型贴到其中,输入输出满足下列格式,即可用于DLL模型生成。
  • 四个必需输入:

    1)inPWMs输入,十六维PWM信号,范围0~1; 2)TerrainZ输入,一维地形高度信号; 3)inSILFloats输入,二十维float型的自定义数据; 4)inSILInts输入,八维int型自定义数据。其中,inSILFloatsinSILInts的主要作用是使得CopterSim能够在实时软/硬件在环时,模型能通过UDP接收其他程序(SimulinkPython等)传入数据,可用于故障实时注入、其他传感器数据生成、外部控制等。

  • 四个必需的结构体输出:

    1)MavHILSensor结构体输出,传感器数据,结构体定义见注释; 2) MavVehile3DInfo结构体输出,给三维引擎的真值数据; 3) MavHILGPS结构体输出,GPS的原始数据; 4) MavHILStateQuat结构体输出,状态四元数。

  • 三个必需参数(见init.m文件):

    1)ModelInit_PosE,三维位置向量,定义飞机初始位置,见“6DOF”子模块中; 2)ModelInit_AngEuler,三维姿态向量,定义飞机初始姿态,见“6DOF”子模块中; 3)ModelInit_Inputs,八维输入向量,定义电机PWM初始值,默认全0,见“Motor Model”模块中。


4.2.10 CopterSim调用DLL模型进行仿真

注:也可以用bat一键启动脚本来启动软/硬件在环仿真,需要修改代码为`“setDLLModel=MulticopterNoCtrl”`
  • 在前面的步骤中我们得到了一个“MulticopterNoCtrl.dll”模型文件,默认对应四旋翼模型,因此Pixhawk需要在QGC中,采用类似第2.1节步骤将机架设置成“HILQuadcopter X”四旋翼。
  • “MulticopterNoCtrl.dll”文件拷贝到“C:\PX4PSP\CopterSim\external\model”目录(C:\PX4PSP 需要改成实际安装目录)下,打开CopterSim后,在“使用DLL模型文件”下拉菜单中可以看到新增的“MulticopterNoCtrl”条目,选中它,插上Pixhawk飞控,即可开始硬件在环仿真。

results matching ""

    No results matching ""