FlightGear编译指南
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文件配置

flightgear文件配置FG的汉化分下面几个部分。
其实就是对plib的汉化。
(一)首先把XML文件转为UTF-8编码格式,注意是不要BOM 的UTF-8,Editplus软件可以完成这项功能。
因为如果直接改为中文的话,中文是多字节的,有可能会导致XML解析时碰到特殊字符出错,UTF-8格式就没有问题。
至于什么是UTF-8,以及UTF-8,UNICODE,ASCII,国标码之间的关系请百度一下,这些都是基本知识,下面的程序要用。
(二)FG的菜单使用的是plib中的fnt点阵字体,不过,由于在程序中内置了英文的显示方式,不适合中文,所以要想办法加载汉字库,网上有现成的HZK16,是宋体的。
还有一个软件可以自定义字体,字号然后输出点阵字体。
修改fnt的点阵字体模块,读取汉字,注意读出的是UTF-8,要转换为ASCII才能用,然后根据汉字编码查询汉字库文件,读出点阵信息,记住要上下翻转一下,就是把字上下颠倒,第一行在最下面。
替换原英文的buff就可以显示汉字。
(三)FG中的操作提示,如tutorials中的操作提示,ATC的语音,就是在屏幕中间显示的一句话,可以用鼠标拖动的,还有程序中的对话框,控件中的字也是用点阵方式实现的,有的在nas文件中实现,那么nas文件也要改为UTF-8编码方式。
划,加载飞机等等的英文提示是用osgtext实现的,osgtext原生支持宽字节编码,就是UNICODE编码,只要修改一下输出函数就可以了,并且可以使用ttf字体,效果非常好。
(五)最难的就是纹理字体,比如在HUD上显示汉字,在面板上显示汉字就要用到plib中的纹理字体,plib的纹理字体是txf格式的,说白了就是一张图片,上面画好了各种字母数字符号等,然后抠出部分图片作为纹理贴到面板上显示。
但汉字显然是不能这么做的,因为汉字太多了,无法预做成纹理图片。
不过可以使用FreeType来动态生成纹理贴图,这部分可以参考ttf2txf程序的代码,这个程序是利用freetype生成txf字库的程序,我们不生成txf文件,而是把汉字直接渲染到buffer中,然后把buffer显示出来就可以了。
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,
FlightGear2016.4.1+VS2015编译指南

FlightGear2016.4.1+VS2015编译指南前言:本人之前也看了许多网上的教程,但编译一直出现各种问题(和操作系统位数,第三方库文件版本,VS版本,FlightGear版本都有一定的关系),花了两个星期终于编译成功了。
因此整理了教程,希望能对大家有所帮助。
一、编译前准备工作1、Cmake下载安装:上cmake官网https:///download/下载CMAkE并安装,我用的版本是cmake3.6.32、OSG二进制文件下载:(自己编译也可以,但是耗时不说,还容易出现不兼容的问题),可以从官方的编译教程里面下载/Building_using_CMake_-_Windows,如下图所示:3、第三方库3rdParty及Boost下载:一样的也是从官方的编译教程里面下载(注意若要编译64位的程序要下载3rdParty.x64)/Building_using_CMake_-_Windows,如下图所示:4、simgear2016.4.1、flightgear2016.4.1源码和fgdata(程序启动时加载的地形、机场、飞机模型文件等都在这里面)下载:链接https:///projects/flightgear/files/release-2016.4/,下载划线的三项,如下图所示:5、构建编译目录:我在C盘下建立一个根文件夹FlightGear,然后把上面下载的编译所需文件的压缩包都解压到这个文件夹中,并新建两个文件夹:分别重命名为simgear-build和flightgear-build用来存放Cmake生成的可编译文件,如下图所示:(PS:plib和freeglut如果需要的话也可以自己去下载)Intstall文件夹下面再建立文件夹msvc140-64;msvc140-64下面建立文件夹SimGear和FlightGear(用来存放编译后的程序);将下载的OSG二进制文件解压至msvc140-64里面;最后在SimGear文件夹里面新建两个文件夹include和lib。
编译循环安装和激活指南

编译循环安装和激活指南
通常授权如五轴转换或主从功能只需勾选相应的授权进行激活就可以,但有些特殊功能如RDCC(冗余分布式笛卡尔坐标系)属于编译循环(.ELF),除了必须勾选相应的授权,还需要进行其他的操作。
一般购买了相应的编译循环后,西家会提供一个专门的文件夹里面装有编译循环的说明文件,对应的报警文件和最重要的编译循环。
1.首先需要将对应编译循环()拷入到调试-系统数据-NC数据-编译循环目录下
2.激活N26授权(RDCC)
3.重启PO
4.重启完成后通用机床数据会出现60900的新参数,勾选60900[0] $MN_CC_ACTIVE_IN_CHAN_RDCC bit0 ,即1H
5.再次重启后就会在通道机床数据中出现新的6开头的变量了
这样就可以按照相应的功能说明设置参数,激活使用了。
注:
装了编译循环时,备份除标准的MMC/PCLC/NC/补偿外,会多一项编译循环选项,若选择备份,可以用记事本打开查询到CCOEM目录及ELF文件。
故备份的时候须勾选编译循环,保留所有的参数设置,才可用sinutrain完整仿真。
px4 代码编译

px4 代码编译
Px4是一款开源飞控系统,支持多种硬件平台和飞行器类型。
如果你想对px4代码进行编译和调试,可以按照以下步骤进行操作: 1.首先,需要安装好必要的开发环境。
px4代码是基于nuttx和ROS进行开发的,所以需要安装好相应的工具。
具体步骤可以参考官方文档。
2.下载px4代码。
可以从官网或者github上下载最新版本的代码。
3.设置编译环境。
根据自己的需求,可以选择在Linux或者macOS 上进行编译。
需要设置好相应的环境变量和工具链。
4.进行编译。
进入px4代码目录,执行make命令即可开始编译。
编译完成后,会得到相应的固件文件。
5.调试代码。
可以通过GDB等工具进行代码调试,以及使用QGroundControl等软件进行飞行器的调试和测试。
总之,编译px4代码需要一定的技术基础和经验,但是只要掌握了相关的工具和流程,就可以轻松地进行开发和调试。
- 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文件配置
FG的汉化分下面几个部分。
其实就是对plib的汉化。
(一)首先把XML文件转为UTF-8编码格式,注意是不要BOM的UTF-8,Editplus软件可以完成这项功能。
因为如果直接改为中文的话,中文是多字节的,有可能会导致XML解析时碰到特殊字符出错,UTF-8格式就没有问题。
至于什么是UTF-8,以及UTF-8,UNICODE,ASCII,国标码之间的关系请百度一下,这些都是基本知识,下面的程序要用。
(二)FG的菜单使用的是plib中的fnt点阵字体,不过,由于在程序中内置了英文的显示方式,不适合中文,所以要想办法加载汉字库,网上有现成的HZK16,是宋体的。
还有一个软件可以自定义字体,字号然后输出点阵字体。
修改fnt的点阵字体模块,读取汉字,注意读出的是UTF-8,要转换为ASCII才能用,然后根据汉字编码查询汉字库文件,读出点阵信息,记住要上下翻转一下,就是把字上下颠倒,第一行在最下面。
替换原英文的buff就可以显示汉字。
(三)FG中的操作提示,如tutorials中的操作提示,ATC的语音,就是在屏幕中间显示的一句话,可以用鼠标拖动的,还有程序中的对话框,控件中的字也是用点阵方式实现的,有的在nas文件中实现,那么nas文件也要改为UTF-8编码方式。
划,加载飞机等等的英文提示是用osgtext实现的,osgtext原生支持宽字节编码,就是UNICODE编码,只要修改一下输出函数就可以了,并且可以使用ttf字体,效果非常好。
(五)最难的就是纹理字体,比如在HUD上显示汉字,在面板上显示汉字就要用到plib中的纹理字体,plib的纹理字体是txf格式的,说白了就是一张图片,上面画好了各种字母数字符号等,然后抠出部分图片作为纹理贴到面板上显示。
但汉字显然是不能这么做的,因为汉字太多了,无法预做成纹理图片。
不过可以使用FreeType来动态生成纹理贴图,这部分可以参考ttf2txf程序的代码,这个程序是利用freetype生成txf字库的程序,我们不生成txf文件,而是把汉字直接渲染到buffer中,然后把buffer显示出来就可以了。
基于FlightGear_Matlab的运输类飞机飞行仿真实验设计
“飞行动力学与控制”是飞行技术与飞行安全专 业硕士研究生的一门重要专业课。由于该课程内容过 于抽象,学生不易理解。因此,涵盖课程知识点的实 验教学非常重要[1-2]。目前,在飞行技术培训、飞行安 全研究等方面普遍应用了飞行可视化仿真技术。其中 开源飞行模拟软件 FlightGear 预留有外部数据接口, 用户可以方便地进行修改和二次开发,国内外许多高 校和科研机构都在使用 FlightGear[3]。
1 飞行仿真方法
笔者在先期开发的教学实验系统的基础上,应用
收稿日期: 2019-01-11 基金项目: 国家自然科学基金委员会与中国民用航空局联合资助
项目(U1733117);天津市教育科学“十三五”规划课 题 (HE3072) ; 中 央 高 校 基 本 科 研 业 务 费 项 目 (3122014X002) 作者简介: 王岳(1983—),男,天津,在读博士研究生,讲师, 主要研究方向为飞行动力学与控制、飞行技术和飞行 安全. E-mail: qiushnawang@
WANG Yue, WANG Lei, GUO Shiguang
(Flight Technology College, Civil University of China, Tianjin 300300, China)
Abstract: Based on NASA aerodynamic data, the flight simulation model of Boeing 747 aircraft is established and validated, and an example of controllers with adjustable parameters is designed. By using the interface technology of FlightGear and Matlab software, the real-time transmission of simulation data is carried out, and the 3D visualization of flight simulation is realized. The flight simulation experiment is developed according to the requirements of the course. The teaching practice proves that the simulation experiment can promotes the students’ intuitive understanding of the theory and has a higher utilization value. Key words: FlightGear; Matalb; transport aircraft; flight simulation experiment
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 的代码结构和编译流程,从而为后续的开发和定制工作打下坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FlightGear2.8.0 + OSG3.0.1 VS2010编译指南
Jinchengde(jinchengde@)
首先需要下载CMake
下载地址/cmake/resources/software.html
下载Windows版本安装完成后待用,CMake设置编译器为VS10 Native即可
在C盘创建FlightGear和OpenSceneGraph目录
如果想跳过OSG的编译,可以直接从
/osg/downloads/free-openscenegraph-binary-downloads 下载已经编译好的二进制代码,解压至C:\FlightGear\install\msvc100\OpenSceneGraph
关于编译工具,如果只需要编译FG的话,那么VS2010学习版即可,但是编译OSG的时候需要用到MFC的头文件,所以需要VS2010专业版以上。
OSG3.0.1编译
OSG3.0.1的源码可以从/projects/osgcn/wikicn/Downloads.php下载OSG编译需要的第三方库可以从.au/~bchrist/下载
OSG的数据文件可以从
/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenS ceneGraph-Data-3.0.0.zip下载
将OSG的源码,OSG的第三方库和数据文件解压到C:\OpenSceneGraph,创建OpenSceneGraph-Build待用,如下:
打开cmake-gui,设置如下:
勾选Advanced后,
Where is the source code设置为C:/OpenSceneGraph/OpenSceneGraph-3.0.1 Where to build the binaries设置为C:/OpenSceneGraph/OpenSceneGraph-Build ACTUAL_3RDPARTY_DIR 设置为C:/OpenSceneGraph/3rdParty/x86
CMAKE_INSTALL_PREFIX设置为C:/FlightGear/install/msvc100/OpenSceneGraph 勾选BUILD_MFC_EXAMPLE,BUILD_OSG_EXAMPLES
点击Configure
直至Generate可用,点击Generate生成工程文件
打开VS2010,选择文件-打开-项目/解决方案,打开位于
C:\OpenSceneGraph\OpenSceneGraph-Build下面的工程文件OpenSceneGraph.sln 项目打开后如下所示
将解决方案配置修改为Release
按F7生成解决方案,编译时间大概需要2个小时
编译完成后在解决方案资源管理器中找到INSTALL项目,右击选择生成
相关文件将自动被拷贝到C:/FlightGear/install/msvc100/OpenSceneGraph目录下
FlightGear 2.8.0编译
FlightGear的源代码可以从/download/source-code/下载需要下载FligtGear,SimGear和Base Package三个部分
可以从ftp://ftp.ihg.uni-duisburg.de/FlightGear/Win32/MSVC/下载第三方库,包括3rdParty和Boost,目前最新的为fgfs-win32-VS100-3rdParty+OSG-20120411.zip和
boost_1_44_0-libs-vc100.zip
将下载的文件放到C:\FlightGear并解压,同时创建flightgear-build和simgear-build空文件夹,目录设置如下:
${MSVC_3RDPARTY_ROOT} /
3rdParty /
( includes boost, plib, fltk, zlib, libpng, libjpeg, libtiff, freetype, libsvn, gdal, ... )
bin /
include /
lib /
boost_1_44_0 /
(included in the 3rdParty package linked above)
boost /
install /
msvc100 /
( for VS2010 32 bits, or msvc90, msvc90-64 or msvc100-64 for VS2008 32, VS2008 64
and VS2010 64 )
OpenSceneGraph /
( OSG CMake install )
bin /
include /
lib /
SimGear /
(create this empty for now, subfolders will be created by build process)
include /
lib /
FlightGear /
(create this empty for now)
include /
lib /
目录设置如下:
SimGear编译
打开cmake-gui
Where is the source code设置为C:/FlightGear/simgear-2.8.0
Where to build the binaries设置为C:/FlightGear/simgear-build MSVC_3RDPARTY_ROOT设置为C:/FlightGear
CMAKE_INSTALL_PREFIX设置为C:/FlightGear/install/msvc100/SimGear 点击Configure直至Generate可用,点击Generate生成工程文件
打开位于C:\FlightGear\simgear-build的工程文件SimGear.sln
设置解决方案配置为Release
按F7生成解决方案,编译完成后,找到INSTALL工程,右击选择生成
相关库文件被自动拷贝到C:\FlightGear\install\msvc100\SimGear文件夹中
FlightGear编译
打开cmake-gui
设置如下
Where is the source code设置为C:/FlightGear/flightgear-2.8.0
Where to build the binaries设置为C:/FlightGear/flightgear-build
CMAKE_INSTALL_PREFIX设置为C:/FlightGear/install/msvc100/FlightGear SIMGEAR_INCLUDE_DIR设置为C:/FlightGear/install/msvc100/SimGear/include 点击Configure直至Generate可用,点击Generate生成工程文件
用VS打开C:\FlightGear\flightgear-build下的工程文件FlightGear.sln
解决方案配置选择Release
点击F7生成解决方案
下面需要配置环境变量
在Path里添加C:\FlightGear\install\msvc100\OpenSceneGraph\bin;C:\FlightGear\3rdParty\bin
修改完环境变量后需要重启电脑以生效
继续打开VS工程,将fgfs设置为启动项
打开fgfs的工程属性,配置属性-调试-命令参数,添加--fg-root=C:\FlightGear\data
按F5运行程序即可。