Commit Graph
100 Commits
Author SHA1 Message Date
Roman Bapst bef8b6b949 mavlink hash check: return early in case of hash check parameter (#10861)
*  a request for setting the '_HASH_CHECK' parameter is handled differently
than the same request for a standard parameter. Make sure we don't actually
try to set the parameter.

Signed-off-by: Roman <bapstroman@gmail.com>
2018-11-25 14:01:23 -05:00
Roman Bapst 90bfdb6f0a VTOL rate control architecture improvements (#10819)
* attitude and rate setpoint message: use 3D array for thrust demand
* FixedWingAttitudeControl: rework airspeed scaling
  * move airspeed and scaling calculation into separate method
  * if vtol in hover and airspeed disabled use minimum airspeed instead of trim airspeed
2018-11-21 20:32:40 -05:00
Roman deed462e62 tiltrotor back-transition improvements:
- do not set zero throttle during the entire back-transition because otherwise
we need to make the back-transition really short
- added ramping up of throttle setpoint during backtransition to avoid
step inputs
- back-transition ends after back-transition time and not when motors are fully
rotated updwards. previously the vehicle would enter hover mode at high speed
which was not handled well by the mc position controller

Signed-off-by: Roman <bapstroman@gmail.com>
2018-11-06 22:10:38 +01:00
Roman 40884a9238 FlightTaskTransition: added missing override
Signed-off-by: Roman <bapstroman@gmail.com>
2018-11-07 00:13:43 +08:00
Roman 50724bce86 mc_pos_control: support VTOL transitions again
Signed-off-by: Roman <bapstroman@gmail.com>
2018-11-07 00:13:43 +08:00
Roman fea309b606 added a flighttask for automatic vtol transitions
Signed-off-by: Roman <bapstroman@gmail.com>
2018-11-07 00:13:43 +08:00
Roman e1992a5036 ROMFS: enable weathervane by default for VTOL
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 13:30:32 -04:00
Roman ad88ef14e1 weathervane: use a single parameter to enable
- in auto mode we always run weather vane
- in manual model we just use it in position control mode

Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman ee5007e886 weathervane params: added unit tag and minor comment update
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman 96f3feb088 weathervane: get rid of passive strategy
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman 0e835cb498 Weathervane: pass quaterionon as constant reference
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman ccaeb58708 WeatherVane lib: address review comments 2018-09-19 08:27:07 +02:00
Roman ce7272a39c WeatherVane: calculate rotation matrix directly when updating
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman d6b6a1d0b3 addressed comments from review
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman 4ad11484ca mc_pos_control: moded weathervane parameters to weathervane lib
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman 8abcf2defa mc_pos_control: use weathervane library to make vehicle turn into relative wind
Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman 6038c22174 added a weathervane library
- computes a yaw-rate setpoint that tries to rotate the nose of the vehicle
into the relative wind.

Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-19 08:27:07 +02:00
Roman Bapst f361749d70 mavlink temporary workarounds for dronekit: added parameters to disable (#10422)
hash check and heartbeat forwarding

- hash check disabling: for systems where a companion link forwards messages
to QGC (e.g. via LTE) parameter streaming will be stopped as soon as QGC
sends the request to stop the stream. If the companion side for some reason
still requires the stream to be active we need to disable QGC from stopping
the stream. Normally dronekit should be responsible for filtering out the
request from QGC but apparently this is not possible.

- disable heartbeat forwarding: dronekit does seem to get confused if
heartbeats from another system other than the autopilot get forwarded to it.
Example: Sending messages from QGC via the autopilot to dronekit running on
companion computer.

Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-17 13:24:20 -04:00
Roman e17f0802cc tecs msg: changed flight_path_angle to height rate as clearly we are
looking at height rates

Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-17 10:27:08 -04:00
Roman Bapst 8158cdfcf4 navigator: set yaw_valid flag in reposition triplet (#10294)
- yaw_valid flag was always left at false which made the position controller reject the yaw setpoint of the reposition command
2018-09-16 19:29:38 -04:00
Roman 5847ab4607 posix main.cpp: better reporting e.g. when there are permission problems
- if somebody tries to use the shell with insufficient permissions he will be told so

Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-14 14:43:08 +02:00
Roman Bapst 2d59ead1bf simulator: add MAV_TYPE to module parameters (#10476)
- this ensures that the MAV_TYPE parameter is always updated
- previously it could happen that the simulator module was using a wrong
MAV_TYPE value because it only read the parameter value at initialisation

Signed-off-by: Roman <bapstroman@gmail.com>
2018-09-13 21:56:21 -04:00
Roman 844671ed6d mavlink: moved to ModuleParams
Signed-off-by: Roman <bapstroman@gmail.com>
2018-08-30 11:13:24 -04:00
Roman Bapst 8b1381ead9 update ecl l1 and usage for new roll angle setpoint slew rate limit (#10005)
* added ability to slew rate limit the roll angle output of the l1 controller
* FixedWingPositionControl: this avoids the steps in roll angle setpoint which occur when the controller
switches to a new waypoint
* GroundRoverPositionControl: adapted to new l1 API
2018-08-01 14:01:41 -04:00
Roman 37f59ad4f5 mavlink: fixed nullptr dereferencing in case unknown mavlink message is
forwarded

Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-27 18:41:51 +02:00
Roman 9d1fa8cee2 esc_calibration: adjust timeout when waiting for user to connect battery
to 20 seconds

Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-03 07:05:38 +00:00
Roman 5d87eed41c esc_calibration: use hrt_elapsed_time instead of manually calculating the diff
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-03 07:05:38 +00:00
Roman 73577df994 esc_calibration: use batter status connected flag instead of checking voltage
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-03 07:05:38 +00:00
Roman beb8c3e152 esc_calibration: use predefined literals
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-03 07:05:38 +00:00
Roman 8b629454de esc_calibration: increase safety and initialise all data
- do not do calibration if not very sure that battery is not connected
- initialise all structs and variables

Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-03 07:05:38 +00:00
Roman e1117d175b ROMFS: updated deltaquad autoconfig params
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-03 08:53:30 +02:00
Roman 863cd52714 ROMFS: fixed some naming inconsistencies for the HITL VTOL model
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-02 13:09:35 +02:00
Roman 220068acb6 ROMFS: use more appropriate autostart ID for standard vtol hitl
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-02 13:09:35 +02:00
Roman d70e90f174 ROMFS: remove unnecessary params from hitl vtol config
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-02 13:09:35 +02:00
Roman b37ff23708 ROMFS: indicate that the hitl vtol config is for the gazebo standard vtol model
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-02 13:09:35 +02:00
Roman 1dea998be5 ROMFS: clean up quad x tailsitter mixer files
- use mixer for the simulation to the sitl mixer dir
- do not use virtual elevator in the mixer for the real vehicle

Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-02 13:09:35 +02:00
Roman 484a939779 added MAV_TYPE to standard vtol hitl config
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-02 13:09:35 +02:00
Roman 9546daadea ROMFS: added autostart and mixer file for standard vtol in hitl
Signed-off-by: Roman <bapstroman@gmail.com>
2018-07-02 13:09:35 +02:00
Roman Bapst 27fa29787d updated sitl_gazebo: use asphalt plane instead of uneven ground to reduce (#9675)
computational load in optical flow simulation

Signed-off-by: Roman <bapstroman@gmail.com>
2018-06-14 14:28:28 -04:00
Roman 464db32567 removed error message in qurt stub implementation of putchar
Signed-off-by: Roman <bapstroman@gmail.com>
2018-05-23 10:08:28 -04:00
Roman 20b51d6256 sdflight config: weird changes to get things working
- just use external mag, if they run together the sensor_mag_0 topic gets
corrupted even though they publish on different instances
- added sleep at two places, they resolve weird boot problems like params
not being read correctly...

Signed-off-by: Roman <bapstroman@gmail.com>
2018-05-23 10:08:28 -04:00
Roman 835275f1a4 df_mpu9250_wrapper: publish imu based on integrator dt, not fixed count
Signed-off-by: Roman <bapstroman@gmail.com>
2018-05-23 10:08:28 -04:00
Roman f3c12bc7c7 DfBmp280Wrapper: initialise baro report
Signed-off-by: Roman <bapstroman@gmail.com>
2018-05-23 10:08:28 -04:00
Roman 4be4b9810e mpu9250 wrapper: support updating gyro & accel cutoff via parameter
- useful for tuning snapdragon flight

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-20 11:53:31 -04:00
Roman 7fa91ad3dd posix-configs: increase tailsitter land speed
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-18 17:23:38 -04:00
Roman bb4b5e7c1d posix-configs: set tailsitter SITL SYS_AUTOSTART to quad tailsitter
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-18 17:23:38 -04:00
Roman 694df08b37 posix-configs: better tailsitter front transition parameters
- reduce height increase during front transition

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-18 17:23:38 -04:00
Roman e7e791fb1a tailsitter: use forward transition throttle for climb-rate controlled mode
- the mc pos controller will decrease throttle during the transition
and thus the vehicle will not pick up enough airspeed to complete the
transition

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-18 17:23:38 -04:00
Roman 0f1c9504d5 FixedWingPositionControl: rotate attitude consistenly for tailsitters
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-18 16:20:15 +02:00
Roman c206e0f1ac vtol_type.cpp: close pwm output device file descriptor
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman bd434636e9 vtol_type: avoid code duplication
- created one method which has access to the pwm output device

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 733d773bcc drv_pwm_output: include board config header
- board config can define PX4_PWM_ALTERNATE_RANGES which needs to be known
by the compiler prior to processing this file

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 41a9ac0acb vtol_att_control: initialise VT_FW_MOT_OFFID correcly for standard vtol
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman df53dce6e1 vtol_type.h: initialise flag_idle_mc correctly
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman cd49c4bc17 vtol_type: improve comments
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 79ff1436b8 vtol_att_control: move handling of motor state and idle speed selection
to VtolType class

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 744f806214 vtol_att_control: merge methods to disable a selection of motors
- moved methods used to modify channel maximum pwm value to VtolType
class so that the can be shared by the differnt vtol types

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-12 09:19:47 +02:00
Roman 8f9e8a6282 FixedWingAttitudeControl: use trim airspeed if airspeed is disabled
- prior to this fix the fw attiude controller used airspeed to scale control
surfaces even though airspeed was disabled

Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-11 15:03:45 +02:00
Roman d6a86dfa56 tailsitter: do not condition transition on airspeed if airspeed disabled
Signed-off-by: Roman <bapstroman@gmail.com>
2018-04-05 08:48:36 +02:00
Roman 2257cfc0fa vtol_att_control: set flag in_transition_to_fw properly
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-30 00:46:23 -04:00
Roman cc26c34691 airspeed driver: un-advertise differential pressure topic
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-23 09:57:28 -04:00
Roman e504dc86b7 fw & vtol startup scripts: don't start wind estimator for now
- need to make some flash space for fmuv2 to avoid user confusion about
why it wind estimator only runs on some platforms

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman d9fbf85c20 ekf2: remove early advertising of wind estimate topic
- if it's not estimating wind it won't publish it below (was fixed)

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 372a519ac4 wind estimator: added airspeed and sideslip gate sizes for innovation tests
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 32a848d312 updated ecl for airdata module 2018-03-21 18:46:58 +01:00
Roman 8400d42988 wind estimator: fixed minor comments
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 86b525ad2c wind_estimator: use ModuleParams class to handle parameters
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 1fd1a426bb cmake configs: don't build wind estimator for fmu-v2 due to lack of flash space
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman d2ebb0c7a2 ekf2: advertise wind topic early to make sure ekf2 get the first instance
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 5b067df01e wind_estimator: cleanup
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 33c1bcb983 wind_estimator: set missing task_id
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 53e22661d4 wind_estimator: unsubscribe from topics and unadvertise wind topic
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman df3a3daa0f start wind estimator for relevant platforms
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 9dc7d1dd74 cmake configs: added wind estimator to relevant configs
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 7c0f043116 added module which implements wind & airspeed scale factor estimator via
work queue

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman 9e1089a4fc wind estimate msg: added more relevant data
- true airspeed innovation and variance
- sideslip angle innovation and variance

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman cb30d66cef convergence config: increase multirotor idle speed
- increase the minimum pwm value for multirotor mode since we experienced
the rear motor stalling in certain situations when throttle was low

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-20 21:00:34 -04:00
Roman 64b97cb18e fw_att_control: in acro use thrust from rate setpoint topic
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-09 13:48:14 +01:00
Roman ac2b3ccadc vtol_att_control: default front transition throttle to 100%
- the main idea is to prevent airspeed less systems to stall after a
transition

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman e4ea7262fd tailsitter.cpp: small cosmetic fix
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 03338935e0 vtol_att_control: make sure blending airspeed is smaller than transition airspeed
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman e0ca38e794 standard vtol: fix mc weight calculation
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 23257bf6ee standard vtol: simplify blending weight calculation
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman b66bc712af tailsitter: avoid doing same calculation twice
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 1d8f588d37 vtol_att_control: switch from division to multiplication for variable
calculation

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 9e16543dbe tiltrotor: represent time since transition in seconds
- more intuitive
- avoids tons of divisions

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman ae2e6c7a18 tailsitter: represent time since transition in seconds
- more intuitive
- avoids tons of divisions

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman bf22f02567 tailsitter: removed usage of hrt_elapsed and small cleanup
- do not call hrt_elapsed_time since it's expensive
- remove P2 front transition phase (was not even used)

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 196d0e40b4 standard vtol: use time in second since transition start instead of using
microseconds

- seconds is more intuitive
- avoids tons of divisions by 1e6f

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 5a2a5127fa tailsitter: removed common vtol parameters
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 2c0436c37c sitl tiltrotor config: front transition throttle parameter name change
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 07a84f2246 tiltrotor: removed common vtol parameters
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 6900f97b72 vtol_att_control: use airspeed_disabled flag instead of airspeed mode
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 8f71633516 sitl configs: updated VT_TRANS_THR parameter name change
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman 4859cc04dc ROMFS: updated VT_TRANS_THR parameter name change
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-07 14:01:51 +01:00
Roman daa6c6ffc8 vtol_att_control: consolidated standard parameters & fix usage of hrt_elapsed time
- standard vtol was implementing many custom parameters although they
are generic and should be shared between the vtol types
- removed heavy usage of hrt_elapsed_time() which is a system call and
could be computationally expensive
2018-03-07 14:01:51 +01:00
Roman bf097d7fa4 convergence config: increase idle speed in mc mode
- this makes sure that all motors are idling in mc mode. having this too
low can lead to a motor stopping in flight which is critical for
attitude control
- experienced loss of attitude control in RTL during descent prior to this
change

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-05 15:48:13 -05:00
Roman ff86d15c13 caipirinha vtol: do not lock elevons in hover mode
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-01 22:07:36 +01:00
Roman ea3586cfd9 tailsitter: stop fiddling with thrust during transition and just let
the mc pos controller handle it for now

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-01 12:16:27 -05:00
Roman 08534588cd fw_pos_control: get vtol parameter values if vehicle is vtol
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-01 12:16:27 -05:00