This fixes SITL with lockstep when using LPE and q estimator.
The required changes are:
- Publish ekf2_timestamps because simulator_mavlink expects them.
- Run LPE at 250 Hz instead of 80 Hz in order to keep everything in
lockstep running at 250 Hz.
Sometimes in CI for VTOL we saw disarms before the spoolup and ramp were
over and the takeoff would actually happen. By raising the auto-disarm
time we should be able to work around this and get CI less flaky.
It turns out that ekf2 needs more stack when sideslip fusion fails.
Sideslip fusion is currently only enabled for fixedwing by default and
not executed in testing.
The problem with printing the exception was that starting with
Python 3.6 the ImportError is yet another (sub) exception called
ModuleNotFoundError which can't be printed as a string and then triggers
another exception:
```
Traceback (most recent call last):
File "/home/julianoes/src/Firmware/Tools/serial/generate_config.py", line 11, in <module>
import jinja2
ModuleNotFoundError: No module named 'jinja2'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/julianoes/src/Firmware/Tools/serial/generate_config.py", line 13, in <module>
print("Failed to import jinja2: " + e)
TypeError: must be str, not ModuleNotFoundError
```
As per @bkueng's suggestion the easiest is to cast the exception to str
and that way prevent the second exception.
This allows us to print an error message instead of a weird Java failure
further down the road.
Better yet would be if this would take down everything, so a user does
not have to scroll up to read the message.
We can't use commas in the TEST_CASE name. With the comma, the test did
not run and displayed:
Filters: Takeoff, transition and RTL
No test cases matched 'Takeoff'
No test cases matched 'transition and RTL'
==========================================
No tests ran
The previous forwarding rules exclude another onboard MAVLink node to
send messages to a specific target.
E.g. a message from a companion computer with sysid 1 (same as
autopilot) with target sysid 190 (for the ground station) was not
forwarded.
With the new rules, anything that is not specifically addressed to the
autopilot's sysid and compid is forwarded.
This should prevent debconf from asking questions during install.
Presumably, the exported env variable DEBIAN_FRONTEND is not taken into
account in a sudo command, hence we need to add it every time.
As far as I know these dependencies are only ever required when doing
analysis in ECL. At that point developers should be confident to add
what is required.
This reverts commit be35c4857b.
This would only work for integer math, so for simulation speed-up. For
speeds slower than realtime we need floating point.
We now check individually for empy and genmsg.
Also, my recommendation is to use pip3 as a user to install the
dependencies as this is least intrusive and should work on all
platforms.
On Ubuntu we often saw the error
Assistive technology not found AWTError when starting jMAVSim.
This should be fixed by appending this cli argument to java.
As suggested in https://github.com/PX4/containers/issues/206
In general, if anything goes wrong in the startup script, we
should fail entirely because things might not work as expected.
In particular, this prevents that we have to press Ctrl+C twice if the
simulator start call is hung waiting for the simulator to appear and
start communicating. We now press Ctrl+C once and exit straightaway
whereas before we would press it once to get the warning:
"Startup script returned with return value: 2",
and then finally exit on the second press.
Unfortunately this commit contains two things:
1. Some cleanup and renaiming.
2. An additional wait until lockstep has been initialized.
By waiting until HIL_SENSOR messages arrive including timestamps we
stop the startup script and prevent other modules from running until
time is set up. This should resolve some busy waiting by various
modules and prevent races on initialization (e.g. the landing state
being subscribed by mavlink before being published by the land
detector).