Compare commits

..

2262 Commits

Author SHA1 Message Date
Kabir Mohammed
5cbaaa633b FINALLY fix mag rotation issues. (#7366)
* sensors : second cut at fixing mag calibration - remove old problematic code

* sensors : use more intuitive naming for loop variables
2017-06-07 10:49:57 +02:00
Anton Matosov
890c415ff2 Set acro to allowed max values 2017-06-07 12:20:05 +05:30
Anton Matosov
f692b87232 Replace tab with space between param name and value to prevent bricking 2017-06-07 12:20:05 +05:30
Daniel Agar
829e88587b SITL unit tests don't run perf (#7367) 2017-06-06 17:28:30 -04:00
Marco Zorzi
aef522553e unmanned ground vehicle (UGV) controllers and Traxxas Stampede configuration (#7175) 2017-06-06 13:26:51 -04:00
davidaroyer
184b190513 DF_MPU9250_Wrapper: move mag rotation prior to calibration application 2017-06-06 21:32:06 +05:30
Nicolae Rosia
6ddc0b3fef linux_gpio: open fd once, and reuse it
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-06-06 09:59:49 +02:00
Nicolae Rosia
92ac6f0c89 navio_adc: open fd once and reuse it
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-06-06 09:59:49 +02:00
Lorenz Meier
5f4fb744ca Uploader: Signal GCS or other connected devices that a FiFirmware upload is pending and requires device access. 2017-06-05 22:44:21 +02:00
Lorenz Meier
e60fbccbee MAVLink app: Add ability to output packets for training and inspection 2017-06-05 22:44:21 +02:00
Daniel Agar
3aa502ba25 travis-ci remove code coverage build and upload (#7357) 2017-06-05 09:17:16 -04:00
Daniel Agar
833cdc9236 EKF2 update GPS and airspeed delay defaults (#7353)
* update ecl to latest

* EKF2_GPS_DELAY change default 200ms -> 110ms

 - 110msec is more representative of what most users are flying

* EKF2_ASP_DELAY change default 200ms -> 100ms

The EKF is relatively insensitive to airspeed sensor delays and the effective delay is installation specific, so it has been set to a value that does not cause the data buffers to be longer than is required to accomodate GPS delays.
2017-06-05 10:31:46 +10:00
Lorenz Meier
6fbf09d8da Fix LPE exception handling in ROMFS 2017-06-04 16:59:25 +02:00
Nacho Carnicero
e6670d7926 Drone yaw set to destination waypoint yaw in LOITER mode if MIS_YAWMODE=0 (#7269)
* Drone does not change orientation while in LOITER mode if MIS_YAWMODE=0

* Fix code style

* Some more code style fixes

* Format checks passed
2017-06-04 20:01:40 +08:00
Lorenz Meier
c80fd2c317 FMUv4: ENable PCA9685 driver so it is compiled at least in one config by default 2017-06-04 12:52:41 +02:00
Lorenz Meier
ad05a6a7ec PCA9685 driver: Fix define 2017-06-04 12:52:18 +02:00
Lorenz Meier
c9a28fc0eb ROMFS: Reset the estimator param to EKF2 if LPE fails to start 2017-06-04 12:43:28 +02:00
Daniel Agar
69ba69f30c controllib split blocks into separate files 2017-06-04 18:22:42 +08:00
Daniel Agar
3d6792c019 Block and SuperBlock minor cleanup 2017-06-04 18:22:42 +08:00
Daniel Agar
1671c32238 BlockParamExt replace with BlockParam reference types 2017-06-04 18:22:42 +08:00
Daniel Agar
b03818cd0e controllib move old blocks to segway 2017-06-04 18:22:42 +08:00
Daniel Agar
db816982cd px4params don't search recursively for params
- move controllib_test under controllib
2017-06-04 18:22:42 +08:00
CAI Dongcai
0dfd8cd039 Update fw_att_control_main.cpp
Make the declarations of the  variables "roll_sp, pitch_sp, yaw_sp, throttle_sp," in the main loop more readable.
2017-06-04 18:17:29 +08:00
Lorenz Meier
d9dd1b231d UAVCAN server: Use correct MAVLink header version 2017-06-04 10:16:33 +02:00
Lorenz Meier
8c3b90007c MAVLink app: Enable protocol version handshaking
This allows the ground control station or any other communication partner to query the supported versions. The key aspect is to send the response in MAVLink 2 framing to test the link with a MAVLink 2 framed message.
2017-06-04 16:14:00 +08:00
Lorenz Meier
990ae93cae Version: Add MAVLink git hash to available versions 2017-06-04 16:14:00 +08:00
Lorenz Meier
ea223505ae Tools: Add MAVLink libary git hash to exported symbols 2017-06-04 16:14:00 +08:00
Lorenz Meier
752623f26d Update MAVLink 2.0 headers to latest 2017-06-04 16:14:00 +08:00
Daniel Agar
b4e2360070 uORB generation use constexpr (#7348) 2017-06-03 18:02:42 -04:00
Fredmcc
96cffd4077 Fixed some formatting 2017-06-04 04:43:07 +08:00
Fredmcc
4ffbaed500 Fixed GPS Date on frsky SPort 2017-06-04 04:43:07 +08:00
Fredmcc
90a05a0f55 Fixed SPort heading scale and sourced from vehicle_local_pos 2017-06-04 04:43:07 +08:00
Fredmcc
5290e6cfe1 Fixed SPort scale for GPS coords and Altitude 2017-06-04 04:43:07 +08:00
Beat Küng
0c3a34fb7f mavlink log handler: remove code to delete the msgs_ mavlink txt log files 2017-06-04 04:35:21 +08:00
Beat Küng
a5485c97e0 mavlink: remove _log_enabled flag
It's obsolete since we removed the mavlink log file
2017-06-04 04:35:21 +08:00
Lorenz Meier
e2fa5c2857 MAVLink: Remove status text output
The MAVLink app was logging the status to a file on the SD card, however, this has been integrated into the ulog format since. Having these in multiple locations is unnecessarily confusing to the user and induces load to the system.
2017-06-04 04:35:21 +08:00
davidaroyer
8be3985524 rc: remove unnecessary board ifdef 2017-06-04 04:24:50 +08:00
davidaroyer
7b5753f426 drivers: use relative path for ocpoc pwm out mixer file 2017-06-04 04:24:50 +08:00
davidaroyer
2b73c977a1 drivers: remove unnecessary compile flags 2017-06-04 04:24:50 +08:00
davidaroyer
59057184ce posix-configs: update ocpoc config file 2017-06-04 04:24:50 +08:00
davidaroyer
078d13e45e toolchains: remove unnecessary definition 2017-06-04 04:24:50 +08:00
davidaroyer
99799d83b1 ocpoc support: update copyright dates 2017-06-04 04:24:50 +08:00
davidaroyer
8e0b8314c6 drivers: move board specific device path to board_config.h 2017-06-04 04:24:50 +08:00
davidaroyer
68983f7ee2 fix code style 2017-06-04 04:24:50 +08:00
davidaroyer
0de70af78d mixers: add default mixer for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
davidaroyer
0b6fd4f8a2 rc: add support for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
davidaroyer
0510cd5992 drivers: add support for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
davidaroyer
dbbe3c0863 commander: add support for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
davidaroyer
a236bd1015 sensors: add support for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
davidaroyer
0e6db671da posix-configs: add support for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
davidaroyer
c5ac73e87e cmake: add support for Aerotenna OcPoC-Zynq hardware 2017-06-04 04:24:50 +08:00
Julien Lecoeur
70ccfe80a7 Fuse flow only if it is activated in param LPE_FUSION 2017-06-04 04:20:46 +08:00
Simone Guscetti
a64e9bfa03 tap_esc: add board_config.h for completeness 2017-06-04 04:20:05 +08:00
Simone Guscetti
d59e9e2958 tap_esc: minor refractoring
- the definition of ESC_HAS_CURRENT_SENSOR is now in drv_tap_esc
- add tap_esc_common move crc table there
- header guards are applied to the header files
2017-06-04 04:20:05 +08:00
Daniel Agar
625dc67f84 commander offboard loss rc act unreachable
- coverity fix 145492
2017-06-04 02:37:09 +08:00
Daniel Agar
beaa758605 lcov ignore src/examples (#7341) 2017-06-02 23:22:50 -04:00
Daniel Agar
24b26e53b9 cmake organize code coverage handling and base 2017-06-02 19:35:18 -04:00
Daniel Agar
17c1114b3e clang-tidy readability-named-parameter 2017-06-02 19:35:18 -04:00
Daniel Agar
0d0cbd8243 clang-tidy ignore cert-flp30-c only in tests 2017-06-02 19:35:18 -04:00
Daniel Agar
94f5df8611 param and pwm ignore -Warray-bounds for clang 2017-06-02 19:35:18 -04:00
Daniel Agar
17a3b195fa cppcheck start with errors only 2017-06-02 19:35:18 -04:00
Daniel Agar
de9c39447c cppcheck ignore examples 2017-06-02 19:35:18 -04:00
Daniel Agar
c56df948ee mathlib expo template style 2017-06-02 19:35:18 -04:00
Daniel Agar
78205b25c9 gyrosim remove unused work handle 2017-06-02 19:35:18 -04:00
Daniel Agar
e4f55e4526 travis-ci upload cppcheck, scan-build, and coverage to s3 2017-06-02 19:35:18 -04:00
Daniel Agar
1ebe215c60 check_submodules.sh only sync selected submodule 2017-06-02 19:35:18 -04:00
Daniel Agar
5d626bd940 clang-tidy remove redundant init 2017-06-02 19:35:18 -04:00
Daniel Agar
8a681397bf travis-ci lazy init submodules 2017-06-02 19:35:18 -04:00
Daniel Agar
768faa1ae3 clang-tidy param avoid malloc(0) 2017-06-02 19:35:18 -04:00
Daniel Agar
2e0ed3b47b travis-ci add cppcheck 2017-06-02 19:35:18 -04:00
Daniel Agar
560bfd2b00 clang-tidy only list excluded checks 2017-06-02 19:35:18 -04:00
Daniel Agar
f1079e3382 mission block remove unread value 2017-06-02 19:35:18 -04:00
Daniel Agar
4e21b2378f travis-ci coverity optimization 2017-06-02 19:35:18 -04:00
Daniel Agar
ef7295affb travis-ci split quick_check into tests and check_format 2017-06-02 19:35:18 -04:00
Daniel Agar
5434ae670b OSX build travis-ci -> circleci 2017-06-02 19:35:18 -04:00
Daniel Agar
d731558286 Makefile prepare to split qgc_firmware 2017-06-02 19:35:18 -04:00
Daniel Agar
621651fefa travis-ci quick_check replaces check_format and tests 2017-06-02 19:35:18 -04:00
Daniel Agar
0ac237f3df travis-ci coverity abort early 2017-06-02 19:35:18 -04:00
Daniel Agar
6a249c742b travis-ci add tests coverage to coveralls 2017-06-02 19:35:18 -04:00
Daniel Agar
a3078c63ab travis-ci stop deploying to s3 2017-06-02 19:35:18 -04:00
Daniel Agar
64ed96d81a clang-tidy readability-simplify-boolean-expr 2017-06-02 19:35:18 -04:00
Daniel Agar
3c06641897 clang-tidy config list all checks 2017-06-02 19:35:18 -04:00
Daniel Agar
fffd3d4c4c clang-tidy ignore google-global-names-in-headers and misc-redundant-expression 2017-06-02 19:35:18 -04:00
Daniel Agar
180ec59255 clang-tidy ignore mathlib assignment signatures for now 2017-06-02 19:35:18 -04:00
Daniel Agar
6e1113ae4d clang-tidy mathlib remove redundant void 2017-06-02 19:35:18 -04:00
Daniel Agar
e112161a04 clang-tidy fix mathlib headers and format 2017-06-02 19:35:18 -04:00
Daniel Agar
ac4a706da0 build system fixes and improvements
- deploy px4 metadata using target
 - clang scan-build upload output to s3
 - clang-tidy properly check headers
 - add cppcheck helper
 - force gcc color
2017-06-02 19:35:18 -04:00
Julian Oes
723a6bf6ac mavlink: new MAV_CMD_IMAGE_START_CAPTURE spec
The spec of the mavlink command MAV_CMD_IMAGE_START_CAPTURE has changed.
2017-06-03 02:53:58 +08:00
Mohammed Kabir
0cb3eb99dc sensors : correctly handle internal magnetometer rotations 2017-06-03 02:16:58 +08:00
Lorenz Meier
0b43546c6a BMI055: Ensure the accel driver sets the device ID in the report 2017-06-02 18:44:21 +02:00
Lorenz Meier
aecfe38f65 BMI055: Allow the independent use of just the gyro driver 2017-06-02 18:41:54 +02:00
Lorenz Meier
d12421b9eb BMI055: Ensure gyro device ID gets copied to report 2017-06-02 18:41:32 +02:00
Lorenz Meier
49b1bd597e FMUv4 config: Ensure enough stack space in user main function
There was enough margin with 200 bytes, but this change widens that to the default of 300.
;
2017-06-02 18:31:50 +02:00
Lorenz Meier
5e1490b8a1 BMI055: Ensure that accel and gyro start consistently.
This was required on a BOSCH board which otherwise could end up mis-detecting the 055 and not running properly
2017-06-02 18:30:51 +02:00
Lorenz Meier
9736c08e49 uORB listener: Expand command to allow selecting the instance to print
listener sensor_gyro 1 2

will now print one report of the third gyro (index 2). The syntax needs further polishing, but this is a valid intermediate step.
2017-06-02 18:30:01 +02:00
Lorenz Meier
b1670e7e6c BMI160 driver: Minor code style fix 2017-06-02 18:28:48 +02:00
Daniel Agar
7b861572a5 travis-ci fix s3 metadata upload (#7321) 2017-05-30 21:17:58 -04:00
ChristophTobler
680cebcb08 fix qgc flow takeoff -> use min takeoff alt if no home position 2017-05-30 10:22:09 +02:00
bresch
cdd7c57ded Multicopter mixer: When saturating, compute the new yaw value based on
the reduced thrust value
2017-05-30 12:01:42 +07:00
Nicolae Rosia
a0ee07e357 commander: enable partial preflight checks on RPI
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-29 21:38:21 +02:00
Simone Guscetti
6201fb5641 commander: arming with critical battery is not allowed 2017-05-29 18:40:57 +08:00
Lorenz Meier
29b0043455 Update README 2017-05-27 13:49:45 +02:00
Lorenz Meier
a9ad826b08 Commander: Relax gyro consistency check as users without temperature compensation do suffer from it. 2017-05-27 13:43:57 +02:00
Mohammed Kabir
ed5cf9f729 commander : simplify platform defines 2017-05-27 00:31:05 +02:00
Mohammed Kabir
49890c61f5 sensors : require reboot for all sensor orientation changes 2017-05-27 00:31:05 +02:00
Mohammed Kabir
62b7645130 sensors : remove deprecated (since 2015) mag rotation parameter 2017-05-27 00:31:05 +02:00
Mohammed Kabir
6ee09ca16f sensors : map between driver rotation order and uORB instance order when recieving first mag message 2017-05-27 00:31:05 +02:00
Mohammed Kabir
769fa7134a commander : make gyro calibration correctly lock-in to corresponding uORB topic 2017-05-27 00:31:05 +02:00
Mohammed Kabir
937efd3472 commander : make accel calibration correctly lock-in to corresponding uORB topic 2017-05-27 00:31:05 +02:00
Mohammed Kabir
302e2372cf mpu9250 : fill correct device ID into uORB topic 2017-05-27 00:31:05 +02:00
Mohammed Kabir
d7611cac89 commander : make mag calibration correctly lock-in to corresponding uORB topic 2017-05-27 00:31:05 +02:00
Mohammed Kabir
52f1718bb8 commander : warn if excess accels are connected 2017-05-27 00:31:05 +02:00
Mohammed Kabir
d177ccc9a7 commander : warn if excess gyros are connected 2017-05-27 00:31:05 +02:00
Mohammed Kabir
a11ef6be10 lis3mdl : fill device ID, scale and range into uORB topic properly 2017-05-27 00:31:05 +02:00
Mohammed Kabir
f97822155a rc.sensors : start external compass on v4Pro and v5 with temperature compensation and self-calibration at startup 2017-05-27 00:31:05 +02:00
Daniel Agar
dde605fc4a Tools/docker_run.sh pick appropriate container if not set (#7297) 2017-05-26 09:28:37 -04:00
Daniel Agar
1b2c54836f nuttx-patches FATAL_ERROR if patch isn't included 2017-05-25 13:28:10 -04:00
David Sidrane
6b3a665e33 Backport Upstream SDIO 1-bit and 16G Size Fixes
This backports upstrem NuttX
    ea7b673 - Allow dma in 1 bit mode in STM32F4xxx
    17cbec1 - fix warning from ea7b673
    4795d58 - Only the decoded.oid    = (cid[0] >> 8) change.
2017-05-25 13:28:10 -04:00
David Sidrane
635d861b76 Backport Upstream SDIO 1-bit and 16G Size Fixes
This backports upstrem NuttX
  ea7b673 - Allow dma in 1 bit mode in STM32F4xxx
  4795d58 - Only the decoded.oid    = (cid[0] >> 8) change.
2017-05-22 21:48:49 +02:00
Lorenz Meier
05b21958e7 Update README.md
Refresh team list.
2017-05-20 11:02:17 +02:00
David Sidrane
6bf19d2a06 BACKPORT of upstream NuttX stm32_serial: fix freezing serial port.
Thanks to Jussi Kivilinna

   9169ff6a15

   stm32_serial: fix freezing serial port.  Serial interrupt enable/disable functions
   do not disable interrupts and can freeze device when serial interrupt is received
   while execution is at those functions.

   Trivially triggered with two or more threads write to regular syslog stream and to
   emergency stream. In this case, freeze happens because of mismatch of priv->ie
   (TXEIE == 0) and actually enabled interrupts in USART registers (TXEIE == 1),
   which leads to unhandled TXE interrupt and causes interrupt storm for USART.
2017-05-20 10:26:20 +02:00
Paul Riseborough
ec3fe09602 ekf2: format fix 2017-05-20 10:24:08 +02:00
Paul Riseborough
889fb30029 ekf2: Improve control of magnetometer bias learning
Adds parameters so that the motion checks used to switch between magnetic yaw and 3-axis fusion can be adjusted.
Modifies the check used to determine if learned mag biases  can be saved. A cumulated calibration time is used rather than continuous calibration time to allow for for switching in and out of 3-axis fusion mode that is required to do calibration.
2017-05-20 10:24:08 +02:00
Paul Riseborough
aa69ae0ee6 ekf2: Add preflight checking of velocity and height innovations
Filters the vertical position and 3-axis velocity innovations and sets the local and global position as invalid if they exceed limits during ARMING_STATE_STANDBY.
2017-05-20 10:24:08 +02:00
Paul Riseborough
2d34a3e096 ekf2: monitor estimator time slip
Used to check if the ekf2 module is failing to keep up with the IMU data
2017-05-20 10:24:08 +02:00
Paul Riseborough
e2242f87c9 msg: update estimator_status
Reduce unnecessary length of state and covariance arrays
Add time slip monitor
2017-05-20 10:24:08 +02:00
Paul Riseborough
e7a225bf48 ecl: use latest master 2017-05-20 10:24:08 +02:00
Kevin Lopez Alvarez
cdf941e78b Fix code style 2017-05-20 10:23:28 +02:00
Kevin Lopez Alvarez
588a8d3841 px4fmu-v4pro : Add support for ICM20602 2017-05-20 10:23:28 +02:00
Lorenz Meier
74b0e485e7 MAVLink stream: Ensure the message is not sent again if it was already dispatched. 2017-05-19 10:34:43 +02:00
Lorenz Meier
c84611f0f5 MAVLink: Fix rate handling for camera trigger messages 2017-05-19 10:34:43 +02:00
Nicolae Rosia
ee637952ba aerofc_adc: fix error handling in init
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-19 10:34:18 +02:00
Kabir Mohammed
410577bb27 Update README.md 2017-05-19 10:13:39 +02:00
Lorenz Meier
2ad92dd144 Update README.md
Added maintainers / corrected formatting.
2017-05-19 10:10:55 +02:00
Lorenz Meier
6094ceade1 Update README.md 2017-05-19 10:08:10 +02:00
Lorenz Meier
654a8cb43a Update README.md 2017-05-19 10:07:54 +02:00
Luís Felipe Strano Moraes
9935aeba16 Add Jose as maintainer for Intel Aero.
With great power comes great responsibility!
2017-05-19 08:43:49 +02:00
Nicolae Rosia
7d1dfb37a5 linux_gpio: pin should be unsigned int
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-18 23:09:44 +02:00
Nicolae Rosia
99d4f70ef8 linux_gpio: check if pin is already exported
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-18 23:09:44 +02:00
Nicolae Rosia
b82a0f988e linux_gpio: use nullptr
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-18 23:09:44 +02:00
Nicolae Rosia
4af7036a8a replace navio_gpio with linux_gpio
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-18 23:09:44 +02:00
Beat Küng
3d77102653 mavlink_main: remove MISSION_ITEM from streams configuration 2017-05-18 09:48:14 +02:00
Beat Küng
2a79ddd621 MavlinkLogHandler: increase MAX_BYTES_SEND to 256kb
It increases the throughput on UDP (from around 2Mb to 2.5Mb), while the
rate via USB & telemetry stay the same.
2017-05-18 09:48:14 +02:00
Beat Küng
a89980f440 MavlinkParametersManager: update sending rate
This is an adjustment due to the changed calling frequency of send()
(was 300 Hz, is now 100 Hz)
2017-05-18 09:48:14 +02:00
Beat Küng
cfa61c5841 MavlinkReceiver: add mission manager, param manager, ftp and log handler
This makes also a slight stack size increase necessary (was 284 bytes left)
2017-05-18 09:48:14 +02:00
Beat Küng
d70caeb24b MavlinkParametersManager: remove MavlinkStream inheritance 2017-05-18 09:48:14 +02:00
Beat Küng
a761c4189e MavlinkMissionManager: remove MavlinkStream inheritance 2017-05-18 09:48:14 +02:00
Beat Küng
99b29777ba MavlinkLogHandler: remove MavlinkStream inheritance 2017-05-18 09:48:14 +02:00
Beat Küng
e6c3b29aa6 MavlinkFTP: remove MavlinkStream inheritance 2017-05-18 09:48:14 +02:00
Beat Küng
78c1f51f11 mavlink main: remove mission_manager, param manager, ftp & log handler
Will be moved to the receiver thread
2017-05-18 09:48:14 +02:00
Beat Küng
4105394234 mavlink_receiver: check for allocation failure
Also remove the start() declration (there's no definition of that)
2017-05-18 09:48:14 +02:00
Beat Küng
2c548f84a7 refator mavlink: prefix class members with _ 2017-05-18 09:48:14 +02:00
Daniel Agar
ef5bc526de Tools/ecl_ekf mark executable 2017-05-17 09:02:52 +02:00
David Sidrane
3c62f7a3eb stm32:drv_input_capture bug fixes.
Filter for channel 4 was modifying channel 1
   capture and overflow reads were using wrong paramaters
   in macros and addressing junk in memory.
   up_input_capture_get_filter was shifing results the wrong way.
2017-05-17 08:34:57 +02:00
David Sidrane
a15b8565ef Removed wrong comment 2017-05-17 08:34:57 +02:00
Lorenz Meier
9be5193965 Navigator: Fix RTL command lnd logic for missions
The navigator was sending RTL commands in the wrong circumstances leading to a cycle between Navigator and Commander.
2017-05-16 08:40:53 +02:00
Dennis Mannhart
32685338c9 mc_pos_control: simplify transition with just using triplets 2017-05-15 15:41:47 +02:00
Dennis Mannhart
a98c0ef25d mc_pos_control: during transition set vel_sp to zero 2017-05-15 15:41:47 +02:00
Dennis Mannhart
1ee160a5ff navigator takeoff: use global yaw instead of home yaw 2017-05-15 15:41:47 +02:00
ChristophTobler
14f860090a remove empty line and fix typo 2017-05-15 15:41:47 +02:00
Dennis Mannhart
00c9e4b79f mc_pos_control: set triplets.valid to first time when landed 2017-05-15 15:41:47 +02:00
Dennis Mannhart
9e383f2cd3 navigator: when landed only exit idle if mission/takoff 2017-05-15 15:41:47 +02:00
Nicolae Rosia
a55f97503e navio_adc: fix formatting
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-14 17:51:02 +02:00
Nicolae Rosia
5467beed93 posix-configs rpi: add default values for Navio2 Power Module
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-14 17:51:02 +02:00
Nicolae Rosia
32498009a3 navio_adc: add driver for Navio2 ADC
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-05-14 17:51:02 +02:00
Lorenz Meier
31006eb43c Update SITL repository 2017-05-14 15:53:31 +02:00
Mohamed Abdelkader Zahana
cd1e04d43c support of multi uav simulation in SITL 2017-05-14 15:46:18 +02:00
Lorenz Meier
669e580f0a Land detector max altitude: Adjust max limit 2017-05-14 14:24:06 +02:00
Lorenz Meier
cdb8146af5 Land detector: Choose a default alt limit parameter value that ensures regular users are not running into it 2017-05-14 13:27:57 +02:00
yaoling
3ad23a44c5 navigator fix takeoff insidetime = 0 (#7199) 2017-05-13 12:16:55 -04:00
Lorenz Meier
55697e08e2 GPS driver: Add more stack to suit data definition increases 2017-05-13 11:44:49 +02:00
Daniel Agar
447bea3ce0 circleci completely remove git submodules 2017-05-12 22:11:17 +02:00
Mohammed Kabir
773d1ec6a8 camera_feedback : only use global position subscription to fill geotagging packet 2017-05-12 22:11:17 +02:00
Mohammed Kabir
c623e64f96 camera_trigger : remove relocated feedback parameter 2017-05-12 22:11:17 +02:00
Mohammed Kabir
ad5fe5f44a Add support for SET_CAMERA_MODE command; Not used yet. 2017-05-12 22:11:17 +02:00
Mohammed Kabir
2a057c6f79 Update MAVLink submodule 2017-05-12 22:11:17 +02:00
Mohammed Kabir
6a38118c73 camera_trigger : reset distance counters to ensure consistent triggering after pausing/disabling 2017-05-12 22:11:17 +02:00
Mohammed Kabir
0b93568aa3 camera_trigger : add transitional support for QGC 2017-05-12 22:11:17 +02:00
Mohammed Kabir
83888e3e7f camera_feedback : move class definitions into hpp 2017-05-12 22:11:17 +02:00
Mohammed Kabir
97ceaf404c camera_trigger : remove debugging 2017-05-12 22:11:17 +02:00
Mohammed Kabir
b146e7afde logger : log geotagging packet 2017-05-12 22:11:17 +02:00
Mohammed Kabir
a19a5804e7 cmake configs : add camera_feedback module 2017-05-12 22:11:17 +02:00
Mohammed Kabir
d79750a06c camera_feedback : inital module import 2017-05-12 22:11:17 +02:00
Mohammed Kabir
192e8b48d1 mavlink : send camera_image_captured message 2017-05-12 22:11:17 +02:00
Mohammed Kabir
b665737aca camera_trigger : do not log test shots from GCS 2017-05-12 22:11:17 +02:00
Mohammed Kabir
2e92a3946d camera_trigger : completely refactor state handling 2017-05-12 22:11:17 +02:00
Lorenz Meier
7af7c86384 mavlink : send camera capture information 2017-05-12 22:11:17 +02:00
Mohammed Kabir
de19af456d msg : add camera feedback message 2017-05-12 22:11:17 +02:00
Dennis Mannhart
29795fa95f mc_pos_control: switch to auto only if triplets have been updated 2017-05-09 11:54:50 +02:00
lovettchris
47faaa5d78 Add loiter option to COM_OBL_RC_ACT (#7170) 2017-05-08 14:17:29 -04:00
Paul Riseborough
341bd6e836 commander: add timeout test for global position data 2017-05-08 09:21:38 +02:00
Paul Riseborough
00a42abc69 commander: Add parameter to control postal fallback after loss of navigation accuracy
Also remove else if branch that cannot be accessed.
2017-05-08 09:21:38 +02:00
Paul Riseborough
b85c8fa135 commander: fix bug in pos vel validity transition
This ensures that a mode change will occur immediately when the EKF reports the solution as invalid.
2017-05-08 09:21:38 +02:00
Lorenz Meier
d31ee73354 FMUv5: Set sdlog mode param 2017-05-07 18:02:24 +02:00
Lorenz Meier
68e76d8ed3 FMUv5: Increase logging throughput considerably.
This will help to understand the sensor selection on FMUv5 in different airframes. We do have the RAM and CPU to do this on this platform.
2017-05-07 18:01:51 +02:00
Lorenz Meier
981dac8e95 Navigator: Increase RAM size 2017-05-06 12:34:28 +02:00
Lorenz Meier
0dac78b48f FMUv4PRO and FMUv5: Enable auto-build 2017-05-05 18:11:44 +02:00
Lorenz Meier
da566506eb MAVLink: Update submodule for new versions 2017-05-05 14:24:47 +02:00
Lorenz Meier
dc2a2a9552 IO: Better formatting 2017-05-04 22:57:47 +02:00
Julian Oes
bcd66f1408 mc_pos_control: ignore a NaN/inf position setpoint (#7186)
* mc_pos_control: ignore a NaN/inf position setpoint

This is a hotfix that prevents the position controller from trying to
do velocity control with a position setpoint that isn't valid in the
first place.

This is only a workaround, ideally the controls later should not scale
down throttle to the minimum just because the position setpoint is far
away if they still have valid setpoint in z.

* mc_pos_control: use PX4_ISFINITE and not isfinite
2017-05-04 22:55:53 +02:00
Lorenz Meier
1bb56e775e IO: Fix access to free memory
The free memory was accessed from interrupt context where it should not be accessed from. We build the statistic now at a fixed rate while not armed.
2017-05-04 22:32:52 +02:00
Beat Küng
8bfa84f73f log_writer_file: make sure to close the file
and avoid doing a loop iteration when the thread is requested to exit
(as it could access _buffer).
2017-05-04 08:44:11 +02:00
Nate Weibley
50740ef813 Improve FW landing predictability
- Use the course over ground as loiter exit criteria (better wind behavior)
 - Compute the tangent origin coordinate explicitly instead of using immediate position
2017-05-04 07:51:46 +02:00
Lorenz Meier
3d2d6c4fdc IO: Add lazy atomic OR, AND and CLEAR functions for flags
IO needs atomic updates of a few critical status flags, but doing these always atomic (with interrupts disabled) might cause a too high interrupts disabled interval. In order to avoid this only operations that change the state of the target variable are done with interrupts disabled, while operations without an effect on the target variable are not executed.
2017-05-04 07:46:57 +02:00
Werner Stern
dc6b688a6a fixed px4io firmware read-modify-write bug 2017-05-04 07:46:57 +02:00
Lorenz Meier
65baf99832 Logger hotfix: Allocate buffer on logging
This enables to use the RAM normally consumed by the log buffer to be used for calibration and other memory-intense tasks.
These run typically only disarmed when logging is not enabled.
2017-05-03 21:52:04 +02:00
ChristophTobler
dce28454c8 use current local position for land and not GPS -> e.g. flow 2017-05-03 16:52:37 +02:00
Paul Riseborough
5bfe6d7fec ekf2: Fix failure to save mag declination 2017-05-03 08:37:14 +02:00
Paul Riseborough
0d7f475bd0 ecl: minor updates
Initialisation changes to address valgrind errors
Change to default GPS and Airspeed time delay (these are overwritten by ekf2_main parameter settings)
Increase sensitivity of bad accelerometer checks
2017-05-03 08:37:14 +02:00
Paul Riseborough
b64e40b5da ekf2: format fixes 2017-05-03 08:37:14 +02:00
Paul Riseborough
1a2ef45a4b commander: remove unused pos vel validity check functions 2017-05-03 08:37:14 +02:00
Paul Riseborough
625cc4aa83 commander: Use generic function for checking position and velocity validity 2017-05-03 08:37:14 +02:00
Paul Riseborough
46ece548cd ekf2: Changes following code review 2017-05-03 08:37:14 +02:00
Paul Riseborough
8421ad3dfd commander: Changes following code review 2017-05-03 08:37:14 +02:00
Paul Riseborough
57de9eccf5 msg: Code review recommendations for estimator_status 2017-05-03 08:37:14 +02:00
Paul Riseborough
6473f1458f commander: reset learned ekf2 mag biases when performing a mag cal
The learned ekf2 mag bias values are invalidated when the sensor calibration is updated and must be reset.
2017-05-03 08:37:14 +02:00
Paul Riseborough
6474922224 ekf2: Save learned magnetometer biases 2017-05-03 08:37:14 +02:00
Beat Küng
b4178e0388 BlockParam: add BlockParam::commit_no_notification() 2017-05-03 08:37:14 +02:00
Paul Riseborough
3bcb710da9 voted_sensors_update: publish sensor selections (+3 squashed commits)
Squashed commits:
[290660d] voted_sensors_update: revert the new_accel_data check (and others)

The check removed the ability to detect sensor timeouts.
[c8dc7ad] sensors: publish changes to sensor selection
[dd90dec] sensors: ensure all sensor selections published first time
2017-05-03 08:37:14 +02:00
Paul Riseborough
3d3e04cb48 msg: create uORB topic for sensor selection data 2017-05-03 08:37:14 +02:00
priseborough
8ea0b2d3c5 commander: rework posvel validity checks
Move into functions.
Reset probation time and recalculate checks if a mode change is demanded to give the operator ability to regain control as soon as possible after nav performance is regained. (+11 squashed commits)
Squashed commits:
[a4bb800] commander: enable pilot to quickly recover from loss of position accuracy
[19e16a0] commander: rework postal probation time
[f96284e] commander: rework bad pos and vel test probation time
[00d5f0c] commander: Allow EKF preflight checks to pass with moving vehicle

Separates the 'is using GPS' and the GPS quality checks.
Uses a reasonable subset of the GPS quality checks which allows checks to pass if the vehicle is moving.
[4cdfb5c] commander: remove unused variable
[349385a] commander: add EKF GPS quality checks to pre-arm checking

Only perform check if GPs checking is activated by parameter setting.
Display fault messages that makes it clear if EKF quality checks are failing or the EKF is not using GPS for another reason. We do not want to confuse this with GPS lock.
[340ae29] commander: make position invalid fail-safe more sticky

Require check to pass for 7 seconds before exiting failsafe. This is required because if GPs is failing innovation tests for a prolonged period, the EKF will periodically reset to the GPS and report good accuracy at the time of reset.
Adding this delay gives time for an underlying error condition (eg bad IMU or compass) to be re-detected.
[b04ac95] commander: Increase RAM allocation to eliminate low stack warnings
[9dca12f] commander: add missing position invalid fail-safe responses
[69f264d] commander: Update position invalid fail-safe responses

Replace separate logic for each case with a generic function
Add velocity checks.
[8e8cef1] commander: rework position validity checks

Consolidate existing checks for global and local position validity and add checking of velocity accuracy.
Enable checks to be bypassed using the CBRK_VELPOSERR parameter.
2017-05-03 08:37:14 +02:00
Paul Riseborough
40160c4488 integrationtests: add wait time before arming to allow checks to pass 2017-05-03 08:37:14 +02:00
priseborough
519e903347 systemlib: Add circuit breaker parameter for position error checks 2017-05-03 08:37:14 +02:00
priseborough
e61e733d1d local_position_estimator: publish placeholder values for velocity accuracy 2017-05-03 08:37:14 +02:00
priseborough
3680057e6d ekf_att_pos_estimator: publish placeholder values for accuracy reporting 2017-05-03 08:37:14 +02:00
priseborough
68c1ffd3e5 position_estimator_inav: publish placeholder values for velocity accuracy 2017-05-03 08:37:14 +02:00
priseborough
1f5908786e ekf2: don't publish estimator status and innovations unless updated 2017-05-03 08:37:14 +02:00
priseborough
fb6e050b06 ekf2: Improve error reporting
Add missing velocity accuracy reporting
Add missing dead reckoning reporting
2017-05-03 08:37:14 +02:00
Lorenz Meier
9efb1a59f2 msg: Add GPS check fail definitions to estimator_status 2017-05-03 08:37:14 +02:00
priseborough
e9a3eca751 msg: add velocity accuracy reporting to local position topic 2017-05-03 08:37:14 +02:00
priseborough
d0d2c9dcba msg: add velocity accuracy reporting to global position topic 2017-05-03 08:37:14 +02:00
David Sidrane
e86d9adb93 px4fmu-v4:Implement board_on_reset API
Added board_on_reset, to force timer GPIO to output low on reset
   This will stop the motors.
2017-05-03 08:33:05 +02:00
David Sidrane
e967c2b340 board_common:Added new API point board_on_reset
This optionally provided function called on entry to
  board_system_reset. It should perform any house keeping
  prior to retunring to do the rest.
2017-05-03 08:33:05 +02:00
David Sidrane
33f2897f00 px4fmu-v4:Configure timer IO pins with pull downs
When the CCER is cleared the IO pin tends to float. The FMUV4
  HW has no TXS0108 and if cut off while high will decay.

  By adding the pull down the pins will seek the low state faster.
  13.8 us from off to decabe below threshold.
2017-05-03 08:33:05 +02:00
Lorenz Meier
be375e25d3 Update GPS driver submodule. Fixes #7173 2017-05-03 08:30:29 +02:00
David Sidrane
95fd2cd184 Create NuttX git hash and tag 2017-05-03 08:18:47 +02:00
David Sidrane
f66f024e3a ver:Print vMM.mm.pp format 2017-05-03 08:18:47 +02:00
David Sidrane
bf570dee2f Added use of SPI_LOCK in the ms5611 driver on any HW where the
PX4_SPI_BUS_BARO == PX4_SPI_BUS_RAMTRON
2017-05-03 08:17:12 +02:00
David Sidrane
6aadc75d18 Removed interrupt based locking on FMUv4 HW
The ramtron driver already calls SPI_LOCK when accessing the
  FRAM.

  Removed the interrupt lockout and anabled the SPI_LOCK
  in the ms5611 driver on any HW where the
  PX4_SPI_BUS_BARO == PX4_SPI_BUS_RAMTRON
2017-05-03 08:17:12 +02:00
Lorenz Meier
00efbc8049 ROMFS: Start EKF2 if no vehicle config is loaded
This allows to at least have a look at the attitude and check that the board is functional on a basic level.
2017-05-02 11:56:45 +02:00
David Sidrane
5d70f74e36 px4fmu-v4:SPI and init clean up 2017-05-02 11:55:11 +02:00
Henry Zhang
92fc82da33 MindPX: Remove MPU6500 driver, use MPU9K driver instead 2017-05-02 11:52:12 +02:00
Lorenz Meier
40eb5df8de UAVCANCAN: Better param documentation and reboot requirements where appropriate 2017-05-02 07:42:14 +02:00
Lorenz Meier
dbf754eab1 ROMFS: If UAVCAN is enabled, reduce log buffer size
This is necessary to make the space for UAVCAN in memory and doing it this way avoids negatively impacting users who do not use UAVCAN.
2017-05-02 07:42:14 +02:00
David Sidrane
3ecb07f5db px4io-v1:Sync with px4io-v1 CONFIG_USERMAIN_STACKSIZE 2017-05-02 07:40:50 +02:00
David Sidrane
f77a9bb897 px4io-v1:Limit CONFIG_USART1_TXBUFSIZE to max debug size 2017-05-02 07:40:50 +02:00
David Sidrane
0d7c290f89 px4io-v1:Reduce Number of tasks and name 2017-05-02 07:40:50 +02:00
David Sidrane
de9e63d506 px4io-v1:Refreshed defconfig (no changes) 2017-05-02 07:40:50 +02:00
David Sidrane
8cce1bd078 px4io-v2:Reduce Number of tasks and name 2017-05-02 07:40:50 +02:00
David Sidrane
3eb909823e px4io-v2:Limit CONFIG_USART1_TXBUFSIZE to max debug size 2017-05-02 07:40:50 +02:00
David Sidrane
85973f69d7 px4io-v2:Refreshed defconfig (no changes) 2017-05-02 07:40:50 +02:00
David Sidrane
05ceeec1ba piofirmware:Base the debug message buffer size on the defconfig
Recover 16 bytes. Size of debug max message is 40 so limit
  the usart tx buffer to same size.
2017-05-02 07:40:50 +02:00
David Sidrane
f7835a8677 io_timer driver:Only support capture if DIRECT_INPUT_TIMER_CHANNELS > 0
This removes the unused input capture capabilities from the px4io
   and saves 128 bytes of ram.
2017-05-02 07:40:50 +02:00
Lorenz Meier
d1dd6a16f2 IO v2: disable interrupt stack
This avoids burning significant memory in a configuration that is not actually using parallel tasks
2017-05-02 07:40:50 +02:00
Lorenz Meier
60a022329f IO Firmware: Use new RC lib format 2017-05-02 07:40:50 +02:00
Lorenz Meier
71731d17a9 RC C library: Use same buffer as the protocols do not decode in parallel. 2017-05-02 07:40:50 +02:00
Lorenz Meier
118b9aad19 MC pos control: Document the reference update handling function better 2017-05-01 17:23:11 +02:00
Paul Riseborough
9983bf2364 ekf2: fix errors in publishing of local position origin validity flags 2017-05-01 17:23:11 +02:00
Paul Riseborough
7c068e83d8 msg: correct definitions for local position origin validity flags 2017-05-01 17:23:11 +02:00
Lorenz Meier
b039f61762 Check code style: Be more permissive on Astyle 2017-05-01 16:56:13 +02:00
Lorenz Meier
875a35fcd5 GPS: FIncrease stack by 100 bytes
The app reached the check limit and needed a bit more headroom.
2017-04-30 12:03:14 +02:00
Mohammed Kabir
6a99ca70e9 camera_trigger : clarify power control comment 2017-04-30 12:00:06 +02:00
Mohammed Kabir
3ba0275952 camera_trigger : switch to queued publisher 2017-04-30 12:00:06 +02:00
Mohammed Kabir
b5ce55bab6 camera_trigger : don't advertise garbage 2017-04-30 12:00:06 +02:00
Mohammed Kabir
3ebfb0cd27 camera_trigger : optimize GCS test command handling 2017-04-30 12:00:06 +02:00
Daniel Agar
0a80ee6c20 OSX builds travis-ci -> circleci (#7157) 2017-04-28 21:08:29 -04:00
Daniel Agar
6ec2ff91af README update links and cleanup 2017-04-28 23:16:27 +02:00
Daniel Agar
b3402214f9 README add state estimation label (#7154) 2017-04-28 13:21:31 -04:00
Daniel Agar
5228f70f44 README add MindPX contact (#7153) 2017-04-28 13:21:10 -04:00
ChristophTobler
6c15666368 ekf2: accept min/max range 2017-04-27 21:15:47 +02:00
Khoi Tran
1b7838c2fe Implement Mavlink PLAY_TUNE 2017-04-27 14:48:25 +02:00
Matthias Grob
0c4719de3e mc_pos_control: smooth takeoff, fixed gradient of the velocity ramp by takeoff speed parameter
because we need a workaround for the broken auto takeoff logic which can start the vehicle with a loiter setpoint
in this case the very first moment is still a jump but then it gets taken over by the fix gradient ramp
this can basically be reverted after the auto takeoff logic is fixed
2017-04-27 14:05:20 +02:00
Matthias Grob
b5820afa14 mc_pos_control: smooth takeoff, fixed ramp reset bug and takeoff speed limiting condition
currently when the vehicle is landed again (not after bootup) the core position controller does not run anymore
therefore the velocity limit ramp in some cases did not get reset correctly

speed limiting in auto takeoff mode only needs to be limited when the user did not take over
2017-04-27 14:05:20 +02:00
Matthias Grob
9a162a24bb mc_pos_control: improved smooth takeoff and used it for manual takeoff as well
adresses:
there were setpoint twitches at the beginning and end of my smooth takeoff routine
it was to slow and not configurable
it was only available for automatic takeoff
2017-04-27 14:05:20 +02:00
Matthias Grob
75872b0713 mc_pos_control: switched auto takeoff to clean position control to takeoff point with gradual velocity limit
auto takeoff  was pretty chaotic and bypassed the velocity controller until some magic condition
the goal of this approach is to make the behaviour and smoothness more predictable and reuse the exact same logic for manual takeoff
2017-04-27 14:05:20 +02:00
Matthias Grob
5fd6bfc18c mc_pos_control: reorder velocity setpoint limiting, adding comments 2017-04-27 14:05:20 +02:00
Matthias Grob
f5964ec237 mc_pos_control: pure refactor, reduce one level of indentation in calculate_thrust_setpoint 2017-04-27 14:05:20 +02:00
Matthias Grob
40d058558b mc_pos_control: pure refactor, split up core position control into velocity and thrust setpoint generation 2017-04-27 14:05:20 +02:00
Matthias Grob
fac34de11e mixer_multirotor: switched to math::constrain (#7073)
- a local implementation was used before which is not necessary
2017-04-26 15:25:05 -04:00
Beat Küng
fc30f880c8 px4fmu_spi.c for v4: fix usage of wrong GPIO macros
This got introduced with the refactoring in c5e841256ae7297b
2017-04-26 13:56:59 +02:00
Daniel Agar
f04f1d6b03 sensors HIL increase gyro and accel timeout
- fixes #7050
2017-04-25 23:52:11 +02:00
Beat Küng
0d22e97c09 sensor_params: document PWM_RATE=0 for Oneshot125 2017-04-25 12:59:12 +02:00
Beat Küng
bd0c1cffc2 mount.aux.mix: remove the mode channel
It does not exist, neither in the actuator group docs, nor in vmount.
2017-04-25 12:59:12 +02:00
David Sidrane
0a1fbef8c8 pwm:ensure that a rate of 0 will invoke the ioctl
Prior to onshot being added to the system. The -r of the
   "rate" command would not invoke the ioctl PWM_SERVO_SET_UPDATE_RATE
   when -r was not provided on the command line. This may have been a
   feature or a bug.

   When onshot was added to the pwm command a bug was intorduced
   that precluded the ioctl PWM_SERVO_SET_UPDATE_RATE from being
   called on -r 0.

   This commit fixes that issue, and preserves the "prio to oneshot"
   behavior of the "rate" command when -r is not specified.
2017-04-25 09:02:28 +02:00
Beat Küng
44a507fcfe camera_interface: initialize _p_pin & handle error 2017-04-24 16:49:26 +02:00
Beat Küng
f42a626527 vmount: fix null-pointer access if invalid output mode was selected
In case of an invalid output mode, thread_data.output_obj was null.
2017-04-24 16:49:26 +02:00
Beat Küng
2ef5ebb6db 4002_quad_x_mount: remove vmount start
vmount is automatically started now when the param is set from rcS
2017-04-24 16:46:28 +02:00
Beat Küng
69e8213b37 rcS: set MIXER_AUX to mount if vmount enabled and output is AUX
This automatically selects the mount aux mixer if mount is enabled via
parameters. A user can customize this by adding a file
 etc/mixers/mount.aux.mix
to the SD card.
2017-04-24 16:46:28 +02:00
Beat Küng
3f3ac414e3 fix rc.interface: do not append .mix when setting MIXER_AUX
Because further down the mixer file is set as:
	set MIXER_AUX_FILE /etc/mixers/${MIXER_AUX}.aux.mix
2017-04-24 16:46:28 +02:00
Mohammed Kabir
60fe87aac2 commander : preflight checks increase max_mags to 4 2017-04-24 12:24:11 +02:00
Mohammed Kabir
57aa41df2c sensors : decouple maximum sensor count and allow flexible maximums 2017-04-24 12:24:11 +02:00
Mohammed Kabir
f0accd39f0 sensors : add support for 4th magnetometer 2017-04-24 12:24:11 +02:00
Mohammed Kabir
74f4f72a4c commander : add support for calibrating 4 magnetometers 2017-04-24 12:24:11 +02:00
Mohammed Kabir
c8dad56300 mathlib : switch min/max to constexpr to match std::min/max 2017-04-24 12:24:11 +02:00
Mohammed Kabir
9909a373b0 commander : warn if more than 4 mags are connected 2017-04-24 12:24:11 +02:00
Lorenz Meier
6d21aac4a9 BMM150 driver: Be less strict on C++ options 2017-04-24 10:38:39 +02:00
Lorenz Meier
e054d1fff7 FMUv5: Start BMI055 in correct rotation 2017-04-24 10:38:39 +02:00
Lorenz Meier
145513ff28 BMI055: Correct boot instructions, better default to 16g 2017-04-24 10:38:39 +02:00
Lorenz Meier
3affe67c96 Enable BMI055 for FMUv5 and improve console handling 2017-04-24 10:38:39 +02:00
Lorenz Meier
53bb6c6822 ROMFS: Start ICM on all boards 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
641a03510c changes on drivers according to comments from DavidS 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
da31e6e0b5 bmm150 max datarate changed 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
5923e66cf3 bmp285 support added 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
c3711efd27 initial commit of bmm150 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
c5e841256a changes added for SPI CS defines as requested for BMI055 driver integration (e.g. GPIO_SPI1_CS_PORTE_PIN15 for bmi055 gyro) to avoid double declaration of same chip select pin 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
dad5224206 bmi055 added to start-up script 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
7dcdc57412 Update px4fmu_spi.c 2017-04-24 10:38:39 +02:00
Sergej Scheiermann
e55516c4b7 Update bmi055_main.cpp
format check
2017-04-24 10:38:39 +02:00
Sergej Scheiermann
cfed8ee2dd bmi055 initial integration 2017-04-24 10:38:39 +02:00
Beat Küng
061bff14c8 rpi startup configs: set logger buffer size to 200
Avoid dropouts, we have enough RAM there.
2017-04-24 10:12:23 +02:00
Daniel Agar
ea2a611f0b posix-configs replace sdlog2 with logger 2017-04-24 10:12:23 +02:00
Lorenz Meier
de7fef8dd6 Crazyflie: Switch to logger 2017-04-24 10:12:23 +02:00
Lorenz Meier
17c022b73e Aerocore 2: Switch to logger 2017-04-24 10:12:23 +02:00
Lorenz Meier
4d8b5e60c3 System: Set new logger system as the default
This will upgrade systems to the new .ulog format used by http://logs.px4.io and supported by Flight Plot
2017-04-24 10:12:23 +02:00
Mohamed Abdelkader Zahana
da8724accb removing pwm_start block; not needed in i2c 2017-04-23 23:29:10 +02:00
Mohamed Abdelkader Zahana
60e0ca9321 add both options (pwm/i2c) for lidar lite 2017-04-23 23:29:10 +02:00
Mohamed Abdelkader Zahana
9911a55393 use i2c for lidar lite 2017-04-23 23:29:10 +02:00
Lorenz Meier
c60ad883a4 Update SITL 2017-04-23 19:24:40 +02:00
Lorenz Meier
21f409366a MAVLink app: Warn sender if a command has been rejected 2017-04-23 19:23:09 +02:00
Lorenz Meier
1766f65f02 Update Gazebo SITL 2017-04-23 15:24:41 +02:00
Lorenz Meier
f7469581b9 VMount: Fix interface spec with respect to MAVLink / vehicle command interface 2017-04-23 15:19:41 +02:00
Lorenz Meier
3d65fcc875 Mount mixer: Fix channel output order 2017-04-23 15:19:08 +02:00
Andreas Antener
00efbffea9 UAVCAN: disable ESCs when in VTOL fixed-wing 2017-04-23 14:59:24 +02:00
Daniel Agar
1fd343b5cc navigator remove FW and MC cruise parameters 2017-04-23 14:50:21 +02:00
Sander Smeets
0106840b87 Allow inflight updates of cruise throttle during missions 2017-04-23 14:50:21 +02:00
Michael Schaeuble
21de5bbc39 Acknowledge vehicle commands in UAVCAN server 2017-04-23 14:49:24 +02:00
Daniel Agar
293eca7d16 Makefile add px4_metadata for airframes and parameters 2017-04-22 21:31:05 -04:00
Daniel Agar
93d4f487ef travis-ci update to latest docker 2017-04-22 21:31:05 -04:00
Daniel Agar
f8e291dab1 mavlink VFR_HUD throttle use first 2 groups (#7106)
- fixes #6974
2017-04-22 16:08:27 -04:00
Julian Oes
e9aef2eb95 px_uploader.py: properly loop through all baudrates
In case when the baudrate change failed, we should still try that
baudrate again in the next iteration.
2017-04-22 08:00:51 +02:00
Julian Oes
2467297acf px_uploader.py: fix exception on baudrate change
This prevents an exception happening inside the serial stack.
2017-04-22 08:00:51 +02:00
David Sidrane
0754e8f8bc Bugfix:hrt is used before it is initalized.
sched_note_{suspend|resume} were calling hrt_absolute_time before
   it hrt_init is called. This can lead to register access before
   clocking is enabled. The result is a hardfault.
2017-04-22 07:57:37 +02:00
Sander Smeets
6c6cfd4f65 DeltaQuad updated params 2017-04-21 18:13:35 +02:00
Phillip Khandeliants
5012dffeae Potentially infinite and deleted loops found by PVS-Studio (#7100)
- Fixed V712
 - The compiler can optimize this code by creating an infinite loop, or simply deleting it.
 - There is need to add a volatile qualifier to the '_ExitFlag' and 'sim_delay' variables.
2017-04-21 11:13:06 -04:00
Sander Smeets
545458a687 Consider FW PSP in pitch limits (#7098)
The FW_PSP_OFF parameter no longer breaches the pitch min/max limits
2017-04-21 13:34:43 +02:00
Paul Riseborough
1843061376 Tools/ecl_ekf: Improvements to ecl log analysis scripts
Fix error in scaling of population high frequency vibration metrics
Add histograms for delta angle and velocity bias data
Fix variable descriptions
2017-04-21 08:34:19 +02:00
Paul Riseborough
2a34bde0e9 Tools/ecl_ekf: Update EKF log analysis
Add assessment of IMU bias and mag field estimation
Reduce warning false positives by adjusting thresholds and eliminating use of peak value plots for output observer monitoring
Clear each figure after saving to reduce memory usage
2017-04-21 08:34:19 +02:00
Paul Riseborough
ed9a9b772e ekf2: minimum change required to use updated ecl library 2017-04-21 08:34:19 +02:00
Paul Riseborough
dad2419b21 ecl: Update EKF version
Miscellaneous bug fixes and improvements including:

More conservative reporting of velocity and position accuracy when aiding is lost
Separate reporting of accuracy for local and global position
Detection and recovery from badly conditioned accel bias states and covariance values
Logic to prevent high manoeuvre levels causing bad acceleration bias learning
Reduce sensitivity of covariance prediction to timing jitter
Continue reporting of GPS quality until the later of airborne or checks pass
Add ability to perform wind estimation for multi-rotors using a specific force drag model
2017-04-21 08:34:19 +02:00
David Sidrane
2a8eaa66ca Revist:Back out fix for secondary issue
Ultimate we want this changes that is being backed out herein.
 But it is breaking things because it returns the EINVAL
 when there is a rate overlap. So the rest of the pwm ioctl
 calls then fail and do not set the pulse widths on arming.

 As a secondary issue. We sould call up_pwm_servo_init() to
 establish the PWM channel allocation early. This then allows
 FMU::set_pwm_rate to properly check for improper rate request
 not isolate to one group (timer).
2017-04-21 08:32:33 +02:00
David Sidrane
7322da3c19 fmu:Fixes cause of 0 values reported in pwm info
The root cause was the replacment of a local variable num_outputs
   with the class member _num_outputs.
   The effect of a "bad mix" is to return 0 - this clampped the
   _num_outputs to 0.

   Prior to commit  3b3e2b2 px4fmu: "consolidate usage of output mode"
   this would not have  been an issue because the local num_outputs
   was reset every cycle"

  As a secondary issue. We sould call up_pwm_servo_init() to
  establish the PWM channel allocation early. This then allows
  FMU::set_pwm_rate to properly check for improper rate request
  not isolate to one group (timer).
2017-04-21 08:32:33 +02:00
David Sidrane
b885fd97f6 oneshot:trigger exit early in no chan in oneshot 2017-04-21 08:32:33 +02:00
Andrew C. Smith
d21b6655d2 Add the Gumstix AeroCore2 to the build system. 2017-04-20 12:24:27 -10:00
Daniel Agar
05cf34a510 ekf_att_pos_estimator remove unused _mission_sub 2017-04-20 14:41:01 -04:00
Daniel Agar
ed1b442065 mission require valid landing after DO_LAND_START 2017-04-20 14:41:01 -04:00
Daniel Agar
56b028148b Navigator move get_time_inside and cleanup (#7062) 2017-04-20 11:24:55 -04:00
Daniel Agar
1913b970d7 main state auto mission don't require valid mission 2017-04-20 11:18:32 -04:00
Daniel Agar
6f89e9d551 integrationtests mavros fix type 2017-04-20 11:18:32 -04:00
Daniel Agar
c1d9972244 commander add parameter COM_ARM_MIS_REQ
- arm without mission on by default
2017-04-20 11:18:32 -04:00
Matthias Grob
709bd8cb28 mc_pos_control: combine separate pitch and roll maximum tilt angles into one
because there is no sense to have different angle scalings into different directions
it would lead to unintuitive piloting experience
acceleration is directly coupled to the tilt angle regardless of possible assymetric multicopter vehicles
2017-04-20 13:20:01 +02:00
Matthias Grob
d1b270d5b2 land_detector: fix sanity condition that we have ground contact when we are landed to include the hysteresis flag
because the condition was looking for the instantaneous flag and during the hysteresis time the state did not change anymore
2017-04-20 13:20:01 +02:00
Matthias Grob
caecdbd60b land_detector: treat altitude mode like position mode with vertical checks but without horizontal checks
because in altitude mode we have a baro available and can therefore check vertical movement
we can not check horizontal movement but I consider the checks for landing still pretty safe
unlike in manual mode we are not allowed to disarm before land detection in altitude mode
2017-04-20 13:20:01 +02:00
Beat Küng
0866025149 shutdown: disable work queues for QuRT 2017-04-20 10:01:51 +02:00
Beat Küng
643a3ba2a7 board_config: clean up board_config.h on POSIX targets 2017-04-20 10:01:51 +02:00
Beat Küng
aa6814217e shutdown.cpp: use nullptr instead of NULL 2017-04-20 10:01:51 +02:00
Beat Küng
dcccb3a718 system_config.h: remove typedef's, there're defined in board_common.h 2017-04-20 10:01:51 +02:00
Beat Küng
a2c80e3d55 px4_config.h: remove system_config.h include, board_config.h already includes it 2017-04-20 10:01:51 +02:00
Beat Küng
c98212ecd6 shutdown: ifdef for NuttX builds without work queue support
For example on px4cannode-v1_default.
2017-04-20 10:01:51 +02:00
Beat Küng
ec5f5bb808 board_config.h: add #pragma once 2017-04-20 10:01:51 +02:00
Beat Küng
e129969ea2 tap_pwr: fix definition of board_shutdown() 2017-04-20 10:01:51 +02:00
Beat Küng
73cb423db6 commander: add power button notification callback 2017-04-20 10:01:51 +02:00
Beat Küng
7cb71af949 reboot.c: switch to px4_shutdown_request() 2017-04-20 10:01:51 +02:00
Beat Küng
1d1eedb086 logger: register shutdown hook for graceful shutdown
This will avoid file system corruptions in cases where px4_shutdown_request
is used. However it will not help obviously when the battery is pulled
directly.
2017-04-20 10:01:51 +02:00
Beat Küng
0165633bf3 board_config: remove px4_board_pwr, use px4_shutdown_request instead
px4_board_pwr has become obsolete with the addition of board_shutdown
2017-04-20 10:01:51 +02:00
Beat Küng
25dfa9cda6 posix board_config.h: add include board_common.h
To get the new API definitions
2017-04-20 10:01:51 +02:00
Beat Küng
694bf48422 system: add generic shutdown API 2017-04-20 10:01:51 +02:00
David Sidrane
211837c73b tap:Use board power button notification API
This adds the board power button notification registration
  and shutdown API points.
2017-04-20 10:01:51 +02:00
David Sidrane
109db75881 Added board power button notification API
Defined types and interface to support a notification call back
   on power button events.
2017-04-20 10:01:51 +02:00
jwilson
57fa031e2b Fixes problem preventing params on snapdragon platforms from being saved to flash memory. 2017-04-20 09:06:13 +02:00
jwilson
0aaf595317 Modified sanity test to identify success from the output of the PX4 flight stack, instead of QuRT. 2017-04-20 08:39:16 +02:00
Beat Küng
7442affaf6 px4fmu-v2_default.cmake: enable vmount 2017-04-20 08:29:00 +02:00
Beat Küng
36b2643402 rcS: make sure if 'vmount start' fails, boot is not aborted 2017-04-20 08:29:00 +02:00
Lucas De Marchi
88e19a0916 nuttx build: fix dangling continuation line (#7079) 2017-04-20 01:31:32 -04:00
Nate Weibley
6a99281501 Incorporate @bkueng's feedback, inhibit bogus output on first pass 2017-04-19 17:24:55 +02:00
Nate Weibley
56f4f2b41f Fix top output, indentation for #7020
Previously load stats were stored outside of the printloop, but
with the refactoring to save memory state was reset and used in
the first loop before the actual load calculations were valid.

Fixed by moving the summary info to the bottom of the top printout
after everything is computed. Also restructured the callback to
not depend on a line counter and fixed astyle glitches.
2017-04-19 17:24:55 +02:00
Julian Oes
349a468f81 vmount: add to startup script, disable by default
vmount is now added to the startup script, however, it will only start
if the param MNT_MODE_IN is set to anything but -1.
2017-04-19 16:59:48 +02:00
Beat Küng
ed577f705d vmount: set output to Neutral for VEHICLE_ROI_NONE 2017-04-19 16:59:48 +02:00
Beat Küng
c20ff1737c vmount: poll only on active input
To reduce latency of the output update when mode is set to auto.
2017-04-19 16:59:48 +02:00
Beat Küng
9ed21afd59 vmount: simplify initialization 2017-04-19 16:59:48 +02:00
Beat Küng
021b808f6c vmount: fix null-pointer access by iterating only over the used objects 2017-04-19 16:59:48 +02:00
Julian Oes
7c0c97ce03 vmount: added commented output printf 2017-04-19 16:59:48 +02:00
Julian Oes
f4b1623550 vmount: wrong pointer was passed to update 2017-04-19 16:59:48 +02:00
Julian Oes
87d5b41b84 vmount: fixed wrong index 2017-04-19 16:59:48 +02:00
Julian Oes
ec36bdcd10 vmount: always initialize
MNT_MODE_IN 0 now means to automatically check all inputs.
2017-04-19 16:59:48 +02:00
Julian Oes
e3d1b7fab4 vmount: _first_time flag wasn't ever reset 2017-04-19 16:59:48 +02:00
Julian Oes
07de797e8d vmount: correctly set control_data output arg
The control_data pointer wasn't correctly set for the cases where there
actually was a change/command.
2017-04-19 16:59:48 +02:00
Julian Oes
e1246063e9 vmount: another try to get abs and types right 2017-04-19 16:59:48 +02:00
Julian Oes
702922e677 vmount: _get_aux_value needs to be re-used 2017-04-19 16:59:48 +02:00
Julian Oes
c33e46167c vmount: type-promotion fix clang-tidy 2017-04-19 16:59:48 +02:00
Julian Oes
a9523155cf vmount: small formatting change 2017-04-19 16:59:48 +02:00
Julian Oes
caf69b290a vmount: refactor to auto-select between all inputs
It is not convenient having to change a parameter to change a gimbal
from RC input to mavlink input mode or back. This refactor changes the
behaviour to use whatever is available, RC or mavlink commands.

Once a mavlink command is followed, control can be taken back using RC,
however, this requires a clear stick change.
2017-04-19 16:59:48 +02:00
Daniel Agar
809fec8c05 navigator treat TAKEOFF like POSITION if already flying 2017-04-19 10:45:59 +02:00
crashmatt
304aeddf03 TinyBson - Compatibility with cpp compiler
Changed "private" keyword used for argument to "priv"
2017-04-19 08:29:23 +02:00
Daniel Agar
7b8f3b03a8 cmake patch depend on previous patch target (#7075) 2017-04-18 23:50:20 -04:00
David Sidrane
4a36a806de px4fmu-v4 enable CONFIG_DEBUG_ALERT 2017-04-18 07:15:00 -10:00
David Sidrane
566d73ec22 Nuttx Build option had repeated ARCHWARNINGS
The Make.defs compisition is

    ARCHWARNINGS		 = $(PX4_ARCHWARNINGS)
    ARCHCWARNINGS		 = $(PX4_ARCHWARNINGS) $(PX4_ARCHCWARNINGS)
    ARCHWARNINGSXX		 = $(ARCHWARNINGS) $(PX4_ARCHWARNINGSXX)

so the pieces from nuttx-configs/PX4_Warnings.mk should not be combined.
2017-04-18 07:15:00 -10:00
David Sidrane
0ba99df55e Use as strict or stricter warnings than NuttX has
Reinstate unused checks.
2017-04-18 07:15:00 -10:00
David Sidrane
1e2cef1d72 Fix Unused warning 2017-04-18 07:15:00 -10:00
David Sidrane
2b994b8778 Fix Unused warning 2017-04-18 07:15:00 -10:00
Beat Küng
06997915c2 px4airframes: update image path for markdown after dev-guide update 2017-04-18 11:58:18 +02:00
Beat Küng
42d2f8a798 px4airframes markdown output: merge output columns with maintainer 2017-04-18 11:58:18 +02:00
Beat Küng
89c24cd697 13001_caipirinha_vtol config: fix motor assignment documentation 2017-04-18 11:58:18 +02:00
Beat Küng
2d9a82198a airframes markdown output: merge Outputs where possible for each group 2017-04-18 11:58:18 +02:00
Beat Küng
1df9742219 airframes: add @output meta-data 2017-04-18 11:58:18 +02:00
Beat Küng
ce2502a74c rc.interface: fix indentation 2017-04-18 11:58:18 +02:00
Beat Küng
a73c0d469b airframe configs Quadrotor x: fix @output tags
extend where needed, only keep the full list for 4001 (and 4002 which differs)
2017-04-18 11:58:18 +02:00
Beat Küng
e30d3a53f5 airframe configs: move 4002_qavr5 to 4003_qavr5
There was already an airframe with id 4002.
2017-04-18 11:58:18 +02:00
Beat Küng
a943bf37f0 Tools/px_process_airframes: add markdown output 2017-04-18 11:58:18 +02:00
Beat Küng
62c1a23ea3 Tools/px4airframes: refactor & remove some unneeded code 2017-04-18 11:58:18 +02:00
Beat Küng
59ea964ea2 remove Tools/aiframes.xml: not needed anymore 2017-04-18 11:58:18 +02:00
Daniel Agar
c86185d4be sensors init CAL_ACC0_ID and CAL_GYRO0_ID for QGC 2017-04-18 10:54:19 +02:00
Lorenz Meier
00158f6e0e Navigator: Use correct command to start RTL 2017-04-18 08:56:15 +02:00
Don Gagne
96458d3184 Support for RTL and Delay mission commands 2017-04-18 08:56:01 +02:00
Daniel Agar
3721fb9d52 cmake cleanup nuttx dependency handling (#7007)
- closes #6501
 - closes #6820
 - closes #6881
2017-04-17 20:57:35 -04:00
Daniel Agar
f460f5b34c mc_pos_control minor cleanup 2017-04-17 20:31:46 +02:00
Daniel Agar
34058cbc21 mavlink EXTENDED_SYS_STATUS add takeoff and landing (#7064) 2017-04-17 09:31:49 -04:00
Chris Lovett
91d2ad17b7 Fix takeoff overshoot (issue #319). 2017-04-17 14:35:16 +02:00
Andreas Daniel Antener
18293875b7 Old style switches: changed the loiter switch to have priorit over main switch (#6764) 2017-04-16 10:10:31 -04:00
Julian Oes
0d2e847c57 tag_to_version.py: fix Python3 error (#7056)
subprocess.communicate returns bytes instead of a str which is not the
same for Python3. Therefore, we need to decode the bytes.
2017-04-16 10:03:06 -04:00
Daniel Agar
4487f06629 fw_pos_ctrl_l1 stop using sensors_combined 2017-04-16 08:19:43 -04:00
Daniel Agar
1b8ed8ab08 add FW to Launch detection param group 2017-04-16 08:19:43 -04:00
Daniel Agar
71004ab897 FW launchdetector only run if armed 2017-04-16 08:19:43 -04:00
Nate Weibley
9038be2d83 Fix EKF velocity innovation limit preflight check 2017-04-15 01:21:10 +02:00
Lorenz Meier
f70b4ef883 Navigator: Fix RTL state handling by enabling auto-continue after descend 2017-04-14 10:02:31 +02:00
davidaroyer
2322a4d232 DF_MS5611_Wrapper: convert baro pressure to mbar
Temperature compensation in sensors.cpp calculates Baro Altitude
assuming baro pressure is stored as mbar.
2017-04-14 10:01:58 +02:00
Sander Smeets
128f726cd9 Add paramter to enable rc stick override 2017-04-14 10:01:36 +02:00
David Sidrane
ff3994da1b mpu6500 Fixed 'test' function causes register checking to find a false faults
Added hold off of testing for register faults from the duration
      of the test.
2017-04-14 09:58:14 +02:00
David Sidrane
c3c5be3881 mpu9250 Fixed 'test' function causes register checking to find a false faults
Diisabled interrupts in reset to make command to reset atomic.

      Added hold off of testing for register faults from the duration
      of the test.
2017-04-14 09:58:14 +02:00
David Sidrane
15460ade77 Fixed 'test' function causes register checking to find a false faults
Added hold off of testing for register faults from the duration
  of the test.
2017-04-14 09:58:14 +02:00
Julian Oes
bb168287da gps: just use termios on QURT
QURT has added support for termios calls a while back that we can now
use.
2017-04-14 09:56:42 +02:00
Daniel Agar
a41001354a FW landingslope delete unused (#7046) 2017-04-13 18:18:57 -04:00
ChristophTobler
12505177b6 add killswitch to snapdragon pwm driver 2017-04-14 00:16:50 +02:00
Nate Weibley
9eb0e62787 Support calibration of fast+slow gyros #6998 2017-04-13 20:22:35 +02:00
Mohammed Kabir
5fc20bea5d camera_trigger : add support for resetting trigger sequence 2017-04-13 20:21:40 +02:00
Mohammed Kabir
7fcb3b4f93 camera_trigger : add support for sending ACKs for trigger commands 2017-04-13 20:21:40 +02:00
Mohammed Kabir
056c99b6fb px4fmu-v4 : add probe instrumentation for timing analysis 2017-04-13 20:21:40 +02:00
Mohammed Kabir
4850aef4f5 px4fmu-v4pro : add probe instrumentation for timing analysis 2017-04-13 20:21:40 +02:00
Mohammed Kabir
2c0d1c013a camera_trigger : digicam control command should only shoot once 2017-04-13 20:21:40 +02:00
Mohammed Kabir
e4896a5972 camera_trigger : remove unnecessary constrains for constant values 2017-04-13 20:21:40 +02:00
Mohammed Kabir
ae35bf524d camera_trigger : enforce a minimum activation time in PWM modes 2017-04-13 20:21:40 +02:00
Mohammed Kabir
24f57b00a6 camera_trigger : consolidate camera power control and fix camelCase 2017-04-13 20:21:40 +02:00
Mohammed Kabir
164e200d8e camera_trigger : consolidate handling of pins 2017-04-13 20:21:40 +02:00
Mohammed Kabir
0a5ada9e02 stm32 : formatting 2017-04-13 20:21:40 +02:00
Mohammed Kabir
f9862ec5a8 camera_trigger : add default mode for generic PWM triggering 2017-04-13 20:21:40 +02:00
Mohammed Kabir
9be7ad5805 camera_trigger : clean up iterators 2017-04-13 20:21:40 +02:00
Mohammed Kabir
c97226b9da camera_trigger : add generic pwm interface for servo-like trigger systems (e.g IR trigger) 2017-04-13 20:21:40 +02:00
Mohammed Kabir
c06d1a9dbe camera_trigger : rename Seagull MAP2 interface 2017-04-13 20:21:40 +02:00
Mohammed Kabir
3dee42b5ca stm32 : deconflict pwm_get_rate_group from all other timer modes 2017-04-13 20:21:40 +02:00
Mohammed Kabir
3b3e2b275e px4fmu : consolidate usage of output mode 2017-04-13 20:21:40 +02:00
Mohammed Kabir
6d3c16a35b camera_trigger : cleanup pwm interface 2017-04-13 20:21:40 +02:00
Mohammed Kabir
ea890ecdd3 camera_trigger : clean up console output 2017-04-13 20:21:40 +02:00
Mohammed Kabir
704de4f88f stm32 : deinit trigger pins properly 2017-04-13 20:21:40 +02:00
Mohammed Kabir
82a1bd83bc stm32 : add new interface for PWM-based camera_trigger 2017-04-13 20:21:40 +02:00
Mohammed Kabir
2b838f5704 camera_trigger : rename relay to gpio 2017-04-13 20:21:40 +02:00
Mohammed Kabir
95778c74e2 rcS : properly handle trigger/actuator pin mixing 2017-04-13 20:21:40 +02:00
Daniel Agar
827725fbe0 cmake remove -Weffc++ (#7044)
- closes #7040
2017-04-13 13:30:22 -04:00
Jon Watson
3fda79ef8b set battery warning for MAVLink battery status (#6890) 2017-04-13 12:37:19 -04:00
Dennis Mannhart
340773096d landdetector: exit landing state if manual.z is larger than threshold 2017-04-13 16:59:23 +02:00
Mohamed Abdelkader Zahana
239370d72c use 1E7 instead 10000000.0f 2017-04-13 11:18:10 +02:00
Mohamed Abdelkader Zahana
a9ec1a35bc divide lat/lon received from HIL_STATE_QUATERNION msg by 1E7 2017-04-13 11:18:10 +02:00
Daniel Agar
2f6249af2f cmake add better logs_symlink dependencies 2017-04-12 19:26:06 +02:00
Matthias Grob
2955a2c317 simulator: typo in initial output message 2017-04-12 18:58:37 +02:00
Daniel Agar
f608abc6b0 README add uavcan and aero labels (#7026) 2017-04-11 21:21:07 -04:00
Daniel Agar
06c4a0d195 README link to github labels 2017-04-11 20:31:04 +02:00
Lorenz Meier
39dc983c6f DriverFramework: Update to new version and new dspal submodule / location 2017-04-11 06:49:29 +02:00
davidaroyer
1302b6a796 inav: check for updated baro in baro_offset calculation 2017-04-11 06:24:41 +02:00
Beat Küng
24380ae88c logger: add SDLOG_DIRS_MAX param to limit the max number of log directories
Disabled by default, so that logs are not deleted unexpectedly.
2017-04-10 23:37:09 +02:00
Beat Küng
685f114d29 sitl_target.cmake: create a symlink to the log directory in the build dir
Allowing for easier access to SITL logs.
2017-04-10 23:37:09 +02:00
Beat Küng
7f0db95f87 logger: reduce CPU load by ~1.5%
Reduces CPU load from ~6.9% to 5.3% (tested on Pixracer & Pixhawk). The
method is only used once, so it does not increase flash usage.
2017-04-10 23:37:09 +02:00
Beat Küng
75bd4f1121 logger: implement a logrotate
Remove old log directories on startup if free space falls below a threshold.
The threshold is 300MB or 10% of the disk capacity if that's smaller.
2017-04-10 23:37:09 +02:00
Lorenz Meier
85b074f8d8 Navigator: Fix RTL state sequence 2017-04-10 23:34:35 +02:00
Daniel Agar
83cf4fb16e cmake multi_tables.py dependency 2017-04-10 23:31:56 +02:00
Lorenz Meier
5fd7f2fa6f Navigator: Clean up of mission block init 2017-04-10 23:18:40 +02:00
Dennis Mannhart
8687d414bf mc_pos_control: new variable that defines speed in manual controlled mode 2017-04-10 21:34:00 +02:00
ChristophTobler
232f428f6e add ll40ls for Aerofc 2017-04-10 20:20:36 +02:00
Daniel Agar
0b8e88f476 fw_pos_control_l1 remove unnecessary ground_speed 2017-04-10 09:41:01 +02:00
Daniel Agar
dc30498c80 fw_pos_control_l1 control_position split position_setpoint_triplet 2017-04-10 09:41:01 +02:00
Daniel Agar
0b0c552dee fw_pos_control_l1 remove unused ground_speed arg 2017-04-10 09:41:01 +02:00
Daniel Agar
af7b2cd22f fw_pos_control_l1 cleanup init and uorb helpers 2017-04-10 09:41:01 +02:00
Daniel Agar
474ce2851e fw_pos_control_l1 using math constrain, max, min, radians 2017-04-10 09:41:01 +02:00
Daniel Agar
8b4877a6eb fw_pos_control_l1 delete unused terrain helper 2017-04-10 09:41:01 +02:00
Mark Whitehorn
7e3d07207c Update README.md 2017-04-10 09:37:49 +02:00
James Goppert
955749ed6f Add iris_rplidar model (#6558)
* Whitespace cleanup and add config for rplidar.

* Add rplidar target.

* Disable gps for rplidar.
2017-04-10 03:06:21 -04:00
Mark Charlebois
36f3befec8 Updated to latest dspal and cmake_hexagon
DriverFramework has to be updated to update dspal to the
ATLFlight version of dspal.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-04-10 08:49:29 +02:00
Daniel Agar
c5e0bf1c2f uORB combine VTOL FW and MC virtual topics (#7008) 2017-04-09 13:17:20 -04:00
Lorenz Meier
19f0b0be3a Navigator: Altitude acceptance to switch to new waypoints should be more accurace than horizontal distance by default 2017-04-09 17:25:38 +02:00
Lorenz Meier
3b743fbbe9 MC position control: Smoother takeoff
This patch ramps up the throttle to hover throttle instead of a fixed value and limits the vertical takeoff speed to the value set in the parameter. This should ensure smoother, slower takeoffs, in particular in autonomous flight modes.
2017-04-09 17:22:58 +02:00
Lorenz Meier
61cd89efc1 Land detector: Since multicopters take off and land slower than 0.7 m/s, setting the default detection threshold to 0.5 m/s is a much safer default 2017-04-09 17:22:58 +02:00
Dennis Mannhart
4ff3fb4dee mc_pos_control: if takeoff setpoint in auto mode, then do not enter ground contact 2017-04-09 17:19:28 +02:00
Lorenz Meier
08cf97c687 Commander: indicate failsafe reasons more clearly 2017-04-09 12:40:34 +02:00
James Goppert
10ebac2026 Fix build when px4 is a submodule (#7006)
* Fix build when px4 is a submodule

* Check if submodule directory exists.

* Fix submodule directory reading
2017-04-08 23:47:38 -04:00
David Sidrane
3435936189 Force the patches to be applied in order again!
While the list was sorted, this change serialize the application
   of the patches.

   Moved the disply to the actual application of the patch not
   the configuration step.
2017-04-08 07:59:21 +02:00
Lorenz Meier
f74d6e443e Navigator: Initialize RTL state properly 2017-04-08 07:58:37 +02:00
Daniel Agar
8c9affddc8 travis-ci generate and upload parameters.md 2017-04-07 22:06:23 +02:00
Kevin Lopez Alvarez
cff20ee51e FMUv4pro : updates (#6983)
* FMUv4pro : allow power monitoring for hipower rail

* FMUv4pro : init temperare calibration EEPROM CS

* FMUv4pro : workaround for safety switch

* FMUv4pro : remove useless and conflicting defines

* FMUv4pro : disable internal pull-up for OC sensing

/FAULT won't achieve VinputLow with internal pull-up resistor so it must
be turned off for both /VDD_5V_PERIPH_OC and /VDD_5V_HIPOWER_OC.
Replaced by external pull-up.

* FMUv4pro : correct safety switch handling

RC02 has a hardware pull-down on this signal

* Revert "FMUv4pro : workaround for safety switch"

This reverts commit 9528ae29b68700fa7c6604c1ac2756c7dac2819c.
2017-04-07 06:14:04 -10:00
Matthias Grob
854511b14b cmake: NuttX make shell script call explicit (#6996) 2017-04-07 11:33:19 -04:00
sirPerna
94ef3db407 autostart external airspeed sensor on i2c port 2 2017-04-07 07:34:39 +02:00
David Sidrane
6ef2ae2999 Reduce USART1 tx buffer by 8 bytes to fix aligment issue
The recent changes to the timers increased memory by 8 bytes.
   and should have ONLY added 8 bytes
   was  20000dc0	40	20000E00
   is:  20000dc8	40	20000E08
   s/b  20000E08       1f3      next symbol

   But for some unknown reason the linker skipped to the next alignment
   of 256 and wasted 246 bytes.

   20000F00     1f3     next symbol

   Even with .align 8 in the .S file and . = ALIGN(4); in the linker
   script I could not move the allocation back only up to the next
   512 alighment.

   So this is a hack to shift things back 8 bytes.
2017-04-07 07:30:30 +02:00
David Sidrane
f8d955d5a7 Fixed typo in comment 2017-04-06 17:07:28 +02:00
David Sidrane
6541af9297 add-set-ex-to-nsh Reorder patch 2017-04-06 17:07:28 +02:00
David Sidrane
cc04dfd27b Added set [{+|-}{e|x|xe|ex}] [<name> <value>] to nsh (#6985)
* NSH Added support for set [{+|-}{e|x|xe|ex}] [<name> <value>]

   Set the 'exit on error control' and/or 'print a trace' of
   commands when parsing scripts in NSH.
   The settinngs are in effect from the point of exection,
   until they are changed again, or in the case of the init
   script, the settings are returned to the default settings
   when it exits.

   Included child scripts will run with the parents settings
   and changes made in the child script will effect the parent
   on return.

   Use 'set -e' to enable and 'set +e' to disable (ignore) the exit
   condition on commands. The default is -e. Errors cause script to
   exit.

   Use 'set -x' to enable and 'set +x' to disable (silence) printing
   a trace of the script commands as they are ececuted. The default
   is +x. No printing of a trace of script commands as they are
   executed.

  Print expanded variables if -x

* Added comments only on how to use the set +e and and set -x

* Spelling NSH_PFALG_* -> NSH_PFLAG_*
2017-04-06 03:42:16 -10:00
Daniel Agar
392a9fbb19 geotagging.py remove unused imports 2017-04-06 14:43:22 +02:00
Daniel Agar
6677022622 geotagging.py pep8 formatting 2017-04-06 14:43:22 +02:00
Daniel Agar
7be2eb06a2 geotagging.py handle mismatch of triggers and images
- print simple progress with time mismatch warning
2017-04-06 14:43:22 +02:00
Daniel Agar
c2be4df9b7 geo_tag_images.py remove unused imports 2017-04-06 14:43:22 +02:00
Daniel Agar
833a7e3677 geo_tag_images pep8 formatting 2017-04-06 14:43:22 +02:00
Daniel Agar
83d7764e9e geo_tag_images.py fix to work with PX4 logs 2017-04-06 14:43:22 +02:00
Hamish Willee
33b4ec450d Update parameter script to include increment, enum value, bitmask, module information 2017-04-06 14:04:26 +02:00
David Sidrane
8e217b0287 bugfix:drv_io_timer properly initialize non-contiguous timer channels
This fixes the issue with initializing channels 5,6 without
  channels 1-4.

  The code assumed all timers actions were in order to be
  initialized. This is not the case. This commit fixes that
  bad assumption by not stopping the configuration on the
  first action entry with a base == 0, but processing all
  entries with non-zero base.
2017-04-06 12:20:45 +02:00
Beat Küng
b76e7347b5 px4fmu-v4pro nuttx config: reduce CONFIG_CDCACM_TXBUFSIZE to 2000
Log file download via Mavlink is the one that needs the most bandwidth.
It needs typically around 200B TX buffer, and spikes at around 1500B every
10sec, with an average download speed of 230KB/s.
2017-04-06 12:20:06 +02:00
Beat Küng
9f9477e156 px4fmu-v4 nuttx config: reduce CONFIG_CDCACM_TXBUFSIZE to 2000
Log file download via Mavlink is the one that needs the most bandwidth.
It needs typically around 200B TX buffer, and spikes at around 1500B every
10sec, with an average download speed of 230KB/s.
2017-04-06 12:20:06 +02:00
Beat Küng
a18fdd2e26 px4fmu-v3 nuttx config: reduce CONFIG_CDCACM_TXBUFSIZE to 2000
Log file download via Mavlink is the one that needs the most bandwidth.
It needs typically around 200B TX buffer, and spikes at around 1500B every
10sec, with an average download speed of 230KB/s.
2017-04-06 12:20:06 +02:00
Beat Küng
40240e83b7 px4fmu-v2 nuttx config: reduce CONFIG_CDCACM_TXBUFSIZE to 2000
Log file download via Mavlink is the one that needs the most bandwidth.
It needs typically around 200B TX buffer, and spikes at around 1500B every
10sec, with an average download speed of 230KB/s.
2017-04-06 12:20:06 +02:00
Beat Küng
0392efff94 px4-stm32f4discovery nuttx config: reduce CONFIG_CDCACM_TXBUFSIZE to 2000
Log file download via Mavlink is the one that needs the most bandwidth.
It needs typically around 200B TX buffer, and spikes at around 1500B every
10sec, with an average download speed of 230KB/s.
2017-04-06 12:20:06 +02:00
Beat Küng
ff7d062987 mindpx-v2 nuttx config: reduce CONFIG_CDCACM_TXBUFSIZE to 2000
Log file download via Mavlink is the one that needs the most bandwidth.
It needs typically around 200B TX buffer, and spikes at around 1500B every
10sec, with an average download speed of 230KB/s.
2017-04-06 12:20:06 +02:00
Beat Küng
6f74994c2a auav-x21 nuttx config: reduce CONFIG_CDCACM_TXBUFSIZE to 2000
Log file download via Mavlink is the one that needs the most bandwidth.
It needs typically around 200B TX buffer, and spikes at around 1500B every
10sec, with an average download speed of 230KB/s.
2017-04-06 12:20:06 +02:00
ChristophTobler
9dab1e36db add two-pole-filter to mpu9250 wrapper 2017-04-06 12:19:15 +02:00
Beat Küng
882c5bbdc9 4070_aerofc: update MPC and LND parameters 2017-04-06 12:18:30 +02:00
Lucas De Marchi
260b8ea940 aerofc: remove USB
There's no USB, don't bring it in.
2017-04-06 12:18:30 +02:00
Lucas De Marchi
5744a0bcec aerofc: update NuttX config 2017-04-06 12:18:30 +02:00
Lucas De Marchi
06408b8a4e ROMFS: allow to run without sercon 2017-04-06 12:18:30 +02:00
Lucas De Marchi
c39e9a9695 ROMFS: aerofc: set default EKF2 params 2017-04-06 12:18:30 +02:00
Lucas De Marchi
366ff1f3e9 ist8310: remove undef
Use PX4_ERROR instead.
2017-04-06 12:18:30 +02:00
Lucas De Marchi
04dac46eaf ist8310: be resilient to bad data coming from sensor
It doesn't hurt to test if the sensor is outputing data in the expected
range and it should help with elimination of spikes in case of errors.
2017-04-06 12:18:30 +02:00
Lucas De Marchi
e40209ead9 ist8310: remove commented out and dead code
This code just makes it harder to grok the driver. When support for this
feature is available we can bring it back.
2017-04-06 12:18:30 +02:00
Lucas De Marchi
ade6336fd0 ist8310: lower sample rate 2017-04-06 12:18:30 +02:00
Lucas De Marchi
3c48aa4cf1 aerofc: use MPU9250 driver 2017-04-06 12:18:30 +02:00
Lucas De Marchi
3200b032c0 mpu9250: add support to MPU6500
MPU9250 is mostly an MPU6500 with a mag (AK8963) in the same package.
Support driving MPU6500 with the MPU9250 driver. The id of the driver
isn't set differently since this way it allows to force a recalibration.

Ideally MPU9250 driver could even not exist and the support for these
sensors be merged back in the MPU6000 that's more complete. This is an
intermediate step in that direction.
2017-04-06 12:18:30 +02:00
Lucas De Marchi
2805bffe52 ms5611: reduce macro scope
Move the addresses to .cpp where they are used. This should help
noticing discrepancies like the OSR we are using and the sampling
interval.
2017-04-06 12:18:30 +02:00
Lucas De Marchi
47d4c75214 ms5611: poll sensor at 100Hz 2017-04-06 12:18:30 +02:00
Lucas De Marchi
c5108cafff aerofc: fix documentation about pins
- There's no I2C2, so remove it
  - Fix alignments everywhere in board_config.h
  - Clarify STM32 ADC (not available) and the ADC on the FGPA
  - Fix format on some comments
2017-04-06 12:18:30 +02:00
Lucas De Marchi
11d419161b mpu6500: switch driver to 16G range
All the other drivers use 16G, do the same for MPU6500.
2017-04-06 12:18:30 +02:00
Lucas De Marchi
16cd710251 aerofc: set tap esc mode 2017-04-06 12:18:30 +02:00
Lucas De Marchi
6b8c0f7db2 tap_esc: enable closed loop control if supported by board 2017-04-06 12:18:30 +02:00
Lucas De Marchi
173001e73a aerofc: add BOARD_ prefix to define and update description 2017-04-06 12:18:30 +02:00
Lucas De Marchi
41e51a7c85 tap_esc: change define to use BOARD_ prefix 2017-04-06 12:18:30 +02:00
Lucas De Marchi
e535156599 ROMFS: set baudrate to 460800 for aerofc
We are getting way to much transfer errors with high baudrate
2017-04-06 12:18:30 +02:00
bresch
12182ec1fc Increase max yawrate default parameters for standard delta VTOL
MC_YAWRATE_MAX 20  => 50

Signed-off-by: bresch <brescianimathieu@gmail.com>
2017-04-06 12:13:14 +02:00
Pavel Kirienko
5788701cc7 Replaced warn() with PX4_WARN() 2017-04-06 12:05:57 +02:00
Pavel Kirienko
02a9ccc4f2 Removed dependency on <algorithm> 2017-04-06 12:05:57 +02:00
Pavel Kirienko
098b57534d UAVCAN GNSS bridge: proper handling of various time bases 2017-04-06 12:05:57 +02:00
Pavel Kirienko
8e61ed9b77 Republishing GNSS Fix2 if no GNSS publishers are available on the bus 2017-04-06 12:05:57 +02:00
Pavel Kirienko
14249d3318 UAVCAN GNSS bridge status output shows whether support for the old Fix message is active 2017-04-06 12:05:57 +02:00
Pavel Kirienko
75c45b62d7 UAVCAN GNSS Fix2 handling 2017-04-06 12:05:57 +02:00
Pavel Kirienko
32ac1288ba Libuavcan update 2017-04-06 12:05:57 +02:00
Beat Küng
58f42c19ad mpu6000: use MPU6000_ACCEL_DEFAULT_RANGE_G define for accel range 2017-04-06 11:50:35 +02:00
Beat Küng
2506b4099f lsm303d: set accel range to 16g 2017-04-06 11:50:35 +02:00
Beat Küng
51add81f6b bmi160: set accel range to 16g 2017-04-06 11:50:35 +02:00
Beat Küng
4d7ed14606 unittests: add PARAM_NO_AUTOSAVE definition
Seems that the work queue is not available for the tests.
2017-04-06 11:49:03 +02:00
Beat Küng
2946aafc2b cmake configs: add -DPARAM_NO_AUTOSAVE for esc32, px4esc, px4cannode, s2740vc
These configs do not have the work queue enabled.
2017-04-06 11:49:03 +02:00
Beat Küng
044a767235 param: add PARAM_NO_AUTOSAVE: if defined, do not depend on LP work queue
Some NuttX configs do not have the work queues enabled.
2017-04-06 11:49:03 +02:00
Beat Küng
b5bb5cffc8 gps: check for allocation failure & avoid busy loop 2017-04-06 11:49:03 +02:00
Beat Küng
1be639ec46 temperature_calibration: turn off param autosave 2017-04-06 11:49:03 +02:00
Beat Küng
43afb8d41e sensor calibration: remove param_save_default() calls 2017-04-06 11:49:03 +02:00
Beat Küng
4b18f8ea46 LandDetector: remove param_notify_changes()
not needed anymore because of autosave
2017-04-06 11:49:03 +02:00
Beat Küng
f256d03364 param command: remove param_save_default() calls
Not needed anymore due to autosave
2017-04-06 11:49:03 +02:00
Beat Küng
dffba3e03b param: move variable definitions to the top of the file 2017-04-06 11:49:03 +02:00
Beat Küng
a0e2b0c5a2 param: add param_control_autosave to enable/disable autosave 2017-04-06 11:49:03 +02:00
Beat Küng
f3e9739ab0 param export: use writer lock
to protect against concurrent writes to the same file
2017-04-06 11:49:03 +02:00
Beat Küng
a5cdff06d5 param: implement rate-limited autosave
- add a saving delay of 300ms
- save at most once every 2 seconds
2017-04-06 11:49:03 +02:00
Beat Küng
7c43689ddc commander: remove param autosave 2017-04-06 11:49:03 +02:00
Beat Küng
f179049e95 replay: ignore the ULogMessageType::INFO message
This got introduced the the addition of the perf counter to the log.

Fixes the error:
unknown log message type 73
2017-04-06 11:48:35 +02:00
Beat Küng
c7d9a7a6d1 mavlink_log_handler: fix potential buffer overflow 2017-04-06 11:48:35 +02:00
Beat Küng
b0ee1579a9 local_position_estimator: fix typo in params 2017-04-06 11:48:35 +02:00
Beat Küng
04303dcf72 PreflightCheck: use orb_unsubscribe instead of px4_close 2017-04-06 11:48:35 +02:00
Beat Küng
ecb0dc2bc4 IridiumSBD: use strncpy instead of strcpy 2017-04-06 11:48:35 +02:00
Beat Küng
9be11c048a batt_smbus: fix string length, use correct delete[] for array 2017-04-06 11:48:35 +02:00
Beat Küng
d9dac8a6a8 Tools/px_process_params.py: set executable bit 2017-04-06 11:48:35 +02:00
Beat Küng
4d62dd893b tap_esc: handle lockdown & manual_lockdown -> kill switch 2017-04-06 11:46:09 +02:00
Beat Küng
96c40d3ce9 tap_esc: improve cleanup & initialization code 2017-04-06 11:46:09 +02:00
ChristophTobler
7aea4a33c0 use new logger for all eagle configs 2017-04-06 08:45:45 +02:00
ChristophTobler
3d1a10d4f2 Use new logger for Snapdragon Flight 2017-04-05 13:49:02 +02:00
Hamish Willee
0ea331d5c4 Add markdown (HTML) output format for parameters 2017-04-05 13:39:33 +02:00
Daniel Agar
a6eb0053c5 TECS default FW_T_HRATE_FF 0.8 2017-04-05 09:31:20 +02:00
Daniel Agar
027e8ee8c0 TECS remove unused and fix style 2017-04-05 09:31:20 +02:00
Daniel Agar
22d0e507c6 TECS fix height demand change 2017-04-05 09:31:20 +02:00
Beat Küng
bc8b36a986 gps: update driver submodule 2017-04-04 11:32:18 +02:00
Dennis Shtatnov
6b2f5970eb FMU get initial values of parameters 2017-04-03 01:41:58 +02:00
Sander Smeets
0158f1d506 VTOL Standard transition improvements (#6904)
* FW actuators fully on the entirety of front and back transition
 * back transition ramp up to full MC weight half way through back transition
 * increase maximum front and back transition times
 *  navigator don't reset transition altitude
2017-04-02 19:39:39 -04:00
Jonathan Lee
1d681b0356 Update URL in airspeed calibration error message
When a FW/VTOL system detects a missing airspeed sensor, it produces an error message.
This patch uses the new relevant URLs in the PX4 documentation.

Fixes #4549
2017-04-03 00:25:24 +02:00
Mohammed Kabir
d50a0c4323 pwm : fix code style 2017-04-02 21:52:18 +02:00
Mohammed Kabir
f915896413 pwm : run update only on NuttX 2017-04-02 21:52:18 +02:00
Mohammed Kabir
e8e4e5be49 land detector : add stbs for altitude 2017-04-02 21:52:18 +02:00
Lorenz Meier
1adbf37cbe PWM command: Do not use return value of read 2017-04-02 21:52:18 +02:00
Lorenz Meier
dbd065a307 Add PWM out sim trim settings 2017-04-02 21:52:18 +02:00
Lorenz Meier
306d4b8817 Makefile: Add Gazebo clean step 2017-04-02 21:52:18 +02:00
Lorenz Meier
5f135acf33 Land detector: Add mode for rovers 2017-04-02 21:52:18 +02:00
Lorenz Meier
bbd1906dfb Add Rover SITL config 2017-04-02 21:52:18 +02:00
Lorenz Meier
63a84900e6 Add rover model 2017-04-02 21:52:18 +02:00
bharath374
6e64bff494 Updated PID gains in 200qx config file 2017-04-02 12:15:37 +02:00
FantasyJXF
d1c3b771ee Update navigator_main.cpp
fix a spell error
2017-04-02 12:15:10 +02:00
Beat Küng
2a175aa2f9 logger: use nullptr instead of NULL 2017-04-01 20:19:52 +02:00
Beat Küng
bfcbe4b6c3 log_writer_file: rename perf counters
To be more consistent with the rest of the system
2017-04-01 20:19:52 +02:00
Beat Küng
190c14c186 logger: add preflight & postflight process usage & perf counters to the log
For the process usage: we need to measure over a certain period of time,
then we can use the results. To avoid blocking, this does:
- after log is started, initialze the load counters, then one second later
  add the results to the log
- after disarming: continue logging for one more second, then add the process
  load to the log and stop logging.
- to avoid a delay, 'logger stop' will stop immediately and not log
  postflight process usage.
2017-04-01 20:19:52 +02:00
Beat Küng
e75f5a4642 perf_counter: add perf_print_counter_buffer & perf_iterate_all
These can be used to print the perf counters to a buffer.
2017-04-01 20:19:52 +02:00
Beat Küng
446c734edc perf_counter: use a mutex to protect concurrent access to the perf_counters linked list
perf_counters is read from and written to by different threads and thus
requires synchronization. Without it we risk accessing invalid memory.

There are still remaining issues (see comment in code), they will not lead
to a crash however.
2017-04-01 20:19:52 +02:00
Beat Küng
4b01e5b6b6 printload: add print_load_buffer() method
Instead of printing to an fd, this prints to a buffer and calls a callback
for each line. To avoid code duplication, the print_load has been refactored
to print to a buffer first, then print to an fd. The overhead is not
noticable, and the behavior of print_load is unchanged.
2017-04-01 20:19:52 +02:00
Beat Küng
9f3043f9ca printload: store total_runtime in a separate loop
Because during the printf, the total_runtime could be changed by another
task. This is still not entirely race-free though.
2017-04-01 20:19:52 +02:00
Beat Küng
23d0355979 printload: reduce memory usage of print_load_s
assuming CONFIG_MAX_TASKS = 32, this saves 256B of RAM
2017-04-01 20:19:52 +02:00
Beat Küng
c46274043f printload: use sched_lock to protect access to tcb
what could have gone wrong before? A scheduling switch during the printload
could have led to a task exit, rendering the tcb invalid. After switching
back, printload would access invalid memory.

This keeps the sched_lock() section as small as possible, just grabbing the
tcb variables we need.
2017-04-01 20:19:52 +02:00
Daniel Agar
4b8bedef48 avoid double promotions 2017-04-01 20:19:28 +02:00
Daniel Agar
412f956636 clang-tidy enable performance-type-promotion-in-math-fn 2017-04-01 20:19:28 +02:00
Julian Oes
3c1d785d86 mavlink_mission: set INT frame correctly
Also when formatting malvink mission items from internal mission items,
the INT flag should be obeyed.
2017-04-01 20:07:55 +02:00
Julian Oes
80ce1b6dd8 mavlink_mission: support INT altitude frames
The relative altitude flag was not set correclty when waypoints are sent
using the INT protocol.
2017-04-01 20:07:55 +02:00
Henry Zhang
982fe91fa8 Commander: fix LED status bug when system is armed 2017-04-01 11:39:05 +02:00
David Sidrane
0b91fd0e20 Backport stm32f7:Serial fix for dropped data
1) Revert the inherited dma bug from the stm32
       see df9ae3c13f
       for details.

       2) Most all CR1-CR3 settings can not be configured while UE
          is true. Threfore we make all operation atomic and disable
          UE and restore it's originalstate on exit.

       N.B. This backport omits all upstream breaking changes.
2017-04-01 11:37:47 +02:00
David Sidrane
ba1de2cc0b Renamed to indicate stm32 2017-04-01 11:37:47 +02:00
David Sidrane
cd7a57ca1b fmuv5:cr2 was written to cr1 2017-04-01 11:37:47 +02:00
David Sidrane
3eada2c3df fmuv5:Using wrong Sbus Serial port 2017-04-01 11:37:47 +02:00
David Sidrane
36731e13c6 Allow levels of Sbus debugging 2017-04-01 11:37:47 +02:00
Nate Weibley
3ba3aff505 Correct MPU6/9k external detection 2017-03-31 11:04:14 +02:00
David Sidrane
eb86730dca Removed all SPEKTUM Power and Bind Control
FMUv4 PRO HW does not have a controlable V3.3 on the connector
   it therefore can not support the SPEKTUM binding.
   This PR removes the Power switch controls or binding control
   interfaces from the board config
2017-03-30 16:19:26 -10:00
David Sidrane
9f0ea7ff4f aerofc-v1 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
a8f76a3319 px4nucleoF767ZI-v1 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate bindin

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
3ed5cedea3 px4io-v2 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
784abf2c19 px4io-v1 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
4574feaee6 px4fmu-v5 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_R
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
29dd41db1d px4fmu-v4pro Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
a161c05dc6 px4fmu-v4 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
dace50c2aa mindpx-v2 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane
78d7508800 dsm Use the abstaction SPEKTRUM_POWER to enable the interface
Use the abstaction SPEKTRUM_POWER to enable the interface not
   the define for the GPIO pin.

   Use the clearer macro definitions
2017-03-30 16:19:26 -10:00
David Sidrane
d80a322961 fmu: Remove Legacy FMUv4 and use the abstaction SPEKTRUM_POWER
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Use the abstaction SPEKTRUM_POWER to enable the interface not
   the define for the GPIO pin.
2017-03-30 16:19:26 -10:00
David Sidrane
26d50d2c98 tap-v1 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to
   facilitate binding.

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
Matthias Grob
5a00cb4770 MPU6000 driver: change default accelerometer range to +-16g
This range amkes much more sense for MAV applications.
It reduces vibration vulnerability caused by measurement range clipping.
2017-03-30 19:07:59 +02:00
Dennis Mannhart
419c474d53 mc_pos_control: manual input temporary yaw fix 2017-03-30 16:43:43 +02:00
Beat Küng
cb87f1ea85 unittests: handle visibility.h correctly 2017-03-29 23:02:09 +02:00
Beat Küng
74f4aecbf8 random.c: remove unused & conflicting RAND_MAX 2017-03-29 23:02:09 +02:00
Beat Küng
358bcb6ae0 visibility.h: add #pragma GCC poison getenv setenv putenv
Just to make sure that it will never be used on NuttX. This is not an
architectural limitation, just a memory optimization, since we call
clearenv() on NuttX.
2017-03-29 23:02:09 +02:00
Beat Küng
4a7e02c640 systemlib/visibility.h: remove this file
This is duplicated in src/include/visibility and is directly included via
compiler flag '-include'
2017-03-29 23:02:09 +02:00
Beat Küng
e87aa6f6c1 cmake: remove ${PX4_INCLUDE_DIR}visibility.h
This is already added in px4_base.cmake and PX4_INCLUDE_DIR is not set
either.
2017-03-29 23:02:09 +02:00
Beat Küng
d72133a380 rcS: increase log buffer by 4kB
To reduce dropouts, and because we have enough RAM :)
2017-03-29 23:02:09 +02:00
Beat Küng
be2d10ff45 px4_nuttx_tasks: call clearenv() before task_create
Frees up around 6kB of RAM on Pixracer & Pixhawk.
2017-03-29 23:02:09 +02:00
ChristophTobler
80e7475267 use snapdragon_pwm_out and change connector for RC 2017-03-29 20:11:34 +02:00
David Sidrane
90fe63bb53 Fixes dead aux channels introduce in oneshot
Returned the fmu mixer code to where it updated the HW once
   it has a mixer. But  only signals a up_pwm_update() for
   onshots on actual control update.

   Before this change the hw outpuse were not updated.
2017-03-28 22:57:00 +02:00
Beat Küng
d7703173b2 Critical: Fixes Snapdragon Flight parameter synchronization problem (#6910)
* cmake: Fixes problem caused when the generated parameters.xml differs for the ARM and DSP builds.

* fix px4_getopt.h: add accidentally removed file
2017-03-28 16:10:17 +02:00
David Sidrane
7ef3b92109 Fixes lost RC on px4fmu-v4
A recent change in in the fmu stops the instance when a
   xxxx_reset command is used issued if the fmu was not
   already running.

   That change left publications published and then on the
   next creation created a new publications was created.

   This change calls orb_unadvertise to mark the publication
   as un published so that on the next instantiations of the
   fmu it resumes publishing on the same publication.
2017-03-28 08:18:43 +02:00
Daniel Agar
79d15ad2f0 mavlink stream camera trigger broadcast DO_DIGICAM 2017-03-26 14:05:38 +02:00
Mohammed Kabir
679b59b8d4 lpe : default fusion flags for GPS-only use 2017-03-26 14:05:23 +02:00
Lorenz Meier
de6302c418 Update DriverFramework to include Mac OS SITL fixes 2017-03-26 12:44:49 +02:00
Sander Smeets
16515e1d1e VTOL standard transition use FW_PSP_OFF (#6728)
* VTOL back transition maintain FW_PSP_OFF

* VTOL Front transition FW_PSP_OFF rampup
2017-03-25 00:24:59 -04:00
David Sidrane
2d92ad2538 stm32 Updated flash patch to upstream revised (#6893)
* stm32 Updated flash patch to upstream (fixes missing commit)

* Removed zubaxgnss-v1_bootloader check build will not fit

Removing zubaxgnss-v1_bootloader from the check build. It is overflowing flash by 6 Bytes.
2017-03-25 00:06:00 -04:00
Sander Smeets
fc71ef98bb DeltaQuad params (#6894)
DeltaQuad params
2017-03-25 02:06:19 +01:00
Nate Weibley
9618b9417b Inline block param getter 2017-03-24 22:51:38 +01:00
Nate Weibley
f5ffdba4cc Move uORB Subscription getter to header file (#6891) 2017-03-24 15:47:22 -04:00
Jon Watson
8a6b6f9be5 Send MAVLink DO_DIGICAM_CONTROL on camera trigger (#6815) 2017-03-24 13:24:09 -04:00
David Sidrane
577b4cf2f9 zubaxgnss-v1 Use common/nuttx_stubs to not link scheduler 2017-03-24 16:22:47 +01:00
David Sidrane
f550631ecf s2740vc-v1 Use common/nuttx_stubs to not link scheduler 2017-03-24 16:22:47 +01:00
David Sidrane
92ca9fa035 px4flow-v2 Use common/nuttx_stubs to not link scheduler 2017-03-24 16:22:47 +01:00
David Sidrane
cbdc6dde7d px4esc-v1 Use common/nuttx_stubs to not link scheduler 2017-03-24 16:22:47 +01:00
David Sidrane
c7ace100bf px4cannode-v1 Use common/nuttx_stubs to not link scheduler 2017-03-24 16:22:47 +01:00
David Sidrane
c8432ae273 esc35-v1 Use common/nuttx_stubs to not link scheduler 2017-03-24 16:22:47 +01:00
David Sidrane
78e2a293d2 Fix UAVCAN bootloader builds broken by os calls from stm32_flash
Recent upsteam NuttX changes needed by PX4 added sem_[wait|post]
   in the stm32_flash driver.

   UAVCAN Bootloaders do not use the OS's scheduler etal.
   This commit nops the sem_[wait|post] with linker magic.
   Which precludes the linking the nuttx scheduler in the
   bootloader build.
2017-03-24 16:22:47 +01:00
David Sidrane
5c6264ae35 Backport:stm32_flash changes from upsteam
PX4 contrib from <jose.souza@intel.com>

  1) stm32: Fix erase sector number for microcontrolers with
     more than 11 sectors

     Erase a sector from the second bank cause the bit 4 of SNB being set
     but never unsed, so trying to erase a sector from the first bank
     was acually eraseing a sector from the second bank.
  2) stm32: Make up_progmem thread safe

   Writing to a flash sector while starting the erase of other sector
   have a undefined behavior so lets add a [staticaly initalized]
   semaphore and syncronize access to Flash registers.

  3) Add workaround for flash data cache corruption on
     read-while-write

    This is a know hardware issue on some STM32 see the errata
    of your model and if you make use of both memory banks you
    should enable it.

  4) Greg's cleanup

  5) PX4 clean up

    stm32_flash:Need conditional on non F4 targets
2017-03-24 16:22:47 +01:00
David Sidrane
8810f70fdc Renamed for ordering and classification
Last patch to rename.
2017-03-24 07:27:55 +01:00
David Sidrane
a5fa4e9c02 Restructure patch ordering and dissolve 90000-wip-inflight-to-upstream.patch (#6878)
* Order patch application

   Per discussion with @demarchi this PR adds ordering to the
   patch application.

   This alos add some encoding
   00000      series - is for px4 non up streamable changes
   60000 (bp) series - is for back ports
   90000      series - is for wip that shold make it upstream

* Restore 00010-workarround-for-flash-data-cache-corruption

  Extract this from the 90000-wip-inflight-to-upstream.patch
  and orders it.

* Moved upstreamed 0dbf44e flash fix to bp patch

* Moved upstreamed 5481087 cdcacm fix to bp patch

* Moved upstreamed ec85425 STM32F7 copy paste errors to bp patch

* Moved upstreamed 20e7237 HSI should not be turned off to bp patch

* Moved upstreamed ca895b9 Adding missing CONFIG_ prefix to bp patch

* Moved upstreamed 169b398 STM32: Fixes the bkp reference counter issue to bp patch

* Moved upstreamed 550d259 STM32F7: Fixes the bkp reference counter issue to bp patch

* Moved upstreamed 02825f3 STM32F3X: Add missing STM32_BKP_BASE to bp patch

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Renamed for ordering and classification

* Order Patches by Name
2017-03-23 10:23:16 -10:00
Beat Küng
941d17d74c cmake: make sure params defined in external modules are found 2017-03-23 08:37:48 +01:00
Beat Küng
a4fc7ae95e simplify px_process_params: remove --modules, use a list for --src-path instead 2017-03-23 08:37:48 +01:00
David Sidrane
8cdde42e32 px4io-v2:Fixed GPIO_PPM_IN definition 2017-03-23 08:33:03 +01:00
David Sidrane
0d59e84953 px4io-v1:Fixed GPIO_PPM_IN definition 2017-03-23 08:33:03 +01:00
Lorenz Meier
fd0efac2b5 IO driver: Run attitude control group limited until the device speed gets set 2017-03-23 08:28:15 +01:00
David Sidrane
5abdb8fbe9 Fixed spelling - onshot->oneshot 2017-03-23 08:28:15 +01:00
David Sidrane
e04d43218a Revert "fmu add command line onshot mode"
This reverts commit 22738b1213fff704d288ec84976fa84ff9535aba.

   The command was added due to a lack of my understanding of how the pwm command can be used.

   The command is not needed as the all flag can be used or a proper
   mask WHIHOUT -g

   fmu task mode_pwm
   pwm rate -a -r 50 -d /dev/pwm_output0
   pwm arm
   pwm test -a -p 500

   fmu task mode_pwm
   pwm oneshot -a -d /dev/pwm_output0 is the same as pwm oneshot -m 0xff  -d /dev/pwm_output0
   pwm arm
   pwm test -a -p 500
2017-03-23 08:28:15 +01:00
David Sidrane
2368d94f53 Fixed low on stack waning 2017-03-23 08:28:15 +01:00
David Sidrane
f32f194ad8 fmu add command line onshot mode 2017-03-23 08:28:15 +01:00
David Sidrane
75376b7793 Bugfix:Allow mode switch on a free timer 2017-03-23 08:28:15 +01:00
David Sidrane
11191e54e0 use io_timer_set_PWM_mode not direct reg 2017-03-23 08:28:15 +01:00
David Sidrane
d21c44704d Propgate any errors in setting the rate up.
Since the Onshot<->PWM mode is changed based on rate. The
 this signale the higher layers that the operation is invalid

 test case:
   fmu task mode_pwm2cap2
   pwm oneshot -m 0xf -g 0 -d /dev/pwm_output0

   should fail, because all the channels in the group are
   not in the same mode.
2017-03-23 08:28:15 +01:00
David Sidrane
f5bc3dbc4e drv_io_timer Support OneShot
1) Updated copyright
  2) Defined BOARD overrideable BOARD_PWM_FREQ and BOARD_ONSHOT_FREQ
     Not recogmended but allow experimentation
  3) Solved the support for BOARD_PWM_DRIVE_ACTIVE_LOW using
     the Polarity control bits as apposed to the negation of
     the ARR.
  4) Added a cache for getting a timers channels. This is static
     and benifits from the qucik response.
  5) Added a function to realocate all channes in a given timer
     from one mode to another.
  6) Removed the frequecy table in favor of the intended use of the
     channel mode set. At it is the way to determine the mode of a
     channel. Or in onshot's case a timers's complete set channels.
  7) Added 2 lowlevel mode changing functions:
     io_timer_set_oneshot_mode and io_timer_set_PWM_mode
     that encapsalate the changes in mode to one place
     in the code.
  8) Added io_timer_trigger (the up_pwm_update) with low
     latancy timer to time in updating.
  9) io_timer_set_rate - use sets to enforce all or none
     rules for switching  PWM<->OneShot.
     Onshot is entered using the very approriate rate of 0.
     Only deltas will change the HW state.
2017-03-23 08:28:15 +01:00
David Sidrane
96db91c468 drv_io_timer Add simplified Oneshot API
1) Define IOTimerChanMode_OneShot
   2) Added detailed commnent on .clock_freq and how it is used
   3) Added single additional API point in support of Onshot mode
      io_timer_trigger - That trigger all timer's channels in Oneshot
      mode to fire the oneshots with updated values.
2017-03-23 08:28:15 +01:00
David Sidrane
b01768addc px4iofirmware mixer uses new Oneshot API
As discusssed in https://github.com/PX4/Firmware/pull/6678#discussion_r104177663
   this take the safe approach to only call up_pwm_update on a valid mix
   it does keep intatct the riginal author (OA) had an intent.
2017-03-23 08:28:15 +01:00
David Sidrane
6309642c37 px4iofirmware registers uses new Oneshot API
1) Use up_pwm_retrigger to triger onshot
   2) Updated comment to explain why a rate of zero makes sense
      to set oneshot mode.
   3) Updated copyright
2017-03-23 08:28:15 +01:00
David Sidrane
30c8e6efac drv_pwm_servo provide the simplified interface for OneShot
1) Validate timer paramater before using it.
  2) Allow rate of 0 to enter Oneshot mode
     At first blush this seamed like a hack, but at Mark
     pointed out to me, Onshot PWM does not have a rate
     So this is a realy a clever and beautiful simplification
     on his part!
  3) Exposes up_pwm_update that runs io_timer_trigger
     Which trigger all timer's channels in Oneshot mode to
     fire the oneshots with updated values.
2017-03-23 08:28:15 +01:00
David Sidrane
938824500c Only expose up_pwm_update for onshot
This api will REWORD
2017-03-23 08:28:15 +01:00
David Sidrane
8984b441a0 pwm test uses Onshot API
At at a period greater than the the max Oneshot pulse width
  Trigger all timer's channels in Oneshot mode to fire the
  oneshots with updated values.
2017-03-23 08:28:15 +01:00
David Sidrane
6dc3b1cac6 Revert "add macro PX4FMU_TASK to board_config"
The fmu now support the commandline option to be run as a task
   or off a work queue.
   This reverts the board_config.h changes from commit
   e33af23122f5ee3030bb9745bbbf616b24c2a14a.

Conflicts:
	src/drivers/px4fmu/fmu.cpp
2017-03-23 08:28:15 +01:00
David Sidrane
71c25611b5 fmu warnx->PX4_WARN 2017-03-23 08:28:15 +01:00
David Sidrane
fc099879be fmu can be run as a task or as worker thread
The new optional option is
  fmu [task] ....

  fmu task mode_pwm - start fmu as a task
  fmu  mode_pwm     - start fmu as a worker
2017-03-23 08:28:15 +01:00
David Sidrane
07834e51b7 fmu:Ensure work_stop still called work_cancel 2017-03-23 08:28:15 +01:00
David Sidrane
9227547886 fmu added comments & updated copyright 2017-03-23 08:28:15 +01:00
David Sidrane
0ce854ad55 Support onshot command 2017-03-23 08:28:15 +01:00
David Sidrane
6bc0420137 pwm warnx->PX4_WARN 2017-03-23 08:28:15 +01:00
David Sidrane
cdd961d2b9 pwm remove arch dependancy 2017-03-23 08:28:15 +01:00
David Sidrane
d92cb75b26 pwm use px4_getops 2017-03-23 08:28:15 +01:00
Mark Whitehorn
8b6b4ccee9 add macro PX4FMU_TASK to board_config 2017-03-23 08:28:15 +01:00
Mark Whitehorn
f7f12759cd Revert "add timer validation call"
This reverts commit 30fe2aa4fb8c099028fd5ca4f50940e88eddbb08.
2017-03-23 08:28:15 +01:00
Mark Whitehorn
bbebf980d8 add timer validation call 2017-03-23 08:28:15 +01:00
Mark Whitehorn
b5169b0c7b uncomment FMU servo readback test 2017-03-23 08:28:15 +01:00
Mark Whitehorn
9e3488af46 don't update servos if mixer_mix_threadsafe() failed to run 2017-03-23 08:28:15 +01:00
Mark Whitehorn
dd25366b86 clean up timer_set_rate and add advice on hacking counter frequency 2017-03-23 08:28:15 +01:00
Mark Whitehorn
2d5588ae02 simplify oneshot mode selection; use zero PWM rate as indicator
cleanup and remove unused (new) params
2017-03-23 08:28:15 +01:00
Mark Whitehorn
aa9fbbedd5 add oneshot mode capability
change fmu to task

increase fmu_servo task priority to max and enable true oneshot

use lowest FMU priority which minimizes jitter

constrain oneshot updates to control group 0 events
2017-03-23 08:28:15 +01:00
David Sidrane
eac72051b8 Backport of stm32f7 add DTCM to heap and use it on F7 (#6865)
* Backport:stm32f7: stm32_allocateheap: allow use DTCM memory for heap

   Back port of upstrem contrib by Jussi Kivilinna <jussi.kivilinna@haltian.com>

   stm32f7: stm32_allocateheap: allow use DTCM memory for heap

   STM32F7 has up to 128KiB of DTCM memory that is currently left unused.

   This patch adds DTCM to main heap if CONFIG_STM32F7_DTCMEXCLUDE is not enabled.

* px4fmu-v5_default:Enable inclusion of the DTCM in the heap

  CONFIG_MM_REGIONS=3 adds the DTCM region to the heap.
2017-03-22 13:52:01 -10:00
Dennis Mannhart
be500723cd mc_pos_control: gradual vel fix for slope 2017-03-22 15:21:34 +01:00
Dennis Mannhart
20a47a1a72 mc_pos_control: limit if just xy distance close to target 2017-03-22 15:21:34 +01:00
Dennis Mannhart
f9551c12de mc_pos_control: param fix and gradual vel fix 2017-03-22 15:21:34 +01:00
Matthias Grob
72fb7a5062 mc_pos_control: added gradual landing speed logic
depending on two altitudes that can get set as parameter
the logic linearly slows down from higher land altitude 1 to slower land altitude 2
2017-03-22 15:21:34 +01:00
Matthias Grob
7434bcc693 mc_pos_control: fixed rebase and refactor errors 2017-03-22 15:21:34 +01:00
Dennis Mannhart
cd8cc1beaa mc_pos_control: use blockparam, change variable name, delete unused variables 2017-03-22 15:21:34 +01:00
Dennis Mannhart
4c4f214ec7 mc_pos_control: target_threshold value change
mc_pos_control: reorder if statement

mc_pos_control:  add get function for cruising speed
2017-03-22 15:21:34 +01:00
Dennis Mannhart
0d6f994145 mc_pos_control: slow down in auto when close to target
mc_pos_control: move limit vel xy after velocity controller
2017-03-22 15:21:34 +01:00
Dennis Mannhart
8e5a573cb3 mc_pos_control: add default only if there is no previous setpoint 2017-03-22 15:21:34 +01:00
Dennis Mannhart
fd3889b5a6 mc pos control: auto handling such that it does not use slewrate when goint to pos 2017-03-22 15:21:34 +01:00
Matthias Grob
5e2f18ebaa mc_pos_control: added separate velocity control setpoint slewrate for deceleration
to improve the smooth user experience while accelerating
but not have any delay when braking
2017-03-22 15:21:34 +01:00
Matthias Grob
b32e5e7ec0 mc_pos_control: fixed all pull request complaints
mainly changing parameters to BlockParams, reorder them and comment
2017-03-22 15:21:34 +01:00
Matthias Grob
bfb4de0e66 startup scripts/mc_pos_control: renamed parameters after refactor 2017-03-22 15:21:34 +01:00
Matthias Grob
470c3fdc06 mc_pos_control: refactoring only in manual velocity setpoint generation 2017-03-22 15:21:34 +01:00
Matthias Grob
713ba45876 mcpos_control: remove duplicate deadzone parameters 2017-03-22 15:21:34 +01:00
Matthias Grob
eec757915c mc_pos_control: switch manual vertical/z velocity curve to expo with deadzone 2017-03-22 15:21:34 +01:00
David Sidrane
eb054a0ea1 priority_restoration_fix:Review feedback
Additional backport of c2c226be1db53dd0c1315e13bbd76ace6538eedf
  sem_holder:Clean up from Review
2017-03-22 09:02:15 +01:00
David Sidrane
a6dcbc3a22 HOTFIX:Fixes improper restoration of base_priority
Backport of upstream:

   7601a27cee348f70bebcac95e8e8372fe0651bbf David Sidrane Thu Mar 16 14:16:18 2017 -1000  sem_holder:The logic for the list version is unchanged
   3cc2a4f7c9bb495da6c59f373f8d0e7672e4ee13 David Sidrane Wed Mar 15 14:02:55 2017 -1000  sem_holder: Fixes improper restoration of base_priority
   caf8bac7fb9452f25a3297147e7b414d46e74c6f David Sidrane Mon Mar 13 22:54:13 2017 +0000  missing semi
   d66fd9f965f27eb0446d6aed24b8758674f98b53 David Sidrane Mon Mar 13 12:34:39 2017 -1000  semaphore:sem_boostholderprio prevent overrun of pend_reprios
   3c00651cfef3a0d90bb9e6522463965ad8989e6c David Sidrane Mon Mar 13 11:56:31 2017 -1000  semaphore:sem_holder sem_findholder missing inintalization of pholder
   4d760c5ea44c5f8d30a1a595800e9fbf4874e705 David Sidrane Mon Mar 13 10:46:26 2017 -1000  semaphore:sem_holder add DEBUGASSERTs
   modified 399f3067441941072664bdbfa1bfec8ff35aa449 Gregory Nutt  Sat Mar 11 08:57:34 2017 -0600  A few cosmetic changes (removed file that had nothing to do with semaphore commit by OA)
   60d8606b19a7e7c1285a0ef5e8addaaedf26b95f David Sidrane Fri Mar 10 06:38:17 2017 -1000  Priority Inversion fixes:Initalization
   6cc8f9100b3c8026e73ca738aaa5120bd78dae74 David Sidrane Fri Mar 10 06:37:46 2017 -1000  Priority Inversion fixes:typo
   360539afacc83132acdb83da8f20c468dbe4c63d Gregory Nutt  Fri Mar 10 09:30:15 2017 -0600  Priority inheritance:  When CONFIG_SEM_PREALLOCHOLDERS==0, there is only a single, hard-allocated holder structure.
                                                                                          This is problem because in sem_wait() the holder is released, but needs to remain in the holder container
   a93e46d00c1bc3447fb290b866ed21d8f9c8e146 Gregory Nutt  Fri Mar 10 08:54:50 2017 -0600  Cosmetic (missleading OA commit message) Using !pholder is now  pholder == NULL

   sem_holder: Fixes improper restoration of base_priority
   in the case of CONFIG_SEM_PREALLOCHOLDERS=0

   Original code did not take into accout that 2 holder are needed
   and failed silently when a slot could not be allocated

   The call to sem_restorebaseprio_task context switches in the
   sem_foreachholder(sem, sem_restoreholderprioB, stcb); call
   prior to releasing the holder. So the running task is left
   as a holder as is the started task. Leaving both slots filled
   Thus failing to perforem the boost/or restoration on the
   correct tcb.

   This PR fixes this by releasing the running task slot prior
   to reprioritization that can lead to the context switch.
   To faclitate this, the interface to sem_restorebaseprio
   needed to take the tcb from the holder prior to the
   holder being freed. In the failure case where sched_verifytcb
   fails it added the overhead of looking up the holder.

   There is also the additional thunking on the foreach to
   get from holer to holder->tcb.
2017-03-22 09:02:15 +01:00
flying-production
aed280fbd4 Make sure that external sitl project will be rebuild in case of sourcve has changed 2017-03-22 08:53:34 +01:00
Henry Zhang
1880ed9758 MindPX: Start send_events handler in MindPX (#6875) 2017-03-22 02:03:14 -04:00
Henry Zhang
6791090fe3 add new config for NanoMind (#6874) 2017-03-22 01:46:13 -04:00
Dennis Mannhart
8f1e851911 Stick to velocity fix (#6825)
* mc_pos_control: use just float for vel and cruise in xy

* mc_pos_control: stick map saturate magnitude to 1

* mc_pos_control: take minimum cruising speed for auto

* mc_pos_control: cruise speed triplet higher than from mc_pos_control

mc_pos_control: fix if for cruise in auto

* mc_pos_control: use PX4_ISFINITE criteria
2017-03-21 07:58:47 +01:00
David Sidrane
7d62aa6a6d HOTFIX:Backport Memory corruption due to stack coloring overreach complete (#6848)
Backport of upstream NuttX

       86400a252dcbe6e4aef3ecca000b469a0fe96b67
       08e92abb0ba744927ed0b32294859b0f47726f82
       4b65817e99cbdf04fefad883eca0e7c8a9add63c

       Improper rounding in redundant stack coloring
       routines could overwriting the TOS+1 and BOS-1
       depending on the value of CONFIG_ARCH_INTERRUPTSTACK

       This applies the compelet upstream set of fixes from
       David Cabecinhas <david.cab+bitbucket@gmail.com>

       Improper rouding in redundant stack coloring
       routines was overwriting the TOS+1 and BOS-1

       The legacy OABI 4 byte stack alingment was removed
       Only the EABI 8 byte alinement is supported
       The redundant interrupt stack coloring. up_initalize
       had the correct implemantation (last verson of patch)
       and the redundant version in the
       arch/arm/src/stmxxx/stmxx_irq.c was calculating the size
       wrong.

       This is fixed by rounding up CONFIG_ARCH_INTERRUPTSTACK
       by 4 bytes when allocated and alining on a 8 byte boundry
2017-03-20 07:32:45 -10:00
David Sidrane
f2164b135d Consolidate the flash patches to fix build (#6850)
nuttx-patches/workarround_for_flash_data_cache_corruption.patch was
   patching a file patched in nuttx-patches/wip_inflight_to_upstream.patch

   The changes in workarround_for_flash_data_cache_corruption.patch
   will be submitted upstream once refactored (upstream coding style
   compliant and moved to correct location)
2017-03-20 06:18:23 -10:00
Dennis Mannhart
c9643cb075 mc_pos_control: delete leftover from transitional changes for vel_max_z (#6822) 2017-03-20 10:06:29 +01:00
Dennis Mannhart
31aff0b6c0 mc_pos_control: change yaw setpoint to yaw (#6854) 2017-03-20 10:05:33 +01:00
Beat Küng
546bd2b4d0 drivers: remove the overflow perf counter
This was used together with the read() interface, but we don't use that
so the counters are wrong.
2017-03-20 09:11:34 +01:00
Beat Küng
f60dfbbb40 perf: remove unused event_overruns, reduce type of delta times to 32bits
32 bits are still enough to measure elapsed times up to 1 hour.

Testing on Pixracer: I counted 73 allocations and 39 frees during bootup,
resulting in 2kB RAM usage after boot. This patch reduce this by ~0.5kB.
2017-03-20 09:11:34 +01:00
David L Sprague
0a02a4c503 Fixed Issue #6596
Fixed the block comments at the top of the source file and the help message for the script (starting at line 279) so that an underscore ("_") character is correctly described as the separator for the first message field name rather than a period character "."
2017-03-20 08:35:39 +01:00
Pavel Kirienko
2b2c307eac Performance audit (intentionally duplicates #6829) (#6847)
* UAVCAN ESC output: removing ESC output channels from published message that are always zero. This allows the UAVCAN stack to always transfer only the minimum number of output values, avoiding redundant zeroes and the associated increase in bus load and CPU time

* Added a separate mixer file for CAN quadrotor

* Sampling profiler improvements

* PMSP: Output more endpoints

* Matrix update

* libc usage workaround

* Removed UAVCAN perfcounters

* Matrix submodule update
2017-03-18 04:16:20 -10:00
David Sidrane
c20b85e6ad Revert "UAVCAN performance audit (#6829)" (#6846)
This reverts commit 21e04c9f7afd56adf21d02b76c89ae06fe1fc5a7.
2017-03-18 04:04:43 -10:00
Pavel Kirienko
21e04c9f7a UAVCAN performance audit (#6829)
* UAVCAN ESC output: removing ESC output channels from published message that are always zero. This allows the UAVCAN stack to always transfer only the minimum number of output values, avoiding redundant zeroes and the associated increase in bus load and CPU time

* Added a separate mixer file for CAN quadrotor

* Sampling profiler improvements

* PMSP: Output more endpoints

* Matrix update

* libc usage workaround

* Removed UAVCAN perfcounters
2017-03-18 03:47:09 -10:00
David Sidrane
4fe29e5246 Fiexs frsky telemetry stack warning
WARN  [load_mon] frsky_telemetry low on stack! (164 bytes left)

Added 168 bytes = 160 needed + 8 bytes for head room
2017-03-18 10:54:49 +01:00
Lorenz Meier
7695b65b7f MAVLink app: Default to MISSION, not MISSION_INT
In order to ensure correct transmission the mission system needs to default to the legacy protocol and switch to the new implementation when these conditions are met:
  * If the GCS sends a MISSION_REQUEST_INT - it will do this based on the AUTOPILOT_VERSION flag indicating int mission support
  * If the autopilot sends a MISSION_REQUEST and has the AUTOPILOT_VERSION flag for 2.0 set, the GCS should NACK it, which will make the autopilot retry a MISSION_REQUEST_INT
  * If the autopilot sends a MISSION_REQUEST_INT and the GCS does not support it, the GCS will ignore and time out. The autopilot could retry now opportunistically with the old protocol, but this is not great for lossy links.
  * If the GCS sends a MISSION_ITEM_INT - this is a fallback
2017-03-16 23:16:39 +01:00
Matthias Grob
bb3b26e00f logger: adjusted log_writer_file stack size
because of messages in the logs
2017-03-16 14:05:15 +01:00
Matthias Grob
ca9393eb97 mc_pos_control: fix parameter description of expo for QGC parsing 2017-03-16 11:42:27 +01:00
ChristophTobler
d5137ed794 set EKF2_AID_MASK and EKF2_HGT_MODE because of iris_opt_flow 2017-03-16 09:18:54 +01:00
Beat Küng
948635c989 LandDetector: call param_notify_changes() instead of param_save_default()
param_save_default() could take something like 0.5s, and because the
LandDetector is running on the HP work queue, this would block other
tasks, like RC handling or drivers.
2017-03-14 21:43:44 +01:00
Beat Küng
f6d9d77f60 param_notify_changes: set unsaved to true
This will make sure that commmander will save the params.
2017-03-14 21:43:30 +01:00
Beat Küng
0e650638e4 param: implement RW locking
This allows concurrent read access, which are much more common; reducing
potential lock contention and increasing concurrency.

Taking a lock is expensive, and the reader lock is now even more expensive.
An RCU synchronization scheme would reduce the overhead of the readers to
increasing/decreasing an atomic counter.
Thus this should only be an intermediate step until we move towards RCU.

Tested on SITL & Pixracer.
2017-03-14 21:30:53 +01:00
Beat Küng
b4290b6b52 params: make param_t uint16_t on NuttX
param_t is only used as an offset and we have <1000 params, so an uint16_t
is enough.
This saves roughly 1KB of RAM. We only do that on NuttX because normal
integers have better performance in general.
Previously on amd64, this was even 64bits because it was an uintptr_t.
2017-03-14 21:30:53 +01:00
Beat Küng
45af77a543 mavlink parameters: try to send 5 params at once on USB & UDP connections
This further speeds up param loading.

On Pixracer via USB, it's possible to send up to 11 at once before the TX
buffer gets full, so there is still enough free bandwidth left.
2017-03-14 21:30:04 +01:00
Beat Küng
2873d973de mavlink: increase parameter rate from 120 to 300Hz
This speeds up parameter loading. Slow links like telemetry are unaffected,
since the mavlink loop runs only with ~100Hz.

Tested on various links, like:
- telemetry link
- pixracer WiFi
- pixracer USB
- SITL
2017-03-14 21:30:04 +01:00
Simone Guscetti
cc153638d2 commander calibration_routines: fix the white led
The white led state would continue during calibration, now it return to the previus state
2017-03-14 14:25:49 +01:00
Simone Guscetti
1e4b79034f commander_helper: Add rgbled function
with priority and blink period
2017-03-14 14:25:49 +01:00
Lorenz Meier
2af5d1b929 Mission transfer: Fix retry logic
Previously the retry would not actually have been sent if nothing had been received in time.
2017-03-13 21:51:21 +01:00
Lorenz Meier
10dcb90d52 Commander: Store last manual stick setpoints only when actually in manual control mode 2017-03-13 21:08:17 +01:00
David Sidrane
bef24b906e Removed v4pro cloned v4 inappropriate definitions (#6808)
* Remove remove safty swtich LED from FMU control

* Differentiate GPIO_BTN_SAFETY_FMU  from GPIO_BTN_SAFETY
2017-03-13 07:26:36 -10:00
Lorenz Meier
1a3317ebab Commander: Do not abort low battery handling due to stick motion. 2017-03-13 08:42:51 +01:00
Lorenz Meier
e9e79cdc9b Updated optical flow repo 2017-03-13 08:37:50 +01:00
Lorenz Meier
706464d2eb Land detector: Fix param meta data 2017-03-12 14:42:19 +01:00
Lorenz Meier
e4c012289f Logger: Sync setpoints and states to same rates 2017-03-12 11:10:19 +01:00
Lorenz Meier
f7e4d8453d Logger: Drop position_setpoint_triplet to 5 Hz since its not required at such a high rate in analysis 2017-03-12 11:06:40 +01:00
Beat Küng
32cf540159 rgbled: make sure to load the params on startup 2017-03-12 00:08:35 +01:00
Beat Küng
2cf849a520 led_control: fix errors by clang-tidy 2017-03-12 00:08:35 +01:00
Beat Küng
f22fc1c543 led: add breathe mode 2017-03-12 00:08:35 +01:00
Beat Küng
30841ee6bf send_event: separate initialization and wait until started for 'send_event start_listening' 2017-03-12 00:08:35 +01:00
Beat Küng
1177ec91e5 temperatoru_calibration: reformat comments to use doxygen style 2017-03-12 00:08:35 +01:00
Beat Küng
7cb291aa62 temperature_calibration: use a define for error code -110 2017-03-12 00:08:35 +01:00
Beat Küng
ce8707532e led/led: change update logic to keep blinking led's in sync 2017-03-12 00:08:35 +01:00
Beat Küng
9e09f70f37 lib/led: make sure to do an orb_copy on startup 2017-03-12 00:08:35 +01:00
Beat Küng
b7f5d92b21 lib/led: add some clarifying comments 2017-03-12 00:08:35 +01:00
Beat Küng
df791cef94 RPi: make sure navio_rgbled works and add it to autostart 2017-03-12 00:08:35 +01:00
Beat Küng
38156d862f temperature_calibration: add led indication
- starts with yellow blinking
- turns led to solid according to progress
- blink red on error, green on success
2017-03-12 00:08:35 +01:00
Beat Küng
1e4fcb6616 cmake configs: add systemcmds/led_control and lib/led where needed 2017-03-12 00:08:35 +01:00
Beat Küng
b1be963083 px4fmu_test rcS: switch to led_control command 2017-03-12 00:08:35 +01:00
Beat Küng
46fef30526 systemcmds: add new command led_control
This can be used to test & control the new uorb-based led backend.
2017-03-12 00:08:35 +01:00
Beat Küng
83afc207d4 drv_rgbled.h: remove this, it's not used anymore 2017-03-12 00:08:35 +01:00
Beat Küng
95e8e26ae0 commander: use led_control uorb topic 2017-03-12 00:08:35 +01:00
Beat Küng
8dae94d90a lib/led: add BREATHE mode (but not implemented yet) 2017-03-12 00:08:35 +01:00
Beat Küng
729486f992 rgbled: switch to new led uorb interface 2017-03-12 00:08:35 +01:00
Beat Küng
7fd6748f34 rgbled_pwm: switch to new led uorb interface 2017-03-12 00:08:35 +01:00
Beat Küng
6debbcb20d navio: switch to new led uorb interface 2017-03-12 00:08:35 +01:00
Beat Küng
43b98d9a2f lib/led: add led class with led_control uorb topic
This is the new interface to control external LED's (user-facing).
Features:
- Supports maximum N Leds (where the board can define N)
- on/off/blink M times
- Different priorities
- Allows setting a single led or multiple at once
2017-03-12 00:08:35 +01:00
Beat Küng
5ebbbfc6bf rgbled_pwm: warnx -> PX4_WARN, NULL -> nullptr 2017-03-12 00:08:35 +01:00
Beat Küng
b0439836f6 refactor drv_led.h: rename to drv_board_led.h
This makes it clear that it's used to control the board LED's, not external
LED's.
2017-03-12 00:08:35 +01:00
Beat Küng
61c1f6a8ef rgbled: warnx -> PX4_WARN and NULL -> nullptr 2017-03-12 00:08:35 +01:00
Beat Küng
4b1bbaa114 posix: remove rgbledsim driver which does nothing
In addition this is almost a copy of the rgbled driver
2017-03-12 00:08:35 +01:00
Julian Oes
404719953c commander: fix abs bug / trigger POSCTL both ways
The check if stick were touched was only working in one direction (per
axis) because fabsf was used incorrectly.

However, this check is still only a differential check triggered by
fast movement and does not trigger if someone slowly moves a stick to
the side. Also, the sensitivity depends on the rate of the commander
loop and/or the RC update loop. The correct solution would be a proper
filtering and trigger for movement.
2017-03-11 22:41:23 +01:00
Lorenz Meier
fb64403607 Updated jMAVSim 2017-03-11 22:03:17 +01:00
Lorenz Meier
86a8e95017 Update jMAVSim to fix compatibility with recent java versions 2017-03-11 21:37:06 +01:00
David Sidrane
5a66539b36 HOTFIX:Backport Memory corruption due to stack coloring overreach
Backport of upstream NuttX PR 264

   As discovered by dcabecinhas. This fix assume the 8 byte
   alignment options for size stack size or this will overwrite
   the first word after TOS
   See https://github.com/PX4/Firmware/issues/6613#issuecomment-285869778
2017-03-11 20:26:51 +01:00
Daniel Agar
742d0e53f9 examples NULL to nullptr 2017-03-11 11:40:14 +01:00
Daniel Agar
0611677ee2 segway move to examples 2017-03-11 11:40:14 +01:00
Daniel Agar
89ff9f1fe3 cmake fmu-v3 fix and enable more examples
- sync posix_sitl_default and px4fmu-v4pro/v5 with fmu-v3
 - fixes #6667
2017-03-11 11:40:14 +01:00
Beat Küng
4811ab6b13 logger: reduce rate of some topics
In SITL, logging rate reduces from 70kB/s to 45kB/s.
2017-03-11 10:30:38 +01:00
José Roberto de Souza
f61b830ae9 nuttx-configs: aerofc: Enable CONFIG_STM32_FLASH_WORKAROUND_DATA_CACHE_CORRUPTION_ON_RWW
Now AeroFC is making use of both flash memory banks so it need this
workaround.
2017-03-11 10:30:04 +01:00
José Roberto de Souza
03e3877535 nuttx-patches: Add workaround for flash data cache corruption on read-while-write 2017-03-11 10:30:04 +01:00
David Sidrane
c967cade47 HOTFIX:Backport of second round upstream NuttX i2c fix (#6771)
backport 3cd66af889b42b036d6c9d88e067fc3b8abbdb2a and pr 258

   Applies to STM32F4 and STM32F7

   STM32, STM32 F7, and STM32 L4: Clone Freddie Chopin's I2C change to similar STM32 I2C drivers.

   Save elapsed time before handling I2C in stm32_i2c_sem_waitstop()
   This patch follows the same logic as in previous fix to
   stm32_i2c_sem_waitdone().
   It is possible that a context switch occurs after I2C registers are read
   but before elapsed time is saved in stm32_i2c_sem_waitstop(). It is then
   possible that the registers were read only once with "elapsed time"
   equal 0. When scheduler resumes this thread it is quite possible that
   now "elapsed time" will be well above timeout threshold. In that case
   the function returns and reports a timeout, even though the registers
   were not read "recently".
   Fix this by inverting the order of operations in the loop - save elapsed
   time before reading registers. This way a context switch anywhere in the
   loop will not cause an erroneous "timeout" error.
2017-03-10 07:26:51 -10:00
David Sidrane
60c8c84e18 HOTFIX:Backport of upstream NuttX i2c fix
5a6d95dd9f051be548a8d2378aaef75f0a1ba5e1 and ee5ae3a57dbbe835584f164c956e0374da1ed2eb

   Applies to STM32F4 and STM32F7

   Save elapsed time before handling I2C in stm32_i2c_sem_waitdone()
   It is possible that a context switch occurs after stm32_i2c_isr() call
   but before elapsed time is saved in stm32_i2c_sem_waitdone(). It is then
   possible that the handling code was executed only once with "elapsed
   time" equal 0. When scheduler resumes this thread it is quite possible
   that now "elapsed time" will be well above timeout threshold. In that
   case the function returns and reports a timeout, even though the
   handling code was not executed "recently".
   Fix this by inverting the order of operations in the loop - save elapsed
  time before handling I2C. This way a context switch anywhere in the loop
  will not cause an erroneous "timeout" error.
2017-03-10 12:15:10 +01:00
José Roberto de Souza
07921c9f3a aerofc: Use ram_flash dataman backend 2017-03-10 11:31:07 +01:00
José Roberto de Souza
e2aae04c95 modules: dataman: Add a ram_flash backend
This backend will keep all updated data in RAM and
persist the data between reboots using flash memory.

Using only flash memory would result in a slow backend that
would decrease the lifetime of the flash memory, using both
we can reduce the several cycles of erase & write into flash
and keep the performance of the backend almost as fast
as the RAM only backend.

Note: Do not use this backend on a sector from the same flash memory
bank as the memory bank that STM32 read instructions or it can block
the CPU from fetching instructions from flash during the erase and
write operations and cause your drone crash.
2017-03-10 11:31:07 +01:00
José Roberto de Souza
75e7cfcbe8 modules: flashparams: Change size to uint32_t
So flash sector of 64Kbyes and 128Kbytes can also be used.
2017-03-10 11:31:07 +01:00
José Roberto de Souza
a2670bdbc8 modules: dataman: Move backend specific out of main routines 2017-03-10 11:31:07 +01:00
José Roberto de Souza
66d9d56525 modules: dataman: Share memory between backends
Also having just a boolean to track if backend is running.
2017-03-10 11:31:07 +01:00
Beat Küng
8d5ba63686 tap-v1 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
374dc1be4c px4nucleoF767ZI-v1 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
d25218eba2 px4fmu-v5 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
3848432302 px4fmu-v4pro NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
1f520f15a3 px4fmu-v4 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
b73cd50863 px4fmu-v3 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
b89451f160 px4fmu-v2 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
0ffcf70a84 px4fmu-v1 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
58aff84911 stm32f4discovery NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
6170544738 mindpx-v2 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
3ac953db0e esc35-v1 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
9862f1c5f9 crazyflie NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
34a2326c12 auav-x21 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
ab541b1321 px4esc-v1 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
3cdec49a09 aerofc-v1 NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
d10848c129 aerocore NuttX defconfig: lower CONFIG_DEV_PIPE_SIZE to 70
This saves almost 2kb of RAM when using the mavlink shell. 70 matches the
size of the mavlink message. Since the pipe is blocking, a process writing
a lot of data will just wait, data will not be dropped.

The mavlink shell is the only process creating a pipe.
2017-03-10 11:29:09 +01:00
Beat Küng
cfcc75d444 mavlink shell: check if there's enough free buffer to send the mavlink message
if there is not, the process on the other end of the pipe will just block.
This improves reliability over slow links.
2017-03-10 11:29:09 +01:00
Beat Küng
644d237ce6 posix-configs scripts: remove unneeded 'sleep 1'
There is no need to wait, and it would be the wrong way of doing
startup synchronization.
2017-03-10 11:28:41 +01:00
Beat Küng
b1e27f4395 simulator: handle ctrl-c during startup correctly
This makes sure the px4 process does not hang when Ctrl-C is pressed
during startup.
2017-03-10 11:28:41 +01:00
Beat Küng
9597e708df sensors: remove sensors_init
The initialization code is redundant and incomplete (only the first sensor
is done). I verified that all drivers already set this on startup.
For the mags, they all set their maximum supported update rate.
For the baro, the call can silently fail, as for example the MS5611 which
does not support 150Hz update. But it also sets the maximum in
initialization.

Tested on Pixhawk & pixracer.
2017-03-10 11:28:41 +01:00
Beat Küng
019386a5a0 bmi160: remove debug output 2017-03-10 11:28:41 +01:00
Beat Küng
828bb983e8 rpi startup scripts: start dataman so that missions can be flown 2017-03-10 09:00:24 +01:00
Beat Küng
2a6eac578d rpi: add HIL config 2017-03-10 09:00:24 +01:00
Beat Küng
32995a5bc1 state_machine_helper: remove unneeded code to disable sensor publication
In HIL mode we do not start the sensors anymore, so this is not needed.

Also it did not work (I did not try to find the reason, just noticed the
sensors kept publishing in HIL mode)
2017-03-10 09:00:24 +01:00
Beat Küng
af1984ac07 sensors: do not warn about baro in HIL mode 2017-03-10 09:00:24 +01:00
Beat Küng
bc91005e7a voted_sensors_update: increase accel & gyro timeout in HIL mode 2017-03-10 09:00:24 +01:00
Beat Küng
3a737097ee rpi px4.config: switch to ekf2 2017-03-10 09:00:24 +01:00
Beat Küng
541e53fdcf jmavsim_run.sh: add -i to specify the IP 2017-03-10 09:00:24 +01:00
jwilson
62200e2a81 WIP: Temporary fix for a problem which prevents arming on the Snapdragon Flight board. 2017-03-10 08:54:08 +01:00
Julian Oes
0c926106f1 param_shmem.c: comment out locking on Snappy
The param locking doesn't seem to be working on Snapdragon, so let's
just comment it out again.
2017-03-08 15:44:31 +01:00
Julian Oes
9235c0fd67 Update jMAVSim submodule
This fixes the compass, see:
https://github.com/PX4/jMAVSim/pull/55
2017-03-08 19:37:57 +08:00
jwilson
4f9245cc9c Resolves a conflict in the type of the index parameter in the dm_read and dm_write function signature, caused by a recent change in the dataman code. This problem was causing the loading of the flight stack to fail on the aDSP. 2017-03-08 15:04:20 +08:00
Julian Oes
24819ce7b1 commander: no datalink failsafe on ground
On SITL startup we got a datalink lost failsafe message whenever home
was initialized. The reason that in standalone SITL, there is usually no
datalink connected. However, on ground, we shouldn't really failsafe,
therefore it makes sense not to enter the state in the first place.
2017-03-08 05:33:32 +08:00
Beat Küng
c715228b8f LandDetector: save & initialize total flight time 2017-03-08 04:19:22 +08:00
Beat Küng
bac10bcfb8 rcS: do not wipe flight time param on autoconf 2017-03-08 04:19:22 +08:00
Michael Schaeuble
06c5cb506a Enable ICM 20608 on Pixhawk Pro 2017-03-08 04:18:48 +08:00
Beat Küng
561a5c5422 Tools/px_mkfw.py: use the same args to get the git version as px_update_git_header.py 2017-03-07 23:55:37 +08:00
Mathieu Bresciani
d67b6efda3 PixHawk Pro: Update mag IDs to have external higher priority 2017-03-07 23:43:28 +08:00
Lorenz Meier
daf668e687 Fixed wing land detector: Fix RTL logic with a temporary altitude limit workaround 2017-03-07 15:48:23 +08:00
zthorson
b8e72789cd px4fmu-v4: Formatting fixes
Signed-off-by: zthorson <zachthorson@gmail.com>
2017-03-05 11:42:27 +08:00
zthorson
a716b105f5 px4fmu-v4: Only close down fmu drivers on reset if they weren't running
Signed-off-by: zthorson <zachthorson@gmail.com>
2017-03-05 11:42:27 +08:00
zthorson
63857c6afc px4fmu-v4: Fix for HIL Unable to Set Control Surfaces. Fixes #5651
The sensor_rest command added to the startup script for px4fmu_v4 hardware
was leaving the /dev/pwm_output0 driver open.  This would prevent the
pwm_out_sim module from registering as a simulated driver.  The result
would cause the system to properly boot in HIL mode, but you would not
be able to set any control surfaces.

Since sensor_rest and peripheral_reset are only used on initialization, the
drivers can be shut down after they have performed their reset functions.

Signed-off-by: zthorson <zachthorson@gmail.com>
2017-03-05 11:42:27 +08:00
Daniel Agar
e63ee9d8bd fw_att wheel controller enable param (default off) 2017-03-05 11:41:14 +08:00
Beat Küng
ca05e64a9f replay: update & add some comments 2017-03-04 22:47:54 +08:00
Beat Küng
eaa9e6a019 ekf2: set att.timestamp to now in replay mode before ekf is initialized
logger will always log this topic, and a 0 timestamp will look worse in
FlightPlot. This will show a period of 0 attitude instead before ekf
is initialized.
2017-03-04 22:47:54 +08:00
Beat Küng
01541bb10d logger: switch from ekf2_replay to ekf2_timestamps topic, enable by default 2017-03-04 22:47:54 +08:00
Beat Küng
1d48d7e053 ekf2 replay: add statistics output when replay finished
The error counter is an indicator that the logger missed samples or dropped
due to a too small write buffer.
2017-03-04 22:47:54 +08:00
Beat Küng
2a11a2bc0b ekf2 replay: switch from ekf2_replay to ekf2_timestamps topic 2017-03-04 22:47:54 +08:00
Beat Küng
aabdc4125b ekf2: publish ekf2_timestamps topic 2017-03-04 22:47:54 +08:00
Beat Küng
df3ef3660b ekf2_timestamps.msg: add new message with ekf2 timestamps 2017-03-04 22:47:54 +08:00
Beat Küng
473192aa81 replay: some API refactoring & extensions
in preparation to the updated ekf2 replay
2017-03-04 22:47:54 +08:00
Beat Küng
ba89839f65 replay: make sure ReplayEkf2::handleTopicUpdate is protected, not private 2017-03-04 22:47:54 +08:00
Beat Küng
1d93b1bce3 nuttx configs: increase CONFIG_NFILE_DESCRIPTORS from 51 to 53
this is needed due to the additional topics logged with the logger
2017-03-04 22:47:54 +08:00
Beat Küng
037280c17d sitl: add iris_replay startup script, handle $replay_mode in sitl_run.sh
usage:
export replay_mode=ekf2
export replay=<abs_path_to_log.ulg>
make posix none
2017-03-04 22:47:54 +08:00
Beat Küng
63203625bc replay: add ekf2 replay method (can be selected with 'export replay_mode=ekf2') 2017-03-04 22:47:54 +08:00
Beat Küng
e251c64c5f refactor replay: add some overrideable methods 2017-03-04 22:47:54 +08:00
Beat Küng
df8c1a1489 logger: log ekf2_replay topic if EKF2_REC_RPL is set 2017-03-04 22:47:54 +08:00
Beat Küng
9d54f62d37 replay: check if topic timestamp is smaller than logging start
This could happen and then the sleep duration would wrap and be huge.
2017-03-04 22:47:54 +08:00
Beat Küng
1d5f51e6a4 replay: don't add subscription if formats don't match 2017-03-04 22:47:54 +08:00
Beat Küng
4eea89bb42 refactor replay: move topic publication into separate method 2017-03-04 22:47:54 +08:00
Beat Küng
45ffb190e3 logger: add -p <topic> option to poll on a topic instead of running at fixed rate
this will be needed for fast replay. In addition, this option disables
the orb interval.
It can be removed again once we have time simulation.
2017-03-04 22:47:54 +08:00
Beat Küng
2220c3a60d ekf2: use sensors timestamp for published topics when in replay mode
when doing fast replay, hrt_absolute_time() will not match the replayed time
thus we just use the same timestamp as the input sensors.
2017-03-04 22:47:54 +08:00
Beat Küng
018846fadf ekf2_replay.msg: use timestamp instead of time_ref, remove unused time_usec_vel 2017-03-04 22:47:54 +08:00
Beat Küng
dcdfcbe64f posix_sitl_default cmake: add ekf2_replay
so that CI will build it
2017-03-04 22:47:54 +08:00
Beat Küng
aa56822f9d ekf2_replay: fix double/float conversion compile warning 2017-03-04 22:47:54 +08:00
Beat Küng
99beb03f83 ekf2_replay: switch to new vision topics 2017-03-04 22:47:54 +08:00
Beat Küng
eb8bce4825 sdlog2: fix PARAM name truncation
if a parameter name was 16 characters long (which is valid), the last
character got truncated due to 0-terminated string.
This raises the param name to 64 chars, which is quite wasteful, but there
is no other length in between.
2017-03-04 18:27:25 +08:00
Beat Küng
54c8e3b26b commander: fix excessive orb_advertise calls for vehicle_status_flags
vehicle_status_flags_pub passed to publish_status_flags() was always null,
thus orb_advertise() was called each time.

Note that it did not produce a memory leak.
2017-03-04 17:44:47 +08:00
Beat Küng
b2d47adf56 jmavsim_run.sh: add -r option to set the update rate
currently jmavsim uses a default rate of 500 Hz which is too much.
2017-03-04 05:59:10 +08:00
Beat Küng
2bbe04c3d6 mavlink_receiver: don't publish sensor_combined for MAVLINK_MSG_ID_HIL_SENSOR
In hil mode, sensors is responsible for publishing this topic.
2017-03-04 05:59:10 +08:00
Beat Küng
8957b473a8 px4fmu rcS: start sensors in hil mode if HIL is set, don't load rc.sensors
This makes sure no sensor publishes sensor topics, instead they will be
published from mavlink.
2017-03-04 05:59:10 +08:00
Beat Küng
881f2d2d36 sensors: add 'sensors start -hil' parameter
This does the following if given:
- don't initialize the sensors (the sensor drivers are not started)
- publish sensor_combined even in hil mode
- do not apply or publish thermal corrections
2017-03-04 05:59:10 +08:00
Beat Küng
3f6783fce7 mc_att_control: make sure to update the polling fd when the selected gyro changes 2017-03-04 05:59:10 +08:00
Beat Küng
ec33607912 mc_att_control_main: make sure to initialize at least one gyro sensor
in HIL mode, gyros are published after mc_att_control started.
2017-03-04 05:59:10 +08:00
Beat Küng
570aca98a3 pwm_out_sim: make sure g_pwm_sim is initialized with nullptr 2017-03-04 05:59:10 +08:00
ustbguan
68701b197a use mBar 2017-03-03 13:43:27 +00:00
Dennis Mannhart
f5ae90a7cb mavlink_main: add POSITION_TARGET_LOCAL_NED to mavlink stream 2017-03-03 07:23:02 +01:00
Sander Smeets
9ef87f1311 VTOL QuadChute Maximum roll and pitch angles (#6665) 2017-03-02 10:34:04 -05:00
Dennis Mannhart
e892a51afb mc_pos_control: delta_t needs to be positive 2017-03-01 11:46:23 +01:00
Matthias Grob
2b90224075 land_detector: added parameter for manual position stick takeoff threshold 2017-02-28 13:05:33 +01:00
Dennis Mannhart
9c2dd48814 landdetector: m/s to m 2017-02-27 22:54:19 +01:00
Dennis Mannhart
7f54f891c1 land_detector: set max height to 100 2017-02-27 22:54:19 +01:00
Dennis Mannhart
6939583650 mc_pos_control: _run_altitude if close to max altitude 2017-02-27 22:54:19 +01:00
Dennis Mannhart
3d4e7819a0 landdetector: delete function update_alt_max 2017-02-27 22:54:19 +01:00
Dennis Mannhart
1774e01c00 rtl: keep rtl altitude below max altitude
land_detector: delete unused class enum
2017-02-27 22:54:19 +01:00
Dennis Mannhart
b887654d69 mc_pos_control: fix limit_altitude function 2017-02-27 22:54:19 +01:00
Dennis Mannhart
ca84cc7439 mc_pos_control: delete max altitude, which is not set by landdetector 2017-02-27 22:54:19 +01:00
Dennis Mannhart
a1982e0392 land_detector: battery level status to adjust maximum altitude possible 2017-02-27 22:54:19 +01:00
Dennis Mannhart
c8690fd072 mc_pos_control: limit altitude
mc_pos_control: delete spaces

mc_pos_control: cleanup and threshold for velocity control to altitude control when close to max altitude
2017-02-27 22:54:19 +01:00
Michael Schaeuble
497a210742 lis3mdl: Fix check_calibration() output
The previous implementation returned OK when the sensor was not calibrated and vice
versa. This fixes a preflight fail due to selftest failed.
2017-02-27 22:52:28 +01:00
Daniel Agar
cff430e137 px4fmu-v2 enable ll40ls and frsky_telemetry
- closes #6686
 - closes #6294
2017-02-27 22:52:06 +01:00
Lorenz Meier
5c524e15f8 Battery params: Enforce system reboot 2017-02-27 16:37:08 +01:00
Michael Schaeuble
3961c46d68 UAVCAN: Incorporate manual loackdown
This flag is triggered when the manual kill switch is activated. The motors
did not stop when the kill switch was engaged before adding this check.
2017-02-27 12:48:30 +01:00
Julian Oes
12c7421be9 px_uploader.py: remove unused exception vars 2017-02-27 11:23:09 +01:00
Julian Oes
974a9a0673 px_uploader.py: enable file to be used as module
In order to use px_uploader as a module from another Python script, all
the action needs to be moved into a main() function which is only called
if the file is run directly.
2017-02-27 11:23:09 +01:00
Julian Oes
090d7ebd6b px_uploader: fix SerialException error
Sometimes right after reboot, we got a `raise SerialException(
msg.errno, "could not open port {}: {}".format(self._port, msg))`.
If this happens now, we will just try again later.
2017-02-27 11:23:09 +01:00
Julian Oes
b0a8073e15 px_uploader.py: small whitespace fix
Found by PEP8 checker.
2017-02-27 11:23:09 +01:00
Julian Oes
ff87d43be0 px_uploader.py: vim modeline for indent settings 2017-02-27 11:23:09 +01:00
Julian Oes
172f35042f px_uploader.py: use consistent indenting
This file had the indentending mixed up between 4 and 8 spaces.
This changes it to the Pythonic way of 4 spaces.
2017-02-27 11:23:09 +01:00
Lorenz Meier
16530e15db Commander: Differentiate between emergency battery level and critical battery level 2017-02-27 09:03:20 +01:00
Lorenz Meier
029c6de4a9 Battery estimator: Warn on dangerously low levels.
We need to differentiate between a level where the user should act and where we are about to fall out of the sky (emergency). This helps performing more suitable failsafe actions.
2017-02-27 09:03:20 +01:00
Lorenz Meier
7372014aee Battery: Implement an emergency warn level 2017-02-27 09:03:20 +01:00
Beat Küng
85708063d6 fix tap_esc: use correct ORB_ID for esc_status advertisement 2017-02-27 08:52:43 +01:00
Lorenz Meier
7710b64d27 Navigator: Re-initialize RTL every time it gets re-enabled 2017-02-26 13:26:52 +01:00
José Roberto de Souza
6ce5807240 mavlink: Send message to control onboard camera as broadcast
The target was it self.
2017-02-25 19:03:45 +01:00
Daniel Agar
c1bd0d5733 sync attitude setpoint messages 2017-02-25 17:57:05 +01:00
Daniel Agar
fe4ea6dd63 VTOL mc_pos reset internal state during FW mode 2017-02-25 17:57:05 +01:00
Daniel Agar
1b2973f602 VTOL fw_att don't reset integrators during transition 2017-02-25 17:57:05 +01:00
Lorenz Meier
e18fe0a8a8 Port PWM command to POSIX 2017-02-25 11:07:25 +01:00
Matthias Grob
8fd27fddcd mc_pos_control: moved responsibility of the x,y stick deadzone to a mathematical function
to prevent a setpoint step when moving the stick over the border of the deadzone
and to enable very small inputs even from a control stick that needs a big deadzone
2017-02-25 11:05:53 +01:00
Lorenz Meier
ad3d0391ab Navigator: Only update params as they change 2017-02-25 11:04:52 +01:00
Daniel Agar
ecb2511a7b add matrix copyTo 2017-02-25 11:04:02 +01:00
Beat Küng
f43f3baa02 ATT_VIBE_THRESH param: move the definition of this param to sensors
since it's only used in sensors module (otherwise it could get pruned)
2017-02-25 11:02:15 +01:00
Beat Küng
3cc1c9d0a9 param command: warnx -> PX4_{WARN,ERR} 2017-02-25 11:02:15 +01:00
Beat Küng
cfa84954ea param_get: add null-pointer check
If param_find() returned PARAM_INVALID, and this was directly passed to
param_get(), param_get_value_ptr() returned null and we read garbage data
(or segfaulted on systems with virtual memory).
On px4fmu-v2, this happened for the param ATT_VIBE_THRESH in sensors.
Because of the recently added parameter scoping, this param got pruned, as
it's defined in attitude_estimator_q.

credits for finding this go to Jeyong Shin (jeyong).
2017-02-25 11:02:15 +01:00
Lorenz Meier
3e88b2f2b1 Rate-limit navigator update rate 2017-02-24 08:52:10 +01:00
Kabir Mohammed
80e1064523 mavlink : fix legacy vision interface attitude timestamps 2017-02-24 08:51:05 +01:00
Beat Küng
058bc97c83 commander preflight calibration: accept param6 == 2 for airspeed calibration as well
This is according to the updated mavlink spec to deconflict the definition
with APM.
2017-02-24 08:24:53 +01:00
Matthias Grob
3a358422c4 mc_pos_control: change sign for close to ground + style fix 2017-02-23 23:26:17 +01:00
Dennis Mannhart
de9d05c292 mc_pos_control: uorb home_postition subscription 2017-02-23 23:26:17 +01:00
Kabir Mohammed
3bc8617224 Update maintainers list 2017-02-23 22:37:18 +01:00
José Roberto de Souza
8d50249e8f ROMFS: common: Start aerofc_adc in AeroFC
Probably this was a merge error.
2017-02-23 22:37:01 +01:00
Matthias Grob
e6031a97fa land_detector: added a parameter for the manual land detection stick throshold
because it is definitely something that needs to be allowed to tune or disable for different application scenarios
2017-02-23 13:18:49 +01:00
José Roberto de Souza
ef228b82aa boards: AeroFC: Make it a memory constrained system
The maximum number of missions was increased in almost 8 times in
recent commit: 9369262e63 navigator: allow more mission items.

As this board loads missions in RAM, now it don't have enough memory
to allocate causing dataman start to fail, so mark it as a memory
constrained system and reduce the number of maximum missions
supported.
2017-02-23 08:26:42 +01:00
José Roberto de Souza
b1c11b14a8 ROMFS: common: AeroFC: Do not start MAVLink over USB
STM32 pins are not exposed in AeroFC, so lets save some memory here.
2017-02-23 08:26:42 +01:00
José Roberto de Souza
b372d15443 drivers: tap_esc: Fix low on stack warning
WARN  [load_mon] tap_esc_main low on stack! (284 bytes left)
2017-02-23 08:26:42 +01:00
Roman
4bffb1478f ekf2: added parameter for range sensor pitch offset
Signed-off-by: Roman <bapstroman@gmail.com>
2017-02-22 22:21:41 +01:00
Roman
3fdbe13857 updated ecl 2017-02-22 22:21:41 +01:00
Matthias Grob
3183cbda90 land_detector: manual land detection stick throshold less strict
Even for well calibrated RC sticks 5% stick movement is a too small margin for the end user that might not land because of this.
15% is still clearly restricting the stick far down.
2017-02-22 21:56:41 +01:00
Dennis Mannhart
cbc54c9917 mc_pos_control: only swithc to velocity control from hold_engaged when user moves stick 2017-02-22 20:48:40 +01:00
Lorenz Meier
d7683e97a3 MC pos control: More landing handling 2017-02-22 09:33:12 +01:00
Lorenz Meier
c55fa9dd3f MC pos control: add option to use takeoff yaw 2017-02-22 09:21:20 +01:00
Lorenz Meier
d11e4915f6 Vehicle control state: Add support for global yaw 2017-02-22 09:21:20 +01:00
Lorenz Meier
4ddc7e22fb MC pos ctrl: Force slow landing speed below min loiter altitude 2017-02-21 22:01:20 +01:00
Lorenz Meier
1d370f3470 MC pos control: Improve landing handling 2017-02-21 21:57:18 +01:00
Dennis Mannhart
20604989bb mc_pos_control: have same acceleration max for xy and z 2017-02-21 21:50:00 +01:00
Dennis Mannhart
2788cf8ffc mc_pos_control: manual stick input fix; deletion of unusued function 2017-02-21 16:47:46 +01:00
Lorenz Meier
7fc8ee85fa Commander: Do not break out of RTL on stick input change 2017-02-21 13:56:31 +01:00
Paul Riseborough
bf06066010 Tools: Add scripts for ecl EKF log file analysis 2017-02-20 07:53:07 +01:00
Paul Riseborough
ed5c8913ad events: update documentation for polyfit algorithm 2017-02-20 07:53:07 +01:00
Andreas Antener
11484b0d51 Rattitude: set default threshold for multicopter rattitude mode to 0.8 which enables it right away when selecting it 2017-02-18 08:03:19 +01:00
Andreas Antener
44d05bac55 Rattitude: enable for FW in old style switch mapping 2017-02-18 08:03:19 +01:00
Daniel Agar
e81e6a8296 fw_att_control add rattitude mode 2017-02-18 08:03:19 +01:00
Daniel Agar
9120082b0c fw_att_control stabilized mode publish att_sp quat 2017-02-18 08:03:19 +01:00
Daniel Agar
12e5aca028 fw_att_control remove unused accel sub 2017-02-18 08:03:19 +01:00
Andreas Antener
bd0cd35ff8 Convergence: fix motor output meta data 2017-02-18 08:03:19 +01:00
Daniel Agar
f6eecf4d5c commander tests group TRANSITION_CHANGED tests 2017-02-18 08:03:19 +01:00
Daniel Agar
c14c9c20eb commander tests allow FW ACRO 2017-02-18 08:03:19 +01:00
Andreas Antener
998427f821 ECL: updated to proper commit 2017-02-18 08:03:19 +01:00
Andreas Antener
8683739fec Convergence: updated tuning 2017-02-18 08:03:19 +01:00
Andreas Antener
459b8b7c7e FW att: removed unused fields again 2017-02-18 08:03:19 +01:00
Andreas Antener
e04fe593e0 Tiltrotor: option to enable differential thrust in forwards flight 2017-02-18 08:03:19 +01:00
Andreas Antener
b19cd19411 FW Acro: udpate ECL and implemented fixed-wing Acro 2017-02-18 08:03:19 +01:00
Andreas Antener
2f3b1edbd4 Convergence: increase yaw output in mixer 2017-02-18 08:03:19 +01:00
Andreas Antener
986fa1d52f Sublime: exclude build folders 2017-02-18 08:03:19 +01:00
Andreas Antener
a5f3f65c2b Switch assignment: added manual and stabilized switch for a default stabilized switch scheme, let FW go into Acro 2017-02-18 08:03:19 +01:00
Beat Küng
21f5219bbc vehicle_command.msg: add PREFLIGHT_CALIBRATION_TEMPERATURE_CALIBRATION 2017-02-17 23:01:25 +01:00
Beat Küng
e4ca10363b mavlink MAV_CMD_IMAGE_START_CAPTURE message: send request for highest resolution 2017-02-17 23:01:25 +01:00
Beat Küng
1a81b64d49 VEHICLE_CMD_PREFLIGHT_CALIBRATION: update temperature_calibration param definition 2017-02-17 23:01:25 +01:00
Lorenz Meier
51c8e90508 FW att control: Increase stack size to ensure limits 2017-02-17 22:31:55 +01:00
Lorenz Meier
bbc5186e2a GPS driver: Improve GPS "fake" mode init and code style 2017-02-17 22:28:55 +01:00
Lorenz Meier
495e16d510 Uploader script: Fix Python 2 issue and timing corner case on Mac OS, both in a robust fashion 2017-02-17 22:28:14 +01:00
James Goppert
7659402fdb WIP: valgrind runtime analysis and fixes (#6521)
* Fix several valgrind identified mem leaks

* Added callgrind target.

* px4_posix_tasks use nullptr
2017-02-17 12:36:52 -05:00
Beat Küng
a0f00f84f3 param show command: add -c to show only changed, do case insensitive comparison 2017-02-17 11:27:08 +01:00
Beat Küng
a4050db766 param: comment what the lock is needed for 2017-02-17 11:27:08 +01:00
Beat Küng
b4b5c987a6 unittests: add setup code to call param_init() 2017-02-17 11:27:08 +01:00
Beat Küng
df8f0da70c param & param_shmem: enable locking
We need to protect access to the param_values array. This is dynamically
allocated and resized (utarray_reserve() calls realloc). If some thread
was iterating the array while another was resizing the array, the first one
would iterate on a freed array, thus accessing invalid memory.

On NuttX this could lead to hardfaults in rare conditions.

Unfortunately we need to initialize the semaphore on startup, by calling
sem_init(). This adds a param_init() method called by every board/config
that uses the params (at least I think I've found all of them)
2017-02-17 11:27:08 +01:00
Beat Küng
fa3a6b890c param & flashparam param_export: use value directly instead of calling param_get
This call is not needed, and will avoid deadlocks when locking is enabled.
2017-02-17 11:27:08 +01:00
Beat Küng
42967df63f param command: use param_* calls even if flash-based params are enabled
This will ensure proper locking.
2017-02-17 11:27:08 +01:00
Beat Küng
68bee1b847 flashparams: remove the locking stubs
locking will be done in the params module
2017-02-17 11:27:08 +01:00
James Goppert
85f62f5da0 Fix param scoping to use cmake for parsing. 2017-02-17 11:26:46 +01:00
Lorenz Meier
44c8857354 MAVLink app: Update incorrect comment 2017-02-17 10:00:11 +01:00
Phillip Kocmoud
e4afce8b1b Add the 20602 start command for the AUAV x2.1 to the ROMFS rc.sensors file 2017-02-17 09:18:22 +01:00
Phillip Kocmoud
36e2bc8ae7 Fix AUAV X2.1 Board Config for 20608
These changes were required to fix support for the ICM-20608 after this commit:

f746141afe

This has been tested!
2017-02-17 09:17:41 +01:00
klopezal
6baf6fc666 Board config : correct GPIO init for px4fmu-v4pro 2017-02-17 09:16:23 +01:00
Michael Schaeuble
0d61e22d9b mavlink: Buffer UAVCAN parameter re-requests
We buffer the mavlink messages and don't forward them directly
via uORB. This solves an issue where many requests are dropped and
QGC does not start properly in combination with UAVCAN devices.
2017-02-17 09:15:56 +01:00
José Roberto de Souza
172e218dbd Commander: Use leds to show PX4 status on AeroFC 2017-02-17 09:13:33 +01:00
José Roberto de Souza
aa8fa2ae05 drivers: AeroFC: Add more leds
Also change the initial state of the leds to off.
2017-02-17 09:13:33 +01:00
José Roberto de Souza
83a387a553 drivers: Led: Do not initialize twice 2017-02-17 09:13:33 +01:00
Lorenz Meier
d66d7a4932 Navigator: Fix code style 2017-02-17 09:13:13 +01:00
Lorenz Meier
798a7ed8cd Commander: Fall back to GPS enabled modes once GPS becomes available 2017-02-17 09:13:13 +01:00
Lorenz Meier
070a73ad63 Commander: Switch into right mode in various corner conditions
* If you move in LAND, AUTO or HOLD the sticks the system will give control back to the pilot
  * If you do not connect any RC the system will default to HOLD and will allow you tablet control
  * If you gain position lock for the first time the system will re-evaluate the mode switch (so if you dropped down to alt hold it will now go into position)
  * If the system breaches the Geofence it will now always drop back to POSCTRL if the sticks are moved
2017-02-17 09:13:13 +01:00
Lorenz Meier
c8fb21e73e Navigator: Enforce a minimum altitude for RTL 2017-02-17 09:13:13 +01:00
Paul Riseborough
72633ad4c8 events: update documentation for polyfit algorithm 2017-02-16 22:17:47 +01:00
Lorenz Meier
7bd8514697 PWM out sim: Do not obey hardware lockdown flag 2017-02-16 12:34:51 +01:00
Kabir Mohammed
ea5caf258f mavlink : fix vision debug stream attitude update 2017-02-16 09:53:15 +01:00
Lucas De Marchi
47411b052c aerofc: test 115200 and 460800 baud rates
We still want to be able to program the flight stack if the user changes
the baudrate of that UART.
2017-02-16 09:35:23 +01:00
Lucas De Marchi
f9795ccbab px_uploader: support multiple baud rates
We may need to change the baud rate from one version to the other.
Allowing the script to try multiple baud rates makes the transition a
little bit less painful.

This also fixes a bug in which it would go the next port before trying
to identify the board after asking it to reboot.
2017-02-16 09:35:23 +01:00
Lucas De Marchi
6121119631 ROMFS: allow to use 460800 baudrate for onboard mode 2017-02-16 09:35:23 +01:00
Siddharth Bharat Purohit
ab465744f1 temp_cal: add math explanation for polynomil fit algo 2017-02-16 09:34:19 +01:00
yaoling
0e34de08fb Update send_event.cpp
do same as command module
2017-02-16 09:33:16 +01:00
Daniel Agar
9bc5da6d2d update matrix and fix test_matrix (#6524) 2017-02-16 00:31:06 -05:00
aivian
7a77e27a79 fixed wing offboard attitude setpoint fix (#6112) 2017-02-15 23:51:50 -05:00
Daniel Agar
a84dc2e3d2 clang-tidy disable cert-msc50-cpp rand() check 2017-02-15 22:29:24 -05:00
Daniel Agar
fd11c3f7b1 clang-tidy disable cert-msc30-c rand() check 2017-02-15 22:29:24 -05:00
Daniel Agar
1bbca3bf1d test_dataman add to SITL with minor updates 2017-02-15 22:29:24 -05:00
Julian Oes
9369262e63 navigator: allow more mission items
Since using more than 256 mission items has been tested and fixed, the
limit can now be raised to more than 256 (but smaller than UINT16_MAX).

Since the whole file is allocated in advance on NuttX, the limit there
is (arbitrarily) set to 2000. For POSIX archs such as SITL, we don't
really need to constrain ourselves any longer.
2017-02-15 22:29:24 -05:00
Julian Oes
8c1e85a65f dataman: don't wrap around at 256
The dataman started overwriting contents after 256 items because the
item index were only uint8_t. This fix allows for more than 256
waypoints.
2017-02-15 22:29:24 -05:00
Lorenz Meier
081c40c6fa Commander: Fix level cal command 2017-02-15 22:16:20 +01:00
Kabir Mohammed
e63747ec2f lpe : changes to allow hybrid GPS-denied navigation 2017-02-15 21:48:33 +01:00
Kabir Mohammed
0f91378eeb lpe : use vision timestamps to compute measurement delay 2017-02-15 21:48:33 +01:00
Kabir Mohammed
85df00d2da lpe : use per-measurement variance for vision 2017-02-15 21:48:33 +01:00
Kabir Mohammed
48e7b94162 mavlink : track time offset faster 2017-02-15 21:48:33 +01:00
Kabir Mohammed
d831c262d0 mavlink : fix code style 2017-02-15 21:48:33 +01:00
Kabir Mohammed
444005f290 logger : Log new vision topics 2017-02-15 21:48:33 +01:00
Kabir Mohammed
3653d64b31 att_ekf : move to new vision topics 2017-02-15 21:48:33 +01:00
Kabir Mohammed
c65b8fffd3 sdlog2 : log new vision topic 2017-02-15 21:48:33 +01:00
Kabir Mohammed
a158d7f124 att_q : move to new vision attitude topic 2017-02-15 21:48:33 +01:00
Kabir Mohammed
bdcc626f29 mavlink : correct stream name for vision message 2017-02-15 21:48:33 +01:00
Kabir Mohammed
f43ee3a0f5 mavlink : use new vision estimate topic and fix stream name 2017-02-15 21:48:33 +01:00
Kabir Mohammed
294663854d inav : move to new vision topic 2017-02-15 21:48:33 +01:00
Kabir Mohammed
7236bafee1 ekf2 : move to new vision topic 2017-02-15 21:48:33 +01:00
Kabir Mohammed
8eaddeee0a lpe : move to new vision topic 2017-02-15 21:48:33 +01:00
Kabir Mohammed
f8775306d3 Remove deprecated vision_position_estimate topic 2017-02-15 21:48:33 +01:00
Kabir Mohammed
b643c94f0a mavlink_receiver : Switch VISION_POSITION_ESTIMATE to new topics 2017-02-15 21:47:51 +01:00
Kabir Mohammed
569251dc2e mavlink_receiver : Add external estimator interface 2017-02-15 21:47:51 +01:00
Sander Smeets
75f6b4eb0c Readme changes 2017-02-15 21:15:27 +01:00
José Roberto de Souza
b7c53342dc ROMFS: AeroFC: Start dataman with RAM backend
AeroFC don't have a SD Card or any other storage device, so changing
dataman backend to work over RAM to be able to load missions.
2017-02-15 21:13:13 +01:00
Roman
8c9f27bb8a land detector (mc): takeoff throttle should be the same for all manual,
altitude controlled modes

Signed-off-by: Roman <bapstroman@gmail.com>
2017-02-15 15:41:44 +01:00
Phillip Kocmoud
ccfecd4ad2 Add support for the ICM-20602 to the Pixracer FMUv4 (#6577)
The current ICM-20608 is nearing EOL.

I have tested on both ICM-20608 and ICM-20602 based Pixracers.
2017-02-14 06:37:04 -10:00
Daniel Agar
8c837e72be fixedwing_control example fix fds init (#6575) 2017-02-13 22:23:16 -05:00
Julian Oes
4ee8c43ea2 mavlink: send attitude quaternion in onboard mode 2017-02-13 21:38:10 +01:00
David Sidrane
7e425c8ff2 Disable bl_upload command on non F4 tartgets
Upstream nuttx needs to have the flash programing support added.
2017-02-13 21:37:38 +01:00
David Sidrane
94450eb43a Use PX4_FLASH_BASE from micro HAL 2017-02-13 21:37:38 +01:00
David Sidrane
a2fa199a26 Define PX4_FLASH_BASE in micro HAL 2017-02-13 21:37:38 +01:00
Lorenz Meier
dfd02d8372 Plane interface: Fix motor scaling in simulator 2017-02-13 21:33:01 +01:00
Lorenz Meier
7f4601a50f Plane: Fix motor scaling 2017-02-13 21:32:46 +01:00
ChristophTobler
0263ab8cd2 enable takeoff in gps denied areas and minor requested changes 2017-02-13 21:11:25 +01:00
ChristophTobler
64092f087f fix landing angle if no gps 2017-02-13 21:11:25 +01:00
ChristophTobler
6a60ff9dc3 fix code style 2017-02-13 21:11:25 +01:00
ChristophTobler
52f5f1be07 update submodule ecl 2017-02-13 21:11:25 +01:00
ChristophTobler
1f7fdb2386 allow local position for takeoff (e.g. flow) 2017-02-13 21:11:25 +01:00
Matthias Grob
194f0c1de8 land_detector: ground detection corrected comment and clarified condition 2017-02-13 11:34:10 +01:00
Matthias Grob
9963cf532d land_detector: refactored helper method names 2017-02-13 11:34:10 +01:00
Matthias Grob
c559f195ec land_detector: Hotfix to prevent ground contact detection when descending velocity is very slow with manual stick all the way down
Now the stick down check is only done in manual control and the thrust low is again mandatory to detect ground in any case.
2017-02-13 11:34:10 +01:00
klopezal
b5858e729c lis3mdl : correct offset and scale checks 2017-02-12 13:52:41 +01:00
Kevin
1167fba9ad px4fmu-v4pro : adding correct logic for overcurrent sensing 2017-02-12 13:52:41 +01:00
Kevin
1ce0bafebd lis3mdl : fix logic in check functions and code style 2017-02-12 13:52:41 +01:00
Kevin
62b4d2de0d Fixing code style 2017-02-12 13:52:41 +01:00
klopezal
f09b60ad9e lis3mdl : several fixes and enhancements 2017-02-12 13:52:41 +01:00
klopezal
089e50c574 px4fmu-v4pro : board configuration 2017-02-12 13:52:41 +01:00
Daniel Agar
b14cb952ae sitl plane update tuning 2017-02-12 11:03:51 +01:00
Daniel Agar
ff68d63143 fw_pos_control_l1 force heading hold at flare 2017-02-12 11:03:51 +01:00
Daniel Agar
94d6a92f41 fw_pos_control_l1 publish quat in att_sp 2017-02-12 11:03:51 +01:00
Daniel Agar
feda5caac2 commander state machine helper fix style and remove unused 2017-02-12 10:29:59 +01:00
Daniel Agar
d0b188f585 commander FW don't allow FOLLOW or OFFBOARD 2017-02-12 10:29:59 +01:00
Paul Riseborough
1f4155c208 events: fix code style issues 2017-02-12 09:21:37 +01:00
Paul Riseborough
9858b0b491 sensors: Add calibration control parameters to QGC list 2017-02-12 09:21:37 +01:00
Paul Riseborough
36f83e46ee events: abort calibration if starting temperature is too high 2017-02-12 09:21:37 +01:00
Paul Riseborough
22c8c59829 Thermal Calibration - add parameter required to control max starting temperature 2017-02-12 09:21:37 +01:00
Paul Riseborough
93a70c2d0b systemlib: Fix parameter name error 2017-02-12 09:21:37 +01:00
Paul Riseborough
f3d30564ed events: don't start baro calibration until specified temperature achieved 2017-02-12 09:21:37 +01:00
Paul Riseborough
e75f2b9cf7 events: don't start accel calibration until specified temperature achieved 2017-02-12 09:21:37 +01:00
Paul Riseborough
cdf80a868a events: don't start gyro calibration until minimum temperature achieved 2017-02-12 09:21:37 +01:00
Paul Riseborough
c901c4b39e Thermal Calibration - add parameter required to control minimum starting temperature 2017-02-12 09:21:37 +01:00
Paul Riseborough
693cc4a533 Update SYS_CAL_TEMP parameter name and description
We will be adding another parameter to set min starting temp, so this name needs to be made less generic.
Fixes typographical errors in the description
2017-02-12 09:21:37 +01:00
David Sidrane
c685cdbfce Use the NuttXs progmem api to progrem flash 2017-02-12 08:57:29 +01:00
bharath374
6013c273bf Added 8x96 mode to Snapdragon Flight sanity test script 2017-02-12 08:46:50 +01:00
Lucas De Marchi
72e628f6e0 aerofc: use autodetection for MS5611 driver 2017-02-09 21:30:19 +01:00
Lucas De Marchi
62ea471ae7 ms5611: support MS5611/MS5607 autodetection
From their registers it's not possible to differentiate MS5611 from
MS5607. Here we use a little heuristic that people won't likely be
flying (or starting to fly) on very high altitude, greater than 5300m.
Even on these altitudes the error would be much lower using the MS5611
calculations for MS5607 than it is on MSL.
2017-02-09 21:30:19 +01:00
Daniel Agar
80c8130f07 sensors true airspeed fix
- _voted_sensors_update.baro_pressure() is already in pascals
2017-02-09 21:29:03 +01:00
David Sidrane
d0d7955414 Hotfix:STM32 and STM32F7 Fixes the bkp reference counter issue
See https://groups.yahoo.com/neo/groups/nuttx/conversations/topics/14362
2017-02-09 21:12:23 +01:00
Julian Oes
aaa24b0cc8 Reduce attitude rate but add Quaternion 2017-02-08 12:47:34 +01:00
Daniel Agar
317595cff3 SYS_COMPANION add 115200 normal telem 2017-02-08 08:35:29 +01:00
Beat Küng
08f0524b58 camera_trigger: remove unused fields _gpio_fd and _p_pin 2017-02-07 13:36:16 +01:00
Beat Küng
507e3b0263 camera_trigger: add TRIG_INTERFACE=3 for Mavlink forwarding 2017-02-07 13:36:16 +01:00
Beat Küng
212502b2b1 camera_trigger: make sure it builds for SITL & add to SITL cmake 2017-02-07 13:36:16 +01:00
Beat Küng
882146785c camera_trigger: rename info command to status
to be consistent with the rest of the system
2017-02-07 13:36:16 +01:00
Beat Küng
d6c54e4240 camera_trigger: remove params from build 2017-02-07 13:36:16 +01:00
Paul Riseborough
5567170a26 Tools: update offline sensor calibration script
Fix typographical error
2017-02-07 11:01:22 +01:00
Lorenz Meier
f68e34ce40 Update DF to fix Snapdragon scheduling issues 2017-02-06 21:55:29 +01:00
Dennis Mannhart
57b7c4fc3d mc_pos_control: code style fix 2017-02-06 19:10:42 +01:00
Dennis Mannhart
f0978fc9e9 mc_pos_control: set position setpoint during transition based on veloicyt and acceleration 2017-02-06 19:10:42 +01:00
Dennis Mannhart
c141d4ca3f mc_pos_control: turn off thrust xy when in position hold and altitude hold and thrust z is low 2017-02-06 19:10:42 +01:00
David Sidrane
602279ad56 zubaxgnss-v1 bootloader uses mfguid for hw_version unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
29888659f2 s2740vc-v1 bootloader uses mfguid for hw_version unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
c52a8544c1 px4flow-v2 bootloader uses mfguid for hw_version unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
050b909b20 px4esc-v1 bootloader uses mfguid for hw_version unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
23ecb78552 px4cannode-v1 bootloader uses mfguid for hw_version unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
278d6bb717 esc35-v1 bootloader uses mfguid for hw_version unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
a8706ad001 uavcannode uses mfgid for hwver.unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
d22a41bb70 uavcanesc uses mfgid for hwver.unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
9672898a33 uavcan uses mfgid for hwver.unique_id 2017-02-04 22:27:04 +01:00
David Sidrane
8ba1ffafec mavlink uses simpler common bord indentity api 2017-02-04 22:27:04 +01:00
David Sidrane
138f0378a7 logger uses simpler common bord indentity api 2017-02-04 22:27:04 +01:00
David Sidrane
473c211eb0 gyro_calibration uses simpler common bord indentity api 2017-02-04 22:27:04 +01:00
David Sidrane
7600aa51f7 Remove fmu id command as it is redundant to ver uid
This command was redudnat to "fmu uid|all" However it
 printed the leading zeros.
2017-02-04 22:27:04 +01:00
David Sidrane
53df80881a ver uses simpler common board indentity api and displays mfguid 2017-02-04 22:27:04 +01:00
David Sidrane
3668047e6c board_serial uses simpler common bord indentity api 2017-02-04 22:27:04 +01:00
David Sidrane
bc8b117e85 common board idenity cleanup and add mfguid to api
Remove the notion of legacy from the api. The board level code
   will perform the traslation to lecacy format on the STM32.
   new targets will not need to do this as there is no case
   where the serial number were used by mfg for tracking.

   Extend board common api to get mfguid and mfguid formatted

   This adds an api that return the MFGUID as an array of bytes
   or a string.

   The data is returned with the MSD at index 0 and the LSD at
   index PX4_CPU_MFGUID_BYTE_LENGTH-1.

   Removed all reodering defines from the api and hal
2017-02-04 22:27:04 +01:00
Simone Guscetti
b182a5eeca Added the vehicle_status_flags publisher with the conversion in a bit field in commander 2017-02-04 21:13:59 +01:00
Simone Guscetti
2c2addad53 Add new message vehicle_status_flags for the commander status_flags 2017-02-04 21:13:59 +01:00
Lorenz Meier
6bd29b24f6 POSIX: Avoid missing prototype warning on some POSIX platforms 2017-02-04 21:06:21 +01:00
Lorenz Meier
82fa9a8d43 Update return type for power management call 2017-02-04 21:06:21 +01:00
Lorenz Meier
bf448fce71 Commander: Update call for new power management interface 2017-02-04 21:06:21 +01:00
Lorenz Meier
ce921345cf POSIX: Stub power management support 2017-02-04 21:06:21 +01:00
Lorenz Meier
4f1842c9c4 TAP v1 config: Add support for external power management calls 2017-02-04 21:06:21 +01:00
Lorenz Meier
1ad03ed8ef Common: Add support for power management (on / off) from the flight controller side 2017-02-04 21:06:21 +01:00
Lorenz Meier
565a43dee0 Aero FC v1: Remove unused power management file 2017-02-04 21:06:21 +01:00
Lorenz Meier
f7fa374656 Implement default board power control to allow software switch-off 2017-02-04 21:06:21 +01:00
Lorenz Meier
a92931fe84 Commander: Switch system off if in undervoltage condition and disarmed.
This is necessary to not have systems deep-discharge the battery while sitting idle. While at it we also deny arming in low battery conditions to ensure people who just landed with a low battery do not take off again and fail to get a successful RTL.
2017-02-04 21:06:21 +01:00
Lorenz Meier
6f84e79d70 Navigator: Fix takeoff handling if already in air
If the vehicle was already in air on takeoff and the waypoint gets converted to a regular waypoint the wait / delay time does not get reset to zero. This change ensures the next mission item is approached immediately.
2017-02-04 14:47:34 +01:00
Lorenz Meier
7fbc71f054 send event: Do use nullptr, not NULL 2017-02-04 14:46:51 +01:00
Beat Küng
ffacc6f64a param SYS_STCK_EN: enable stack checking by default 2017-02-04 12:15:59 +01:00
Beat Küng
03dc991188 log_writer_file: adjust stack size
Stack size was below threshold of 300 by 8 bytes.
2017-02-04 12:15:59 +01:00
Beat Küng
5c2fa034da load_mon: rename low_stack -> task_stack_info & always publish it
- use uorb queue to not drop any info, only do 2 tasks per cycle
- also print a warning on low stack (which will be added to ulog)

this allows to gather statistics of each task's stack usage over time.
2017-02-04 12:15:59 +01:00
Beat Küng
c02f1946eb load_mon: fix stack check: use up_check_tcbstack_remain()
The previous method did not work anymore since the NuttX upgrade.
2017-02-04 12:15:59 +01:00
Lorenz Meier
0e64f8c288 Matrix update with CLANG compile fix 2017-02-04 11:21:38 +01:00
Lorenz Meier
1b01546d4b Revert "Update matrix lib"
This reverts commit d75024b987cc047b32d08c48597cc13385993709.
2017-02-04 11:14:42 +01:00
Lorenz Meier
d75024b987 Update matrix lib 2017-02-04 10:42:47 +01:00
Lorenz Meier
bf26bec46c Fix gyro init 2017-02-04 10:38:11 +01:00
Lorenz Meier
72156fe9c1 Temp cal: Fix matrix initialization 2017-02-04 08:54:15 +01:00
Lorenz Meier
51e156e1f4 Code style fix 2017-02-04 08:54:00 +01:00
Stephan Brown
54cc212d46 test_autodeclination: Add world endpoints to test. 2017-02-04 08:52:04 +01:00
Stephan Brown
0d219caae3 geo_mag_declination: Fix interpolation when inputs are outside of sampling min and max. 2017-02-04 08:52:04 +01:00
Stephan Brown
20e7bd082a unittests: Remove geomag tests which are now covered in systemcmds tests. 2017-02-04 08:52:04 +01:00
Stephan Brown
614853b023 test_autodeclination: Update mag declination test value. 2017-02-04 08:52:04 +01:00
Stephan Brown
bb0d01d812 geo_mag_declination: Update declination values according to 2015 NOAA data. 2017-02-04 08:52:04 +01:00
Stephan Brown
fc34eef53a unittests: Add unittests for geo_mag_declination. 2017-02-04 08:52:04 +01:00
Stephan Brown
ab9fa59dd2 geo_mag_declination: Fix table bounds checking. 2017-02-04 08:52:04 +01:00
Daniel Agar
384e3bb693 meas_airspeed status aspd_com_err 2017-02-04 08:47:37 +01:00
Beat Küng
d3f71454cc posix_sitl_default.cmake: add modules/events
It's not used yet, just to make sure it compiles fine.
2017-02-03 13:57:48 +01:00
Beat Küng
0d000173b5 l3gd20 selftest: don't check for 0 offset
If temperature compensation is enabled, the offset will be 0
2017-02-03 13:57:48 +01:00
Beat Küng
32ed939ea4 param_shmem: readd dropped static to function definition 2017-02-03 13:57:48 +01:00
Beat Küng
ea4d3d970b temperature_calibration: make sure to save the params after the process 2017-02-03 13:57:48 +01:00
Beat Küng
6583f73cfa temperature_calibration: reduce code duplication by adding a TemperatureCalibrationCommon class 2017-02-03 13:57:48 +01:00
Beat Küng
38b4984c36 temperature_calibration: make sure to call orb_unsubscribe() when objects are destroyed 2017-02-03 13:57:48 +01:00
Beat Küng
980c3bc6a7 temperature_calibration: notify system about param changes 2017-02-03 13:57:48 +01:00
Beat Küng
b89b76fbe6 gyro_calibration: use param_notify_changes 2017-02-03 13:57:48 +01:00
Beat Küng
3eecd16309 accelerometer_calibration: use param_notify_changes 2017-02-03 13:57:48 +01:00
Beat Küng
a802caca87 param: add param_notify_changes() method
Can be used for example after several calls to
param_set_no_notification() to avoid unnecessary system notifications,
as it is an expensive change.
2017-02-03 13:57:48 +01:00
Beat Küng
4b8e6cf9cd temperature_calibration: make sure to always do an orb_copy() even when already finished
... since we do poll() on the gyro fd.
2017-02-03 13:57:48 +01:00
Beat Küng
d2dd61dfbd temperature_calibration: make sure to report an error only once 2017-02-03 13:57:48 +01:00
Simone Guscetti
fe53e3a0d5 commander: add status_changed when battery is low 2017-02-03 13:53:51 +01:00
Beat Küng
c4a8aa9c68 temperature_calibration: refactor to separate code & reduce code duplication 2017-02-02 23:54:06 +01:00
Beat Küng
b6f3cf9425 events: refactor temperature_calibration command to take options and use a single vehicle_command
This makes it easier to start calibration for all sensors at once.
2017-02-02 23:54:06 +01:00
Beat Küng
603cd1e6dc refator events: move temperature calibration implementation into subdirectory 2017-02-02 23:54:06 +01:00
Paul Riseborough
b36e65fd6d events: Improve consistency of console messages 2017-02-02 23:54:06 +01:00
Paul Riseborough
9e219fba0c events: make required temp rise for calibration adjustable 2017-02-02 23:54:06 +01:00
Paul Riseborough
4ff5e7c5ab systemlib 2017-02-02 23:54:06 +01:00
Paul Riseborough
8001db257c ROMFS: enable auto start of thermal calibration 2017-02-02 23:54:06 +01:00
Paul Riseborough
8aa91512e9 systemlib: Add parameters to control thermal calibration startup behaviour 2017-02-02 23:54:06 +01:00
Paul Riseborough
f86347f1e2 Tools: Enable offline calibrator to handle less than 3 inertial sensors 2017-02-02 23:54:06 +01:00
Paul Riseborough
4d163eebb9 events: Add accelerometer and baro thermal calibration 2017-02-02 23:54:06 +01:00
Paul Riseborough
f0c456dd54 events: give gyro cal unique names in preparation for other sensor types 2017-02-02 23:54:06 +01:00
Matthias Grob
9e80a6c9d6 sensors: rc filter no unstable cutoff, better initialisation, reset filter on change, constrain output
Filter gets unstable if cutoff is above sample rate/2.
Filter initial frequencies do not matter a lot because they get replaced by parameters anyways.
Filter delay values get reset to 0 when the filter is reconfigured otherwise there can be some weird spikes in the output.
Filter output gets constrained to the range again because of possible overshoot.
2017-02-02 21:24:05 +01:00
Matthias Grob
81dcba3a2a sensors: rc added low pass filter parameters 2017-02-02 21:24:05 +01:00
Matthias Grob
c2be4b2b29 mc_pos_control: added exponential curve to manual x,y velocity setpoint
controlled by parameter MPC_XY_MAN_EXPO that is disabled (0) by default
2017-02-02 21:24:05 +01:00
Matthias Grob
661832ca1d mathlib: added exponential curve function 2017-02-02 21:24:05 +01:00
Matthias Grob
d991285406 sensors: rc filter: added sample rate of 33.3Hz and lowpass cutoff 5Hz hardcoded for testing 2017-02-02 21:24:05 +01:00
Matthias Grob
27a4ce2691 sensors: rc added lowpass filters to the 4 main channels without useful samplerate and cutoff frequency yet 2017-02-02 21:24:05 +01:00
Matthias Grob
a14dbdcfdb sensors: rc refactored min max ifs to constrain 2017-02-02 21:24:05 +01:00
David Sidrane
9527dd7714 Add auav-x21_default to the qgc firmware for distribution 2017-02-02 14:39:43 +01:00
Beat Küng
3dc6e7b574 LandDetector: use a 64bit counter for total system flight time
The previous 32bit counter wrapped in ~1.19h, this switches to 2 32bit
counters, wrapping in 584942 years.
2017-02-02 09:22:25 +01:00
Beat Küng
05b649cc86 LandDetector: fix total system flight time (landed & takeoff logic) 2017-02-02 09:22:25 +01:00
Dennis Mannhart
f718b3a97a mc_pos_control: limit slewrate different in up and down direction 2017-02-02 09:04:59 +01:00
David Sidrane
c976a26156 Use wild card *_PX4_* for upload
Compliments the Bootloader change To simplify the ripple effect on the tools, we will be using  /dev/serial/by-id/*_PX4_* to locate PX4 devices. Therefore  moving forward all Bootloaders must contain the prefix "PX4 BL "  in the USBDEVICESTRING
2017-02-02 08:50:09 +01:00
Daniel Agar
0eac637870 clang-tidy relax function-size.LineThreshold 2017-02-01 22:15:50 -05:00
Daniel Agar
9a2ce9a098 clang-tidy relax function-size.StatementThreshold 2017-02-01 22:15:50 -05:00
Daniel Agar
b068c61784 clang-tidy clang-analyzer-core.NonNullParamChecker 2017-02-01 22:15:50 -05:00
Daniel Agar
345123bb04 clang-tidy readability-static-definition-in-anonymous-namespace 2017-02-01 22:15:50 -05:00
Daniel Agar
b59ab8b663 clang-tidy remove TODOs
- readability-avoid-const-params-in-decls
 - readability-named-parameter
2017-02-01 22:15:50 -05:00
Daniel Agar
6f05fec335 clang-tidy performance-unnecessary-copy-initialization 2017-02-01 22:15:50 -05:00
Daniel Agar
7e5f09f408 clang-tidy performance-unnecessary-value-param 2017-02-01 22:15:50 -05:00
Daniel Agar
be5764db48 clang-tidy misc-suspicious-missing-comma 2017-02-01 22:15:50 -05:00
Daniel Agar
edd564b5a9 clang-tidy list all available checks 2017-02-01 22:15:50 -05:00
Daniel Agar
37a2e331c4 clang-tidy test_bson memcmp check return 2017-02-01 22:15:50 -05:00
Daniel Agar
070cd55636 clang-tidy readability 2017-02-01 22:15:50 -05:00
Daniel Agar
b33d49c77d state_machine_helper use static_assert 2017-02-01 22:15:50 -05:00
Daniel Agar
4e3b4091e8 run-clang-tidy only display output on error 2017-02-01 22:15:50 -05:00
Daniel Agar
226148ea8b import llvm 4.0 run-clang-tidy.py 2017-02-01 22:15:50 -05:00
Daniel Agar
ca09f8a107 uORBDevices use global read with stdin int 2017-02-01 22:15:50 -05:00
Daniel Agar
73da6d30d9 clang-tidy errors cause target failure 2017-02-01 22:15:50 -05:00
Daniel Agar
96e51f7c59 clang-tidy remove redundant 2017-02-01 22:15:50 -05:00
Daniel Agar
6631e72d6f clang-tidy modernize-redundant-void-arg 2017-02-01 22:15:50 -05:00
Daniel Agar
e927f3e040 clang-tidy modernize-use-nullptr 2017-02-01 22:15:50 -05:00
Lorenz Meier
ec2467d4a5 MPC controller: Do not initialize to zero dt but a likely default dt 2017-02-01 20:06:31 +01:00
Dennis Mannhart
299c40f627 mc_pos_control: timestamp fix for vel_sp 2017-02-01 18:30:31 +01:00
Bart Slinger
a66a25b884 sdlog2_dump.py skip unknown message type 2017-02-01 11:31:08 +01:00
Beat Küng
80c348d3b0 temperature_compensation: fix return value for set_sensor_id
got dropped during rebase cleanup
2017-02-01 08:40:23 +01:00
Beat Küng
c07fd1a360 mc_att_control_main: fix style 2017-02-01 08:40:23 +01:00
Beat Küng
4f6e379e50 temperature_compensation: use const for reference 2017-02-01 08:40:23 +01:00
Paul Riseborough
7d8ce9ab9c sensors: Fix bug in temperature offset calculation 2017-02-01 08:40:23 +01:00
Beat Küng
c0fd3afc8c accelerometer_calibration: only notify system once (after last scale change) 2017-02-01 08:40:23 +01:00
Beat Küng
998a407148 SITL: better formatting of help output 2017-02-01 08:40:23 +01:00
Paul Riseborough
0a447e9a93 Tools: update instructions for off-board calibrator 2017-02-01 08:40:23 +01:00
Paul Riseborough
e78c5155a2 Tools: update calibration instructions 2017-02-01 08:40:23 +01:00
Paul Riseborough
253683af5f drivers: Don't require driver level gyro offsets to be non-zero 2017-02-01 08:40:23 +01:00
Paul Riseborough
bdbc4f4d65 commander: fix bug in gyro calibration
If the same gyro data was contained in two uORB instances, the thermal offset coefficient was being corrected twice.

TODO should fix what was causing data from the same sensor to appear on two uORB topics.
2017-02-01 08:40:23 +01:00
Paul Riseborough
6e841f6cbd commander: fix bugs in handling of thermal compensation during access cal 2017-02-01 08:40:23 +01:00
Paul Riseborough
06f280e021 Tools: reinstate original offline calibrator to unblock testing
Refactored calibrator is not working.
2017-02-01 08:40:23 +01:00
Beat Küng
0220875961 fix temperature_calibration: reverse order of polynom coefficients 2017-02-01 08:40:23 +01:00
Beat Küng
d84e55878a temperature_calibration: remove unused include <vector> 2017-02-01 08:40:23 +01:00
Beat Küng
e31958cad1 voted_sensors_update: don't report failover if previous index is invalid 2017-02-01 08:40:23 +01:00
Paul Riseborough
f9b75e68c9 Tools: Change sign convention used by thermal calibrator
The flight code assumes corrections have the same sign as the sensor bias error and are subtracted from the raw reading
2017-02-01 08:40:23 +01:00
Beat Küng
c829e27a02 temperature_calibration: refactor variable names: remove preceding _ 2017-02-01 08:40:23 +01:00
Beat Küng
b5b6fb24e3 temperature_calibration: exit task when complete, set TC_G_ENABLE & use param_set_no_notification 2017-02-01 08:40:23 +01:00
Beat Küng
4a8d29800c voted_sensors_update: cleanup & remove some attributes
since the correction topic now contains data from all sensors, we don't
need additional fields in voted_sensors_update
2017-02-01 08:40:23 +01:00
Beat Küng
4763a119bc calibration: make sure to notify the system when temp calibration changes
This is needed so that temperature compensation reads in the updated values
and publishes the updated sensor_correction topic.
2017-02-01 08:40:23 +01:00
Beat Küng
7ebe2ac017 gyro_calibration: take into account temperature compensation when storing the scale 2017-02-01 08:40:23 +01:00
Beat Küng
fbef2b7a6a accelerometer_calibration: avoid using accel_mapping
This is not needed, as s is an uORB instance and accel_offset_0
contains data from uORB instance 0.
2017-02-01 08:40:23 +01:00
Beat Küng
97d7164b64 logger: remove actuator_controls from list of default topics
this was actually never published, only _0, _1, ... get published
2017-02-01 08:40:23 +01:00
Beat Küng
6ee3c1a117 temperature_compensation: fix copy-paste error (max_temp was not initialized) 2017-02-01 08:40:23 +01:00
Beat Küng
21070b069b mc_att_control_main: fix {x,y,z} variables (copy-paste mistake) 2017-02-01 08:40:23 +01:00
Beat Küng
75be1abc4c temperature_compensation: make sure to reset temperature when params change
Makes sure that the offsets & scales are updated and published later on.
2017-02-01 08:40:23 +01:00
Beat Küng
fdb75dbba2 accelerometer_calibration: simplify & fix if temp compensation is enabled
if compensation enabled, scale & offsets for the drivers should be reset,
but actually only the params were reset and accel_scale was still applied
to the driver via ioctl.
2017-02-01 08:40:23 +01:00
Beat Küng
d0ea4e8876 accelerometer_calibration: cleanup 2017-02-01 08:40:23 +01:00
Beat Küng
69fd8447ae accelerometer_calibration: make sure to initialize sensor_correction properly 2017-02-01 08:40:23 +01:00
Beat Küng
51def4fc60 gyro_calibration: make sure to initialize sensor_correction properly
if it's not published yet or published with low frequency, this makes sure
we have valid data.

also:
- _sensor_correction -> sensor_correction
- remove unnecessary init of sensor_correction_sub
2017-02-01 08:40:23 +01:00
Beat Küng
f890c82c97 mc_att_control_main: remove unnecessary memset for _sensor_correction 2017-02-01 08:40:23 +01:00
Paul Riseborough
c00c638b77 Remove IMU calibration parameter checks 2017-02-01 08:40:23 +01:00
Paul Riseborough
fb774bef67 commander: enable accel cal to adjust thermal compensation parameters 2017-02-01 08:40:23 +01:00
Paul Riseborough
bdd3b094a7 sensors: report mapping from uORB to compensation parameter index 2017-02-01 08:40:23 +01:00
Paul Riseborough
8b1a5461c4 sensors: Update documentation 2017-02-01 08:40:23 +01:00
Paul Riseborough
ba9e8741c0 msg: Add mapping from uORB index to compensation parameter index
This mapping is required so other applications can use the correct compensation data, even if the uORB ordering changes.
2017-02-01 08:40:23 +01:00
Paul Riseborough
f2f5034832 sensors: prevent high frequency updating of sensor corrections
The use of a float to integer cast was causing high frequency reporting when the float value was close to the rounding boundary.
2017-02-01 08:40:23 +01:00
Paul Riseborough
62694d92d2 commander: rework IMU cal for compatibility with temperature compensation 2017-02-01 08:40:23 +01:00
Paul Riseborough
add298c0b5 mc_att_control: use legacy offset and scale definition (+2 squashed commits)
Squashed commits:
[f81a8b0] mc_att_control: remove unnecessary initialisers
[f3d3f48] mc_att_control: accommodate changes to sensor_correction topic
2017-02-01 08:40:23 +01:00
Paul Riseborough
170bc91587 sensors: fix bug in thermal compensation temperature limit (+2 squashed commits)
Squashed commits:
[2df1d9e] sensors: change definition of sensor offset and scale factor to match legacy code
[089e103] sensors: publish thermal corrections for all sensors
2017-02-01 08:40:23 +01:00
Paul Riseborough
1dd9a10260 msg: publish thermal corrections for all sensors 2017-02-01 08:40:23 +01:00
pixhawk
ef2a5599a1 mag_calibration: Make sure calibration fails if any mag fails; More checks on calibration results 2017-02-01 08:38:26 +01:00
pixhawk
fded02220b calibration_routines: use PX4_ISFINITE() instead of isnan() 2017-02-01 08:38:26 +01:00
Beat Küng
1da934049c matrix_alg: use PX4_ISFINITE() instead if isnan() & isinf() 2017-02-01 08:38:26 +01:00
pixhawk
5c96c8c1b3 Removed std::fill_n since it is not supported 2017-02-01 08:38:26 +01:00
pixhawk
9fe65d0957 Fix array initialization bug 2017-02-01 08:38:26 +01:00
Siddharth Bharat Purohit
2c831c314e commander: correct mag cal offset direction 2017-02-01 08:38:26 +01:00
Siddharth Bharat Purohit
c6f8bcf8b3 commander: use mathlib matrix_alg functions 2017-02-01 08:38:26 +01:00
Siddharth Bharat Purohit
b46b7a3ca3 mathlib: add matrix eval funcs for raw arrays 2017-02-01 08:38:26 +01:00
Siddharth Bharat Purohit
78b8deda15 commander: add ellipsoid 9 param fit for magnetometer corrections 2017-02-01 08:38:26 +01:00
Siddharth Bharat Purohit
c9ac15f0dd commander: fix code style 2017-02-01 08:38:26 +01:00
Siddharth Bharat Purohit
f811777789 commander: add new math for sphere fit for compass calibration 2017-02-01 08:38:26 +01:00
Beat Küng
f746141afe mpu6000: add & check for the device_type on driver startup
Fixes the following case: a board that has several bus_options enabled,
and wants to start a specific device (eg mpu6000 -T 20608 start). In that
case the given device_type is never actually checked, and since the start
routine iterates over all bus_options, several can match, and thus start
multiple instances of the driver (note that the whoami check is performed
against the value provided with -T and thus the check will pass).

This happens on Pixracer (PX4_SPIDEV_MPU and PX4_SPIDEV_ICM_20608 are both
set).
2017-01-31 23:38:50 +01:00
Beat Küng
7c47991504 px4fmu-v4 board config: use PX4_SPIDEV_ICM_20608 instead of PX4_SPIDEV_ICM_20602
This is what's used according to https://pixhawk.org/modules/pixracer.
2017-01-31 23:38:50 +01:00
Lucas De Marchi
d6ef703fa4 aerofc: disable internal compass (#6485)
It uses a shared I2C bus with MS65611 which causes noise on the baro
reads. This will rely on the external compass instead of the internal
one.
2017-01-31 07:07:52 -10:00
Daniel Agar
899e406005 cmake optionally find and use ccache 2017-01-30 08:57:53 +01:00
Daniel Agar
dcddcdd28e cmake git ver depend on index and HEAD 2017-01-30 08:57:53 +01:00
Daniel Agar
159b35919a cmake nuttx build use full path to copy stamp
- fixes #6469
2017-01-30 08:57:53 +01:00
Lorenz Meier
40aa785720 DSM: Report zero channel count / decode fail through correct data path 2017-01-30 08:45:54 +01:00
Daniel Agar
de128aaa6e dsm rctest fix num_values return 2017-01-30 08:41:26 +01:00
Daniel Agar
93b0f07b43 travis-ci run tests 2017-01-30 08:41:26 +01:00
Lorenz Meier
d1372ddb67 Snapdragon RC driver: Move RC struct out of main loop to preserve channel values. Initialize raw rc count. 2017-01-30 08:28:59 +01:00
Lorenz Meier
2c24900b9d FMU: Initialize raw RC count 2017-01-30 08:27:49 +01:00
Lorenz Meier
e7a0089340 9250: Fill device ID for mag correctly 2017-01-29 16:24:47 +01:00
Lorenz Meier
a9a31bc745 MPU6K: Device ID should come from the main instance, not interface 2017-01-29 16:24:47 +01:00
Lorenz Meier
be2c73e9c3 HMC driver: Device ID should come from the main instance, not the interface 2017-01-29 16:24:47 +01:00
Lorenz Meier
a520c62d1a Allow setting the device ID in device driver 2017-01-29 16:24:47 +01:00
Lorenz Meier
1b06c04b5c Sensors: Style fix 2017-01-29 16:24:47 +01:00
Lorenz Meier
9cacdaafc7 Sensors: Reset gyro and accel calibration if one sensor goes missing.
This is to ensure that if sensor IDs are fixed we do not end up in a state where the system is partially calibrated and the need for re-calibration is not properly communicated to the user.
2017-01-29 16:24:47 +01:00
Lorenz Meier
d0d1a8e04f MS5611: Add missing bus identifier 2017-01-29 16:24:47 +01:00
Lorenz Meier
0ee68071fc 9250: Add missing bus identifier 2017-01-29 16:24:47 +01:00
Lorenz Meier
af4e9b668b MPU6K: Add missing bus identifier 2017-01-29 16:24:47 +01:00
Lorenz Meier
40e5d25196 LPS25H: Add missing bus identifier 2017-01-29 16:24:47 +01:00
Lorenz Meier
19d4c65a70 LIS: Add missing bus identifier 2017-01-29 16:24:47 +01:00
Lorenz Meier
6c7a8b594e HMC: Add missing bus identifier 2017-01-29 16:24:47 +01:00
Lorenz Meier
f80a1df133 Sensor header: Add previously unknown device identifiers 2017-01-29 16:24:47 +01:00
Lorenz Meier
33f6316d3c Device: Also allow to read bus type 2017-01-29 16:24:47 +01:00
Lorenz Meier
ec78830657 BMP280: Fix device ID setup 2017-01-29 16:24:47 +01:00
Lorenz Meier
8f77d55b8c BMA180: Fix device ID setup 2017-01-29 16:24:47 +01:00
Lorenz Meier
e88bb4cc09 MPU6K: Correctly register sub-type, remove magic numbers.
Before this change the MPU6K driver would register only the MPU6K family, but not the sub-type, which prevented telling individual sensors apart. This is a breaking change because users will have to perform their accel and gyro calibration again. However, it is unavoidable since right now the different sensors can end up with the same ID and the wrong offsets can be applied to the wrong sensor.
2017-01-29 16:24:47 +01:00
Lorenz Meier
a33bce0d26 Device IDs: List all sub-types of the MPU6K 2017-01-29 16:24:47 +01:00
Lorenz Meier
1c131f2523 Land detector: Accumulate total flight time between flights 2017-01-29 15:48:34 +01:00
Lorenz Meier
35efe651ac Land detector main: Fix style 2017-01-29 15:48:34 +01:00
Lorenz Meier
75132a50e6 Land detector: Measure total system flight time
This implementation is a baseline implementation and makes no attempt to be tamper-proof. A monotonic counter like the W25R64FV or a similar HW facility would be required to achieve this.
2017-01-29 15:48:34 +01:00
Lorenz Meier
2cf8cdc63f Event system: Initialize work item 2017-01-29 15:10:09 +01:00
Lorenz Meier
ff305fa440 SITL: Default to same estimator as onboard 2017-01-29 11:43:10 +01:00
Khoi Tran
21f8e07836 Fixed format 2017-01-29 09:37:48 +01:00
Khoi Tran
2428ff9f3a mc_position_control: Fix divide by zero in scale_control 2017-01-29 09:37:48 +01:00
Lorenz Meier
3f9d79c768 Update GPS 2017-01-29 01:19:48 +01:00
Daniel Agar
278b76e5a9 astyle src/platforms/qurt 2017-01-29 01:18:32 +01:00
Daniel Agar
501f866bf5 astyle src/platforms/posix 2017-01-29 01:18:32 +01:00
Daniel Agar
ca60d2d15f astyle src/platforms/ros 2017-01-29 01:18:32 +01:00
Daniel Agar
624403f147 astyle src/examples/hwtest 2017-01-29 01:18:32 +01:00
Daniel Agar
fa3b3df061 astyle src/lib/geo 2017-01-29 01:18:32 +01:00
Daniel Agar
8fbf5cbdaf astyle src/drivers/device 2017-01-29 01:18:32 +01:00
Daniel Agar
adbe38e86b astyle src/drivers/stm32 2017-01-29 01:18:32 +01:00
Daniel Agar
1261f985d8 astyle src/drivers/bmi160 2017-01-29 01:18:32 +01:00
Daniel Agar
fc4831d625 astyle src/drivers/mkblctrl 2017-01-29 01:18:32 +01:00
Daniel Agar
f0cde91220 astyle src/drivers/vmount 2017-01-29 01:18:32 +01:00
Daniel Agar
e43a8013dd astyle src/drivers/mpu9250 2017-01-29 01:18:32 +01:00
Daniel Agar
52c4479e0f astyle src/drivers/camera_trigger 2017-01-29 01:18:32 +01:00
Daniel Agar
30587e5669 astyle src/drivers/gps 2017-01-29 01:18:32 +01:00
Daniel Agar
32da3381f7 astyle src/drivers/bootloaders 2017-01-29 01:18:32 +01:00
Daniel Agar
8ab79a2c90 astyle src/drivers/test_ppm 2017-01-29 01:18:32 +01:00
Daniel Agar
ac06d665a3 astyle src/drivers/boards 2017-01-29 01:18:32 +01:00
Daniel Agar
e63c8ab2a2 astyle src/drivers/ardrone_interface 2017-01-29 01:18:32 +01:00
Daniel Agar
ee8fa78d93 astyle src/modules/uORB 2017-01-29 01:18:32 +01:00
Daniel Agar
88ad0fc3bd astyle src/modules/navigator 2017-01-29 01:18:32 +01:00
Daniel Agar
750e5d1690 astyle src/modules/uavcanesc 2017-01-29 01:18:32 +01:00
Daniel Agar
0bc3c8dfc4 astyle src/modules/systemlib 2017-01-29 01:18:32 +01:00
Daniel Agar
b1b951aace astyle src/modules/muorb 2017-01-29 01:18:32 +01:00
Daniel Agar
a0271fe020 astyle src/modules/vtol_att_control 2017-01-29 01:18:32 +01:00
Daniel Agar
380819dfc5 astyle src/modules/uavcannode 2017-01-29 01:18:32 +01:00
Daniel Agar
019c6647f2 astyle src/modules/sensors 2017-01-29 01:18:32 +01:00
Daniel Agar
28e50d5911 astyle src/modules/logger 2017-01-29 01:18:32 +01:00
Daniel Agar
da90e1ce62 astyle src/modules/replay 2017-01-29 01:18:32 +01:00
Daniel Agar
830cb44b9c astyle src/modules/fw_pos_control_l1 2017-01-29 01:18:32 +01:00
Daniel Agar
a14c5b29ea astyle src/systemcmds/hardfault_log 2017-01-29 01:18:32 +01:00
Daniel Agar
7c094053cb astyle update to v2.06 2017-01-29 01:18:32 +01:00
Roman
e916159f5c updated DriverFramework
Signed-off-by: Roman <bapstroman@gmail.com>
2017-01-28 20:18:01 +01:00
Roman
c065dc1930 bebop bus wrapper: fix logging of rpm and rpm setpoint
Signed-off-by: Roman <bapstroman@gmail.com>
2017-01-28 20:18:01 +01:00
Roman
1d4d57c4db bebop bus wrapper: log actual and setpoint motor speed
Signed-off-by: Roman <bapstroman@gmail.com>
2017-01-28 20:18:01 +01:00
Roman
0c7c5977ae bebop motor driver: better naming, removed unused header file
Signed-off-by: Roman <bapstroman@gmail.com>
2017-01-28 20:18:01 +01:00
Matthias Grob
480dd0922b Land detector: revision of the 2 stage landing mechanism
Ground detect: pilot want down or we are on minimum thrust by auto land but no vertical movement
-> Controller should relax x,y corrections and even ramp down desired thrust
Landed: All other conditions are eventually met
2017-01-28 16:23:04 +01:00
Matthias Grob
b130913090 land_detector: made sure the 2 stage landing can not happen in one hysteresis time 2017-01-28 16:23:04 +01:00
Lorenz Meier
9ef97b78c8 Land detector: Turn throttle range parameter into proper user-configurable parameter 2017-01-28 16:23:04 +01:00
Lorenz Meier
9448b8cb52 Land detector: Fix hover throttle detection 2017-01-28 16:23:04 +01:00
Dennis Mannhart
f297c45f78 mc_pos_control_main:
for landing, set velocity to zero and consider thrust_sp in body frame
instead of NED frame. Also limit thrust_sp_body_z to be larger than 0.0f
2017-01-28 16:23:04 +01:00
Lorenz Meier
58983e4c52 Land detector: Fix code style 2017-01-28 16:23:04 +01:00
Dennis Mannhart
3fe45697bb Fix3dwinglandDetector.cpp: adjusted to astyle 2017-01-28 16:23:04 +01:00
Dennis Mannhart
2f164602b4 LandDetector:
- constructor initalization fix
- set trigger time for ground contact hysteresis
- updated ground_contact_state logic
MulticopterLandDetector:
- added hysteresis for ground_contact
VtolLandDetector:
- get_ground_contact_state function that return the one form MultcopterLandDetector
FixedWingLandDetector:
- get_ground_contact_state with a return false: requires implementation
2017-01-28 16:23:04 +01:00
Lorenz Meier
f961a12d9a MC position controller: Stop XY control once ground contact is established 2017-01-28 16:23:04 +01:00
Lorenz Meier
aab04141f0 Initialize raw GPS data 2017-01-28 16:23:04 +01:00
Lorenz Meier
9e9e0e23ad Land detector: Detect ground contact separately
This allows to detect ground contact before concluding the system is landed. This allows to disable some parts of the horizontal control system and only control the vertical position to avoid tipping over.
;
2017-01-28 16:23:04 +01:00
Lorenz Meier
36026fb631 Land detection topic: Add ground contact state 2017-01-28 16:23:04 +01:00
Lorenz Meier
264589b2cc Fix motor range 2017-01-28 15:25:00 +01:00
Matthias Grob
41ff46b557 tap_esc: fixed offset to really keep the range 1200-1900
even if the input to the driver is too low or too high.
This prevents motor stalling.
NaN or Inf still stop the motor.
2017-01-28 15:24:45 +01:00
Beat Küng
91416fc49a ver.c: fix hwcmp to match exact string
Previously for example 'ver hwcmp PX4FMU_V4PRO' matched on PX4FMU_V4
hardware too.
2017-01-28 15:18:35 +01:00
José Roberto de Souza
37f73bb0ed ROMFS: aerofc: Only start logger with MAVLink support
AeroFC don't have SDCard to store logs.
2017-01-28 11:03:07 +01:00
José Roberto de Souza
340be986a6 ROMFS: aerofc: Switch from sdlog2 to logger
Logger have adds support of ULog over MAVLink and it will be used in AeroFC.
2017-01-28 11:03:07 +01:00
David Sidrane
b3f5a0d51a Tools to ease nuttx config maintenance (#6452)
* Added tool to restore defconfig sections after make [old|menu]config

* Use tool to restore defconfig sections after make [old|menu]config

   invocation:
      make px4fmu-v2_default oldconfig_px4fmu-v2
      make px4fmu-v2_default menuconfig_px4fmu-v2
2017-01-27 14:14:48 -10:00
Larry Wang
72ea5c53db qurt px4_layer initialize shared memory (#6453) 2017-01-27 17:59:12 -05:00
David Sidrane
0f33ca1ecc tap-v1 Increased IRQ Stack Size 2017-01-27 15:01:52 +01:00
David Sidrane
8bb72d45dc px4-stm32f4discovery Increased IRQ Stack Size 2017-01-27 15:01:52 +01:00
David Sidrane
3d05fa7229 mindpx-v2 Increased IRQ Stack Size 2017-01-27 15:01:52 +01:00
David Sidrane
214fd04b3c crazyflie Increased IRQ Stack Size 2017-01-27 15:01:52 +01:00
David Sidrane
5a7b8e052e auav-x21 Increased IRQ Stack Size 2017-01-27 15:01:52 +01:00
David Sidrane
2fe0f76e27 aerofc-v1 Increased IRQ Stack Size 2017-01-27 15:01:52 +01:00
David Sidrane
57581ddaac aerocore Increased IRQ Stack Size 2017-01-27 15:01:52 +01:00
Daniel Agar
cdd472f722 Makefile update Firmware.zip px4 naming 2017-01-26 19:41:48 -05:00
Daniel Agar
3d804dd7ca cmake nuttx simple binary naming 2017-01-26 18:39:09 -05:00
Daniel Agar
bc72b8161f px4fmu-v2_default add logger 2017-01-26 18:39:09 -05:00
David Sidrane
f604b71838 tap-v1 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
0088d17f4c px4nucleoF767ZI-v1 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
59d95cd77b px4fmu-v5 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
3dc205f28a px4fmu-v4pro using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
cd1148f146 px4fmu-v4 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
d5059efdde px4fmu-v2 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
af4b8ee8ca px4fmu-v1 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
f71d0eaf5a px4esc-v1 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
d7fc536f06 px4cannode-v1 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
bff54584fe px4-stm32f4discovery using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
5b2ceb7fda mindpx-v2 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
579f698e4c crazyflie using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
e484c3bab5 auav-x21 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
b955ef2876 aerofc-v1 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
2cf8a1b432 aerocore using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane
af12816296 posix derived targets use BOARD_OVERRIDE_CPU_VERSION for mcu_version 2017-01-26 08:39:12 +01:00
David Sidrane
6ab32f1632 logger uses common board api for mcu_version 2017-01-26 08:39:12 +01:00
David Sidrane
4be19b26b0 ver uses common board api for mcu_version 2017-01-26 08:39:12 +01:00
David Sidrane
242f563d44 Adds a board common API for retriving the SoC' Silicon revision data/errata
This abstraction will support mcu's other than the stm32 family.
    It moves the systemlib/mcu_version.c functionality to
    common/stm32/board_mcu_version.c
2017-01-26 08:39:12 +01:00
Siddharth Bharat Purohit
975893a406 events: tempcal: get rid of commented code 2017-01-25 22:43:29 +01:00
Beat Küng
be512fdc4c temperature_calibration: use device id from published topic
uorb topic instance does not necessarily match the gyro device path instance,
so we need to use the id from the topic.
2017-01-25 22:43:29 +01:00
Beat Küng
00d2fc936a polyfit.hpp: fix code style (class member variables start with _) 2017-01-25 22:43:29 +01:00
Beat Küng
2fbb1aee84 temperature_calibration: fix poll (number of fds), remove usleep
useep() is not needed because we use the poll()
2017-01-25 22:43:29 +01:00
Beat Küng
54e9bda412 temperature_calibration: properly initialize gyro subscriptions & bounds checking 2017-01-25 22:43:29 +01:00
Beat Küng
e74e883c56 temperature_calibration: change some log levels to be more appropriate 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
5c7dbe0f24 events: tempcal: run cal for all available gyros 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
7e6daaf3d1 tempcal: remove separate temperature calibration module 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
416a0aece2 events:polyfit: change to using int/unsigned instead of (u)intx_t types 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
e390f672c9 events: tempcal: save temperature calibration result 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
917a8f63f6 events: add temperature calibration scheme 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
86d9ba9cde tempcal: move to using Matrix library functions 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
0cc034ee15 px4fmu-v2 cmake: disable uavcan build to make space for tempcal module 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
acff114260 tempcal: add ref temperature and proper debug print methods 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
137ade308f tempcal: change to double as float was insufficient for calculation 2017-01-25 22:43:29 +01:00
Siddharth Bharat Purohit
269d05ff22 tempcal: sandbox app for temperature calibration 2017-01-25 22:43:29 +01:00
Lorenz Meier
0909c32262 PX4 FMU: Start send_events handler in all FMU generations 2017-01-25 22:43:29 +01:00
Lorenz Meier
fd6b051895 Start send_events in work queue 2017-01-25 22:43:29 +01:00
Beat Küng
c1e2aeff0b commander: ignore PREFLIGHT_CALIBRATION for temperature calibration param 2017-01-25 22:43:29 +01:00
Beat Küng
ab8ac8f63a events: add new module events
It uses the LP worker queue to periodically check for vehicle commands (30hz),
useful for several housekeeping tasks.
Currently the only task is temperature calibration.

Commands can be started via command line or via vehicle_command (from
Mavlink)

TODO: need to spec & extend the mavlink command.
2017-01-25 22:43:29 +01:00
Matthias Grob
34080be68b mc_pos_control: removed special mode switch calculation
because it is not needed anymore with feed forward thrust
it even produced aggressive twitches when used together with the feed forward thrust
2017-01-25 22:42:45 +01:00
Lorenz Meier
63057d7b60 Ensure that manual control is only sent by sensors app if signal is valid and initialized 2017-01-25 07:43:45 +01:00
Lorenz Meier
b1c6494ed7 MAVLink receiver: Do use correct multi-topic architecture
This prevents two inputs publishing to the same topic. Now if both RC and joystick are connected the first to be active gets control. This is not optimal but consistent and safe.
2017-01-25 07:43:45 +01:00
Lorenz Meier
cc4fa627c2 Messages: Add input source field to manual control setpoint message 2017-01-25 07:43:45 +01:00
David Sidrane
6368768d31 px4esc-v1 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
ead65eb581 px4cannode-v1 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
8972308559 tap-v1 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
6b9d87821b px4nucleoF767ZI-v1 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
75bb427830 px4fmu-v5 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
5ede3772ee px4fmu-v4pro using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
ca6105d042 px4fmu-v4 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
5ede0ace17 px4fmu-v2 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
a4ad8821cb px4fmu-v1 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
89bbe708f8 px4-stm32f4discovery using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
9e5d7d6e09 mindpx-v2 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
e6623554cb crazyflie using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
1d7dff05e9 auav-x21 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
ff2e8b10a2 aerofc-v1 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
5ea2d1d53f aerocore using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane
5c239ffb0b logger uses board_get_uuid_formated32 instead of mcu_unique_id
Replace the creation of uuid string with the board common api
  board_get_uuid_formated32 as opposed to using mcu_unique_id
  and printf.
2017-01-25 07:43:11 +01:00
David Sidrane
e6ba897b9a mavlink is using board_get_uuid_raw32 instead of mcu_unique_id 2017-01-25 07:43:11 +01:00
David Sidrane
63e3bbde07 gyro_calibration is using board_get_uuid_raw32 instead of mcu_unique_id 2017-01-25 07:43:11 +01:00
David Sidrane
5a5cfdbbe3 mcu_version remove mcu_unique_id
Using board cvommon UUID api thefore Removed mcu_unique_id
2017-01-25 07:43:11 +01:00
David Sidrane
93f2cf077f posix derrived targes use BOARD_OVERRIDE_UUID 2017-01-25 07:43:11 +01:00
David Sidrane
d0ebc183c9 ver uses common board api for uuid 2017-01-25 07:43:11 +01:00
David Sidrane
4dc8e61612 uavcan uses common board api to interface with systemlib/board_serial 2017-01-25 07:43:11 +01:00
David Sidrane
5bdd5c7989 fmu uses common board api to interface with systemlib/board_serial 2017-01-25 07:43:11 +01:00
David Sidrane
24f5461402 systemlib/board_serial uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane
459f71f579 zubaxgnss-v1 bootloader uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane
9efeb0d848 s2740vc-v1 bootloader uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane
69a500c6e7 px4flow-v2 bootloader uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane
147ed3067d px4esc-v1 bootloader uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane
796a7a1a69 px4cannode-v1 bootloader uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane
ae872448fd esc35-v1 bootloader uses common board api for UUID 2017-01-25 07:43:11 +01:00
David Sidrane
bf0de997cb Adds a board common way of retriving the SoC' Unique identifier
This abstraction will support mcu's with longer ID's then the
   stm32 family.

   It provids a common interface for byte and 32 bit word access
   to the UUID data and a facility to reorder it.
2017-01-25 07:43:11 +01:00
James Goppert
b86380086e Streamline python script for temp cal. (#6416)
* Streamline python script for temp cal.

* Simplify file generation for temp calibration.
2017-01-24 18:42:15 -05:00
David Sidrane
1abd629461 Move common macros to systemlib/px4_macros.h 2017-01-24 21:18:28 +01:00
David Sidrane
f3f235376b PX4 System changes you use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
ec90bfb8a5 zubaxgnss-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
a29d7091c4 px4flow-v2 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
c6c2eca139 s2740vc-v1 use board common reset interface requiers upstream nuttx fix 2017-01-24 21:17:06 +01:00
David Sidrane
dde2a0164e s2740vc-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
571ffb7652 px4nucleoF767ZI-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
6653bfc3c9 px4esc-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
1aad48c869 px4cannode-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
999ecb84d0 tap-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
327d45165d crazyflie use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
cde6b0ac07 posix builds define BOARD_HAS_NO_RESET and BOARD_HAS_NO_BOOTLOADER 2017-01-24 21:17:06 +01:00
David Sidrane
4b99426736 px4-stm32f4discovery use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
4bbcb9a768 px4-stm32f4discovery use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
e68532a86e mindpx-v2 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
844f753881 px4fmu-v5 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
ab3a0ba025 px4fmu-v4pro use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
eb72b49507 px4fmu-v4 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
fc00e3e168 px4fmu-v3 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
b01e03bf4f px4fmu-v2 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
a5d1290398 px4fmu-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
bcba37b71c auav-x21 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
a89a51cb9b aerofc-v1 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane
c2c8962765 board_crashdump uses board_system_reset API 2017-01-24 21:17:06 +01:00
David Sidrane
3692a62c35 Move board reset and entering bootloader to to board_common api
Define modes of reset and way to tell the system to enter
  the bootloader via an api defined in board_common.h

  If hardware or simulation deo not support the reset or
  bootloader API and can define BOARD_HAS_NO_RESET and
  BOARD_HAS_NO_BOOTLOADER respectivly.
2017-01-24 21:17:06 +01:00
José Roberto de Souza
523688e43c aerofc: Reboot after crash 2017-01-24 00:06:12 +01:00
David Sidrane
c866e745cd Removed mis-named file px4iov2.prototype (#6420) 2017-01-23 12:52:37 -10:00
David Sidrane
e31dfba4d0 Include up_internal.h to pickup extern _sdata definition
Fixes CI error
2017-01-23 22:10:38 +01:00
David Sidrane
4320492377 Add the ability to use probes 2017-01-23 22:10:38 +01:00
David Sidrane
59ec0e8aef Make board_crashdump.c arch agnostic and move to common 2017-01-23 22:10:38 +01:00
David Sidrane
127a639cd6 Updated to upstream NuttX config 2017-01-23 22:10:38 +01:00
José Roberto de Souza
4142f1c9d5 aerofc: Disable BBSRAM and SAVE_CRASHDUMP support
This board don't have a SDCard to save crash dumps and it was causing
the board to get stuck into '[boot] There were %d reboots with Hard
fault that were not committed to disk - System halted', until user
connect to the serial console and clear the fault.
2017-01-23 22:10:38 +01:00
José Roberto de Souza
24f9a53f60 drivers: common: stm32: Do not call stm32_bbsram_savepanic() if not implemented 2017-01-23 22:10:38 +01:00
José Roberto de Souza
163bcc4bbc drivers: boards: Share board_crashdump() implementation 2017-01-23 22:10:38 +01:00
José Roberto de Souza
0b3fa7bfbb aerofc: Remove call to board_dma_alloc_init()
This commit will only remove the error message from serial console as
this board don't define BOARD_DMA_ALLOC_POOL_SIZE.
2017-01-23 22:10:38 +01:00
Lorenz Meier
969c9ca7e8 Better status reporting for RC 2017-01-22 15:17:35 +01:00
Julian Oes
4ceba407f2 commander: raise stack size
A stack usage of 3000 bytes was observed, therefore it's safer to raise
the commander's stack size by 400 bytes.
2017-01-21 16:04:43 +01:00
Lorenz Meier
eed78fdcc9 DSM: Fix code style 2017-01-21 14:08:10 +01:00
Lorenz Meier
99450c05f5 FMU driver: Fix code style 2017-01-21 12:47:39 +01:00
Andrew C. Smith
12a34c9fcf Minor changes made to FMU module and the DSM code to properly catch Spekrum DSM data. 2017-01-21 12:13:40 +01:00
Lorenz Meier
42c5684a06 Fix temperature clipping for temperature calibration. Fixes #6412 2017-01-21 12:08:18 +01:00
Paul Riseborough
7e21aaf0c9 Tools: Add script file to generate sensor thermal compensation parameters 2017-01-21 11:48:03 +01:00
Paul Riseborough
d8c046e47c ROMFS: add thermal calibration logging mode 2017-01-21 11:48:03 +01:00
Paul Riseborough
3a029e58c7 logger: Add mode for thermal calibration logging
Logs the IMU and baro data at 10Hz
2017-01-21 11:48:02 +01:00
David Sidrane
27abc4fe6b Moved BOARD_EEPROM_WP_CTRL further down in file (from rebase) 2017-01-21 11:45:36 +01:00
David Sidrane
e3698e6853 Use the PX4IO_FW_SEARCH_PATHS to set path for PX4IO FW update 2017-01-21 11:45:36 +01:00
David Sidrane
daba952ba9 Use the BOARD_USES_PX4IO_VERSION to set an overridable FW search path
1) Key the exsitance of the PX4IO HW based on BOARD_USES_PX4IO_VERSION
   2) Set default PX4IO_FW_SEARCH_PATHS based on verions of the PXPIO HW
   3) allow PX4IO_FW_SEARCH_PATHS to be overwritten if a board provides
      BOARD_PX4IO_FW_SEARCH_PATHS
2017-01-21 11:45:36 +01:00
David Sidrane
7b4f048ca3 px4fmu-v4pro Add PX4IO HW version 2017-01-21 11:45:36 +01:00
David Sidrane
edd0b46887 px4fmu-v2 Add PX4IO HW version 2017-01-21 11:45:36 +01:00
David Sidrane
d4097a0e29 px4fmu-v1 Add PX4IO HW version 2017-01-21 11:45:36 +01:00
David Sidrane
eb25358aac auav-x21 Add PX4IO HW version 2017-01-21 11:45:36 +01:00
David Sidrane
feb76b4649 Unit test does not have a board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
9665db3efc Use px4_config.h not board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
78eb02e480 Remove the posix based #ifdef from version.h
Use the BOARD_NAME distributed to the board_config.h files
 for posix derived targets
2017-01-21 11:45:36 +01:00
David Sidrane
df1ed22cf9 Distribute sitl and board based assets for posix targets
This adds a src/board/<bebop|eagle|excelsior|rpi|sitl>/board_config.h
   to configure the build as is done with the Nuttx targets

   src/platforms/posix/include/board_config.h has been renamed to
   src/platforms/posix/include/system_config.h to allow the common
   posix defines to be included with the board specific defines.
2017-01-21 11:45:36 +01:00
David Sidrane
df6b46d0ba FMUV1 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
894b41e313 AEROCORE Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
f86a8c0e5e MINDPX_V2 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
e0fa53f444 FMUV2 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
0baefec09f FMUV4 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
e9ca626e19 TAP_V1 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
fd25f0a594 AEROFC_V1 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
99902807c9 SITL Moved magic numbers for battery V div and A per V to px4_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
a8b9c906f6 Board_config.h will provide the BOARD_BATTERYx_V_DIV
Prep to distrubte the magic numbers assgined in parameters.cpp
  to the board_config.h

  common/board_common.h will define:
  1) BOARD_BATTERY[1|2]_V_DIV as 0.0f if not defined to ensure
      the missing default trips a low voltage lockdown

  2) BOARD_BATTERY[1|2]_A_PER_V as 0.0f if not defined to ensure
     the default leads to an unrealistic current value.
2017-01-21 11:45:36 +01:00
David Sidrane
1c3ebadb85 Removed unused defines AVIONICS_ERROR_VOLTAGE and AVIONICS_WARN_VOLTAGE 2017-01-21 11:45:36 +01:00
David Sidrane
93bc8f6467 Combined ifdess and made positive logic
We still allow CONFIG_ARCH_BOARD_SITL in the code base, but
  use positive logic and less #ifdefs
2017-01-21 11:45:36 +01:00
David Sidrane
0bb0e92378 gpio_led removed dependancy on CONFIG_ARCH_BOARD_xxxx
The gpio leg can use either the FMU GPIO_SERVO (Aux Pins)
  or the FMUv1 style IO pins.

  We define either LED_ON_SERVO_GPIO or LED_ON_EXT_GPIO_AND_PIO
  based on if the board_config provides GPIO_SERVO_1 or
  GPIO_EXT_1.

  For LED_ON_SERVO_GPIO we further define GPIO_MIN_SERVO_PIN and
  the GPIO_MAX_SERVO_PIN based on the highest GPIO_SERVO_x provided
  by the board_config

  When base the ability to use the PX4PIO not in the existance of
  the path but on the define BOARD_USES_PX4PIO
2017-01-21 11:45:36 +01:00
David Sidrane
07d7ff5f38 Removed all CONFIG_ARCH_BOARD_xxx usage in drv_gpio.h
Removed remaining entries that had no fmu or pio GPIO
  defined
2017-01-21 11:45:36 +01:00
David Sidrane
0fe915bdfd aerofc-v1 Removed empty GPIO table
aerofc-v1 does not used any user GPIO via the FMU Driver
2017-01-21 11:45:36 +01:00
David Sidrane
cf893b6e89 TAP_V1 removed unused GPIO defines
Removed GPIO pins defines that were never user GPIO.
  Removed the camera_trigger driver as it depends on
  GPIO that are not on the TAP V1 HW
2017-01-21 11:45:36 +01:00
David Sidrane
d0f2d5e07f crazyflie removed unused GPIO defines 2017-01-21 11:45:36 +01:00
David Sidrane
aaf1b9c617 mindpx-v2: moved GPIO defines to mindpx-v2/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
acb0684a4e aerocore **corrected** and moved GPIO defines to aerocore/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
1d4d0656c6 PX4FMUV1: moved GPIO defines to px4fmu-v1/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
fe0f3bc557 PX4FMUV4PRO: moved GPIO defines to px4fmu-v4pro/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
356911ab0d PX4FMUV4: moved GPIO defines to px4fmu-v4/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
58a5ac78d9 PX4NUCLEOF767ZI_V1 **corrected** and moved GPIO defines to px4nucleoF767ZI-v1/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
0b89088065 PX4FMUV5 **corrected** and moved GPIO defines to px4fmu-v5/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
62dee7d096 PX4FMUV2: moved GPIO defines to px4fmu-v2/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
b74d049e89 AUAVX21 **corrected** and moved GPIO defines to auav-x21/board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane
9416ae670b Bring the board config into drv_gpio under nuttx 2017-01-21 11:45:36 +01:00
David Sidrane
955f2d7701 make device paths not board specific 2017-01-21 11:45:36 +01:00
David Sidrane
5d263776f2 Placed dependancy on BOARD_USES_PX4IO not path (PX4IO_DEVICE_PATH)
Code was conditionaly included based on #define PX4IO_DEVICE_PATH
    in drivers/drv_gpio.h depanedent on board #ifdef CONFIG_ARCH_BOARDxxxx
    Now that dependancy comes from board_common.h as BOARD_USES_PX4IO defined
    when a board config provides PX4IO_SERIAL_DEVICE.
2017-01-21 11:45:36 +01:00
David Sidrane
33486d5047 FMU gpio operations now conditional on BOARD_FMU_GPIO_TAB in board_config
return -EINVAL on any GPIO ioctl operation when there are
       no GPIO pins defined in the board config. I.E.
       BOARD_FMU_GPIO_TAB is not defined.

       BOARD_FMU_GPIO_TAB is now optional and if it is defined
       then the logical BOARD_HAS_FMU_GPIO is defined and
       will enable the px4fmu driver to perform the physical GPIO
       operations.
2017-01-21 11:45:36 +01:00
David Sidrane
216ec6513a Removed CONFIG_ARCH_BOARD_AEROFC_V1 from tap_esc
Changed the CONFIG_ARCH_BOARD_AEROFC_V1 in tap_esc.cpp to
   TAP_ESC_NO_VERIFY_CONFIG to maintian the commitment to not
   have CONFIG_ARCH_BOARD_xxxx ifdef litter in the PX4 code base.
   TAP_ESC_NO_VERIFY_CONFIG will be removed (see todo) in
   aerofc-v1/board_config.h
2017-01-21 11:45:36 +01:00
David Sidrane
fa6ad99aba Enable MEAS Airspeed voltage_correction based on ADC_SCALED_V5_SENSE not CONFIG_ARCH_BOARD_xxx
ADC_SCALED_V5_SENSE is defined and derived based on HW that provides
    and adc input that samples the V5 Rail or in the case of FMUv5 the
    V5 supply.
2017-01-21 11:45:36 +01:00
David Sidrane
26b1e1fe0c Use HW independant overrideable defines to condition ADC V5 sensing & publishing
Use ADC_SCALED_V5_SENSE as apposed to legasy ADC_5V_RAIL_SENSE to populate
    voltage5V_v
    Then Scale the DN based on an overridable ADC_V5_V_FULL_SCALE value
2017-01-21 11:45:36 +01:00
David Sidrane
a5ec920756 Provide overridable default ADC Full scale Voltage and Scaling factors
This add the ability to override the defaults ADC values by
   defining values in board_config.h
2017-01-21 11:45:36 +01:00
David Sidrane
43c1237d00 On lis3mdl use the bus setting to return internal/external
Removed asssumtion that all HW other then PX4v1 has lis3mdl on
  an external i2c bus. Use the actual value of the bus the device
  was found and instanced on to return the result of
  MAGIOCGEXTERNAL ioctl
2017-01-21 11:45:36 +01:00
Lorenz Meier
084e714f62 Mixer: Fix yaw throttle adjustment
When a motor hits a limit we only want to lower the collective throttle as much as the total limit, not per motor hitting the limit.
2017-01-21 08:33:51 +01:00
Paul Riseborough
1d66d4b051 sensors: Allow for difference in temperature readings across sensors
We need to track the temperature change in each sensor instance individually when using it as basis for publication.
2017-01-21 08:31:56 +01:00
Larry Wang
1beb2911e2 init shmem early to avoid random crash in fastrpc (#6407)
* init shmem early to avoid possible crash

* fix_code_style

* Keep the initialziation to NULL, remove the duplicate memory allocation
2017-01-21 08:30:46 +01:00
Michael Schaeuble
7aea2ca030 BebopFlow: Add V4L2 interface and image functionality 2017-01-20 23:09:13 +01:00
Michael Schaeuble
f572752412 BebopFlow: Add initial PX4 app and structure 2017-01-20 23:09:13 +01:00
Lorenz Meier
27fca51b05 Update DF 2017-01-20 23:09:13 +01:00
Michael Schaeuble
85aa710414 BebopRangeFinder: Integration into build and starup 2017-01-20 23:09:13 +01:00
Michael Schaeuble
6cb659c8ef BebopRangeFinder: Add DF wrapper for Bebop's height sensor 2017-01-20 23:09:13 +01:00
David Sidrane
1d4ae4c683 Allows a board config to override the number of partitions and names
A board_config may define BOARD_HAS_MTD_PARTITION_OVERRIDE to
   uses it's own number of partitions and names.

   If a BOARD_HAS_MTD_PARTITION_OVERRIDE is not defined
   the hardcoded original values of fs/mtd_params &
   /fs/mtd_waypoints are used.

on an mtd device.
2017-01-20 22:55:04 +01:00
David Sidrane
487fbdf009 Use BOARD_EEPROM_WP_CTRL signal to control EEPROM WP signal if defined
Erases and write operations will use the BOARD_EEPROM_WP_CTRL
  macro to remove the Write protection and restore it.
2017-01-20 22:55:04 +01:00
David Sidrane
44cb1afa4d Provide an overidable nop default for BOARD_EEPROM_WP_CTRL
To simplify integration of an EEPROM device with a Write Protect
  control pin, we add an overidable BOARD_EEPROM_WP_CTRL macro
  the does nothing.

  A board that provids the GPIO for WP should define
  BOARD_EEPROM_WP_CTRL(_protected_true) that will set the WP GPIO
  to the Protected state when passed true.
2017-01-20 22:55:04 +01:00
David Sidrane
9002581ad4 Fixes the missing CONFIG_ prefix on RAMTRON_WRITEWAIT
This is an intrim nuttx patch that fixes the missing CONFIG_
  prefix on RAMTRON_WRITEWAIT. PR submitted upstream. This will
  be in affect until the next uptake of upstream NuttX
2017-01-20 22:53:56 +01:00
Janis Dzerve
3c270ae2a8 simulator: Do not kill every process with string 'px4' in the name 2017-01-20 09:41:16 +01:00
José Roberto de Souza
6bcf9266dc aerofc: Correctly enable UART driver for UART5(Telemetry port)
UART4 and UART5 are not USART instances.
2017-01-20 08:49:17 +01:00
David Sidrane
d42f8f4745 BugFix:Prevent drv_led_pwm passing a value of 0 to px4_arch_configgpio
This prevents the meta value of 0 => not used from being passed to
  px4_arch_configgpio. As this would map to PORTA|PIN0 and is not
  the intended configuration.
2017-01-19 22:18:04 +01:00
David Sidrane
3ea5a24924 crazyflie BugFix:Prevent a value of 0 being passed to px4_arch_configgpio
This prevents the meta value of 0 => not used from being passed to
  px4_arch_configgpio. As this would map to PORTA|PIN0 and is not
  the intended use.
2017-01-19 22:18:04 +01:00
Beat Küng
c1b1d03515 mc_att_control: use a maximum of 3 gyros 2017-01-19 19:24:52 +01:00
Beat Küng
21a3e4d36a mc_att_control: fix out-of-bounds access if system has multiple gyros 2017-01-19 19:24:52 +01:00
Beat Küng
ab9e0aa524 sensors temp compensation: do an orb_copy to get the driver ID
This removes the necessity, that the driver class ID matches the uorb topic
instance.

Also improve error handling & reporting
2017-01-19 19:24:52 +01:00
Beat Küng
41d220ac2d sensors: reorder initialization calls
needed for the next commit
2017-01-19 19:24:52 +01:00
Beat Küng
f6f145cbe8 sensors & mc_att_control: increase stack sizes due to recent changes 2017-01-19 19:24:52 +01:00
Beat Küng
fd48d9c190 sensors: print status of temp compensation with 'sensors status' 2017-01-19 19:24:52 +01:00
Beat Küng
916a04bc56 sensors temp compensation: use SENSOR_COUNT_MAX instead of just 3 2017-01-19 19:24:52 +01:00
Lorenz Meier
a3515893f3 ROMFS: Disable AR Drone and micro PCB quad for frames not supporting them 2017-01-19 19:24:52 +01:00
Beat Küng
117826a31f sensors temp compensation: refactor into a separate class
- reduces some code duplication
- provides clear API & separation for temp compensation

additional changes:
- added timestamp to sensor_correction topic
- reduced its publication rate, to only when voting index or scales or
  offsets change (if there is more than 1deg change in temperature)
2017-01-19 19:24:52 +01:00
Beat Küng
23d278cc43 sensors temp compensation: minor cleanup 2017-01-19 19:24:52 +01:00
Beat Küng
f38843278d voted_sensors_update: make msl_pressure static const 2017-01-19 19:24:52 +01:00
Beat Küng
e1ff6af792 mc_att_control_main: initialize _sensor_corrections properly 2017-01-19 19:24:52 +01:00
Beat Küng
535b1ea0dd voted_sensors_update: simplify accel & gyro poll methods 2017-01-19 19:24:52 +01:00
Lorenz Meier
6209cd0e57 Fix MPU6050 2017-01-19 19:24:52 +01:00
Lorenz Meier
62f95931ed MPU9250: Fix device ID 2017-01-19 19:24:52 +01:00
Lorenz Meier
1134f1a868 Fix sensor IDs 2017-01-19 19:24:52 +01:00
Beat Küng
7d5cd02c70 mc_att_control_main: fix bound check for gyro instance 2017-01-19 19:24:52 +01:00
Beat Küng
bbd47389e0 voted_sensors_update: fix copy paste naming mistake 2017-01-19 19:24:52 +01:00
Beat Küng
0765ed552c sensor_correction.msg rename {gyro,accel,baro}_select to match uORB convention 2017-01-19 19:24:52 +01:00
Lorenz Meier
7326fea142 Driver compile fixes 2017-01-19 19:24:52 +01:00
Lorenz Meier
71fa064bc7 MPU6K: Fix device ID 2017-01-19 19:24:52 +01:00
Lorenz Meier
171c321acc MS5611: Fix device ID 2017-01-19 19:24:52 +01:00
Lorenz Meier
9860a17e25 MPU6K: Fix device ID 2017-01-19 19:24:52 +01:00
Lorenz Meier
479e6937d6 LSM303D: Fix devid 2017-01-19 19:24:52 +01:00
Lorenz Meier
36e4b8e5e8 LPS25H: Fix devid 2017-01-19 19:24:52 +01:00
Lorenz Meier
79caa30bd5 L3GD20: Fix devid 2017-01-19 19:24:52 +01:00
Lorenz Meier
6e2c43b3d9 BMP280: Fix devid 2017-01-19 19:24:52 +01:00
Lorenz Meier
a42932033e BMI160: Fix devid 2017-01-19 19:24:52 +01:00
Lorenz Meier
00d26b75e9 MC att control: Harden against incorrect indices 2017-01-19 19:24:52 +01:00
Lorenz Meier
905c091f8c MAVLink receiver: Use fake device ID 2017-01-19 19:24:52 +01:00
Lorenz Meier
9f0d588989 Simulated drivers: Use fake device IDs 2017-01-19 19:24:52 +01:00
Lorenz Meier
b1e4291590 Sensor messages device IDs: These remain unsigned 2017-01-19 19:24:52 +01:00
Lorenz Meier
49a29ee775 Fix up DriverFramework wrappers, bring them back to the real device ID they have already in-built 2017-01-19 19:24:52 +01:00
Paul Riseborough
eac6dfed3c mc_att_control: Sync attitude loops to gyro data
Sync the attitude controller to the raw gyro data to remove the latency in the rate loops caused by the sensor and estimator modules.
Attitude data latency will increase as it will be from the previous EKF update, however attitude loops are less latency sensitive.
Thermal compensation and bias data will be from the previous frame.
2017-01-19 19:24:52 +01:00
Paul Riseborough
b2113b9abe cmake: Reduce flash size for px4fmu-v2 build
Removes Iridium SBD support
2017-01-19 19:24:52 +01:00
Paul Riseborough
edbe68f833 posix drivers: use orb instance as surrogate sensor ID for simulated IMU 2017-01-19 19:24:52 +01:00
Paul Riseborough
e84a189380 drivers: use driver class instance as surrogate sensor ID for gyro and accelerometer 2017-01-19 19:24:52 +01:00
Paul Riseborough
60c12aaa36 msg: change sensor device ID's to signed integers
Required to use driver class instance as surrogate sensor ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
0485c2b94a sensors: add baro pressure temperature compensation and reporting 2017-01-19 19:24:52 +01:00
Paul Riseborough
c21b4aaf2e posix drivers: Populate baro device ID
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
0ba31b521c uavcan: Populate baro device ID
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
677616ed83 mavlink: Populate baro device ID
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
5e53a5425a drivers: Populate baro device ID
TODO - use unique HW ID
2017-01-19 19:24:52 +01:00
Paul Riseborough
137bd73ea1 msg: add reporting of baro sensor corrections
Also improve documentation
2017-01-19 19:24:52 +01:00
Paul Riseborough
c2fc283fdb sensors: Update single axis temp comp method to 5th order
This allows future use with baro sensors that require a higher fit order
2017-01-19 19:24:52 +01:00
Paul Riseborough
6a78df7fa0 ekf_att_pos_estimator: Publish control state gyro bias 2017-01-19 19:24:52 +01:00
Paul Riseborough
f8cef1e9ab attitude_estimator_q: populate control state gyro bias data
Populate with zeros.
TODO provide estimate.
2017-01-19 19:24:52 +01:00
Paul Riseborough
27e6f07485 ekf2: publish control state gyro bias data 2017-01-19 19:24:52 +01:00
Paul Riseborough
28488cfcd0 msg: add gyro biases to control state message 2017-01-19 19:24:52 +01:00
Paul Riseborough
da87e3eb0a posix drivers: Populate device ID in sensor topics for simulated IMU 2017-01-19 19:24:52 +01:00
Paul Riseborough
961474f430 posix drivers: Populate device ID in sensor topics for mpu9250 2017-01-19 19:24:52 +01:00
Paul Riseborough
1009550262 posix drivers: Populate device ID in sensor topics for mpu6050 2017-01-19 19:24:52 +01:00
Paul Riseborough
48f81f24e1 posix drivers: Populate device ID in sensor topics for lsm9ds1 sensor 2017-01-19 19:24:52 +01:00
Paul Riseborough
7c9e9f31e1 drivers/mpu9250: Populate device ID in sensor topics 2017-01-19 19:24:52 +01:00
Paul Riseborough
5177866b54 drivers/mpu6500: Populate device ID in sensor topics 2017-01-19 19:24:52 +01:00
Paul Riseborough
ddda5eccd6 drivers/mpu6000: Populate device ID in sensor topics 2017-01-19 19:24:52 +01:00
Paul Riseborough
cfaef7f433 drivers/lsm303d: Populate device ID in sensor topics 2017-01-19 19:24:52 +01:00
Paul Riseborough
14e2ea78b3 drivers/l3gd20: Populate device ID in sensor topic 2017-01-19 19:24:52 +01:00
Paul Riseborough
9014443d77 drivers/bmi160: Populate device ID in sensor topics 2017-01-19 19:24:52 +01:00
Paul Riseborough
f12820755f msg: Add device ID to sensor_baro topic 2017-01-19 19:24:52 +01:00
Paul Riseborough
6a160ecad3 msg: Update documentation for gyro and accel sensor topics 2017-01-19 19:24:52 +01:00
Paul Riseborough
63f032832f Add prototype IMU temperature compensation
Enabled using TC_A_ENABLE and TC_G_ENABLE parameters
Disabled by default.
IMU offsets and scale factors for selected sensor published to sensor_correction topic
TODO Parameter storage method is cumbersome
2017-01-19 19:24:52 +01:00
Paul Riseborough
9599f58c5d msg: add uORB topic for IMU sensor corrections 2017-01-19 19:24:52 +01:00
Paul Riseborough
4f1b748786 msg: Fix documentation errors in sensor_combined 2017-01-19 19:24:52 +01:00
Matthias Grob
db581fa5e8 mc_pos_control: hotfix for possible thrust below minimum thrust setting
Hotfix after a crash because of a heavily negative desired thrust that got clipped to 0 by the mixer.
0 thrust meant no more attitude tracking.
2017-01-19 18:05:57 +01:00
David Sidrane
23eb07ff3e Only perform GIOP operations on defined IO (#6381)
Check if the table entry fo the IO requested is defined
   so that 0 is never passed to px4_arch_gpioXXXX functions.
2017-01-18 09:53:16 -10:00
Beat Küng
e7db0ed098 test_mixer & mixer: use memmove instead of memcpy
Both, src & dst use the same array, thus potentially overlapping.
Behavior of memcpy in that case is undefined.
2017-01-18 18:23:42 +01:00
Chris Lovett
33a307873a Enable rc mode change switch to override offboard mode. This is a safety feature, in case offboard control goes crazy, user can always regain control by switching modes to stabilize, or alt hold or position hold, however they have configured the mode change RC switch. 2017-01-18 18:15:58 +01:00
Vlad Radulescu
ec104bb7ac Corrected a tiny spelling mistake and modifed the PPM_MIN_CHANNELS check so it accepts a minimum of 5 channels. It seems that was the initial intention. 2017-01-17 23:40:31 -08:00
David Sidrane
569b20d184 FMUv5 Fixed hardfault log
F7 was missing in the CONFIG_xxx that controlled enableing the
  hardfault_log boot code that can save the fault log
2017-01-17 23:11:20 -08:00
Henry Zhang
0fdf3b13e8 MindPX: disable USART3 flow control 2017-01-17 23:10:43 -08:00
Sander Smeets
ba10db06c2 Code formatting 2017-01-17 03:14:26 -08:00
Sander Smeets
d0dad4ad7d Indenting 2017-01-17 03:14:26 -08:00
Sander Smeets
de039ca870 VTOL back transition acceptance radius calculation 2017-01-17 03:14:26 -08:00
BharathR
496dee5d2d Fixed PX4 sanity test script (removed a check msg) (#6354)
* Fixed build error in Snapdragon Flight legacy driver mode (partially)

* Fixed build error in eagle_legacy_default mode (px4muorb.h generation issue)

* Fixed the snapdragon flight sanity test script (default and legacy driver modes)

* Fixed PX4 sanity test script (removed a check msg)
2017-01-16 13:10:31 -08:00
Lorenz Meier
7fd06ee913 MAVLLink simulator interface: Simulate minimum airspeed noise 2017-01-16 08:26:37 -08:00
Lorenz Meier
b8598c4407 Sensors: Adjust airspeed fail checks 2017-01-16 08:26:37 -08:00
Lorenz Meier
a13082bfed commander: Widen pre-flight check for airspeed 2017-01-16 08:26:37 -08:00
Lorenz Meier
b29e0040f1 ETS airspeed: Work around weird choice of manufacturer zero level cutoff 2017-01-16 08:26:37 -08:00
wangxdflight
67c3102db4 updated to remove a compilation flag check as orb_exists() is already supported 2017-01-16 08:25:58 -08:00
wangxdflight
b693e29d64 enable px4 flight for excelsior(legacy) 2017-01-16 08:25:58 -08:00
Lorenz Meier
12767c8538 MC position controller: Stop holding position once ground contact is established.
This ensures the system does not tip over on landings. Tested in SITL with a GPS drift model.
2017-01-16 08:25:26 -08:00
Matthias Grob
5b54d78128 land detector: changed minimum throttle threshold to have useful landing detection in real world scenarios 2017-01-16 08:25:26 -08:00
Matthias Grob
39f9647291 mc_pos_control: fixed float literals and commented calculations 2017-01-16 08:25:26 -08:00
Matthias Grob
f95fb0f20f land detector: commented takeoff throttle values for each mode 2017-01-16 08:25:26 -08:00
Matthias Grob
5f3cbbbbc2 mc_pos_control: changed thrust calculation to 3D projection onto body z axis
until now the desired thrust was simply the absolute value of the thrust setpoint vector
but a multicopter is only capable of producing thrust in its (negative) body z axis
this leads to excess thrust during attitude tracking errors

one important use case is:
trying to land with minimal thrust in NED z axis against gravity
but the position controller still correcting some small horizontal estimation errors
then this prevents unwanted thrust in a completely wrong direction
2017-01-16 08:25:26 -08:00
Julian Oes
d63db203ba mc_pos_control: don't publish attitude sp 2x 2017-01-16 08:25:26 -08:00
Matthias Grob
7ab2958757 land_detector: added takeoff throttle threshold
if we control manually and are still landed, we want to stay idle until the pilot rises the throttle
2017-01-16 08:25:26 -08:00
Matthias Grob
5529023ec1 mc_pos_control: added feed forward hover thrust
the velocity controller was misusing the integral part to account for the constant gravitational force offset
the hover throttle from the parameter is now is now directly used as feed forward for the thrust in world z direction
the integrator compensates for inaccurate paarameter but should now be idealy zero
2017-01-16 08:25:26 -08:00
FantasyJXF
3f94818dcf spelling error;
as it is
2017-01-16 03:11:03 -08:00
Daniel Agar
73b31c031f cmake nuttx rsync copy only use relative paths
- this is to work around confusion between cygwin and windows native
   paths
 - closes #6332
2017-01-16 02:16:23 -08:00
BharathR
dafa838e2f Fixed Snapdragon Flight sanity test script (default and legacy driver modes) (#6323)
* Fixed build error in Snapdragon Flight legacy driver mode (partially)

* Fixed build error in eagle_legacy_default mode (px4muorb.h generation issue)

* Fixed the snapdragon flight sanity test script (default and legacy driver modes)
2017-01-16 00:20:59 -08:00
Henry Zhang
e81548bdb9 MindPX: Fix for hmc5883 rotation 2017-01-16 00:19:03 -08:00
Lorenz Meier
50002a0ff6 Update EEKF2 to match ecl updates 2017-01-15 01:57:38 -08:00
Lorenz Meier
7652a3737c Update ECL 2017-01-15 01:57:38 -08:00
Lorenz Meier
1c42cea28e MAVLink: Ignore bogus mission item requests silently 2017-01-15 01:47:10 +01:00
James Goppert
8e297022e6 Update px4tools api for mission test. 2017-01-14 18:55:39 -05:00
Daniel Agar
d8f423aa2b travis-ci run check_format 2017-01-14 18:31:09 -05:00
Daniel Agar
207f08aa15 apps.cpp and ekf_att_pos_estimator readability braces fix 2017-01-14 18:31:09 -05:00
Daniel Agar
6961a513c7 clang-tidy readability-braces-around-statements 2017-01-14 18:31:09 -05:00
Daniel Agar
fedc1279e4 travis-ci fix coverity build (#6338) 2017-01-14 17:36:51 -05:00
Lorenz Meier
adcf563460 Update README 2017-01-14 21:04:10 +01:00
Lorenz Meier
b6e18a1479 Mixer test: More instrumentation to catch repro cases in CI 2017-01-14 20:42:54 +01:00
mazahner
06d28b2635 Rework Includes during the uorb message generation
each CMakeFile that generates parameters should add its path to the msg_include_path
which will then be handled in the px_generate_uorb_topic_files.py
2017-01-14 10:07:12 -08:00
Nicolae Rosia
6ffffe3367 Remove invalid eigen reference
This is a left over from cleanup 0acf6db64f0d6a79998879517519df628e388023

Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
2017-01-14 10:02:44 -08:00
Lorenz Meier
d1fcd8dd8e Fix code style for mavlink main 2017-01-14 07:47:03 -08:00
Lorenz Meier
557a57d51a Coverity: Fix RC tests 2017-01-14 07:47:03 -08:00
Lorenz Meier
521b89b1ce MAVLink: Protect against illegal length indication of RTCM data 2017-01-14 07:47:03 -08:00
Lorenz Meier
26625b3a5d Servo test: Fix resource leak 2017-01-14 07:47:03 -08:00
Lorenz Meier
a905babe95 PPM LoopbackTest: Fix resource leak 2017-01-14 07:47:03 -08:00
Lorenz Meier
3d31914eb5 Tone alarm sim: Fix resource leak 2017-01-14 07:47:03 -08:00
Lorenz Meier
1549f5a5d1 sdlog2: Fix string termination 2017-01-14 07:47:03 -08:00
Lorenz Meier
3eb7caba4f MAVLink param handling: Exclude Coverity false positives 2017-01-14 07:47:03 -08:00
Lorenz Meier
fc2970b309 Helicopter mixer: Fix out of bounds checks 2017-01-14 07:47:03 -08:00
Lorenz Meier
4939e42c0f MAVLink main: Fix resource leak for non-NuttX cases 2017-01-14 07:47:03 -08:00
Lorenz Meier
b9e32d7a34 mixer test: Fix string handling
Some strings were not enforcing NUL termination.
2017-01-14 07:47:03 -08:00
Lorenz Meier
1155a4725b PX4IO: Fix mixer load corner case in string termination 2017-01-14 07:47:03 -08:00
Lorenz Meier
6927fcb5c0 Mixer test: Fix string termination corner case 2017-01-14 07:47:03 -08:00
Daniel Agar
9605507c87 travis-ci install jinja2 (#6333) 2017-01-14 10:10:15 -05:00
Daniel Agar
8caf6c54fa Makefile cleanup and travis-ci s3 deploy (#6329)
- pulls more of the travis-ci s3 deploy into the repo so we can potentially migrate to another CI system
 - fixed the sizes output and added verbose compiler version to cmake (#6322)
 - fixed filenames for firmware uploaded to s3 (was broken by the changes yesterday)
 - fixed some broken git version display in cmake
 - Makefile organization
 - simplified .travis.yml
 - added a print to know which config the nuttx patch was being applied to
 - docker_run.sh now respects PX4_DOCKER_REPO for setting the docker image, but defaults to the good production nuttx image
2017-01-14 09:38:28 -05:00
David Sidrane
c235b44a90 FMUv5 define ADC usage 2017-01-14 02:26:48 -08:00
Daniel Agar
df5d0ba8b9 airspeed cal more descriptive error message (#6324) 2017-01-13 17:26:27 -05:00
ChristophTobler
967197adee update sitl_gazebo to used flow with limited ouput rate 2017-01-13 04:34:57 -08:00
James Goppert
b1173f1f62 Fix cmake version detection from git tag. 2017-01-13 01:11:14 -08:00
James Goppert
249d7f00ce Fix s3 deployment bug. 2017-01-13 01:11:14 -08:00
James Goppert
1877df7917 Fix Bootloader install files issue. 2017-01-13 01:11:14 -08:00
James Goppert
a0fff97fd2 Moved deployment logic to python scripts. 2017-01-13 01:11:14 -08:00
James Goppert
50159cabbe Automatically set cmake version. 2017-01-13 01:11:14 -08:00
James Goppert
73462dc5e5 Add xml to cpack packaging. 2017-01-13 01:11:14 -08:00
James Goppert
434dddedea Changes to add px4fmu-v2_lpe config. 2017-01-13 01:11:14 -08:00
Andreas Antener
338804606a Fixed-wing: allow mission takeoff 2017-01-13 00:18:08 -08:00
Beat Küng
78c0186ff8 fix posix_rpi_native.cmake: add __DF_RPI define
Needed for the DriverFramework. Fixes the error:
15050 SPIDevObj start failed
15142 DevObj start failed
15185 Unable to open the device path:
ERROR [df_lsm9ds1_wrapper] LSM9DS1 start fail: -1
ERROR [df_lsm9ds1_wrapper] DfLsm9ds1Wrapper start failed
Command 'df_lsm9ds1_wrapper' failed, returned -1
2017-01-13 00:17:10 -08:00
David Sidrane
79d682e740 Master uavcan mainline (#6313)
* Update libuavcan to upstream master with PX4 contrib for NuttX 7.16+

* Release any 64B blocks not needed by usavcan after FW server is stopped.

  We simply call the srrink methode after the server stop.
  See https://github.com/PX4/Firmware/pull/3005#issue-111885687
  for backgound
2017-01-12 13:28:38 -10:00
CarlOlsson
0d3fd77ba9 mixer: Removed the pitch offset in the mixer file for the TBS Caipirinha since it should be handled by either hardware installation or trim parameter
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2017-01-12 13:35:30 -08:00
Lorenz Meier
cf5f5bfad9 Fix code style for param 2017-01-12 10:57:11 -08:00
Mark Charlebois
b14959e165 Fixed param output for QuRT
QuRT doesn't support printf, so the messages don't appeat in mini-dm.

This problem is also present in many other parts of the PX4 code.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-12 10:57:11 -08:00
David Sidrane
ba2efff70f Updated libuavcan submodule with upstream ci fix.
This commit does not effect PX4 it just points to a commit
   that fixes a CI failure introduced in the changes upstrem to
   support the nuttx upgrade to 7.16+
2017-01-12 10:53:48 -08:00
Daniel Agar
056cd30629 Servo test: fix style 2017-01-12 03:02:05 -05:00
Julian Oes
c91b36bf1f px_uploader.py: try to follow PEP8 (#6278)
This fixes some non-Pythonic things and unneccessary semicolons.

Still to fix are line-length and multiple spaces before operators.
2017-01-12 02:51:06 -05:00
Lorenz Meier
a8902472e4 Params: Fix the description text
The MAIN and AUX outputs had the same description which could confuse users.
2017-01-12 02:40:56 +01:00
Lorenz Meier
61d7f22aba Servo test: Ensure we only close an open FD 2017-01-12 02:31:15 +01:00
BharathR
8c7f810cc2 Fixed build error in eagle_legacy_default mode (px4muorb.h generation issue) 2017-01-11 17:12:27 -08:00
bharathr
ee0b0f2a3e Fixed build error in Snapdragon Flight legacy driver mode (partially) 2017-01-11 17:12:27 -08:00
David Sidrane
ae946be046 Changes to RCC HSI and FLASH driver
STM32F4 does not require the HSI to erase or program FLASH
   The HSI needs to be left on until a new clock source is chosen.
   (we leave it on all the time)
2017-01-11 17:11:22 -08:00
Daniel Agar
751909cd4e clang readability-braces-around-statements (#6298) 2017-01-11 17:01:51 -05:00
Beat Küng
48c5ec54bb commander: make sure all code paths return an (n)ack to MAV_CMD_PREFLIGHT_CALIBRATION 2017-01-11 16:25:04 +01:00
Dennis Mannhart
8cd913c148 gps.cpp: add gps baudrate 230400 to qurt 2017-01-10 11:49:05 +01:00
ChristophTobler
21587bf8d3 update submodule sitl_gazebo 2017-01-10 10:09:38 +01:00
Lucas De Marchi
26d107923b motor_test: fix use of negative channel 2017-01-10 08:34:53 +01:00
Lucas De Marchi
c3b462b3d6 motor_test: fix getopt call
This was trying to use optarg when it should instead use myoptarg.
2017-01-10 08:34:53 +01:00
Mark Whitehorn
71baa4b54a Update README.md 2017-01-09 15:42:58 -08:00
Mark Charlebois
f529069368 Fixed code format issues
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
00a6fab5a2 Converted cout to printf
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
d0c379e371 Removed inconsistent static definition
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
b9ba673009 Added wait_for_topic builtin command
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
830eb8528e fixed merge conflict
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
b08e70b65a Enabled topic_unadvertised
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
9834155d09 Removed extra debug
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
b556528984 Fixed wait_for_topic and orb_exists
orb_exists was not updating the DSP topics on apps proc side

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Mark Charlebois
62a3e07423 orb_exists support for muorb
Also added builtin command wait_for_topic

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2017-01-09 15:41:54 -08:00
Daniel Agar
dc787830b5 circleci run tests under code coverage (#6273)
* use regular optimization levels for the code coverage build.
 * the mixer test fails intermittently when built without optimization
2017-01-09 16:08:40 -05:00
Beat Küng
768485c083 jmavsim: update submodule
- enable baro noise
- add lat/lon to ground truth
2017-01-09 11:19:45 +01:00
Beat Küng
30f80515ec fix logger: sscanf was used wrong for custom topics file
using scanf with %s reads until the first whitespace, which included the
comma (as per C standard and tested on linux). Behavior on NuttX differs.

This makes it work on both Linux and Nuttx.
2017-01-09 11:09:37 +01:00
Daniel Agar
b8afc97959 clang-tidy config file .clang-tidy (#6277) 2017-01-08 21:55:24 -05:00
Daniel Agar
defaf7f5e5 docker run helper script (#6270) 2017-01-08 13:45:28 -05:00
matanhavi
7df3b4ae71 check_submodules recursevely go over all submodules (#6272)
* Recursevely go over all submodules
Using git submodules command going over all the submodules and not only the ones on the whitelist
and fixed white spaces
2017-01-07 18:55:45 -05:00
Daniel Agar
c9956e25b4 mavlink fix code style 2017-01-07 01:03:18 -05:00
Daniel Agar
c280358e32 navigator fix code style 2017-01-07 01:03:18 -05:00
James Goppert
be14c11589 Fix hook install script to create hook dir if it doesn't exist. (#6269) 2017-01-06 19:28:03 -05:00
Daniel Agar
48e7c784e7 remove px4_model targets from all 2017-01-06 11:56:27 +01:00
Beat Küng
9b3803f71c px_process_params.py: fix for empty cmake scope
Hotfix for cmake configs which use include() for the module list (eg.
posix_sitl_ekf2.cmake or snapdragon). In that case the cmake parser did
not find any modules and thus the param list was empty.

The proper fix will be to parse the include() statements correctly.
2017-01-06 11:52:26 +01:00
Bart Slinger
ff560e8c16 Blade130X heli meta-data 2017-01-06 10:01:46 +01:00
Stephan Brown
5a6084de07 param: Add a missing include. 2017-01-06 09:58:58 +01:00
Stephan Brown
e57f6221b2 Rearrange parameter unit tests so they are in alphabetical order. 2017-01-06 09:58:58 +01:00
Stephan Brown
67a484ac34 Make parameter generation also depend on the scripts that run. Address some review comments. 2017-01-06 09:58:58 +01:00
Stephan Brown
92b2395ff6 param: Fix another off by 1 error and a formatting issue. 2017-01-06 09:58:58 +01:00
Stephan Brown
bf57e86dc2 param: Fix an off by 1 issue and some style fixes. 2017-01-06 09:58:58 +01:00
Stephan Brown
fe8deeeed9 param: Add a system command for finding parameters by name. 2017-01-06 09:58:58 +01:00
Stephan Brown
99228bdeb1 param: Use utarray_find when looking for changed parameters and use a binary search for finding param handles by name. 2017-01-06 09:58:58 +01:00
Stephan Brown
e90bf8f8e5 px_generate_params: Sort parameters by name after parsing the xml file. 2017-01-06 09:58:58 +01:00
Andreas Antener
272f1dd4b9 Firefly6: config meta data update and some small param changes 2017-01-05 06:47:40 +01:00
Daniel Agar
b721f5fc7c fw_att_control init all fields and delete unused 2017-01-04 16:08:20 -05:00
Daniel Agar
67975d68bb tailsitter_recovery initialize yaw_ff 2017-01-04 16:08:20 -05:00
Daniel Agar
ab52bf0391 attq remove unused perf counters 2017-01-04 16:08:20 -05:00
Daniel Agar
525448de93 navigator follow target add harmless float cast 2017-01-04 16:08:20 -05:00
Daniel Agar
61e48e2286 navigator comment fall through in case 2017-01-04 16:08:20 -05:00
Daniel Agar
b1d537c603 launchdetection initiailize motorDelayCounter 2017-01-04 16:08:20 -05:00
Daniel Agar
a7e38e1119 Makefile rename checks_alt to alt_firmware 2017-01-04 11:16:28 -05:00
Lorenz Meier
45c1ad830f Autostart: Do not abort boot if sensor driver fails to start 2017-01-04 10:44:08 +01:00
Lorenz Meier
36ba5eb741 Control lib: Fix string handling corner cases
strncpy() does not enforce NUL-termination, but snprintf() does. So we need to ensure all strings are terminated. Another issue was the use of the wrong length parameter for these functions, resulting in the limiting arguments not being applied to the right length.
2017-01-04 10:14:25 +01:00
Daniel Agar
d5082251d9 controllib decrease blockNameLengthMax to 40 2017-01-04 10:04:30 +01:00
Daniel Agar
b3c741715a controllib block use consistent name length
- coverity CID 12524, 12542, 12548, 12550
2017-01-04 10:04:30 +01:00
Lorenz Meier
256222d44d HMC5883: Remove output on driver level. Reporting should be done by the caller, not inside the driver. 2017-01-04 09:40:50 +01:00
mazahner
6b0a6fb38f again remove unrequired output 2017-01-04 09:29:52 +01:00
mazahner
f0c393baf6 remove unnecessary printfs 2017-01-04 09:29:52 +01:00
mazahner
4e9c986806 remove optional_files dependency
This is a remainder of a rebase onto master
2017-01-04 09:29:52 +01:00
mazahner
6fe9b8e543 use CmakeLists scope to generate te XML file
- the only difference really is, that scope (the configuration.cmake) is already passed
  to px_process_params via the argument --scope. The Paths in --scope are evaluated w.r.t
  the path to src provided via the -s /--src-path argument.
- if no --scope is proveided. the Old scheme by simply walking the full --src-path directory
  is applied
2017-01-04 09:29:52 +01:00
Lorenz Meier
c72de874d6 Chance airframe and parameter meta generation to FMUv4 2017-01-04 09:29:19 +01:00
Andreas Antener
cc1989b180 Convergence: updated param from todays flights 2017-01-03 20:32:33 -05:00
Andreas Antener
2416e523e4 Convergence: normalize the mixer 2017-01-03 20:32:33 -05:00
Andreas Antener
1de7636fad Tiltrotor: gradually reduce roll control with time or airspeed instead of simply switching it off 2017-01-03 20:32:33 -05:00
Andreas Antener
f2db8d0106 VTOL: added missing open loop time parameter 2017-01-03 20:32:33 -05:00
Andreas Antener
364a57016f VTOL: added config for the E-flite Convergence 2017-01-03 20:32:33 -05:00
Andreas Antener
c416fc3fa0 Tiltrotor:
- added open-loop transition time for airspeed-less flying
- added ramping down the back motors during forwards transition
2017-01-03 20:32:33 -05:00
Andreas Antener
35740b0b59 Mixer test: fix paths for nuttx 2017-01-03 20:32:33 -05:00
Lorenz Meier
3229c4183a Mixer test: Condition strncpy properly 2017-01-03 20:32:33 -05:00
Lorenz Meier
9e95d88574 Use system define for path length buffer 2017-01-03 20:32:33 -05:00
Lorenz Meier
2cabc4866a PX4IO: Use mixer header for buffer length 2017-01-03 20:32:33 -05:00
Lorenz Meier
c6b6d04a19 UART tests: Move shell and fix config restore command 2017-01-03 20:32:33 -05:00
Lorenz Meier
0d5089e3bf Mixer test: Improve portability 2017-01-03 20:32:33 -05:00
Lorenz Meier
5247f17576 Mixer test: use real defines from IO firmware
We use the real defines now and test them against every mixer on the system. This means we should catch transfer errors now before even hitting master.
2017-01-03 20:32:33 -05:00
Lorenz Meier
d401252c9e IO firmware: Convert magic numbers to defines
This is necessary to allow more and better unit testing.
2017-01-03 20:32:33 -05:00
Lorenz Meier
e395c1f3d7 ROMFS: Limit test mixer to max 4 inputs 2017-01-03 20:32:33 -05:00
Andreas Antener
a5a5694a5e Mixer tests: updated vtol2 test mixer to the one that actually failed before 2017-01-03 20:32:33 -05:00
Lorenz Meier
d0dbddea1b Extend mixer test case with complex mixer 2017-01-03 20:32:33 -05:00
Lorenz Meier
51a89b74fb VTOL mixer: Use formatting without workarounds for system test 2017-01-03 20:32:33 -05:00
Lorenz Meier
b3ce3cbaff Simple mixer: Remove incorrect pre-parser and replace with fixed central implementation 2017-01-03 20:32:33 -05:00
Lorenz Meier
dd05ff5156 Multirotor mixer: Remove incorrect pre-parser and replace with fixed central implementation 2017-01-03 20:32:33 -05:00
Lorenz Meier
ff18140cf4 Mixer: add string wconditioning check.
This introduces a correctly designed pre-check for the input parsers. This fixes the mixer unit test and should fix all issues occuring on real hardware.
;
2017-01-03 20:32:33 -05:00
Lorenz Meier
0810bcfe8e Polish mixer test, remove any too verbose output 2017-01-03 20:32:33 -05:00
Lorenz Meier
c27728a7aa Test VTOL test mixers 2017-01-03 20:32:33 -05:00
Lorenz Meier
2eda90906d Add VTOL2 test mixer 2017-01-03 20:32:33 -05:00
Lorenz Meier
01bbd3976b Add VTOL1 test mixer 2017-01-03 20:32:33 -05:00
Lorenz Meier
fb8243d5e1 Mixer test: Fix test, failing right now but showing the real issues 2017-01-03 20:32:33 -05:00
Lorenz Meier
8cc261a148 Slight improvements in unit tests 2017-01-03 20:32:33 -05:00
Daniel Agar
bae3f36900 circleci temporarily disable code coverage (#6248) 2017-01-03 18:16:10 -05:00
Bart Slinger
a7eed46062 Update vtol_att_control_main.cpp
Fixes https://github.com/PX4/Firmware/issues/6246
2017-01-04 00:02:53 +01:00
Dennis Mannhart
d124de5045 px4.config: add spektrum_rc to startup
added line at the end
2017-01-03 20:54:06 +01:00
Beat Küng
ab3b68cf18 ORB_PRIO: set ORB_PRIO_MIN to 1 instead of 0
This is needed as the sensors app assumes a value of 0 means uninitialized.

Follow-up to 'Sensors app: Fix consistency checks', a6696d339d
2017-01-03 20:53:26 +01:00
Beat Küng
000d965a5e fix test_uart_loopback: 0 is a valid file descriptor 2017-01-03 14:44:45 +01:00
Daniel Agar
a9d3f0dc73 update gps driver submodule 2017-01-03 14:44:45 +01:00
Lorenz Meier
750ab87303 GPS Sim: Fix destructor 2017-01-03 14:44:45 +01:00
Lorenz Meier
9cfd46b87c Airspeed sim: Fix reset function 2017-01-03 14:44:45 +01:00
Lorenz Meier
4fcb4cf0fd MAVLink: Fix FTP file path handling
This was a real issue for long paths and not a flight safety issue for regular users, but could have been an issue for developers trying to use FTP on very deep nested file systems
2017-01-03 14:44:45 +01:00
Lorenz Meier
66226fb754 Land detector: Harden string handling
Due to known input this was not a real issue, but bad style.
2017-01-03 14:44:45 +01:00
Lorenz Meier
1a1522d3ff Fix RC unit test 2017-01-03 14:44:45 +01:00
Lorenz Meier
9f3fe2a802 Fix unit tests leaking resources
This was harmless but none the less is not good style and needs fixing.
2017-01-03 14:44:45 +01:00
Beat Küng
2880bb185f uavcan_main: replace std::array with a C array
Sadly, we cannot use std::array on NuttX
2017-01-03 13:25:33 +01:00
Beat Küng
59ca22ee6d px4.h: remove this include, causes compile problems on GCC 6.1.0
It causes problems because it includes px4_nodehandle.h which in turn
includes <functional>, and this is not available on NuttX
2017-01-03 10:39:55 +01:00
Beat Küng
f0c905ae43 Makefile: remove executable bit 2017-01-03 10:39:55 +01:00
Daniel Agar
c5c676cbd5 tests template remove list_builtins 2017-01-03 04:20:19 -05:00
Daniel Agar
9689163125 tests skip junit output and cmake exclude from all 2017-01-03 04:16:11 -05:00
Daniel Agar
573aed0ee8 tests coverage reorder to avoid lcov issues 2017-01-03 04:00:41 -05:00
Daniel Agar
6d4579751a tests add airspeedsim 2017-01-03 04:00:41 -05:00
Daniel Agar
d4d63b982d unittests disable optimization for coverage 2017-01-03 04:00:41 -05:00
Daniel Agar
c37d2c13e3 circleci limit coveralls submit to main repo 2017-01-03 04:00:41 -05:00
Daniel Agar
b4da337cd4 test coverage cleanup
- dataman clean exit code
 - unit test proper cleanup
 - add some level of simulated sensors for tests
 - delete unused test/standard_vtol
2017-01-03 04:00:41 -05:00
Julian Oes
a985c27ab0 navigator: reset reached flag, not reached seq
It doesn't make sense to reset the reached sequence, especially not to
false since it's an int.
2017-01-03 08:22:34 +01:00
Julian Oes
a394d148a1 navigator: don't reset current waypoint
We don't want to reset the current waypoint because this means that the
ground stations see a current waypoint of 0 if the current waypoint is
not updated e.g. when we're not in mission mode.

However, it is wrong to send 0 as the current waypoint because if we
switch back to mission mode, it will actually go to the last current
waypoint and not 0.
2017-01-03 08:22:34 +01:00
Daniel Agar
e0eada4400 travis-ci run coverity scan (#6230) 2017-01-02 23:34:45 -05:00
Daniel Agar
a0837b88a5 cmake add clang santiziers
- PX4_ASAN=1 enable address sanitizer (was MEMORY_DEBUG)
 - PX4_TSAN=1 enable thread santiizer
 - PX4_UBSAN=1 enable undefined behaviour santizier (some options off)
2017-01-02 10:14:41 +01:00
Daniel Agar
1ceb0bebb5 sitl tests don't manually stop mavlink and dataman 2017-01-02 10:14:41 +01:00
Daniel Agar
34b2fb55e6 Makefile add clang-check and clang-tidy helpers 2017-01-02 10:14:41 +01:00
Daniel Agar
28971caaf3 partially restore mavlink_tests 2017-01-02 10:14:41 +01:00
Daniel Agar
5ec546f735 Makefile add scan-build target 2017-01-02 10:14:41 +01:00
Daniel Agar
dc9a71b674 WIP startup_shutdown test with ASAN on 2017-01-02 10:14:41 +01:00
Daniel Agar
f8d7c53537 lcov exclude gtest and mavlink 2017-01-02 10:14:41 +01:00
Daniel Agar
9fad6f9dd2 travis-ci use PX4_DOCKER for builds and specify tag 2017-01-02 10:14:41 +01:00
Daniel Agar
3607e72d4d OSX don't run uorb test 2017-01-02 10:14:41 +01:00
Daniel Agar
554f6da1c2 circleci fix test reports and artifacts storage 2017-01-02 10:14:41 +01:00
Daniel Agar
b6ff406b7f circleci upload coverage to coveralls 2017-01-02 10:14:41 +01:00
Daniel Agar
cc6fc48be2 circleci fix .ccache permissions 2017-01-02 10:14:41 +01:00
Daniel Agar
d6fd633500 sitl tests manually list all 2017-01-02 10:14:41 +01:00
Daniel Agar
4f97ef417f sitl tests all config 2017-01-02 10:14:41 +01:00
Daniel Agar
9ae5e55f43 Makefile escape cmake generator string 2017-01-02 10:14:41 +01:00
Daniel Agar
351b3d20cb sitl testing exclude tests 2017-01-02 10:14:41 +01:00
Daniel Agar
97bc0f4486 gather test results 2017-01-02 10:14:41 +01:00
Daniel Agar
cddef87998 Makefile split large target list for semaphore 2017-01-02 10:14:41 +01:00
Daniel Agar
74231e6656 split tests for SITL ctest 2017-01-02 10:14:41 +01:00
Daniel Agar
cbc9680800 relax uorb test required avg 2017-01-02 10:14:41 +01:00
Daniel Agar
c9192e23e1 quiet git header output 2017-01-02 10:14:41 +01:00
Daniel Agar
ac7c309925 move cmake version check into cmake 2017-01-02 10:14:41 +01:00
Daniel Agar
9ea80e9ff0 Makefile add PX4_RUN docker wrapper 2017-01-02 10:14:41 +01:00
Lorenz Meier
9178bb7371 Add new posix_sitl_shell build target which allows to run -make posix_sitl_shell none- in order to get an empty shell 2017-01-01 13:59:41 +01:00
Lorenz Meier
78f00368c5 Dataman: Be less verbose on start to clutter shell output less 2017-01-01 13:59:41 +01:00
ChristophTobler
037d91c51c update posix-config for inav optical flow 2017-01-01 13:33:27 +01:00
Lorenz Meier
0205492a24 Update Mixer for LPE solo 2016-12-30 12:21:16 +01:00
jg
14ddc3018a fixed solo gazebo target 2016-12-30 12:20:15 +01:00
ChristophTobler
90eada1e43 update sitl_gazebo submodule 2016-12-30 10:39:57 +01:00
ChristophTobler
11de4d70a6 add config file for ekf2-optical flow 2016-12-30 10:39:57 +01:00
ChristophTobler
04bc745d66 update sitl_gazebo submodule to master 2016-12-30 10:39:57 +01:00
Paul Riseborough
94ce6e12c1 sensor: update default flow sensor rotation
The SENS_FLOW_ROT parameter is used in the px4flow and mavlink receiver to perform the rotation from sensor frame to body frame.
2016-12-30 10:39:10 +01:00
Paul Riseborough
3787fafdff px4flow: update default rotation and documentation
The driver performs the rotation from sensor frame to body frame.
The recommended installation default is with the Y sensor axis pointing forward.
2016-12-30 10:39:10 +01:00
Paul Riseborough
eca2aeccf9 position_estimator_inav: Make optical flow data conversions consistent with uORB interface 2016-12-30 10:39:10 +01:00
Paul Riseborough
92f5211f55 local_position_estimator: Make optical flow data conversions consistent with uORB interface 2016-12-30 10:39:10 +01:00
Paul Riseborough
ae55c8d87c msg: Clarify sign conventions for optical flow message 2016-12-30 10:39:10 +01:00
Lorenz Meier
a6696d339d Sensors app: Fix consistency checks.
The sensors app assumed that all topics are published on boot which is not necessarily true and it assumed that all publications had valid data. This change ensures that topics are initialized as they update the first time and that the consistency check only runs on topics which carry valid data.
2016-12-30 00:06:04 +01:00
ChristophTobler
06436e753e acount for SENS_FLOW_ROT in simulation 2016-12-29 15:10:29 +01:00
Lucas De Marchi
fd91f998c4 build: sort targets for GCS download
While at it, fix the trailing continuation line in the last item.
2016-12-29 08:54:02 -05:00
Lucas De Marchi
e3f7bbfd8c build: add aerofc firmware for GCS download 2016-12-29 08:54:02 -05:00
Lorenz Meier
ece8d85860 Add ICM20602 to Pixracer config 2016-12-29 11:55:57 +01:00
Dennis Mannhart
d0d6b39602 This fix is needed because of the pitch_min and time_inside union from mission_item.
Without this fix, the function "get_time_inside" from navigation.h looses its purpose
to distinguish between takeoff and other waypoints.
2016-12-29 03:08:37 +01:00
Lorenz Meier
c597a8e1df Disable a set of warnings for NuttX that are new in GCC 6 2016-12-28 15:14:48 +01:00
Lorenz Meier
381611bb66 LL40LS: Make commandline arguments easier to use 2016-12-28 15:07:56 +01:00
Lorenz Meier
9c2f4503a1 Additional test command feedback 2016-12-28 15:04:28 +01:00
Lorenz Meier
4c8e353df7 Fix navigator build error after re-integration 2016-12-28 12:02:25 +01:00
Andreas Antener
7dcba260a7 Fix meta data for added boolean parameters 2016-12-28 11:53:19 +01:00
Simon Wilks
647fafe9bc Allow for immediate cruise speed changes at any time during a mission. 2016-12-28 11:53:19 +01:00
Andreas Antener
e0fc0a847c Mission:
- weathervane on takeoff
- separate cruising speeds for VTOL in MC and FW
- cruising speed resets
- mission work item logic is more clear
- fixed double execution of certain work item states
- enable cruise speed change on the fly by command
- moved VTOL transition target position generation to mission code and set always
2016-12-28 11:53:19 +01:00
Sander Smeets
2c78e9de5d DroneKit IT: use new QGC json format 2016-12-28 11:47:52 +01:00
Sander Smeets
53be474191 Simplify dronekit mode change 2016-12-28 11:47:52 +01:00
Sander Smeets
05fda0c0fe Fix test mission index 2016-12-28 01:19:28 +01:00
Lorenz Meier
f153e9b024 Nucleo board config: Add px4_tasks header 2016-12-27 21:00:51 +01:00
Lorenz Meier
57fd8ffbed Update Crazyflie board driver to include task header 2016-12-27 21:00:51 +01:00
Lorenz Meier
4ceeb8b0e1 HoTT driver: Add task header dependency 2016-12-27 21:00:51 +01:00
Lorenz Meier
faf83aad6a Aero FC: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
8a53866553 AUAV 2.1: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
1f8fabd619 MindPX: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
4ba12f71a0 FMUv2: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
6bc70af7a0 FMUv2: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
c5a167935e FMUv4PRO: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
b3c3f92988 FMUv5: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
520b1dfe07 TAP: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
c2af93d1a5 sensors: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
27cc274991 FW control: add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
9275436043 FMU: Add missing headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
f1aeeef35e Posix: Add tasks header 2016-12-27 21:00:51 +01:00
Lorenz Meier
89b37fd727 IO: Add missing float header 2016-12-27 21:00:51 +01:00
Lorenz Meier
4653a7f883 Bottle drop: fix headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
884876babf Rover: fix headers 2016-12-27 21:00:51 +01:00
Lorenz Meier
13dc938de2 MK driver: Fix header 2016-12-27 21:00:51 +01:00
Lorenz Meier
2ccf0c7bea FrSky: Header fix 2016-12-27 21:00:51 +01:00
Lorenz Meier
ca5ee13238 Fixed Ardrone driver 2016-12-27 21:00:51 +01:00
Lorenz Meier
26b6e64ddc Unit tests: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
556938aebd Sim: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
0e09f072e1 L1: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
a516a2ccf1 LPE: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
1ce43f8d46 Inav: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
2ec9f4a74e uORB: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
38d27e284f Logger: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
8fd22c7f54 Q: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
f72b439fd5 Dataman: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
8416505a67 Commander: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
16dfd4c6ff Navigator: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
1511838919 Pos control: header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
7f4519d763 VTOL: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
90c4b41234 Examples: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
2cfcf3402e Systemlib: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
8d4edd74b8 Platforms: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
50d07b196c EKF: Header cleanup 2016-12-27 21:00:51 +01:00
Lorenz Meier
1857a16e90 vmount: Header cleanup, do not build param file 2016-12-27 21:00:51 +01:00
devbharat
5a8c542d46 Added checks for setting mpc saturation flags 2016-12-27 17:38:00 +01:00
Roman
b596874b91 ulanding radar: small improvements
- set measurement of first sample to -1 to indicated that the data
is not valid

- give an estimate of the sensor variance based on the sensor resolution
and experiments

Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-27 15:35:55 +01:00
Roman
97d106b5f1 ulanding radar: added correct sensor type
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-27 15:35:55 +01:00
Roman
bb3b2ba52c distance sensor message: added type for radar sensors
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-27 15:35:55 +01:00
Roman
0b9da80ec1 ulanding radar: added parsing of buffer
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-27 15:35:55 +01:00
Roman
06498ce01a build ulanding radar for Pixhawk version 2
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-27 15:35:55 +01:00
Roman
4e71d2e2db ulanding radar from Aerotenna: added driver for NuttX
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-27 15:35:55 +01:00
Sander Smeets
3649def02e Fix heading hold for ekf2 mission takeoff 2016-12-27 13:05:26 +01:00
Daniel Agar
e491817610 cmake nuttx create target for nuttx copy 2016-12-27 11:45:48 +01:00
Daniel Agar
b1496f72cd Makefile cleanup target lists 2016-12-26 23:50:51 -05:00
Daniel Agar
13c7cd29b3 docker update to 2016-12-26 images 2016-12-26 23:50:51 -05:00
Anton Matosov
3a17c07b1e Implement RC and DL failsafe action handling for multirotors
Move RC and DL failsafe actions handling from navigator to commander (credits to @AndreasAntener)
Separate manual kill switch handling via manual_lockdown to prevent override and release of software lockdown by RC switch

Other changes:
Add failsafe tune
Fix LED blinking for Pixracer
Return back support for rc inputs in simulator but now it is configurable via cmake
2016-12-27 00:38:13 +01:00
James Goppert
964dabe179 Add better option handling to integration testing script. 2016-12-27 00:34:13 +01:00
Lorenz Meier
ce106a8324 Disable the safety switch by default on Pixracer
This disables the safety switch when Pixracer is configured. It does not change existing setups and it can be re-enabled after. This might be the more sensible default for a racing board.
2016-12-26 19:53:17 +01:00
Sander Smeets
8defe7e7d9 Revert scaling change 2016-12-26 16:56:22 +01:00
Sander Smeets
ba3796ebaf Work with double scaling 2016-12-26 16:56:22 +01:00
Sander Smeets
17a089af31 Fix orb poll 2016-12-26 16:56:22 +01:00
Sander Smeets
7fd5aae834 Apply battery voltage throttle scaling to FW (ported from #5778) 2016-12-26 16:56:22 +01:00
James Goppert
8fdd392700 Added ground truth tests to sitl gazebo CI. 2016-12-26 16:33:37 +01:00
Andrew Tridgell
d150b4b084 px4iofirmware: fixed a bug with override handling
this fixes a race condition between the DMA completion handler
updating registers in px4io and the mixer used for handling the
override state. The register set code could set r_page_servos[]
between the time when pwm_limit_calc() is called and the servos are
actually output.
2016-12-26 16:32:33 +01:00
Lucas De Marchi
72d8a4f932 aerofc: improve upload script
- Run in a single ssh command
  - Allow to update firmware when mavlink-routerd had already been
    stopped
  - Be resilient to another daemon interfering the communication by
    reading/writting to the UART
  - Print OS, BIOS nad FPGA version
2016-12-26 16:11:33 +01:00
Lucas De Marchi
d26b406a04 aerofc: update script to upload firmware
mavlink_bridge.py script was removed in favor of new mavlink-router
project (https://github.com/01org/mavlink-router).
2016-12-26 16:11:33 +01:00
Lucas De Marchi
1fafa2069c sensors: aerofc: set default voltage divider 2016-12-26 16:11:33 +01:00
Lucas De Marchi
0341af4858 aerofc: add some fixes to adc driver
- Other channels are irrelevant since they aren't physically
    connected. Avoid the I2C transaction to get invalid data
  - Port the driver to use only one address, as it should be
  - Minor changes here and there
  - Add test() method to read the latest value - helpful during
    debugging.
2016-12-26 16:11:33 +01:00
José Roberto de Souza
53f2c1eb19 aerofc: Implement ADC
Measure the battery voltage of Aero RTF kit will be done by FPGA
and read by AeroFC using I2C bus.

The protocol is a little bit odd, it have different I2C slave
address for each "register", in future the FPGA RTL will
have a protocol more similar to other I2C sensors.

Also Aero RTF don't have a ADC line to measure current consumption.
2016-12-26 16:11:33 +01:00
Michael Schaeuble
71e48c937e Restructure posix cmake configuration
We check if the target is SITL and do not build it with all other
posix targets.
2016-12-26 15:38:25 +01:00
Anton Matosov
6d3116e30b Implement the way to run posix simulator directly from IDE without the need to reconfigure command lines, but use runner created via CMake
Steps to debug:
 * Run gazebo (or any other sim) server and client viewers via the terminal: `make posix_sitl_default gazebo_none_ide`
 * In your IDE select `px4_<mode>` target you want to debug (e.g. `px4_iris`)
 * Start debug session directly from IDE

This approach significantly reduces the debug cycle time because simulator (e.g. gazebo) is always running in background and you only re-run px4 process which is very light.
2016-12-26 15:38:25 +01:00
Matthias Grob
b79e4ab506 land detector: reverted scientific notation unwanted doubles 2016-12-26 15:36:43 +01:00
Matthias Grob
03d7b65299 land detector: refactoring ff to freefall 2016-12-26 15:36:43 +01:00
Matthias Grob
808dedf441 land detector: small refactor while studying 2016-12-26 15:36:43 +01:00
Lorenz Meier
494d2c9ecf ROMFS: Enable robust PWM command mode during startup 2016-12-26 15:34:53 +01:00
Lorenz Meier
ca096c1257 PWM command: Allow robust error code returns 2016-12-26 15:34:53 +01:00
Lorenz Meier
fff35fe34b Commander: Improve preflight check experience
* Loosen thresholds for gyro consistency check until temperature compensated units are the norm
  * Cut down string lengths so they make it through the MAVLink transport as a whole
2016-12-26 14:04:30 +01:00
Lorenz Meier
4dc96e3ea1 MAVLink app: Remove flow control warning to clean up the boot log 2016-12-26 13:55:04 +01:00
Lorenz Meier
074e666b95 PX4IO: Robustify firmware for mixer load operation
This change makes the mixer load and reset operation closer to thread-safe. It was guarded one-way before and in only one location. This change ensures that its being locked out from both directions. The accesses to the locking variables still need work because they are non-atomic.
2016-12-26 13:41:36 +01:00
Lorenz Meier
5b70522541 Mixer: Make reset operation more robust
This change makes the operation more robust as it flags the whole group invalid in the first step. This should not be confused with being thread-safe - to be thread-safe, all accesses to _first and the following linked list need to be guarded by a mutex. This should be done outside of the mixer in the driver though, as the method depends on the board architecture.
2016-12-26 13:41:36 +01:00
Lorenz Meier
66b9ee2d24 UAVCAN: Make GPS module use the multi-topic facility so that a normal GPS and an UAVCAN GPS can co-exist and do not write on top of each other. 2016-12-26 12:12:44 +01:00
Lorenz Meier
da198a40c5 Code style check: Remove stale folder location 2016-12-26 12:12:44 +01:00
Lorenz Meier
8a58cf0daa Fix usage of CRTSCTS define from termios.h
NuttX had the CRTSCTS define incorrectly set for only output flow control, which broke our flow control logic. This commit patches NuttX and puts in addition a guard in place to prevent any future issue with the non-POSIX define being incorrect.

This has been debugged and identified by @ecmnet, which was the main contribution for this patch.
2016-12-26 12:08:05 +01:00
Lorenz Meier
72eafe7e72 Fix DSM debug statement. From @firwar 2016-12-25 21:55:23 +01:00
Lorenz Meier
0b6e0c020e MAVLink stream: Guard against an interval value of zero 2016-12-25 21:34:19 +01:00
Lorenz Meier
48f1ae31dd Iris: use correct mixer for frame 2016-12-25 21:31:32 +01:00
Lorenz Meier
cbd237a58a Integration test: Robustify against 0 home altitude 2016-12-25 21:30:31 +01:00
Lorenz Meier
9b97e0358b MAVLink: Send correct home heading 2016-12-25 21:30:31 +01:00
Lorenz Meier
6444988392 MAVLink app: Send messages on average at a more correct rate and send on first call
This patch fixes two issues:
  * It sends the message on the first call, making sure that the first update gets sent out.
  * It improves the rate scheduling. In an experiment with 0.5, 50 and 250 Hz all rates were correct within 0.3% of the intended rate.
2016-12-25 21:30:31 +01:00
Lorenz Meier
d6ef137e59 VTOL att control: Fix status reporting
The transition state reporting was inverted because of a typo. Code analysis suggests this will only have an effect in manual transition.
2016-12-25 18:15:51 +01:00
Lorenz Meier
1141079a3b Fix Simulator: Set correct rotor count for standard VTOL
The rotor count was incorrect which meant that control surfaces like elevons were scaled incorrectly. This was the main reason for really bad SITL performance
2016-12-25 18:15:51 +01:00
Lorenz Meier
b7f5a33c90 EKF2: Code style and efficiency
Its sufficient to use sqrtf() with floating point resolution and its better to use the Matrix library call for local and global position yaw
2016-12-25 18:15:51 +01:00
Lorenz Meier
737e18dccb MAVLink app: Fix VTOL reporting and prevent mission reached spam
The VTOL status reporting and the mission status reporting were both suboptimal. VTOL was too slow, mission reporting too fast
2016-12-25 18:15:51 +01:00
Lorenz Meier
171ccd1203 POSIX SITL configs: Update default parameters to improve simulation behaviour
The main changes include:
 * Better attitude tuning for airframes (more realistic models, the models had previously not as much thrust as the real vehicles)
 * Better waypoint and navigation default parameters which match the on-hardware parameters
 * More suitable minimum and trim airspeeds for VTOL and fixed wing which prevents stalls that happened in SITL previously (the new airspeeds match the real vehicles nicely)
2016-12-25 18:15:51 +01:00
Lorenz Meier
0ae85e8a17 VTOL vehicle status: Adjust defines to match VTOL controller enum 2016-12-25 18:15:51 +01:00
Lorenz Meier
8165ef7d95 SITL: Move back to LPE as its more robust to host timing 2016-12-25 18:15:51 +01:00
Lorenz Meier
79fbcf8a1c Tuning to integration testing for better reporting 2016-12-25 18:15:51 +01:00
Lorenz Meier
fa84d104b2 Update SITL Gazebo to include model fixes 2016-12-25 18:15:51 +01:00
Lorenz Meier
42101671f4 Drop rate gains for H480 2016-12-24 16:14:52 +01:00
Lorenz Meier
07fecaa9d5 Re-tune the H480 config as we increased its simulated motor power recently. 2016-12-24 16:14:52 +01:00
Lorenz Meier
f56bb95bdd Default SITL to the same estimator as the physical vehicle 2016-12-24 16:14:52 +01:00
Lorenz Meier
349e3f6309 Update SITL Gazebo to include baro noise 2016-12-24 16:14:52 +01:00
Lorenz Meier
8418be5fa5 Slowdown message: More descriptive and less often 2016-12-24 16:14:52 +01:00
David Sidrane
5607df8a44 Added missing IFLOWCONTROL_WATERMARK settings.
This was the cause of the CI failure on the hot fix
2016-12-24 09:42:48 +01:00
David Sidrane
e15b67ff70 HOTFIX:For Data loss on Nuttx serial w/ DMA & GPIO Flow Control
This hot fix essentialy revert commit 265af481209d60033f7cd4c4216048b1ce3eb435
   in NuttX/nuttx. The commit STM32 serial: Make input hardware flow-control work with RX DMA.
   From Jussi Kivilinna has broken the DMA on an STM32F4 in a yet TBD way.
   The symptoms are lost data on RX, the DMA count decrements but
   the data ia not written to memory. This looks to be introduced but the
   non circular DMA settings.
2016-12-24 09:42:48 +01:00
Lorenz Meier
2bf7a53d55 FMUv5: Ensure enough IRQ stack 2016-12-23 23:24:52 +01:00
Lorenz Meier
88a4b5ba07 FMUv4: Ensure enough IRQ stack 2016-12-23 23:24:52 +01:00
Lorenz Meier
0924d8ddcf FMUv3: Ensure enough IRQ stack 2016-12-23 23:24:52 +01:00
Lorenz Meier
b6e4b63b0d FMUv2: Ensure enough IRQ stack 2016-12-23 23:24:52 +01:00
Lorenz Meier
bdeabbd02c FMUv1: Ensure enough IRQ stack 2016-12-23 23:24:52 +01:00
Lorenz Meier
cbe04d5f9b FMUv5: Not supporting AUX yet 2016-12-23 23:24:52 +01:00
James Goppert
c28cd76e5f LPE fault relaxation and sitl fix (#6146)
* Set LPE FUSE for standard iris sitl config.

* Relax fault detection handling.

* Always correct lidar.
2016-12-23 15:08:37 -05:00
Lorenz Meier
661fda2b2a MAVLink app: Acknowledge all commands that are not sent off to other components 2016-12-23 17:40:11 +01:00
Lorenz Meier
5d7d26531c Commander: Acknowledge pair commands 2016-12-23 17:40:11 +01:00
David Sidrane
df5b29abce Bugfix:MPU6000 Driver accept unknown ICM20xxx product IDs
This allows a ICM20xxxx with an unkown product ID to be used
   with the mpu6000 driver.

   This change will issues a warning for any part with an unknown product ID.
   For mpu6000 parts (-T 6000 or not specified) it will then exit.
   For any ICM20xxxx part with an unknown product ID it will accept the ID
   and run with it.

   N.B. This fix expecte the value in the product ID register to be
   a per chip constant. (Not changing during operations)
2016-12-23 17:08:30 +01:00
Dennis Mannhart
d00750c22e updated ECL submodule to include snapdragon compile fix 2016-12-23 11:34:31 +01:00
Dennis Mannhart
ccc909f346 uORBFastRpcChannel: fixed include for snapdragon 2016-12-23 10:43:06 +01:00
Lorenz Meier
9e2eac41ff ROMFS startup: Fix variable expansion for new NuttX scheme 2016-12-23 09:30:37 +01:00
Beat Küng
1e05520350 Tools/upload_log.py: add missing source parameter 2016-12-23 00:20:17 +01:00
David Sidrane
83fdb9761c px4fmu-v4:Fixed SDIO Clocking 2016-12-23 00:05:59 +01:00
David Sidrane
abc2ed3c52 px4fmu-v3:Fixed SDIO Clocking 2016-12-23 00:05:59 +01:00
David Sidrane
a84eebbee4 px4fmu-v2:Fixed SDIO Clocking 2016-12-23 00:05:59 +01:00
David Sidrane
31355c8584 Mindpx-v2:Fixed SDIO Clocking 2016-12-23 00:05:59 +01:00
David Sidrane
feb139eb6a AUAVX21:Fixed SDIO Clocking 2016-12-23 00:05:59 +01:00
Michael Schaeuble
b9bd30d4e2 Build hardfault_log in px4fmu-v3 target 2016-12-22 21:58:16 +01:00
Beat Küng
fca3a11907 RPI config: set SYS_MC_EST_GROUP 2016-12-22 16:54:15 +01:00
Beat Küng
eadb55569b eagle configs: set SYS_MC_EST_GROUP 2016-12-22 16:54:15 +01:00
Beat Küng
af99ecfe42 bebop config: set SYS_MC_EST_GROUP to 2 2016-12-22 16:54:15 +01:00
Beat Küng
d828023e47 SITL startup config: set SYS_MC_EST_GROUP
so that we know which estimator was used in the log file
2016-12-22 16:54:15 +01:00
Lorenz Meier
e6cea82b21 Better default values for UAVCAN params 2016-12-22 15:33:21 +01:00
Beat Küng
a3de7f7acc RPI: fix startup scripts: start navigator & load parameters 2016-12-22 15:17:58 +01:00
Simone Guscetti
304afa5629 Changed getopt with px4_getopt which was causing motor_test to always go to the usage function 2016-12-22 11:08:21 +01:00
Lucas De Marchi
03c3ea0040 build: also look for ninja-build in addition to ninja
The ninja binary may have other names on Linux distributions. On Fedora
it's ninja-build.
2016-12-22 08:33:33 +01:00
Lorenz Meier
54ab5cde2f Fix unused variable in LPE 2016-12-21 22:28:42 +01:00
Roman
c38e378f59 bebop config: updated some gains for decent performance
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-21 21:36:53 +01:00
Beat Küng
0c7e9b0e6d version CMakeLists.txt: add ver_gen dependency
Necessary so that build_git_version.h is generated before version.c is
compiled.

Error before:
../src/lib/version/version.c:152:31: error: 'PX4_GIT_TAG_STR' undeclared (first use in this function)
  return version_tag_to_number(PX4_GIT_TAG_STR);
2016-12-21 16:59:32 +01:00
Beat Küng
cf21d8f554 cmake: remove unneeded file build_git_version.h.in
Obsolete since 9ee478e1f75a3b2355a8ce84d87d5f16055ac2f6
2016-12-21 16:59:32 +01:00
Lorenz Meier
479374a047 Update SITL gazebo 2016-12-21 14:18:21 +01:00
James Goppert
1a6c1da855 Update sitl gazebo. 2016-12-21 14:15:29 +01:00
Beat Küng
db2efa79da fix commander: remove unused variable rtl_on 2016-12-21 14:09:41 +01:00
Beat Küng
ffe4688d0b px4_base.cmake: make sure px_update_git_header.py is executed in the source directory
otherwise the 'git describe' command can fail.
2016-12-21 14:09:41 +01:00
Lucas De Marchi
9ee478e1f7 cmake: fix update of git hashes
Since the git hashes were being generate by cmake it would only be
generated if the header file was not present. Simple test:

    $ make aerofc-v1_default
    $ touch a
    $ git add a
    $ git commit -m tmp
    $ make aerofc-v1_default

The file build_aerofc-v1_default/build_git_version.h should have the new
hashes and the correspondent .c/c.pp files should be rebuilt, but they
aren't.  The end result is that checking the version with "ver git" in
the nsh console will point to the wrong commit.

This moves the generation of the header to a separate tool and enforces
the command to be executed every time.
2016-12-21 14:09:41 +01:00
Julian Oes
8aede5d32b mavlink: add 500000 baudrate 2016-12-21 11:44:47 +01:00
Lorenz Meier
9ae2376d1c Commander: Indicate overload on the ground only if not transient. Adjust max CPU load to 80%. Indicate overload in air immediatley 2016-12-21 11:44:47 +01:00
Lorenz Meier
11ef348a34 PWM: Use same stack size as mixer to limit fragmentation 2016-12-21 11:44:47 +01:00
Lorenz Meier
535d5b9233 Ensure TAP ESC is fully booted 2016-12-21 11:44:47 +01:00
Lorenz Meier
6b9d95648f MAVLink app: Fix flow control handling flags 2016-12-21 11:44:47 +01:00
Lorenz Meier
19a474e376 Enable flow control in OS config for TAP so that ports without support are correctly detected 2016-12-21 11:44:47 +01:00
Beat Küng
7d8553ecd8 uavcan: remove assert() for git name check 2016-12-21 11:35:10 +01:00
Beat Küng
115301d43a cmake configs: add lib/version to remaining configurations 2016-12-21 11:35:10 +01:00
Beat Küng
8d1f35bff6 board cmake: remove board_name.c from all boards
leftover after rebase
2016-12-21 11:35:10 +01:00
Beat Küng
5e9bdff205 version: remove FW_GIT & FW_BUILD_URI, use the correct methods instead
This is cleanup after rebasing
2016-12-21 11:35:10 +01:00
Beat Küng
3d0f1e4a4f logger: use better variable names for chip name description 2016-12-21 11:35:10 +01:00
Beat Küng
66a6ce880c cmake stm32f4discovery: add lib/version 2016-12-21 11:35:10 +01:00
Beat Küng
5ad2595f43 logger: add more version info & uuid
in particular:
- SW release version (in addition to the git hash)
- OS version (tag + git hash if exists)
- mcu version & revision & UUID
- toolchain version

The uuid can be disabled via parameter, it's enabled by default.
2016-12-21 11:35:10 +01:00
Beat Küng
41dc34204c version cleanup: move all version information into version.c and use a common API
The provided versioning information is the same, except for some additions,
like OS version (which still need to be implemented on NuttX).
2016-12-21 11:35:10 +01:00
Beat Küng
08dc3decb1 mavlink: avoid sending uninitialized data
_global_pos_sub->update(&_global_pos_time, &global_pos); could return
false and in that case global_pos was not set but still accessed.

This is prevented by checking if timestamp == 0.
2016-12-21 11:35:10 +01:00
Beat Küng
c662113527 board_name.c: remove the file and HW_ARCH macro, use px4_board_name() instead
boards define BOARD_NAME, so board_name() is not necessary. HW_ARCH was
just a wrapper around board_name().

This patch simplifies to having only one common method px4_board_name().
2016-12-21 11:35:10 +01:00
Mark Whitehorn
3d1f240351 exclude config from fmu-v1/v2 builds 2016-12-21 11:00:29 +01:00
Mark Whitehorn
c722e2733f update s250aq config for new TPA params 2016-12-21 11:00:29 +01:00
Mark Whitehorn
8962eaa944 add new asymmetric airframe for Spedix S250AQ 2016-12-21 11:00:29 +01:00
James Goppert
6ff85fb927 LPE land bug fix and switch to fusion bit mask. 2016-12-21 08:43:18 +01:00
Beat Küng
f263ea7f7e rc.sensors aerofc: change external mag orientation to 'Yaw 180 deg' 2016-12-21 08:42:04 +01:00
Matthias Grob
eda7848e16 mc_pos_control small refactoring while studying 2016-12-21 08:40:16 +01:00
Lorenz Meier
3f545c270d Removed unused code 2016-12-21 08:37:45 +01:00
Lorenz Meier
8a32e5a20d Mixers: Disable on unreachable boards 2016-12-21 08:37:45 +01:00
Lorenz Meier
bf7bdd4062 Crazyflie: Disable on Pixhawk boards 2016-12-21 08:37:45 +01:00
Lorenz Meier
9fd742d131 ZMR250: Disable on Pixhawk 2016-12-21 08:37:45 +01:00
Lorenz Meier
f795fb0535 Disable Aero on non-Aero boards 2016-12-21 08:37:45 +01:00
Lorenz Meier
3faa836a24 Disable Solo on Pixhawk 2016-12-21 08:37:45 +01:00
Lorenz Meier
f9a4d3b731 Disable Bebop on Pixhawk 2016-12-21 08:37:45 +01:00
Lorenz Meier
5d530da9c2 Disable QAVR5 on Pixhawk 2016-12-21 08:37:45 +01:00
Lorenz Meier
f601dc672e Disable Snapdragon PWM on Pixhawk 2016-12-21 08:37:45 +01:00
Lorenz Meier
417eda82ef ROMFS pruner: Kick out excluded files 2016-12-21 08:37:45 +01:00
Lorenz Meier
becd9457ca Call airframes script with board arg 2016-12-21 08:37:45 +01:00
Lorenz Meier
671e380fd2 Params script: Whitespace cleaning 2016-12-21 08:37:45 +01:00
Lorenz Meier
f23881d8ab Airframes tool: Support basic pruning 2016-12-21 08:37:45 +01:00
David Sidrane
f67e44215f Fixes TAP-V1 CI Failure:
Reverted MPU6000_BUS_I2C_INTERNAL1 back to MPU6000_BUS_I2C_INTERNAL
  Ony SPI has multiple device
2016-12-21 08:34:22 +01:00
David Sidrane
e5b10e808b Pickup 2 Upstream NuttX PX4 contributions
1) Ensure if CONFIG_SERIAL_DMA is set that cdcacm uart_ops is initalized
     with correct functions in correct slots.
     This was detected only with PX4 build flags
  2) C&P error from F7 would prevent CONFIG_STM32_SERIALBRK_BSDCOMPAT ifdefed
     code from being included.
2016-12-21 08:34:22 +01:00
Lorenz Meier
5ce9a35e95 Update rotation for FMUv5 ICM sensors 2016-12-21 08:34:22 +01:00
David Sidrane
b250ec2730 Adding more Prudut IDs for ICM20689 2016-12-21 08:34:22 +01:00
Lorenz Meier
f9ed66fe8b Board config for FMUv5: I2C bus naming consistency 2016-12-21 08:34:22 +01:00
Lorenz Meier
c220956961 MPU6K driver: More device names 2016-12-21 08:34:22 +01:00
Lorenz Meier
83e833c997 FMUv5 defconfig: Better defaults 2016-12-21 08:34:22 +01:00
Lorenz Meier
a7d31133ac Sensors startup: Whitespace fix 2016-12-21 08:34:22 +01:00
Lorenz Meier
27201ba2a1 MPU6K: Support different device names 2016-12-21 08:34:22 +01:00
Lorenz Meier
3caff7cdca HMC5883: Support additional I2C buses 2016-12-21 08:34:22 +01:00
Lorenz Meier
ace1f91355 I2C4: Fix GPIO setup 2016-12-21 08:34:22 +01:00
Lorenz Meier
3bbf5da85a FMUv5: Set default GPS port 2016-12-21 08:34:22 +01:00
Lorenz Meier
fcc85f79d5 MPU6K: Make stop routine safe to call from any location in the startup code 2016-12-21 08:34:22 +01:00
David Sidrane
489ee58773 px4fmu-v5 starts ICM 20602 and ICM 20689 2016-12-21 08:34:22 +01:00
David Sidrane
749fd2f155 Added ICM 20689 2016-12-21 08:34:22 +01:00
David Sidrane
6ebd24a678 Added ICM20602 2016-12-21 08:34:22 +01:00
David Sidrane
05701a2830 Reorged px4fmu-v5 code up 32K now that bootloader is completed. 2016-12-21 08:34:22 +01:00
David Sidrane
120064b55d WIP:Startup for FMUV5
Incomplete changes to startup script for FMUv5.
   See "Place holder Need" in ROMFS/px4fmu_common/init.d/rc.sensors
2016-12-21 08:34:22 +01:00
David Sidrane
93996a6d6e TAP uses BOARD_HAS_SHARED_PWM_TIMERS
Fixes https://github.com/PX4/Firmware/issues/5710
2016-12-21 08:34:22 +01:00
David Sidrane
0baab8263b Fix the LED PWM support for non shared timers
This is the fixes https://github.com/PX4/Firmware/issues/5710
  by adding 2 concepts.

  1) Allowing a board to define BOARD_HAS_SHARED_PWM_TIMERS
     in this case the io_timeris will be initalized as the
     led_pwm_timers  - there is an assumptionm that the
     number of io_timers == the number of led_pwm timers

  2) Allowing a board to define BOARD_LED_PWM_RATE
     To set an alternate frequency

  Future expansion will require:
  1) The ability to have a config with both the I2C RGB LED and
     PWM RGB LED drivers loaded.
  2) The higher level driver to create  multiple instances of the
     /dev/rgbld, to support internal and  external User facing
     RGB LED as supported in FMUv5
2016-12-21 08:34:22 +01:00
David Sidrane
4712ed1889 Complete px4fmu-v5 Led configuration 2016-12-21 08:34:22 +01:00
David Sidrane
3f64bf81f3 RGB LED cleanup
Removed dead code and magic numbers
  Defined the RGB LED to support 2 timers
2016-12-21 08:34:22 +01:00
David Sidrane
a81aceea58 Add SD_CARD_POWER_CTRL as logical interface for SD Power Control
Set inital State to ON
   Add interface macro.
2016-12-21 08:34:22 +01:00
Lorenz Meier
a777cad102 ROMFS: output cosmetics on startup script 2016-12-21 08:34:22 +01:00
David Sidrane
5f82fc70be CI Fixes 2016-12-21 08:34:22 +01:00
David Sidrane
116704ef50 Makefile add all Targets 2016-12-21 08:34:22 +01:00
David Sidrane
2957b8d7d4 Adding Carlo Woods's config cloning tool 2016-12-21 08:34:22 +01:00
David Sidrane
b7521e1b38 Adding Test for sending break on u[s]arts 2016-12-21 08:34:22 +01:00
David Sidrane
cc0a4248f8 PX4 System changes for new Boards 2016-12-21 08:34:22 +01:00
David Sidrane
f5a0c04ae8 Upstream NuttX irq{save|restor} -> {enter/leave}_critical_section 2016-12-21 08:34:22 +01:00
David Sidrane
3eee469fbc Display the irq stack usage on the for the init thread (pid = 0) 2016-12-21 08:34:22 +01:00
David Sidrane
1781801151 Scope irq_state to function using it 2016-12-21 08:34:22 +01:00
David Sidrane
056bd5527d New NuttX debug API 2016-12-21 08:34:21 +01:00
David Sidrane
5661370944 Changed to Upstream NuttX Instrumentation changes 2016-12-21 08:34:21 +01:00
David Sidrane
b7d7b567c0 Changes to px4iofirmware for Upstrem Nuttx c++ init and logging changes 2016-12-21 08:34:21 +01:00
David Sidrane
ff0e810b55 Nuttx changed CONFIG_DRAM_SIZE to CONFIG_RAM_SIZE 2016-12-21 08:34:21 +01:00
David Sidrane
b6362ed87c Needed math.h 2016-12-21 08:34:21 +01:00
David Sidrane
3ed0bfe0d8 Nuttx added FIONSPACE and fixed FIONWRITE: had retuned the space and should have returned enqueued count 2016-12-21 08:34:21 +01:00
David Sidrane
81d00e730a Portable fsync call 2016-12-21 08:34:21 +01:00
David Sidrane
dc8c6ea5e5 White space fixes 2016-12-21 08:34:21 +01:00
David Sidrane
dd2fe5d42f Document and fix '${varname}' usage 2016-12-21 08:34:21 +01:00
David Sidrane
dec46927f7 RAND_MAX properly defined in upstream NuttX 2016-12-21 08:34:21 +01:00
David Sidrane
c9f10107c0 Nuttx Upgrade:Adds sem_setprotocol 2016-12-21 08:34:21 +01:00
David Sidrane
8610eced57 Changes to sim for upstream Nuttx 2016-12-21 08:34:21 +01:00
David Sidrane
b7cc04e0d2 Changes to tap_v1 for upstream Nuttx and hardfault logging 2016-12-21 08:34:21 +01:00
David Sidrane
402251819d Changes to mindpx-v2 for upstream Nuttx and hardfault logging 2016-12-21 08:34:21 +01:00
David Sidrane
f149adac54 Changes to px4-stm32f4discovery for upstream Nuttx 2016-12-21 08:34:21 +01:00
David Sidrane
feda3e8c5c Changes to px4io-v2 for upstream Nuttx 2016-12-21 08:34:21 +01:00
David Sidrane
63f04c1236 Changes to px4io-v1 for upstream Nuttx 2016-12-21 08:34:21 +01:00
David Sidrane
17633c0714 Changes to px4fmu-v4 for upstream Nuttx and hardfault logging 2016-12-21 08:34:21 +01:00
David Sidrane
c89c47e57e Changes to px4fmu-v3 for upstream Nuttx 2016-12-21 08:34:21 +01:00
David Sidrane
d9575964a4 Changes to px4fmu-v2 for upstream Nuttx and hardfault logging 2016-12-21 08:34:21 +01:00
David Sidrane
82cb9353d1 Changes to px4fmu-v1 for upstream Nuttx 2016-12-21 08:34:21 +01:00
David Sidrane
64c00e6c95 Changes to crazyflie for upstream Nuttx and hardfault logging 2016-12-21 08:34:21 +01:00
David Sidrane
3ddeb07b25 Changes to auav-x21 for upstream Nuttx and hardfault logging 2016-12-21 08:34:21 +01:00
David Sidrane
a2adf94d13 Changes to aerofc-v1 for upstream Nuttx and hardfault logging 2016-12-21 08:34:21 +01:00
David Sidrane
2e235b9013 Changes to aerocore for upstream Nuttx 2016-12-21 08:34:21 +01:00
David Sidrane
1b17bc74b2 Adding zubaxgnss-v1 bootloader 2016-12-21 08:34:21 +01:00
David Sidrane
276bf47865 Adding s2740vc-v1 board and bootloader 2016-12-21 08:34:21 +01:00
David Sidrane
6ce7ade2c6 Adding px4nucleoF767ZI-v1 2016-12-21 08:34:21 +01:00
David Sidrane
bca8767981 Adding px4fmu-v5 2016-12-21 08:34:21 +01:00
David Sidrane
925102464b Adding px4fmu-v4pro 2016-12-21 08:34:21 +01:00
David Sidrane
f14a0ba107 Adding px4flow-v2 bootloader 2016-12-21 08:34:21 +01:00
David Sidrane
24e8c213ee Adding px4esc-v1 board and bootloader 2016-12-21 08:34:21 +01:00
David Sidrane
bba8371b0f Adding px4cannode-v1 board and bootloader 2016-12-21 08:34:21 +01:00
David Sidrane
cd8b759fed Adding esc35-v1 board and bootloader 2016-12-21 08:34:21 +01:00
David Sidrane
d09cd77777 Adding hardfault logging application 2016-12-21 08:34:20 +01:00
David Sidrane
57ac4dd401 Adding example of developer custom make file 2016-12-21 08:34:20 +01:00
David Sidrane
c417a1be7b Adding USVCAN bootloader support 2016-12-21 08:34:20 +01:00
David Sidrane
ced8c6a2ef Changes to boards/common for upstream NuttX directory changes 2016-12-21 08:34:20 +01:00
David Sidrane
2f0a0e1c30 Added nuttx/arch API 2016-12-21 08:34:20 +01:00
David Sidrane
ddb033aa12 Temp fix - Needs to move to micro hal 2016-12-21 08:34:20 +01:00
David Sidrane
dcc2d1c3d1 I2C changes for upstream NuttX per trasaction freq control 2016-12-21 08:34:20 +01:00
David Sidrane
0177e250f4 STM32 Serial Number location is defined in NuttX 2016-12-21 08:34:20 +01:00
David Sidrane
fd7d399958 Upstream Nuttx restructured directories use micro_hal 2016-12-21 08:34:20 +01:00
David Sidrane
d8580d39b9 Honor Micro hal and new Nuttx Loging API 2016-12-21 08:34:20 +01:00
David Sidrane
ddb9bc3242 Honor micro hal 2016-12-21 08:34:20 +01:00
David Sidrane
9db89ea4cf Added Micro Hal and configue for Upstream NuttX 2016-12-21 08:34:20 +01:00
David Sidrane
318c69c74b Honor GIT_SUBMODULES_ARE_EVIL 2016-12-21 08:34:20 +01:00
David Sidrane
16229b3985 Build time patching of Uptream NuttX 2016-12-21 08:34:20 +01:00
David Sidrane
d6098c8226 Adding Nuttx Build infrastructure 2016-12-21 08:34:20 +01:00
David Sidrane
cb9517486d Upgrade to uavcan to support Nuttx 7.18+ {enter/leave}_critical_section 2016-12-21 08:34:20 +01:00
David Sidrane
07923a86c7 Upgrade to Nuttx 7.18+ ==upstream 2016-12-21 08:34:20 +01:00
Lorenz Meier
1e625d024c Updated ECL to include a minor compile fix 2016-12-21 08:11:05 +01:00
Dennis Mannhart
42093a5ee1 remove PX4_WARN if zero bytes are received 2016-12-20 14:38:28 +01:00
Dennis Mannhart
bf6328001d move sleep to then end of the loop 2016-12-20 14:38:28 +01:00
Dennis Mannhart
833ee4ba7f deleted poll function since not supported in qurt 2016-12-20 14:38:28 +01:00
Julian Oes
d62520e26b Update DriverFramework and build lib/rc 2016-12-20 14:38:28 +01:00
Julian Oes
d8b6a1df9f Revert "spektrum_rc: fix ugly pointers in function args"
This reverts commit ef3bc1431215dca15383b293101fe75fc27492f2.
2016-12-20 14:38:28 +01:00
Julian Oes
402e2ec611 spektrum_rc: fix ugly pointers in function args 2016-12-20 14:38:28 +01:00
Julian Oes
45ff2d026d dsm: only close valid fds 2016-12-20 14:38:28 +01:00
Julian Oes
3b937ffab4 Remove save file created by mistake 2016-12-20 14:38:28 +01:00
Julian Oes
f184e642c9 dsm: fix definition 2016-12-20 14:38:28 +01:00
Julian Oes
fb42db41d2 spektrum_rc: raise poll timeout to 50ms/20Hz 2016-12-20 14:38:28 +01:00
Julian Oes
a57c8d2a7c spektrum_rc: make usage clear 2016-12-20 14:38:28 +01:00
Julian Oes
de9cb46a56 spektrum_rc: move and clean up (untested) 2016-12-20 14:38:28 +01:00
Julian Oes
97fe56a4e7 dsm: add deinit function
This implements closing of the serial port which previously was not
taken care of.
2016-12-20 14:38:28 +01:00
Julian Oes
c0fcffae76 spektrum_rc: make it compile 2016-12-20 14:38:28 +01:00
Lorenz Meier
c14f1fbaec Add initial structure for Snapdragon Spektrum input 2016-12-20 14:38:28 +01:00
David Sidrane
4d17467590 Interim fix avoid using params before initialized
This is a Interim fix to avoid using params before initialized.

The Long term fix will be:
1) Not play the startup tone on start but allow tones to be generated from other invocations (i.e error conditions)
2) Add a command to tone alam to have it read a parameter, after parameter initialization, in the init script. If that parameter is on then sound the startup tone and further tones will be enabled. If it is off all further tones will be disabled.

The new parameter will not be of the class circuit breaker (not named ) as is is not an absolute control of the tone alarm.
2016-12-20 14:16:04 +01:00
Matthias Grob
f9da41fcf2 fixed rebase errors in arm switch implementation 2016-12-20 09:46:36 +01:00
Matthias Grob
0dbdde3404 Arming: made flags more understandable, added error message for rejected disarm 2016-12-20 09:46:36 +01:00
Matthias Grob
f6282f5b3d Arm button fix: include the arm switch into the structure of all the checks for RC arming 2016-12-20 09:46:36 +01:00
Matthias Grob
94c8371ffe Arm button fix: toggle arming state only once per arm button press 2016-12-20 09:46:36 +01:00
Matthias Grob
8a75827d6a fixed all comments of arm button review 2016-12-20 09:46:36 +01:00
Matthias Grob
aa984edd90 added an rc switch for arming and disarming with the option to use it as a button 2016-12-20 09:46:36 +01:00
Matthias Grob
537f72073d minor: uppercase typo and unused header 2016-12-20 09:46:36 +01:00
Lucas De Marchi
292599d3c9 Revert "px4fmu rcS: increase mavlink rate to 100000 for SYS_COMPANION 1500000"
This reverts commit e3537ca6c25ba50b8c0665138a1d833861b1b5f7.

It needs changes on the Linux side, so reverting for now.
2016-12-20 08:56:38 +01:00
Lucas De Marchi
f48605b975 Revert "aerofc: use logger when autoconfig"
This reverts commit e4e5a77f71363a2744f285510d4ae09ab52d8ddd.
2016-12-20 08:56:38 +01:00
Lucas De Marchi
03be988ebe aerofc: fix defining PX4FMU_V4 macro
We were defining both macros. Fix it by using changing to AEROFC_V1.
Also remove a leftover from board rename.
2016-12-20 08:51:14 +01:00
Lucas De Marchi
9468e7779a aerofc: use same macro name as px4fmu boards 2016-12-20 08:51:14 +01:00
Lucas De Marchi
eaa2cf7d99 aerofc: fix LED names
There are no blue/red LEDs and these names just causes confusion with
the "always-on LEDs".
2016-12-20 08:51:14 +01:00
Lorenz Meier
3e8061c3cd Iris mixer: Update naming of mixer 2016-12-19 20:39:48 +01:00
Lorenz Meier
83b177c5ad DC mixer: Fix geometry for Iris 2016-12-19 20:39:48 +01:00
Lorenz Meier
6b0ac296b6 Fix usage of Iris mixer, make space by deleting unused files 2016-12-19 20:39:48 +01:00
Lorenz Meier
92c35f26be Tests: Correct use of unsubscribe 2016-12-19 20:39:03 +01:00
Lorenz Meier
313ff2a6f2 UAVCAN: Correct use of unsubscribe 2016-12-19 20:39:03 +01:00
Lorenz Meier
1d98c8f202 MAVLink app: Correct use of unsubscribe 2016-12-19 20:39:03 +01:00
Lorenz Meier
3532b48411 TAP ESC: Correct use of unsubscribe 2016-12-19 20:39:03 +01:00
Lorenz Meier
97ce9edcac FMU: Tighter compile checks and correct use of unsubscribe 2016-12-19 20:39:03 +01:00
Lorenz Meier
4b99a8f28c Fix sf1xx start 2016-12-19 20:37:40 +01:00
Lorenz Meier
dfed9a3f13 Fix nullptr access in mixer group. This was only ever an issue on booboot and not in flight. 2016-12-19 20:36:05 +01:00
Lorenz Meier
6e32d0b52b Update ECL to include data validator fixes 2016-12-19 20:34:52 +01:00
Lorenz Meier
c91f827072 sensors app: Always run validator so it gets updated and can detect timeouts 2016-12-19 20:34:52 +01:00
Lorenz Meier
143086ba2c HMC5883: Harden shutdown logic 2016-12-19 20:34:52 +01:00
Lorenz Meier
5759fd5726 GPS app: Increase stack to ensure 300 bytes headroom 2016-12-19 20:34:52 +01:00
Lorenz Meier
fe5cc5622b Failover logging in sensors app: Trim down strings 2016-12-19 20:34:52 +01:00
Lorenz Meier
b91b0463d2 Update ECL lib to include failover fix for one sensor case 2016-12-19 20:34:52 +01:00
Lorenz Meier
cc7db94edc Sensors app mag voter: Increase stale value detection threshold to accomodate low-noise mag setups 2016-12-19 20:34:52 +01:00
Lorenz Meier
077f22ece7 HMC5883: Make driver stoppable to simplify system validation 2016-12-19 20:34:52 +01:00
Lorenz Meier
0e93b75ced Update ECL library to include configurable stale sample counts 2016-12-19 20:34:52 +01:00
Lorenz Meier
8297e979ff ECL: Update to include whitespace fixes 2016-12-19 20:34:52 +01:00
Lorenz Meier
c62c3c98bf uORB devices: Guard more against invalid handles fed to publish routine 2016-12-19 20:34:52 +01:00
Lorenz Meier
ca59d4cddb Simulator: Initialize ground truth topic handle 2016-12-19 20:34:52 +01:00
Lorenz Meier
df613361b9 LPE: Increase stack to allow enough safe margin 2016-12-19 20:34:52 +01:00
Lorenz Meier
9667c98b61 Start UAVCAN in the two phases required 2016-12-19 15:13:05 +01:00
Dennis Mannhart
e2ded396c8 Snapdragon pwm (#5940)
* px4 pwm driver for snapdragon

* added driver to cmake file

* applied review changes and adjusted format

* adjustement to review 2

* run formatting

* added timeout initialization
2016-12-16 18:41:45 +01:00
Mark Whitehorn
48778ed3f2 bump parameter minor version 2016-12-16 18:12:17 +01:00
Mark Whitehorn
bad2dc80a4 change default THR_MDL_FAC to zero (disabled) 2016-12-16 18:12:17 +01:00
Mark Whitehorn
e5f4f50a52 add param_find for THR_MDL_FAC 2016-12-16 18:12:17 +01:00
Roman
d0d9ee373b bebop config: increase logger buffer from 20kB to 200kB
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-16 00:15:25 +01:00
Roman
5b0a1d4b2a updated DriverFramework: activated dlpf in mpu6050
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-16 00:15:25 +01:00
Roman
daa88f69db bebop2 config: updated some positon control params for decent performance
- this is not the final tune!!!

Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-16 00:15:25 +01:00
Roman
b0bca24526 bebop2 config: use logger instead of sdlog2
- sdlog2 drops lots of data and logs very, very irregularly

Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-16 00:15:25 +01:00
Mark Whitehorn
381a565ce3 add THR_MDL_FAC parameter handling to FMU 2016-12-15 23:39:53 +01:00
Roman
d221313dfb implemented mapping between desired thrust and applied pwm in
multirotor mixer.

Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-15 23:39:53 +01:00
Dennis Mannhart
22733b1501 mc_pos_control: dont run alt-control when landing 2016-12-15 10:17:03 +01:00
Julian Oes
ef7ade52b1 mc_pos_control: stay landing even after freefall
This fixes the following case:
1. VTOL in auto mission descends to land
2. _in_landing is set to true correctly
3. _lnd_reached_ground is set to true because it's detected, motors idle.
4. The vehicle might drop for a few centimeters and _acc_z_lp goes back
   up above 4m/s^2, so freefall is detected.
5. The motors spin up again, and _in_landing and _lnd_reached_ground are
   both reset to false.
6. Since we're floating at a few centimeters, we can't actyally get to
   _vel_z_lp > 0.5, and therefore _in_landing is never triggered after.
7. Thus we never finish the landing.

This is fixed by only resetting _lnd_reached_ground to false but
leaving _in_landing true.
2016-12-15 10:17:03 +01:00
Julian Oes
70fec788d9 mc_pos_control: allow takeoff in offboard mode 2016-12-15 10:17:03 +01:00
Julian Oes
072ba51064 mc_pos_control_main: changes got lost in rebase 2016-12-15 10:17:03 +01:00
Julian Oes
b285827f52 mc_pos_control: remove leftover printf 2016-12-15 10:17:03 +01:00
Julian Oes
65b8bcae12 mc_pos_control: always require takeoff setpoint
Problem: The drone started taking off in LOITER (HOLD) mode even if on
ground and did not do a proper takeoff jump. The effect was mostly a
hovering close above ground or tilting/flipping because of integrator
wind-up.

Solution: Stay at minimum throttle until a takeoff setpoint is issued.
2016-12-15 10:17:03 +01:00
Julian Oes
c64b8c7095 mc_pos_control: always use fabsf and not fabs 2016-12-15 10:17:03 +01:00
Julian Oes
e01eaf172a Add body/NED frame for offboard velocity control
This adds the possibility to use offboard velocity control in the body
frame and not just the NED (world) frame.

The frame is set in the set_position_target_local_ned message and passed
on to mc_pos_control in the position_setpoint topic.
2016-12-15 10:17:03 +01:00
Julian Oes
e3aecc0762 state_machine_helper: remove unused const var 2016-12-15 10:17:03 +01:00
Julian Oes
5b132aef70 mc_pos_control: hold position at offboard vel 0
If velocity offboard control is used, it makes sense to lock/hold
position if the velocity input is 0. If this is not done, we will slowly
drift because nothing is integrating to keep the UAV at its position.
2016-12-15 10:17:03 +01:00
Julian Oes
0b02a6e0f7 state_machine_helper: warn about offboard lost, not RC
When offboard input stops and we're in OFFBOARD mode, we should complain
about offboard being lost and not RC because we probably never even had RC.
2016-12-15 10:17:03 +01:00
Julian Oes
454cd33a5e mc_pos_control: move stuff where it belongs 2016-12-15 10:17:03 +01:00
Julian Oes
0b37272d75 mc_pos_control: further reshuffling
Should not have any functional change
2016-12-15 10:17:03 +01:00
Julian Oes
61fff54cbe mc_pos_control: copy triplet in one place only 2016-12-15 10:17:03 +01:00
Julian Oes
432824d603 mc_pos_control: move attitude setpoint to function
Again, no functional change, just refactor.
2016-12-15 10:17:03 +01:00
Julian Oes
c200e581c3 mc_pos_control: move control into functions
This is only a refactor with no functional change
2016-12-15 10:17:03 +01:00
Julian Oes
3ac056924c navigator: increase stack
The stack size was generally ok but seemed to get exhausted in the case
of a waypoint which is too far away and therefore exercises some more
code in the mission feasability checker.

Generally, we should have more margin in the navigator stack size
because there are a bunch of different code paths that can happen.
2016-12-15 09:05:02 +01:00
Julian Oes
a096b97455 Revert "navigator: increase stack"
This reverts commit 6a6e9d02a312bad94cd164ff7928336472576fec.
2016-12-15 09:05:02 +01:00
Mark Whitehorn
08d36fe2af move initial pwm trim update to pwm_ioctl load case 2016-12-15 00:13:59 +01:00
Julian Oes
6a6e9d02a3 navigator: increase stack
The stack size was generally ok but seemed to get exhausted in the case
of a waypoint which is too far away and therefore exercises some more
code in the mission feasability checker.

Generally, we should have more margin in the navigator stack size
because there are a bunch of different code paths that can happen.
2016-12-15 00:12:54 +01:00
Julian Oes
8a6af658f3 navigator: don't omit printf value
There was a mismatch between the printf arguments and what was defined
in the fmt.
2016-12-15 00:12:54 +01:00
Roman
3392e3f9f7 bebop2 upload script: create microsd filesystem so that logger does not
complain

Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-15 00:11:13 +01:00
Roman
34d253e4d0 bebop2: let PX4_ROOTFSDIR point to the internal mmc card
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-15 00:11:13 +01:00
Roman
5ce24e82f5 bebop2 apps: start other important apps, use ekf2 as estimator
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-15 00:11:13 +01:00
Julian Oes
18dd6923e6 integrationtests: use Python2 for dependencies
This changes the shebang of the integration test files to python2
because the scripts fail on systems with Python 3 as the default.

Even though ROS has been ported to Python 3, there are still some
dependencies not playing along.

The error that comes up when starting with Python 3 is:
> No module named 'mavexpression'
2016-12-15 00:10:57 +01:00
Julian Oes
1c2194c600 gps: fix cli parsing
The gps driver did not give feedback if a non-existing verb was used
such as `gps foo`. Also, the goto out was ugly and the usage always
marked as an error when it's really an info. This cleans it up a bit.
2016-12-15 00:10:27 +01:00
Julian Oes
12c5ed39ae gps: fix faking so that ekf2 initializes
This changes the faked GPS values in order to get ekf2 to initialize.
2016-12-15 00:10:27 +01:00
Michael Schaeuble
ed2d28d5dc Use time-stamped integrator in Posix MPU6050 driver 2016-12-15 00:09:07 +01:00
Julian Oes
f6c573e882 mavlink: don't send uninitialized bytes
Valgrind did not approve uninitialized bytes from either home or
vehicle global position to be sent.
2016-12-14 22:08:26 +01:00
Beat Küng
66925bc065 voted_senors_update: fix style after rebase 2016-12-14 19:57:54 +01:00
Beat Küng
d4da626e78 sensors: move sensors with voting into a separate class 2016-12-14 19:57:54 +01:00
Beat Küng
f9b3b5a799 sensors: break off parameters initialization into separate source file 2016-12-14 19:57:54 +01:00
Beat Küng
c5e485bdd7 sensors: break off RC handling into its own class 2016-12-14 19:57:54 +01:00
Beat Küng
4e2d0500a1 sensors: use orb_publish_auto where possible 2016-12-14 19:57:54 +01:00
Lorenz Meier
4b0647d9c0 Condition the GPS check always on the commander GPS prearm check param (#6055) 2016-12-14 15:30:24 +01:00
Daniel Agar
17990cf5dc geofence fix combined simple and polygon logic
- require being inside both fences, not either
2016-12-14 08:49:13 +01:00
Daniel Agar
bce7ecb0f6 Iridium driver and support
Mavlink module implement HIGH_LATENCY (Iridium)
2016-12-14 08:20:01 +01:00
Lorenz Meier
77e482a30e Rover: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
e74094db5a ZMR: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
1bf45610fe 250: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
91b39d14c3 Reaper: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
45549890ad Micro PCB: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
679803ab1a Caipi: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
83f5ed5d42 Albatross: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
3d771d6c8a Maja: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
85e388839f AERT: Refresh airframe config 2016-12-13 16:14:15 +01:00
Lorenz Meier
fbce24bb65 Heli: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
f9d1cd6f1f Coax: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
38a431b267 TBS endurance: Refresh config 2016-12-13 16:14:15 +01:00
Lorenz Meier
b2d48f65bf MC att ctrl: Properly initialize members 2016-12-13 16:14:15 +01:00
Lorenz Meier
c9b7b6bbb5 TAP ESC: Secure being the first publisher of all outputs / reports 2016-12-13 16:14:15 +01:00
Lorenz Meier
ac3aa3e85c FMU driver: Avoid trashing existing publicacations for RC, motor outputs, etc. 2016-12-13 16:14:15 +01:00
Lorenz Meier
c23378e70d Update heli mixer, not reporting saturation yet 2016-12-13 16:14:15 +01:00
Paul Riseborough
da6d4398e9 px4fmu: publish mixer saturation data to uORB 2016-12-13 16:14:15 +01:00
Paul Riseborough
ca6f67fd3b tap_esc: publish mixer saturation status to uORB 2016-12-13 16:14:15 +01:00
Lorenz Meier
27d5ecaaa9 Fix multirotor code style 2016-12-13 16:14:15 +01:00
Paul Riseborough
8b55c8ec55 systemlib mixer: Add public method for multi_rotor saturation status 2016-12-13 16:14:15 +01:00
Paul Riseborough
eb67686b11 mc_att_control: Improve integrator wind-up protection
Use reporting from the motor mixer to only restrict integrator growth when it will result in increased saturation of the control axis concerned.
Enable absolute integrator limits to be set by parameter
2016-12-13 16:14:15 +01:00
Paul Riseborough
efb7131186 px4io: improve multi-rotor motor saturation status reporting 2016-12-13 16:14:15 +01:00
Paul Riseborough
57a6faf8a2 px4iofirmware: remove unused defines 2016-12-13 16:14:15 +01:00
Paul Riseborough
c4ccfeae0d mixer: improve multirotor motor limits reporting 2016-12-13 16:14:15 +01:00
Paul Riseborough
3835e8cd79 msg: improve multirotor_motor_limits reporting 2016-12-13 16:14:15 +01:00
Andreas Antener
1f72068de3 Integrationtests: updated script to properly handle log uploads 2016-12-13 10:20:14 +01:00
Andreas Antener
14f75bc8a3 SITL CI: Remove log upload from test script and move into separate one 2016-12-13 10:20:14 +01:00
Andreas Antener
be2451cfc7 SITL: use logger for standard_vtol and upload *.ulg files after integrationtests 2016-12-13 10:20:14 +01:00
Andreas Antener
3ff0609f26 Integrationtests: upload test logs to flight review 2016-12-13 10:20:14 +01:00
Andreas Antener
30445ebd68 log upload: ignore error if we cannot get git email, really be quiet with -q except for printing the URL in the end 2016-12-13 10:20:14 +01:00
Lorenz Meier
cc92339602 pwm command: Fix off-by-one in param parsing 2016-12-13 09:18:59 +01:00
Lorenz Meier
f60bde9edd Protect variables correctly during expansion 2016-12-13 09:18:59 +01:00
Lorenz Meier
73689e65ee Update VTOL setup for PWM outputs 2016-12-13 09:18:59 +01:00
Lorenz Meier
7d0db35e90 Update PWM params to match standard usage in system 2016-12-13 09:18:59 +01:00
Lorenz Meier
c1d7a3d2ff rcS: Default PWM settings to params 2016-12-13 09:18:59 +01:00
Lorenz Meier
3bb9dbba98 Better param PWM defaults for multicopter 2016-12-13 09:18:59 +01:00
Lorenz Meier
fce8e3eb23 Better param PWM defaults for fixed wing 2016-12-13 09:18:59 +01:00
Lorenz Meier
e0d770983c FW: Handle PWM params in startup 2016-12-13 09:18:59 +01:00
Lorenz Meier
421b4fb6fb MC: Handle PWM params in startup 2016-12-13 09:18:59 +01:00
Roman
8e8336a83f gps drivers submodule: updated after removing unnecessary baud rate 2016-12-12 23:48:15 +01:00
Roman
0acdf32ed5 gps driver: removed unnecessary baud rate
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-12 23:48:15 +01:00
Roman
e6cbbac120 gps devices: update submodule 2016-12-12 23:48:15 +01:00
Roman
88f771fc1e bebop2 startup config: start gps driver
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-12 23:48:15 +01:00
Roman
d10c4dd824 gps driver: added more baud rates in order to support bebop2
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-12 23:48:15 +01:00
Roman
4fab448000 build gps driver for bebop2
Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-12 23:48:15 +01:00
Lorenz Meier
1926c7bca7 Revert "Implement the way to run posix simulator directly from IDE without the need to reconfigure command lines, but use runner created via CMake"
This reverts commit fff493474356f34c32075cc4f67e50d787efa7a2.
2016-12-12 22:32:34 +01:00
Lorenz Meier
4cb9903561 UAVCAN: Be less verbose on boot 2016-12-12 16:11:21 +01:00
Lorenz Meier
4c714f0e46 Load mon: Be less verbose on boot 2016-12-12 16:11:21 +01:00
Lorenz Meier
0d174be0a0 IO: Remove unnecessary boot output 2016-12-12 16:11:21 +01:00
Lorenz Meier
6820eb7a0c MS5611: Less chatty boot 2016-12-12 16:11:21 +01:00
Lorenz Meier
dd6d1136b3 LIS3MLD: Remove unnecessary boot output left over from driver bringup 2016-12-12 16:11:21 +01:00
Lorenz Meier
2b518278df HMC5883: Silence chatty boot 2016-12-12 16:11:21 +01:00
Matthias Grob
d1a2f52246 fix segmentation fault when running local_position_estimator module without arguments
argv[1] was read even if argc < 2 -> segmentation fault when running without arguments
the return saves this
2016-12-12 15:25:05 +01:00
Daniel Agar
c98927121d crazyflie_default upload for QGC (#6030) 2016-12-11 13:59:35 -05:00
Andreas Antener
17f49ec8cb Integration tests: use separate commands to set mode and arm 2016-12-11 17:00:09 +01:00
Julian Oes
adc9ed61b8 commander: ignore arm/disarm in DO_SET_MODE cmd
According to https://github.com/mavlink/mavlink/pull/629 the mavlink
command DO_SET_MODE should only determine the mode but not the
armed/disarmed state, so the MAV_MODE_FLAG_SAFETY_ARMED bit should be
ignored.
Instead the mavlink command COMPONENT_ARM_DISARM should be used instead.

Therefore, the commander now ignores the arm/disarm bit.
2016-12-11 17:00:09 +01:00
Dennis Shtatnov
f23b5e4699 Syslink bootloader faker 2016-12-11 09:52:24 +01:00
Dennis Shtatnov
1ab6635ffe ACKs for syslink radio parameters. Fixes #6005 2016-12-11 09:52:24 +01:00
Lorenz Meier
d817d331fd Add set trim API for helicopter mixer 2016-12-10 14:45:49 +01:00
Bart Slinger
a7c8d77453 Generic helicopter mixer
fix code style
2016-12-10 14:45:49 +01:00
Mark Whitehorn
d8d9ab1bfb switch fmu-v2 config back to old logger: config now identical to master 2016-12-10 12:56:39 +01:00
Mark Whitehorn
88126e560f remove trim command: replaced by trim parameters 2016-12-10 12:56:39 +01:00
Mark Whitehorn
fc906a79b0 delete commented code 2016-12-10 12:56:39 +01:00
Mark Whitehorn
086043a237 remove unused variable 2016-12-10 12:56:39 +01:00
Mark Whitehorn
6257d9bde1 remove pwm "trim" command; replaced by parameter values 2016-12-10 12:56:39 +01:00
Mark Whitehorn
86252e19e6 clean up other build targets 2016-12-10 12:56:39 +01:00
Mark Whitehorn
f0b41a0e52 change main trims to normalized values 2016-12-10 12:56:39 +01:00
Mark Whitehorn
dbc149c224 change trim units from absolute usec to normalized values 2016-12-10 12:56:39 +01:00
Mark Whitehorn
d8528f46ce remove DEBUG_BUILD from fmu.cpp compile flags 2016-12-10 12:56:39 +01:00
Mark Whitehorn
764101e41e bump parameter minor version 2016-12-10 12:56:39 +01:00
Mark Whitehorn
876ab45bf3 fix errors in crazyflie and navio builds 2016-12-10 12:56:39 +01:00
Mark Whitehorn
d4c707e698 remove INAV and switch to new logger for fmu-v2 builds
roughly 10K bytes below the 1MiB limit
2016-12-10 12:56:39 +01:00
Mark Whitehorn
e80ef34b0d retest FMU control latency 2016-12-10 12:56:39 +01:00
Mark Whitehorn
009a413438 fix argument order in pwm_limit_calc call, clean up
note that FMU does not update AUX pwm outputs if no RC signal
2016-12-10 12:56:39 +01:00
Mark Whitehorn
f3c3d1f7f9 fix rebase merge error 2016-12-10 12:56:39 +01:00
Mark Whitehorn
257e236c92 add errno to error message 2016-12-10 12:56:39 +01:00
Mark Whitehorn
5601ca19de astyle 2016-12-10 12:56:39 +01:00
Mark Whitehorn
0ccfcab010 fmu trims still not working 2016-12-10 12:56:39 +01:00
Bartosz Wawrzacz
bb52a77194 [PX4IO/PWM driver] Fixed a bug in px4io driver 2016-12-10 12:56:39 +01:00
Mark Whitehorn
82bfaf3967 debugging fmu mode_pwm4 not recognized 2016-12-10 12:56:39 +01:00
Mark Whitehorn
ea83b67bd8 add trim parameter handling 2016-12-10 12:56:39 +01:00
Mark Whitehorn
9ced4afca3 add AUX trim parameters 2016-12-10 12:56:39 +01:00
Mark Whitehorn
a0c8a78a14 use trim values to set mixer:scaler.offset
clamp mixer output offset to [-.2,.2] ([-2000, 2000] in mixer file)

add 8 main PWM trim parameters

add long desc to parameters and bump minor parameter version
2016-12-10 12:56:39 +01:00
Bartosz Wawrzacz
619efa7b45 [PX4IO/PWM driver] Added trim values to the PWM output drivers 2016-12-10 12:56:39 +01:00
David Sidrane
4494182bfc Update rc.interface 2016-12-10 12:49:25 +01:00
Anton Matosov
fff4934743 Implement the way to run posix simulator directly from IDE without the need to reconfigure command lines, but use runner created via CMake
Steps to debug:
 * Run gazebo (or any other sim) server and client viewers via the terminal: `make posix_sitl_default gazebo_none_ide`
 * In your IDE select `px4_<mode>` target you want to debug (e.g. `px4_iris`)
 * Start debug session directly from IDE

This approach significantly reduces the debug cycle time because simulator (e.g. gazebo) is always running in background and you only re-run px4 process which is very light.
2016-12-10 12:48:53 +01:00
Anton Matosov
a2c0391bcc Rework TPA to have per-component setup and use more stable and intuitive function
This also adds a ZMR250 config.
2016-12-10 12:42:47 +01:00
Lorenz Meier
1bef1ae34a Make space in test config 2016-12-10 01:00:11 +01:00
Andreas Antener
64778b9540 Load monitor: added parameter to disable stack check 2016-12-09 21:12:12 +01:00
Andreas Antener
72f52c920c Load monitor: reduce scope of scheduler locking 2016-12-09 21:12:12 +01:00
Andreas Antener
806b8d3a67 Load monitor: free counter 2016-12-09 21:12:12 +01:00
Andreas Antener
a0cf938ced Load monitor: lock scheduler for stack check and added performance counter for stack checking 2016-12-09 21:12:12 +01:00
Andreas Antener
dda0de09dd Load monitor: optimize performance of stack checking 2016-12-09 21:12:12 +01:00
Andreas Antener
a74269ec60 Load monitor: adding stack logging to logger 2016-12-09 21:12:12 +01:00
Andreas Antener
c0c75d07c9 Removed 'degree' character that caused python3 to act up while pruning the mixer file 2016-12-09 21:12:12 +01:00
Andreas Antener
62103be7ba Load monitor: report and log processes low on stack 2016-12-09 21:12:12 +01:00
Michael Schaeuble
b0ee5256d5 Disable LPE in px4fmu-v2_default
With GCC 4.9 the binary is to large for the flash memory.
This is why we disabled LPE on that platform.
2016-12-09 18:59:42 +01:00
Michael Schaeuble
bdb76d013e Fix incorrect MPU9250 device ID
We propagate the bus parameters from the bus interface to the sensor
devices. Thus, the device ID of the sensor driver is set to the correct
bus id and address. Otherwise it would be zero, which is an issue if several MPU9250s
are running at the same time.
2016-12-09 18:59:42 +01:00
Paul Riseborough
1fbc688757 Commander: Fix pre-flight EKF check errors 2016-12-09 17:58:23 +01:00
Beat Küng
9442c89691 Tools/upload_log.py: add script to upload ulog file to logs.px4.io 2016-12-09 17:57:29 +01:00
Julian Oes
1424994bc0 navigator: don't takeoff in loiter on ground
This fixes the following corner case:
1. Upload a mission.
2. Set mission mode.
3. Set loiter mode.
4. Arm.
At this point it will shoot up and go to the takeoff waypoint even
though we're not in mission but in loiter mode.

The fix makes sure that the triplet is reset to invalid (and idle) in
loiter mode if we're landed and disarmed.
It will lead to the vehcle sit in idle on the ground until you issue a
start mission (or takeoff) command.
2016-12-08 15:07:14 +01:00
Dennis Mannhart
dd1ca0daa2 correctin from user input to roll and pitch 2016-12-08 15:06:00 +01:00
Dennis Mannhart
6906d966ce manual input mapping to roll and pitch 2016-12-08 15:06:00 +01:00
Roman
0c49abbef8 standard vtol: correctly modify attitude for pusher assist
- fix a bug where the wrong rotation order was used to compute the attitude
setpoint when using the pusher assist feature

Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-08 15:05:43 +01:00
Samay Siga
6b08ba6272 Update 13010_claire
updated VT_FW_MOT_OFFID
2016-12-07 20:54:49 +01:00
Samay Siga
e3ef206846 Update claire.aux.mix
Replaced individual elevator and aileron into "elevons"
2016-12-07 20:17:43 +01:00
Daniel Agar
1941dfca87 add tests code coverage
-closes #5862
2016-12-07 20:17:00 +01:00
1490 changed files with 142562 additions and 30746 deletions

85
.clang-tidy Normal file
View File

@ -0,0 +1,85 @@
Checks: '*
,-cert-dcl50-cpp
,-cert-err34-c
,-cert-err58-cpp
,-cert-msc30-c
,-cert-msc50-cpp
,-clang-analyzer-core.CallAndMessage
,-clang-analyzer-core.NullDereference
,-clang-analyzer-core.UndefinedBinaryOperatorResult
,-clang-analyzer-core.uninitialized.Assign
,-clang-analyzer-core.VLASize
,-clang-analyzer-cplusplus.NewDeleteLeaks
,-clang-analyzer-deadcode.DeadStores
,-clang-analyzer-optin.cplusplus.VirtualCall
,-clang-analyzer-optin.performance.Padding
,-clang-analyzer-security.insecureAPI.strcpy
,-clang-analyzer-unix.cstring.BadSizeArg
,-clang-analyzer-unix.Malloc
,-clang-analyzer-unix.MallocSizeof
,-cppcoreguidelines-c-copy-assignment-signature
,-cppcoreguidelines-interfaces-global-init
,-cppcoreguidelines-no-malloc
,-cppcoreguidelines-pro-bounds-array-to-pointer-decay
,-cppcoreguidelines-pro-bounds-constant-array-index
,-cppcoreguidelines-pro-bounds-pointer-arithmetic
,-cppcoreguidelines-pro-type-const-cast
,-cppcoreguidelines-pro-type-cstyle-cast
,-cppcoreguidelines-pro-type-member-init
,-cppcoreguidelines-pro-type-reinterpret-cast
,-cppcoreguidelines-pro-type-union-access
,-cppcoreguidelines-pro-type-vararg
,-cppcoreguidelines-special-member-functions
,-google-build-using-namespace
,-google-explicit-constructor
,-google-global-names-in-headers
,-google-readability-casting
,-google-readability-namespace-comments
,-google-readability-todo
,-google-runtime-int
,-google-runtime-references
,-llvm-header-guard
,-llvm-include-order
,-llvm-namespace-comment
,-misc-incorrect-roundings
,-misc-macro-parentheses
,-misc-misplaced-widening-cast
,-misc-redundant-expression
,-misc-unconventional-assign-operator
,-misc-unused-parameters
,-modernize-deprecated-headers
,-modernize-loop-convert
,-modernize-use-auto
,-modernize-use-bool-literals
,-modernize-use-default-member-init
,-modernize-use-emplace
,-modernize-use-equals-default
,-modernize-use-equals-delete
,-modernize-use-override
,-modernize-use-using
,-performance-inefficient-string-concatenation
,-readability-avoid-const-params-in-decls
,-readability-else-after-return
,-readability-implicit-bool-cast
,-readability-inconsistent-declaration-parameter-name
,-readability-non-const-parameter
,-readability-redundant-declaration
,-readability-redundant-member-init
,-readability-simplify-boolean-expr
'
WarningsAsErrors: '*'
CheckOptions:
- key: google-readability-braces-around-statements.ShortStatementLines
value: '1'
- key: google-readability-function-size.BranchThreshold
value: '600'
- key: google-readability-function-size.LineThreshold
value: '4000'
- key: google-readability-function-size.StatementThreshold
value: '4000'
- key: readability-braces-around-statements.ShortStatementLines
value: '1'
- key: readability-function-size.LineThreshold
value: '4000'
- key: readability-function-size.StatementThreshold
value: '4000'

24
.gitignore vendored
View File

@ -20,6 +20,9 @@
Archives/*
Build/*
Testing/
Packages/*
s3deploy-branch/
s3deploy-archive/
build/*
build_*/
core
@ -28,15 +31,6 @@ cscope.in.out
cscope.po.out
Firmware.sublime-workspace
user.sublime*
Images/*.bin
Images/*.px4
mavlink/include/mavlink/v0.9/
/nuttx-configs/px4io-v2/src/.depend
/nuttx-configs/px4io-v2/src/Make.dep
/nuttx-configs/px4io-v2/src/libboard.a
/nuttx-configs/px4io-v1/src/.depend
/nuttx-configs/px4io-v1/src/Make.dep
/nuttx-configs/px4io-v1/src/libboard.a
/Documentation/doxy.log
/Documentation/html/
/Documentation/doxygen*objdb*tmp
@ -77,3 +71,15 @@ vectorcontrol/
# CLion ignores
.idea
cmake-build-*/
posix-configs/SITL/init/test/*_generated
parameters.md
airframes.md
airframes.xml
cppcheck-result.xml
cppcheck
scan-build

2
.gitmodules vendored
View File

@ -6,7 +6,7 @@
url = https://github.com/mavlink/c_library_v2.git
[submodule "NuttX"]
path = NuttX
url = https://github.com/PX4/NuttX.git
url = https://github.com/PX4/PX4NuttX.git
[submodule "src/modules/uavcan/libuavcan"]
path = src/modules/uavcan/libuavcan
url = https://github.com/UAVCAN/libuavcan.git

View File

@ -4,123 +4,101 @@
language: cpp
git:
depth: 1000
depth: 2000
submodules: false
matrix:
fast_finish: true
include:
- os: linux
sudo: required
env: GCC_VER=4.9 DOCKER_REPO="px4io/px4-dev-base:2016-10-20"
services:
- docker
- os: osx
sudo: true
osx_image: xcode8
env: CCACHE_CPP2=1
env: BUILD_TARGET=check_format
- os: linux
sudo: required
services:
- docker
env: BUILD_TARGET=tests
- os: linux
sudo: required
services:
- docker
env: BUILD_TARGET=clang-tidy
- os: linux
sudo: required
services:
- docker
env: BUILD_TARGET=scan-build
- os: linux
sudo: required
services:
- docker
env: BUILD_TARGET=cppcheck
- os: linux
sudo: required
services:
- docker
env: BUILD_TARGET=px4_metadata
- os: linux
dist: trusty
sudo: required
env: BUILD_TARGET=coverity_scan
cache:
ccache: true
pip: true
directories:
- $HOME/.pip/cache/
- $HOME/Library/Caches/pip
before_install:
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
cd ${TRAVIS_BUILD_DIR}
&& git fetch --unshallow && git fetch --all --tags
&& docker pull ${DOCKER_REPO}
;
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
sudo -H easy_install pip
&& sudo -H pip install empy
&& wget https://s3.amazonaws.com/px4-travis/toolchain/macos/ccache
&& sudo mv ccache /usr/local/bin
&& chmod +x /usr/local/bin/ccache
&& mkdir -p ~/bin
&& sudo ln -s /usr/local/bin/ccache ~/bin/c++
&& sudo ln -s /usr/local/bin/ccache ~/bin/cc
&& sudo ln -s /usr/local/bin/ccache ~/bin/clang
&& sudo ln -s /usr/local/bin/ccache ~/bin/clang++
&& sudo ln -s /usr/local/bin/ccache ~/bin/g++
&& sudo ln -s /usr/local/bin/ccache ~/bin/gcc
&& export PATH=~/bin:$PATH
&& wget https://s3.amazonaws.com/px4-travis/toolchain/macos/ninja
&& sudo mv ninja /usr/local/bin
&& chmod +x /usr/local/bin/ninja
;
# install dependencies for the coverity build (target and branch), otherwise exit early
- if [[ "${TRAVIS_BRANCH}" = "coverity" ]]; then
if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then sudo apt-get install genromfs && pip install empy jinja2; else exit 0; fi;
fi
env:
global:
# AWS KEY: $PX4_AWS_KEY
# COVERITY KEY
- secure: "NyaJoCGjU0Xc90Y6bxVYWLgjrJX5HlZsm/SPxruZ6I7xkGo19fJIFzGegOHQFR32D4AiKjllfjTUNy+ncckWplind0QwxtF4/kxXrz9XBfiby6X8jLYXIekrB6Ay0mBLGbniDdh+lpWtcyop6Dmkt5bdJCJuKY2nv9ENnhhs07M="
# AWS KEY: $PX4_AWS_KEY
- secure: "XknnZHWBbpHbN4f3fuAVwUztdLIu8ej4keC3aQSDofo3uw8AFEzojfsQsN9u77ShWSIV4iYJWh9C9ALkCx7TocJ+xYjiboo10YhM9lH/8u+EXjYWG6GHS8ua0wkir+cViSxoLNaMtmcb/rPTicJecAGANxLsIHyBAgTL3fkbLSA="
# AWS SECRET: $PX4_AWS_SECRET
# AWS SECRET: $PX4_AWS_SECRET
- secure: "h6oajlW68dWIr+wZhO58Dv6e68dZHrBLVA6lPXZmheFQBW6Xam1HuLGA0LOW6cL9TnrAsOZ8g4goB58eMQnMEijFZKi3mhRwZhd/Xjq/ZGJOWBUrLoQHZUw2dQk5ja5vmUlKEoQnFZjDuMjx8KfX5ZMNy8A3yssWZtJYHD8c+bk="
- PX4_AWS_BUCKET=px4-travis
- GIT_SUBMODULES_ARE_EVIL=1
script:
- ccache -M 1GB; ccache -z
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
docker run --rm -v `pwd`:`pwd`:rw -v $HOME/.ccache:$HOME/.ccache:rw -e CCACHE_DIR=$HOME/.ccache -e CI=true -e GIT_SUBMODULES_ARE_EVIL=1 -w=`pwd` --user=$UID -it ${DOCKER_REPO} /bin/bash -c "make check_qgc_firmware VECTORCONTROL=0";
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
make tests;
- if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then
echo "no script for coverity build";
elif [[ "${TRAVIS_BRANCH}" = "coverity" ]]; then
echo "exit early for coverity build" && exit 0;
elif [[ "${BUILD_TARGET}" = "check_format" ]]; then
./Tools/docker_run.sh 'make check_format';
elif [[ "${BUILD_TARGET}" = "tests" ]]; then
./Tools/docker_run.sh 'make tests';
elif [[ "${BUILD_TARGET}" = "px4_metadata" ]]; then
./Tools/docker_run.sh 'make px4_metadata';
elif [[ "${BUILD_TARGET}" = "clang-tidy" ]]; then
./Tools/docker_run.sh 'make clang-tidy-quiet';
fi
- ccache -s
after_success:
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
make package_firmware && mkdir s3deploy-archive && cp Firmware.zip s3deploy-archive/
&& find . -type f -name 'nuttx-*-default.px4' -exec cp "{}" . \;
&& find . -maxdepth 1 -mindepth 1 -type f -name 'nuttx-*-default.px4' | sed 's/.\/nuttx-//' | sed 's/-default.px4//' | xargs -I{} mv nuttx-{}-default.px4 {}_default.px4
&& mkdir s3deploy-branch && mv *_default.px4 build_px4fmu-v2_default/parameters.xml build_px4fmu-v2_default/airframes.xml s3deploy-branch/;
# s3 upload airframe and parameter metadata
- if [[ "${BUILD_TARGET}" = "px4_metadata" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
./Tools/docker_run.sh 'make s3put_metadata AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}"';
fi
- if [[ "${TRAVIS_OS_NAME}" = "linux" && "$GCC_VER" == "4.9" ]]; then
export PX4_S3_DEPLOY=1;
# s3 upload clang scan-build output for master branch
- if [[ "${BUILD_TARGET}" = "scan-build" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
./Tools/docker_run.sh 'make s3put_scan-build AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/scan-build"';
fi
# s3 upload cppcheck output for master branch
- if [[ "${BUILD_TARGET}" = "cppcheck" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
./Tools/docker_run.sh 'make s3put_cppcheck AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/cppcheck"';
fi
deploy:
# deploy *.px4 to S3 px4-travis/Firmware/$TRAVIS_BRANCH
- provider: s3
access_key_id: $PX4_AWS_KEY
secret_access_key:
secure: $PX4_AWS_SECRET
bucket: px4-travis
local_dir: s3deploy-branch
upload-dir: Firmware/$TRAVIS_BRANCH
acl: public_read
skip_cleanup: true
on:
all_branches: true
condition: $PX4_S3_DEPLOY = 1
# deploy Firmware.zip to S3 px4-travis/archives/Firmware/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID
- provider: s3
access_key_id: $PX4_AWS_KEY
secret_access_key:
secure: $PX4_AWS_SECRET
bucket: px4-travis
local_dir: s3deploy-archive
upload-dir: archives/Firmware/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID
acl: public_read
skip_cleanup: true
on:
all_branches: true
condition: $PX4_S3_DEPLOY = 1
# on tags deploy Firmware.zip to Github releases
- provider: releases
api_key:
secure: cdHWLRBxA5UlYpOS0Sp891QK7PFmMgQ5ZWs1aPt+sw0rIrowyWMHCwXNBEdUqaExHYNYgXCUDI0EzNgfB7ZcR63Qv1MQeoyamV4jsxlyAqDqmxNtWO82S6RhHGeMLk26VgFKzynVcEk1IYlQP2nqzMQLdu+jTrngERuAIrCdRuc=
file: "Firmware.zip"
skip_cleanup: true
on:
tags: true
all_branches: true
repo: PX4/Firmware
condition: $GCC_VER = 4.9
addons:
coverity_scan:
project:
name: PX4/Firmware
notification_email: ci@px4.io
build_command: make posix_sitl_default
branch_pattern: coverity
notifications:
webhooks:

View File

@ -1,6 +1,6 @@
############################################################################
#
# Copyright (c) 2015 PX4 Development Team. All rights reserved.
# Copyright (c) 2017 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@ -55,24 +55,6 @@
#
# * For else, endif, endfunction, etc, never put the name of the statement
#
# Instead of the very confusing:
# if (${var} STREQUAL "1") <-- condition now becomes if name
# # do somthing
# elseif (${var} STREQUAL "2") <-- another condition
# # do somthing
# else (${var} STREQUAL "1") <-- tag is referring to name of if
# # do somthing
# endif (${var} STREQUAL "1") <-- tag is referring to name of if
#
# Do this:
# if (${var} STREQUAL "1") <-- condition now becomes if name
# # do somthing
# elseif (${var} STREQUAL "2") <-- another condition
# # do somthing
# else () <-- leave blank
# # do somthing
# endif () <-- leave blank
#
# Functions/Macros
# ---------------------------------------------------------------------------
#
@ -101,7 +83,7 @@
#
# * Setting a global variable in a CMakeLists.txt file is ok, because
# each CMakeLists.txt file has scope in the current directory and all
# subdirecties, so it is not truly global.
# subdirectories, so it is not truly global.
#
# * All toolchain files should be included in the cmake
# directory and named Toolchain-"name".cmake.
@ -117,9 +99,18 @@
#
#=============================================================================
if ("${CMAKE_VERSION}" VERSION_LESS 3.1.0)
message("Not a valid CMake version")
message("On Ubuntu >= 16.04, install or upgrade via:")
message(" sudo apt-get install cmake")
message("")
message("Official website: https://cmake.org/download/")
message(FATAL_ERROR "Update CMake and try again" )
endif()
# Warning: Changing this modifies CMake's internal workings
# and leads to wrong toolchain detection
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
set(PX4_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(PX4_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
@ -129,37 +120,107 @@ execute_process(
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
# Use clang
#SET (CMAKE_C_COMPILER /usr/bin/clang-3.6)
#SET (CMAKE_CXX_COMPILER /usr/bin/clang++-3.6)
#=============================================================================
# parameters
#
set(CMAKE_BUILD_TYPE "" CACHE STRING "build type")
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
STRINGS ";Debug;Release;RelWithDebInfo;MinSizeRel")
set(CONFIG "posix_sitl_default" CACHE STRING "desired configuration")
file(GLOB_RECURSE configs RELATIVE cmake/configs "cmake/configs/*.cmake")
set_property(CACHE CONFIG PROPERTY STRINGS ${configs})
set(THREADS "4" CACHE STRING
"number of threads to use for external build processes")
set(DEBUG_PORT "/dev/ttyACM0" CACHE STRING "debugging port")
set(EXTERNAL_MODULES_LOCATION "" CACHE STRING "External modules source location")
#=============================================================================
# configuration
#
# must come before project to set toolchain
set(CONFIG "posix_sitl_default" CACHE STRING "desired configuration")
string(REPLACE "_" ";" config_args ${CONFIG})
list(GET config_args 0 OS)
list(GET config_args 1 BOARD)
list(GET config_args 2 LABEL)
set(target_name "${OS}-${BOARD}-${LABEL}")
message(STATUS "${target_name}")
file(GLOB_RECURSE configs RELATIVE cmake/configs "cmake/configs/*.cmake")
set_property(CACHE CONFIG PROPERTY STRINGS ${configs})
set(THREADS "4" CACHE STRING "number of threads to use for external build processes")
set(DEBUG_PORT "/dev/ttyACM0" CACHE STRING "debugging port")
set(EXTERNAL_MODULES_LOCATION "" CACHE STRING "External modules source location")
if (NOT EXTERNAL_MODULES_LOCATION STREQUAL "")
get_filename_component(EXTERNAL_MODULES_LOCATION "${EXTERNAL_MODULES_LOCATION}" ABSOLUTE)
endif()
list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/cmake")
message(STATUS "CMAKE_MODULE_PATH: ${CMAKE_MODULE_PATH}")
set(config_module "configs/${CONFIG}")
include(${config_module})
include(common/coverage)
include(common/sanitizers)
# CMake build type
# Debug Release RelWithDebInfo MinSizeRel Coverage
if (NOT CMAKE_BUILD_TYPE)
if (${OS} STREQUAL "nuttx")
set(PX4_BUILD_TYPE "MinSizeRel")
elseif (${OS} STREQUAL "qurt")
set(PX4_BUILD_TYPE "MinSizeRel")
elseif (${OS} STREQUAL "bebop")
set(PX4_BUILD_TYPE "MinSizeRel")
else()
set(PX4_BUILD_TYPE "RelWithDebInfo")
endif()
set(CMAKE_BUILD_TYPE ${PX4_BUILD_TYPE} CACHE STRING "Build type" FORCE)
endif()
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug;Release;RelWithDebInfo;MinSizeRel;Coverage")
message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}")
#=============================================================================
# git
#
include(common/px4_git)
execute_process(
COMMAND git describe --always --tags
OUTPUT_VARIABLE git_tag
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
execute_process(
COMMAND Tools/tag_to_version.py --root ${PX4_SOURCE_DIR}
OUTPUT_VARIABLE git_version
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
px4_add_git_submodule(TARGET git_cmake_hexagon PATH "cmake/cmake_hexagon")
px4_add_git_submodule(TARGET git_driverframework PATH "src/lib/DriverFramework")
px4_add_git_submodule(TARGET git_ecl PATH "src/lib/ecl")
px4_add_git_submodule(TARGET git_gazebo PATH "Tools/sitl_gazebo")
px4_add_git_submodule(TARGET git_gencpp PATH "Tools/gencpp")
px4_add_git_submodule(TARGET git_genmsg PATH "Tools/genmsg")
px4_add_git_submodule(TARGET git_gps_devices PATH "src/drivers/gps/devices")
px4_add_git_submodule(TARGET git_gtest PATH "unittests/gtest")
px4_add_git_submodule(TARGET git_jmavsim PATH "Tools/jMAVSim")
px4_add_git_submodule(TARGET git_matrix PATH "src/lib/matrix")
px4_add_git_submodule(TARGET git_mavlink PATH "mavlink/include/mavlink/v1.0")
px4_add_git_submodule(TARGET git_mavlink2 PATH "mavlink/include/mavlink/v2.0")
px4_add_git_submodule(TARGET git_nuttx PATH "NuttX")
px4_add_git_submodule(TARGET git_uavcan PATH "src/modules/uavcan/libuavcan")
px4_create_git_hash_header()
#=============================================================================
message(STATUS "PX4 VERSION: ${git_tag}")
message(STATUS "CONFIG: ${target_name}")
# The URL for the elf file for crash logging
if (DEFINED ENV{BUILD_URI})
set(BUILD_URI $ENV{BUILD_URI})
else()
set(BUILD_URI "localhost")
endif()
add_definitions(-DBUILD_URI=${BUILD_URI})
# Define GNU standard installation directories
include(GNUInstallDirs)
@ -168,65 +229,52 @@ include(GNUInstallDirs)
include(ExternalProject)
# Setup install paths
if(NOT CMAKE_INSTALL_PREFIX)
if (NOT CMAKE_INSTALL_PREFIX)
if (${OS} STREQUAL "posix")
set(CMAKE_INSTALL_PREFIX "/usr" CACHE PATH "Install path prefix" FORCE)
endif()
endif()
message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
list(APPEND CMAKE_MODULE_PATH "${PX4_SOURCE_DIR}/cmake")
message(STATUS "cmake module path: ${CMAKE_MODULE_PATH}")
set(config_module "configs/${CONFIG}")
include(${config_module})
# cmake modules
include(ExternalProject)
if (CMAKE_INSTALL_PREFIX)
message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
endif()
#=============================================================================
# require px4 module interface
set(px4_required_interface
px4_os_prebuild_targets
px4_os_add_flags
)
foreach(cmd ${px4_required_interface})
if(NOT COMMAND ${cmd})
if (NOT COMMAND ${cmd})
message(FATAL_ERROR "${config_module} must implement ${cmd}")
endif()
endforeach()
set(px4_required_config
config_module_list
)
set(px4_required_config config_module_list)
foreach(conf ${px4_required_config})
if(NOT DEFINED ${conf})
if (NOT DEFINED ${conf})
message(FATAL_ERROR "cmake/${config_module} must define ${conf}")
endif()
endforeach()
# List the DriverFramework drivers
if(DEFINED config_df_driver_list)
message("DF Drivers: ${config_df_driver_list}")
endif()
# force static lib build
set(BUILD_SHARED_LIBS OFF)
#=============================================================================
# ccache
#
option(CCACHE "Use ccache if available" OFF)
find_program(CCACHE_PROGRAM ccache)
if (CCACHE AND CCACHE_PROGRAM)
message(STATUS "Enabled ccache: ${CCACHE_PROGRAM}")
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
endif()
#=============================================================================
# project definition
#
project(px4 CXX C ASM)
if (NOT ${CMAKE_VERSION} VERSION_LESS 3.0.0)
cmake_policy(SET CMP0045 NEW) # error on non-existent target in get prop
cmake_policy(SET CMP0046 NEW) # no non-existent targets as dependencies
cmake_policy(SET CMP0025 OLD) # still report AppleClang as Clang
endif()
if (NOT ${CMAKE_VERSION} VERSION_LESS 3.1.0)
cmake_policy(SET CMP0054 NEW) # don't dereference quoted variables
endif()
set(version_major 1)
set(version_minor 5)
set(version_patch 0)
set(version "${version_major}.${version_minor}.${version_patch}")
set(package-contact "px4users@googlegroups.com")
#=============================================================================
@ -242,16 +290,16 @@ if (CATKIN_DEVEL_PREFIX)
else()
message(FATAL_ERROR "catkin not found")
endif()
else()
message(STATUS "catkin DISABLED")
endif()
find_package(PythonInterp REQUIRED)
px4_find_python_module(jinja2 REQUIRED)
#=============================================================================
# cmake modules
# cmake testing
#
enable_testing()
include(CTest)
#=============================================================================
# generate compile command database
@ -261,49 +309,37 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#=============================================================================
# check required toolchain variables
#
set(required_variables
CMAKE_C_COMPILER_ID
)
# PX4 requires c++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# PX4 requires c99
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(required_variables CMAKE_C_COMPILER_ID CMAKE_CXX_COMPILER_ID)
foreach(var ${required_variables})
if (NOT ${var})
message(FATAL_ERROR "Toolchain/config must define ${var}")
endif()
endforeach()
#=============================================================================
# git
#
px4_add_git_submodule(TARGET git_genmsg PATH "Tools/genmsg")
px4_add_git_submodule(TARGET git_gencpp PATH "Tools/gencpp")
px4_add_git_submodule(TARGET git_mavlink PATH "mavlink/include/mavlink/v1.0")
px4_add_git_submodule(TARGET git_gtest PATH "unittests/gtest")
px4_add_git_submodule(TARGET git_uavcan PATH "src/modules/uavcan/libuavcan")
px4_add_git_submodule(TARGET git_nuttx PATH "NuttX")
px4_add_git_submodule(TARGET git_driverframework PATH "src/lib/DriverFramework")
px4_add_git_submodule(TARGET git_ecl PATH "src/lib/ecl")
px4_add_git_submodule(TARGET git_jmavsim PATH "Tools/jMAVSim")
px4_add_git_submodule(TARGET git_gazebo PATH "Tools/sitl_gazebo")
px4_add_git_submodule(TARGET git_matrix PATH "src/lib/matrix")
px4_add_git_submodule(TARGET git_cmake_hexagon PATH "cmake/cmake_hexagon")
# print full c compiler version
execute_process(COMMAND ${CMAKE_C_COMPILER} --version
OUTPUT_VARIABLE c_compiler_version
OUTPUT_STRIP_TRAILING_WHITESPACE
)
STRING(REGEX MATCH "[^\n]*" c_compiler_version_short ${c_compiler_version})
message(STATUS "C compiler: ${c_compiler_version_short}")
add_custom_target(submodule_clean
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
COMMAND git submodule deinit -f .
COMMAND rm -rf .git/modules/*
)
#=============================================================================
# misc targets
#
add_custom_target(check_format
COMMAND Tools/check_code_style.sh
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
add_custom_target(config
COMMAND cmake-gui .
WORKING_DIRECTORY ${PX4_BINARY_DIR}
)
# print full c++ compiler version
execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version
OUTPUT_VARIABLE cxx_compiler_version
OUTPUT_STRIP_TRAILING_WHITESPACE
)
STRING(REGEX MATCH "[^\n]*" cxx_compiler_version_short ${cxx_compiler_version})
message(STATUS "C++ compiler: ${cxx_compiler_version_short}")
#=============================================================================
# external libraries
@ -335,18 +371,42 @@ link_directories(${link_dirs})
add_definitions(${definitions})
#=============================================================================
# source code generation
# message, parameter, and airframe generation
#
include(common/px4_metadata)
add_subdirectory(msg)
px4_generate_messages(TARGET msg_gen
MSG_FILES ${msg_files}
OS ${OS}
INCLUDES ${msg_include_paths}
DEPENDS git_genmsg git_gencpp prebuild_targets
)
px4_generate_parameters_xml(OUT parameters.xml BOARD ${BOARD})
px4_generate_parameters_xml(OUT parameters.xml
BOARD ${BOARD}
MODULES ${config_module_list}
OVERRIDES ${PARAM_DEFAULT_OVERRIDES})
px4_generate_airframes_xml(OUT airframes.xml BOARD ${BOARD})
add_custom_target(xml_gen
DEPENDS parameters.xml airframes.xml)
add_custom_target(xml_gen DEPENDS parameters.xml airframes.xml)
#=============================================================================
# DriverFramework
#
# List the DriverFramework drivers
if (DEFINED config_df_driver_list)
message("DF Drivers: ${config_df_driver_list}")
endif()
set(df_driver_libs)
foreach(driver ${config_df_driver_list})
add_subdirectory(src/lib/DriverFramework/drivers/${driver})
list(APPEND df_driver_libs df_${driver})
message("Adding DF driver: ${driver}")
endforeach()
#=============================================================================
# external projects
@ -362,20 +422,10 @@ include_directories(${ep_base}/Install/include)
execute_process(COMMAND cmake -E make_directory ${ep_base}/Install/lib)
execute_process(COMMAND cmake -E make_directory ${ep_base}/Install/include)
#=============================================================================
# DriverFramework Drivers
#
set(df_driver_libs)
foreach(driver ${config_df_driver_list})
add_subdirectory(src/lib/DriverFramework/drivers/${driver})
list(APPEND df_driver_libs df_${driver})
message("Adding DF driver: ${driver}")
endforeach()
#=============================================================================
# external modules
#
if(NOT EXTERNAL_MODULES_LOCATION STREQUAL "")
if (NOT EXTERNAL_MODULES_LOCATION STREQUAL "")
message(STATUS "External modules: ${EXTERNAL_MODULES_LOCATION}")
add_subdirectory("${EXTERNAL_MODULES_LOCATION}/src" external_modules_src)
@ -396,7 +446,7 @@ endif()
set(module_libraries)
foreach(module ${config_module_list})
string(REGEX MATCH "^[./]" external_module ${module})
if(external_module)
if (external_module)
STRING(REGEX REPLACE "//" "/" EXT_MODULE ${module})
STRING(REGEX REPLACE "/" "__" EXT_MODULE_PREFIX ${EXT_MODULE})
add_subdirectory(${module} ${PX4_BINARY_DIR}/${EXT_MODULE_PREFIX})
@ -405,7 +455,6 @@ foreach(module ${config_module_list})
endif()
px4_mangle_name(${module} mangled_name)
list(APPEND module_libraries ${mangled_name})
#message(STATUS "adding module: ${module}")
endforeach()
# Keep track of external shared libs required for modules
@ -413,10 +462,6 @@ set(module_external_libraries "${module_external_libraries}" CACHE INTERNAL "mod
add_subdirectory(src/firmware/${OS})
#add_dependencies(df_driver_framework nuttx_export_${CONFIG}.stamp)
if (NOT "${OS}" STREQUAL "nuttx")
endif()
if (config_io_board)
add_subdirectory(src/modules/px4iofirmware)
endif()
@ -424,7 +469,7 @@ endif()
#=============================================================================
# generate custom target to print for all executable and module cmake targets
#
if(all_posix_cmake_targets)
if (all_posix_cmake_targets)
list(SORT all_posix_cmake_targets)
px4_join(OUT posix_cmake_target_list LIST ${all_posix_cmake_targets} GLUE "\\n")
add_custom_target(list_cmake_targets
@ -434,24 +479,13 @@ if(all_posix_cmake_targets)
)
endif()
#=============================================================================
# generate git version
#
px4_create_git_hash_header(HEADER ${PX4_BINARY_DIR}/build_git_version.h)
#=============================================================================
# packaging
#
# Important to having packaging at end of cmake file.
#
execute_process(
COMMAND git describe --always --tags
OUTPUT_VARIABLE git_tag
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
set(CPACK_PACKAGE_NAME ${PROJECT_NAME}-${CONFIG})
set(CPACK_PACKAGE_VERSION ${version})
set(CPACK_PACKAGE_VERSION ${git_version})
set(CPACK_PACKAGE_CONTACT ${package-contact})
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
@ -460,9 +494,9 @@ set(short-description "The px4 autopilot.")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${short-description})
set(CPACK_GENERATOR "ZIP")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CONFIG}-${git_tag}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${version}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${git_version}")
set(CPACK_SOURCE_GENERATOR "ZIP;TBZ2")
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
set(CPACK_PACKAGING_INSTALL_PREFIX "")
set(CPACK_SET_DESTDIR "OFF")
if ("${CMAKE_SYSTEM}" MATCHES "Linux")
find_program(DPKG_PROGRAM dpkg)

15
CTestConfig.cmake Normal file
View File

@ -0,0 +1,15 @@
## This file should be placed in the root directory of your project.
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
##
## # The following are required to submit to the CDash dashboard:
## ENABLE_TESTING()
## INCLUDE(CTest)
set(CTEST_PROJECT_NAME "PX4 Firmware")
set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=PX4+Firmware")
set(CTEST_DROP_SITE_CDASH TRUE)

View File

@ -1,12 +1,20 @@
#!/bin/bash
#
# Author: Pavel Kirienko <pavel.kirienko@zubax.com>
#
# Poor man's sampling profiler for NuttX.
#
# Usage: Install flamegraph.pl in your PATH, configure your .gdbinit, run the script with proper arguments and go
# have a coffee. When you're back, you'll see the flamegraph. Note that frequent calls to GDB significantly
# interfere with normal operation of the target, which means that you can't profile real-time tasks with it.
# For best results, ensure that the PC is not overloaded, the USB host controller to which the debugger is
# connected is not congested. You should also allow the current user to set negative nice values.
#
# Requirements: ARM GDB with Python support
# The FlameGraph script can be downloaded from https://github.com/brendangregg/FlameGraph. Thanks Mr. Gregg.
#
# Requirements: ARM GDB with Python support. You can get one by downloading the sources from
# https://launchpad.net/gcc-arm-embedded and building them with correct flags.
# Note that Python support is not required if no per-task sampling is needed.
#
set -e
@ -33,7 +41,7 @@ which flamegraph.pl > /dev/null || die "Install flamegraph.pl first"
nsamples=0
sleeptime=0.1 # Doctors recommend 7-8 hours a day
taskname=
elf=$root/Build/px4fmu-v2_default.build/firmware.elf
elf=
append=0
fgfontsize=10
fgwidth=1900
@ -69,6 +77,8 @@ do
shift
done
[[ -z "$elf" ]] && die "Please specify the ELF file location, e.g.: build_px4fmu-v4_default/src/firmware/nuttx/firmware_nuttx"
#
# Temporary files
#
@ -237,8 +247,8 @@ for s, f in sorted(stacks.items(), key=lambda (s, f): s):
print('Total stack frames:', num_stack_frames, file=sys.stderr)
print('Top consumers (distribution of the stack tops):', file=sys.stderr)
for name,num in sorted(stack_tops.items(), key=lambda (name, num): num, reverse=True)[:10]:
print('% 5.1f%% ' % (100 * num / num_stack_frames), name, file=sys.stderr)
for name,num in sorted(stack_tops.items(), key=lambda (name, num): num, reverse=True)[:300]:
print('% 7.3f%% ' % (100 * num / num_stack_frames), name, file=sys.stderr)
EOF
cat $stacksfile | python /tmp/pmpn-folder.py > $foldfile

View File

@ -25,7 +25,8 @@
[
".settings",
"nuttx/arch/arm/src/board",
"nuttx/arch/arm/src/chip"
"nuttx/arch/arm/src/chip",
"build_*"
]
}
],

View File

@ -0,0 +1,12 @@
{
"board_id": 98,
"magic": "AeroCore2",
"description": "Firmware for the Gumstix AeroCore2 board",
"image": "",
"build_time": 0,
"summary": "AEROCORE2",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -1,9 +1,9 @@
{
"board_id": 12,
"magic": "Crazyflie",
"description": "Firmware for the Crazyflie 2.0",
"image": "",
"build_time": 0,
"board_id": 12,
"magic": "Crazyflie",
"description": "Firmware for the Crazyflie 2.0",
"image": "",
"build_time": 0,
"summary": "CRAZYFLIE",
"version": "0.1",
"image_size": 0,

12
Images/esc35-v1.prototype Normal file
View File

@ -0,0 +1,12 @@
{
"board_id": 27,
"magic": "ESC35v1",
"description": "Firmware for the ESC35V1 board",
"image": "",
"build_time": 0,
"summary": "ESC35v1",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -0,0 +1,12 @@
{
"board_id": 22,
"magic": "CANNODEFWv1",
"description": "Firmware for the PX4CANNODE board",
"image": "",
"build_time": 0,
"summary": "PX4CANNODEv1",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -0,0 +1,12 @@
{
"board_id": 25,
"magic": "ESCv1",
"description": "Firmware for the PX4ESCV1 board",
"image": "",
"build_time": 0,
"summary": "PX4ESCv1",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -0,0 +1,12 @@
{
"board_id": 24,
"magic": "FLOWv1",
"description": "Firmware for the PX4FLowV1 board",
"image": "",
"build_time": 0,
"summary": "PX4FLOWv1",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -1,9 +1,9 @@
{
"board_id": 9,
"magic": "PX4FWv1",
"description": "Firmware for the PX4FMUv3 board",
"image": "",
"build_time": 0,
"board_id": 9,
"magic": "PX4FWv1",
"description": "Firmware for the PX4FMUv3 board",
"image": "",
"build_time": 0,
"summary": "PX4FMUv3",
"version": "0.1",
"image_size": 0,

View File

@ -0,0 +1,12 @@
{
"board_id": 13,
"magic": "PX4FWv1",
"description": "Firmware for the PX4FMUv4PRO board, based on STM32F469",
"image": "",
"build_time": 0,
"summary": "PX4FMUv4PRO",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -0,0 +1,12 @@
{
"board_id": 50,
"magic": "PX4FWv1",
"description": "Firmware for the PX4FMUv5 board",
"image": "",
"build_time": 0,
"summary": "PX4FMUv5",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -1,12 +0,0 @@
{
"board_id": 10,
"magic": "PX4FWv2",
"description": "Firmware for the PX4IOv2 board",
"image": "",
"build_time": 0,
"summary": "PX4IOv2",
"version": "2.0",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -0,0 +1,12 @@
{
"board_id": 90,
"magic": "PX4FWv1",
"description": "Firmware for the ST nucleo-144 with STM32FF767ZI-v1 board",
"image": "",
"build_time": 0,
"summary": "PX4NUCLEOF767ZIv1",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -0,0 +1,12 @@
{
"board_id": 23,
"magic": "S2740VCblv1",
"description": "Firmware for the S2740VC board",
"image": "",
"build_time": 0,
"summary": "S2740VCv1",
"version": "0.1",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

View File

@ -0,0 +1,12 @@
{
"board_id": 26,
"magic": "ZUBAXGNSSFWv1",
"description": "Firmware for the ZUBAXGNSS board",
"image": "",
"build_time": 0,
"summary": "ZUBAXGNSSv1",
"version": "0.0",
"image_size": 0,
"git_identity": "",
"board_revision": 0
}

362
Makefile
View File

@ -1,6 +1,6 @@
############################################################################
#
# Copyright (c) 2015 - 2016 PX4 Development Team. All rights reserved.
# Copyright (c) 2015 - 2017 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@ -39,26 +39,6 @@ ifeq ($(wildcard .git),)
$(error YOU HAVE TO USE GIT TO DOWNLOAD THIS REPOSITORY. ABORTING.)
endif
CMAKE_VER := $(shell Tools/check_cmake.sh; echo $$?)
ifneq ($(CMAKE_VER),0)
$(warning Not a valid CMake version or CMake not installed.)
$(warning On Ubuntu 16.04, install or upgrade via:)
$(warning )
$(warning 3rd party PPA:)
$(warning sudo add-apt-repository ppa:george-edison55/cmake-3.x -y)
$(warning sudo apt-get update)
$(warning sudo apt-get install cmake)
$(warning )
$(warning Official website:)
$(warning wget https://cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.sh)
$(warning chmod +x cmake-3.4.3-Linux-x86_64.sh)
$(warning sudo mkdir /opt/cmake-3.4.3)
$(warning sudo ./cmake-3.4.3-Linux-x86_64.sh --prefix=/opt/cmake-3.4.3 --exclude-subdir)
$(warning export PATH=/opt/cmake-3.4.3/bin:$$PATH)
$(warning )
$(error Fatal)
endif
# Help
# --------------------------------------------------------------------
# Don't be afraid of this makefile, it is just passing
@ -88,25 +68,38 @@ FIRST_ARG := $(firstword $(MAKECMDGOALS))
ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
j ?= 4
NINJA_BIN := ninja
ifndef NO_NINJA_BUILD
NINJA_BUILD := $(shell ninja --version 2>/dev/null)
endif
ifdef NINJA_BUILD
PX4_CMAKE_GENERATOR ?= "Ninja"
PX4_MAKE = ninja
PX4_MAKE_ARGS =
else
NINJA_BUILD := $(shell $(NINJA_BIN) --version 2>/dev/null)
ifdef SYSTEMROOT
# Windows
PX4_CMAKE_GENERATOR ?= "MSYS Makefiles"
ifndef NINJA_BUILD
NINJA_BIN := ninja-build
NINJA_BUILD := $(shell $(NINJA_BIN) --version 2>/dev/null)
endif
endif
ifdef NINJA_BUILD
PX4_CMAKE_GENERATOR := Ninja
PX4_MAKE := $(NINJA_BIN)
ifdef VERBOSE
PX4_MAKE_ARGS := -v
else
PX4_MAKE_ARGS :=
endif
else
PX4_CMAKE_GENERATOR ?= "Unix Makefiles"
endif
PX4_MAKE = $(MAKE)
PX4_MAKE_ARGS = -j$(j) --no-print-directory
ifdef SYSTEMROOT
# Windows
PX4_CMAKE_GENERATOR := "MSYS\ Makefiles"
else
PX4_CMAKE_GENERATOR := "Unix\ Makefiles"
endif
PX4_MAKE = $(MAKE)
PX4_MAKE_ARGS = -j$(j) --no-print-directory
endif
SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
# check if replay env variable is set & set build dir accordingly
ifdef replay
BUILD_DIR_SUFFIX := _replay
@ -114,13 +107,26 @@ else
BUILD_DIR_SUFFIX :=
endif
# NuttX verbose output
ifdef VN
export PX4_NUTTX_BUILD_VERBOSE=1
export V=1
endif
# NuttX verbose patches output
ifdef VNP
export PX4_NUTTX_PATCHES_VERBOSE=1
endif
# additional config parameters passed to cmake
CMAKE_ARGS :=
ifdef EXTERNAL_MODULES_LOCATION
CMAKE_ARGS := -DEXTERNAL_MODULES_LOCATION:STRING=$(EXTERNAL_MODULES_LOCATION)
endif
SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
ifdef PX4_CMAKE_BUILD_TYPE
CMAKE_ARGS += -DCMAKE_BUILD_TYPE=${PX4_CMAKE_BUILD_TYPE}
endif
# Functions
# --------------------------------------------------------------------
@ -128,22 +134,14 @@ SRC_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
define cmake-build
+@$(eval BUILD_DIR = $(SRC_DIR)/build_$@$(BUILD_DIR_SUFFIX))
+@if [ $(PX4_CMAKE_GENERATOR) = "Ninja" ] && [ -e $(BUILD_DIR)/Makefile ]; then rm -rf $(BUILD_DIR); fi
+@if [ ! -e $(BUILD_DIR)/CMakeCache.txt ]; then mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && cmake .. -G$(PX4_CMAKE_GENERATOR) -DCONFIG=$(1) $(CMAKE_ARGS) || (cd .. && rm -rf $(BUILD_DIR)); fi
+@echo "PX4 CONFIG: $(BUILD_DIR)"
+@$(PX4_MAKE) -C "$(BUILD_DIR)" $(PX4_MAKE_ARGS) $(ARGS)
endef
define cmake-build-other
+@$(eval BUILD_DIR = $(SRC_DIR)/build_$@$(BUILD_DIR_SUFFIX))
+@if [ $(PX4_CMAKE_GENERATOR) = "Ninja" ] && [ -e $(BUILD_DIR)/Makefile ]; then rm -rf $(BUILD_DIR); fi
+@if [ ! -e $(BUILD_DIR)/CMakeCache.txt ]; then mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && cmake $(2) -G$(PX4_CMAKE_GENERATOR) -DCONFIG=$(1) || (cd .. && rm -rf $(BUILD_DIR)); fi
+@$(PX4_MAKE) -C "$(BUILD_DIR)" $(PX4_MAKE_ARGS) $(ARGS)
+@if [ ! -e $(BUILD_DIR)/CMakeCache.txt ]; then mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && cmake $(2) -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=$(1) $(CMAKE_ARGS) || (rm -rf $(BUILD_DIR)); fi
+@(cd $(BUILD_DIR) && $(PX4_MAKE) $(PX4_MAKE_ARGS) $(ARGS))
endef
define colorecho
@tput setaf 6
@echo $1
@tput sgr0
+@tput setaf 6
+@echo $1
+@tput sgr0
endef
# Get a list of all config targets.
@ -157,13 +155,13 @@ NUTTX_CONFIG_TARGETS := $(patsubst nuttx_%,%,$(filter nuttx_%,$(ALL_CONFIG_TARGE
# All targets.
$(ALL_CONFIG_TARGETS):
$(call cmake-build,$@)
$(call cmake-build,$@,$(SRC_DIR))
# Abbreviated config targets.
# nuttx_ is left off by default; provide a rule to allow that.
$(NUTTX_CONFIG_TARGETS):
$(call cmake-build,nuttx_$@)
$(call cmake-build,nuttx_$@,$(SRC_DIR))
all_nuttx_targets: $(NUTTX_CONFIG_TARGETS)
@ -171,76 +169,69 @@ posix: posix_sitl_default
broadcast: posix_sitl_broadcast
# Multi- config targets.
eagle_default: posix_eagle_default qurt_eagle_default
eagle_legacy_default: posix_eagle_legacy_driver_default qurt_eagle_legacy_driver_default
eagle_legacy_default: posix_eagle_legacy qurt_eagle_legacy
excelsior_default: posix_excelsior_default qurt_excelsior_default
excelsior_legacy_default: posix_excelsior_legacy qurt_excelsior_legacy
# Deprecated config targets.
ros_sitl_default:
@echo "This target is deprecated. Use make 'posix_sitl_default gazebo' instead."
_sitl_deprecation:
@echo "Deprecated. Use 'make posix_sitl_default jmavsim' or"
@echo "'make posix_sitl_default gazebo' if Gazebo is preferred."
run_sitl_quad: _sitl_deprecation
run_sitl_plane: _sitl_deprecation
run_sitl_ros: _sitl_deprecation
# All targets with just dependencies but no recipe must either be marked as phony (or have the special @: as recipe).
.PHONY: all posix broadcast eagle_default eagle_legacy_default excelsior_default run_sitl_quad run_sitl_plane run_sitl_ros all_nuttx_targets
.PHONY: all posix broadcast eagle_default eagle_legacy_default excelsior_legacy_default excelsior_default all_nuttx_targets
# Other targets
# --------------------------------------------------------------------
.PHONY: uavcan_firmware check check_format format unittest tests qgc_firmware package_firmware clean submodulesclean distclean
.NOTPARALLEL:
.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware alt_firmware checks_bootloaders sizes check quick_check
# All targets with just dependencies but no recipe must either be marked as phony (or have the special @: as recipe).
.PHONY: checks_defaults checks_bootloaders checks_tests checks_alts checks_uavcan checks_sitls checks_last quick_check tests extra_firmware
# QGroundControl flashable NuttX firmware
qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware sizes
uavcan_firmware:
ifeq ($(VECTORCONTROL),1)
$(call colorecho,"Downloading and building Vector control (FOC) firmware for the S2740VC and PX4ESC 1.6")
@(rm -rf vectorcontrol && git clone --quiet --depth 1 https://github.com/thiemar/vectorcontrol.git && cd vectorcontrol && BOARD=s2740vc_1_0 make --silent --no-print-directory && BOARD=px4esc_1_6 make --silent --no-print-directory && ../Tools/uavcan_copy.sh)
endif
check_px4fmu-v4_default: uavcan_firmware
check_px4fmu-v4_default_and_uavcan: check_px4fmu-v4_default
@echo
ifeq ($(VECTORCONTROL),1)
@echo "Cleaning up vectorcontrol firmware"
@rm -rf vectorcontrol
@rm -rf ROMFS/px4fmu_common/uavcan
endif
# All default targets that don't require a special build environment (currently built on semaphore-ci)
check: check_px4fmu-v1_default \
# px4fmu NuttX firmware
px4fmu_firmware: \
check_px4fmu-v1_default \
check_px4fmu-v2_default \
check_px4fmu-v2_test \
check_px4fmu-v4_default_and_uavcan \
check_mindpx-v2_default \
check_posix_sitl_default \
check_tap-v1_default \
check_px4fmu-v3_default \
check_px4fmu-v4_default \
check_px4fmu-v4pro_default \
check_px4fmu-v5_default \
sizes
misc_qgc_extra_firmware: \
check_aerocore2_default \
check_aerofc-v1_default \
check_px4-stm32f4discovery_default \
check_auav-x21_default \
check_crazyflie_default \
check_tests \
check_format
check_mindpx-v2_default \
check_px4fmu-v2_lpe \
check_tap-v1_default \
sizes
# Other NuttX firmware
alt_firmware: \
check_px4-stm32f4discovery_default \
check_px4cannode-v1_default \
check_px4esc-v1_default \
check_px4nucleoF767ZI-v1_default \
check_s2740vc-v1_default \
sizes
checks_bootloaders: \
check_esc35-v1_bootloader \
check_px4cannode-v1_bootloader \
check_px4esc-v1_bootloader \
check_px4flow-v2_bootloader \
check_s2740vc-v1_bootloader \
# not fitting in flash check_zubaxgnss-v1_bootloader \
sizes
sizes:
@-find build_* -name firmware_nuttx -type f | xargs size 2> /dev/null || :
# All default targets that don't require a special build environment
check: check_posix_sitl_default px4fmu_firmware misc_qgc_extra_firmware alt_firmware checks_bootloaders tests check_format
# quick_check builds a single nuttx and posix target, runs testing, and checks the style
quick_check: check_posix_sitl_default check_px4fmu-v4_default check_tests check_format
check_format:
$(call colorecho,"Checking formatting with astyle")
@./Tools/check_code_style_all.sh
@git diff --check
format:
$(call colorecho,"Formatting with astyle")
@./Tools/check_code_style_all.sh --fix
quick_check: check_posix_sitl_default check_px4fmu-v3_default tests check_format
check_%:
@echo
@ -248,47 +239,163 @@ check_%:
@$(MAKE) --no-print-directory $(subst check_,,$@)
@echo
unittest: posix_sitl_default
$(call cmake-build-other,unittest, ../unittests)
@(cd build_unittest && ctest -j2 --output-on-failure)
# Documentation
# --------------------------------------------------------------------
.PHONY: parameters_metadata airframe_metadata px4_metadata
run_tests_posix: posix_sitl_default
@(cd build_posix_sitl_default/ && ctest -V)
parameters_metadata: posix_sitl_default
@python $(SRC_DIR)/Tools/px_process_params.py -s $(SRC_DIR)/src --markdown
tests: check_unittest run_tests_posix
airframe_metadata:
@python ${SRC_DIR}/Tools/px_process_airframes.py -v -a ${SRC_DIR}/ROMFS/px4fmu_common/init.d --markdown
@python ${SRC_DIR}/Tools/px_process_airframes.py -v -a ${SRC_DIR}/ROMFS/px4fmu_common/init.d --xml
# QGroundControl flashable firmware (currently built by travis-ci)
qgc_firmware: \
check_px4fmu-v1_default \
check_px4fmu-v2_default \
check_px4fmu-v3_default \
check_px4fmu-v4_default_and_uavcan \
check_mindpx-v2_default \
check_tap-v1_default \
check_format
px4_metadata: parameters_metadata airframe_metadata
package_firmware:
# S3 upload helpers
# --------------------------------------------------------------------
# s3cmd uses these ENV variables
# AWS_ACCESS_KEY_ID
# AWS_SECRET_ACCESS_KEY
# AWS_S3_BUCKET
.PHONY: s3put_firmware s3put_qgc_firmware s3put_px4fmu_firmware s3put_misc_qgc_extra_firmware s3put_metadata s3put_scan-build s3put_cppcheck s3put_coverage
Firmware.zip:
@rm -rf Firmware.zip
@zip --junk-paths Firmware.zip `find . -name \*.px4`
s3put_firmware: Firmware.zip
$(SRC_DIR)/Tools/s3put.sh Firmware.zip
s3put_qgc_firmware: s3put_px4fmu_firmware s3put_misc_qgc_extra_firmware
s3put_px4fmu_firmware: px4fmu_firmware
@find $(SRC_DIR)/build_* -name "*.px4" -exec $(SRC_DIR)/Tools/s3put.sh "{}" \;
s3put_misc_qgc_extra_firmware: misc_qgc_extra_firmware
@find $(SRC_DIR)/build_* -name "*.px4" -exec $(SRC_DIR)/Tools/s3put.sh "{}" \;
s3put_metadata: px4_metadata
@$(SRC_DIR)/Tools/s3put.sh airframes.md
@$(SRC_DIR)/Tools/s3put.sh airframes.xml
@$(SRC_DIR)/Tools/s3put.sh build_posix_sitl_default/parameters.xml
@$(SRC_DIR)/Tools/s3put.sh parameters.md
s3put_scan-build: scan-build
@cd $(SRC_DIR) && ./Tools/s3put.sh `find build_scan-build -mindepth 1 -maxdepth 1 -type d`/
s3put_cppcheck: cppcheck
@cd $(SRC_DIR) && ./Tools/s3put.sh cppcheck/
s3put_coverage: tests_coverage
@cd $(SRC_DIR) && ./Tools/s3put.sh build_posix_sitl_default/coverage-html/
# Astyle
# --------------------------------------------------------------------
.PHONY: check_format format
check_format:
$(call colorecho,"Checking formatting with astyle")
@$(SRC_DIR)/Tools/check_code_style_all.sh
@git diff --check
format:
$(call colorecho,"Formatting with astyle")
@$(SRC_DIR)/Tools/check_code_style_all.sh --fix
# Testing
# --------------------------------------------------------------------
.PHONY: unittest run_tests_posix tests tests_coverage
unittest: posix_sitl_default
$(call cmake-build,unittest,$(SRC_DIR)/unittests)
@(cd build_unittest && ctest -j2 --output-on-failure)
run_tests_posix:
$(MAKE) --no-print-directory posix_sitl_default test_results
tests: unittest run_tests_posix
tests_coverage:
@$(MAKE) --no-print-directory posix_sitl_default test_coverage_genhtml PX4_CMAKE_BUILD_TYPE=Coverage
coveralls_upload:
@cpp-coveralls --include src/ \
--exclude src/lib/DriverFramework \
--exclude src/lib/ecl \
--exclude src/lib/Matrix \
--exclude=src/modules/uavcan/libuavcan \
--exclude-pattern ".*/unittests/googletest/.*" \
--root . --build-root build_posix_sitl_default/ --follow-symlinks
codecov_upload:
@/bin/bash -c "bash <(curl -s https://codecov.io/bash)"
# static analyzers (scan-build, clang-tidy, cppcheck)
# --------------------------------------------------------------------
.PHONY: posix_sitl_default-clang scan-build clang-tidy clang-tidy-fix clang-tidy-quiet cppcheck
posix_sitl_default-clang:
@mkdir -p $(SRC_DIR)/build_posix_sitl_default-clang
@cd $(SRC_DIR)/build_posix_sitl_default-clang && cmake .. -GNinja -DCONFIG=posix_sitl_default -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
@cd $(SRC_DIR)/build_posix_sitl_default-clang && ninja
scan-build:
@export CCC_CC=clang
@export CCC_CXX=clang++
@mkdir -p $(SRC_DIR)/build_posix_sitl_default-scan-build
@cd $(SRC_DIR)/build_posix_sitl_default-scan-build && scan-build cmake .. -GNinja -DCONFIG=posix_sitl_default
@scan-build -o $(SRC_DIR)/build_scan-build cmake --build $(SRC_DIR)/build_posix_sitl_default-scan-build
clang-tidy: posix_sitl_default-clang
@cd build_posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -p .
# to automatically fix a single check at a time, eg modernize-redundant-void-arg
# % run-clang-tidy-4.0.py -fix -j4 -checks=-\*,modernize-redundant-void-arg -p .
clang-tidy-fix: posix_sitl_default-clang
@cd build_posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -fix -p .
# modified version of run-clang-tidy.py to return error codes and only output relevant results
clang-tidy-quiet: posix_sitl_default-clang
@cd build_posix_sitl_default-clang && $(SRC_DIR)/Tools/run-clang-tidy.py -header-filter=".*\.hpp" -j$(j) -p .
# TODO: Fix cppcheck errors then try --enable=warning,performance,portability,style,unusedFunction or --enable=all
cppcheck: posix_sitl_default
@cppcheck -i$(SRC_DIR)/src/examples --std=c++11 --std=c99 --std=posix --project=build_posix_sitl_default/compile_commands.json --xml-version=2 2> cppcheck-result.xml
@cppcheck-htmlreport --source-encoding=ascii --file=cppcheck-result.xml --report-dir=cppcheck --source-dir=$(SRC_DIR)/src/
# Cleanup
# --------------------------------------------------------------------
.PHONY: clean submodulesclean distclean
clean:
@rm -rf build_*/
-@$(MAKE) -C NuttX/nuttx clean
@rm -rf $(SRC_DIR)/build_*/
-@$(MAKE) --no-print-directory -C NuttX/nuttx clean
submodulesclean:
@git submodule foreach --quiet --recursive git clean -ff -x -d
@git submodule update --quiet --init --recursive --force || true
@git submodule sync --recursive
@git submodule deinit -f .
@git submodule update --init --recursive --force
distclean: submodulesclean clean
submodulesupdate:
@git submodule update --quiet --init --recursive || true
@git submodule sync --recursive
@git submodule update --init --recursive
gazeboclean:
@rm -rf ~/.gazebo/*
distclean: submodulesclean gazeboclean
@git clean -ff -x -d -e ".project" -e ".cproject" -e ".idea"
# --------------------------------------------------------------------
# All other targets are handled by PX4_MAKE. Add a rule here to avoid printing an error.
%:
$(if $(filter $(FIRST_ARG),$@), \
$(error "$@ cannot be the first argument. Use '$(MAKE) help|list_config_targets' to get a list of all possible [configuration] targets."),@#)
.PHONY: clean
CONFIGS:=$(shell ls cmake/configs | sed -e "s~.*/~~" | sed -e "s~\..*~~")
#help:
@ -314,4 +421,3 @@ help:
# Print a list of all config targets.
list_config_targets:
@for targ in $(patsubst nuttx_%,[nuttx_]%,$(ALL_CONFIG_TARGETS)); do echo $$targ; done

2
NuttX

@ -1 +1 @@
Subproject commit af5d2b058c55431607aa5aa29fc1d1bbc7e51089
Subproject commit 44ad7e224c1ef17911ab8b4101fd624ad9ee4177

117
README.md
View File

@ -4,62 +4,95 @@
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/PX4/Firmware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
This repository holds the [PX4 Pro](http://px4.io) flight control solution for drones, with the main applications located in the src/modules directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
This repository holds the [PX4 Pro](http://px4.io) flight control solution for drones, with the main applications located in the [src/modules](https://github.com/PX4/Firmware/tree/master/src/modules) directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
* Official Website: http://px4.io (License: BSD 3-clause, [LICENSE.md](https://github.com/PX4/Firmware/blob/master/LICENSE.md))
* Supported airframes (more experimental types than listed here are supported):
* [Multicopters](http://px4.io/portfolio_category/multicopter/)
* [Fixed wing](http://px4.io/portfolio_category/plane/)
* [VTOL](http://px4.io/portfolio_category/vtol/)
* Releases: [Downloads](https://github.com/PX4/Firmware/releases)
* Official Website: http://px4.io (License: BSD 3-clause, [LICENSE.md](https://github.com/PX4/Firmware/blob/master/LICENSE.md))
* Supported airframes:
* [Multicopters](http://px4.io/portfolio_category/multicopter/)
* [Fixed wing](http://px4.io/portfolio_category/plane/)
* [VTOL](http://px4.io/portfolio_category/vtol/)
* many more experimental types (Rovers, Blimps, Boats, Submarines, etc)
* Releases: [Downloads](https://github.com/PX4/Firmware/releases)
### Users ###
Please refer to the [user documentation](https://docs.px4.io/en/) and [user forum](http://discuss.px4.io) for flying drones with the PX4 flight stack.
Please refer to the [user documentation](http://px4.io/user-guide/) and [user forum](http://discuss.px4.io) for flying drones with the PX4 flight stack.
### Weekly Dev Call
The PX4 Dev Team syncs up on a [weekly dev call](https://dev.px4.io/en/contribute/).
* [Wednesday 17:00 Central European Time, 11:00 Eastern Time, 08:00 Pacific Standard Time](https://www.google.com/calendar/embed?src=bGludXhmb3VuZGF0aW9uLm9yZ19nMjF0dmFtMjRtN3BtN2poZXYwMWJ2bHFoOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t)
* [Uber conference (dial-in or web client)](https://www.uberconference.com/lf-dronecode)
* The agenda is announced in advance on the [PX4 Discuss](http://discuss.px4.io/c/weekly-dev-call)
* Issues and PRs may be labelled [devcall](https://github.com/PX4/Firmware/issues?q=is%3Aopen+is%3Aissue+label%3Adevcall) to flag them for discussion
### Developers ###
* [Developer Forum](http://discuss.px4.io)
* [Guide for Contributions](https://github.com/PX4/Firmware/blob/master/CONTRIBUTING.md)
* [Developer guide](http://dev.px4.io)
* [Developer Guide](https://dev.px4.io/)
* [Build instructions](https://dev.px4.io/en/setup/building_px4.html)
* [Guide for Contributions](https://dev.px4.io/en/contribute/)
## Maintenance Team
* Project / Founder - [Lorenz Meier](http://github.com/LorenzMeier)
* Dev Call - [Mark Whitehorn](http://github.com/kd0aij), [Ramon Roche](http://github.com/mrpollo)
* Communication Architecture - [Beat Kueng](http://github.com/bkueng), [Julian Oes](http://github.com/JulianOes)
* UI / UX - [Gus Grubba](http://github.com/dogmaphobic)
* Multicopter Flight Control - [Dennis Mannhart](http://github.com/Stifael), [Matthias Grob](http://github.com/MaEtUgR)
* VTOL Flight Control - [Roman Bapst](http://github.com/tumbili), [Andreas Antener](http://github.com/AndreasAntener), [Sander Smeets](http://github.com/sanderux)
* Fixed Wing Flight Control - [Daniel Agar](http://github.com/dagar), [Paul Riseborough](http://github.com/priseborough)
* Racers - [Mark Whitehorn](http://github.com/kd0aij)
* OS / drivers - [David Sidrane](http://github.com/david_s5)
* UAVCAN / Industrial - [Pavel Kirienko](http://github.com/pavel-kirienko)
* State Estimation - [James Goppert](http://github.com/jgoppert), [Paul Riseborough](http://github.com/priseborough)
* VIO - Christoph Tobler
* Obstacle Avoidance - [Vilhjalmur Vilhjalmsson](http://github.com/vilhjalmur89)
* Snapdragon - [Mark Charlebois](http://github.com/mcharleb)
* Intel Aero - [Lucas de Marchi](http://github.com/lucasdemarchi), [Simone Guscetti](http://github.com/simonegu)
* Raspberry Pi / Navio - [Beat Kueng](http://github.com/bkueng)
* Parrot Bebop - [Michael Schaeuble](http://github.com/eyeam3)
* Project / Founder - [Lorenz Meier](https://github.com/LorenzMeier)
* [Dev Call](https://github.com/PX4/Firmware/labels/devcall) - [Ramon Roche](https://github.com/mrpollo)
* Communication Architecture
* [Beat Kueng](https://github.com/bkueng)
* [Julian Oes](https://github.com/JulianOes)
* UI / UX
* [Donald Gagne](https://github.com/DonLakeFlyer)
* [Gus Grubba](https://github.com/dogmaphobic)
* [Multicopter Flight Control](https://github.com/PX4/Firmware/labels/multicopter)
* [Dennis Mannhart](https://github.com/Stifael)
* [Matthias Grob](https://github.com/MaEtUgR)
* [VTOL Flight Control](https://github.com/PX4/Firmware/labels/vtol)
* [Daniel Agar](https://github.com/dagar)
* [Mathieu Bresciani](https://github.com/bresch)
* [Sander Smeets](https://github.com/sanderux)
* [Roman Bapst](https://github.com/tumbili)
* [Andreas Antener](https://github.com/AndreasAntener)
* [Fixed Wing Flight Control](https://github.com/PX4/Firmware/labels/fixedwing)
* [Daniel Agar](https://github.com/dagar)
* [Paul Riseborough](https://github.com/priseborough)
* Racers - [Matthias Grob](https://github.com/MaEtUgR)
* OS / drivers - [David Sidrane](https://github.com/davids5)
* [UAVCAN](https://github.com/PX4/Firmware/labels/uavcan) / Industrial - [Pavel Kirienko](https://github.com/pavel-kirienko)
* [State Estimation](https://github.com/PX4/Firmware/issues?q=is%3Aopen+is%3Aissue+label%3A%22state+estimation%22) - [James Goppert](https://github.com/jgoppert), [Paul Riseborough](https://github.com/priseborough)
* Vision based navigation
* [Christoph Tobler](https://github.com/ChristophTobler)
* [Mohammed Kabir](https://github.com/mhkabir)
* Obstacle Avoidance - [Vilhjalmur Vilhjalmsson](https://github.com/vilhjalmur89)
* [Snapdragon](https://github.com/PX4/Firmware/labels/snapdragon)
* [Christoph Tobler](https://github.com/ChristophTobler)
* [Mark Charlebois](https://github.com/mcharleb)
* [Intel Aero](https://github.com/PX4/Firmware/labels/intel%20aero)
* [Lucas De Marchi](https://github.com/lucasdemarchi)
* [José Roberto de Souza](https://github.com/zehortigoza)
* [Raspberry Pi / Navio](https://github.com/PX4/Firmware/labels/raspberry_pi) - [Beat Kueng](https://github.com/bkueng)
* [Parrot Bebop](https://github.com/PX4/Firmware/labels/bebop) - [Michael Schaeuble](https://github.com/eyeam3)
* [Airmind MindPX / MindRacer](https://github.com/PX4/Firmware/labels/mindpx) - [Henry Zhang](https://github.com/iZhangHui)
## Supported Hardware
This repository contains code supporting these boards:
* [Snapdragon Flight](http://dev.px4.io/hardware-snapdragon.html)
* Intel Aero
* Raspberry PI with Navio 2
* [Parrot Bebop](http://dev.px4.io/starting-building.html#parrot-bebop)
* [Snapdragon Flight](https://dev.px4.io/en/flight_controller/snapdragon_flight.html)
* [Intel Aero](https://dev.px4.io/en/flight_controller/intel_aero.html)
* [Raspberry PI with Navio 2](https://dev.px4.io/en/flight_controller/raspberry_pi.html)
* [Parrot Bebop 2](https://dev.px4.io/en/advanced/parrot_bebop.html)
* FMUv1.x
* FMUv2.x ([Pixhawk](http://dev.px4.io/hardware-pixhawk.html) and [Pixfalcon](http://dev.px4.io/hardware-pixfalcon.html))
* FMUv3.x ([Pixhawk 2](http://dev.px4.io/hardware-pixhawk.html))
* FMUv4.x (Pixhawk 3 Pro and [Pixracer](http://dev.px4.io/hardware-pixracer.html))
* FMUv2.x
* [Pixhawk](https://dev.px4.io/en/flight_controller/pixhawk.html)
* Pixhawk Mini
* [Pixfalcon](https://dev.px4.io/en/flight_controller/pixfalcon.html)
* FMUv3.x [Pixhawk 2](https://pixhawk.org/modules/pixhawk2)
* FMUv4.x
* [Pixracer](https://dev.px4.io/en/flight_controller/pixracer.html)
* Pixhawk 3 Pro
* FMUv5.x (ARM Cortex M7, future Pixhawk)
* AeroCore (v1 and v2)
* STM32F4Discovery (basic support) [Tutorial](https://pixhawk.org/modules/stm32f4discovery)
* MindPX V2.8 [Tutorial] (http://www.mindpx.net/assets/accessories/UserGuide_MindPX.pdf)
* MindRacer V1.2 [Tutorial] (http://mindpx.net/assets/accessories/mindracer_user_guide_v1.2.pdf)
* Gumstix AeroCore (v1 and v2)
* [Airmind MindPX V2.8](http://www.mindpx.net/assets/accessories/UserGuide_MindPX.pdf)
* [Airmind MindRacer V1.2](http://mindpx.net/assets/accessories/mindracer_user_guide_v1.2.pdf)
* [Bitcraze Crazyflie 2.0](https://dev.px4.io/en/flight_controller/crazyflie2.html)
## Project Milestones
The PX4 software and Pixhawk hardware (which has been designed for it) has been created in 2011 by Lorenz Meier.
The PX4 software and Pixhawk hardware (which has been designed for it) has been created in 2011 by [Lorenz Meier](https://github.com/LorenzMeier).

View File

@ -4,6 +4,18 @@
#
# @type Quadrotor Wide
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 feed-through of RC AUX1 channel
# @output MAIN6 feed-through of RC AUX2 channel
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Anton Babushkin <anton@px4.io>, Simon Wilks <simon@px4.io>
#

View File

@ -4,6 +4,16 @@
#
# @type Quadrotor Wide
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Anton Babushkin <anton@px4.io>
#
@ -29,6 +39,6 @@ then
param set BAT_A_PER_V 15.39103
fi
set MIXER quad_w
set MIXER quad_dc
set PWM_OUT 1234

View File

@ -4,6 +4,18 @@
#
# @type Quadrotor Wide
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 feed-through of RC AUX1 channel
# @output MAIN6 feed-through of RC AUX2 channel
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Thomas Gubler <thomas@px4.io>
#

View File

@ -4,6 +4,18 @@
#
# @type Quadrotor Wide
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 feed-through of RC AUX1 channel
# @output MAIN6 feed-through of RC AUX2 channel
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Simon Wilks <simon@px4.io>
#
@ -29,9 +41,9 @@ then
param set MPC_XY_FF 0.2
param set MPC_XY_VEL_MAX 2
param set PWM_MIN 1080
fi
set MIXER quad_w
set PWM_OUT 1234
set PWM_MIN 1080

View File

@ -4,6 +4,15 @@
#
# @type Octorotor Coaxial
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 motor 5
# @output MAIN6 motor 6
# @output MAIN7 motor 7
# @output MAIN8 motor 8
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#

View File

@ -4,6 +4,15 @@
#
# @type Octo Coax Wide
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 motor 5
# @output MAIN6 motor 6
# @output MAIN7 motor 7
# @output MAIN8 motor 8
#
# @maintainer Simon Wilks <simon@uaventure.com>
#
@ -31,7 +40,7 @@ then
param set MPC_HOLD_MAX_XY 0.25
param set MPC_THR_MIN 0.15
param set MPC_Z_VEL_MAX 2.0
param set MPC_Z_VEL_MAX_DN 2.0
param set BAT_N_CELLS 4
fi

View File

@ -4,10 +4,10 @@
#
# @type VTOL Duo Tailsitter
#
# @output MAIN1 motor left
# @output MAIN2 motor right
# @output MAIN5 elevon left
# @output MAIN6 elevon right
# @output MAIN1 motor right
# @output MAIN2 motor left
# @output MAIN5 elevon right
# @output MAIN6 elevon left
#
# @maintainer Roman Bapst <roman@px4.io>
#

View File

@ -1,10 +1,18 @@
#!nsh
#
# @name BirdsEyeView Aerobotics FireFly6
#
# @type VTOL Tiltrotor
#
# @maintainer Roman Bapst <roman@px4.io>
# @maintainer Roman Bapst <roman@uaventure.com>
# @output MAIN1 Front right motor bottom
# @output MAIN2 Front right motor top
# @output MAIN3 Back motor bottom
# @output MAIN4 Back motor top
# @output MAIN5 Front left motor bottom
# @output MAIN6 Front left motor top
# @output AUX1 Tilt servo
# @output AUX2 Elevon 1
# @output AUX3 Elevon 2
# @output AUX4 Gear
#
sh /etc/init.d/rc.vtol_defaults
@ -12,16 +20,16 @@ sh /etc/init.d/rc.vtol_defaults
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 7.0
param set MC_ROLLRATE_P 0.17
param set MC_ROLLRATE_P 0.19
param set MC_ROLLRATE_I 0.002
param set MC_ROLLRATE_D 0.003
param set MC_ROLLRATE_D 0.005
param set MC_ROLLRATE_FF 0.0
param set MC_PITCH_P 7.0
param set MC_PITCHRATE_P 0.14
param set MC_PITCHRATE_I 0.002
param set MC_PITCHRATE_D 0.003
param set MC_PITCHRATE_D 0.004
param set MC_PITCHRATE_FF 0.0
param set MC_YAW_P 3.8
param set MC_YAW_P 4.0
param set MC_YAW_FF 0.5
param set MC_YAWRATE_P 0.22
param set MC_YAWRATE_I 0.02

View File

@ -4,6 +4,15 @@
#
# @type VTOL Quad Tailsitter
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 4
# @output MAIN4 motor 5
# @output MAIN5 elevon left
# @output MAIN6 elevon right
# @output MAIN7 canard surface
# @output MAIN8 rudder
#
# @maintainer Roman Bapst <roman@px4.io>
#

View File

@ -3,10 +3,10 @@
# @name Fun Cub Quad VTOL
# @type Standard VTOL
# @maintainer Simon Wilks <simon@uaventure.com>
# @output MAIN1 Front right motor: CCW
# @output MAIN2 Back left motor: CCW
# @output MAIN3 Front left motor: CW
# @output MAIN4 Back right motor: CW
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output AUX1 Aileron 1
# @output AUX2 Aileron 2
# @output AUX3 Elevator

View File

@ -3,10 +3,10 @@
# @name Generic quad delta VTOL
# @type Standard VTOL
# @maintainer Simon Wilks <simon@uaventure.com>
# @output MAIN1 Front right motor: CCW
# @output MAIN2 Back left motor: CCW
# @output MAIN3 Front left motor: CW
# @output MAIN4 Back right motor: CW
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output AUX1 Right elevon
# @output AUX2 Left elevon
# @output AUX3 Motor
@ -36,7 +36,7 @@ then
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0.0
param set MC_YAWRATE_FF 0.0
param set MC_YAWRATE_MAX 20
param set MC_YAWRATE_MAX 50
param set MC_YAWRAUTO_MAX 20
param set MPC_XY_P 0.8

View File

@ -38,7 +38,7 @@ then
param set MC_YAWRAUTO_MAX 40.0
param set MPC_ACC_HOR_MAX 2.0
param set MPC_Z_VEL_MAX 1.5
param set MPC_Z_VEL_MAX_DN 1.5
param set MPC_TKO_SPEED 1.5
param set MPC_LAND_SPEED 0.8

View File

@ -67,7 +67,6 @@ then
param set MPC_XY_VEL_P 0.05
param set MPC_Z_FF 0.3
param set MPC_Z_P 0.5
param set MPC_Z_VEL_MAX 1.0
param set MPC_Z_VEL_P 0.1
param set NAV_ACC_RAD 3.0

View File

@ -17,6 +17,7 @@ param set VT_TILT_TRANS 0.5
param set VT_TILT_FW 0.9
param set VT_MOT_COUNT 4
param set VT_FW_MOT_OFFID 13
param set VT_IDLE_PWM_MC 1080
param set VT_TYPE 1
fi

View File

@ -0,0 +1,79 @@
#!nsh
#
# @name E-flite Convergence
# @type VTOL Tiltrotor
# @maintainer Andreas Antener <andreas@uaventure.com>
# @output MAIN1 Motor right
# @output MAIN2 Motor left
# @output MAIN3 Motor back
# @output MAIN4 empty
# @output MAIN5 Tilt servo right
# @output MAIN6 Tilt servo left
# @output MAIN7 Elevon right
# @output MAIN8 Elevon left
#
sh /etc/init.d/rc.vtol_defaults
if [ $AUTOCNF == yes ]
then
param set VT_MOT_COUNT 3
param set VT_FW_MOT_OFFID 3
param set VT_IDLE_PWM_MC 1080
param set VT_TYPE 1
param set VT_B_TRANS_DUR 1.0
param set VT_FW_DIFTHR_EN 1
param set VT_FW_DIFTHR_SC 0.17
param set VT_FW_PERM_STAB 0
param set VT_F_TRANS_DUR 1.2
param set VT_F_TR_OL_TM 4.0
param set VT_TILT_FW 1.0
param set VT_TILT_MC 0.0
param set VT_TILT_TRANS 0.45
param set VT_TRANS_MIN_TM 1.2
param set VT_TRANS_P2_DUR 1.3
param set FW_L1_PERIOD 17
param set FW_MAN_R_MAX 50.0
param set FW_ACRO_X_MAX 270
param set FW_ACRO_Y_MAX 270
param set FW_ACRO_Z_MAX 180
param set FW_PR_FF 0.5
param set FW_PR_P 0.08
param set FW_PSP_OFF 5.0
param set FW_P_LIM_MAX 30
param set FW_P_LIM_MIN -30
param set FW_P_RMAX_NEG 60
param set FW_P_RMAX_POS 60
param set FW_RR_FF 0.33
param set FW_RR_P 0.11
param set FW_YR_FF 0.3
param set FW_YR_P 0.05
param set MC_PITCHRATE_D 0.003
param set MC_PITCHRATE_P 0.15
param set MC_PITCH_P 6.0
param set MC_ROLLRATE_D 0.003
param set MC_ROLLRATE_P 0.15
param set MC_ROLL_P 6.0
param set MC_YAWRATE_MAX 120
param set MC_YAWRATE_P 0.27
param set MC_YAW_FF 0.35
param set MC_YAW_P 2.5
param set MC_YAWRATE_P 0.3
param set MPC_LAND_SPEED 1.2
param set MPC_TKO_SPEED 2.5
param set MPC_Z_VEL_MAX_UP 3.0
param set CBRK_AIRSPD_CHK 162128
param set FW_ARSP_MODE 2
param set SENS_BOARD_ROT 8
fi
set MIXER vtol_convergence
set PWM_OUT 1234
set PWM_RATE 400
set MAV_TYPE 21

View File

@ -0,0 +1,114 @@
#!nsh
#
# @name DeltaQuad
# @type Standard VTOL
# @maintainer Sander Smeets <sander@droneslab.com>
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output AUX1 Right elevon
# @output AUX2 Left elevon
# @output AUX3 Motor
#
sh /etc/init.d/rc.vtol_defaults
if [ $AUTOCNF == yes ]
then
param set VT_TYPE 2
param set VT_MOT_COUNT 4
param set VT_TRANS_THR 1
param set VT_DWN_PITCH_MAX 8
param set VT_FW_QC_P 55
param set VT_FW_QC_R 55
param set VT_TRANS_MIN_TM 8
param set VT_B_TRANS_DUR 5
param set VT_WV_LND_EN 1
param set VT_WV_LTR_EN 1
param set VT_FWD_THRUST_SC 2
param set VT_F_TRANS_DUR 1
param set VT_IDLE_PWM_MC 1025
param set FW_ARSP_MODE 2
param set FW_L1_PERIOD 25
param set FW_PR_FF 0.7
param set FW_PR_I 0.18
param set FW_PR_P 0.15
param set FW_P_TC 0.5
param set FW_PSP_OFF 5
param set FW_R_LIM 35
param set FW_RR_FF 0.9
param set FW_RR_I 0.08
param set FW_RR_P 0.18
param set FW_T_HRATE_FF 0.5
param set FW_T_CLMB_MAX 3
param set FW_T_SINK_MAX 3
param set FW_T_SINK_MIN 1
param set FW_T_VERT_ACC 6
param set FW_THR_CRUISE 0.68
param set FW_THR_SLEW_MAX 1
param set FW_MAN_P_MAX 30
param set FW_P_LIM_MAX 20
param set FW_P_LIM_MIN -25
param set FW_P_RMAX_NEG 45
param set FW_P_RMAX_POS 45
param set FW_R_RMAX 50
param set LNDMC_ALT_MAX 9999
param set LNDMC_XY_VEL_MAX 1
param set LNDMC_Z_VEL_MAX 0.7
param set MC_ROLL_P 6.5
param set MC_ROLLRATE_P 0.16
param set MC_ROLLRATE_I 0.01
param set MC_ROLLRATE_D 0.003
param set MC_ROLLRATE_FF 0.0
param set MC_ROLLRATE_MAX 80
param set MC_PITCH_P 6.5
param set MC_PITCHRATE_P 0.15
param set MC_PITCHRATE_I 0.05
param set MC_PITCHRATE_D 0.003
param set MC_PITCHRATE_FF 0.0
param set MC_PITCHRATE_MAX 80
param set MC_YAW_P 3.5
param set MC_YAW_FF 0.5
param set MC_YAWRATE_P 0.2
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0.0
param set MC_YAWRATE_FF 0.0
param set MC_YAWRATE_MAX 20
param set MC_YAWRAUTO_MAX 20
param set MPC_XY_P 0.8
param set MPC_XY_VEL_P 0.1
param set MPC_XY_VEL_MAX 4
param set MPC_ACC_HOR_MAX 2.0
param set MPC_LAND_SPEED 1.5
param set MPC_MAN_R_MAX 30
param set MPC_TILTMAX_LND 35
param set MPC_Z_VEL_MAX 1.5
param set MPC_Z_VEL_MAX_UP 1.5
param set MPC_Z_VEL_MAX_DN 1.5
param set MPC_HOLD_MAX_XY 0.5
param set MPC_HOLD_MAX_Z 0.5
param set CBRK_AIRSPD_CHK 162128
param set CBRK_IO_SAFETY 22027
param set EKF2_GPS_POS_X -0.12
param set EKF2_IMU_POS_X -0.12
param set EKF2_TAU_VEL 0.5
param set SYS_COMPANION 57600
fi
set MIXER vtol_quad_x
set PWM_OUT 1234
set PWM_RATE 400
set MIXER_AUX vtol_delta
set PWM_ACHDIS 3
set PWM_AUX_DISARMED 950
set MAV_TYPE 22

View File

@ -4,6 +4,11 @@
#
# @type Tricopter Y+
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 yaw servo
#
# @maintainer Trent Lukaczyk <aerialhedgehog@gmail.com>
#

View File

@ -4,6 +4,11 @@
#
# @type Tricopter Y-
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 yaw servo
#
# @maintainer Trent Lukaczyk <aerialhedgehog@gmail.com>
#

View File

@ -46,14 +46,8 @@ fi
# use PWM parameters for throttle channel
set PWM_OUT 34
set PWM_RATE 400
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX
# This is the gimbal pass mixer
set MIXER_AUX pass
set PWM_AUX_RATE 50
set PWM_AUX_OUT 1234
set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000

View File

@ -5,6 +5,11 @@
# @type Helicopter
#
# @maintainer Bart Slinger <bartslinger@gmail.com>
# @output MAIN1 main motor
# @output MAIN2 front swashplate servo
# @output MAIN3 right swashplate servo
# @output MAIN4 left swashplate servo
# @output MAIN5 tail-rotor servo
#
sh /etc/init.d/rc.mc_defaults
@ -12,9 +17,9 @@ sh /etc/init.d/rc.mc_defaults
# Configure as helicopter (number 4 defined in commander_helper.cpp)
set MAV_TYPE 4
set MIXER heli_120deg
set MIXER blade130
set PWM_OUT 1234
#set PWM_OUT 1234
if [ $AUTOCNF == yes ]
then
@ -48,3 +53,5 @@ then
param set CBRK_IO_SAFETY 22027
fi
set HIL no

View File

@ -4,6 +4,13 @@
#
# @type custom
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
# @maintainer Julian Oes <julian@oes.ch>
#
# This startup can be used on Pixhawk/Pixfalcon/Pixracer for the

View File

@ -4,6 +4,11 @@
#
# @type Standard Plane
#
# @output MAIN1 aileron
# @output MAIN2 elevator
# @output MAIN3 rudder
# @output MAIN4 throttle
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#

View File

@ -23,6 +23,3 @@ set MIXER AERT
# use PWM parameters for throttle channel
set PWM_OUT 4
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX

View File

@ -45,6 +45,3 @@ set MIXER AAERTWF
# use PWM parameters for throttle channel
set PWM_OUT 5
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX

View File

@ -46,6 +46,3 @@ set MIXER AAVVTWFF
# use PWM parameters for throttle channel
set PWM_OUT 5
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX

View File

@ -51,9 +51,5 @@ then
param set NAV_LOITER_RAD 30
fi
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX
set MIXER caipi
set PWM_OUT 1234

View File

@ -4,9 +4,17 @@
#
# @type Quadrotor x
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 feed-through of RC AUX1 channel
# @output MAIN6 feed-through of RC AUX2 channel
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#

View File

@ -5,6 +5,18 @@
# @type Quadrotor x
#
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 feed-through of RC AUX1 channel
# @output MAIN6 feed-through of RC AUX2 channel
#
# @output AUX1 Mount pitch
# @output AUX2 Mount roll
# @output AUX3 Mount yaw
# @output AUX4 Mount retract
#
# @maintainer Leon Mueller <thedevleon>
#
@ -17,5 +29,3 @@ set MIXER_AUX mount
set PWM_AUX_OUT 123456
set PWM_AUX_RATE 50
# Start mount driver
vmount start

View File

@ -4,9 +4,8 @@
#
# @type Quadrotor x
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
#
# @maintainer James Goppert <james.goppert@gmail.com>
#
@ -28,8 +27,8 @@ then
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.5
param set MC_TPA_BREAK 0.7
param set MC_TPA_SLOPE 1.0
param set MC_TPA_BREAK_P 0.7
param set MC_TPA_RATE_P 0.3
param set PWM_MIN 1075
param set MPC_THR_MIN 0.06
param set MPC_MANTHR_MIN 0.06

View File

@ -4,6 +4,13 @@
#
# @type Quadrotor x
#
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#

View File

@ -4,16 +4,6 @@
#
# @type Quadrotor x
#
# @output MAIN1 motor1 (front right: CCW)
# @output MAIN2 motor2 (back left: CCW)
# @output MAIN3 motor3 (front left: CW)
# @output MAIN4 motor4 (back right: CW)
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Mark Whitehorn <kd0aij@gmail.com>
#
@ -39,6 +29,6 @@ then
param set MPC_MANTHR_MIN 0.06
param set CBRK_IO_SAFETY 22027
param set ATT_BIAS_MAX 0.0
param set MC_TPA_BREAK 0.5
param set MC_TPA_SLOPE 1.0
param set MC_TPA_BREAK_P 0.5
param set MC_TPA_RATE_P 0.5
fi

View File

@ -4,10 +4,6 @@
#
# @type Quadrotor x
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#

View File

@ -4,10 +4,6 @@
#
# @type Quadrotor x
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#

View File

@ -25,4 +25,5 @@ then
param set MC_YAWRATE_D 0.0
fi
set MIXER quad_x_can
set OUTPUT_MODE uavcan_esc

View File

@ -4,6 +4,14 @@
#
# @type Quadrotor x
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
# @maintainer Michael Schaeuble
#

View File

@ -4,6 +4,13 @@
#
# @type Quadrotor x
#
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
# @maintainer Thomas Gubler <thomas@px4.io>
#
@ -23,6 +30,5 @@ then
param set MC_YAWRATE_P 0.2
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0.0
param set PWM_MIN 1200
fi
set PWM_MIN 1200

View File

@ -4,6 +4,13 @@
#
# @type Quadrotor x
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
# @maintainer Andreas Antener <andreas@uaventure.com>
#
@ -16,7 +23,7 @@ then
param set MC_ROLLRATE_P 0.11
param set MPC_MANTHR_MIN 0.08
param set MPC_XY_VEL_MAX 3.0
param set MPC_Z_VEL_MAX 2.0
param set MPC_Z_VEL_MAX_DN 2.0
# INAV: higher GPS weights for better altitude control
param set INAV_W_Z_BARO 0.3

View File

@ -24,19 +24,17 @@ then
param set NAV_ACC_RAD 2.0
param set RTL_RETURN_ALT 30.0
param set RTL_DESCEND_ALT 10.0
param set PWM_MIN 1100
param set PWM_MAX 1900
param set PWM_AUX_DISARMED 950
fi
set MIXER quad_h
set PWM_RATE 50
set PWM_OUT 1234
set PWM_MIN 1100
set PWM_MAX 1900
set PWM_DISARMED 1500
set MIXER_AUX pass
set PWM_AUX_RATE 50
set PWM_AUX_OUT 1234
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000
set PWM_AUX_DISARMED 950

View File

@ -4,16 +4,6 @@
#
# @type Quadrotor x
#
# @output MAIN1 motor1 (front right: CCW)
# @output MAIN2 motor2 (back left: CCW)
# @output MAIN3 motor3 (front left: CW)
# @output MAIN4 motor4 (back right: CW)
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Mark Whitehorn <kd0aij@gmail.com>
#
@ -39,9 +29,8 @@ then
param set MC_YAWRATE_MAX 400.0
param set MC_ACRO_R_MAX 360.0
param set MC_ACRO_P_MAX 360.0
param set MC_TPA_BREAK 0.5
param set MC_TPA_SLOPE 1.0
param set MC_TPA_BREAK_P 0.5
param set MC_TPA_RATE_P 0.5
param set PWM_MIN 1075

View File

@ -0,0 +1,64 @@
#!nsh
#
# @name Spedix S250AQ
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
#
# @type Quadrotor asymmetric
#
# @output MAIN1 motor1 (front right: CCW)
# @output MAIN2 motor2 (back left: CCW)
# @output MAIN3 motor3 (front left: CW)
# @output MAIN4 motor4 (back right: CW)
#
# @output MAIN5 feed-through of RC AUX1 channel
# @output MAIN6 feed-through of RC AUX2 channel
#
# @maintainer Mark Whitehorn <kd0aij@gmail.com>
#
sh /etc/init.d/rc.mc_defaults
set MIXER quad_s250aq
set MAV_TYPE 2
set PWM_OUT 1234
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 8.0
param set MC_ROLLRATE_P 0.19
param set MC_ROLLRATE_I 0.1
param set MC_ROLLRATE_D 0.0055
param set MC_PITCH_P 8.0
param set MC_PITCHRATE_P 0.19
param set MC_PITCHRATE_I 0.1
param set MC_PITCHRATE_D 0.0055
param set MC_YAW_P 4.0
param set MC_YAWRATE_P 0.2
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.5
param set MC_ROLLRATE_MAX 720.0
param set MC_PITCHRATE_MAX 720.0
param set MC_YAWRATE_MAX 400.0
param set MC_ACRO_R_MAX 360.0
param set MC_ACRO_P_MAX 360.0
param set MC_TPA_BREAK_D 0.3
param set MC_TPA_BREAK_I 1.0
param set MC_TPA_BREAK_P 0.3
param set MC_TPA_RATE_D 1.0
param set MC_TPA_RATE_I 0.0
param set MC_TPA_RATE_P 1.0
param set PWM_MIN 1075
param set MPC_THR_MIN 0.06
param set MPC_MANTHR_MIN 0.06
param set ATT_BIAS_MAX 0.0
param set CBRK_IO_SAFETY 22027
fi

View File

@ -4,10 +4,6 @@
#
# @type Quadrotor x
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
#
# @maintainer James Goppert <james.goppert@gmail.com>
#

View File

@ -2,6 +2,13 @@
#
# @name Intel Aero RTF
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
#
# @type Quadrotor x
sh /etc/init.d/rc.mc_defaults
@ -12,14 +19,21 @@ sh /etc/init.d/rc.mc_defaults
if [ $AUTOCNF == yes ]
then
# Set all params here, then disable autoconfig
param set COM_DISARM_LAND 3
param set LNDMC_MAN_DWNTHR 0.2500
param set LNDMC_POS_UPTHR 0.5500
param set LNDMC_Z_VEL_MAX 2.0000
param set MC_ROLL_P 8.0000
param set MC_ROLLRATE_P 0.1300
param set MC_ROLLRATE_I 0.05
param set MC_ROLLRATE_I 0.07
param set MC_ROLLRATE_D 0.0012
param set MC_ROLLRATE_MAX 360
param set MC_PITCH_P 8.0000
param set MC_PITCHRATE_P 0.1300
param set MC_PITCHRATE_I 0.05
param set MC_PITCHRATE_I 0.07
param set MC_PITCHRATE_D 0.0012
param set MC_PITCHRATE_MAX 360
param set MC_YAW_P 4.0
@ -27,7 +41,28 @@ then
param set MC_YAWRATE_I 0.050000000745058060
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.5
param set MPC_XY_CRUISE 8
param set MPC_LAND_SPEED 0.7000
param set MPC_MANTHR_MIN 0.0400
param set MPC_THR_HOVER 0.5000
param set MPC_THR_MAX 0.9400
param set MPC_THR_MIN 0.1000
param set MPC_XY_CRUISE 8.0000
param set MPC_XY_P 1.5000
param set MPC_XY_VEL_P 0.1500
param set MPC_Z_P 1.5000
param set MPC_Z_VEL_I 0.1500
param set MPC_Z_VEL_MAX_DN 4.0000
param set MPC_Z_VEL_MAX_UP 5.0000
param set MPC_Z_VEL_P 0.8000
param set EKF2_GPS_POS_X -0.0600
param set EKF2_GPS_POS_Z -0.1000
param set EKF2_MIN_OBS_DT 50
param set EKF2_BARO_GATE 10.0
param set EKF2_BARO_NOISE 5.0
param set EKF2_ACC_NOISE 0.7
param set SYS_LOGGER 1
fi
@ -39,5 +74,5 @@ set OUTPUT_MODE tap_esc
set MIXER quad_x
set USE_IO no
param set SYS_COMPANION 1500000
param set SYS_COMPANION 460800
set MAVLINK_COMPANION_DEVICE /dev/ttyS1

View File

@ -0,0 +1,55 @@
#!nsh
#
# @name ZMR250 Racer
#
# @type Quadrotor x
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
#
# @maintainer Anton Matosov <anton.matosov@gmail.com>
#
sh /etc/init.d/rc.mc_defaults
set MIXER zmr250
set PWM_OUT 1234
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 2.0
param set MC_ROLLRATE_P 0.05
param set MC_ROLLRATE_I 0.2
param set MC_ROLLRATE_D 0.0015
param set MC_ROLL_TC 0.18
param set MC_PITCH_P 2.0
param set MC_PITCHRATE_P 0.05
param set MC_PITCHRATE_I 0.2
param set MC_PITCHRATE_D 0.0015
param set MC_PITCH_TC 0.18
param set MC_YAW_P 1.0
param set MC_YAWRATE_P 0.15
param set MC_YAWRATE_I 0.2
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.5
param set MC_ACRO_R_MAX 1000.0
param set MC_ACRO_P_MAX 1000.0
param set MC_ACRO_Y_MAX 1000.0
param set MC_TPA_BREAK_P 0.5
param set MC_TPA_BREAK_D 0.7
param set MC_TPA_RATE_P 0.5
param set MC_TPA_RATE_D 0.5
param set PWM_MIN 1075
param set PWM_RATE 400
param set PWM_DISARMED 900
param set FAILSAFE 100
# param set NAV_RCL_ACT 6 # Lockdown
param set CBRK_IO_SAFETY 22027
fi

View File

@ -0,0 +1,41 @@
#!nsh
#
# @name NanoMind 110 Quad
#
# @type Quadrotor x
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
# @maintainer Henry Zhang <zhanghui629@gmail.com>
#
sh /etc/init.d/4001_quad_x
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 8.0
param set MC_ROLLRATE_P 0.19
param set MC_ROLLRATE_I 0.1
param set MC_ROLLRATE_D 0.0055
param set MC_PITCH_P 8.0
param set MC_PITCHRATE_P 0.19
param set MC_PITCHRATE_I 0.1
param set MC_PITCHRATE_D 0.0055
param set MC_YAW_P 4.0
param set MC_YAWRATE_P 0.2
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.5
param set BAT_N_CELLS 1
param set PWM_DISARMED 0
param set PWM_MIN 500
param set PWM_MAX 2200
fi

View File

@ -2,6 +2,14 @@
#
# @name Crazyflie 2.0
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
# @type Quadrotor x
#

View File

@ -4,6 +4,15 @@
#
# @type Rover
#
# @output MAIN1 pass-through of control group 0, channel 0
# @output MAIN2 pass-through of control group 0, channel 1
# @output MAIN3 pass-through of control group 0, channel 2
# @output MAIN4 pass-through of control group 0, channel 3
# @output MAIN5 pass-through of control group 0, channel 4
# @output MAIN6 pass-through of control group 0, channel 5
# @output MAIN7 pass-through of control group 0, channel 6
# @output MAIN8 pass-through of control group 0, channel 7
#
sh /etc/init.d/rc.axialracing_ax10_defaults

View File

@ -0,0 +1,61 @@
#!nsh
#
# @name Traxxas stampede vxl 2wd
#
# @url https://traxxas.com/products/models/electric/stampede-vxl-tsm
#
# @type Rover
#
# @output MAIN2 steering
# @output MAIN4 throttle
#
# @maintainer Marco Zorzi
#
sh /etc/init.d/rc.gnd_defaults
if [ $AUTOCNF == yes ]
then
param set BAT_N_CELLS 7
param set FW_AIRSPD_MIN 0
param set FW_AIRSPD_TRIM 1
param set FW_AIRSPD_MAX 3
param set NAV_ACC_RAD 0.5
param set MIS_LTRMIN_ALT 0.01
param set MIS_TAKEOFF_ALT 0.01
param set EKF2_GBIAS_INIT 0.01
param set EKF2_ANGERR_INIT 0.01
param set EKF2_MAG_TYPE 1
param set GND_WR_P 2
param set GND_WR_I 0.9674
param set GND_WR_IMAX 0.1
param set GND_WR_D 1.2
param set GND_SP_CTRL_MODE 1
param set GND_L1_DIST 10
param set GND_THR_IDLE 0
param set GND_THR_CRUISE 0
param set GND_THR_MAX 0.5
param set GND_THR_MIN 0
param set GND_SPEED_P 0.25
param set GND_SPEED_I 0.001
param set GND_SPEED_D 3
param set GND_SPEED_IMAX 0.125
param set GND_SPEED_THR_SC 1
fi
# Configure this as ugv
set MAV_TYPE 10
# Set mixer
set MIXER stampede
# Provide ESC a constant 1500 us pulse
set PWM_DISARMED 1500
set PWM_MAIN_REV2 1
set PWM_MAX 2000
set PWM_MIN 1000

View File

@ -4,6 +4,18 @@
#
# @type Quadrotor +
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 feed-through of RC AUX1 channel
# @output MAIN6 feed-through of RC AUX2 channel
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
# @output AUX4 feed-through of RC FLAPS channel
#
# @maintainer Anton Babushkin <anton@px4.io>
#

View File

@ -4,6 +4,13 @@
#
# @type Hexarotor x
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 motor 5
# @output MAIN6 motor 6
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel

View File

@ -4,6 +4,13 @@
#
# @type Hexarotor +
#
# @output MAIN1 motor1
# @output MAIN2 motor2
# @output MAIN3 motor3
# @output MAIN4 motor4
# @output MAIN5 motor5
# @output MAIN6 motor6
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel

View File

@ -4,6 +4,15 @@
#
# @type Octorotor x
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 motor 5
# @output MAIN6 motor 6
# @output MAIN7 motor 7
# @output MAIN8 motor 8
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel

View File

@ -4,6 +4,15 @@
#
# @type Octorotor +
#
# @output MAIN1 motor 1
# @output MAIN2 motor 2
# @output MAIN3 motor 3
# @output MAIN4 motor 4
# @output MAIN5 motor 5
# @output MAIN6 motor 6
# @output MAIN7 motor 7
# @output MAIN8 motor 8
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel

View File

@ -1,27 +1,25 @@
#!nsh
set VEHICLE_TYPE rover
set VEHICLE_TYPE ugv
# This section can be enabled once tuning parameters for this particular
# rover model are known. It allows to configure default gains via the GUI
#if [ $AUTOCNF == yes ]
#then
# # param set MC_ROLL_P 7.0
#fi
if [ $AUTOCNF == yes ]
then
# PWM default value for "disarmed" mode
# this centers the steering and throttle, which means no motion
# for a rover
param set PWM_DISARMED 1500
# PWM range
param set PWM_MIN 1200
param set PWM_MAX 1800
fi
# PWM Hz - 50 Hz is the normal rate in RC cars, higher rates
# may damage analog servos.
set PWM_RATE 50
# PWM default value for "disarmed" mode
# this centers the steering and throttle, which means no motion
# for a rover
set PWM_DISARMED 1500
# PWM range
set PWM_MIN 1200
set PWM_MAX 1800
# Enable servo output on pins 3 and 4 (steering and thrust)
# but also include 1+2 as they form together one output group
# and need to be set together.

View File

@ -3,6 +3,14 @@
# Standard apps for fixed wing
#
# LPE
if param compare SYS_MC_EST_GROUP 1
then
echo "ERROR [init] Estimator LPE not supported on fixed wing. Using EKF2"
param set SYS_MC_EST_GROUP 2
param save
fi
#
# Start the attitude and position estimator
#
@ -18,7 +26,3 @@ fw_pos_control_l1 start
# Start Land Detector
#
land_detector start fixedwing
#
# Misc apps
#

View File

@ -11,10 +11,10 @@ then
param set RTL_DESCEND_ALT 100
param set RTL_LAND_DELAY -1
# FW uses L1 distance for acceptance radius
# FW uses L1 distance for acceptance radius
# set a smaller NAV_ACC_RAD for vertical acceptance distance
param set NAV_ACC_RAD 10
param set MIS_LTRMIN_ALT 25
param set MIS_TAKEOFF_ALT 25
fi
@ -23,6 +23,3 @@ fi
set MIXER_AUX pass
set PWM_AUX_RATE 50
set PWM_AUX_OUT 1234
set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000

View File

@ -0,0 +1,24 @@
#!nsh
#
# Standard apps for unmanned ground vehicles (UGV)
#
#
# Start the attitude and position estimator
#
ekf2 start
#attitude_estimator_q start
#local_position_estimator start
#
# Start attitude controllers
#
gnd_att_control start
gnd_pos_control start
#
# Start Land Detector
#
land_detector start ugv

View File

@ -0,0 +1,32 @@
#!nsh
set VEHICLE_TYPE ugv
if [ $AUTOCNF == yes ]
then
#
# Default parameters for UGVs
#
param set NAV_DLL_ACT 0
param set NAV_ACC_RAD 2.0
# temporary
param set NAV_FW_ALT_RAD 1000
param set MIS_LTRMIN_ALT 0.01
param set MIS_TAKEOFF_ALT 0.01
fi
# Enable servo output on pins 3 and 4 (steering and thrust)
# but also include 1+2 as they form together one output group
# and need to be set together.
set PWM_OUT 1234
# PWM Hz - 50 Hz is the normal rate in RC cars, higher rates
# may damage analog servos.
set PWM_RATE 50
# This is the gimbal pass mixer
set MIXER_AUX pass
set PWM_AUX_RATE 50
set PWM_AUX_OUT 1234

View File

@ -2,6 +2,12 @@
#
# Script to configure control interface
#
#
# NOTE: environment variable references:
# If the dollar sign ('$') is followed by a left bracket ('{') then the
# variable name is terminated with the right bracket character ('}').
# Otherwise, the variable name goes to the end of the argument.
#
set SDCARD_MIXERS_PATH /fs/microsd/etc/mixers
@ -13,21 +19,21 @@ then
if [ $MIXER_AUX == none -a $USE_IO == yes ]
then
set MIXER_AUX $MIXER.aux
set MIXER_AUX ${MIXER}
fi
# Use the mixer file from the SD-card if it exists
if [ -f $SDCARD_MIXERS_PATH/$MIXER.main.mix ]
if [ -f ${SDCARD_MIXERS_PATH}/${MIXER}.main.mix ]
then
set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.main.mix
set MIXER_FILE ${SDCARD_MIXERS_PATH}/${MIXER}.main.mix
# Try out the old convention, for backward compatibility
else
if [ -f $SDCARD_MIXERS_PATH/$MIXER.mix ]
if [ -f ${SDCARD_MIXERS_PATH}/${MIXER}.mix ]
then
set MIXER_FILE $SDCARD_MIXERS_PATH/$MIXER.mix
set MIXER_FILE ${SDCARD_MIXERS_PATH}/${MIXER}.mix
else
set MIXER_FILE /etc/mixers/$MIXER.main.mix
set MIXER_FILE /etc/mixers/${MIXER}.main.mix
fi
fi
@ -48,22 +54,22 @@ then
set OUTPUT_DEV /dev/tap_esc
fi
if mixer load $OUTPUT_DEV $MIXER_FILE
if mixer load ${OUTPUT_DEV} ${MIXER_FILE}
then
echo "INFO [init] Mixer: $MIXER_FILE on $OUTPUT_DEV"
echo "INFO [init] Mixer: ${MIXER_FILE} on ${OUTPUT_DEV}"
else
echo "ERROR [init] Error loading mixer: $MIXER_FILE"
echo "ERROR:[init] Could not load mixer: $MIXER_FILE" >> $LOG_FILE
tone_alarm $TUNE_ERR
echo "ERROR [init] Failed loading mixer: ${MIXER_FILE}"
echo "ERROR [init] Failed loading mixer: ${MIXER_FILE}" >> $LOG_FILE
tone_alarm ${TUNE_ERR}
fi
unset MIXER_FILE
else
if [ $MIXER != skip ]
then
echo "ERROR [init] Mixer not defined"
echo "ERROR [init] Mixer not defined" >> $LOG_FILE
tone_alarm $TUNE_ERR
echo "ERROR [init] Mixer undefined"
echo "ERROR [init] Mixer undefined" >> $LOG_FILE
tone_alarm ${TUNE_ERR}
fi
fi
@ -76,7 +82,7 @@ then
#
if [ $PWM_RATE != none ]
then
pwm rate -c $PWM_OUT -r $PWM_RATE
pwm rate -c ${PWM_OUT} -r ${PWM_RATE}
fi
#
@ -84,21 +90,21 @@ then
#
if [ $PWM_DISARMED != none ]
then
pwm disarmed -c $PWM_OUT -p $PWM_DISARMED
pwm disarmed -c ${PWM_OUT} -p ${PWM_DISARMED}
fi
if [ $PWM_MIN != none ]
then
pwm min -c $PWM_OUT -p $PWM_MIN
pwm min -c ${PWM_OUT} -p ${PWM_MIN}
fi
if [ $PWM_MAX != none ]
then
pwm max -c $PWM_OUT -p $PWM_MAX
pwm max -c ${PWM_OUT} -p ${PWM_MAX}
fi
fi
if [ $FAILSAFE != none ]
then
pwm failsafe -d $OUTPUT_DEV $FAILSAFE
pwm failsafe -d ${OUTPUT_DEV} ${FAILSAFE}
fi
fi
@ -111,7 +117,7 @@ fi
#MindPX has not aux mixer
if ver hwcmp MINDPX_V2
then
set MIXER_AUX none
set MIXER_AUX none
fi
if ver hwcmp CRAZYFLIE
@ -124,6 +130,11 @@ then
set MIXER_AUX none
fi
if ver hwcmp PX4FMU_V5
then
set MIXER_AUX none
fi
if [ $MIXER_AUX != none -a $AUX_MODE != none ]
then
#
@ -133,40 +144,40 @@ then
set MIXER_AUX_FILE none
set OUTPUT_AUX_DEV /dev/pwm_output1
if [ -f $SDCARD_MIXERS_PATH/$MIXER_AUX.aux.mix ]
if [ -f ${SDCARD_MIXERS_PATH}/${MIXER_AUX}.aux.mix ]
then
set MIXER_AUX_FILE $SDCARD_MIXERS_PATH/$MIXER_AUX.aux.mix
set MIXER_AUX_FILE ${SDCARD_MIXERS_PATH}/${MIXER_AUX}.aux.mix
else
if [ -f /etc/mixers/$MIXER_AUX.aux.mix ]
if [ -f /etc/mixers/${MIXER_AUX}.aux.mix ]
then
set MIXER_AUX_FILE /etc/mixers/$MIXER_AUX.aux.mix
set MIXER_AUX_FILE /etc/mixers/${MIXER_AUX}.aux.mix
fi
fi
if [ $MIXER_AUX_FILE != none ]
then
if fmu mode_$AUX_MODE
if fmu mode_${AUX_MODE}
then
# Append aux mixer to main device
if [ $OUTPUT_MODE == hil ]
then
if mixer append $OUTPUT_DEV $MIXER_AUX_FILE
if mixer append ${OUTPUT_DEV} ${MIXER_AUX_FILE}
then
echo "INFO [init] Mixer: $MIXER_AUX_FILE appended to $OUTPUT_DEV"
echo "INFO [init] Mixer: ${MIXER_AUX_FILE} appended to ${OUTPUT_DEV}"
else
echo "ERROR [init] Error appending mixer: $MIXER_AUX_FILE"
echo "ERROR [init] Could not append mixer: $MIXER_AUX_FILE" >> $LOG_FILE
echo "ERROR [init] Failed appending mixer: ${MIXER_AUX_FILE}"
echo "ERROR [init] Failed appending mixer: ${MIXER_AUX_FILE}" >> $LOG_FILE
fi
fi
if [ -e $OUTPUT_AUX_DEV -a $OUTPUT_MODE != hil ]
then
if mixer load $OUTPUT_AUX_DEV $MIXER_AUX_FILE
if mixer load ${OUTPUT_AUX_DEV} ${MIXER_AUX_FILE}
then
echo "INFO [init] Mixer: $MIXER_AUX_FILE on $OUTPUT_AUX_DEV"
echo "INFO [init] Mixer: ${MIXER_AUX_FILE} on ${OUTPUT_AUX_DEV}"
else
echo "ERROR [init] Error loading mixer: $MIXER_AUX_FILE"
echo "ERROR [init] Could not load mixer: $MIXER_AUX_FILE" >> $LOG_FILE
echo "ERROR [init] Failed loading mixer: ${MIXER_AUX_FILE}"
echo "ERROR [init] Failed loading mixer: ${MIXER_AUX_FILE}" >> $LOG_FILE
fi
else
set PWM_AUX_OUT none
@ -174,7 +185,7 @@ then
fi
else
echo "ERROR: Could not start: fmu mode_pwm" >> $LOG_FILE
tone_alarm $TUNE_ERR
tone_alarm ${TUNE_ERR}
set PWM_AUX_OUT none
set FAILSAFE_AUX none
fi
@ -187,16 +198,16 @@ then
#
if [ $PWM_AUX_RATE != none ]
then
pwm rate -c $PWM_AUX_OUT -r $PWM_AUX_RATE -d $OUTPUT_AUX_DEV
pwm rate -e -c ${PWM_AUX_OUT} -r ${PWM_AUX_RATE} -d ${OUTPUT_AUX_DEV}
fi
if [ $PWM_AUX_MIN != none ]
then
pwm min -c $PWM_AUX_OUT -p $PWM_AUX_MIN -d $OUTPUT_AUX_DEV
pwm min -e -c ${PWM_AUX_OUT} -p ${PWM_AUX_MIN} -d ${OUTPUT_AUX_DEV}
fi
if [ $PWM_AUX_MAX != none ]
then
pwm max -c $PWM_AUX_OUT -p $PWM_AUX_MAX -d $OUTPUT_AUX_DEV
pwm max -e -c ${PWM_AUX_OUT} -p ${PWM_AUX_MAX} -d ${OUTPUT_AUX_DEV}
fi
fi
@ -214,12 +225,12 @@ then
#
if [ $PWM_AUX_DISARMED != none -a $PWM_ACHDIS != none ]
then
pwm disarmed -c $PWM_ACHDIS -p $PWM_AUX_DISARMED -d $OUTPUT_AUX_DEV
pwm disarmed -e -c ${PWM_ACHDIS} -p ${PWM_AUX_DISARMED} -d ${OUTPUT_AUX_DEV}
fi
if [ $FAILSAFE_AUX != none ]
then
pwm failsafe -d $OUTPUT_AUX_DEV $FAILSAFE
pwm failsafe -e -d ${OUTPUT_AUX_DEV} ${FAILSAFE}
fi
fi

View File

@ -16,6 +16,6 @@ then
set PX4IO_LIMIT 200
fi
if px4io limit $PX4IO_LIMIT
if px4io limit ${PX4IO_LIMIT}
then
fi

View File

@ -11,16 +11,24 @@
# INAV (deprecated)
if param compare SYS_MC_EST_GROUP 0
then
echo "ERROR [init] Estimator INAV deprecated. Using LPE"
param set SYS_MC_EST_GROUP 1
echo "ERROR [init] Estimator INAV deprecated. Using EKF2"
param set SYS_MC_EST_GROUP 2
param save
fi
# LPE
if param compare SYS_MC_EST_GROUP 1
then
attitude_estimator_q start
local_position_estimator start
# Try to start LPE. If it fails, start EKF2 as a default
# Unfortunately we do not build it on px4fmu-v2 due to a limited flash.
if attitude_estimator_q start
then
local_position_estimator start
else
echo "ERROR [init] Estimator LPE not available. Using EKF2"
param set SYS_MC_EST_GROUP 2
param save
fi
fi
# EKF

View File

@ -7,7 +7,6 @@ then
param set NAV_ACC_RAD 2.0
param set RTL_RETURN_ALT 30.0
param set RTL_DESCEND_ALT 10.0
param set PWM_DISARMED 900
param set PWM_MIN 1075
param set PWM_MAX 1950
param set PWM_RATE 400
@ -15,21 +14,7 @@ then
param set RTL_LAND_DELAY 0
fi
# tell the mixer to use parameters for these instead
set PWM_RATE p:PWM_RATE
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX
# This is the gimbal pass mixer
set MIXER_AUX pass
set PWM_AUX_RATE 50
set PWM_AUX_OUT 1234
set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000
if param compare PWM_DISARMED 0
then
param set PWM_DISARMED 900
fi

View File

@ -52,8 +52,13 @@ else
fi
fi
if adc start
if ver hwcmp AEROFC_V1
then
# Aero FC uses separate driver
else
if adc start
then
fi
fi
if ver hwcmp AUAV_X21
@ -68,6 +73,11 @@ then
then
fi
# Internal SPI bus ICM-20602-G is rotated 90 deg yaw
if mpu6000 -R 2 -T 20602 start
then
fi
# Internal SPI bus ICM-20608-G is rotated 90 deg yaw
if mpu6000 -R 2 -T 20608 start
then
@ -188,6 +198,11 @@ then
then
fi
# Internal SPI bus ICM-20602-G is rotated 90 deg yaw
if mpu6000 -R 2 -T 20602 start
then
fi
# Start either MPU9250 or BMI160. They are both connected to the same SPI bus and use the same
# chip select pin. There are different boards with either one of them and the WHO_AM_I register
# will prevent the incorrect driver from a successful initialization.
@ -201,6 +216,30 @@ then
if bmi160 start
then
fi
# Start either ICM2060X or BMI055. They are both connected to the same SPI bus and use the same
# chip select pin. There are different boards with either one of them and the WHO_AM_I register
# will prevent the incorrect driver from a successful initialization.
# Internal SPI bus BMI055_ACC
if bmi055 -A start
then
fi
# Internal SPI bus BMI055_GYR
if bmi055 -G start
then
fi
# expansion i2c used for BMM150 rotated by 90deg
if bmm150 -R 2 start
then
fi
# expansion i2c used for BMP280
if bmp280 -I start
then
fi
fi
if ver hwcmp PX4FMU_V1
@ -244,11 +283,11 @@ then
fi
# Internal I2C bus
if hmc5883 -C -T -I -R 8 start
if hmc5883 -C -T -I -R 12 start
then
fi
if mpu6500 -R 8 start
if mpu9250 -s -R 8 start
then
fi
@ -268,7 +307,7 @@ then
then
fi
# I2C bypass of mpu
# I2C bypass of mpu
if lps25h start
then
fi
@ -276,16 +315,11 @@ fi
if ver hwcmp AEROFC_V1
then
if ms5611 start
if ms5611 -T 0 start
then
fi
if mpu6500 -R 14 start
then
fi
# Internal compass
if hmc5883 -I -R 4 start
if mpu9250 -s -R 14 start
then
fi
@ -294,9 +328,88 @@ then
then
fi
if ist8310 -C -b 1 -R 8 start
if ist8310 -C -b 1 -R 4 start
then
fi
if aerofc_adc start
then
fi
if ll40ls start i2c
then
fi
fi
if ver hwcmp PX4FMU_V4PRO
then
# Internal SPI bus ICM-20608-G
if mpu6000 -R 2 -T 20608 start
then
fi
# Internal SPI bus ICM-20602
if mpu6000 -R 2 -T 20602 start
then
fi
# Internal SPI bus mpu9250
if mpu9250 -R 2 start
then
fi
# Internal SPI bus
if lis3mdl -R 0 start
then
fi
# Possible external compasses
if hmc5883 -C -T -X start
then
fi
fi
if ver hwcmp PX4FMU_V5
then
# Internal SPI bus ICM-20602
if mpu6000 -R 8 -s -T 20602 start
then
fi
# Internal SPI bus ICM-20689
if mpu6000 -R 8 -z -T 20689 start
then
fi
# Internal SPI bus BMI055 accel
if bmi055 -A -R 10 start
then
fi
# Internal SPI bus BMI055 gyro
if bmi055 -G -R 10 start
then
fi
# Possible external compasses
if hmc5883 -C -T -X start
then
fi
# Possible external airspeed sensor
if meas_airspeed start -b 2
then
fi
fi
if ver hwcmp AEROCORE2
then
l3gd20 -R 12 start
lsm303d start
fi
if meas_airspeed start
@ -311,10 +424,6 @@ else
fi
fi
if sf1xx start
then
fi
# Wait 20 ms for sensors (because we need to wait for the HRT and work queue callbacks to fire)
usleep 20000
if sensors start

View File

@ -12,16 +12,24 @@
# INAV (deprecated)
if param compare SYS_MC_EST_GROUP 0
then
echo "ERROR [init] Estimator INAV deprecated. Using LPE"
param set SYS_MC_EST_GROUP 1
echo "ERROR [init] Estimator INAV deprecated. Using EKF2"
param set SYS_MC_EST_GROUP 2
param save
fi
# LPE
if param compare SYS_MC_EST_GROUP 1
then
attitude_estimator_q start
local_position_estimator start
# Try to start LPE. If it fails, start EKF2 as a default
# Unfortunately we do not build it on px4fmu-v2 due to a limited flash.
if attitude_estimator_q start
then
local_position_estimator start
else
echo "ERROR [init] Estimator LPE not available. Using EKF2"
param set SYS_MC_EST_GROUP 2
param save
fi
fi
# EKF

View File

@ -14,7 +14,7 @@ then
param set NAV_ACC_RAD 3
param set MPC_TKO_SPEED 1.0
param set MPC_LAND_SPEED 0.7
param set MPC_Z_VEL_MAX 1.5
param set MPC_Z_VEL_MAX_DN 1.5
param set MPC_XY_VEL_MAX 4.0
param set MIS_YAW_TMT 10
param set MPC_ACC_HOR_MAX 2.0
@ -23,12 +23,3 @@ fi
# set environment variables (!= parameters)
set PWM_RATE 400
# tell the mixer to use parameters for these instead
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX
if param compare PWM_DISARMED 0
then
param set PWM_DISARMED 900
fi

View File

@ -1,14 +1,49 @@
#!nsh
#
# Un comment and use set +e to ignore and set -e to enable 'exit on error control'
#set +e
# Un comment the line below to help debug scripts by printing a trace of the script commands
#set -x
# PX4FMU startup script.
#
# NOTE: COMMENT LINES ARE REMOVED BEFORE STORED IN ROMFS.
# NOTE: environment variable references:
# If the dollar sign ('$') is followed by a left bracket ('{') then the
# variable name is terminated with the right bracket character ('}').
# Otherwise, the variable name goes to the end of the argument.
#
#
# NOTE: COMMENT LINES ARE REMOVED BEFORE STORED IN ROMFS.
#
# UART mapping on FMUv1/2/3/4:
#
# UART1 /dev/ttyS0 IO debug
# USART2 /dev/ttyS1 TELEM1 (flow control)
# USART3 /dev/ttyS2 TELEM2 (flow control)
# UART4
# UART7 CONSOLE
# UART8 SERIAL4
#
#
# UART mapping on FMUv5:
#
# UART1 /dev/ttyS0 GPS
# USART2 /dev/ttyS1 TELEM1 (flow control)
# USART3 /dev/ttyS2 TELEM2 (flow control)
# UART4 /dev/ttyS3 ?
# USART6 /dev/ttyS4 TELEM3 (flow control)
# UART7 /dev/ttyS5 ?
# UART8 /dev/ttyS6 CONSOLE
#
# Mount the procfs.
#
mount -t procfs /proc
#
# Start CDC/ACM serial driver
#
sercon
if sercon
then
fi
#
# Default to auto-start mode.
@ -24,8 +59,19 @@ set LOG_FILE /fs/microsd/bootlog.txt
# REBOOTWORK this needs to start after the flight control loop
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
# Start playing the startup tune
tone_alarm start
echo "[i] microSD mounted: /fs/microsd"
if hardfault_log check
then
tone_alarm error
if hardfault_log commit
then
hardfault_log reset
tone_alarm stop
fi
else
# Start playing the startup tune
tone_alarm start
fi
else
tone_alarm MBAGP
if mkfatfs /dev/mmcsd0
@ -50,7 +96,7 @@ fi
set FRC /fs/microsd/etc/rc.txt
if [ -f $FRC ]
then
echo "INFO [init] Executing script: $FRC"
echo "INFO [init] Executing script: ${FRC}"
sh $FRC
set MODE custom
fi
@ -104,8 +150,8 @@ then
#
if param compare SYS_AUTOCONFIG 1
then
# Wipe out params except RC*
param reset_nostart RC*
# Wipe out params except RC* and total flight time
param reset_nostart RC* LND_FLIGHT_T_*
set AUTOCNF yes
else
set AUTOCNF no
@ -130,16 +176,16 @@ then
set MIXER_AUX none
set OUTPUT_MODE none
set PWM_OUT none
set PWM_RATE none
set PWM_DISARMED none
set PWM_MIN none
set PWM_MAX none
set PWM_RATE p:PWM_RATE
set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX
set PWM_AUX_OUT none
set PWM_AUX_RATE none
set PWM_ACHDIS none
set PWM_AUX_DISARMED none
set PWM_AUX_MIN none
set PWM_AUX_MAX none
set PWM_AUX_DISARMED p:PWM_AUX_DISARMED
set PWM_AUX_MIN p:PWM_AUX_MIN
set PWM_AUX_MAX p:PWM_AUX_MAX
set FAILSAFE_AUX none
set MK_MODE none
set FMU_MODE pwm
@ -150,6 +196,7 @@ then
set MAV_TYPE none
set FAILSAFE none
set USE_IO yes
set LOGGER_BUF 16
#
# Set USE_IO flag
@ -161,6 +208,12 @@ then
set USE_IO no
fi
if ver hwcmp PX4FMU_V5
then
set USE_IO no
set MAVLINK_COMPANION_DEVICE /dev/ttyS3
fi
if ver hwcmp MINDPX_V2
then
set USE_IO no
@ -181,6 +234,11 @@ then
then
set USE_IO no
fi
if ver hwcmp AEROCORE2
then
set USE_IO no
fi
else
set USE_IO no
fi
@ -202,11 +260,25 @@ then
#
if param compare SYS_AUTOSTART 0
then
ekf2 start
else
sh /etc/init.d/rc.autostart
fi
unset MODE
#
# If mount (gimbal) control is enabled and output mode is AUX, set the aux
# mixer to mount (override the airframe-specific MIXER_AUX setting)
#
if param compare MNT_MODE_IN -1
then
else
if param compare MNT_MODE_OUT 0
then
set MIXER_AUX mount
fi
fi
#
# Wipe incompatible settings for boards not having two outputs
if ver hwcmp PX4FMU_V4
@ -214,6 +286,11 @@ then
set MIXER_AUX none
fi
if ver hwcmp PX4FMU_V5
then
set MIXER_AUX none
fi
if ver hwcmp AEROFC_V1
then
set MIXER_AUX none
@ -225,7 +302,7 @@ then
set FCONFIG /fs/microsd/etc/config.txt
if [ -f $FCONFIG ]
then
echo "Custom: $FCONFIG"
echo "Custom: ${FCONFIG}"
sh $FCONFIG
fi
unset FCONFIG
@ -235,6 +312,11 @@ then
#
if [ $AUTOCNF == yes ]
then
# Disable safety switch by default on Pixracer
if ver hwcmp PX4FMU_V4
then
param set CBRK_IO_SAFETY 22027
fi
param set SYS_AUTOCONFIG 0
fi
unset AUTOCNF
@ -275,8 +357,8 @@ then
if px4io forceupdate 14662 ${IO_FILE}
then
usleep 500000
if px4io checkcrc $IO_FILE
usleep 10000
if px4io checkcrc ${IO_FILE}
then
echo "PX4IO CRC OK after updating" >> $LOG_FILE
tone_alarm MLL8CDE
@ -284,11 +366,11 @@ then
set IO_PRESENT yes
else
echo "PX4IO update failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
tone_alarm ${TUNE_ERR}
fi
else
echo "PX4IO update failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
tone_alarm ${TUNE_ERR}
fi
fi
unset IO_FILE
@ -296,7 +378,7 @@ then
if [ $IO_PRESENT == no ]
then
echo "PX4IO not found" >> $LOG_FILE
tone_alarm $TUNE_ERR
tone_alarm ${TUNE_ERR}
fi
fi
@ -342,22 +424,36 @@ then
then
set FMU_MODE serial
fi
unset HIL
else
unset HIL
gps start
fi
set DATAMAN_OPT ""
if ver hwcmp AEROFC_V1
then
set DATAMAN_OPT -i
fi
if ver hwcmp AEROCORE2
then
set DATAMAN_OPT "-f /fs/mtd_dataman"
fi
# waypoint storage
# REBOOTWORK this needs to start in parallel
if dataman start
if dataman start $DATAMAN_OPT
then
fi
unset DATAMAN_OPT
#
# Sensors System (start before Commander so Preflight checks are properly run)
#
sh /etc/init.d/rc.sensors
if [ $HIL == yes ]
then
sensors start -hil
else
sh /etc/init.d/rc.sensors
fi
unset HIL
# Needs to be this early for in-air-restarts
if [ $OUTPUT_MODE == hil ]
@ -367,6 +463,10 @@ then
commander start
fi
if send_event start_listening
then
fi
#
# Start CPU load monitor
#
@ -386,17 +486,28 @@ then
fi
# Sensors on the PWM interface bank
# clear pins 5 and 6
if param compare SENS_EN_LL40LS 1
then
# clear pins 5 and 6
set FMU_MODE pwm4
set AUX_MODE pwm4
fi
if param greater TRIG_MODE 0
then
set FMU_MODE pwm4
set AUX_MODE pwm4
# We ONLY support trigger on pins 5 and 6 when simultanously using AUX for actuator output
if param compare TRIG_PINS 56
then
# clear pins 5 and 6
set FMU_MODE pwm4
set AUX_MODE pwm4
else
set FMU_MODE none
set AUX_MODE none
fi
camera_trigger start
param set CAM_FBACK_MODE 1
camera_feedback start
fi
# If OUTPUT_MODE == none then something is wrong with setup and we shouldn't try to enable output
@ -493,10 +604,10 @@ then
else
if [ $OUTPUT_MODE != fmu -a $OUTPUT_MODE != ardrone ]
then
if fmu mode_$FMU_MODE
if fmu mode_${FMU_MODE}
then
else
echo "FMU mode_$FMU_MODE start failed" >> $LOG_FILE
echo "FMU mode_${FMU_MODE} start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
@ -551,7 +662,7 @@ then
if [ "x$MAVLINK_F" == xnone ]
then
else
mavlink start $MAVLINK_F
mavlink start ${MAVLINK_F}
fi
unset MAVLINK_F
@ -565,7 +676,7 @@ then
# but this works for now
if param compare SYS_COMPANION 10
then
frsky_telemetry start -d $MAVLINK_COMPANION_DEVICE
frsky_telemetry start -d ${MAVLINK_COMPANION_DEVICE}
fi
if param compare SYS_COMPANION 20
then
@ -574,39 +685,52 @@ then
fi
if param compare SYS_COMPANION 921600
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 921600 -m onboard -r 80000 -x
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 921600 -m onboard -r 80000 -x
fi
if param compare SYS_COMPANION 57600
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 57600 -m onboard -r 5000 -x
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 57600 -m onboard -r 5000 -x
fi
if param compare SYS_COMPANION 460800
then
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 460800 -m onboard -r 5000 -x
fi
if param compare SYS_COMPANION 157600
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 57600 -m osd -r 1000
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 57600 -m osd -r 1000
fi
if param compare SYS_COMPANION 257600
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 57600 -m magic -r 5000 -x
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 57600 -m magic -r 5000 -x
fi
if param compare SYS_COMPANION 319200
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 19200 -r 1000
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 19200 -r 1000
fi
if param compare SYS_COMPANION 338400
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 38400 -r 1000
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 38400 -r 1000
fi
if param compare SYS_COMPANION 357600
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 57600 -r 1000
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 57600 -r 1000
fi
if param compare SYS_COMPANION 3115200
then
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 115200 -r 1000
fi
if param compare SYS_COMPANION 419200
then
iridiumsbd start -d /dev/ttyS2
mavlink start -d /dev/iridium -b 19200 -m iridium -r 10
fi
if param compare SYS_COMPANION 1921600
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 921600 -r 20000
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 921600 -r 20000
fi
if param compare SYS_COMPANION 1500000
then
mavlink start -d $MAVLINK_COMPANION_DEVICE -b 1500000 -m onboard -r 100000 -x
mavlink start -d ${MAVLINK_COMPANION_DEVICE} -b 1500000 -m onboard -r 10000 -x
fi
fi
@ -617,10 +741,12 @@ then
#
if param greater UAVCAN_ENABLE 0
then
if uavcan start fw
if uavcan start
then
set LOGGER_BUF 7
uavcan start fw
else
tone_alarm $TUNE_ERR
tone_alarm ${TUNE_ERR}
fi
fi
@ -639,30 +765,46 @@ then
fi
fi
# Lidar-Lite on I2C
if param compare SENS_EN_LL40LS 2
then
if ll40ls start i2c
then
fi
fi
# lightware serial lidar sensor
if param compare SENS_EN_SF0X 0
then
else
sf0x start
if sf0x start
then
fi
fi
# lightware i2c lidar sensor
if param compare SENS_EN_SF1XX 0
then
else
sf1xx start
if sf1xx start
then
fi
fi
# mb12xx sonar sensor
if param compare SENS_EN_MB12XX 1
then
mb12xx start
if mb12xx start
then
fi
fi
# teraranger one tof sensor
if param compare SENS_EN_TRONE 1
then
trone start
if trone start
then
fi
fi
if ver hwcmp PX4FMU_V4
@ -692,8 +834,12 @@ then
px4flow start &
fi
# Start MAVLink
mavlink start -r 800000 -d /dev/ttyACM0 -m config -x
if ver hwcmp AEROFC_V1
then
else
# Start MAVLink
mavlink start -r 800000 -d /dev/ttyACM0 -m config -x
fi
#
# Logging
@ -719,6 +865,14 @@ then
fi
else
set LOGGER_ARGS ""
#
# Adjust FMUv5 logging settings
#
if ver hwcmp PX4FMU_V5
then
set LOGGER_BUF 64
param set SDLOG_MODE 3
fi
if param compare SDLOG_MODE 1
then
set LOGGER_ARGS "-e"
@ -727,10 +881,18 @@ then
then
set LOGGER_ARGS "-f"
fi
if logger start -b 12 -t $LOGGER_ARGS
if param compare SDLOG_MODE 3
then
set LOGGER_ARGS "-f"
fi
if ver hwcmp AEROFC_V1
then
set LOGGER_ARGS "-m mavlink"
fi
if logger start -b ${LOGGER_BUF} -t ${LOGGER_ARGS}
then
fi
unset LOGGER_BUF
unset LOGGER_ARGS
fi
fi
@ -760,7 +922,7 @@ then
set MAV_TYPE 1
fi
param set MAV_TYPE $MAV_TYPE
param set MAV_TYPE ${MAV_TYPE}
# Load mixer and configure outputs
sh /etc/init.d/rc.interface
@ -786,7 +948,7 @@ then
then
set MAV_TYPE 2
fi
if [ $MIXER == quad_w -o $MIXER == sk450_deadcat ]
if [ $MIXER == quad_w -o $MIXER == quad_dc ]
then
set MAV_TYPE 2
fi
@ -826,7 +988,7 @@ then
echo "Unknown MAV_TYPE"
param set MAV_TYPE 2
else
param set MAV_TYPE $MAV_TYPE
param set MAV_TYPE ${MAV_TYPE}
fi
# Load mixer and configure outputs
@ -869,7 +1031,7 @@ then
echo "Unknown MAV_TYPE"
param set MAV_TYPE 19
else
param set MAV_TYPE $MAV_TYPE
param set MAV_TYPE ${MAV_TYPE}
fi
# Load mixer and configure outputs
@ -880,20 +1042,29 @@ then
fi
#
# Rover setup
# UGV setup
#
if [ $VEHICLE_TYPE == rover ]
if [ $VEHICLE_TYPE == ugv ]
then
# 10 is MAV_TYPE_GROUND_ROVER
set MAV_TYPE 10
if [ $MIXER == none ]
then
# Set default mixer for UGV if not defined
set MIXER stampede
fi
if [ $MAV_TYPE == none ]
then
# Use MAV_TYPE = 10 (UGV) if not defined
set MAV_TYPE 10
fi
param set MAV_TYPE ${MAV_TYPE}
# Load mixer and configure outputs
sh /etc/init.d/rc.interface
# Start standard rover apps
sh /etc/init.d/rc.axialracing_ax10_apps
param set MAV_TYPE 10
# Start standard UGV apps
sh /etc/init.d/rc.gnd_apps
fi
#
@ -957,7 +1128,7 @@ then
set FEXTRAS /fs/microsd/etc/extras.txt
if [ -f $FEXTRAS ]
then
echo "Addons script: $FEXTRAS"
echo "Addons script: ${FEXTRAS}"
sh $FEXTRAS
fi
unset FEXTRAS
@ -967,15 +1138,57 @@ then
# CF2 shouldn't have an sd card
else
# Run no SD alarm
if [ $LOG_FILE == /dev/null ]
if ver hwcmp AEROCORE2
then
# Play SOS
tone_alarm error
# AEROCORE2 shouldn't have an sd card
else
# Run no SD alarm
if [ $LOG_FILE == /dev/null ]
then
# Play SOS
tone_alarm error
fi
fi
fi
#
# Check if we should start a thermal calibration
# TODO move further up and don't start unnecessary services if we are calibrating
#
set TEMP_CALIB_ARGS ""
if param compare SYS_CAL_GYRO 1
then
set TEMP_CALIB_ARGS "${TEMP_CALIB_ARGS} -g"
param set SYS_CAL_GYRO 0
fi
if param compare SYS_CAL_ACCEL 1
then
set TEMP_CALIB_ARGS "${TEMP_CALIB_ARGS} -a"
param set SYS_CAL_ACCEL 0
fi
if param compare SYS_CAL_BARO 1
then
set TEMP_CALIB_ARGS "${TEMP_CALIB_ARGS} -b"
param set SYS_CAL_BARO 0
fi
if [ "x$TEMP_CALIB_ARGS" != "x" ]
then
send_event temperature_calibration ${TEMP_CALIB_ARGS}
fi
unset TEMP_CALIB_ARGS
# vmount to control mounts such as gimbals, disabled by default.
if param compare MNT_MODE_IN -1
then
else
if vmount start
then
fi
fi
# End of autostart
fi

View File

@ -1,3 +1,13 @@
#
# @board px4fmu-v1 exclude
# @board px4fmu-v2 exclude
# @board px4fmu-v3 exclude
# @board px4fmu-v4 exclude
# @board px4fmu-v4pro exclude
# @board px4fmu-v5 exclude
# @board aerofc-v1 exclude
#
Multirotor mixer for Parrot Bebop
=================================

View File

@ -0,0 +1,16 @@
Helicopter Cyclic-Collective-Pitch Mixing (CCPM) for PX4FMU
Blade 130x helicopter has longer servo arms left and right. The front servo arm is shortest and has normalized length 10000.
==================================================
H: 3
T: 0 3000 6000 8000 10000
P: 500 1500 2500 3500 4500
# Swash plate servos:
S: 0 10000 10000 0 -8000 8000
S: 140 13054 10000 0 -8000 8000
S: 220 13054 10000 0 -8000 8000
# Tail servo:
M: 1
O: 10000 10000 0 -10000 10000
S: 0 2 10000 10000 0 -10000 10000

View File

@ -24,12 +24,12 @@ The scaling factor for roll inputs is adjusted to implement differential travel
for the elevons.
M: 2
O: 10000 10000 3000 -10000 10000
O: 10000 10000 0 -10000 10000
S: 0 0 8000 8000 0 -10000 10000
S: 0 1 9000 9000 0 -10000 10000
M: 2
O: 10000 10000 -3000 -10000 10000
O: 10000 10000 0 -10000 10000
S: 0 0 8000 8000 0 -10000 10000
S: 0 1 -9000 -9000 0 -10000 10000

View File

@ -1,4 +1,4 @@
# mixer for the CruiseAder Claire tilt mechansim servo, aileron and elevator
# mixer for the CruiseAder Claire tilt mechansim servo and elevons
=======================================================================
@ -15,24 +15,17 @@ S: 1 4 10000 10000 0 -10000 10000
Aileron mixers
Elevon mixers
-------------
M: 1
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -7500 -7500 0 -10000 10000
S: 1 1 7500 7500 0 -10000 10000
S: 1 0 10000 10000 0 -10000 10000
Elevator mixers
-------------
M: 1
O: 10000 10000 0 -10000 10000
S: 1 1 -10000 -10000 0 -10000 10000
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -7500 -7500 0 -10000 10000
S: 1 1 -7500 -7500 0 -10000 10000

View File

@ -1,5 +1,5 @@
Coaxial helicopter mixer
- Two servomotors act on the swashplate (90° angle on the swashplate, decoupled effect on roll and pitch).
- Two servomotors act on the swashplate (90 degree angle on the swashplate, decoupled effect on roll and pitch).
- No collective pitch.
- One motor per rotor.
===========================

View File

@ -1,54 +0,0 @@
Helicopter 120 degree Cyclic-Collective-Pitch Mixing (CCPM) for PX4FMU
Blade 130x helicopter has longer servo arms left and right. The front servo arm is shorter.
Therefore it is not required to use the 0.866 factor.
==================================================
Output 0 - Left Servo Mixer
-----------------
Left Servo = Collective (Thurst - 3) - 0.5 * Elevator (Pitch - 1) + Aileron (Roll - 0)
M: 3
O: 10000 10000 0 -10000 10000
S: 3 5 10000 10000 0 -10000 10000
S: 0 1 -10000 -10000 0 -10000 10000
S: 0 0 10000 10000 0 -10000 10000
Output 1 - Front Servo Mixer
----------------
Rear Servo = Collective (Thrust - 3) + Elevator (Pitch - 1)
M: 2
O: 10000 10000 0 -10000 10000
S: 3 5 10000 10000 0 -10000 10000
S: 0 1 10000 10000 0 -10000 10000
Output 2 - Right Servo Mixer
----------------
Right Servo = Collective (Thurst - 3) - 0.5 * Elevator (Pitch - 1) - Aileron (Roll - 0)
M: 3
O: 10000 10000 0 -10000 10000
S: 3 5 10000 10000 0 -10000 10000
S: 0 1 -10000 -10000 0 -10000 10000
S: 0 0 -10000 -10000 0 -10000 10000
Output 3 - Tail Servo Mixer
----------------
Tail Servo = Yaw (control index = 2)
M: 1
O: 10000 10000 0 -10000 10000
S: 0 2 10000 10000 0 -10000 10000
Output 4 - Motor speed mixer
-----------------
This would be the motor speed control output from governor power demand- not sure what index to use here?
M: 1
O: 10000 10000 0 -10000 10000
S: 0 3 0 20000 -10000 -10000 10000

View File

@ -4,24 +4,20 @@
# pitch
M: 1
O: 10000 10000 0 -10000 10000
S: 2 0 10000 10000 0 -10000 10000
S: 2 1 10000 10000 0 -10000 10000
# roll
M: 1
O: 10000 10000 0 -10000 10000
S: 2 1 10000 10000 0 -10000 10000
S: 2 0 10000 10000 0 -10000 10000
# yaw
M: 1
O: 10000 10000 0 -10000 10000
S: 2 2 10000 10000 0 -10000 10000
# mode
# Shutter/retract
M: 1
O: 10000 10000 0 -10000 10000
S: 2 3 10000 10000 0 -10000 10000
# retracts
M: 1
O: 10000 10000 0 -10000 10000
S: 2 4 10000 10000 0 -10000 10000

View File

@ -0,0 +1 @@
R: 4x 10000 10000 10000 1300

View File

@ -0,0 +1,6 @@
Multirotor mixer
===========================
This file defines a single mixer for a quadrotor in DC wide arms configuration. All controls are mixed 100%.
R: 4dc 10000 10000 10000 0

View File

@ -0,0 +1,7 @@
R: 4s 10000 10000 10000 0
M: 1
O: 10000 10000 0 -10000 10000
S: 3 5 10000 10000 0 -10000 10000
M: 1
O: 10000 10000 0 -10000 10000
S: 3 6 10000 10000 0 -10000 10000

View File

@ -0,0 +1 @@
R: 4x 10000 10000 10000 0

Some files were not shown because too many files have changed in this diff Show More