Commit Graph
100 Commits
Author SHA1 Message Date
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
Matthias Grob 711b21cc5b mc_att_control: improve a quaternion control comment 2018-04-11 11:14:47 +02:00
Matthias Grob f99471f34c PositionControl: refactor remove Data define for Vector
This define results in super unreadable code.
2018-04-05 07:30:12 +02:00
Matthias Grob 2405baa2c9 FlightTasks: fix manual mode takeoff
With the new position control architercture manual mode and
potition mode run through the same logic and as a result
it had a throttle thershold for smooth takeoff also in
manual mode. This is fixed by by ignoring the threshold for
any mode which doesn't control the climb rate.
2018-04-05 07:30:12 +02:00
Matthias Grob 4bf33339dc FlightTaskManualStabilized: remove double limit of yawspeed
The same paramater was used twice, once for scaling the yaw stick
and once for limitng just after. This was useless.
2018-04-05 07:30:12 +02:00
Matthias Grob eaf4f99e38 FlightTasks: adapt tasks to member setpoints
The FlightTaskManual... tasks already had their internal
setpoint member variables. I switched them to use the
architecture with setpoint member variables as it was
implemented the commit before. They simplify a lot.
2018-04-05 07:30:12 +02:00
Matthias Grob 309237c4a2 FlightTasks: replace setpoint setters with members
I realized that instead of using the setpoint setters inline
in real world tasks everyone started to have its own setpoint
member variable and only call the setter in the end for all the
privatly generate setpoints. This makes the setter useless and
therefore I switched to member setpoints in the architecture.
They bring more felxibility which is obviously needed but also
less structure which is the price to pay.
2018-04-05 07:30:12 +02:00
Matthias Grob dc60bc8766 mc_pos_control: enable flight tasks
instantiate flight tasks and the refactored position controller class
only use the new functionality if a temporary parameter is set for testing
2018-04-05 07:30:12 +02:00
Matthias Grob 0dcad42f57 mc_pos_control: refactor, indent control block
individual commit for the indentation because otherwise
the diff gets unreadable. this indentation is made because
afterwards the entire legacy position control functionality
is in an else case.
2018-04-05 07:30:12 +02:00
Matthias Grob 5ee136fe10 mc_pos_control: refactor, move landed thrust reduction into function
and make it use matrix library for flight task compatibility

# Conflicts:
#	src/modules/mc_pos_control/mc_pos_control_main.cpp
2018-04-05 07:30:12 +02:00
Matthias Grob fabf214bca mc_pos_control: refactor, move smooth takeoff velocity into a function
# Conflicts:
#	src/modules/mc_pos_control/mc_pos_control_main.cpp
2018-04-05 07:30:12 +02:00
Matthias Grob d5f90a1503 FlightTasks: add library to cmake configurations
all the ones with mc_pos_control need the library, we should use cmake dependencies!
2018-04-05 07:30:12 +02:00
Matthias Grob 8b4471d842 FlightTasks: comment out mavlink command processing
because upstream there needs to be a
common mavlink command definition first
and then it can be easily reenabled again
2018-04-05 07:30:12 +02:00
Matthias Grob cf48ceb428 Revert "Subscription remove unused instance class member"
This reverts commit cf2d794da9.
2018-04-05 07:30:12 +02:00
Matthias Grob d22af4679d FlightTaskManualAltitude/Position: renamed and recommented velocity hold threshold 2018-04-05 07:30:12 +02:00
Matthias Grob 6fb9ca3b0c FlightTasks: corrected comment and sorted out unnecessary includes 2018-04-05 07:30:12 +02:00
Matthias Grob e1a81c7978 FlightTaskManual: remove unnecessary activate method 2018-04-05 07:30:12 +02:00
Matthias Grob e8cc93ec23 FlightTasks: create enumeration type for the task index while still offering integer index with checks 2018-04-05 07:30:12 +02:00
Matthias Grob f135e6dda0 FlightTasks: switch field name from thr to thrust + some code spacing 2018-04-05 07:30:12 +02:00
Matthias Grob 2b6e356c91 FlightTaskManual: fix for the sideways oscillations in fast foward flight when using the vehicle yaw estimate 2018-04-05 07:30:12 +02:00
Matthias Grob 089ebcbfa4 FlightTaskManual: fix two very stupid mistakes in the yaw hold logic 2018-04-05 07:30:12 +02:00
Matthias Grob 37e0f91c39 FlightTaskSport: scale maximal stick input to maximal allowed velocity instead of being hardcoded for testing 2018-04-05 07:30:12 +02:00
Matthias Grob 6c0acf8e13 FlightTaskManual: enable non-carrot velocity method also for yaw 2018-04-05 07:30:12 +02:00
Matthias Grob 975ac11635 mc_pos_control: enable yawspeed execution for tasks 2018-04-05 07:30:12 +02:00
Matthias Grob a896332746 FlightTaskManual: fixed stick vector index bug and enabled basic yaw setpoint control 2018-04-05 07:30:12 +02:00
Matthias Grob a00c3e4024 FlightTaskSport: created a simple child class of FlightTaskManual that can scale the velocity to a much higher value 2018-04-05 07:30:12 +02:00
Matthias Grob de872ca047 FlightTaskManual: remove the smoothing from the task to add it later in a child class
also separated the velocity scaling to enable sport mode
2018-04-05 07:30:12 +02:00
Matthias Grob 6070d72308 FlightTasks: Various review refactoring 2018-04-05 07:30:12 +02:00
Matthias Grob 4d0dca5dd5 FlightTask: make applyCommandParameters getting called recursively & pass command by reference 2018-04-05 07:30:12 +02:00
Matthias Grob 4bb3692020 FlightTask: remove unused declaration of old position evaluation method 2018-04-05 07:30:12 +02:00