6.3、本章常见问题

1. 在运行[RflySim安装目录]\PX4PSP\RflySimAPIs\6.RflySimExtCtrl\0.ApiExps\e1_PX4MavCtrlAPITest这个例程的时候报错,请问是不是库缺失?如下图所示:

微信图片_20240421143414

问题解答:

首先Vs Code没有关联我们的Python环境,可以参考下[RflySim安装目录]\PX4PSP\RflySimAPIs\1.RflySimIntro\2.AdvExps\e3_PythonConfig\Readme.pdf 看下这个文档,配置下Python环境。如下图所示:

6.3.2、RflySim工具链现在有offboard和mission模式demo吗?

问题解答:

视觉和集群例子都是offboard的,如下图所示的例程:mission没有专门的,但qgc可以进行设置。

6.3.3、飞控那边接收缓冲区怎么处理(px4内部对数据进行解析的过程或代码实现),目的是验证上位机发送的核心消息如何在整个软件中形成通信闭环。

问题解答:

在PX4中,接收缓冲区的处理通常是由串口接收中断触发的。PX4使用一种称为MAVLink(Micro Air Vehicle Link)的协议来进行通信,该协议用于飞行器和地面站之间的通信。下面是PX4中接收缓冲区处理的基本过程:

  1. 接收数据: 当串口接收到数据时,会触发中断,并将接收到的数据存储到缓冲区中。

  2. 解析数据: PX4固件中有一个称为MAVLink解析器的模块,它负责从接收缓冲区中解析出MAVLink消息。这个解析器会根据MAVLink协议规范,从接收到的数据中提取出MAVLink消息的各个字段,并校验消息的完整性。

  3. 分发消息: 解析器将提取出的消息发送到对应的处理模块。例如,如果接收到的是姿态控制指令,解析器会将该消息发送给姿态控制模块进行处理;如果接收到的是传感器数据,解析器会将其发送给传感器驱动程序。

  4. 执行相应操作: 接收到的消息会触发相应的处理动作,例如更新飞行状态、调整控制输出等。这样,上位机发送的核心消息就会在PX4软件中形成通信闭环,影响飞行器的行为。

PX4中的MAVLink解析器的代码实现通常位于src/modules/mavlink/mavlink_receiver.cpp文件中。在这个文件中,可以找到接收缓冲区处理的具体实现,包括中断处理、数据解析和消息分发等过程。

总的来说,PX4通过中断驱动的方式实现接收缓冲区的处理,然后通过MAVLink解析器将接收到的数据解析成MAVLink消息,并根据消息内容执行相应的操作,实现了飞行控制器和地面站之间的通信闭环。

6.3.4、[RflySim安装目录]/RflySimAPIs/6.RflySimExtCtrl/0.ApiExps/e2_PX4ComAPITest/Readme.pdf。这个例程的接口是6p的线,但是usb只有4线啊,这个怎么搞?

问题解答:

要有一个那种4转6的线,接法可以看下这个https://docs.holybro.com/autopilot/pixhawk-6c/pixhawk-6c-ports

6.3.5、如果操作无人机群搜救溺水的人的话除了导入程序我应该具体怎么操作这个软件?

问题解答:

启动仿真SITL.bat脚本后,直接运行程序就可以。

6.3.6、我们现在这个系统能不能实现多终端,就是比如说三台计算机运行这个RflySim3D,然后3个CopterSim,然后3个QGC,然后这三个模型在同一个场景里有能不能实现这个功能

问题解答:

可以,三个电脑在同一个局域网内就可以实现。

6.3.7、PX4飞控的辅助通道占空比能更改吗?

问题解答:

PX4飞控通常支持通过辅助通道来控制外部设备,例如舵机、LED灯等,这些设备的操作可以通过PWM信号的占空比来控制。辅助通道的占空比通常可以在地面站软件中进行设置和更改。

具体来说,你可以通过地面站软件(如QGroundControl)进入飞行控制器的参数设置界面,找到与辅助通道相关的参数,通常是以通道号和PWM输出范围的形式进行设置。你可以在这里更改辅助通道的PWM输出占空比范围,从而控制外部设备的操作。

需要注意的是,确保你了解你所操作的外部设备的工作范围和限制,并谨慎地设置辅助通道的占空比,以避免损坏设备或造成安全风险。同时,飞行控制器的固件版本和地面站软件的版本可能会影响参数设置界面的具体操作方式,因此请确保使用最新版本的软件,并参考相关的文档或用户手册进行操作。

6.3.8、在v1.13版本里怎么让control_allocator接受torque,thrustsetpoint并发布pwmtopic么。看官网介绍可以直接跑但在gazebo里飞机一直没反应

问题解答:

rflysim接口可以发力和力矩,官方1.13的话,先要在机架参数里面启用新的动态分配器,才能用力和力矩,要不就用1.14固件,或者直接用rflysim的接口,要用新的接口,可以发力和力矩,姿态环,速度环,位置环等。试试3.03版以后的平台,有专用接口。

6.3.9、PX4的uORB消息池从1.13版本之后名称发生了变化,RflySim工具链在编译1.13和1.14的固件时会不会冲突呢?

问题解答:

不会,RflySim在最开始安装时,根据用户的不同选择后台会自动配置对应PX 4版本的环境,用户无需修改环境中其他代码。

6.3.10、如果自己写个机架和混控器文件,编译烧录后再去修改SYS-AUTOSATART这个编号参数,就可以实现自定义机架吗?

问题解答:

可以,但需要注意的是PX4的1.14之前的混控器系统较为混乱,如在配置固定翼无人机时,舵机和电机控制量取值范围有所不同,1.14版本引进了动力分配的方式,就会很方便的自定义机架了,直接可以在QGC地面站中进行修改。

6.3.11、扫频后辨识数据得到的模型是包含了控制器的模型,那要是想重新设计新控制器应该怎么使用这个模型呢?

问题解答:

直播培训中演示的扫频实验是带有姿态环控制器的,因为实验中是进行了速度环的扫频的实验,当然也可直接使用获取飞控中的期望力/力矩和实际的力/力矩、期望速度和实际速度等等来进行扫频实验来辨识不同控制环路或通道的辨识,这样得出的结果就不会包含有控制器了。

6.3.12、Simulink中代码自动生成主要是指控制和导航部分吗?其他部分是不是也可以呢?

问题解答:

主要是控制部分代码,其他部分代码也可以生成,但需要注意,现市面上大多数的飞控的内存有限,较复杂的算法,可能无法烧录到飞控中。

更多问题请访问:https://github.com/RflySim/Docs/issues

results matching ""

    No results matching ""