BSD 3-Clause "New" or "Revised" License

项目介绍

ThunderFly-aerospace/PX4-FlightGear-Bridge 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 BSD 3-Clause "New" or "Revised" License 许可证,目前获得 52 个 Star、55 次 Fork。

仓库全名
ThunderFly-aerospace/PX4-FlightGear-Bridge
开源许可证
BSD 3-Clause "New" or "Revised" License
Star 数
52
Fork 数
55
未关闭 Issue
9

README 摘要

FlightGear to PX4 Autopilot Bridge The FlightGear alternative to the current PX4's mainstream simulator Gazebo. FlightGear expands the simulation possibilities through advanced weather simulations. This stand-alone application adds the possibility of the use of the FlightGear simulator. The system was tested on the Rascal airplane and TF-G1 autogyro simulation models. It connects to FG (over UDP generic protocol)…

完整内容见 GitHub 原始 README 或本页 。

常见问题

PX4-FlightGear-Bridge 用什么语言开发?

主要使用 C++ 编写,采用 BSD 3-Clause "New" or "Revised" License 许可证,目前有 52 个 Star。

PX4-FlightGear-Bridge 可以免费商用吗?

仓库采用 BSD 3-Clause "New" or "Revised" License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 PX4-FlightGear-Bridge 的源码?

可以直接克隆仓库:git clone https://github.com/ThunderFly-aerospace/PX4-FlightGear-Bridge.git,默认分支为 master;安装与运行步骤见仓库 README。

PX4-FlightGear-Bridge 最近还在维护吗?

仓库最近一次更新为 2025年8月31日,当前有 9 个未关闭 Issue;Star 数为 52,可作为社区活跃度的参考。

关于

FlightGear simulator to PX4 software stack connector

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
167
价值分
47
活跃状态
活跃

语言占比

C++
CMake
Python
Shell

README

FlightGear to PX4 Autopilot Bridge

Build Tests

The FlightGear alternative to the current PX4’s mainstream simulator Gazebo. FlightGear expands the simulation possibilities through advanced weather simulations.

FlightGear SITL connected with PX4 and QGroundControl

This stand-alone application adds the possibility of the use of the FlightGear simulator. The system was tested on the Rascal airplane and TF-G1 autogyro simulation models.

It connects to FG (over UDP generic protocol) and transforms the data to TCP MAVlink packets for the PX4 stack.

How to use FlightGear with PX4

Install
  1. Install FlightGear. In Ubuntu, you can install the latest stable FG from the PPA repository by following commands: sudo add-apt-repository -y -u ppa:saiarcot895/flightgear and sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet install flightgear
  1. Set write permissions to the Protocols folder in the FlightGear installation directory. On Ubuntu run sudo chmod a+w /usr/share/games/flightgear/Protocol
Startup

General usage consists following steps

  1. Open QgroundControl
  2. In PX4Firmware folder run: make px4_sitl_nolockstep flightgear_model-name
  3. Wait until FlightGear fully loads.
Rascal airplane
  1. Open QgroundControl
  2. In PX4Firmware folder run: make px4_sitl_nolockstep flightgear_rascal for plane with combustion engine. Alternatively, you could use make px4_sitl_nolockstep flightgear_rascal-electric for the plane with an electric engine model.
  3. Wait until FlightGear fully loads.
TF-G1 autogyro
  1. Open QgroundControl
  2. In PX4Firmware folder run: make px4_sitl_nolockstep flightgear_tf-g1 for TF-G1 autogyro.
  3. Wait until FlightGear fully loads.
TF-G2 autogyro
  1. Open QgroundControl
  2. In PX4Firmware folder run: make px4_sitl_nolockstep flightgear_tf-g2 for TF-G2 autogyro.
  3. Wait until FlightGear fully loads.
TF-R1 rover
  1. Open QgroundControl
  2. In PX4Firmware folder run: make px4_sitl_nolockstep flightgear_tf-r1 for TF-R1 ground rover.
  3. Wait until FlightGear fully loads.
Known issues
  1. If you have FPS lower than 20, the bridge will not work correctly. Check your FPS. In FlightGear, display frame rate by enabling it in View->View Options->Show frame rate.
  2. You can probably use a wild set of FG versions - we tested installation with FG 2019.1.1 and 2020.3.8. But in the past, we achieved basic functionality on Debian 9 running FG 2016.1.1 from the distribution repository.
  3. Multiple models packaged with the bridge have an electric engine that requires up-to-date FlightGear.
  4. PX4 internal starting script runs fgfs with a set of parameters to reduce graphic load.
  5. The starting script searches for the FG-Data folder. Run fgfs --version to check the paths. If your output of this command does not contain the FG_ROOT line, the script will not work. Check where are FG binaries are in your system, by executing the command which fgfs. Then the Advanced Options section of this readme could help you.

Advanced Options

You can tune your FG installation/settings by the following environment variables:

  1. FG_BINARY - absolute path to FG binary to run. (It can be an AppImage)
  2. FG_MODELS_DIR - absolute path to the folder containing the manually downloaded aircraft models that should be used for simulation.
  3. FG_ARGS_EX - any additional FG parameters

FlightGear Bridge and starting script now support multiple instances of PX4. FG_run script takes the second argument, which is PX4 ID (and automatically adjusts the port numbers according to the given number), and bridge binary takes this ID as the first argument before the output of get_FGbridge_params.py

If you want to use a currently unsupported FlightGear aircraft with PX4, you need:

  1. Add the FlightGear aircraft to models subdirectory, or to another MODEL PATH searched by FG
  2. In models subdirectory create .json file.
  3. Add model into PX4 make system in file platforms/posix/cmake/sitl_target.cmake with same name as json file in previous step.
  4. You probably will need a new PX4 startup script for your vehicle. (vehicle name is the same name as the name of .json file)

If you want to test another plane model, you can switch the Rascal model to another type by editing the file models/rascal.json. For example substitute Rascal110-YASim by Rascal110-JSBSim, or chosen aircraft name.

Limitations

The PX4 is connected to FlightGear through “generic protocol”, which is served synchronously to the simulator graphics engine frame rate. So the PX4 gets the sensor data in frequency, depending on graphics resources and the current scene. The source code implements the artificial upsampling of sensor data to ~100Hz to avoid stale sensor detection triggers in PX4. Random noise is added to the sensor data.

The possibly better approach is to connect FlightGear using an HLA interface.

Credits

FlightGear bridge was initially developed at ThunderFly s.r.o. by @slimonslimon [email protected]

评论

暂无评论