Commit Graph
100 Commits
Author SHA1 Message Date
Julian Oes b53bd2b77f LPE: make compatible with lockstep simulation
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.
2020-02-26 15:46:58 +01:00
Julian Oes 3be8b3d177 logger: style fix 2020-02-26 14:52:39 +01:00
Julian Oes f3fefd7d93 mavlink: support mission transfer cancellation (#14139)
This adds support for MAV_MISSION_OPERATION_CANCELLED which can be used
to cancel an ongoing upload or download of mission/geofence/rally items.
2020-02-24 07:47:08 +01:00
Julian Oes 43a1257843 ROMFS: prevent auto-disarm before takeoff in CI
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.
2020-02-21 09:58:21 -05:00
Julian Oes 20276d4ff8 simulator: improve misleading TCP message
Proposed first by @lovettchris.
2020-02-20 12:10:43 +01:00
Julian Oes e46635b1de simulator: remove strange disarmed PWM
Before that we would send -0.1 instead of just 0.0.

First proposed by @lovettchris.
2020-02-20 12:10:43 +01:00
Julian Oes a006d82abf simulator: add flag to indicate lockstep
This depends on:
https://github.com/mavlink/mavlink/pull/1311

First proposed by @lovettchris.
2020-02-20 12:10:43 +01:00
Julian Oes e7c655ba52 rc_update: make specific RC loss check only on PPM
This makes the check more specific, so it's only active on PPM input.
2020-02-20 09:02:30 +01:00
Julian Oes cf47c2155f platforms: prevent stackoverflow for ekf2 sideslip
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.
2020-02-18 16:42:16 -05:00
Julian Oes 9a96ca14be Tools: make Python import error more readable
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.
2020-02-14 11:40:05 +01:00
Julian Oes abd2bb4eb7 cmake: fix Python 3 libs name
This was just wrong. `devel` might be correct on Fedora but no on Ubuntu
:).
2020-02-13 09:20:26 -05:00
Julian Oes a8c3944485 setup: select Java 8 after installation 2020-01-30 22:45:29 -05:00
Julian Oes 733e73e185 Tools: check for Java 8 on Linux
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.
2020-01-30 22:45:29 -05:00
Julian Oes 00728dab18 workflows: build pull requests and master
With this change pull requests from forks are also built.
We yet need to verify if tags/releases are built or if we need to
specify the tags as well.
2020-01-28 22:09:50 -05:00
Julian Oes a2e95f171f mavsdk_tests: fix model name of plane
However, the test does not pass yet, so I'm leaving it commented out.
2020-01-28 20:35:25 +01:00
Julian Oes bb1c08fdd1 mavsdk_tests: enable VTOL, fix TEST_CASE name
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
2020-01-28 20:35:25 +01:00
Julian Oes 01f29a51a8 mavsdk_tests: DISPLAY env for gazebo, --verbose 2020-01-28 20:35:25 +01:00
Julian Oes ab133b41b2 workflows: Install mavsdk from GitHub release 2020-01-24 12:04:47 +01:00
Julian Oes 30edcad752 Revert "Simulator: Remove EKF2 based wait"
This reverts commit 1834c156d2.
2020-01-24 12:04:47 +01:00
Julian Oes 30188d2884 Revert "Simulation: Set scheduling policy RR for lockstep"
This reverts commit 742b1839d5.
2020-01-24 12:04:47 +01:00
Julian Oes f64a0982c7 mavsdk_tests: fix build instructions 2020-01-24 12:04:47 +01:00
Julian Oes 0f77e3ba44 mavsdk_tests: actually use chosen model
This does not work for plane yet, and VTOL only acts as multicopter for
now, so doesn't make much sense just yet.
2020-01-24 12:04:47 +01:00
Julian Oes 5589812104 mavsdk_tests: refactor/cleanup
This splits the main function which has become way too long.
2020-01-24 12:04:47 +01:00
Julian Oes 1280351feb mavlink: forward everything except what is for us
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.
2020-01-24 11:14:44 +01:00
Julian Oes 98f0ba33d2 setup: prevent prompt during install
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.
2020-01-18 11:10:55 +01:00
Julian Oes 09c3fc3e71 setup: add pyros-genmsg, sort list 2020-01-18 11:10:55 +01:00
Julian Oes ca7327056c setup: prevent debconf asking about tzdata 2020-01-18 11:10:55 +01:00
Julian Oes 83ccc4e61e setup: fix script fail if check fails 2020-01-18 11:10:55 +01:00
Julian Oes 7a0ba7f0ca setup: remove duplicate 2020-01-18 11:10:55 +01:00
Julian Oes 26d4169b7c setup: remove unused dependencies 2020-01-18 11:10:55 +01:00
Julian Oes 8353d609cb setup: don't forget to install wheel 2020-01-18 11:10:55 +01:00
Julian Oes d764cfcb6d setup: remove unusual Python dependencies
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.
2020-01-18 11:10:55 +01:00
Julian Oes fcbf2e8f9e setup: remove Python 2 requirements for Ubuntu 2020-01-18 11:10:55 +01:00
Julian Oes ac6d7e6730 setup: another try to install pip dependencies 2020-01-18 11:10:55 +01:00
Julian Oes 8112a5c417 setup: fix call to pip/pip3
This should prevent the error:
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
      from pip import main
      ImportError: cannot import name 'main'

As described in:
https://github.com/pypa/pip/issues/5447#issuecomment-407693701
2020-01-18 11:10:55 +01:00
Julian Oes bac4854424 setup: stop on error 2020-01-18 11:10:55 +01:00
Julian Oes 126b7a5642 setup: we need a newer pip 2020-01-18 11:10:55 +01:00
Julian Oes bf62b0f5e6 setup: use pip as user, don't forget python3-dev
In my opinion we should not mess with someones system Python
dependencies.
2020-01-18 11:10:55 +01:00
Julian Oes 3387c9599c mavsdk_tests: don't constrain speed factor to int
Speed factors slower than 1 should also be possible.
2020-01-17 10:32:21 +01:00
Julian Oes 735749e341 Revert "SITL shell: Do math using the shell"
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.
2020-01-17 10:32:21 +01:00
Julian Oes 9647bc3783 travis: change coverity to run on master
This change goes with disabling:
- Build pushed branches
- Build pushed pull requests

And adding a cron job on travis-ci to build master weekly.
2020-01-16 13:31:41 -05:00
Julian Oes 75c8fb12e4 cmake: add custom error messsage about Python 3
This should be helpful as developers need to migrate to Python 3.
2020-01-16 16:25:26 +01:00
Julian Oes c77816aef2 cmake: move jinja2 check to Python modules
This removes the cmake check for jinja2 and moves it to the respective
Python scripts.
2020-01-16 16:25:26 +01:00
Julian Oes b04f68553e Tools: use Python 3, improve import checks
In more detail:
- Change shebang to Python 3.
- Suggest installation using pip3 as user.
2020-01-16 16:25:26 +01:00
Julian Oes e98fa891fe msg/tools: remove unused import, check for six 2020-01-16 16:25:26 +01:00
Julian Oes 0a2b42b25d msg/tools: improve Python dependency note
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.
2020-01-16 16:25:26 +01:00
Julian Oes 5aa696839d jMAVSim: link to devguide instead of issue
This should be less confusing and point to a source of truth rather than
a long discussion.
2020-01-14 22:56:20 +01:00
Julian Oes d4d90e0488 jMAVSim: accept AdoptOpenJDK Java version
This should work with AdoptOpenJDK installed via brew:
    brew tap adoptopenjdk/openjdk
    brew cask install adoptopenjdk8
2020-01-14 22:56:20 +01:00
Julian Oes 3818b18314 beaglebone: treat robotcontrol as system include
This should ignore compiler warnings from the includes.
2020-01-13 21:48:35 +00:00
Julian Oes 065fa1244d Update Snapdragon docker tag 2020-01-13 21:48:35 +00:00
Julian Oes e64c38fa25 CI: update all docker tags 2020-01-13 21:48:35 +00:00
Julian Oes 19bd7b29d6 Tools: use Python3 for upload_log.py 2020-01-13 21:48:35 +00:00
Julian Oes 8897c69c8f Tools: use Python 3 in validate_yaml.py 2020-01-13 21:48:35 +00:00
Julian Oes f9ab38f1bc mission_test: let's try to run this with Python 3 2020-01-13 21:48:35 +00:00
Julian Oes 157811acc7 circleci: update to latest docker tag 2020-01-13 21:48:35 +00:00
Julian Oes 18f85ea520 Jenkins: bump docker tags 2020-01-13 21:48:35 +00:00
Julian Oes 02ecc04583 workflows: update docker tag
This should enable the docker images with Python 3 as default.
2020-01-13 21:48:35 +00:00
Julian Oes c5fb0e77cd Tools: update sitl_gazebo submodule 2020-01-13 21:48:35 +00:00
Julian Oes a2e74836bd Jenkins: update all docker tags 2020-01-13 21:48:35 +00:00
Julian Oes 1842708ef2 Jenkins: updated all docker tags 2020-01-13 21:48:35 +00:00
Julian Oes 4329de9e3b Use Python 3 everywhere
Since Python 2 is retired in 4 months, we should move everything to 3.
2020-01-13 21:48:35 +00:00
Julian Oes 3527870333 Tools: fix 'Assistive technology not found error'
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
2020-01-10 17:30:28 -05:00
Julian Oes fc9df31653 platforms: link libatomic only on emlid navio2 (raspberry pi)
Linking to libatomic is only required for targets such as Raspberry Pi but not on for normal x86/x86_64 Linux builds.
2020-01-06 20:15:39 -05:00
Julian Oes 9e239e47c4 mavsdk_tests: fix PEP8 issues 2020-01-06 11:15:43 -05:00
Julian Oes 25ff013418 vmount: fix float casting, simplify loop 2020-01-06 16:24:36 +01:00
Julian Oes 30cadf5903 vmount: properly initialize last_active
If last_active is initialized at 0 it means that input via mavlink is
already enabled but that's generally not the case.
2020-01-06 16:24:36 +01:00
Julian Oes 7a69b85850 vmount: fix input for test command
It is most convenient to use a yaw angle relative to body for testing.
Also, we set stabilize_axis to true for testing.
2020-01-06 16:24:36 +01:00
Julian Oes 4753e02364 vmount: fix implicit double promotion 2020-01-06 16:24:36 +01:00
Julian Oes 14133380e2 vmount: set all DO_MOUNT_CONFIGURE params
We previously did not set param2 to param7 of DO_MOUNT_CONFIGURE.
2020-01-06 16:24:36 +01:00
Julian Oes 5836edc586 vmount: first step to support absolute angles
The mavlink spec now supports absolute angles as well, see:
https://github.com/mavlink/mavlink/pull/944
2020-01-06 16:24:36 +01:00
Julian Oes 81809d8234 ROMFS: prevent high accel bias in SITL 2019-12-26 10:16:58 +01:00
Julian Oes 3a228622b9 mavsdk_tests: fix verbose output 2019-12-26 10:16:58 +01:00
Julian Oes 16da8466e3 posix: exit if the startup script is not ok
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.
2019-12-26 10:16:58 +01:00
Julian Oes 8817f172ea simulator: cleanup and wait for startup
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).
2019-12-26 10:16:58 +01:00
Julian Oes 99fbadac70 mavsdk_tests: remove output to logfile for now 2019-12-26 10:16:58 +01:00
Julian Oes 6e0cb7859e mavsdk_tests: add option for gzclient GUI 2019-12-26 10:16:58 +01:00
Julian Oes 698731e4f5 mavsdk_tests: don't use SIGINT, just terminate 2019-12-26 10:16:58 +01:00
Julian Oes f5cc6b7dcf mavsdk_tests: end the logfiles with .log 2019-12-26 10:16:58 +01:00
Julian Oes d32e3919dd mavsdk_tests: return error if not ready 2019-12-26 10:16:58 +01:00
Julian Oes b6e6d66616 mavsdk_tests: env vars need to be strings 2019-12-26 10:16:58 +01:00
Julian Oes 7ff4bd8289 mavsdk_tests: use subprocess instead of sys stdout 2019-12-26 10:16:58 +01:00
Julian Oes eef57f93ae mavsdk_tests: fix bugs in readyness checks 2019-12-26 10:16:58 +01:00
Julian Oes 580ea06fb7 mavsdk_tests: restart SITL after each test case 2019-12-26 10:16:58 +01:00
Julian Oes c363a15ad8 mavsdk_tests: enable VTOL tests as well 2019-12-26 10:16:58 +01:00
Julian Oes cc249f980b mavsdk_tests: check if build everything is built 2019-12-26 10:16:58 +01:00
Julian Oes 0a3152786b mavsdk_tests: use SIGINT before SIGTERM 2019-12-26 10:16:58 +01:00
Julian Oes 79a4bde155 mavsdk_tests: rename C++ executable
The executable contains all tests, so the name was a poor choice.
2019-12-26 10:16:58 +01:00
Julian Oes 90c79493f2 mavsdk_tests: print overall result 2019-12-26 10:16:58 +01:00
Julian Oes dde7530df6 mavsdk_tests: properly handle timeout 2019-12-26 10:16:58 +01:00
Julian Oes ce9aa119ff mavsdk_tests: option for speed factor
And we also need to communicate the speed factor for the px4 executable,
otherwise it can't adapt the timeouts accordingly.
2019-12-26 10:16:58 +01:00
Julian Oes 22bac037ed mavsdk_tests: better process management
We now error if px4 or gzserver are already running on startup, and we
also make sure to terminate what we started if interrupted.
2019-12-26 10:16:58 +01:00
Julian Oes 2bbe4dac25 mavsdk_tests: run test runner, speed up sim 2019-12-26 10:16:58 +01:00
Julian Oes 728a0b033e mavsdk_tests: add termination/kill, custom log dir 2019-12-26 10:16:58 +01:00
Julian Oes 09d63f5531 mavsdk_tests: added test runner 2019-12-26 10:16:58 +01:00
Julian Oes 956bd1b7b1 Move mavsdk_tests into test 2019-12-26 10:16:58 +01:00
Julian Oes 97d7925431 mavsdk_tests: add to PX4 Makefile/CMakeLists.txt 2019-12-26 10:16:58 +01:00
Julian Oes 5f67075481 mavsdk_tests: raise timeout for realtime sim speed 2019-12-26 10:16:58 +01:00
Julian Oes 64fa7e3fdc mavsdk_tests: add manual RTL after mission 2019-12-26 10:16:58 +01:00
Julian Oes 50892cec9c mavsdk_tests: wait until mission is done 2019-12-26 10:16:58 +01:00
Julian Oes 217ba4f981 mavsdk_tests: Split tests and test main 2019-12-26 10:16:58 +01:00