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

   https://bitbucket.org/nuttx/nuttx/commits/9169ff6a15fe65ba4af134b470dbf89220274c19

   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 c5e841256a
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 https://bitbucket.org/nuttx/nuttx/commits/df9ae3c13fc2fff2c21ebdb098c520b11f43280d
       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 21e04c9f7a.
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:

https://github.com/PX4/Firmware/commit/f746141afe3499ae56e75b3db06409381ead2f4b

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 d75024b987.
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 0acf6db64f

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 9ee478e1f7
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 e3537ca6c2.

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 e4e5a77f71.
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 6a6e9d02a3.
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 fff4934743.
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
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'
+15 -9
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
+1 -1
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
+68 -90
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:
+182 -148
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
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)
+14 -4
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
+2 -1
View File
@@ -25,7 +25,8 @@
[
".settings",
"nuttx/arch/arm/src/board",
"nuttx/arch/arm/src/chip"
"nuttx/arch/arm/src/chip",
"build_*"
]
}
],
+12
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
}
+5 -5
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
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
}
+12
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
}
+12
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
}
+12
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
}
+5 -5
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,
+12
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
}
+12
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
}
-12
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
}
+12
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
}
+12
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
}
+12
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
}
+234 -128
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
+1 -1
Submodule NuttX updated: af5d2b058c...44ad7e224c
+75 -42
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).
@@ -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>
#
+11 -1
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
@@ -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>
#
+13 -1
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
@@ -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>
#
@@ -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
@@ -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>
#
+15 -7
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
@@ -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>
#
@@ -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
@@ -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
+1 -1
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
@@ -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
+1
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
@@ -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
+114
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
@@ -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>
#
@@ -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>
#
@@ -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
+9 -2
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
@@ -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
@@ -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>
#
-3
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
-3
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
@@ -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
@@ -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
+8
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>
#
+12 -2
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
@@ -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
+7
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>
#
+2 -12
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
-4
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>
#
-4
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>
#
@@ -25,4 +25,5 @@ then
param set MC_YAWRATE_D 0.0
fi
set MIXER quad_x_can
set OUTPUT_MODE uavcan_esc
+8
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
#
+8 -2
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
+8 -1
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
+4 -6
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
+2 -13
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
+64
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
@@ -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>
#
+39 -4
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
+55
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
+41
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
@@ -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
#
@@ -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
@@ -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
+12
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>
#
+7
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
+7
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
+9
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
+9
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
@@ -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.
+8 -4
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
#
+2 -5
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
+24
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
@@ -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
+50 -39
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
+1 -1
View File
@@ -16,6 +16,6 @@ then
set PX4IO_LIMIT 200
fi
if px4io limit $PX4IO_LIMIT
if px4io limit ${PX4IO_LIMIT}
then
fi
+12 -4
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
-15
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
+125 -16
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
+12 -4
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
+1 -10
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
+281 -68
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
+10
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
=================================
@@ -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
+2 -2
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
+9 -16
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
+1 -1
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.
===========================
@@ -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
+3 -7
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
@@ -0,0 +1 @@
R: 4x 10000 10000 10000 1300
@@ -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
@@ -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
@@ -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