FlightGear软件的IO系统
flightgear
基本架构,架构分析的前提是编译flightgear在flightgear内部,命令行参数分为6种类型:BOOL、String、Double、Int、Channel、Func其中Bool、String、Double、Int都是直接对相应的属性(可以理解为内部的变量)进行赋值;如:--airport=ZSSS 初始化时设置机场ICAO为ZSSS(上海虹桥)Func类型则是在初始化阶段直接调用内部函数进行处理。
如:--random-wind 初始化时调用fgOptRandomWind,设置随即风不过有些Func类型的参数是需要输入参数的,如:--func_key=func_argvChannel类型参数主要用于外部接口通信,一般都可以复用(如:在命令行中可以有多个--native-fdm=xxx)这种类型的参数有大家熟知的--native-fdm、--generic、--atlas等具体的源码解析流程见图flightgear网络接口模块是有FGIO子系统来完成的。
FGIO子系统支持各种通信协议。
通信协议包括大家常用的:Native-fdm,Native,generic,jsclient等(也即前篇介绍的channel 类型参数)对应的参数形式:--protocol=medium,direction,hz,medium_options,...在flightgear架构分析中提到了,对于子系统,flightgear在初始化阶段调用子系统的bind(),init(),主循环阶段调用子系统的update(),最后调用子系统的shutdown。
因此对于FGIO子系统,在程序中也主要体现在bind、init、update和shutdown这几个函数的处理上。
关于FGIO的结构如下图通信协议的具体实现在FGIO的FGProtocol列表中,FGIO在每个周期都会调用每个FGProtocol 的处理函数,关于FGProtocol的结构如下图下面具体对generic通信进行介绍,generic是通过FGGeneric(FGProtocol子类)来完成的,结构如图所示Flightgear多人飞行对应的参数是multiplay。
FlightGear帮助手册第一部分
•小手册 /Docs/InstallGuide/FGShortRef.html, •其他文档 /FlightGear/Docs. • flightgear 维基百科 , 最后:
一般大家都不太喜欢阅读这些帮助手册,如果您确信您的显卡支持 OpenGL 以及操作系统是以下中的一个
The FlightGear Manual version 1.9.0 December 20, 2008
For FlightGear version 1.9.0
序言
FlightGear 是由网络上一些模拟飞行和编程爱好者开发的一款免费和自由
的模拟飞行软件。这本使用手册编写的目的是指导初学者如何使用 FlightGear。
� 所有商业模拟飞行软件都有一个严重的缺点:商业软件都是由一小 队开发人员根据自己定义软件的功能和需求进行开发的,所以只能 提供有限的接口给用户。开发团队也一般不会采用用户提出的软件 改进意见。相反,FlightGear 是一款开源的软件,源代码对于任何人 都是公开和可修改的。
� 商业模拟飞行软件只能在软件功能和特点方面进行折中。商业公司 都希望为用户能提供一个宽广的平台,包括飞行员,开发人员,和 普通游戏用户。在现实中,结果往往由于期限或者资金问题无法做 到。但 FlightGear 是免费和开放的,它没有出版商限定日期,开发周 期也是有我们自己把握的。FlightGear 不是一个科学研究项目,也不 需要考虑软件的市场化需求。
FlightGear 使用手册
作者:Michael Basler, Martin Spott, Stuart Buchanan, Jon Berndt,
Bernhard Buckel, Cameron Moore, Curt Olson, Dave Perry,
FlightGear
同时 . 更 多 的 图像 细 节 就 会 被 加 入 到场 景 当 中 。 视 觉 效 果 都来 自人 工 合 成 的 .它 具 备 足 够 的 信 息去 支 持 人 工 的导 航 行 为 。 压缩 数 据 要求 每平 方 公 里 约 1 千字节。 所 有 的场 景 数 据 库 中包 含 的信 息 被 统一 划 分 为 四个 层 级 ,每 个 层 级 的变 化 规 模 由特定 的 因数 决 定 。 最 小 的视 景 元 素 约 为 1 0 0平 方公 里 。
.
关键词 : 飞行模拟器 ; 飞行 动 态模 块 : Te r r a G e a r
1 模 拟 飞 行 器
F l i g h t G e a r 在 飞行环 境 中仅会 建立 唯一 的空气 动力模 型。 如果 飞 行 动 态 模 块 ( F D M) 拟真程度不高 , 用 户 的 飞行 感 受 将 大 打折 扣 。 比如 自动 驾 驶 或 者 动 态 反 馈 , 即 使 单 独 运 行 时 的 效 果 得再逼 真 , 也可能会 由于 F D M 的问题 , 而 带 给 飞 行 员 完 全 错 误 的 飞行 感 受 。
因此 , F l i g h t G e a r 为 所 有 的代 码 后 面 预 留 了 一 个 面 向 对 象
统( G I S ) 。但 由 于 F l i g h t G e a r 的 核 心 数 据 必 须 不 受 限制 , 因 此 该 项 目默 认 仅 使 用 源 码 而 非 任 何 有 强 制权 限 的衍 生 产 品 。 符合 这 样 条 件 的代 码 有 三类 。
( 3 ) 多 边形 数 据 , 比如 地 形 轮 廓 , 湖泊 , 岛屿 , 池塘 , 市镇 , 冰 J I l , 农 田 和野 生 植 被 可 以从 U S G S或 其 他 源 代 码 获 取 。 G s H HS 数 据库 提 供 了 一 个 高 度 详 尽 和 准 确 的全 球 地 形 数 据 。 从 某 些 渠 道 获 取 源 数 据 限 制 性 很 强 的授 权 . 然 后 通 过 使 用 T e r r a G e a r 工 具 生 成 增 强 后 的 场 景 并 分 发 给 他 人 使 用 的 转 化 行 为值得 F l i g h t G e a r 和T e r r a G e a r 鼓 励 .最 基 本 的 开 放 源 代 码 数
基于FlightGear的直升机飞行模拟系统研究的开题报告
基于FlightGear的直升机飞行模拟系统研究的开题报告一、选题背景直升机是一种具有垂直起降能力的飞行器,它在民用和军事领域都有广泛的应用。
然而,直升机的飞行控制比固定翼飞机更为复杂,需要更高的驾驶技能和更多的训练。
因此,一个好的直升机飞行模拟系统对于飞行员的训练和操作至关重要。
FlightGear是一个免费开源的飞行模拟器,它具有高度可定制性和现实感。
它的开放架构使得使用者能够自由选择和修改飞行器、地形和天气等因素,以及自定义控制台和自动化程序。
这使得FlightGear成为研究航空和航天领域的最佳工具之一。
二、研究内容和目标本研究旨在开发一个基于FlightGear的直升机飞行模拟系统,以提供飞行员训练和操作支持。
具体研究内容包括以下三个方面:1. 直升机飞行动力学模型的建立:该模型将基于直升机的物理特性和控制器的动作,包括气动力学、机动性能、悬停性能、飞行控制等方面的模拟,并考虑各种飞行条件下直升机的稳态和动态响应。
2. 直升机飞行控制系统的设计:根据飞行动力学模型,开发一个合理有效的直升机飞行控制系统,包括自动和手动控制模式,并考虑飞行员的感知和反应能力。
3. 直升机飞行场景的开发:开发逼真的直升机飞行场景,包括起降场地、地形、环境和天气等因素,以提高飞行员对复杂场景的适应能力。
三、研究意义和应用价值该研究的意义在于:1. 提供一种成本低、可重复和可控的直升机飞行训练工具,可以减少直升机训练成本和教员的依赖性;2. 增强飞行员的实战能力和安全意识,提高直升机飞行安全性;3. 对直升机的工程设计和研究提供支持和帮助。
四、研究方法和计划1. 研究方法:该研究采用实验研究法,以FlightGear平台为基础,通过建立直升机飞行动力学模型、设计飞行控制系统和开发飞行场景等方法,提高直升机飞行模拟器的仿真质量和真实感。
2. 研究计划:第一阶段(2021年10月至2022年1月):搜集直升机性能数据和实验数据,建立直升机飞行动力学模型。
Flightgear简介
Flghtgear当前版本3.2.0(程序主要由C++编写)
1、程序组件:
主要使用flightgear和simgear两个模块,现在集中研究simgear的使用2、模拟程序功能
暂时没有具体分清楚对应程序代码,主要需要了解控制系统
3、程序运行流程
飞行数据由循环2产生,循环2由simgear模块实现
4、程序运行经验:
(1)刚装好程序,运行可能会出错,一般是.dll文件版本过时,根据错误报告下载对应dll 文件替换就可以了。
(2)飞机起飞成功关键在于不偏离跑道,达到速度,自行起飞,不用强行提起机头起飞。
否则一般会出现高度不能爬升的问题。
(3)飞机飞行过程中,如果姿态变化太大,飞机容易坠落,飞行数据也会跳变(貌似是一个bug)
5、相关网址
编译经验:/thread-528-1-1.html
中文论坛:/forum.php。
flightgear 2020.3 编译
【飞行模拟软件 FlightGear 2020.3 编译指南】FlightGear 2020.3 是一款开源的飞行模拟软件,其最新版本推出了一系列更新和改进,包括图形效果、机场建模、飞行模型以及多人模式等方面的优化。
然而,有些用户可能遇到了使用二进制发行版时不够满意的问题,因此他们希望自行编译 FlightGear 2020.3 版本。
下面我们将探讨 FlightGear 2020.3 的编译过程,并为您提供一些编译指南。
1. 准备工作在开始编译之前,您需要确保安装了一系列的软件,包括 CMake、Git、gcc/g++ 等开发工具,并且安装了OSG、SimGear、OpenAL、libpng 等相关库。
还需要获取 FlightGear 2020.3 版本的源代码,您可以通过 Git 仓库克隆源代码,或者直接下载源代码压缩包。
2. 配置环境在获取了源代码之后,您需要配置编译环境,包括设置环境变量、配置 CMake、指定编译选项等。
您可以根据自己的系统和需求,进行环境的配置和定制化,以确保编译过程的顺利进行。
3. 开始编译接下来,您可以开始编译 FlightGear 2020.3 的源代码。
在这个过程中,您可能会遇到一些依赖库缺失、编译错误等问题,需要及时解决。
编译成功后,您将获得一个可执行文件,您可以通过执行该文件来启动 FlightGear 2020.3 版本。
4. 测试与调试在编译完成后,您可以对 FlightGear 2020.3 进行测试和调试。
您可以验证新添加的功能、修复的bug 是否生效,以及性能是否得到提升。
对于编译出现的错误或者不完善之处,您还可以进行进一步的修改和改进,并再次编译,直至满意为止。
总结与回顾通过本次编译,您不仅获得了 FlightGear 2020.3 最新版本的可执行文件,还学习到了如何配置编译环境、解决依赖问题,以及验证和调试编译结果的过程。
这将有助于您更深入地理解和掌握 FlightGear 2020.3 的代码结构和编译流程,从而为后续的开发和定制工作打下坚实的基础。
基于FlightGear的无人直升机飞行仿真技术研究
针对FlightGear在直升机飞行模拟中的问题,本次演示从以下几个方面进行 研究:
1、FlightGear直升机模型库的建立与完善:整理和归纳各类直升机的气动 模型和结构特点,将其集成到FlightGear中,形成完整的直升机模型库。
2、真实控制逻辑的引入:通过深入分析实际直升机的控制逻辑,将其引入 到FlightGear中,实现更为真实的直升机操控体验。
3、空气动力学效应的模拟:研究并实现更为精确的空气动力学模型,包括 升力、阻力、侧力和扭矩等,提高FlightGear在直升机飞行模拟中的精度。
4、评价体系的建立:通过定义一系列评估指标,对改进后的FlightGear直 升机飞行模拟系统进行性能评估。
4、评价体系的建立:通过定义 一系列评估指标
基于FlightGear的无人直升机飞 行仿真技术研究
目录
01 一、引言
03 三、技术原理
02 二、概述 04 四、实现方法
目录
05 五、应用场景
07 参考内容
06 六、未来展望
一、引言
随着无人机技术的迅速发展,无人直升机在军事、民用等领域的应用越来越 广泛。为了提高无人直升机的性能和使用效果,对其进行飞行仿真成为了一个重 要的研究课题。FlightGear是一款开源的飞行仿真软件,其强大的仿真功能和灵 活的扩展性使得它成为了无人直升机飞行仿真技术的重要工具。
2、虚拟实验:在FlightGear仿真环境中进行无人直升机的各种实验,如风 洞实验、稳定性实验等,以降低实际实验的成本和风险。
3、技术研究:利用FlightGear进行无人直升机的技术研究,如飞行控制算 法优化、导航系统设计等。
4、作战模拟:在FlightGear中模拟无人直升机的作战过程,进行作战策略 制定和评估,提高作战效益。
FlightGear帮助手册第一部分
MAC 下 FlightGear 的安装
2
使用
开始运行 FlightGear(所有用户)
3
按键,鼠标,面板等的使用(所有用户)
4
问题处理
一般性问题
其他
我们强烈建议您阅读以下资料,尤其是遇到问题的时候
•当您想得到更多关于 FlightGear 的知识或遇到难以解决的问题时,请查阅
FAQ
/Docs/FlightGear-FAQ.html,
手册内容分为以下三个部分。
Part I: 安装
第一章,介绍 FlightGear 背景知识和运行所需要的系统条件。
第二章,飞行前准备:安装 FlightGear。您将学会怎样安装 FlightGear 主
程序、飞行场景和各种飞机。
Part II: 自由飞行
第三章,起飞:介绍如何运行已经安装好的程序,包括如何输入命令行参数 ,
建议按以下顺序阅读此手册安装安装包的使用主要是windows用户2linuxunix下flightgear的安装2mac下flightgear的安装2使用开始运行flightgear所有用户3按键鼠标面板等的使用所有用户4问题处理一般性问题其他我们强烈建议您阅读以下资料尤其是遇到问题的时候?当您想得到更多关于flightgear的知识或遇到难以解决的问题时请查阅faqdocsflightgearfaqhtml?小手册docsinstallguidefgshortrefhtml?其他文档flightgeardocs
您可能玩过微软模拟飞行或者别的商业模拟飞行软件,一般来说,这些 软件的价格在 50 美金左右,购买这些软件并不需要花费太多,但是运行这 些软件所需要的 PC 硬件估计在 1500 美金左右。
基于FlightGear的空中交通预警和防撞系统仿真与验证
s peci al s t ud y
… … 一 一
猫
<a l t >1 2 0 0 0 . O < / a l t >
< k t a s >3 6 0 < / k t a s >
< / wp t >
一
us e r 2 .一 一 mu l t i p l a y = o u t , 1 0 , 1 9 2 . 1 6 8 . 2 . 2 , 3 5 01- 一 mu l t i p l a y
网 ,通 过人 工操 作 或 自动 飞 行模 式 ,开 展T C AS 产 品 的试
飞仿 真 。
F l i g h t G e a r 软 件 支 持 多用 户 局 域 网 和 互 联 网 的飞 行 模 拟 。对 于 局域 网 的设置 ,可采 用 以下方 式 设置 参 数 ( 两 个 用户 飞行参 数 设置 实例 ):
u s e r l :一 一 r n u l t i p l a y = o u t , 1 0 , 1 9 2 . 1 6 8 . 2 . 3 , 3 5 o o一 一 mu l t i p l a y
=
i n , 1 0 , 1 9 2 . 1 6 8 . 2 . 2 , 3 5 01- - c a l l s i g n = p l a y e r 1
=
i n ; 1 0 , 1 9 2 . 1 6 8 . 2 . 3 , 3 5 0 0 一c a l l s i g n =p l a y e r 2
设置 完成 后 ,可 以进行 人 工操 作试 飞 ,也 可 以采 用第 步 的 自动飞 行试 飞 。
< wp t > < n a me > EOF< / n a me > < / wp t >
FlightGear帮助手册第二部分
开启程序初始化画面显示。 � --disable-intro-music
关闭程序启动声音。 � --enable-intro-music
开启程序启动声音。 � --disable-mouse-pointer
� --FlightGear-scenery=path 指定 FlightGear 场景地形文件路径,当场景地形文件的路径不在默认的 $FlightGear ROOT/Scenery 下时,你可以用它来设置场景路径。
� --disable-game-mode 取消全屏显示。
� --enable-game-mode 全屏显示
3.2 Unix/Linux 下如何运行程序
图3:起飞前准备: San Francisco默认起飞位置, KSFO.
运行 FlightGear 之前,需要设置程序所需的环境变量。 � 首先添加/usr/local/share/FlightGear/lib 到 LD_LIBRARY_PATH � 添加 FlightGear_ROOT,例如:/usr/local/share/FlightGear/data. � 添加 FlightGear_SCENERY,由一系列的文件目录路径组成,文件目录路径之
3.3 Windows 下如何运行程序
安装好 FlightGear 后,只需在 Windows 环境下通过图标快捷方式就能够开 启 Flightgear(点击开始菜单中的启动项或桌面上双击 FlightGear 启动图标即 可,此时运行的并不是 Flightgear 主程序,而是一个向导程序,通过此向导程 序可以设置程序运行参数,最后调用 Flightgear 主程序)。通过向导程序可以 实现以下功能: � 选择飞机机型 � 起飞初始机场和跑道 � 起飞时间 � 天气状况 � 其它的环境设置
flightgear使用帮助
如果想选择飞机或者机场可以加入参数--airport=KSFO --aircraft=777 Flightgear 程序的参数很多,可以选择飞机类型,机场,环境等,具体参数配置可以参考帮助手 册。 一般在 windows 操作系统下,我们是以有图形化界面的向导程序来运行 flightgear 的。 直接双击 fgrun.exe 出现如下界面
i/I 最小化/最大化仪表板 h/H 打开关闭 HUD/改变 HUD 的颜色 x/X c 开关仪表板鼠标操作指示标记
z/Z 改变能见度(好/坏) F8 开关雾特效
F10 显示/隐藏菜单栏 自动驾驶及相关控制
Ctril + A 高度保持开关
Ctril + G 下滑角跟随开关
然后,执行放襟翼,推油门,滑跑,拉杆起飞等动作,开始飞行之旅。具体如何飞 行我就不介绍了。网上也许多飞行教程,例如:中国飞行模拟组织( ) 的 官 方 网 站 即 提 供 许 多 有 用 的 信 息 可 供 下 载 。 下 面 给 出 FlightGear 键盘操纵飞机的常用操作说明(见表 1),也可以在 FlightGear 的“Help” 菜单中的“Basic Keys”和“Commnon Aircraft Keys”选项里获取部分按键说明。 表 1 常用操作 按键 说明 操纵面(在数字键盘上,控制航向、滚转和俯仰等,必须激活数字锁定)
是不是有了以上的键盘操作表就可以玩好飞行模拟了呢?显然是不行的。飞行模拟 游戏决不等同于“F-22”等空战模拟游戏,除了娴熟的(键盘、游戏杆和鼠标)操作
基于FlightGear的客机飞行模拟软件设计
航空航天科学技术科技创新导报 Science and Technology Innovation Herald10DOI:10.16660/ki.1674-098X.2018.15.010基于FlightGear的客机飞行模拟软件设计①侯学智(北京首都国际机场北京飞机维修工程有限公司 北京 100621)摘 要:基于FlightGear的飞行仿真模型,设计了适用于客机飞行模拟器的软件。
软件核心为采用FlightGear实现的飞行仿真软件,同时为用户开发了丰富的图形化接口软件:导航台编辑软件、航路编辑软件及动力学编辑软件。
基于以上设计,用户可开展对客机驾驶舱仪表、导航台数据库、航路及动力学的设计。
该飞行模拟器软件开放性及图化性程度高,能够满足教学、科研及实验需求。
关键词:飞行模拟 飞行仿真 导航台 航路中图分类号:TP391.9 文献标识码:A 文章编号:1674-098X(2018)05(c)-0010-02①作者简介:侯学智(1980—),男,汉族,山西人,硕士,中级工程师,主要从事科技项目管理。
近年来,一方面是中国民航进入持续成长期,运量持续增长,运营飞机大量投入;另一方面是狭窄的空域、有限的民航航线时刻资源,使得机场拥挤和堵塞现象更加突出,民航飞行正越来越多地受到空管系统的影响。
因此,客机飞行模拟不仅要模拟客机本身的飞行特性,更要能提供对导航台和航路的编辑接口。
本文提出的客机飞行模拟软件对以上功能均进行了详细的阐述。
1 系统总体设计客机飞行模拟器软件主要由飞行仿真软件、导航台编辑软件、航路编辑软件及动力学编辑软件组成。
其中,飞行仿真软件是飞行模拟软件的核心,用于仿真飞行逻辑,显示飞机驾驶舱仪表等,导航台编辑软件、航路编辑软件及动力学编辑软件用于对导航台、航路及动力学系数等飞行参数进行编辑。
2 分系统设计2.1 飞行仿真软件飞行仿真软件采用FlightGear实现。
它可以提供完整的飞机仿真框架,允许用户添加自己的各种模拟功能和模型。
基于FlightGear飞行仿真软件数据的采集与处理
基于Flight Gear飞行仿真软件数据的采集与处理王立波,张复春,高文琦,易龙龙【摘要】摘要:介绍了FlightGear飞行模拟软件的总体结构、各模块之间的关系和运行流程。
通过Flight Gear启动时载入预先设置好的XML配置文档,实现了对模拟飞行数据的读取和保存,并建立数据评价模块对采集的数据进行处理,按照一定规则计算出模拟飞行的成绩。
通过采集到的飞行数据计算出的飞行成绩,可以帮组辅助评估飞行模拟训练的质量和飞行考核,具有实用价值。
【期刊名称】电子设计工程【年(卷),期】2011(019)024【总页数】5【关键词】Flight Gear;飞行仿真;评估模型;数据采集军事模拟飞行训练是当今世界空军提高飞行训练效果的一种必然趋势。
所谓军事模拟训练,是在由模拟训练器/系统实现模拟作战环境、作战过程和武器装备的作战效应下,所进行的严格军事训练或军事作战演习或战法研究演练的全过程[1]。
FlightGear是一个开源的飞行模拟软件,由Curt Olson开发设计并发布到互联网供大家学习使用[2]。
大多数商业用的飞行模拟器收费都很高,Curt Olson开发FlightGear的目的正是为发展价格低廉但功能强大的飞行模拟器,建立一个先进的飞行模拟框架用于学术研究,免费提供给用户使用。
FlightGear的源代码对于任何人都是公开和可修改的,在二次开发方面做的非常友好,不需改动代码重新编译就可以满足大部分开发上的需要,大大降低非开发工作的额外开销。
所以可以根据自己的需求做进一步开发,这样既能利用FlightGear自身的强大功能,又可以满足个性化需要。
FlightGear以其强大的功能和开放式源代码的优势得到越来越多的客户和游戏爱好者的青睐,也逐渐成为科学研究的首选模拟仿真软件。
1 FlightGear飞行模拟软件总体结构FlightGear是一款大型的功能强大飞行模拟软件,其中集成了许多轻量级开源软件。
flightgear su-37教程
flightgear su-37教程
1、安装完FlightGear在\FlightGearv1.9.1\bin\Win32目录下能发现很多可执行文件,其中fgrun.exe为向导程序fgfs.exe 为FlightGear主程序。
直接双击fgfs.exe或者在命令行下输入fgfs.exe是无法正常运行程序的程序会提示版本检测失败。
2、如下我们必须给输入参数才能正常运行程序一般只要指定资源文件目录就能运行程序了在命令行下输入fgfs.exe--fg-root="d:\ProgramFiles\FlightGearv1.9\data"就能正常运行flightgear了。
3、如果想选择飞机或者机场可以加入参数--airport=KSFO--aircraft=777
4、FlightGear程序的参数很多可以选择飞机类型机场
环境等具体参数配置可以参考帮助手册。
5、一般在windows操作系统下,我们是以向导程序来运行FlightGear的。
6、直接双击fgrun.exe出现
7、点击Prev按钮
8、Executive FlightGear主程序路径
9、FG_ROOT资源路径
10、FG_SCENRY场景地形路径
11、设置好这些路径点击NEXT到如下选择飞机界面
12、在此可选择飞机机型并能预览飞机。
点击NEXT到机场选
择界面。
基于FlightGear的无线电高度表动态试验环境
DOI:10.16660/ki.1674-098X.2006-5051-5530基于FlightGear的无线电高度表动态试验环境李震华 陈志雄 朱晓飞(上海飞机设计研究院试验验证中心 上海 201210)摘 要:依据飞机无线电高度表功能验证的需要,本文利用FlightGear平台资源和ALT-8000组成了无线电高度表系统动态试验环境,可以模拟飞机起降过程,完成基于飞机运行场景的无线电高度表功能验证。
FlightGear 提供了飞机模型及飞机环境模型,搭建无线电高度表的外部仿真环境,ALT-8000提供了无线电高度表的动态激励信号,整个动态试验环境可以完成基于场景的无线电高度表性能、指标测试。
关键词:无线电高度表 场景验证 系统集成验证 试验环境中图分类号:V279 文献标识码:A 文章编号:1674-098X(2020)09(b)-0017-04 Dynamic Test Environment of Radio Altimeter Based onFlightGearLI Zhenhua CHEN Zhixiong ZHU Xiaofei(Test and Evaluation Center, Shanghai Aircraft Design & Research Institute, Shanghai, 201210 China) Abstract: According to the requirements of verifying the functions of aircraft radio altimeter, this paper formed the dynamic test environment of radio altimeter system with resources from FlightGear platform and ALT-8000, which can simulate the taking off and landing process of aircraft, and complete the verification of functions of radio altimeter based on scene and aircraft radio altitude scene. FlightGear Provided models of the aircraft and the environment outside the aircraft, for building external simulation environment of radio altimeter.ALT-8000 provide dynamic excitation signal for the radio altimeter. The whole dynamic test environment can complete the dynamic verification of radio altimeter performance based on the scene.Key Word: Radio altimeter; Scene verify;System integrated verify;Test environment无线电高度表是飞机上必不可少的导航设备,用于测量飞机距离地面(海面)的真实高度,一般由发射天线、接收天线、收发机和指示器组成。
FlightGear软件的IO系统
1. FGFS 的IO系统∙FGFS是一个做研究的非常优秀的系统,飞行,气动,控制等,做这些免不了要和FG进行数据交换,本文主要说说FG的IO系统,包括FG的IO架构,支持的IO协议,及与FG的通信。
1.1. FG的IO系统架构∙FG支持许多IO协议,这些协议均由一个simgear的SGSubsystem模块形式实现的FGIO子系统来进行管理。
这些协议在功能和作为可能有相同的以可能不同,并且这些模块可以同时启动。
在一个FG运行实例中可以同时使用多种协议与其进行通信。
FG支持的协议有generic,garmin,joyclient,jsclient,native-ctrls,native-fdm,native-gui,native,nmea等等,详细的列表参见fgfs的手册。
1.2. IO架构∙每个协议模块都是一个FGProtocal的子类,实现了相应的操作接口。
主程序先根据命令行的参数确定要启用哪些IO协议,然后创建对应的io协议的实例,并以指定的参数初始化。
主程序起动后,使用Options对像来处理命令行参数,所有支持的参数在options.cxx:struct OptionDesc结构中定义,该结构还定义的参数的类型,类型是OPTION_CHANNEL的都是IO子系统的。
通过在Options::init() ->parseOption()->addOption()将参数以参数名、参数值创建一个OptionValue对像实例,保存到一个vector中。
然后主程序调用Options::processOptions() -> Optons:ptionsPrivate::processOption()来处理每个参数。
如果参数类型为OPTION_CHANNEL,就将其添加到全局的FGGlobals::channel_options_list中,至此参数处理完成。
主程序在fg_init.cxx:fgInitSubssytems()中加载各个子系统,其中就包括FGIO子系统,最后调用globals.get_subsystem_mgr().init()初始化所有注册的子系统,对于IO子系统来说,前面已经将从参数指定的要启动的IO协议保存到了列表中,在FGIO::init()中遍历已经从命令行分析到的要使用的IO协议的信息,根据参数指定的协议创建相应的IO协议的实例,见FGIO::parse_port_config()函数. 每种协议参数配置不尽相同,后面在说.∙FGProtocal主类定义一操作框架的接口,及几个主要的属性,hz: 数据更新/发送的频率;dir:数据的方向,指定FG是发送还是接收都, in 表示接收,out表示是发送;io:数据收发通道,根据协议不同,通道可以是串口,socket, 文件等,这些属性在FGIO::parse_port_config()的后半部分中设置的。
基于FlightGear的四旋翼无人机半实物仿真系统
图2编辑器JSBSimCommander 界面为提高无人机系统的开发效率,本文设计并开发了一种四旋翼无人机半实物仿真系统,系统实现了仿真软件和机载控制器实物的无缝数据交换功能,可以通过修改控制器程序快捷地进行各种飞行控制算法测试和分析,并且具备较逼真的可视化仿真功能。
1半实物仿真系统总体结构1.1FlightGear 介绍FlightGear 是一款著名的跨平台开源飞行模拟软件,不仅以其强大真实的飞行仿真功能吸引了众多的飞行模拟爱好者,而且其具有开放式的程序构架和预留的外部数据输入/输出接口,因此赢得了专业用户的青睐,成为众多科研机构的飞行仿真可视化引擎。
Wales 大学则在飞控系统仿真中,利用Flightgear 软件实现了可化仿真环境;Illinois 大学将其用于飞行器飞行结冰过程的仿真可视化研究。
1.2仿真系统架构半实物仿真系统主要由无人机仿真模型、飞行控制器和视景仿真显示等部分组成。
按照模块化思路对系统的各部分进行设计,总体结构如图1所示。
图1无人机飞行仿真系统结构在该结构中,无人机的运动仿真由两部分实现:一是利用JSBsim 和AC3D 建立四旋翼无人机的仿真模型;二是利用FlightGear 和通信显示程序实现系统。
其中飞行控制器根据飞行器航姿和地面站控制指令输出相关计算结果通过通信网络传送到视景显示程序,从而驱动仿真模型实现动态视景飞行显示。
系统中飞行控制部分采用真实的四旋翼无人机控制器来实现,通过修改控制器代码改变传感器数据来源和屏蔽电机输出,同时保留飞行控制部分程序不变,从而通过与仿真模型的交互真实反映出无人机的实际程序控制和参数调整效果。
视景显示部分则通过流行的飞行模拟软件FlightGear 来实现,由于采用UDP 网络协议,能够满足大规模数据传送的实时性。
2半实物仿真系统的实现2.1飞行动力学模型的构建飞行动力学模型(FDM )是由一组计算飞机物理学特性的方程联合起来,通过输入输出参数计算,从而控制飞机运作的物理模型,比如下降、启动、前行和后退等不同动作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. FGFS 的IO系统∙FGFS是一个做研究的非常优秀的系统,飞行,气动,控制等,做这些免不了要和FG进行数据交换,本文主要说说FG的IO系统,包括FG的IO架构,支持的IO协议,及与FG的通信。
1.1. FG的IO系统架构∙FG支持许多IO协议,这些协议均由一个simgear的SGSubsystem模块形式实现的FGIO子系统来进行管理。
这些协议在功能和作为可能有相同的以可能不同,并且这些模块可以同时启动。
在一个FG运行实例中可以同时使用多种协议与其进行通信。
FG支持的协议有generic,garmin,joyclient,jsclient,native-ctrls,native-fdm,native-gui,native,nmea等等,详细的列表参见fgfs的手册。
1.2. IO架构∙每个协议模块都是一个FGProtocal的子类,实现了相应的操作接口。
主程序先根据命令行的参数确定要启用哪些IO协议,然后创建对应的io协议的实例,并以指定的参数初始化。
主程序起动后,使用Options对像来处理命令行参数,所有支持的参数在options.cxx:struct OptionDesc结构中定义,该结构还定义的参数的类型,类型是OPTION_CHANNEL的都是IO子系统的。
通过在Options::init() ->parseOption()->addOption()将参数以参数名、参数值创建一个OptionValue对像实例,保存到一个vector中。
然后主程序调用Options::processOptions() -> Optons:ptionsPrivate::processOption()来处理每个参数。
如果参数类型为OPTION_CHANNEL,就将其添加到全局的FGGlobals::channel_options_list中,至此参数处理完成。
主程序在fg_init.cxx:fgInitSubssytems()中加载各个子系统,其中就包括FGIO子系统,最后调用globals.get_subsystem_mgr().init()初始化所有注册的子系统,对于IO子系统来说,前面已经将从参数指定的要启动的IO协议保存到了列表中,在FGIO::init()中遍历已经从命令行分析到的要使用的IO协议的信息,根据参数指定的协议创建相应的IO协议的实例,见FGIO::parse_port_config()函数. 每种协议参数配置不尽相同,后面在说.∙FGProtocal主类定义一操作框架的接口,及几个主要的属性,hz: 数据更新/发送的频率;dir:数据的方向,指定FG是发送还是接收都, in 表示接收,out表示是发送;io:数据收发通道,根据协议不同,通道可以是串口,socket, 文件等,这些属性在FGIO::parse_port_config()的后半部分中设置的。
初始化完成后,就进入工作准备,当主系统调用FGIO::update()时,IO子系统遍历已经注册的协议,分别调用每个协议的update()函数。
FG启动时设置IO系统的参数一般如下面的格式:∙--protocol=medium,direction,hz,medium_options,...∙protocol = 指定的协议名,如native, nmea, garmin, fgfs, rul, pve, ray等∙medium = IO使用的媒体,可以是serial, socket, file,有些协议不需要指定该参数,如httpd,就只有一个设定端口的参数。
∙direction = 数据方向,如in, out,有些协议只支持输入或输出∙hz = 数据更新的频率,单位秒,可以使用浮点数∙medium_options为与选择的IO像媒体相关的选项,如串口(serial)就需要指定串口的名字和波特率。
以上这些参数,不是所有的都需要,是根据使用的媒体需定和协议而定的。
1.3. IO协议介绍∙本节简单介绍一下一些主机IO协议的使用方式,只选了几个比较典型和我知道是什么的来介绍,有些协议我以不知道具体的情况,就不说了,有了解的同学请补充。
下面的协议名已options.cxx中的struct OptionDesc结构中的定义为准,至于标准名是什么不于追究。
使用这些协议与FG进行通信,先对SimGear的属性系统及FlightGear的各种属性有所了解,就很容易使用了,当然有些协议不需要,如joyclient 1.3.1. atcsim∙这个好像需要ATC硬件支持,没法玩,以没玩过。
1.3.2. atlas∙atlas是一个用于显示飞行地图的程序。
1.3.3. httpd∙指定了httpd 选项后,FG在运行时会在指定的端口创建一个http服务器,这样就可以有http协议访问FG的各种数据,可以使用浏览器打开http://localhost:port来打开FG的属性查看页面,并且还可以直接修改其中的一些属性。
具体的属性的意义参考SimGear的手册。
1.3.4. jpg-httpd∙指定jpg-httpd选项后,FG在运行时会在指定的端口创建一个简单的http服务器,当访问一个端口时,FG会返回一张当前FG运行的屏幕的截图。
用浏览器访问就能看到截图。
1.3.5. native∙Native以是一个二进行协议,不过和前面几个不同的时,数据来由于FG运行时的全局FGInterface类对象evil_global_fdm_state,在flight.hxx文件中定义FDM(Flight Dynamics Model)中的各种数据。
这些数据可能更多的是用来调试FG用,如果只是想和FG进行通信,操作飞行器,建议使用其它的一些协议,更方便使用。
1.3.6. native-ctrls∙Native-ctrls是一个二进制数据协议,是FG自己定义的,协议的格式在net_ctrls.hxx 文件中的FGNetCtrls类定义的数据结构体,数据元素比较多,我就不一一说明了,基本上飞行器飞行相关的数据都有了,使用这个协议可以读取或控制FG中飞行器的各种功能了,如操控的,导航的等等。
1.3.7. native-fdm∙Native-FDM的使用方式和Native-ctrls是一样的,只是通信的数据格式有些不同,FDM的数据格式在net_fdm.hxx中的FGNetFDM结构体中定义,结构定的各字段参看源文件中的定义和说明.1.3.8. native-gui∙Native-GUI协议也是和Native-ctrls差不多的,只是数据格式和含义有所不同,Native-GUI的数据格式在net-gui.hxx中的FGNetGUI结构体中定义的,结构定的各字段参看源文件中的定义和说明.1.3.9. opengc∙数据结构在opengc_data.hxx中的ogcFGData结构中定义的。
OpenGC是一个多平台,多模拟器的用于开发高质量玻璃驾驶舱显示器的工具。
opengc参数用于指定输出或接收符合OpenGC的数据。
1.3.10. garmin∙使用Garmin协议格式数据,可以用于记录飞行器的GPS位置信息或向提供外部GPS 位置信息给FG使用。
协议格式可参考相关文档。
∙记录飞行GPS数据使用参数:--garmin=file,out,5, recordfile或可以使用GPS数据控制FG中的飞行器:--garmin=file,in,5,recordfile1.3.11. nmea∙使用nmea协议格式的GPS数据,可以用于记录飞行器的GPS位置信息或向提供外部GPS位置信息给FG使用。
协议格式可参考相关文档。
1.3.12. generic∙Generic是一个基于XML的协议,XML的具体格式见README.protocol文档,该协议格式一般用于记录和回放FGFS的飞机。
如要记录飞机过程,可以指定参数:--generic=file,out,20,recordfile,playback。
要回放飞行记录,可以使用参数:--generic=file,in,20,recordfile,playback --fdm=external。
1.3.13. props∙指定该参数,FG会在指定的端口创建一个telnet服务器. 使用telnet连接上后,可使用help查看帮助,FG的各种属性就可以向一个文件系统一个操作,可以使用ls列出属性,get/set读/修改属性值。
1.3.14. telnet∙同props协议1.3.15. pve∙PVE协议以字符串的形式输出roll,pitch,heave的值,roll,pitch为角度值。
可以用于模拟机坐舱控制等的数据。
1.3.16. joyclient∙能可以使用远程数据当驾驶杆,只支持两个轴,分别控制飞行器的升降舵和副翼。
可以通过Socket或者串口,向FG发送数据,数据的格式为两个32位整数,第一个为X轴的位置,第二个数为Y轴的位置,分别取值为0-4096, 为2048为中点,小于2048表示向下偏转对应摇杆的负方向,大于2048表示向上偏转对应摇杆的正值。
1.3.17. jsclient∙这个功能和joyclient差不多,只是支持的轴有4个,并且这4个轴所控制的功能不是固定的,是根据系统中配置的摇杆的前4个轴对应的功能,数据格式为6个32位整数,前4个数对应前4个轴,后两个数现在没有使用。
取值为正负0x7FFFFFFF之间。
1.3.18. multiplay使用格式为--multiplay=dir,Hz,host,port, --callsign=ABCD,多人联机飞行的连接配置,dir 设为in,表示FG作为服务器运行,其他飞友连接到你们电脑一起飞行,这需要其他人能直接访问到你的IP。
Hz为数据更新频率,越大数据更新快,但以需要更大的带宽。
host和port,如果是服务端,指定在那个地址和端口进行监听,以接受其它人的连接,如果作为客户,指定服务器的地址和端口号。
callsign为你的呼号,在一个服务器上的飞机的呼号不能重复。
1.4. 使用实例1.4.1. 多机同步显示●主机设置--native-fdm=socket,out,60,,5505,udp --native-ctrls=socket,out,60,,5506,udp●其它从机设置--native-fdm=socket,in,60,,5505,udp --native-ctrls=socket,in,60,,5506,udp --fdm=null1.4.2. 连机飞行∙连接到进行联机飞机,呼号为fg0001--multiplay=out,10,,5000 --callsign=fg00011.4.3. 记录和回放∙记录-generic=file,out,20,flight.out,playback∙回放--generic=file,in,20,flight.out,playback --fdm=external1.4.4. 串口摇杆∙设置FG从串口com1(linux使用ttyS0), 以波特率9600的速率,接收joyclient协议的数据.--joyclient=serial,in,30,com1,96001.4.5. 启动http服务--httpd=5501。