Flight Stand 软件完整用户手册,随 Flight Stand 15、50、150 和 500 附带。
目录
- 下载软件
- 设置模拟板(可选)
- 软件配置
- 测量单位
- 硬件连接检查
- 安全限制
- 动力系统映射
- 手动测试
-
自动测试
- 数值表
- .CSV 上传 / 飞行回放
- Python API预设测试脚本
- 正弦波
- 啁啾信号
- 锯齿波
- PID 调节
- 测试设置与数据处理
- 电机速率限制器
- 自定义实时数据图表
- 降噪
- 重采样数据
- 连接 CAN ESC
- 远程控制软件
1. 下载软件
在计算机上下载并安装 Flight Stand 软件。
步骤:
- 访问 tytorobotics.com/download
- 找到“Flight Stand Software”部分,然后点击“download”按钮。

- 下载完成后,在计算机上运行安装程序以安装软件。
如果在计算机上安装软件时遇到任何问题,请尝试以管理员模式进行安装。
2. 设置模拟板
软件包含模拟板功能,用户可以在购买动力测试台之前测试和探索软件。连接模拟板是可选的,但这是熟悉软件的绝佳方式,无需购买。
模拟输出的数据基于真实电机的测试,这些测试用于创建性能模型。
视频教程:https://www.youtube.com/watch?v=oszJTbkftbE
步骤:
- 打开 Flight Stand 软件,然后导航到 Hardware 选项卡。
- 点击“Connect Simulated Board”按钮。在左侧面板中,您将看到输入的模拟数据。

- 要模拟双电机系统,返回 Hardware 选项卡,再次点击“Connect Simulated Board”,添加另一个模拟动力系统。
连接模拟板后,您可以像操作真实动力测试台一样继续进行,并执行下一节中描述的设置、测试和数据可视化。
3. 软件配置
在开始测试之前配置软件,以确保最佳性能和安全性。我们将介绍下拉菜单中的前四个选项中的设置。

视频教程:https://youtu.be/JUSK1Mns0TA?si=jojtv8rcm57Np1vZ&t=27
步骤:
- 打开 Flight Stand 软件。
- 将 Flight Stand 连接到计算机的 USB 端口。在左侧面板中,您将看到 Force Measurement Unit 和 Electrical Measurement 出现。
- 您可以同时连接多达 8 个动力系统进行分布式电推进(DEP)测试。
- 点击“Setup”:在这里您可以根据自己的喜好自定义测量单位。
- 点击“Hardware”:在这里您可以查看已连接的 Flight Stand(动力测试台)详情,包括序列号、固件,以及当前连接的系统,例如伺服控制器和传感器。
- 点击“Safety limits”:在这里您可以设置安全截止值,以限制推力、扭矩、电压、电流和 RPM 的最高或最低范围。
- 点击“Powertrains”:在这里您可以映射动力系统,为电机、螺旋桨、ESC 和电源分配名称。在这里您还可以确保动力系统与正确的推力和电气测量单位相关联。
4. 手动测试
使用 ESC 油门滑块进行手动控制测试。
视频教程:https://youtu.be/FzfvaZogpwQ?si=6XANU7NCvHQAaHju
步骤:
- 确保您的测试台或模拟板已正确连接。
- 点击下拉菜单中的“Manual Control”选项卡。
- 为您的测试命名。
- 决定您希望如何记录数据:点击“Record”进行连续记录,或使用“Take sample”按钮进行快照读取。
- 勾选滑块旁边的复选框以激活您的 ESC。
- 拖动油门滑块开始测试,或在文本框中输入油门值。

- 使用实时图表查看输入的数据,图表可以从窗口底部展开。
- 取消勾选滑块旁边的复选框以停用您的 ESC。
- 再次点击“Record”按钮以停止连续记录
- 点击“Save and new”保存您的测试。
- 在“Test”选项卡中查看您的结果,您也可以在此导出数据。
5. 自动测试
使用几种方法之一设置并编写自动测试程序。
a. 数值表
视频教程:https://youtu.be/0RqCtd3qnwc?si=l44I6jeJQab18dnr
步骤:
- 在“Manual Control”选项卡中激活 ESC。
- 在“Automatic Control”选项卡中选择一种测试类型(Step 或 Ramp)。

- 在“Controlled outputs”下,勾选您想要测试的动力系统旁边的复选框。
- 在“Sequence form”下,使用“Add Row”框输入您希望更改油门的时间点。
- 在“Powertrain throttle”列中,添加您希望与“Time”列中的时间点相对应的油门值。

- 选择您希望收集数据的方式。
- 要在每个时间点采集样本,请勾选表中的“Take sample”复选框。
- 要连续记录数据,请向下滚动到“Sequence runner”,然后开启“Continuous recording”。
- 向下滚动到“Sequence Preview”,查看您的测试效果。
- 要连续多次运行测试序列而不停止,请在“Loop sequence”框中输入重复次数。
- 在“Title”框中为测试命名。
- 点击“Execute sequence”运行测试。
- 测试完成后,左侧面板中会出现一个黄色框,您可以在其中保存或丢弃数据。
b. CSV 上传 / 飞行回放
视频教程:https://youtu.be/FroCYgVlPgQ?si=3QrXeoAZ26-I1jBM
步骤:
- 选择一种自动测试类型后,在“Sequence editor”下,点击“Tools”下拉菜单并选择“Load demo example”。
- 再次在“Tools”下拉菜单中,选择“Export sequence from CSV”。
- 使用导出的 CSV 文件作为模板,并添加您想要的时间和油门点。
- 文件准备好后,返回“Tools”下拉菜单,选择“Import sequence from CSV”,然后从您的计算机上传编辑后的 CSV 文件。

- 向下滚动预览并执行序列。测试完成后,左侧面板中会出现一个黄色框,您可以在其中保存或丢弃数据。
c. Python API
视频教程:https://youtu.be/Gkf0dAnA1w4?si=nV3WNBGPCv49miR8
步骤:
- 开始之前,请确保您的计算机上已安装最新版本的 Flight Stand 软件,以及一个带有 Python 编译器的文本编辑器。
- 在 Flight Stand 软件的“Hardware”选项卡中,连接您的 Flight Stand 或模拟电路板。
- 导航到“Automatic Control”选项卡,并从测试选项中选择“Python API”。
-
打开以下仓库:https://gitlab.com/TytoRobotics/flightstand-api并阅读“README”文件。

- 打开您喜欢的文本编辑器(例如 PyCharm)。
- 在 PyCharm 中,您需要配置一个虚拟环境。
- 如果您使用其他文本编辑器,例如 VS Code,则需要安装 Python 或 Python 扩展。
- 在 PyCharm 中,打开仓库中的 Python 文件夹。
- 在该文件夹中打开终端并运行以下命令:py -m pip install grpcio grpcio-tools

- 要验证连接,打开 Flight Stand 软件并显示实时图表。然后,在 Python 中运行 example.py。
- 在 PyCharm 中,您应该能在终端输出中看到所有可用板卡,自动连接模拟板,然后列出该板卡的所有可用输入和输出。
- 如果连接成功,终端的最后几行应该反映您在 Flight Stand 软件中看到的 ESC 油门值。
d. 预设测试脚本
此 Google 表格(https://docs.google.com/spreadsheets/d/1XvXoo7h2_0t1s1L2px2kDtGj2X2kDnwxDqttWxkEFus/edit?usp=sharing)包含正弦波、啁啾信号和锯齿波测试的模板。要使用模板,请前往“文件”→“创建副本”,并将其添加到您的 Google 云端硬盘中。
i. 正弦波
视频教程:https://youtu.be/0pu8JYqnV80
步骤:
- 打开您自己的 Google 表格副本,并前往“正弦/啁啾信号生成”选项卡。
- 调整第 2 行中的线数、加速、频率、振幅和偏移值,以设计您的正弦波。这将调整“油门与时间”图表中的预览。
- 将“时间”和“油门 - 正弦”列中的数据复制到“待导出正弦波数据”选项卡中。
- 将数据添加到适当的列后,将文件下载为 CSV 文件(文件 → 下载 → .csv)。
- 打开 Flight Stand 软件,前往“自动控制”选项卡,点击“阶梯测试”。

- 在“工具”下,选择“从 CSV 导入序列”。
- 选择并导入您从 Google 表格中下载的 CSV 文件。
- 正弦波数据点将显示在表格中,序列预览窗口将显示波形的预览。
- 点击“执行序列”来运行测试。
- 测试完成后,左侧面板会出现一个黄色框,您可以在其中保存或丢弃数据。
ii. 啁啾信号
视频教程: https://youtu.be/0pu8JYqnV80?si=GQYjKerpszKwcb5q&t=129
步骤:
- 打开您自己的 Google 表格副本,并前往“正弦/啁啾信号生成”选项卡。
- 调整第 2 行中的线数、加速、频率、振幅和偏移值,以设计您的波形。这将调整“油门与时间”图表中的预览。
- 调整“啁啾信号加速”值。
- 将“时间”和“油门 - 啁啾”列中的数据复制到“待导出啁啾数据”选项卡中。
- 将数据添加到适当的列后,将文件下载为 CSV 文件(文件 → 下载 → .csv)。
- 打开 Flight Stand 软件,前往“自动控制”选项卡,点击“阶梯测试”。
- 在“工具”下,选择“从 CSV 导入序列”。
- 选择并导入您从 Google 表格中下载的 CSV 文件。
- 啁啾测试数据点将显示在表格中,序列预览窗口将显示频率逐渐增加的波形预览。
- 点击“执行序列”来运行测试。

-
测试完成后,左侧面板会出现一个黄色框,您可以在其中保存或丢弃数据。
iii. 锯齿波
视频教程:https://youtu.be/0pu8JYqnV80?si=c1WeU3UYjajHE6Bu&t=204
步骤:
- 打开 Flight Stand 软件,前往“自动控制”选项卡。
- 点击“斜坡测试”。
- 在“序列编辑器”表格中,输入 2 行时间、油门和变化率数据。
- 下方“序列预览”窗口将显示简单上升/下降模式(锯齿波)的预览。

- 在“循环序列”框中输入您想要的重复次数,然后点击“执行序列”。
- 测试完成后,左侧面板会出现一个黄色框,您可以在其中保存或丢弃数据。
iv. PID 调优
注意:我们强烈建议观看本部分的视频教程。
PID 控制器是一种特殊算法,旨在使特定传感器保持在特定值。PID 控制器通过不断计算所需的油门输出,使您的推进系统收敛到所需的传感器值来实现这一目标。
在完成此教程之前,您需要能够成功运行仓库中的第一个 example.py 文件。如果您尚未这样做,请参阅本用户手册的 5c 节,了解如何操作,因为您需要安装某些包才能运行 PID 示例。
视频教程: https://youtu.be/8HSNoONR3yg
步骤:
- 假设您能够成功运行 example.py 文件(5c 节),请打开 Flight Stand 软件。
- 打开您的 Python 编译器(例如 PyCharm),并打开控制台以确保您已安装 simple-pid,您可以通过运行此命令来安装:py -m pip install simple-pid
- 打开 .proto 文件,找到与您想要的目标变量信号相对应的数字(我们将以推力为例),然后向下滚动直到看到输入信号列表。推力(FZ)对应数字 11,请记下。

- 打开 example 4,并将输入和输出信号更改为与 Flight Stand 软件中的动力系统相匹配。您可以在 Flight Stand 软件中找到此信息:前往“硬件”选项卡,点击您的动力系统,并突出显示“识别”选项卡下的第一行文本。

- 将此信息复制并粘贴到 Python 文件中的输入/输出板信息中。
- 运行 Python 文件。终端将输出可用输入的列表。
- 找到与您目标变量信号相同数字的输入(推力为 #11),并在 target input board 之后将其输入到 example_PID_constant_thrust.py 中。
- 向下滚动到“目标值”,并在文本框中输入您想要的目标推力值(以牛顿为单位),因为文件使用国际单位制。

- 检查您对周期的设置,并为您的 PID 参数 Kp、Ki 和 Kd 设置初始值。
- Ki 项(积分项)是一个常数,它与误差的积分相乘。然后将乘积添加到偏移误差。
- Kd 项(微分项)是一个常数,我们用它乘以误差的导数。
- Kp 项(比例项)与积分项和微分项类似,但它是误差和常数的乘积。
- 运行脚本并观察 Flight Stand 的相应反应。
- 根据需要调整您的 Kp、Ki 和 Kd 值,直到您获得令您满意的 PID 响应。
6. 测试设置和数据处理
a. 电机速率限制器
控制您的油门加速度率,以保护电机免受扭矩或电流过载。
步骤(手动测试):
- 如果进行手动测试,在激活 ESC 之前,点击油门滑块左侧的齿轮图标。
- 在“速率限制器”文本框中,输入以 µs/s 为单位的最大加速度值。
- 设置完成后,软件将提供一个示例,显示您从最大油门开始加速或减速的速度。
- 例如,以 500 µs/s 的速率,需要 2 秒才能达到 2000 µs 的最大油门。
- 激活 ESC 并增加油门。橙色条将显示在应用速率限制器后油门的位置。

步骤(自动测试):
- 如果您在手动控制选项卡中保留速率限制器,它也将应用于自动控制测试。如果您希望对整个测试应用相同的速率限制,这是最佳选项。
- 您也可以在自动控制选项卡中为测试的不同阶段配置唯一的速率限制。前往“自动控制”选项卡开始。
- 选择一种测试类型,并将您的序列步骤输入到表格中。
- 表格中的第四列是速率限制器。在此列中输入您为每一步设置的限制值。
- 向下滚动到序列预览,查看运行测试时会是什么样子。
- 点击“执行序列”来运行带有速率限制器的测试。
b. 自定义实时数据图表
自定义数据在测试期间实时图表中的显示方式。
步骤:
- 通过从底部向上拖动,或使用“实时图表”窗口右侧的箭头来放大实时数据图表窗口。
- 如果您有多个动力系统,可以先勾选左上角每个动力系统旁边的复选框,选择您想要在图表中显示哪一个(或哪些)。

- 接下来,使用中间的时间跨度滑块来控制您在 X 轴上看到的时间长度。默认值为 30 秒,但您可以根据需要显示更多或更少的时间。
- 滑块右侧的“布局”按钮会弹出一个窗口,您可以在其中控制图表的查看方式。您可以更改顺序、切换图表的开启和关闭状态,并调整列数,从而获得更大的图表或更小的图表。

- 右侧的“暂停”切换开关会暂停数据,以便您查看特定快照。当您将其关闭时,它将跳转到实时数据。
- “显示未过滤数据”切换开关允许您查看未过滤的数据。默认情况下,会应用 1 Hz 低通滤波器来平滑读数,但此开关会移除它。
c. 降噪
控制应用于您数据中的噪声滤波器。要控制实时数据图表上的噪声滤波器,请参阅上一节中的第 6 点。
注意:所有数据都是在不使用噪声滤波器的情况下记录的。此功能实现了一个具有可选择截止频率的软件低通滤波器。
要控制保存数据中的噪声水平,请按照以下步骤操作。
步骤:
- 前往“测试”选项卡并打开您想要编辑的测试。
- 前往“图表”选项卡,并使用“噪声滤波器”滑块来调整降噪水平。
- 应用了自动 1 Hz 滤波器,但您可以将其完全关闭,或应用更高或更低的滤波器。
d. 重新采样数据
在测试完成后,以自定义采样率导出您的数据。
步骤:
- 完成测试后,前往“测试”选项卡并点击您的测试。
- 前往导出选项卡,您将看到一个包含所有数据点的表格。
- 在“时间分辨率”下,勾选“重新采样”旁边的选项,并在出现的文本框中输入您想要的分辨率。您输入的数字就是您希望每隔多少秒提供一次采样。
- 默认重新采样率为 0.1 秒,或每秒 10 个采样。
- 唯一的限制是您不能将采样率提高到测试台的限制以上(标准 Flight Stand 为 100 个采样/秒,Pro 为 1000 个采样/秒)。
- 点击“导出为 CSV”,以您想要的采样率将测试保存到您的计算机上。
7. 连接 CAN ESC
我们的 Flight Stand 支持大多数 ESC 协议,但使用 CAN ESC 协议时需要进行此额外设置。
在本示例中,我们使用的是专门与 Zubax 设备配合使用的 Yukon 软件。其他 CAN 产品可能使用其他第三方软件。
视频教程: https://youtu.be/BiZuCrVQNnU?si=V2gVWdD7fGlJeMeZ
步骤:
- 下载并打开 Flight Stand 软件。
- 从 https://gitlab.com/TytoRobotics/flightstand-api 下载代码库,并在您的计算机上解压该代码库。
- 下载最新版本的 Python 和 PyCharm 社区版。
- 打开 PyCharm 并打开已下载的代码库。
- 在已下载的文件夹中,进入 languages → python → examples → canbus-cyphal
- 您可以在此处找到我们将要运行的示例。
- 前往“File” → “Settings” → “Project” → “Python interpreter”,然后在弹出的窗口中点击“Add interpreter” → “Add local interpreter”来配置 Python 解释器。
- 点击“Apply”,PyCharm 将自动创建虚拟环境。
- 要确认虚拟环境已正确设置,您可以查看虚拟环境路径,或者打开终端,在命令行之前应能看到虚拟环境。
- 打开“examples”目录下的“README”文件。
- 运行 README 文件中列出的三个命令,即可安装运行 Python API 所需的相应软件包。
- 要验证连接是否正常工作,请打开 Flight Stand 软件,确认“Hardware”下已连接模拟板,并且它具有 ESC 油门输入。
- 在“examples”下,打开 canvas.cyphal 文件夹,然后打开 example_1_main。
- 将代码第 15 行的命令复制并粘贴到控制台中,然后按回车键以安装额外的软件包。

- 选中第 20 - 24 行的环境变量,右键点击并选择“Modify Run Configuration”。
-
在环境变量行中,按 Ctrl A 然后按 Ctrl V 以替换变量。

- 点击“OK”,然后右键点击并选择“Run example 1 Main”。
- 可能会触发错误,因为您需要许可证密钥才能使用此功能 → 只需发送电子邮件至 support@tytorobotics.com请求与您的 Flight Stand 关联的许可证密钥。
- 获得许可证密钥后,打开 Flight Stand 软件,在“Setup”选项卡中点击“License”,输入您的许可证密钥,然后按“Enter”。

- Flight Stand 软件将重新启动,许可证密钥选项卡现在将显示许可证已激活。
- 返回 PyCharm 并点击“Run example 1 Main”。
- 返回 Flight Stand 软件,此时应显示您已连接一个模拟加热器。
- 打开 example_1_plant.py
- 将环境变量复制到运行配置中,然后点击运行。
- 在 Flight Stand 软件中,您现在将在“Manual control”选项卡中看到加热器的输出控制。
- 设置 Yukon 软件,这将允许您与 CAN 总线 Cyphal 设备进行交互。前往 www.github.com/opencyphal/yukon,然后向下滚动到 GitHub releases,点击超链接,然后向下滚动并点击下载 Yukon.exe 文件。
- 打开 Yukon 文件。在此我们将设置 DSDL 命名空间。
- 请注意,Zubax DSDL 文件是专门用于 Zubax Cyphal CAN 设备的,其他制造商可能有不同的 DSDL 文件,您需要导入。
- 点击“Settings”选项卡,然后点击“Add path”,接着点击“Browse”,然后导航到已下载的 Flight Stand API 文件夹。进入“languages” → “python” → “examples” → “canbus_cyphal”,并选择“public_regulated_data_types”。

- 再次点击“Add path”,点击“Browse”,然后导航到同一个子文件夹,但这次选择“zubax_dsdl”文件夹。滚动到页面底部并点击“Save configuration”。
- 关闭并重启 Cyphal 软件。
- 在顶部右侧面板的“UDP interface”字段中,将值 127.0.0.1

- 点击“Start this transport”。
- 如果您收到“Cannot find wcap.dll library”错误消息,您需要从 www.npcap.com 下载 Npcap 软件(免费)。在首页向下滚动到“Downloading and Installing Npcap Free Edition”,点击并下载 Npcap 安装程序,然后完成安装过程。
- 安装完成后,返回 Yukon 并再次点击“Start this transport”。
- 在 PyCharm 中,确保您只运行了 example_1_plant,然后,在 Yukon 中,右键点击 2346 旁边的行。点击“Subscribe to 2346”,然后在弹出窗口中再次点击“Subscribe”。这将允许您在 Flight Stand 软件中实时查看模拟温度。

- 对第 2347 行也进行同样的操作,但点击“Publish to 2347”和“Add number field”。选择“volt”,并在最后一个文本框中输入“5”,将电压设置为 5 V。
- 点击启用,您将看到上方的窗口中开尔文温度测量值开始缓慢增加。

- 在 PyCharm 中终止之前的两个示例,并打开 example_3
- 将您的 ESC 连接到您的计算机。对于 Zubax ESC,用一根 USB 电缆为 ESC 供电,另一根 USB 电缆连接 Babel 设备。
- 打开 Yukon 并确保硬件已正确设置。前往“Settings”,确保所有必需的 DSDL 文件都已存在,例如 Zubax DSDL。
- 在右侧面板中,导航到“CAN”和“SL/CAN”,确保我们使用的是 COM3,然后点击“Start this transport”。
- 向下滚动到未分配端口表,并将字段链接到相应的端口:
- 在“zubax.physics.dynamics”旁边输入“100”。
- 在“zubax.physics.electronics”旁边输入“101”。
- 在“setpoint_rat_torque”旁边输入“111”。
- 点击左侧面板中的“Restart”来重启连接。
- 在“Monitor”选项卡中,右键点击“power”箭头并选择“Subscribe to 101”,然后右键点击“dynamics”箭头并选择“Subscribe to 100”。在两个弹出窗口中再次点击“Subscribe”。
- 右键点击“setpoint_rat_torque”并选择“Publish to 111”。在“Publisher”窗口中,点击“Add number field”,然后选择“value (0)”,接着在最右侧的文本框中输入 0.05 作为扭矩(单位:Nm)。
- 点击“Enable”,ESC 将使电机旋转。如果电机上有负载,它将把速度限制在与 0.05 Nm 相关的 RPM。

- 打开 example_3_telega_ESC.py,并将第 44 行的端口更改为 COM3,因为这是 ESC 连接的端口。

- 通过将运行变量复制并粘贴到配置中来设置运行环境(右键点击 → “Modify Run Configuration” → 在环境变量行中,按 Ctrl A 然后按 Ctrl V 以替换变量 → Apply)。
- 确保 Flight Stand 软件已打开,然后右键点击并选择“Run example_3_telega_ESC.py”。
- 如果“Zubax ESC”出现在 Flight Stand 软件的“Hardware”下,那么您已成功完成连接。

- 在“Powertrain Mappings”选项卡下,确保 CAN /Zubax ESC 已正确映射。
- 在“Manual Control”选项卡中激活 ESC 以测试连接。
8. 远程控制软件
远程控制软件有许多用途,例如使用 Python API 在不同操作系统上使用,或提高用户安全性。本节介绍了如何使用同一网络上的两台计算机设置远程连接:一台通过 USB 连接到您 Flight Stand 的同步中心,第二台将用于远程连接。
请注意,此功能具有一些安全影响:网络中的任何人都可以让您的螺旋桨旋转,因此请确保与团队保持良好沟通,确保您完全控制该环境,并确保您处于私有网络中。
视频教程: https://youtu.be/kfvCMsBG8mg
步骤:
- 确保 Flight Stand 软件已关闭,然后右键点击软件的快捷方式。
- 点击“Properties”,然后找到“Target”字段,并在行末添加命令行参数“ --remote”。
- 如果您收到提示名称无效的错误消息,请确保在 "--remote" 前添加一个空格。
- 打开软件时,会显示一条警告消息,提醒您正在接受远程连接,因为这具有一些安全影响。

- 在同一台计算机上,找到计算机的 IP 地址。您可以在命令提示符中输入命令“ipconfig”来获取。

- 在第二台计算机上,找到 Flight Stand 软件的快捷方式,然后右键点击它。
- 点击“Properties”,然后找到“Target”字段,并在行末添加命令行参数“--target=192.168.86.57:50051”,冒号前的数字为第一台计算机的 IP 地址。
- 启动软件时,您将看到相同的警告消息。
- 要测试您的连接,前往“Manual Control”选项卡,激活 ESC 并尝试增加油门。您的第一台计算机和 Flight Stand 应该会镜像您的操作。