Commit Graph
100 Commits
Author SHA1 Message Date
Matthias Grob 1d86b7570a license: account for 2019 2019-01-31 17:43:35 +01:00
Matthias Grob 6a53a398e0 FlightTask: decline unimplemented callbacks, improve comments 2019-01-31 17:43:35 +01:00
Matthias Grob cdb6aca6bd mc_pos_control: refactor spoolup time naming 2019-01-29 10:02:48 +01:00
Matthias Grob 43fb84a63b mc_pos_control: make sure task gets started after idle delay 2019-01-29 10:02:48 +01:00
Matthias Grob bda60ecfd6 posix main: hotfix for px4 application not exiting anymore
Some threads do not exit and are still running when
trying to exit SITL running under Windows in Cygwin.

This problem was introduced with:
- posix shell #10173 because of strating a child process
for the startup script and mixing up the signal handling
(only Ctrl+C broken)
- lockstep #10648 because of simulator threads not
stopping gracefully anymore with timing race conditions
(no graceful exit possible anymore)

I leave the SIGINT handler on its default implementation for
Cygwin which kills the process and all its threads when pressing
Ctrl+C.

This hotfix at least allows the usage of Ctrl+C again instead
of forcing the user to use the task manager to shut down
px4.exe going crazy on CPU load instead of exiting
everytime.
2019-01-28 09:38:49 +01:00
Matthias Grob 573dd89cbf PositionControl: addess @bkueng 's comment in #11056 2019-01-26 14:53:15 +01:00
Matthias Grob f9ec0cd5ea LandDetector: use vertical velocity estimate for threshold
instead of the derivative of the vertical position which is
not the same value when using the ekf2 estimation.

Using the position derivative resulted in delayed landing because
the value for some reason often bumped over the theshold before
slowly converging towards zero while the velocity was within expected
accuary in all these cases.
2019-01-26 14:53:15 +01:00
Matthias Grob d5903853df mc_pos_control: shut down vertical thrust with ground contact 2019-01-26 14:53:15 +01:00
Matthias Grob 504372f551 MAVLink: RC_CHANNELS_OVERRIDE generate correct RC channel count (#11219)
* mavlink_receiver: generate rc channel count
* mavlink_receiver: zero out ignored rc channels, add comments
2019-01-25 12:15:01 -05:00
Matthias Grob be108a33f8 mission_params: remove MIS_YAWMODE reference
This parameter was removed in d704a2d675 and should
not be referenced anymore.
2019-01-23 22:08:32 +01:00
Matthias Grob 7b9cfac767 mc_pos_control: change use avoidance to handle data loss during mission
There were accidents because when missions lead through an obstacle
and it should be avoided but the setpoints from the external obstacle
avoidance module are suddenly missing the mission is continued into the
obstacle which results in a crash.
2019-01-16 19:13:05 +01:00
Matthias Grob a563092742 mc_pos_control: add Loiter/Hold mode to possible failsafe commands 2019-01-16 19:13:05 +01:00
Matthias Grob b018a6088d mc_pos_control: refactor OA setpoints out of PositionControl calls 2019-01-16 19:13:05 +01:00
Matthias Grob 1e14b10dee simulator_mavlink: take care of battery percentage rounding errors
In 5bb9babc20 I made MAVLink send a
rounded up integer instead of rounded down. This makes sense in practice
because the low battery reactions happen exactly when the reported number
switches in the UI. But here we want to provoke an exact 50% in the UI so
we stop counting at 49.9%, it get's rounded up and we see the expected
result.
2019-01-14 19:30:36 +01:00
Matthias Grob a89e550f3c simulator_mavlink: switch battery max and min to fix simultion
In 3e6e1f5c2b the simulated battery
percentage was reversed. I'm assuming because of the possibly
missleading variable name. Now I'm fixing it by switching the
maximum and minimum voltage such that the name is not misleading anymore
but it still works as expected.
2019-01-14 19:30:36 +01:00
Matthias Grob 36248cb12e PWMSim: publish disarmed value when not armed 2018-12-29 00:18:05 +01:00
Matthias Grob 05e45c2867 PWMSim: refactor only use one output number variable 2018-12-29 00:18:05 +01:00
Matthias Grob 986e6c96b5 PWMSim: refactor unused output loop 2018-12-29 00:18:05 +01:00
Matthias Grob c22dbe130b PWMSim: refactor to use math constrain 2018-12-29 00:18:05 +01:00
Matthias Grob 95b472277c TBS Caipirinha: Prevent ESC beeping all the time
Setting PWM_DISARMED to 0 results in no PWM output to the ESC for the pusher motor.
Most ESCs start beeping endless in short intervals if they don't get a signal.
I remove changing this parameter which is 900 by default to always command the motor to stand still.
2018-12-23 12:21:30 +01:00
Matthias Grob fce35ba9d2 fmu-v2: remove orbit support to save flash 2018-12-19 18:22:08 +01:00
Matthias Grob 3d42c495aa FlightTaskOrbit: clip radius to range 2018-12-19 18:22:08 +01:00
Matthias Grob f8171f999b mavlink: initialize orbit struct 2018-12-19 18:22:08 +01:00
Matthias Grob 25de837c23 FlightTaskOrbit: fix rotation direction in telemetry 2018-12-18 14:40:07 +01:00
Matthias Grob d4a40f5d99 px4_custom_mode: add custom sub mode orbit 2018-12-18 14:40:07 +01:00
Matthias Grob 1cee90d42f orbit_status: fix type for radius 2018-12-18 14:40:07 +01:00
Matthias Grob e708e82425 mavlink: lower orbit status frequency 5Hz 2018-12-18 14:40:07 +01:00
Matthias Grob 8b419efa2c FlightTaskOrbit: fix rotation direction from command 2018-12-18 14:40:07 +01:00
Matthias Grob 25aa2b9c8c orbit: fix telemetry message content 2018-12-18 14:40:07 +01:00
Matthias Grob 14b83f7bfc mavlink: add orbit to the normal messages
It is only actually sent out when the orbit is running.
2018-12-18 14:40:07 +01:00
Matthias Grob e979d24fff commander: fix orbit failsafes for data link & rc loss 2018-12-08 22:34:57 +01:00
Matthias Grob 5b5d5ac6d5 mc_pos_control: let orbit task do its work 2018-12-08 22:34:57 +01:00
Matthias Grob 34fb52d8bd commander: add orbit state handling 2018-12-08 22:34:57 +01:00
Matthias Grob 77d37c5b7f msg: add orbit main and navigation state 2018-12-08 22:34:57 +01:00
Matthias Grob e69049ec41 mc_pos_control: use time literals everywhere, @bkueng review input 2018-12-04 11:54:11 +01:00
Matthias Grob 096d7da4b9 mc_pos_control: fix doxygen comments, @bkueng review input 2018-12-04 11:54:11 +01:00
Matthias Grob 35a486bf6f mc_pos_control: addressed @dagar's review comments 2018-12-04 11:54:11 +01:00
Matthias Grob 513c973f01 mc_pos_control: assign events field outside of initializer
Necessary because NuttX defines pollfd differend from
the POSIX standard. The difference of field order makes
use of C++ designated initializers to compile for both
platforms impossible.
2018-12-04 11:54:11 +01:00
Matthias Grob 09e563addd mc_pos_control: fix naming of non-member time stamps 2018-12-04 11:54:11 +01:00
Matthias Grob 0ba3896068 mc_pos_control: refactor dt time difference calculation 2018-12-04 11:54:11 +01:00
Matthias Grob a310980ad2 mc_pos_control: refactor loop polling 2018-12-04 11:54:11 +01:00
Matthias Grob 013a2655e2 mc_pos_control: fix comments and spacing inconsistencies 2018-12-04 11:54:11 +01:00
Matthias Grob 8cb446c233 mc_pos_control: remove useless landed state copy
If the landed state was set before the position controller starts it
would get updated with the first poll_subscriptions() anyways. But it's
not on all posix and nuttx platforms I tested and the deleted statement
just copies the zero message into the struct which is already zero.
2018-12-04 11:54:11 +01:00
Matthias Grob c303e36ed0 vtol_att_control: small comment typo 2018-12-03 16:14:32 +01:00
Matthias Grob 94d4f0391a FlightTaskAuto: fix newline at end of file 2018-11-30 09:30:00 -05:00
Matthias Grob d76aec4eb2 mc_pos_control: refactor switch case logic for modes 2018-11-29 08:19:58 +01:00
Matthias Grob 38cf89ee9c mc_pos_control: also use vertical smoothing in altitude
Smoothing can be configured by MPC_POS_MODE parameter
put before only for position mode and not for altitude mode.
2018-11-29 08:19:58 +01:00
Matthias Grob 93d2b092f0 appveyor: fix mkdir on existing directory 2018-11-27 15:43:45 +01:00
Matthias Grob c1f851a600 appveyor: shallow clone the main repo 2018-11-25 22:43:11 +01:00
Matthias Grob 2973b77f18 appveyor: use new 0.5 installer 2018-11-25 22:43:11 +01:00
Matthias Grob 919a508935 appveyor: run make test also on Windows CI 2018-11-21 14:25:11 +01:00
Matthias Grob be16baaa3c sitl_tests: exclude uorb test from Windows build
Because it was always failing from the beginning on and
we want to make sure no other tests break in the meantime
by running the currently passing tests also on Windows CI.
2018-11-21 14:25:11 +01:00
Matthias Grob 81ec6c5b1e ColisionAvoidance: move instantiation to FlightTask 2018-11-20 14:11:33 +01:00
Matthias Grob 7e276bc163 CollisionAvoidance: move activation logic to library 2018-11-20 14:11:33 +01:00
Matthias Grob 8090734fe1 appveyor: switch cache to the entire PX4 folder
to save the time running the installer for every build
which was necessary before because the folder exceedes
the maximum of 1GB cache of the appveyor free plan
2018-11-16 10:19:58 -05:00
Matthias Grob e167e6bec4 px_uploader: catch non-standard baud exception
to fix Cygwin upload. It failed silently but when catching it prints
"non-standard baudrates are not supported on this platform".
Discussion about platform independet FTDI detection is in issue #10429.
2018-10-02 10:01:41 +02:00
Matthias Grob ebdea6e50d px_uploader: fix code and output spacing 2018-10-02 10:01:41 +02:00
Matthias Grob bee6a6b8b0 Refactor: Use new matrix::Vector2f constructor 2018-10-01 08:10:21 -04:00
Matthias Grob ada0179cda matrix lib: update to latest version 2018-10-01 08:10:21 -04:00
MaEtUgR 2c7c876c38 mavlink_receiver: parse all 18 channels from rc_override 2018-09-21 16:26:27 +02:00
MaEtUgR 4f0e090e88 drv_rc_input: replace useless rc_input_values define 2018-09-21 16:26:27 +02:00
Matthias Grob 4863b3669b appveyor: switch to toolchain 0.4
with:
- shutdown command support in SITL
- pyyaml included for RTPS message generation
2018-09-19 14:06:46 -04:00
Matthias Grob fbd175c0c9 posix-shell server: switch pipe flag to read/write
to make it non-blocking and ommit opening the same
named pipe multiple times inside the same process
which seems to be not supported in cygwin.
2018-09-18 18:24:07 +02:00
Matthias Grob c87e124f13 commander: refactor COM_DISARM_LAND to param wrapper
after review comment request from @dagar. Thanks!
2018-08-30 08:05:13 +02:00
Matthias Grob 0c6bffb66a commander: make auto disarm timeout float
such that fractions of a second are configurable
2018-08-30 08:05:13 +02:00
Matthias Grob 83c0888d80 Appveyor: finally found all install, build and path bugs, commented 2018-07-26 23:10:06 +02:00
Matthias Grob a31e851fd8 Appveyor: enable build cache and better download command 2018-07-26 23:10:06 +02:00
Matthias Grob cb57cf6ab5 Appveyor: switch to msi installer 0.3 2018-07-26 23:10:06 +02:00
Matthias Grob 3b1dcc8185 Cygwin: add appveyor sitl build 2018-07-26 23:10:06 +02:00
Matthias Grob 152c6db212 Fix logger signed unsigned error with GCC 7.3 in Cygwin (#10009) 2018-07-24 17:39:45 -04:00
MaEtUgR e8d2f1c2be FlightTaskOrbit: execute MAVLink orbit command
Latest QGC daily supports sending an orbit command. This commit applies
the correct radius, rotation direction, velocity and center position.
Still missing is a check to have global position available and applying
x,y coordinates and altitude independently.
2018-07-24 15:03:53 +02:00
MaEtUgR 7c068e47ab FlightTaskOrbit: fix acceleration limit inverting velocity
The formula only calculated the absolute value of the velocity and
the sign (rotation direction) got lost in that case.
2018-07-24 15:03:53 +02:00
MaEtUgR 12290c27e6 FlightTask: update global reference
For the geo.h C library to convert between global and local frame
we need an up to date global reference which is currently inside the
vehicle_local_position message.
2018-07-24 15:03:53 +02:00
MaEtUgR 7d4fcccf83 FlightTasks: fix switch case style 2018-07-24 15:03:53 +02:00
MaEtUgR e95d795b08 FlightTasks: use member function as check for constistency 2018-07-24 15:03:53 +02:00
MaEtUgR 6472b579dc FlightTaskOrbit: switch rotation direction
Switch to positive tangential velocity being clockwise because with NED
frame z-axis points down and mathematically positive around the z-axis
results in clockwise yaw rotation when seen from above. Also MAVLink
messages and other components in PX4 are defined this way.
2018-07-24 15:03:53 +02:00
MaEtUgR 8d88fa2fca FlightTasks: fix multiple comments 2018-07-24 15:03:53 +02:00
MaEtUgR 675b6bbabc mathlib: fix comment typo 2018-07-24 15:03:53 +02:00
MaEtUgR 3b7d31de75 FlightTasks: reintroduce vehicle command handling
The handling for vehicle commands inside the FlightTasks library
was already there but commented out because the previously used
MAVLink messages were tied to the specific application we used and
there was no clean common message definition. Because there is now
a well defined message for the orbit task I'm uncommenting and using
the working message handling again here.
2018-07-24 15:03:53 +02:00
MaEtUgR 5dae404fb2 vehicle_commands: add VEHICLE_CMD_DO_ORBIT 2018-07-24 15:03:53 +02:00
Matthias Grob 93bab20510 FlightTaskOrbit: switch to FlightTaskAltitudeSmooth
Nice smooth altitude control is already provided by the existing
flight task for altitude mode. We inherit from it to resuse the
functionality and just all its update first not altering the setpoints
for the z-axis it produced.
2018-07-24 15:03:53 +02:00
Matthias Grob ce49ac0259 FlightTaskOrbit: better member descriptions 2018-07-24 15:03:53 +02:00
Matthias Grob 26e3dbec2e FlightTaskOrbit: name member constants start with underscore 2018-07-24 15:03:53 +02:00
Matthias Grob 2b6926fe9d FlightTaskOrbit: speed up stick input to a fixed time frame
Maximum velocity achievable in 4 seconds,
maximum radius achievable in 8 seconds for futher testing.
These should be parameters as soon as it works fine.
2018-07-24 15:03:53 +02:00
Matthias Grob 33ba041120 FlightTaskOrbit: improve yaw tracking with feed-forward
To make the vehicle front always point exactly to the center and not
lag behind.
2018-07-24 15:03:53 +02:00
Matthias Grob c2223030d9 FlightTaskOrbit: add acceleration limit & unify checks 2018-07-24 15:03:53 +02:00
Matthias Grob 79aaa59715 FlightTaskOrbit: adapt comments to convention and 2018 2018-07-24 15:03:53 +02:00
Matthias Grob 993d76c0da FlightTaskOrbit: fix vehicle yawing to the center
I accidentally swapped yaw setpoint and yawspeed setpoint when switching
to the new setpointinterface in 309237c4a2
2018-07-24 15:03:53 +02:00
Matthias Grob 7e547e6322 FlightTask StraightLine: use 2D Vector and remove newline 2018-07-24 08:40:05 +02:00
Matthias Grob cc0bc05156 mc_att_control: remove useless parameter MC_YAW_FF
It scales the yawspeed setpoint arbitrarily by default with 0.5.
This makes no sense because when you give a setpoint of 1rad/s then
you expect the setpoint to get executed. If you want manual yawspeed
response to be less agressive on the stick use the scaling parameter
for the stick MPC_MAN_Y_MAX.
2018-07-20 09:26:18 +02:00
MaEtUgR efed766919 FlightTasks: small rebase naming and typo fixes 2018-07-20 09:26:18 +02:00
MaEtUgR 70802ba15a FlightTaskManual: Yaw lock with deadzone and expo
More than a year ago I started the easy to use math::Functions to handle
the always used mathematical SISO functions to be tested and available.

I switched x, y and z stick input to the freesh programmed deadzone and
exponential functions from the library to unify and clarify their use.
I just realized yaw was left over because it lead to a drift problem in
certain new use cases.

Now I'm just adding the yaw stick to the already well working method.
2018-07-20 09:26:18 +02:00
Matthias Grob ade70cbbdf cmake px4_base: switch visibility.h back to relative include path (#9981) 2018-07-19 09:49:04 -04:00
MaEtUgR 6a06417096 rpi_rc_in: replace chinese comments with english ones 2018-06-28 15:33:24 +02:00
MaEtUgR 01afeed967 cmake nuttx upload: add verbatim parameter
to disable automatic evaluation of /dev/ttyS* expression in cygwin.
On linux verbatim seems to be default anyways. At least it doesn't get
evaluated on linux.
2018-06-06 12:32:03 +02:00
Matthias Grob 58dd7be12a Cygwin: enable arm nuttx upload within cygwin
In the Cygwin environment the native Windows serial COM# ports get mapped
to /dev/ttyS# for POSIX compatibility. While # is one number lower inside
the environment than the COM port number because it's 0 indexed instead
of 1.

I added the necessary handling to all the dependent parts I found which
allows uploading to /dev/ttyS# when the cygwin platform is detected.
Now the usual "make px4fmu-v4 upload" and
"./Tools/upload.sh build/px4fmu-v4_default/px4fmu-v4_default.px4" work.
2018-05-09 11:31:42 +02:00
Matthias Grob 2c56ceec93 astyle: switch condition to empty string check
Thanks to @bkueang 's review comment I switched to an explicit check for
an empty sting instead of a condition that could be theoretically true
in other cases and is less readable.

Type "man test" on your terminal to read up what -n stands for.
2018-05-09 07:54:22 +02:00
Matthias Grob ef7e885644 Makefile: fix parameter -e printed by echo
It seems that on linux only inside a makefile the parameter after the echo
command gets printed if no single quoted sting comes afterwards so I had
to switch to single quotes such that I can use the parameter.
2018-05-09 07:54:22 +02:00
Matthias Grob 4e139d2426 Makefile: fix color output of makefile echos
Force interpretation of backslash escapes with the parameter -e of echo.
Switch to a lighter blue because on certain terminals default blue is
hard to read on black background.
2018-05-09 07:54:22 +02:00
Matthias Grob 72db7d3396 astyle: fix display language dependency
The shell script which checks the style relies on greping for the
keyword "Formatted" in the output of astyle. But the program has
localization support and will output in other languages e.g. german.
This leads to all style checks always succeeding. I only tested this
on Windows in Cygwin but I can imagine the problem also exists in
non-english Ubuntu installations.

Solution is the parameter --formatted of astyle which only produces
any output if there was something to fix. This allows for a display
language independent condition for an empty string inside the shell
script.
2018-05-09 07:54:22 +02:00