FlightGear 仿真
FlightGear 是一款具备强大 飞行动力学模型(FDM)引擎 的飞行仿真器。 这使得 FlightGear 能够在各种气象条件下模拟旋翼飞行器(这也是 ThunderFly s.r.o. 最初开发此桥接器的原因)。
本文档介绍了 FlightGear 在软件在环(SITL)仿真中的单飞行器使用方法。 有关多飞行器使用的信息,请参阅:使用 FlightGear 进行多飞行器仿真。
支持的飞行器类型: 旋翼机、飞机、漫游车。
INFO
有关仿真器、仿真环境和仿真配置(例如支持的飞行器类型)的一般信息,请参阅仿真。
安装(Ubuntu Linux)
INFO
以下安装说明已在 Ubuntu 18.04 系统上测试通过。
安装 FlightGear:
shsudo add-apt-repository ppa:saiarcot895/flightgear sudo apt update sudo apt install flightgear
此操作将从 PAA 软件源安装最新稳定版的 FlightGear 以及 FGdata 软件包。
TIP
对于某些模型(例如带有电动引擎的模型),可能需要使用具备最新特性的每日构建版本。 可使用 每日构建 PPA 进行安装。
:::
检查是否能够运行 FlightGear:
shfgfs --launcher
为 FlightGear 安装目录下的 Protocols 文件夹设置写入权限:
shsudo chmod a+w /usr/share/games/flightgear/Protocol
设置权限是必需的,因为 PX4-FlightGear 桥接器会将通信定义文件放置在此处。
更多安装说明可在 FlightGear 维基 上找到。
运行仿真
通过启动 PX4 SITL 并指定所需的机架配置来运行仿真。
最简单的方法是在 PX4 PX4-Autopilot 代码仓库的根目录下打开终端,并针对所需目标调用 make
命令。 例如,要启动飞机仿真:
cd /path/to/PX4-Autopilot
make px4_sitl_nolockstep flightgear_rascal
支持的飞行器及其对应的 make
命令如下所列(点击链接可查看飞行器图片)。
飞行器 | 命令 |
---|---|
标准飞机 | make px4_sitl_nolockstep flightgear_rascal |
阿克曼车辆(无人地面车辆/漫游车) | make px4_sitl_nolockstep flightgear_tf-r1 |
旋翼机 | make px4_sitl_nolockstep flightgear_tf-g1 |
上述命令将启动带有完整用户界面的单飞行器仿真。 QGroundControl 应该能够自动连接到仿真飞行器。
INFO
要查看所有 FlightGear 构建目标的完整列表(高亮显示),请运行:
make px4_sitl_nolockstep list_vmd_make_targets | grep flightgear_
更多信息请参阅:FlightGear 飞行器(其中包含有关“不支持”的飞行器以及添加新飞行器的信息)。
INFO
如果出现构建错误,安装文件和代码 指南是一个有用的参考。
让飞行器起飞
上述 make
命令会先构建 PX4,然后与 FlightGear 仿真器一起运行。
PX4 启动后,将显示如下的 PX4 shell 界面。 你必须按回车键才能获得命令提示符。
______ __ __ ___
| ___ \ \ \ / / / |
| |_/ / \ V / / /| |
| __/ / \ / /_| |
| | / /^\ \ \___ |
\_| \/ \/ |_/
px4 starting.
INFO [px4] Calling startup script: /bin/sh etc/init.d-posix/rcS 0
INFO [param] selected parameter default file eeprom/parameters_1034
I'm Mavlink to FlightGear Bridge
Target Bridge Freq: 200, send data every step: 1
4
5 -1
7 -1
2 1
4 1
[param] Loaded: eeprom/parameters_1034
INFO [dataman] Unknown restart, data manager file './dataman' size is 11798680 bytes
INFO [simulator] Waiting for simulator to accept connection on TCP port 4560
INFO [simulator] Simulator connected on TCP port 4560.
INFO [commander] LED: open /dev/led0 failed (22)
INFO [commander] Mission #3 loaded, 9 WPs, curr: 8
INFO [mavlink] mode: Normal, data rate: 4000000 B/s on udp port 18570 remote port 14550
INFO [airspeed_selector] No airspeed sensor detected. Switch to non-airspeed mode.
INFO [mavlink] mode: Onboard, data rate: 4000000 B/s on udp port 14580 remote port 14540
INFO [mavlink] mode: Onboard, data rate: 4000 B/s on udp port 14280 remote port 14030
INFO [logger] logger started (mode=all)
INFO [logger] Start file log (type: full)
INFO [logger] Opened full log file: ./log/2020-04-28/22_03_36.ulg
INFO [mavlink] MAVLink only on localhost (set param MAV_{i}_BROADCAST = 1 to enable network)
INFO [px4] Startup script returned successfully
pxh> StatsHandler::StatsHandler() Setting up GL2 compatible shaders
Now checking for plug-in osgPlugins-3.4.1/osgdb_nvtt.so
PX4 Communicator: PX4 Connected.
pxh>
控制台将在 PX4 加载特定机架的初始化和参数文件、等待(并连接到)仿真器时输出状态信息。 当出现 [ecl/EKF] commencing GPS fusion
的信息打印时,飞行器即可解锁。 此时,你应该会看到一个显示飞行器的 FlightGear 窗口。
INFO
你可以通过按 Ctrl+V 来更改视图。
你可以通过输入以下命令让飞行器起飞:
pxh> commander takeoff
使用/配置选项
你可以通过以下环境变量调整你的 FlightGear 安装/设置:
FG_BINARY
- 要运行的 FlightGear 二进制文件的绝对路径。(可以是 AppImage 文件)FG_MODELS_DIR
- 包含手动下载的飞行器模型的文件夹的绝对路径,这些模型将用于仿真。FG_ARGS_EX
- 任何额外的 FlightGear 参数。
显示帧率
在 FlightGear 中,你可以通过 视图 > 视图选项 > 显示帧率 来启用帧率显示。
设置自定义起飞位置
可以使用额外的变量来设置 SITL FlightGear 中的起飞位置。 设置该变量将覆盖默认的起飞位置。
可以设置的变量如下:--airport
、--runway
和 --offset-distance
。 其他选项可在 FlightGear 维基 上找到。
例如:
FG_ARGS_EX="--airport=PHNL" make px4_sitl_nolockstep flightgear_rascal
上述示例将在 檀香山国际机场 启动仿真。
使用游戏手柄
通过 QGroundControl 支持使用游戏手柄和拇指摇杆(此处为设置说明)。
应该在 FlightGear 中禁用游戏手柄输入,否则 FG 游戏手柄输入和 PX4 命令之间会出现“竞争条件”。
扩展和定制
要扩展或定制仿真接口,请编辑 Tools/simulation/flightgear/flightgear_bridge 文件夹中的文件。 代码可在 Github 上的 PX4-FlightGear-Bridge 代码仓库 中找到。