You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The FlightGear alternative to the current PX4's mainstream simulator Gazebo.
5
+
The FlightGear alternative to the current PX4's mainstream simulator Gazebo. The FlightGear expands the simulation possibilities by advanced weather simulations.
6
6
7
7

8
8
9
9
This stand-alone application adding the possibility of the use of the FlightGear simulator. The system was tested on the [Rascal airplane](https://github.com/ThunderFly-aerospace/FlightGear-Rascal) and [TF-G1](https://github.com/ThunderFly-aerospace/FlightGear-TF-G1) autogyro simulation models.
10
10
11
11
It connects to FG (over UDP generic protocol) and transforms the data to TCP MAVlink packets for the PX4 stack.
12
12
13
-
### How to run the development version:
13
+
### How to use the FlightGear with PX4
14
+
15
+
#### Install
14
16
15
-
#### Install:
16
17
1) Install FlightGear. In Ubuntu You can use install last stable FG from the [PPA repository](https://launchpad.net/~saiarcot895/+archive/ubuntu/flightgear) by following commands: ```sudo add-apt-repository -y -u ppa:saiarcot895/flightgear``` and ```sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet install flightgear```
17
18
3) Set write permissions to the `Protocols` folder in the FlightGear instalation directory. On Ubuntu run ```sudo chmod a+w /usr/share/games/flightgear/Protocol ```
18
19
19
-
#### Run:
20
+
#### Startup
21
+
22
+
General usage consists following steps
23
+
24
+
1) Open [QgroundControl](http://qgroundcontrol.com/)
25
+
2) In [PX4Firmware](https://github.com/PX4/PX4-Autopilot) folder run: ```make px4_sitl_nolockstep flightgear_model-name```
26
+
3) Wait until FlightGear fully loads.
27
+
28
+
29
+
##### Rascal airplane
30
+
31
+
1) Open [QgroundControl](http://qgroundcontrol.com/)
32
+
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 plane with electric engine model.
33
+
3) Wait until FlightGear fully loads.
34
+
35
+
##### TF-G1 autogyro
36
+
20
37
1) Open [QgroundControl](http://qgroundcontrol.com/)
21
-
2) In PX4Firmware folder run: ```make px4_sitl_nolockstep flightgear_rascal``` for plane.
38
+
2) In PX4Firmware folder run: ```make px4_sitl_nolockstep flightgear_tf-g1``` for [TF-G1 autogyro](https://github.com/ThunderFly-aerospace/TF-G1).
22
39
3) Wait until FlightGear fully loads.
23
40
24
-
#### Known issues:
41
+
##### TF-G2 autogyro
42
+
43
+
1) Open [QgroundControl](http://qgroundcontrol.com/)
44
+
2) In PX4Firmware folder run: ```make px4_sitl_nolockstep flightgear_tf-g2``` for [TF-G2 autogyro](https://github.com/ThunderFly-aerospace/TF-G2).
45
+
3) Wait until FlightGear fully loads.
46
+
47
+
##### TF-R1 rover
48
+
49
+
1) Open [QgroundControl](http://qgroundcontrol.com/)
50
+
2) In PX4Firmware folder run: ```make px4_sitl_nolockstep flightgear_tf-r1``` for [TF-R1 ground rover](https://github.com/ThunderFly-aerospace/TF-R1).
51
+
3) Wait until FlightGear fully loads.
52
+
53
+
54
+
55
+
#### Known issues
56
+
25
57
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.
26
-
2) You can probably use a wild set of FG versions - we tested installation with FG 2019.1.1 and the "next" (source-code branch) of FG (nightly builds). But in the past, we achieved basic functionality on Debian 9, FG 2016.1.1 from the distribution repository, with some Racal (JSBSim) model download as a zip from the FGaddon repository.
27
-
3) Multiple models packaged with the bridge have an electric engine that needs up-to-date patched FlightGear from [nightly builds PPA repository](https://launchpad.net/~saiarcot895/+archive/ubuntu/flightgear-edge).
28
-
5)Internal starting scripts run```fgfs```has a set of parameters to reduce graphic load. But before that setup, the starting script searches for the FG-Data folder by running ```fgfs --version```. If your output of this command does not contain the FG_ROOT line, the script will not work. Check how is your FG binaries in the system, by ```which fgfs```. Then the Advanced Options section of this readme can help you.
29
-
6) If you want another plane model, you can switch the Rascal model to another editing file ```models/rascal.json```. For example substitute ```Rascal110-YASim```by ```Rascal110-JSBSim```, or another aircraft name.
58
+
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 runnig FG 2016.1.1 from the distribution repository.
59
+
3) Multiple models packaged with the bridge have an electric engine that needs up-to-date FlightGear.
60
+
5)PX4 internal starting script runs```fgfs```with a set of parameters to reduce graphic load.
61
+
6)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 in your system, by executing command ```which fgfs```. Then the Advanced Options section of this readme could help you.
30
62
31
63
### Advanced Options
32
64
@@ -38,15 +70,17 @@ You can tune your FG installation/settings by the following environment variable
38
70
39
71
FlightGear Bridge and starting script now support multiple instances of PX4. FG\_run script takes the second argument, which is PX4 ID (and automatically adjust the port numbers according to given number) and bridge binary takes this ID as the first argument before the output of get\_FGbridge\_params.py
40
72
41
-
If you want to test another aircraft with PX4, you need:
73
+
If you want to use a currently unsupported FlightGear aircraft with PX4, you need:
42
74
1) Add the FlightGear aircraft to ```models``` subdirectory, or to other MODEL PATH searched by FG
43
75
2) In ```models``` subdirectory create ```.json``` file.
44
76
3) Add model into PX4 make system in file ```platforms/posix/cmake/sitl_target.cmake``` with same name as json file in previous step.
45
-
4) You probably will need a PX4 startup script for your vehicle. (vehicle name is the same name as the name of .json file)
77
+
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)
78
+
79
+
If you want 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.
46
80
47
81
### Limitations
48
82
49
-
The PX4 is connected to FlightGear thought "[generic protocol](http://wiki.flightgear.org/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 artificial upsampling of sensor data to ~100Hz in the order to avoid stale sensor detection. Random noise is added to the sensor data.
83
+
The PX4 is connected to FlightGear thought "[generic protocol](http://wiki.flightgear.org/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 artificial upsampling of sensor data to ~100Hz to avoid stale sensor detection trigger in PX4. Random noise is added to the sensor data.
50
84
51
85
The possible better approach is to obtain the FlightGear using an [HLA](http://wiki.flightgear.org/High-Level_Architecture) interface.
0 commit comments