Skip to content

Commit 9072ff1

Browse files
committed
Merge branch 'master' into dzikuvx-adaptive-filter
2 parents 02d4a52 + e92337a commit 9072ff1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2455
-280
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100
- name: Build SITL
101101
run: |
102102
mkdir -p build_SITL && cd build_SITL
103-
cmake -DSITL=ON -DWARNINGS_AS_ERRORS=ON -G Ninja ..
103+
cmake -DSITL=ON -DWARNINGS_AS_ERRORS=ON -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -G Ninja ..
104104
ninja
105105
106106
- name: Upload artifacts

.vscode/tasks.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44
"version": "2.0.0",
55
"tasks": [
66
{
7-
"label": "Build Matek F722-SE",
7+
"label": "Build AOCODARCH7DUAL",
88
"type": "shell",
9-
"command": "make MATEKF722SE",
9+
"command": "make AOCODARCH7DUAL",
1010
"group": "build",
1111
"problemMatcher": [],
1212
"options": {
1313
"cwd": "${workspaceFolder}/build"
1414
}
1515
},
1616
{
17-
"label": "Build Matek F722",
17+
"label": "Build AOCODARCH7DUAL",
1818
"type": "shell",
19-
"command": "make MATEKF722",
19+
"command": "make AOCODARCH7DUAL",
2020
"group": {
2121
"kind": "build",
2222
"isDefault": true

docs/Fixed Wing Landing.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
INAV supports advanced automatic landings for fixed wing aircraft from version 7.1.
66
The procedure is based on landings for man-carrying aircraft, so that safe landings at a specific location are possible.
77
Supported are landings at safehome after "Return to Home" or at a defined LAND waypoint for missions.
8+
Every landing locations can be defined with a target point and 2 different approach headings (colinear to the landing strips) with exclusive direction or opposite directions allowed.
9+
This enables up to 4 different approach directions, based on the landing site and surrounding area.
810

911
## General procedure:
1012

@@ -34,7 +36,7 @@ The following graphics illustrate the process:
3436

3537
### The following parameters are set for each landing site (Safefome/LAND waypoint):
3638

37-
All settings can also be conveniently made in the Configurator via Missionplanner.
39+
All settings can also be conveniently made in the Configurator via Mission Control.
3840

3941
CLI command `fwapproach`:
4042
`fwapproach <index> <Approach altitude> <Land altitude> <Approach direction> <approach heading 1> <approach heading 2> <sea level>`

docs/SITL/SITL.md

+83-59
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ Currently supported are
1616

1717
INAV SITL communicates for sensor data and control directly with the corresponding simulator, see the documentation of the individual simulators and the Configurator or the command line options.
1818

19+
AS SITL is still an inav software, but running on PC, it is possible to use HITL interface for communication.
20+
21+
INAV-X-Plane-HITL plugin https://github.com/RomanLut/INAV-X-Plane-HITL can be used with SITL.
22+
1923
## Sensors
2024
The following sensors are emulated:
2125
- IMU (Gyro, Accelerometer)
@@ -30,13 +34,18 @@ The following sensors are emulated:
3034

3135
Select "FAKE" as type for all mentioned, so that they receive the data from the simulator.
3236

33-
## Serial ports+
34-
UARTs are replaced by TCP starting with port 5760 ascending. UART 1 port 5760, UART2 5761, ...
35-
By default, UART1 and UART2 are available as MSP connections. Other UARTs will have TCP listeners if they have an INAV function assigned.
36-
To connect the Configurator to SITL: Select TCP and connect to ```localhost:5760``` (or ```127.0.0.1:5760``` if your OS doesn't understand `localhost`) (if SITL is running on the same machine).
37+
## Serial ports
38+
UARTs are replaced by TCP starting with port 5760 ascending. UART1 is mapped to port 5760, UART2 to 5761, etc.
39+
40+
By default, UART1 and UART2 are configured for MSP connections. Other UARTs will have TCP listeners if they have an INAV function assigned.
41+
42+
To connect the Configurator to SITL, select "SITL".
43+
44+
Alternativelly, select "TCP" and connect to ```localhost:5760``` (or ```127.0.0.1:5760``` if your OS doesn't understand `localhost`) (if SITL is running on the same machine).
45+
3746
IPv4 and IPv6 are supported, either raw addresses or host-name lookup.
3847

39-
The assignment and status of user UART/TCP connections is displayed on the console.
48+
The assignment and status of used UART/TCP connections is displayed on the console.
4049

4150
```
4251
INAV 6.1.0 SITL
@@ -51,46 +60,82 @@ INAV 6.1.0 SITL
5160
All other interfaces (I2C, SPI, etc.) are not emulated.
5261

5362
## Remote control
54-
MSP_RX (TCP/IP) or joystick (via simulator) or serial receiver via USB/Serial interface are supported.
63+
Multiple methods for connecting RC Controllers are available:
64+
- MSP_RX (TCP/IP)
65+
- joystick (via simulator)
66+
- serial receiver via USB to serial converter
67+
- any receiver with proxy flight controller
68+
5569

5670
### MSP_RX
5771

58-
MSP_RX is the default, 18 channels are supported over TCP/IP serial emulation.
72+
MSP_RX is the default, 18 channels are supported over TCP/IP connection.
5973

6074
### Joystick interface
6175
Only 8 channels are supported.
62-
Select "SIM (SITL)" as the receiver and set up a joystick in the simulator, details of which can be found in the documentation for the individual simulators.
76+
77+
Select "SIM (SITL)" as the receiver and set up a joystick in the simulator.
78+
79+
*Not available with INAV-X-Plane-HITL plugin.*
6380

6481
### Serial Receiver via USB
6582

66-
Connect a serial receiver (e.g. SBUS) to the PC via a UART/USB adapter. Configure the receiver in the Configurator as usual.
83+
- Connect a serial receiver to the PC via a USB-to-serial adapter
84+
- Configure the receiver in the SITL as usual
85+
- While starting SITL from configurator, enable "Serial receiver" option
86+
87+
The SITL offers a built-in option for forwarding the host's serial port to the SITL UART.
88+
89+
Please note that 100000(SBUS) and 420000(CRSF) are non-standart baud rates which may not be supported by some USB-to-serial adapters. FDTI and CH340 should work. CP2102/9 does not work.
6790

68-
The Configurator offers a built-in option for forwarding the serial data to the SITL TCP port, if SITL is started manually the following option can be used:
6991

70-
The connection can then be established with a programme that forwards the serial data unaltered to TCP, e.g. with the Python script tcp_serial_redirect.py (https://github.com/Scavanger/TCP-Serial-Redirect)
71-
If necessary, please download the required runtime environment from https://www.python.org/.
72-
Please use the linked version, which has a smaller buffer, otherwise the control response is relatively slow.
92+
#### Example SBUS:
93+
For this you need a USB-to-serial adapter, receiver with inverter, or receiver which can output inverted SBUS (normal UART).
7394

74-
### Example SBUS:
75-
For this you need a FT232 module. With FT-Prog (https://ftdichip.com/utilities/) the signals can be inverted: Devices->Scan and Parse, then Hardware Specific -> Invert RS232 Signals -> Invert RXD.
95+
SBUS protocol is inverted UART.
96+
97+
Receiver's SBUS output should be connected to the USB-to-serial adapter's RX pin (via inverter).
98+
99+
With FT-Prog (https://ftdichip.com/utilities/) the signal can be inverted by adapter: Devices->Scan and Parse, then Hardware Specific -> Invert RS232 Signals -> Invert RXD.
76100

77101
![SITL-SBUS-FT232](assets/SITL-SBUS-FT232.png)
78102

79-
For SBUS, the command line arguments of the python script are:
80-
```python tcp_serial_redirect.py --parity E --stopbits 2 -c 127.0.0.1:[INAV-UART-PORT] COMXX 100000```
103+
![SITL-SBUS](assets/serial_receiver_sbus.png)
81104

82105
### Telemetry
106+
In the SITL configuration, enable serial receiver on some port and configure receiver type "Serial", "SBUS".
107+
108+
#### Example CRSF:
109+
110+
On receiver side, CRSF is normal UART.
111+
112+
Connect receiver's RX/TX pins (and GND, 5V of course) to USB-To-Serial adapter's TX/RX pins (RX to TX, TX to RX).
113+
114+
![SITL-SBUS](assets/serial_receiver_crsf.png)
115+
116+
In the SITL configuration, enable serial receiver on some port and configure receiver type "Serial", "CRSF".
117+
118+
### Proxy Flight controller
119+
120+
The last, but probably the most easiest way to connect receiver to the SITL, is to use any inav/betaflight Flight controler as proxy.
121+
122+
Connect receiver of any type to FC and configure FC to the point where channels are correctly updated in the "Receiver" tab. Inav and Betaflight are supported.
83123

84-
LTM and MAVLink telemetry are supported, either as a discrete function or shared with MSP.
124+
You also can use your plane/quad ( if receiver is powered from USB).
125+
126+
![SITL-SBUS](assets/serial_receiver_proxy.png)
127+
128+
In the SITL configuration, select "Receiver type: SIM" regardles of the kind of receiver used.
85129

86-
RX Telemetry via a return channel through the receiver is not yet supported by SITL.
87130

88131
## OSD
89132
For the OSD the program INAV-Sim-OSD is available: https://github.com/Scavanger/INAV-SIM-OSD.
90133
For this, activate MSP-Displayport on a UART/TCP port and connect to the corresponding port.
91134

92135
Note: INAV-Sim-OSD only works if the simulator is in window mode.
93136

137+
*With INAV-X-Plane-HITL plugin, OSD is supported natively.*
138+
94139
## Command line
95140

96141
The command line options are only necessary if the SITL executable is started by hand.
@@ -103,7 +148,7 @@ If SITL is started without command line options, only a serial MSP / CLI connect
103148

104149
```--path``` Path and file name to config file. If not present, eeprom.bin in the current directory is used. Example: ```C:\INAV_SITL\flying-wing.bin```, ```/home/user/sitl-eeproms/test-eeprom.bin```.
105150

106-
```--sim=[sim]``` Select the simulator. xp = X-Plane, rf = RealFlight. Example: ```--sim=xp```
151+
```--sim=[sim]``` Select the simulator. xp = X-Plane, rf = RealFlight. Example: ```--sim=xp```. If not specified, configurator-only mode is started. Omit for usage with INAV-X-Plane-HITL plugin.
107152

108153
```--simip=[ip]``` Hostname or IP address of the simulator, if you specify a simulator with "--sim" and omit this option IPv4 localhost (`127.0.0.1`) will be used. Example: ```--simip=172.65.21.15```, ```--simip acme-sims.org```, ```--sim ::1```.
109154

@@ -118,53 +163,32 @@ To assign motor1 to virtual receiver channel 1, servo 1 to channel 2, and servo2
118163
```--chanmap:M01-01,S01-02,S02-03```
119164
Please also read the documentation of the individual simulators.
120165

166+
```--serialport``` Use serial receiver or proxy FC connected to host's serial port, f.e. ```--serialportCOM5``` or ```--serialportdev/ttyACM3```
167+
168+
```--serialuart``` Map serial receiver to SITL UART, f.e. ```--serialuart=3``` for UART3. Omit if using ```--fcproxy```.
169+
170+
```--baudrate``` Serial receiver baudrate (default: 115200)
171+
172+
```--stopbits=[None|One|Two]``` Serial receiver stopbits (default: One)
173+
174+
```--parity=[Even|None|Odd]``` Serial receiver parity (default: None)
175+
176+
```--fcproxy``` Use inav/betaflight FC as a proxy for serial receiver.
177+
121178
```--help``` Displays help for the command line options.
122179

123180
For options that take an argument, either form `--flag=value` or `--flag value` may be used.
124181

125182
## Running SITL
126183
It is recommended to start the tools in the following order:
127184
1. Simulator, aircraft should be ready for take-off
128-
2. INAV-SITL
185+
2. SITL
129186
3. OSD
130-
4. serial redirect for RC input
131-
132-
## Compile
133-
134-
### Linux and FreeBSD:
135-
Almost like normal, ruby, cmake and make are also required.
136-
With cmake, the option "-DSITL=ON" must be specified.
137-
138-
```
139-
mkdir build_SITL
140-
cd build_SITL
141-
cmake -DSITL=ON ..
142-
make
143-
```
144-
145-
### Windows:
146-
Compile under cygwin, then as in Linux.
147-
Copy cygwin1.dll into the directory, or include cygwin's /bin/ directory in the environment variable PATH.
148-
149-
If the build fails (segfault, possibly out of memory), adding `-DCMAKE_BUILD_TYPE=MinRelSize` to the `cmake` command may help.
150-
151-
#### Build manager
152-
153-
`ninja` may also be used (parallel builds without `-j $(nproc)`):
154-
155-
```
156-
cmake -GNinja -DSITL=ON ..
157-
ninja
158-
```
159-
160-
### Compiler requirements
161187

162-
* Modern GCC. Must be a *real* GCC, macOS faking it with clang will not work. GCC 10 to GCC 13 are known to work.
163-
* Unix sockets networking. Cygwin is required on Windows (vice `winsock`).
164-
* Pthreads
188+
For INav-X-Plane-HITL plugin:
189+
1. SITL (Run in configurator-only mode)
190+
2. X-Plane
165191

166-
## Supported environments
192+
# #Forwarding serial data for other UART
167193

168-
* Linux on x86_64, ia-32, Aarch64 (e.g. Rpi4), RISCV64 (e.g. VisionFive2)
169-
* Windows on x86_64
170-
* FreeBSD (x86_64 at least).
194+
Other UARTs can then be mapped to host's serial port using external tool, which can be found in directories ```inav-configurator\resources\sitl\linux\Ser2TCP```, ```inav-configurator\resources\sitl\windows\Ser2TCP.exe```
6.83 KB
Loading
6.94 KB
Loading
6.64 KB
Loading

docs/Settings.md

+13-33
Original file line numberDiff line numberDiff line change
@@ -658,7 +658,7 @@ These are values (in us) by how much RC input can be different before it's consi
658658

659659
| Default | Min | Max |
660660
| --- | --- | --- |
661-
| 5 | 0 | 32 |
661+
| 2 | 0 | 32 |
662662

663663
---
664664

@@ -932,6 +932,16 @@ EzTune response
932932

933933
---
934934

935+
### ez_snappiness
936+
937+
EzTune snappiness
938+
939+
| Default | Min | Max |
940+
| --- | --- | --- |
941+
| 0 | 0 | 100 |
942+
943+
---
944+
935945
### ez_stability
936946

937947
EzTune stability
@@ -2372,16 +2382,6 @@ These are min/max values (in us) which, when a channel is smaller (min) or large
23722382

23732383
---
23742384

2375-
### max_throttle
2376-
2377-
This is the maximum value (in us) sent to esc when armed. Default of 1850 are OK for everyone (legacy). For modern ESCs, higher values (c. 2000) may be more appropriate. If you have brushed motors, the value should be set to 2000.
2378-
2379-
| Default | Min | Max |
2380-
| --- | --- | --- |
2381-
| 1850 | PWM_RANGE_MIN | PWM_RANGE_MAX |
2382-
2383-
---
2384-
23852385
### mc_cd_lpf_hz
23862386

23872387
Cutoff frequency for Control Derivative. This controls the cutoff for the LPF that is applied to the CD (Feed Forward) signal to the PID controller. Lower value will produce a smoother CD gain to the controller, but it will be more delayed. Higher values will produce CD gain that may have more noise in the signal depending on your RC link but wil be less delayed.
@@ -3724,7 +3724,7 @@ When ON, NAV engine will slow down when switching to the next waypoint. This pri
37243724

37253725
### nav_min_ground_speed
37263726

3727-
Minimum ground speed for navigation flight modes [m/s]. Default 7 m/s.
3727+
Minimum ground speed for navigation flight modes [m/s]. Currently, this only affects fixed wing. Default 7 m/s.
37283728

37293729
| Default | Min | Max |
37303730
| --- | --- | --- |
@@ -5062,26 +5062,6 @@ Allows to set type of PID controller used in control loop. Possible values: `NON
50625062

50635063
---
50645064

5065-
### pidsum_limit
5066-
5067-
A limitation to overall amount of correction Flight PID can request on each axis (Roll/Pitch). If when doing a hard maneuver on one axis machine looses orientation on other axis - reducing this parameter may help
5068-
5069-
| Default | Min | Max |
5070-
| --- | --- | --- |
5071-
| 500 | PID_SUM_LIMIT_MIN | PID_SUM_LIMIT_MAX |
5072-
5073-
---
5074-
5075-
### pidsum_limit_yaw
5076-
5077-
A limitation to overall amount of correction Flight PID can request on each axis (Yaw). If when doing a hard maneuver on one axis machine looses orientation on other axis - reducing this parameter may help
5078-
5079-
| Default | Min | Max |
5080-
| --- | --- | --- |
5081-
| 350 | PID_SUM_LIMIT_MIN | PID_SUM_LIMIT_MAX |
5082-
5083-
---
5084-
50855065
### pilot_name
50865066

50875067
Pilot name
@@ -6218,7 +6198,7 @@ These are values (in us) by how much RC input can be different before it's consi
62186198

62196199
| Default | Min | Max |
62206200
| --- | --- | --- |
6221-
| 5 | 0 | 100 |
6201+
| 2 | 0 | 100 |
62226202

62236203
---
62246204

docs/development/Building SITL.md

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## Building SITL
2+
3+
### Linux and FreeBSD:
4+
Almost like normal, ruby, cmake and make are also required.
5+
With cmake, the option "-DSITL=ON" must be specified.
6+
7+
```
8+
mkdir build_SITL
9+
cd build_SITL
10+
cmake -DSITL=ON ..
11+
make
12+
```
13+
14+
### Windows:
15+
Compile under cygwin, then as in Linux.
16+
Copy cygwin1.dll into the directory, or include cygwin's /bin/ directory in the environment variable PATH.
17+
18+
If the build fails (segfault, possibly out of memory), adding `-DCMAKE_BUILD_TYPE=MinRelSize` to the `cmake` command may help.
19+
20+
#### Build manager
21+
22+
`ninja` may also be used (parallel builds without `-j $(nproc)`):
23+
24+
```
25+
cmake -GNinja -DSITL=ON ..
26+
ninja
27+
```
28+
29+
### Compiler requirements
30+
31+
* Modern GCC. Must be a *real* GCC, macOS faking it with clang will not work. GCC 10 to GCC 13 are known to work.
32+
* Unix sockets networking. Cygwin is required on Windows (vice `winsock`).
33+
* Pthreads
34+
35+
## Supported environments
36+
37+
* Linux on x86_64, ia-32, Aarch64 (e.g. Rpi4), RISCV64 (e.g. VisionFive2)
38+
* Windows on x86_64
39+
* FreeBSD (x86_64 at least).

0 commit comments

Comments
 (0)