Compare commits

..

1403 Commits

Author SHA1 Message Date
Mark Whitehorn
545152f676 remove "transitional support" (#5378) 2016-08-24 23:05:39 +02:00
Beat Küng
96384bdc29 df wrappers: add drv_hrt.h include 2016-08-24 21:30:50 +02:00
Beat Küng
eede43a786 px4_log.h: move px4_log_initialize() out of #ifdef 2016-08-24 21:24:35 +02:00
Beat Küng
b8e247a018 muorb: add drv_hrt.h include for hrt_absolute_time 2016-08-24 21:24:35 +02:00
Beat Küng
441a05d976 uorb unittests stubs: add orb_advertise_queue 2016-08-24 21:24:35 +02:00
Beat Küng
528ca931af logger: only add data message to the log if orb_copy succeeds, when adding a new instance 2016-08-24 21:24:35 +02:00
Beat Küng
df53fb0fde logging: publish a message for PX4_{WARN,ERR} & store them to the ulog file
- ulog file message rate limited to 50Hz
- queuing with size 2
- this replaces the mavlink log message in the ulog
  (but the mavlink warnings & errors still go to the ulog)
2016-08-24 21:24:35 +02:00
Beat Küng
eae1585e38 logger: store full file name in logger, remove it from log writer
- also add log file to the status output
2016-08-24 21:24:35 +02:00
Beat Küng
aefd217fc0 uorb subscription: remove _interval & use orb_get_interval() instead 2016-08-24 21:24:35 +02:00
Beat Küng
6b4c24fb12 px4_log: remove __px4_log_level_current
- there is no way to change it at runtime
- it was implemented wrong (<= comparison disabled the PANIC log level)
2016-08-24 21:24:35 +02:00
Beat Küng
e2afb0be6b px4_log.h: remove hrt_absolute_time() declaration (it does not belong here) 2016-08-24 21:24:35 +02:00
Beat Küng
d404359888 local_position_estimator_main: warnx -> PX4_{WARN,INFO,DEBUG} 2016-08-24 21:24:35 +02:00
Julian Oes
14ed65f0e4 sitl_run.sh: use ps instead of jps (#5376)
The tool jps does not seem to be available on macos Java.
2016-08-24 17:07:14 +02:00
Beat Küng
0127f4017a NuttX: update submodule 2016-08-23 20:17:16 +02:00
Lorenz Meier
fadac79617 Add 9250 startup for FMUv2 2016-08-23 19:51:57 +02:00
Beat Küng
1fffd731b1 print_load_posix under DARWIN: remove unused variable basic_info (#5364) 2016-08-23 09:09:55 +02:00
Lorenz Meier
79678c5f25 MPU6K fix code style 2016-08-19 22:24:41 +02:00
Bart Slinger
7f04e3c759 Helicopter aiframe and basic PID control (#5339)
* Helicopter aiframe and basic PID control

* codestyle

* Blade 130x gains working but not optimal

* Changed behaviour of feedforward for all multicopter
2016-08-19 22:20:59 +02:00
Mark Whitehorn
75c95955fc Update 4050_generic_250 (#5343) 2016-08-19 22:20:27 +02:00
Mark Whitehorn
1b5964dc42 Update 4009_qav250 (#5344) 2016-08-19 22:19:47 +02:00
Lorenz Meier
7579ebf4e8 Fix failing mac test 2016-08-19 22:19:05 +02:00
Julian Oes
62297c3d86 DriverFramework: updated submodule (#5351)
- Fix if _retries variable is not set to prevent "UINT_MAX-1"
  retries.
- Update for the cmake_hexagon submodule.
2016-08-19 22:17:13 +02:00
Gus Grubba
821d7062df Support for new log file extension. (#5355) 2016-08-19 22:16:46 +02:00
Lorenz Meier
306a911dc9 Fix MPU6K driver ICM extensions 2016-08-19 22:09:05 +02:00
Beat Küng
c3c8fa55b3 RC st24: change channel input range from [0,4096] to [500,3500] (#5350)
QGC failed to calibrate RC with the old range.
2016-08-19 20:45:56 +02:00
Lorenz Meier
fe62c259e8 Fix MPU6K initialization 2016-08-19 11:10:11 +02:00
James Goppert
90b509a73f Update driver framework. (#5347) 2016-08-18 19:32:57 -04:00
James Goppert
372d16ee5e Update matrix. (#5346) 2016-08-18 18:01:55 -04:00
James Goppert
569e87d46b Update sitl gazebo. (#5345) 2016-08-18 17:22:13 -04:00
Lorenz Meier
192cde408a Remove unnecessary C++11 usage in UAVCAN 2016-08-18 21:44:15 +02:00
James Goppert
818840b576 Path cleanup, low impact changes (#5340)
* Low impact changes from path_cleanup branch.

This is a step towards minimizing the diff with path_cleanup branch.

* Update ecl.

* Revert matrix update.

* Revert ecl and matrix.

* Update sitl gazebo.

* Revert sitl_gazebo and matrix changes.
2016-08-18 15:37:23 -04:00
Lorenz Meier
d32a7ffb8d Probe for ICM20608 2016-08-18 21:02:48 +02:00
Pavel Kirienko
24e90e3c90 UAVCAN servers: fixed member initialization; removed dead stuff 2016-08-18 17:14:53 +02:00
Pavel Kirienko
d12be196a2 Fixed #5153 2016-08-18 17:14:53 +02:00
Pavel Kirienko
2784c3c5f0 Improved uavcan activity indication 2016-08-18 17:14:53 +02:00
Pavel Kirienko
64d7946cdc Fixed beep duration 2016-08-18 17:14:53 +02:00
Pavel Kirienko
36efc8c83e Fixed beeping 2016-08-18 17:14:53 +02:00
Pavel Kirienko
61ffc6c432 Fixed implementation of the ESC auto-enumeration feature 2016-08-18 17:14:53 +02:00
Pavel Kirienko
2fad9a6397 ESC status: printing temperature in Celsius 2016-08-18 17:14:53 +02:00
Pavel Kirienko
42031ab572 Better beeping during ESC enumeration 2016-08-18 17:14:53 +02:00
Pavel Kirienko
e27d3f4e13 Added new configuration parameter UAVCAN_ESC_IDLT.
This parameter, when enabled, enforces that the UAVCAN ESC driver never outputs zero throttle
while the system is armed. This feature is disabled by default, so the change will not break
the experience of current users.
2016-08-18 17:14:53 +02:00
Hidenori
2ba70c5d89 rename Tools/rpi/clang-check.sh to Tools/clang-tool.sh
extended in two ways: target specification and tool selection.
2016-08-18 16:11:05 +02:00
Hidenori
211c2b9ca6 Rename clang toolchain file 2016-08-18 16:11:05 +02:00
Hidenori
9181f97f71 RPi: move clang-check.sh to Tools/rpi 2016-08-18 16:11:05 +02:00
Hidenori
a1f89e4fd9 RPi: add a comment to clang-check.sh 2016-08-18 16:11:05 +02:00
Hidenori
a8d3b15d73 RPi: add clang & clang-check support 2016-08-18 16:11:05 +02:00
Lorenz Meier
ae00abe468 Fix typo 2016-08-18 15:44:51 +02:00
Tiktiki
dfed00d870 Update multi_tables.py
Corrected HEX_T position and rotation for motors 1-2-5-6
2016-08-18 15:27:32 +02:00
Tiktiki
03e5d7490f Update 13011_greenkoptr 2016-08-18 15:26:26 +02:00
Tiktiki
7d4e7aff20 Create greenkoptr.main
Update and rename greenkoptr.main to greenkoptr.main.mix

Create greenkoptr.aux.mix

Update greenkoptr.main.mix
2016-08-18 15:26:25 +02:00
Tiktiki
a962098645 Create gk
Rename gk to 13011_greenkoptr

Update 13011_greenkoptr
2016-08-18 15:26:21 +02:00
Tiktiki
021da9b2e1 Update mixer_multirotor.cpp 2016-08-18 15:25:24 +02:00
Tiktiki
3daf4a3a67 Update multi_tables.py 2016-08-18 15:25:24 +02:00
Andreas Bircher
9fe95275bb removing unnecessary parts 2016-08-18 15:12:39 +02:00
Andreas Bircher
70cd06bc84 initial version camera turn on / off 2016-08-18 15:12:39 +02:00
Lorenz Meier
a97c5ec4e1 MPU6K compile and code style fixes 2016-08-18 13:50:29 +02:00
Lorenz Meier
3d1f1522d9 MPU6K driver improvements 2016-08-18 12:55:54 +02:00
sander
1efe011522 code style 2016-08-17 23:58:04 +02:00
sander
5bb36162be Start time based transition blending half-way 2016-08-17 23:58:04 +02:00
sander
e6834579e5 Use altitude acc rad 2016-08-17 23:58:04 +02:00
sander
7afa21ebb7 Revert altitude acceptance radius to combat overshoot 2016-08-17 23:58:04 +02:00
Mark Whitehorn
f1a1c9d7da add breakpoint and slope params for TPA 2016-08-17 23:15:36 +02:00
Mark Whitehorn
5c78af0f36 simple linear throttle PID attenuation test 2016-08-17 23:15:29 +02:00
JochiPochi
31e634b082 mpu6000 driver: set icm registers only on icm devices 2016-08-17 20:50:44 +02:00
JochiPochi
e3557e0d3e mpu6000 driver: Add DLPF set function for IMC20608 2016-08-17 20:50:44 +02:00
JochiPochi
ce27cc8326 mpu6000: Separate DLPF params for MPU and ICM family of sensors 2016-08-17 20:50:44 +02:00
Lorenz Meier
9f9c51eab3 Fix MPU6500 devtype define 2016-08-16 23:32:44 +02:00
James Goppert
7472c9033b Formatting fix. 2016-08-16 01:39:47 -04:00
Lorenz Meier
73362f325b Update mapping 2016-08-15 23:31:58 +02:00
Lorenz Meier
39ce001c41 MAVLink: use only the memory it needs 2016-08-15 19:53:21 +02:00
Lorenz Meier
d810726c6e EKF2: Only use the memory it needs 2016-08-15 19:53:21 +02:00
Lorenz Meier
a7ad722b98 Use less memory for ESC driver 2016-08-15 19:53:21 +02:00
Lorenz Meier
7cc0b32e74 Make altitude more efficient and estimator status safe in terms of memory overflow 2016-08-15 19:53:21 +02:00
Lorenz Meier
5786b73772 Tweak startup order for memory 2016-08-15 19:53:21 +02:00
Lorenz Meier
a130b6a65c style cleanup 2016-08-15 19:53:21 +02:00
Lorenz Meier
1a9688c42f Commander: signal high memory usage 2016-08-15 14:58:33 +02:00
Lorenz Meier
8934aaa912 Load mon: populate memory usage i field for NuttX 2016-08-15 14:53:48 +02:00
Lorenz Meier
eceb7e21b2 Include memory in CPU load message 2016-08-15 14:53:26 +02:00
Lorenz Meier
8b66a76432 Fix FMU init 2016-08-15 10:49:43 +02:00
Lorenz Meier
4b9e1d58f7 Fix ESC driver to also include direction information 2016-08-15 10:49:43 +02:00
Lorenz Meier
0c9ead44f1 Update ASCv1 template 2016-08-15 10:49:43 +02:00
Lorenz Meier
e6dcc0a2ed Complete ASC config 2016-08-15 10:49:43 +02:00
Lorenz Meier
90b5fcc1ec Strip tone alarm 2016-08-15 10:49:43 +02:00
Lorenz Meier
7ef8d197c6 Patch up ASC config 2016-08-15 10:49:43 +02:00
James Goppert
b36d705688 Update matrix. (#5310) 2016-08-12 14:24:35 -04:00
James Goppert
bedf081d92 Sitl gazebo update. (#5309) 2016-08-12 13:49:48 -04:00
Lorenz Meier
5d0f57d61e Update Makefile to build for QGC 2016-08-12 13:55:16 +02:00
Lorenz Meier
0551275b9c Update prototype and board ID 2016-08-12 13:55:16 +02:00
Lorenz Meier
ed6c63e48f TAPv1: Harmonize with FMUv1 (since they are pretty much the same) 2016-08-12 13:55:16 +02:00
Lorenz Meier
f231feb0f6 FMUv1: Harmonize with FMUv2 2016-08-12 13:55:16 +02:00
Lorenz Meier
39303aa87a Set default battery config 2016-08-12 13:55:16 +02:00
David Sidrane
ac1003875a USB Fix:iForce Soft Disconnect
The STM32F404 OTG FS has an internal soft pull-up.

The HW also has one too. So we need to overcome it to force a soft disconnect.
2016-08-12 13:55:16 +02:00
David Sidrane
6f973f1d6c Better Portability with clear naming 2016-08-12 13:55:16 +02:00
David Sidrane
b9d93f2cad OTG_FS_ID that is on PA10 is managed by stm32 otg fs device Driver
N.B The driver set FDMOD, Force device mode and Writing a 1 to this bit
forces the core to device mode irrespective of the OTG_FS_ID input
pin.
2016-08-12 13:55:16 +02:00
David Sidrane
6173649c43 Minor corrections 2016-08-12 13:55:16 +02:00
Lorenz Meier
8bd4a624a7 Added voltage scaling. Need to move this to board_config.h instead 2016-08-12 13:55:16 +02:00
Lorenz Meier
d21023c966 FMU: Power on radio if prsent 2016-08-12 13:55:16 +02:00
Lorenz Meier
2fad39aaae tap: Init both USB pins 2016-08-12 13:55:16 +02:00
Lorenz Meier
3fff9e5826 Harmonize TAP config with FMUv4 config 2016-08-12 13:55:16 +02:00
Lorenz Meier
3203d3f770 More USB buffer 2016-08-12 13:55:16 +02:00
Lorenz Meier
7e878e221c FMUv4: Code style 2016-08-12 13:55:16 +02:00
Lorenz Meier
5678b4cc83 Enable RC lib 2016-08-12 13:55:16 +02:00
Lorenz Meier
957b01a8eb Enable serial for RC input 2016-08-12 13:55:16 +02:00
Lorenz Meier
63275ef92f Sensors: Perform init on best effort basis 2016-08-12 13:55:16 +02:00
Lorenz Meier
c3022bf713 FMU: Accomodate serial only RC input 2016-08-12 13:55:16 +02:00
Lorenz Meier
1c0a494b4d Code style 2016-08-12 13:55:16 +02:00
Lorenz Meier
64e47f2fae Boot improvements for TAP 2016-08-12 13:55:16 +02:00
Lorenz Meier
a52d0ca00a Remove hysteresis tests on Mac OS 2016-08-12 13:53:02 +02:00
Andreas Antener
2e44fe9edd update previous waypoint before transition command 2016-08-12 11:50:38 +02:00
Lorenz Meier
5175d45e74 Update Gazebo 2016-08-11 22:07:19 +02:00
Andreas Antener
5eaf104318 fixed optimal recovery condition 2016-08-10 22:47:26 +02:00
Andreas Antener
853a5b77fd disabled attitude setpoint change in MC controller when optimal recovery is active 2016-08-10 22:47:26 +02:00
Andreas Antener
9087ef5990 only recalculate rotation matrix and quaternion when not in velocity control 2016-08-10 22:47:26 +02:00
Andreas Antener
ae533b01b6 removed unused code 2016-08-10 22:47:26 +02:00
David Sidrane
deeefe5dd1 Describe the issues that requires the +=2 on arg[c|v] for NuttX (#5293)
This may be moot and should be revisited if only px4_getops is used, but this pr politely documents the reson for the logic.
2016-08-10 06:19:59 -10:00
Lorenz Meier
17561daefb TAP power: Shut down faster 2016-08-10 12:33:04 +02:00
Andreas Daniel Antener
9f4a91ab19 initialize waypoint transfer sequence with -1 (#5274) 2016-08-10 08:39:54 +02:00
huanglilong
6f7b78821a fix fake gps bugs (#5285) 2016-08-09 21:24:11 +02:00
Lorenz Meier
c62b886da5 Ua venture hottupdate (#5289)
* Change default port to Serial4 and improve status outputs.

* Reduce stack size.
2016-08-09 21:19:41 +02:00
Lorenz Meier
b8c377b91a Temporarily disable new logger 2016-08-09 16:00:42 +02:00
Lorenz Meier
a664747d0a Remove unused sensors 2016-08-09 16:00:28 +02:00
Lorenz Meier
43f772154c TAP: adjust ESC buffer size 2016-08-09 16:00:00 +02:00
Lorenz Meier
aae3a37983 GPS: Do not use nonblocking access 2016-08-09 15:59:34 +02:00
Daniel Agar
12a5ce7a0a temporarily disable uorb test on OSX (#5280) 2016-08-08 20:59:24 -04:00
Lorenz Meier
630cebeabc Relax uORB test for Darwin CI system 2016-08-07 14:05:03 +02:00
Lorenz Meier
e24d18f810 Hysteresis test: Relax time for all tests for OS X CI system 2016-08-07 14:05:03 +02:00
Lorenz Meier
207a04bba0 Fix uORB tests for Mac OS 2016-08-07 14:05:03 +02:00
Lorenz Meier
ead8e31de4 Hysteresis test: Fix for Mac OS CI 2016-08-07 14:05:03 +02:00
Lorenz Meier
7b5917567a Fix Mixer test for OS X 2016-08-07 14:05:03 +02:00
Daniel Agar
8b9bef3872 osx fix and enable tests 2016-08-07 14:05:03 +02:00
Roman Bapst
ba047f234d ekf2 replay: added magic values for range min/max distance (#5268)
- replay was not working without these values as only range measurements
were given to the filter which were between the min/max value

Signed-off-by: Roman <bapstroman@gmail.com>
2016-08-07 11:30:54 +02:00
Lorenz Meier
393acf2231 Start ESC drivers 2016-08-07 11:15:48 +02:00
Lorenz Meier
0e9c352927 Simplify TAP config 2016-08-07 11:15:48 +02:00
David Sidrane
c5e11cd16f TAP:Added i2c speed setting to init 2016-08-07 11:15:48 +02:00
David Sidrane
e8ae0fe13c Made the MPU6000 driver a highbread using both hrt for SPI or workqueue for I2C 2016-08-07 11:15:48 +02:00
David Sidrane
5f342c3b5f Added I2C to MPU6000 driver 2016-08-07 11:15:48 +02:00
Lorenz Meier
a0cad961b3 Remove non-used app from config 2016-08-07 11:12:20 +02:00
Lorenz Meier
58135d892b Sync estimator CMake configs for all boards 2016-08-07 10:40:17 +02:00
Lorenz Meier
990304ee22 Fix check code style to work on Mac OS 2016-08-07 10:40:17 +02:00
Lorenz Meier
a73d5037f2 Fix FMUv4 build 2016-08-07 10:40:17 +02:00
Lorenz Meier
cf776aeb0a Fix compilation of examples 2016-08-07 10:40:17 +02:00
Lorenz Meier
148b6e6135 Update CMake config paths 2016-08-07 10:40:17 +02:00
Lorenz Meier
cba4bcd2fb Multiplatform controllers: Move to examples and fix code style 2016-08-07 10:40:17 +02:00
Lorenz Meier
ee5cdab963 Move old estimators to examples 2016-08-07 10:40:17 +02:00
Daniel Agar
cff9e90bec position_estimator_inav fix and enforce code style 2016-08-07 10:40:17 +02:00
Daniel Agar
4049ec2e96 mc_pos_control fix and enforce code style 2016-08-07 10:40:17 +02:00
Daniel Agar
d4196f7f0c mc_att_control fix and enforce code style 2016-08-07 10:40:17 +02:00
Daniel Agar
8f01324890 ekf2 fix and enforce code style 2016-08-07 10:40:17 +02:00
Daniel Agar
968a3d499b add make format (check_code_style_all.sh --fix) 2016-08-07 10:40:17 +02:00
Daniel Agar
a260a6eead check code style list unformatted modules 2016-08-07 10:40:17 +02:00
Lorenz Meier
61d5d8ce2a Makefile: Remove remaining EKF2 config bits 2016-08-07 10:39:51 +02:00
Lorenz Meier
3cc64b3b7b LPE: Remove unused var 2016-08-07 10:39:31 +02:00
Lorenz Meier
fb4c620f94 Replace EKF1 with EKF2 in rover config 2016-08-06 23:34:35 +02:00
Julian Oes
68986604e9 df_mpu9250_wrapper: calibration after rotation
Same as for the df_hmc5883_wrapper.
2016-08-06 21:01:37 +02:00
Julian Oes
1dd2c94949 df_hmc5883_wrapper: use calibration after rotation
The calibration values need to be applied after the rotation, otherwise
the offsets and scale can be applied to the wrong axes.
2016-08-06 21:01:37 +02:00
Daniel Agar
2a15578f8d FW implement MAV_CMD_DO_GO_AROUND 2016-08-06 20:56:53 +02:00
Hidenori
aa3ffa28c8 add copyright header 2016-08-06 20:47:55 +02:00
Hidenori
5920711c20 fix style 2016-08-06 20:47:55 +02:00
Hidenori
eded7bf772 Navio: add rgbled test and tweak implementation 2016-08-06 20:47:55 +02:00
Hidenori
9a5f88d6bf Navio: fix GPIO register definition 2016-08-06 20:47:55 +02:00
Hidenori
ff647e7bc8 Navio: GPIO driver command fix and update ifdefs 2016-08-06 20:47:55 +02:00
Hidenori
3049b9af01 Navio2: add support for GPIO and RGBLED 2016-08-06 20:47:55 +02:00
Lorenz Meier
40ba3f5131 Initial config for ASC module 2016-08-06 20:45:11 +02:00
Beat Küng
c0e3ab632e orb: proper locking for DeviceNode::{add,remove}_internal_subscriber 2016-08-06 20:44:23 +02:00
Beat Küng
b86cf2b017 orb status: print information about lost messages 2016-08-06 20:44:23 +02:00
Beat Küng
7280f71cef orb: rm static from DeviceMaster::_node_map & use the non-static getDeviceNode in uORB::Manager
Reasons:
- DeviceMaster::_node_map does not need to be shared among instances,
  because there is at most 1 instance per Flavor and different Flavors
  have non-intersecting device paths.
- Keeping it static would also require a static lock
- DeviceMaster::_node_map was not locked at all when used from
  uORB::Manager

So this fixes two synchronization issues:
- Different DeviceMaster objects could access the same static data in
  parallel
- getDeviceNode() called from uORB::Manager did not use any locking at all
2016-08-06 20:44:23 +02:00
Beat Küng
45a0a7c5ab refactor orb: uORB::Manager is responsible for the DeviceMaster objects
This has the following benefits:
- Manager can ensure that there is at most one instance of DeviceMaster
  per Flavor
- The Manager needs access to (static) data of DeviceMaster already.
  This will make it easier to access this data in a non-static way, and
  does not introduce new dependencies.
2016-08-06 20:44:23 +02:00
Andreas Antener
2dd29ec4a1 VTOL: publish stabilized FW attitude to correct topic 2016-08-06 20:43:49 +02:00
Lorenz Meier
c97a18b6a4 Fix README name 2016-08-06 20:42:44 +02:00
h3ct0r
3deefb1a79 Fixed some edge cases on the geo_tag_images.py script. Added explanation to the --kml function. Added more examples for the execution of the script. 2016-08-06 20:42:24 +02:00
Beat Küng
124e1c26d9 gps injection: use the orb queuing API instead of multiple instances
It uses a queue length of 6. There are 3 RTCM msgs/s, but due to
fragmentation and WiFi lags, there can be more than that. During several
tests, a length of 6 showed no queue overflows.
2016-08-06 20:41:38 +02:00
sander
9398a4819f Only check mission when needed 2016-08-06 20:40:41 +02:00
Julian Oes
3e87ec5153 navigator: mission check refactor
The mission feasability checker was called with the same arguments
twice which made it hard to understand when a mission is marked valid.

The mission check should run in these two cases:
- When initializing (if home comes up) if there is already a mission saved.
- When the mission gets updated.
2016-08-06 20:39:56 +02:00
Lorenz Meier
c76c8fda04 MC pos control: Drop default position controller gain 2016-08-06 11:50:08 +02:00
Lorenz Meier
bcd5f98cb1 Navigator: Fix mission feedback and wording 2016-08-06 10:34:20 +02:00
Roman
278b607f62 Update ECL library 2016-08-06 10:18:58 +02:00
Lorenz Meier
37230f4c5d Revert "navigator: mission check refactor"
This reverts commit a956429c4ccd80dfd8ae8f20fdfa8d777dfa221d.
2016-08-05 22:10:34 +02:00
Lorenz Meier
102f5b54d7 Revert "Improvements to SITL to make paths more flexible. (#5181)"
This reverts commit 699b6a2cb340f4b6ec3979ae7748ff9c56cfdb89.
2016-08-05 21:29:49 +02:00
Mark Whitehorn
bbe3525377 fix VTOL vehicle_status timestamp (#5252)
* fix VTOL vehicle_status timestamp

* run astyle
2016-08-05 17:00:12 +02:00
James Goppert
6ac79aa55f Formatting. 2016-08-05 06:52:35 -04:00
Lorenz Meier
08f5ece306 Remove on arming reset, be less verbose in normal conditions output 2016-08-05 06:51:54 -04:00
James Goppert
699b6a2cb3 Improvements to SITL to make paths more flexible. (#5181) 2016-08-05 06:23:59 -04:00
sander
bc7178c538 Allow mission with active DL and DLL failsafe off 2016-08-05 10:19:06 +02:00
sander
e8a87538b8 Code style 2016-08-05 10:19:06 +02:00
sander
95e80cc29b Only RTL when mission finishes mid air on DL Lost 2016-08-05 10:19:06 +02:00
Julian Oes
a956429c4c navigator: mission check refactor
The mission feasability checker was called with the same arguments
twice which made it hard to understand when a mission is marked valid.

The mission check should run in these two cases:
- When initializing (if home comes up) if there is already a mission saved.
- When the mission gets updated.
2016-08-05 10:17:06 +02:00
Michael Schaeuble
8566cabd76 Make some code-style fixes 2016-08-05 10:15:11 +02:00
Michael Schaeuble
a3a855203c Update Bebop mainapp.config with new functionality 2016-08-05 10:15:11 +02:00
Michael Schaeuble
8351afdca8 Initialize mag scaling with reasonable defaults 2016-08-05 10:15:11 +02:00
Michael Schaeuble
6aa8fcdf53 Enable commander module for Parrot Bebop 2016-08-05 10:15:11 +02:00
Michael Schaeuble
0b7fa4f5ad Apply sensor calibration after coordinate frame rotation 2016-08-05 10:15:11 +02:00
Michael Schaeuble
e600e29ea4 Add DF wrapper for AK8963 2016-08-05 10:15:11 +02:00
Lorenz Meier
0481c002df Navigator: Initialize subscription and disallow copy constructors for classes that have pointer members 2016-08-05 10:13:52 +02:00
Lorenz Meier
074a71173b Systemlib: Address init and copy constructors 2016-08-05 10:13:24 +02:00
Lorenz Meier
db174cf8b1 Disable EKF2 3D fusion temporarily in SITL, fix missing fast-init params for some configs 2016-08-05 10:12:44 +02:00
Bart Slinger
815c367294 Add helicopter airframe icon (#5234) 2016-08-04 17:26:17 +02:00
Beat Küng
8aa3b245a5 fix sdlog2: use LOG_DGPS_MSG for second gps (#5235) 2016-08-04 17:18:02 +02:00
Julian Oes
aaeeb1684d DriverFramework: update submodule (#5233)
This brings support for the Ak8963 for Bebop.
2016-08-04 16:04:02 +02:00
Vasily Evseenko
aa0c89c3ec Fix i2c collision with rgbled 2016-08-04 15:09:33 +02:00
Vasily Evseenko
b4d9f44904 Wait conversion_interval before first measurement 2016-08-04 15:09:33 +02:00
Vasily Evseenko
078aca1966 Fix SENS_EN_SF1XX description 2016-08-04 15:09:33 +02:00
Vasily Evseenko
6689a3d1b1 Add SENS_EN_SF1XX param to specify sensor model
Fix missing orb_unadvertise on shutdown
Fix missing closing of file descriptors
2016-08-04 15:09:33 +02:00
Vasily Evseenko
6d3aba1c5f Fix code style 2016-08-04 15:09:33 +02:00
Vasily Evseenko
49844f52d5 Fix SF10a driver. Add support for SF11c and rename to SF1xx 2016-08-04 15:09:33 +02:00
Julian Oes
00d4eae373 attitude_estimator_q: don't filter output rates
Since we're already filtering the incoming gyro and accel sensor
signals, we don't need to filter the output rates again.
2016-08-04 11:33:44 +02:00
Julian Oes
ea9c8b968a attitude_estimator_q: don't spam console
We should not spam the console just because the input data is
degenerate, it would only make things worse because everything would
slow down due to the printfs.
2016-08-04 11:33:44 +02:00
Julian Oes
d748f6ca71 attitude_estimator_q: filter accel and gyro data
Since accel and gyro are not filtered in the drivers anymore, we need to
filter them in this estimator in order to achieve a similar performance.
2016-08-04 11:33:44 +02:00
Eike
cfa203ca22 Remove LPOS.Z reset (#5228) 2016-08-04 11:32:26 +02:00
Mark Whitehorn
422cf7e21c assign timestamp in vtol vehicle_rates_setpoint message (#5227) 2016-08-04 08:22:33 +02:00
James Goppert
eeb73888fd update sitl_gazebo (#5224) 2016-08-03 18:46:25 -04:00
Andreas Daniel Antener
f3c5c2c5a9 use thrust scale parameter for vtol pusher support (#5207) 2016-08-03 23:41:01 +02:00
James Goppert
feccb9bfc1 Make integraiton test script work with kinetic. 2016-08-03 17:17:07 -04:00
Lorenz Meier
5b06b40ed9 Set SITL as default target now that Pixhawk is not necessarily the default HW 2016-08-03 23:04:35 +02:00
Lorenz Meier
e287b05d67 NuttX: Add file change which allows really fast log download 2016-08-03 21:10:34 +02:00
Nate Weibley
547592fddf Use a persistent file* and seek less for log download
Opening/seeking/closing the file for each data chunk was extremely
expensive and drastically slowed the download process as the position
in the file increased. Over USB with large files this change + nuttx
update results in ~ 10x speedup for log downloads.
2016-08-03 14:33:01 -04:00
James Goppert
391eb7f8df Sitl update. (#5220) 2016-08-03 13:19:26 -04:00
Andreas Antener
579d420db1 VTOL: enable MC motors after instant back transition 2016-08-03 13:56:07 +02:00
Andreas Antener
86d1488e52 added missing const keyword 2016-08-02 21:09:45 +02:00
Andreas Antener
d089c427ec quadchute code style fix 2016-08-02 21:09:45 +02:00
Andreas Antener
6f1eda2b18 added single point to decide if we need quadchute, let the reason be passed from the source where we know what's going on 2016-08-02 21:09:45 +02:00
Andreas Antener
92ddc30b69 moved min alt param 2016-08-02 21:09:45 +02:00
Andreas Antener
92185945bc make quadchute work during transitions 2016-08-02 21:09:45 +02:00
sander
0cc44a82c5 Code style 2016-08-02 21:09:45 +02:00
sander
45a4472a47 Do not apply back transition duration for QuadChute 2016-08-02 21:09:45 +02:00
Andreas Antener
bae5416819 removed duplicate memset 2016-08-02 21:05:00 +02:00
Lorenz Meier
033e9e140d Update MAVLink 2.0 version 2016-08-02 14:55:12 +02:00
Lorenz Meier
e2d1524a7a Mission feasibility checker: Better feedback for landing waypoints 2016-08-02 14:54:40 +02:00
Lorenz Meier
670b0f7c6d Commander: MAVLink is an off-vehicle API we should not depend internally on 2016-08-02 14:54:16 +02:00
James Goppert
437221bec2 Make LPE default estimator. (#4483) 2016-08-02 02:02:01 -07:00
Beat Küng
c22e7ed5c9 Tools/mavlink_shell.py: implement a simple shell with history 2016-08-02 09:10:18 +02:00
Beat Küng
aefa319fc4 fw_pos_control_l1: fix compiler problem (implicit float conversion) (#5198)
issue (GCC 6.1.1):
../src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp:1284:27: error: implicit conversion from ‘float’ to ‘double’ to match other operand of binary expression [-Werror=double-promotion]
  if ((fabs(air_gnd_angle) > M_PI) || (ground_speed_2d.length() < 3.0f)) {
2016-08-02 00:04:44 -07:00
Vasily Evseenko
457526ebe7 Don't push bad values from lidar to EKF2 (#5196)
Report terrain altitude
2016-08-01 23:30:40 -07:00
James Goppert
a58c2f416f Update sitl_gazebo. (#5195) 2016-08-01 15:30:31 -04:00
Julian Oes
ccea9c9e6f fmu: flash safety button correctly even disabled (#5189)
If the circuit breaker to disable IO safety is engaged, the safety
button should still blink in the appropriate pattern: double flash for
safety off, solid on for armed.
2016-08-01 02:18:36 -07:00
Julian Oes
623b99327d param: lock the bus as short as possible (#5187)
Since the FRAM and the baro are on the same bus on the Pixracer, we
currently need to lock down everything (instead of just this SPI bus)
for the time when the params are written.
Therefore, we need to keep this locking as short as possible.

This change makes the locking even shorter by moving all param_get and
param_name and param_size calls out of the lock.
2016-08-01 02:15:21 -07:00
sander
5710a0c040 Remove default geofence from gazebo_standard_vtol 2016-07-31 22:09:44 +02:00
Lorenz Meier
a38263b8e7 Enforce enough braking power when users set higher horizontal speeds 2016-07-31 17:43:15 +02:00
Julian Oes
dd70b3752a mpu9250: set accel DLPF to 41 Hz (#5177)
Previously, the accel DLPF was not set, so it's not clear what the
settings are or should be.
2016-07-31 08:04:01 -07:00
Lorenz Meier
d809faec63 Fixes for Gazebo 2016-07-31 16:52:53 +02:00
Julian Oes
21bc5d1716 land_detector: remove leftover printf (#5178) 2016-07-31 07:49:11 -07:00
Lorenz Meier
4e81263d3a Updated Tools/sitl_gazebo 2016-07-31 15:56:35 +02:00
Lorenz Meier
11f1a11934 Lock yaw integral if we hit a yaw limit 2016-07-31 14:14:55 +02:00
Lorenz Meier
a1c8585342 EKF2: Report zero as position until local pos is valid 2016-07-31 14:01:32 +02:00
Lorenz Meier
c835fb36a6 5611: Bump sampling frequency back up to 40 Hz from 25 Hz to help with altitude estimation 2016-07-31 12:20:48 +02:00
Julian Oes
0d80a77e46 unit_tests: move hysteresis test to new framework 2016-07-30 12:26:56 +02:00
Julian Oes
8f1d350d3c unit_test: add ut_assert_true and ut_assert_false 2016-07-30 12:26:56 +02:00
Julian Oes
6bf4bd5f35 land_detector: remove unused variable 2016-07-30 12:26:56 +02:00
Julian Oes
50cac88e5b land_detector: big refactor, share update function
This is a big refactor and general cleanup of the land detector. The
main functional change is to share the hysteresis lib across all land
detectors.
2016-07-30 12:26:56 +02:00
Julian Oes
9f928308c4 land_detector: astyle 2016-07-30 12:26:56 +02:00
Julian Oes
3d0fa410a8 hysteresis: astyle 2016-07-30 12:26:56 +02:00
Julian Oes
fd6ad6565c commander: use hysteresis lib for auto_disarm
Since the auto disarm hysteresis was implemented wrongly, it's now
replaced with the hysteresis library call.
2016-07-30 12:26:56 +02:00
Julian Oes
f7ad8c03b4 hysteresis: use 64bit for everything in us 2016-07-30 12:26:56 +02:00
Julian Oes
93acff8641 MulticopterLandDetector: remove always true call
The result from `!get_freefall_state()` was always true because
`get_freefall_state()` is already called before `get_landed_state()` is
called. Only if we're not in a freefall, we check if we are landed.
2016-07-30 12:26:56 +02:00
Julian Oes
740bfc0b32 MulticopterLandDetector: use hysteresis lib
The hysteresis was not properly implemented in the land detector and is
therefore replaced by the library call, both for the freefall detector
and the land detector.
2016-07-30 12:26:56 +02:00
Julian Oes
ee1669e174 hysteresis: add to systemlib CMakeLists.txt 2016-07-30 12:26:56 +02:00
Julian Oes
f365832c0b hysteresis: we needed different hysteresis
Sometimes, we only need a histeresis in one direction.
2016-07-30 12:26:56 +02:00
Julian Oes
401d807261 systemlib: added library for hysteresis
There have been two cases where a hysteresis function wasn't working
correctly. It is therefore a good idea to abstract the hysteresis
functionality into a library.
2016-07-30 12:26:56 +02:00
Julian Oes
36299c59b4 unittests: whitespace 2016-07-30 12:26:56 +02:00
sander
788f04ea58 Remove debug info 2016-07-30 11:43:52 +02:00
sander
94fc8bda02 Fix indenting 2016-07-30 11:43:52 +02:00
sander
2bca19fc5e Remove acceptance radius from takeoff altitude for MC 2016-07-30 11:43:52 +02:00
sander
e4f20f98cd Implement altitude acceptance radius 2016-07-30 11:43:52 +02:00
Lorenz Meier
b5ef5cabb5 Updated src/drivers/gps/devices 2016-07-30 11:40:50 +02:00
James Goppert
5f16c97662 Added mb12xx sensor enable. (#5164) 2016-07-29 16:18:27 -04:00
Daniel Agar
390a7165dd make tests (#5163)
* make tests use px4 instead of mainapp

* commander_tests ALTCTL - not rotary requires altitude
2016-07-29 11:46:47 -04:00
Julian Oes
5a262ec6bc uorb: came across a wrong comment 2016-07-29 17:44:50 +02:00
Julian Oes
a18eabead4 navigator: whitespace 2016-07-29 17:44:50 +02:00
Daniel Agar
2de66b1a9d FW navigation in high winds (#5097) 2016-07-29 06:05:48 -07:00
Beat Küng
ad2a13dcc8 cmake TAP config: add topic_listener 2016-07-29 14:50:03 +02:00
Beat Küng
0fa3bd4691 ms5611: use px4_getopt instead of getopt
- px4_getopt is threadsafe
- getopt does not do argument reordering (ms5611 start -T 5607 did not work)
2016-07-29 14:50:03 +02:00
David Sidrane
1b0f41e36e Added support to MS5611 Driver for MS5607 2016-07-29 14:50:03 +02:00
Lorenz Meier
fa421a91e2 Add missing teest targets for MindPX 2016-07-29 14:10:44 +02:00
Lorenz Meier
6ab9dc0acf Testing cleanup from Daniel Agar 2016-07-29 13:49:14 +02:00
Daniel Agar
99aa5f49fc FW ALTCTL requires altitude 2016-07-29 13:48:21 +02:00
Daniel Agar
6aa935fed6 FW don't allow ACRO or RATTITUDE 2016-07-29 13:48:21 +02:00
Lorenz Meier
e70223c2be Allow transition commands also in manual if no switch is used 2016-07-29 13:43:24 +02:00
Roman
1f1839d978 sensors: fixed code style
Signed-off-by: Roman <bapstroman@gmail.com>
2016-07-29 13:28:09 +02:00
Roman
9ece090dbe vtol_att_control: use transition switch instead of aux1
Signed-off-by: Roman <bapstroman@gmail.com>
2016-07-29 13:28:09 +02:00
Roman
499d362b8b added transition switch 2016-07-29 13:28:09 +02:00
Beat Küng
302719527a nuttx defconfig: increase nr of file descriptors, due to mavlink shell 2016-07-29 13:07:17 +02:00
Beat Küng
e8d44da2c0 Tools: add mavlink_shell.py script to start a shell over mavlink 2016-07-29 13:07:17 +02:00
Beat Küng
2241ab9cac mavlink: add a shell using SERIAL_CONTROL MAVLink message 2016-07-29 13:07:17 +02:00
Julian Oes
78a9472b25 px4iofirmware: astyle 2016-07-29 12:46:17 +02:00
Julian Oes
dcb7c0e4c2 px4iofirmware: correct newline 2016-07-29 12:46:17 +02:00
Julian Oes
79a1b84b09 px4iofirmware: clean up override decision
The override checking was scattered across two places and is now unified
in controls_tick(). The part in mixer_tick only decides which mixer (or
none) to use give the override flag.
2016-07-29 12:46:17 +02:00
Julian Oes
de76c398ca px4io: whitespace fixes 2016-07-29 12:46:17 +02:00
Julian Oes
ec035b7268 px4iofirmware: no override in multirotor mode
This fixes a bug where multirotors got into override mode when the FMU
is dead/not responding.
The main bug was that the check was for FMU_OK || MANUAL_OVERRIDE_OK
in order to get further in the override checks.

Also a mixer_tick was called inside the controls_tick even though these
are called in px4io.c after each other anyway.
2016-07-29 12:46:17 +02:00
Julian Oes
57b3bbf657 px4iofirmware: don't set FMU_OK flags immediately
The FMU_OK flags are later checked anyway based on
system_state.fmu_data_received_time.
2016-07-29 12:46:17 +02:00
Julian Oes
31d5c59ab7 px4iofirmware: remove unused define 2016-07-29 12:46:17 +02:00
Julian Oes
a9a5f3a19e px4io: add FMU fail test mode
In order to test what happens in px4iofirmware when the FMU stops
sending PWM or control commands, I added a test mode. When the test mode
is activated, no controls are sent.
2016-07-29 12:46:17 +02:00
Julian Oes
55d21242fe Snapdragon: keep copying mainapp.config for now
mainapp.config can't be renamed to px4.config just yet because it would
clash with the name used for the DSP side.
2016-07-29 11:15:10 +02:00
James Goppert
b6a9ff756c Rename mainapp to px4. 2016-07-29 11:05:01 +02:00
Sebastian Quilter
3b7ba915a8 small refactor (#5155) 2016-07-28 14:49:37 -07:00
Eric Ye
9f5b081257 Wrap help line to fit through mini-dm. (#5157)
It currently gets cut off on mini-dm, split it into multiple lines
so all of it comes through.
2016-07-28 14:47:57 -07:00
sander
4b414d96eb Init _mission_throttle 2016-07-28 16:44:27 +02:00
sander
0ce08ed9f8 Code style 2016-07-28 16:44:27 +02:00
sander
ce3749d04f Make tecs init airspeed mode dependent 2016-07-28 16:44:26 +02:00
sander
0cf77a30b1 Init tecs with transition airspeed for vtols without airspeed sensor 2016-07-28 16:44:26 +02:00
David Sidrane
415fbae31e Fix build for HW w/o mux 2016-07-28 08:50:59 +02:00
Beat Küng
50a14cfd29 tap_esc: disable the _mode param, use the number of configured channels instead
Not sure why the Mode enum exists in the first place...
2016-07-28 08:50:59 +02:00
Beat Küng
3a0f4c84a5 motor_test: add iterate command 2016-07-28 08:50:59 +02:00
Beat Küng
cbcbce3a28 tap_esc: use correct number of outputs 2016-07-28 08:50:59 +02:00
Beat Küng
6245a9b134 motor_test: make -m & -p optional (select all motors/0 output if not given) 2016-07-28 08:50:59 +02:00
Beat Küng
d660fb094b tap_esc: add RPMSTOPPED macro, make sure driver starts with stopped motors 2016-07-28 08:50:59 +02:00
Beat Küng
d6d3a56116 tap_esc: add buffer size check for _esc_feedback.esc[] 2016-07-28 08:50:59 +02:00
Beat Küng
c55c978145 tap_esc: reset outputs only when armed really changed (not on each topic update) 2016-07-28 08:50:59 +02:00
Beat Küng
4045068187 tap_esc: properly initialize _outputs 2016-07-28 08:50:59 +02:00
Beat Küng
8602ff7856 tap_esc: fix code style, IS_armed -> _is_armed 2016-07-28 08:50:59 +02:00
Beat Küng
3f9f320f18 tap_esc: improve error handling & reporting 2016-07-28 08:50:59 +02:00
Beat Küng
a8e28c7232 tap_esc: fix argument ordering in memset 2016-07-28 08:50:59 +02:00
David Sidrane
632e4630b1 TAP:ESC motors and LED working - The code is still hardcoded for 4 ESC
But the basics are working. N.B. To Stop the moros a value of 0 need to be
sent. LED color mask are misleeding - LED is On or Off per ESC.
2016-07-28 08:50:59 +02:00
Julian Oes
a71cfe92f1 fmu: whitespace fix 2016-07-28 08:49:22 +02:00
Julian Oes
664092b7d4 fmu: support ESC calibration
The FMU was lacking support to do the ESC calibration. This is needed
for Pixracer.
2016-07-28 08:49:22 +02:00
Julian Oes
3289e0cee6 fmu: don't disarm with disarmed set
If disarmed PWM values have been set, we can't accept a disarm command.
If we did, the PWM output stop alltogether after the high pulse of the
ESC calibration.
2016-07-28 08:49:22 +02:00
Julian Oes
d63870ad71 fmu: don' de-initialize
Once the PWM outputs are initialized, there is no point in
de-initializing them again.
2016-07-28 08:49:22 +02:00
Julian Oes
f4e35873a1 DriverFramework: updated submodule (#5148)
This brings fixes for Edison which should not have any influence on
Snapdragon or Raspberry Pi.
2016-07-27 23:47:53 -07:00
Sander Smeets
c4eb65862f Reduce esc calibration pwm timeout (#5011) 2016-07-27 01:52:20 -07:00
Daniel Agar
a9cb2d2fbe navigator mission don't report loiter if landed 2016-07-27 10:39:07 +02:00
Julian Oes
c4cb916afa Fix sdlog2/logger path/file name overflows. (#5138)
* logger: prevent logpath buffer overflows

The handling of the log path had the potential to cause buffer
overflows, especially on POSIX platforms where the paths are often much
longer than just 64 chars.

* sdlog2: prevent logpath buffer overflows

When the log folder path was created, this was done with the unsafe
sprintf function instead of snprintf. This caused buffer overflows in
SITL but the overflow was usually not detected until recent testing of
some work in progress.
2016-07-27 00:55:29 -07:00
Julian Oes
4656b34244 DriverFramework: update submodule
This fixes a gyro/accel scaling bug on Snapdragon.
2016-07-26 17:11:29 +02:00
Beat Küng
4fa59c3cde sdlog2 README: describe geotagging.py script 2016-07-26 10:20:22 +02:00
h3ct0r
b6e57e1347 Added geo tagger script to geo reference any set of arbitraty JPG images that does not have the CAM trigger, but have a valid creation date 2016-07-26 10:14:51 +02:00
Julian Oes
83feb83fe2 cmake: don't build load_mon for POSIX/QURT 2016-07-26 09:58:12 +02:00
Gus Grubba
c3b58822a8 Fixes to log download (#5133)
* Fixes to log download

* Fixing indentation
2016-07-25 08:15:23 -04:00
Andreas Antener
50175ca7ea manual condition includes threshold values 2016-07-25 08:56:19 +02:00
Roman
aea7bd5b47 fw_attitude_control: calculate attitude setpoint for STAB mode
- attitude setpoint generation for stabilized mode was shifted back
to the fw attitude controller. since the fw position controller is polling
on global position attitude setpoints were not generated when global
position was not published.

Signed-off-by: Roman <bapstroman@gmail.com>
2016-07-25 08:56:19 +02:00
Andreas Antener
f069880504 VTOL: don't wait on TECS in FW state if TECS is not running 2016-07-25 08:56:19 +02:00
Andreas Antener
254358ef86 fixed implicit conversion 2016-07-25 08:56:19 +02:00
Andreas Antener
89a2f5057f fixed code style 2016-07-25 08:56:19 +02:00
Andreas Antener
6ff65cd8b2 reset attitude setpoint where necessary 2016-07-25 08:56:19 +02:00
Andreas Antener
0a997577f5 allow manual yaw in all manual modes and also use it as threshold to snap into heading lock 2016-07-25 08:56:19 +02:00
Andreas Antener
9f7f6e4d3d removed roll lock for altitude hold 2016-07-25 08:56:19 +02:00
Roman
6226a0c77d fw_pos_control_l1: fixed code style
Signed-off-by: Roman <bapstroman@gmail.com>
2016-07-25 08:56:19 +02:00
Roman
ec334f7c9b fw_pos_control_l1: limit max roll and pitch setpoints for manual modes
Signed-off-by: Roman <bapstroman@gmail.com>
2016-07-25 08:56:18 +02:00
tumbili
8c8120e2fc fw position controller: logic cleanup
cleaned up logic when not to use pitch setpoint from TECS

Signed-off-by: tumbili <roman@px4.io>
2016-07-25 08:56:18 +02:00
tumbili
fd51bf44d5 fw position / fw attitude control: move attitude setpoint generation to
position controller

- attitude setpoints for all modes are now computed in the fw position
controller

Signed-off-by: tumbili <roman@px4.io>
2016-07-25 08:56:18 +02:00
Roman
e3f3233ee4 fw position controller: fixup attitude setpoint generation
- generate complete attitude setpoint for position and altitude
control mode
- fix generation of roll setpoint for position control which lead to
wing rock
- add roll and pitch setpoint offsets so that they are logged as well

Signed-off-by: Roman <bapstr@ethz.ch>
2016-07-25 08:56:18 +02:00
Lorenz Meier
880fa47ba2 Fix install in Mac OS X Gazebo 2016-07-24 23:09:17 +02:00
James Goppert
7458f1e07d Update sitl_gazebo. (#5136)
* Update sitl_gazebo.

* Update sitl_gazebo.
2016-07-24 17:07:14 -04:00
James Goppert
563122f5d3 sitl_gazebo update. 2016-07-24 16:30:01 -04:00
James Goppert
4f62a35993 Fixed sitl_gazebo. 2016-07-24 16:27:12 -04:00
James Goppert
05315abc89 Optical flow simulator and install cleanup. (#5132)
sitl CI is having some issue cloning, but I have verified it locally for various configs
2016-07-24 13:07:14 -04:00
Eric Ye
5cee3fa0e1 Proper return value on qshell help 2016-07-23 08:25:03 +02:00
Eric Ye
76d74640ae Add "help" to qshell for qurt
Fixes issue #5111
2016-07-23 08:25:03 +02:00
Julian Oes
7399e60e96 ecl: update submodule
This includes just some minor fixes.
2016-07-23 08:05:47 +02:00
James Goppert
a4ef364f80 Added innovation logging to LPE. (#5124) 2016-07-22 19:19:30 -04:00
Henry Zhang
0730e681bc Nuttx config: MAVLink app needs more FDs. 2016-07-22 11:16:18 +02:00
Henry Zhang
2b93f16118 mindpx-v2: build topic_listener, sd_bench, tests, motor_ramp. 2016-07-22 11:16:18 +02:00
Julian Oes
317fd270d1 RPi: add mainapp.config again
This file got deleted accidentally because all .config files were in
gitignore.
2016-07-22 09:33:43 +02:00
Julian Oes
b99f51a035 gitignore: don't ignore all .config files 2016-07-22 09:33:43 +02:00
Michael Schaeuble
ae66085f89 MPU6050: Apply calibration after coordinate frame rotation 2016-07-22 09:21:55 +02:00
Michael Schaeuble
1fc8e38157 Fix incorrect indentation 2016-07-22 09:21:55 +02:00
Michael Schaeuble
7d11b32981 Add correct rotation for MPU6050 on Bebop 2016-07-22 09:21:55 +02:00
Michael Schaeuble
2197bf518d Fix code style 2016-07-22 09:21:55 +02:00
Michael Schaeuble
28de6d2cbd Update mainapp.config and add MPU6050 2016-07-22 09:21:55 +02:00
Michael Schaeuble
d94bdb0829 Add missing defines for Bebop sensor drivers 2016-07-22 09:21:55 +02:00
Michael Schaeuble
e73d8d73e1 Add DF wrapper for MPU6050 2016-07-22 09:20:27 +02:00
Beat Küng
8ab841e046 sensors: poll on best-voted gyro (#5106)
This is a follow-up to 399d4ef833cd72ac0
2016-07-21 14:52:32 -07:00
Beat Küng
03b3bfa98d tap: add the motor_test command to the build config 2016-07-20 14:04:15 +02:00
Beat Küng
2c0c30eadf drv_tap_esc.h: fix file permissions 2016-07-20 14:04:15 +02:00
Beat Küng
38e4882b5f tap_esc: subscribe to test_motor topic and set outputs accordingly in non-armed state
This makes it possible to use the 'motor_test' command
2016-07-20 14:04:15 +02:00
Beat Küng
0f6a6f7150 mavlink_messages.cpp: only warn once, when MAVLink log opening fails
This happens for example if no SD card is present.
2016-07-20 13:07:32 +02:00
Beat Küng
9a8c092116 mavlink_messages.cpp: fix coding style: prepend _ to class members 2016-07-20 13:07:32 +02:00
David Sidrane
5ded579bf3 TAP:More IO Init (#5096) 2016-07-19 11:58:44 -10:00
Beat Küng
7b52eced66 commander: write timestamp of commander_state topic on init and state change 2016-07-19 09:21:35 +02:00
David Sidrane
a420d47797 Minor fix usage (#5094) 2016-07-18 15:01:55 -10:00
Beat Küng
5b85fdb636 fix sdlog2 replay: changed format string from 9c73eae941c (#5090) 2016-07-18 15:25:49 +02:00
James Goppert
9fcf121380 LPE: Don't use home as local origin (#5067) 2016-07-17 10:16:17 -04:00
Mark Whitehorn
981353f439 fix bug in RC scan for SUMD input 2016-07-16 16:35:03 +01:00
Julian Oes
fa614a3cc1 RPi: just use RPI instead of RPI2.
The reason for this change is that RPi2 and RPi3 are compatible, and
hopefully all differences coming up can be resolved without ifdefs but
at runtime.
2016-07-16 15:51:00 +01:00
Julian Oes
2bf40efe8b RPi2: fuse mainapp/common and navio2
We currently only support Navio2, so let's fuse the two configurations.
2016-07-16 15:51:00 +01:00
Miguel Arroyo
17be06cf1a Fixes Navio2 Config Typo 2016-07-16 15:51:00 +01:00
Julian Oes
1939b88a33 RPi2: use cross/native instead of release/default 2016-07-16 15:51:00 +01:00
Julian Oes
f241518d0e RPi2: bring default and release cmake in sync
The two cmake files for default and release where out of
sync. This change bases them on a common cmake file.
2016-07-16 15:51:00 +01:00
Daniel Agar
d733fc9139 travis-ci use tagged docker image (#5068) 2016-07-16 08:41:19 -04:00
Beat Küng
a1b710025b Improve new logger update rate (#5073)
* logger: disable some default topics, which are most likely not used

This is also to safe CPU and lower the amount of file descriptors used.

* logger: use the hrt timer for more accurate scheduling

Under NuttX with the default rate of 285Hz, the actual measured rate was
only 200Hz while on Linux it was ~280Hz. The reason is that NuttX only
uses a usleep() granularity of 1ms, so that the typical sleep time is
longer than what we set.

Now the logger waits on a semaphore, which gets activated periodically
with a hrt timer. With this the measured rate is exactly the expected one,
285Hz.
2016-07-15 16:55:32 -07:00
Beat Küng
ee58f0d11d encoders.msg: remove this topic, it's never published (#5074) 2016-07-15 14:59:52 -07:00
lovettchris
b48c081e5c Reset _transfer_in_progress if mavlink transfer times out. (#5077) 2016-07-15 14:59:30 -07:00
Julian Oes
87e964ec10 commander: POSCTL with localpos for MC
Fixedwings need a global position estimate for POSCTL.
2016-07-15 14:43:36 +01:00
Julian Oes
f430c39f5b commander: allow POSCTL with local position
We want to allow flying POSCTL with optical flow only without GPS.
2016-07-15 14:43:36 +01:00
Julian Oes
1cfa429efe DriverFramework: update submodule
Small additions for Intel Edison.
2016-07-15 12:58:10 +02:00
David Sidrane
33e4f38d82 Add GPS and Compass (#5066) 2016-07-14 08:26:40 -10:00
David Sidrane
e2a6ae676f More complete IO init (#5065) 2016-07-14 07:32:11 -10:00
Beat Küng
4a199c1360 gyro calibration: avoid double initialization of gyro_scale data
They're initialized in do_gyro_calibration already
2016-07-14 14:17:38 +02:00
Julian Oes
f1b8bed5df gyro_calibration: set scale to 1 instead of 0 2016-07-14 13:13:56 +02:00
David Sidrane
8a2df2a458 Avoid unnecessary Write Cycle 2016-07-13 20:42:05 +02:00
David Sidrane
5d1bd6fb2c TAP used FLASH Based parameter storage - needs timing eval 2016-07-13 20:42:05 +02:00
David Sidrane
8d13dba0cc Update NuttX with backport of stm32 FLASH driver to support F4 ==master_flash 2016-07-13 20:42:05 +02:00
David Sidrane
5e8d6375c9 Back Port nuttx_v3 FLASH based parameter hooks 2016-07-13 20:42:05 +02:00
David Sidrane
39ce201efe TAP:Fix build to use correct ROMFS 2016-07-13 20:19:05 +02:00
David Sidrane
78bc7d850b Fix Syntax error - but I suspect the USE_IO logic can be simplified 2016-07-13 07:52:58 -10:00
Julian Oes
3ed8b735c2 mavlink: only warn once if broadcast fails
This fixes the issue where the console was spammed if a broadcast failed
after a connection had previously been established.
2016-07-13 19:40:59 +02:00
Beat Küng
399d4ef833 sensors: only poll on first gyro for now
This fixes a bug with following setup:
- two (or N > 1) connected gyros
- ekf2 enabled
In this case, sensors would publish with the combined rate of the gyros,
but with N following messages having the same gyro data & timestamp.
Apparently ekf2 cannot handle this, the other estimators can.

We may want to rethink what the proper solution is here.
2016-07-13 14:35:03 +02:00
Julian Oes
eda2915f0b mavlink: whitespace fix 2016-07-13 10:10:45 +02:00
Julian Oes
d9343fa925 mavlink: use new copy_if_updated interface 2016-07-13 10:10:45 +02:00
Julian Oes
8345a0368b mavlink: add function to copy only if updated
The MavlinkOrbSubscription only had an interface to either always copy
or copy based on a timestamp. This commit adds a copy interface if the
topic has been updated.
2016-07-13 10:10:45 +02:00
Julian Oes
8ded6a58ab mavlink_log: enable queueing
We don't want to drop messages if possible for mavlink log messages, so
let's use the orb queueing.
2016-07-13 10:10:45 +02:00
Julian Oes
314ee6b7e0 commander: remove some if confusion
This is a try to simplify the if statements a bit. Also, a check of
new_arming_state which was impossible, is removed.
2016-07-13 10:10:45 +02:00
Julian Oes
631ce1fc55 commander: proper arguments for preflight check 2016-07-13 10:10:45 +02:00
Andreas Antener
af8cd3f880 correctly scale and trim outputs in IO 2016-07-13 09:29:13 +02:00
Roman
13905c2480 px4io driver: send roll, pitch and yaw scale parameter values to io
Signed-off-by: Roman <bapstr@ethz.ch>
2016-07-13 09:29:12 +02:00
Roman
08bbd6dbfa px4iofirmware: added scale parameters for roll, pitch and yaw
since pure manual control for fixed wings in handled on the io side
the scale parameters for roll, pitch and yaw had to be introduced there
as well.

Signed-off-by: Roman <bapstr@ethz.ch>
2016-07-13 09:29:12 +02:00
tumbili
71e2a43790 consider scale parameters in rc calibration code 2016-07-13 09:29:12 +02:00
tumbili
f0dd5a103c allow scaling controls in full manual mode for fixed wings 2016-07-13 09:29:12 +02:00
tumbili
784883af22 added parameters to allow scaling controls in full manual mode
for fixed wings
2016-07-13 09:29:12 +02:00
xiaoyuli
7718343b27 fix the function of disabling safety switch (#5031) 2016-07-12 23:43:17 +02:00
Daniel Agar
de14418e93 fw_pos_ctrl_l1 var naming consistency and effc++ 2016-07-12 23:40:39 +02:00
Daniel Agar
ebce725720 px4fmu-v2 disable motor_ramp 2016-07-12 23:36:05 +02:00
Daniel Agar
59b4350aa0 implement MAV_CMD_NAV_LOITER_TO_ALT and general mission cleanup 2016-07-12 23:36:05 +02:00
Lorenz Meier
7419151314 Update EKF2 replay timestamp handling 2016-07-12 22:17:22 +02:00
David Sidrane
0576031a81 TAP PID (#5036) 2016-07-12 05:07:03 -10:00
Beat Küng
f8382a2713 upload scripts: add TAP for the uploader script 2016-07-12 16:00:33 +02:00
David Sidrane
5cc58fa067 Reserving 32Kib of FLASH for parameters (#5035) 2016-07-12 03:57:31 -10:00
James Goppert
817f695297 Change to LPE terrain model to account for velocity scaling. (#5027) 2016-07-11 16:02:39 -04:00
Lorenz Meier
a740d80a20 Mag voter: Be more forgiving on load changes 2016-07-11 15:16:35 +02:00
Lorenz Meier
021f0840ae Fix Hobbyking Pixracers 2016-07-11 15:03:07 +02:00
tommises
4fa2c54485 Mocap timestamp cleanup (#5021) 2016-07-11 12:46:29 +02:00
Beat Küng
c9652fd42a logger: update set of default topics to match functionality of sdlog2
logging rate with these topics: ~50KB/s

The rates may need to be adjusted
2016-07-11 10:04:44 +02:00
Beat Küng
4ec9e53deb param SYS_LOGGER: remove experimental for new logger
It's ready to be used!
2016-07-11 10:03:02 +02:00
Beat Küng
68e14ceb29 tap startup script: add -t param for logger 2016-07-11 10:01:16 +02:00
Beat Küng
49614cfe38 SITL init scripts: add replay tryapplyparams & replay trystart
These will only start replay if there's an environment variable 'replay',
otherwise they do nothing.

We apply the parameters even before loading the modules, so that the
modules 'see' the same state as the recorded system had. We will have to
see how well this works in practice.
2016-07-11 09:26:35 +02:00
Beat Küng
db13ac4c53 posix_sitl_default.cmake: add -DORB_USE_PUBLISHER_RULES if it's a replay build 2016-07-11 09:25:16 +02:00
Beat Küng
e9726af54c Makefile: check for 'replay' env variable and change build dir accordingly
For replay with the new logger, we want a separate build dir so that the
parameters file and orb rules don't get mixed up.
2016-07-11 09:25:07 +02:00
Randy Mackay
80134d2b7d IR-LOCK: rework driver (from jschall) (#5024)
* irlock: change output format to tangent of angles

* irlock: put all targets in single struct

* irlock: eliminate tanf function in constant
2016-07-11 09:05:29 +02:00
Lorenz Meier
71d150f6ec MAVLink app: Fix rate handling 2016-07-10 17:05:33 +02:00
Lorenz Meier
c7130081cc Update ECL 2016-07-10 16:33:07 +02:00
Lorenz Meier
02b3adc4a7 Update DriverFramework 2016-07-10 16:32:59 +02:00
Lucas De Marchi
18330f7ab7 Move __STDC_FORMAT_MACROS to build system
__STDC_FORMAT_MACROS changes the behavior of inttypes.h to allow
defining format macros for printf-like functions. It needs to be defined
before any include is done, otherwise due to include chains and header
guards it may not take effect.

Instead of having to define it everywhere it is used, move the define to the
build system. Also update ecl and DriverFramework submodules to deal with the
changed definitions.
2016-07-10 16:31:36 +02:00
tommises
d2194d787f Refactored Mavlink stream configuration (#5015)
Streams ordered same way in all modes.
2016-07-10 16:22:22 +02:00
Lorenz Meier
f39d284193 Update vision fields for attitude_estimator_ekf 2016-07-10 14:21:56 +02:00
Lorenz Meier
7601788c43 INAV: clean up vision timestamps 2016-07-10 12:44:00 +02:00
Lorenz Meier
8b3045baa2 MAVLink: clean up vision timestamps 2016-07-10 12:43:47 +02:00
Lorenz Meier
c0a406b81f LPE: Clean up vision timestamps 2016-07-10 12:43:34 +02:00
Lorenz Meier
826eaed2ee EKF2: Clean up vision timestamps 2016-07-10 12:43:21 +02:00
Lorenz Meier
4f875560b7 Att Q Estimator: New vision timestamp 2016-07-10 12:43:10 +02:00
Lorenz Meier
07384d6b5a Vision msg: Cleanup timestamp 2016-07-10 12:42:56 +02:00
tommises
19b56c1574 Use timestamp received from companion computer as timestamp_boot 2016-07-10 12:29:19 +02:00
tommises
5bd574dd05 Fixed timestamp synchronization 2016-07-10 12:29:19 +02:00
tommises
f69e9a3d37 Fixed VISION_POSITION_ESTIMATE.usec
Fixed units to be microseconds and not milliseconds.
2016-07-10 12:29:19 +02:00
David Sidrane
a23785842c tap-v1 Uses New PWM LED driver structure 2016-07-10 11:46:47 +02:00
David Sidrane
ea4d9a34fd mindpx-v2 Uses New PWM LED driver structure 2016-07-10 11:46:47 +02:00
David Sidrane
a36f392b58 Rework PWM LED Driver 2016-07-10 11:46:47 +02:00
David Sidrane
da96144e80 Added Power button and cleanup sdio 2016-07-10 11:46:47 +02:00
David Sidrane
5de19500c2 TAP-v1 set Console Baud Rate to 57600 2016-07-10 11:46:47 +02:00
Mark Whitehorn
09227526b6 enable use of GPS time for new logger folder/file naming (#5010) 2016-07-10 11:15:27 +02:00
Lorenz Meier
7afe2e8dd8 Iris SITL: Default gains 2016-07-08 00:02:48 +02:00
Lorenz Meier
eb6af9afb9 VTOL updates 2016-07-07 23:30:57 +02:00
Lorenz Meier
38652ec940 SITL: Re-tune multicopter gains 2016-07-07 23:28:21 +02:00
Miguel Arroyo
3c11c0d8d8 Adds Calibration Support for RPi2 and Navio2 (#4999) 2016-07-07 22:38:17 +02:00
Andreas Bircher
2317589950 fixing the publishing of the triggering stamps (#5005) 2016-07-07 16:50:46 +02:00
Lorenz Meier
e86c1851a7 Mag fusion update to ECL 2016-07-07 16:49:28 +02:00
Julian Oes
ddba274496 sdlog2: fix poll_counter that I broke earlier 2016-07-07 16:48:27 +02:00
Julian Oes
544ea72d4c Snapdragon: set CPUs scaling to performance mode
Sdlog2 misses least updates when the CPU scaling governor is set at
maximum performance. This is not optimal to save power but the best
effort until there is a RT patched kernel on Snapdragon.
2016-07-07 16:48:27 +02:00
Julian Oes
03dbcf5464 sdlog2: don't forget to copy after poll
The previous changes broke sdlog2 on NuttX because no orb_copy was
called after polling in the case when sdlog2 was not actually logging.
2016-07-07 16:48:27 +02:00
Julian Oes
772dc302b6 sdlog2: raise min write size back
Turns out in practice there was not really a difference, so there was
no reason to change it.
2016-07-07 16:48:27 +02:00
Julian Oes
fe91527604 sdlog2: poll for sensor and replay on Snappy
This brings better performance, so less missed updates on Snappy, as
well as a bit of a cleanup of the poll and orb_copy logic.
2016-07-07 16:48:27 +02:00
Julian Oes
5f18f9bbba sdlog2: select MIN < MAX bytes to write
Previously, the MAX and MIN were both 512 meaning that usually it would
start writing at > 512 bytes but only write 512 bytes which results in
a 512 bytes write shortly followed by a e.g. 30 bytes write.

Also, performance (measured in missed poll updates) seems slightly
better on Snapdragon with bigger chunks.
2016-07-07 16:48:27 +02:00
Julian Oes
1631cfdc83 Eagle: SDLOG_PRIO_BOOST to raise sdlog2 priority
This should lead to less drops on Snapdragon although it's hard to
verify this.
2016-07-07 16:48:27 +02:00
Julian Oes
f7bb43b20b DriverFramework: update submodule (#5004)
This brings various PRs and fixes.
2016-07-07 16:24:13 +02:00
Beat Küng
168c744232 replay: fix string printf output: add .c_str() 2016-07-07 12:51:42 +02:00
Beat Küng
6e44760819 replay: add 'tryapplyparams' command
This only applies parameters from the log file and user-supplied overrides.
It is intended to be called as one of the first startup commands (after
param load), so that during startup, all applications find the parameters
from the replayed system.

Note that this is an optional command and 'replay start' will again load
and apply the parameters in any case.
2016-07-07 12:51:42 +02:00
Beat Küng
84a1a10006 logger: check if we are in replay mode via ENV variable 'replay' 2016-07-07 12:51:42 +02:00
Beat Küng
28ad6066aa replay: add replay module, build for sitl_default, but do not load on startup
This adds a new module that does:
- read an parse an ULog file, given via ENV variable 'replay'
- apply all parameters from the log file
- read and apply user-defined override parameters from a file
- publish all messages in 'real-time' from the log file and add a constant
  offset to the timestamp to match the system time.
- apply changed parameters in the log (which are not overridden)
2016-07-07 12:51:42 +02:00
Beat Küng
ffcefd9047 orb: read & apply publisher rules from file (currently disabled via #ifdef)
If enabled, orb reads a rules file (./rootfs/orb_publisher.rules) on
startup. This can contain rules about which module is allowed to publish
which topic. It is completely transparent, so a publisher does not know
if he's not allowed to publish, and publications will look as if they
succeeded.

To test, add
#define ORB_USE_PUBLISHER_RULES
to uORBManager.hpp
2016-07-07 12:51:42 +02:00
Daniel Agar
4252511b8e add bitmask param metadata 2016-07-07 12:42:59 +02:00
Andreas Bircher
9974b6f747 Camera trigger update (#4998)
* updating the camera driver, correct init and keepAlive function

* removing debug output
2016-07-07 11:40:11 +02:00
Lorenz Meier
15880f8d13 Less verbose 2016-07-07 11:40:11 +02:00
Lorenz Meier
aa77e8ee23 Cleanup 2016-07-07 11:40:11 +02:00
Lorenz Meier
50b93b161c Camera trigger: Make interface dependent on parameter, not command line 2016-07-07 11:40:11 +02:00
Lorenz Meier
78f7f00ae2 Camera trigger: Make interface dependent on parameter, not command line 2016-07-07 11:40:11 +02:00
Lorenz Meier
4683e20187 Clean up camera trigger interface code 2016-07-07 11:40:11 +02:00
Beat Küng
9c73eae941 sensor_combined: replace accel & gyro integral with value, use float for dt
Reason: the value is easier to read & handle (for example plotting). In
most places the value is needed, not the integral.

Note that this breaks the replay format for sdlog2 replay
2016-07-07 11:35:50 +02:00
Beat Küng
8e136779ec stack sizes: reduce stack sizes for modules that use sensor_combined
The sensor_combined topic got reduced from ~780 bytes to 72 bytes.
2016-07-07 11:35:50 +02:00
Beat Küng
c5ea4b43be sensor_combined.msg: make timestamps relative
This is needed for the new logger & saves some space as well.
2016-07-07 11:35:50 +02:00
Beat Küng
c66f26245c sensor_combined.msg: use uint32 for integral_dt
There is no reason to make this 64 bit. The same should be done in
the sensor raw messages, together with further cleanup.
2016-07-07 11:35:50 +02:00
Beat Küng
30301187f0 cleanup sensors_init: remove the static const int ERROR and use PX4_ERROR 2016-07-07 11:35:50 +02:00
Beat Küng
d846ad5dac sensors: move voting into sensors module
- voting is now at a central place instead of duplicated within the
  estimators
  -> this also means that estimators that did not do voting so far,
     now have voting, like ekf2
- estimators requiring more than that can still subscribe to the raw
  sensors
- allows sensors_combined to be 3 times smaller
  - reduces logger, memcpy (cache) & RAM overhead
- all modules requiring only 1 or 2 sensor values now automatically get
  the voted result
- this also adds voting to baro
2016-07-07 11:35:50 +02:00
Beat Küng
c50d267bfb sensors: cleanup includes and logging (warnx -> PX4_WARN/ERR/INFO) 2016-07-07 11:35:50 +02:00
Beat Küng
0c30ee8d37 fix resource leak in attitude_estimator_q_main: unsubscribe topics 2016-07-07 11:35:50 +02:00
Beat Küng
b4ecc5a8d9 sensor_combined cleanup: remove many unneeded fields
Decreases the message size from 780 to 280 bytes.
In particular, all modules using sensor_combined must use the integral now.
The sensor value can easily be reconstructed by dividing with dt.

Voters now need to be moved into sensors module, because error count and
priority is removed from the topic.

Any module that requires additional data from a sensor can subscribe to
the raw sensor topics.

At two places, values are set to zero instead of subscribing to the raw
sensors (with the assumption that no one reads them):
- mavlink mavlink_highres_imu_t::abs_pressure
- sdlog2: sensor temperatures
2016-07-07 11:35:50 +02:00
Beat Küng
c407123a72 cleanup sensor_combined: remove adc & differential_pressure fields
These are not really used. differential_pressure is just copied from the
topic with the same name.

for sdlog2 we assume no one needs the diff pressure fields and set it to 0.
We plan to switch to the new logger soon anyway.
2016-07-07 11:35:50 +02:00
Beat Küng
2c2477a07d fix sensors leaks: unsubscribe topics when exiting 2016-07-07 11:35:50 +02:00
Beat Küng
ac45c9001b sensors: cleanup syntax: replace &x[0] with x 2016-07-07 11:35:50 +02:00
Beat Küng
78b45c4778 sensors: remove duplicated initialization 2016-07-07 11:35:50 +02:00
Beat Küng
ddc4d70d51 airspeed_calibration: remove unused include 2016-07-07 11:35:50 +02:00
David Sidrane
1d5c5497b5 Reduces wasted FLASH by > 4K (#4994)
* Reduces wasted FLASH by > 4K

* Removed PX4_IMPLEMENT_PX4_LOG_MODULENAME

* Moved implamentation of px4_log_modulename to px4_log.c
2016-07-06 23:52:08 +02:00
James Goppert
056f73f5d2 Changed LPE distance sensor timeout logic. (#4996) 2016-07-06 10:31:55 -04:00
Lorenz Meier
703141d650 Estimator cleanup 2016-07-06 13:37:46 +02:00
Lorenz Meier
332f669d9b Add tap-v1 config 2016-07-06 13:34:35 +02:00
Lorenz Meier
7ed0eba50e USB config is now in main boot 2016-07-06 13:31:24 +02:00
Lorenz Meier
8a2155f2af UAVCAN is now in main RCs 2016-07-06 13:31:11 +02:00
Lorenz Meier
96f053273c Always start default mc apps 2016-07-06 13:30:58 +02:00
Beat Küng
09ecc84cc7 gps file dump: re-implement with an uORB topic & write to the log file (#4987)
Drawbacks of the previous method: when writing to the SD card, there are
high delays in the write() call of several 100ms, every now and then. The
frequency and length of these events depend on:
- SD card
- used logger bandwidth
- bandwidth of gps data (RTCM)
Since the whole gps thread was blocked during this period, it lead to
gps timeouts and lost module.

What we do now is: publish an orb topic with queuing. This makes it async
and the logger takes care of buffering. This means it's best to:
- use high logger rate
- use large logger buffer
- reduce logger bandwith by disabling unused topics
2016-07-06 09:32:37 +02:00
James Goppert
7e883809e3 Bump matrix version to 1.0.1. 2016-07-06 01:43:59 -04:00
James Goppert
c38f23c0e1 Bump matrix version. (#4993) 2016-07-05 21:20:17 -04:00
James Goppert
9c0ed52bb8 Updated matrix lib to 1.0.0. (#4991)
* Updated matrix lib to 1.0.0.

* Bump matrix version.
2016-07-05 17:38:35 -04:00
James Goppert
09ddc24801 Added agl smoothing to LPE. (#4976) 2016-07-05 16:54:08 -04:00
Julian Oes
3524fd7d24 ekf2: don't ignore function argument (#4990) 2016-07-05 17:40:37 +02:00
Ivan Dimitrov
e342299204 Fixed filename in the Doxygen field. See issue "wrong doxygen descriptor (file name) #4979" 2016-07-05 15:17:05 +02:00
Beat Küng
c4e77cf411 logger: fix '-r 0' parameter: should be unlimited rate instead of 1Hz 2016-07-05 14:08:25 +02:00
Beat Küng
c94fe845ec fix logger: remove space in format for changed parameters 2016-07-05 14:08:25 +02:00
Beat Küng
a455962e17 logger: only call write_add_logged_msg when sucessfully subscribed 2016-07-05 14:08:25 +02:00
Eike
dc1f343501 Change lower range limit of SF10a to 0.01m (#4977)
* SF10a driver added

* Remove Sf10a driver

* Set lower range boundary to 0.01m for LPE
2016-07-04 21:41:58 +02:00
Daniel Agar
7f89994785 use NAV_ACC_RAD for vertical waypoint acceptance (#4978) 2016-07-04 21:41:16 +02:00
Daniel Agar
a9a3050682 EKF2 HIL gps decrease s_variance_m_s 5.0 -> 1.0 (#4973) 2016-07-04 08:18:15 +02:00
Andreas Antener
8d254058fa added square wave mode and PWM max parameter 2016-07-03 22:23:25 +02:00
bharathr
d96810f250 Removed px4 config file for 200qx P1 board, updated P2 board version to support Qualcomm ESCs 2016-07-03 12:43:54 +02:00
bharathr
29be7c3003 Updated motor-esc mappings in 200qx config file 2016-07-03 12:43:54 +02:00
bharathr
9131647566 Fixed UART_ESC_MODEL parameter in 200qx config file 2016-07-03 12:43:54 +02:00
bharathr
00243a9842 Updated 200qx config files (removed calib files, cleaned up and renamed all files) 2016-07-03 12:43:54 +02:00
Martin K. Schröder
97d9fd38be Update Matrix.hpp (#4966)
This was horribly wrong. Matrix is first cast into a matrix of size NxM (which is supposed to be the size of the result - NOT the starting point) so the transpose result becomes garbage. Instead make "Me" an MxN matrix as the original. Took me a whole evening to figure out this problem. Now my Kalman filter finally returns good results.
2016-07-03 12:29:58 +02:00
Lorenz Meier
bc6e83f5e3 Version reporting: Be more accurate about platforms 2016-07-02 13:00:07 +02:00
Lorenz Meier
d85e416680 Fix default handling for battery params 2016-07-02 12:59:49 +02:00
Lorenz Meier
9258bb2ae8 v1.4.0 transitional support for battery count 2016-07-02 12:08:57 +02:00
Lorenz Meier
88cf8f23f6 Fix ver command 2016-07-02 12:08:30 +02:00
Lorenz Meier
fd17c87eb4 Fix release parsing 2016-07-02 12:00:56 +02:00
Lorenz Meier
972a6f7be8 Fix MAVLink reporting of Firmware version, implement dev / release version reporting 2016-07-02 11:43:24 +02:00
Lorenz Meier
2a729028bd SITL: Set battery cells 2016-07-02 11:41:23 +02:00
tumbili
7e282f579b sensors app: logic fixed and cleanup
- do not exit sensors app if sensor init failed
- do not spam console if we fail over first/second gyro

Signed-off-by: tumbili <roman@px4.io>
2016-07-01 23:11:38 +02:00
Hidenori
ee58188162 Split Navio2 specific parts from general RPI2 files
For Navio2, make posix_navio2_release and use navio2.config.
2016-07-01 23:08:17 +02:00
Hidenori
506d1855ff rename files and add navio target 2016-07-01 23:08:17 +02:00
Miguel Arroyo
b871b322d2 Using Actuator Control Group 0 & Checkstyle fixes 2016-07-01 23:08:17 +02:00
Hidenori
76ee17e532 RC input and PWM output for Navio2 2016-07-01 23:08:17 +02:00
Daniel Agar
54e14cd4b6 add latest version to README (#4960) 2016-07-01 23:00:35 +02:00
James Goppert
cb3120764a Made LPE var pub threshold a parameter. (#4959) 2016-07-01 13:27:29 -04:00
Lorenz Meier
a0fdfb0c21 Strip ESC calib commandline tool 2016-07-01 18:23:08 +02:00
Lorenz Meier
ed19d1ff6b EKF2 wrapper: Optimize for size 2016-07-01 18:22:56 +02:00
Lorenz Meier
fad07a45b9 Mathlib: Optimize for sixe 2016-07-01 18:21:35 +02:00
Lorenz Meier
8162300522 Switch fixed wing to EKF2. Does not link yet. 2016-07-01 18:09:20 +02:00
Lorenz Meier
e43625cfc1 ROMFS: Clear out SITL mixers from deployed image, delete unused mixers, move test mixers to test config 2016-07-01 18:08:32 +02:00
Lorenz Meier
42d8459e87 We are not using the conversion scripts in this ZIP file any more 2016-07-01 18:04:47 +02:00
Lorenz Meier
82b2fa5ecb Commander should not depend on MAVLink 2016-07-01 18:04:09 +02:00
Lorenz Meier
37edb43b60 ROMFS: Strip README files 2016-07-01 18:03:38 +02:00
Lorenz Meier
6268cdc86a Solo is just a normal X quad 2016-07-01 18:03:23 +02:00
James Goppert
00dfc99e08 LPE Variance Dependent Publication (#4914)
* Use variance to control publishing for LPE.

* Don't stop publishing if we have gps/ baro.

* LPE tuning and cleanup.

* Added bias saturation to LPE.

* Added vector enabled low pass filter block.

* Added rk4 integration and pub lowpass to LPE.

* Fix std::abs issue on mac/ reset lowpass on state reset.

* Don't estimate gyro bias when rotating at high speed  att_est_q.

* Lowered low pass on position to 5 Hz for LPE.

* Streamline state space update for LPE.

* Added health flags to est2 log.

* Revert to old tuning, more conservative, less faults.

* Formatting.

* Fix for fault message on LPE.

* Added subscription throttling to LPE.

* Formatting.
2016-07-01 11:43:09 -04:00
sander
2a395c3fec Moved to integrationtests 2016-07-01 11:44:37 +02:00
sander
1548a9a2a1 Change mission to new format and reset defaults 2016-07-01 11:44:37 +02:00
Andreas Antener
25e749de77 use MC auto rates always in AUTO
removed duplicate weathervaning limit
2016-07-01 11:31:57 +02:00
Daniel Agar
a2b1269b27 check_code_style don't paginate output (#4952)
- fixes #4943
2016-06-30 21:00:11 -04:00
Lorenz Meier
2214e7c202 Commander: Remove annoying GPS fix regained warning 2016-06-30 16:59:17 +02:00
tumbili
998579befc mc pos control: zero yaw setpoint move rate in attitude setpoint topic
- fixed bug where a non-zero yaw setpoint move rate could make the drone
yaw around in non-manual modes

Signed-off-by: tumbili <roman@px4.io>
2016-06-30 16:42:51 +02:00
Lorenz Meier
0a40034159 Takeoff: Fix coordinate scaling (#4947) 2016-06-30 16:26:05 +02:00
Andreas Antener
5dcc62d8f9 allow yaw setpoint offset to be reduced once maxed out 2016-06-30 14:30:59 +02:00
Daniel Agar
377726a9a7 sitl gazebo plane fix land detector startup order (#4932) 2016-06-30 13:56:06 +02:00
Daniel Agar
07fa814597 FW vtol landing always forced (#4939) 2016-06-30 13:55:47 +02:00
Lorenz Meier
9649050c2e Update ECL to master 2016-06-30 13:29:47 +02:00
tumbili
036f42999a vtol delta quad plane: adjusted default controller gains
Signed-off-by: tumbili <roman@px4.io>
2016-06-29 13:29:57 +02:00
tumbili
57a665ad99 vtol delta quad plane: adjusted mixer scaling
Signed-off-by: tumbili <roman@px4.io>
2016-06-29 13:28:58 +02:00
Samay Siga
fcee34a9d1 Quad tilt vtol config (#4473)
* Added new VTOL Config

I added new Vehicle ID for our VTOL aircraft - Quad - Tilt Rotor - FW

Added
13010_claire
claire.main.mix
claire.aux.mix

* Added files via upload

* Delete 13010_claire

* Create 13010_claire

* Update 13010_claire

* Update claire.main.mix

* Update claire.aux.mix
2016-06-29 09:14:18 +02:00
Andreas Antener
5ed4e4e3a5 use proper matching for VTOL fixed-wing state regarding position acceptance 2016-06-28 22:44:49 +02:00
Andreas Antener
53b5758eb4 added mission name to assertion outputs 2016-06-28 22:44:49 +02:00
Andreas Antener
85b5b399b9 updated FW horizontal acceptance radius to work with deltaquad 2016-06-28 22:44:49 +02:00
Andreas Antener
26de353d4f added mission file to test name 2016-06-28 22:44:49 +02:00
Andreas Antener
2f581a296e enable VTOL tests on CI again 2016-06-28 22:44:49 +02:00
Andreas Antener
c9f278e46f fix rcS for standard vtol 2016-06-28 22:44:49 +02:00
Andreas Antener
0e5a83f3c1 temporarily disabled running mission test on CI 2016-06-28 22:44:49 +02:00
Andreas Antener
37884dc5dd fixed landing and transition detection test 2016-06-28 22:44:49 +02:00
Andreas Antener
d995f758c2 added mission test to CI run 2016-06-28 22:44:49 +02:00
Andreas Antener
f252ac3eff added mission checks for landing and VTOL transition 2016-06-28 22:44:49 +02:00
Andreas Antener
57fa9d2070 use separate altitude offset check in FW 2016-06-28 22:44:49 +02:00
Andreas Antener
05dc643f17 increased fixed wing radius for mission tests and added more informative output for position matching 2016-06-28 22:44:49 +02:00
Andreas Antener
361abd7f04 added VTOL test missions 2016-06-28 22:44:49 +02:00
Andreas Antener
00d56b9ef8 added VTOL mission test, updated mission test to check mission depending on vehicle state 2016-06-28 22:44:49 +02:00
Andreas Antener
150eb779ae added draft script to run missions against SITL 2016-06-28 22:44:49 +02:00
Andreas Antener
5c88353d05 removed GCS link from mavros 2016-06-28 22:44:49 +02:00
Beat Küng
8a12dee125 cmake: remove all module.mk files & cmake conversion script (#4918)
It seems these files are leftovers.
2016-06-28 09:26:36 +02:00
Beat Küng
b28bfce186 position_estimator_inav: fix compiler issue for GCC 6.1.1 (#4923)
GCC output:
implicit conversion from ‘float’ to ‘double’ to match other operand of
binary expression [-Werror=double-promotion]

It seems gcc 6.1.1 uses the float variant of fabs, whereas older gcc's
use the double version. This makes it compile for both.
2016-06-28 09:25:36 +02:00
Roman Bapst
ec35e77175 px4io driver: fix reporting of mixer limits (#4922)
mixer limit topic was not filled correctly

Signed-off-by: tumbili <roman@px4.io>
2016-06-27 17:31:43 +02:00
Daniel Agar
050eedc4f8 mavlink publish WIND_COV (#4913)
* mavlink publish WIND_COV

-closes #4678

* px4fmu-v2_default disable logger and sync configs
2016-06-27 16:16:24 +02:00
James Goppert
5935b18581 Added EPH/EPV min to LPE. (#4915) 2016-06-27 08:46:00 +02:00
Eike
04e8b40a5c Posix LPE target (#4911) 2016-06-27 08:43:39 +02:00
Daniel Agar
422acc0b69 travis-ci add check_format to qgc_firmware 2016-06-26 17:42:00 -04:00
Daniel Agar
b8b855f2aa param.c fix style 2016-06-26 17:36:45 -04:00
Lorenz Meier
3c2bd4f6dd Param interface: Only mark as changed if value changed 2016-06-26 22:29:14 +02:00
Lorenz Meier
acc8acd059 FMU driver: Fix typo 2016-06-26 22:27:45 +02:00
Lorenz Meier
33e259e827 Update controller gains to match better vehicle models 2016-06-26 22:25:55 +02:00
Lorenz Meier
47a4b95217 Updated simulation models 2016-06-26 22:25:26 +02:00
Lorenz Meier
e9fb929f50 Annotate build type classes for ver command 2016-06-26 21:38:14 +02:00
Daniel Agar
cb320f6e8a param set default battery parameters (#4912) 2016-06-26 21:27:11 +02:00
Lorenz Meier
27e20acbae Leave pin 5 and 6 of the AUX port available for camera triggering when the trigger is enabled 2016-06-25 12:15:32 +02:00
tommises
e6bb21db65 Leave some pins available for camera trigger GPIO. 2016-06-25 12:11:19 +02:00
Julian Oes
6618cac10a RPi2: don't forget to start the baro 2016-06-25 12:00:49 +02:00
Julian Oes
fedde86bf4 df_lsm9ds1_wrapper: new DF submodule, fixes 2016-06-25 12:00:49 +02:00
Julian Oes
e56be33e50 RPi2: switch from ekf2 to q/inav 2016-06-25 12:00:49 +02:00
Julian Oes
8b8766e840 RPi2: put drivers back in 2016-06-25 12:00:49 +02:00
Julian Oes
ea7cebbf10 scp_upload.sh: use ENV variable to set IP of RPi2 2016-06-25 12:00:49 +02:00
Julian Oes
4c0ed8bdd5 df_lsm9ds1_wrapper: astyle 2016-06-25 12:00:49 +02:00
Hidenori
ef729ab2d8 MS5611 driver wrapper for RPi 2016-06-25 12:00:49 +02:00
Miguel Arroyo
f0dbae2e19 Adds LSM9DS1 DriverFramework 2016-06-25 12:00:49 +02:00
Miguel Arroyo
8b8513fe8c Adds LSM9DS1 Wrapper 2016-06-25 12:00:49 +02:00
Henry Zhang
ae6600e48f MAVLink app: fix mavlink forwarding issue. (#4907) 2016-06-25 11:02:01 +02:00
Andreas Daniel Antener
705a08bbbd do not modify attitude setpoint in velocity controlled mode (#4905) 2016-06-25 10:59:50 +02:00
Daniel Agar
8ba5afcd5a circleci ccache (#4906) 2016-06-25 00:25:13 -04:00
Daniel Agar
52c790b184 circleci sync submodules recursive 2016-06-24 20:21:46 -04:00
Lorenz Meier
645204eb42 Update MAVLink library versions 2016-06-24 12:47:59 +02:00
Lorenz Meier
e432a406b6 Update MAVLink submodules 2016-06-24 11:45:23 +02:00
James Goppert
bf9f3b6061 Added QAV-R (raceblade) 5". (#4897)
* Added QAV-R (raceblade) 5".

* Added I gain for qav-r.
2016-06-24 11:44:39 +02:00
Lorenz Meier
286efb6b34 Remove POOSIX porting noise from ms5611 driver (#4896) 2016-06-24 10:39:55 +02:00
Lorenz Meier
d49598b8b3 Build SF10A on FMUv4 2016-06-24 10:31:28 +02:00
Lorenz Meier
7b2367cdff Remove unused topic from SF10A 2016-06-24 10:31:17 +02:00
ecmnet
993831aba8 SF10A driver fix 2016-06-24 10:28:25 +02:00
Roman
eabc4647c2 mavlink receiver: fixed unit conversions for current
Signed-off-by: Roman <bapstr@ethz.ch>
2016-06-24 08:35:27 +02:00
Roman
f754d23a0f mavlink receiver: fixed computation of cell count
Signed-off-by: Roman <bapstr@ethz.ch>
2016-06-24 08:10:35 +02:00
Lorenz Meier
925c340915 Remove unused code from simulated driver 2016-06-24 00:24:09 +02:00
Beat Küng
e0c11f5545 fix ekf2_replay_main.cpp: remove timestamp_velocity from gps topic 2016-06-24 00:22:01 +02:00
Beat Küng
cf5d959f1b gnss.cpp: switch to relative gps timestamp 2016-06-24 00:22:01 +02:00
Beat Küng
940ac5471d ekf2: remove unused gps_msg.time_usec_vel 2016-06-24 00:22:01 +02:00
Beat Küng
f8e9a19889 gps_position: convert uint64 timestamp_time -> int32 timestamp_time_relative
We need to make this timestamp relative to the main timestamp. Necessary
for replay, and saves some space.
2016-06-24 00:22:01 +02:00
Beat Küng
e2a7145379 vehicle_gps_position: remove timestamp_variance & timestamp_velocity (they're not used) 2016-06-24 00:22:01 +02:00
Beat Küng
89f5bd27e8 vehicle_gps_position: use timestamp field instead of timestamp_position
timestamp was unused. This allows to remove timestamp_position.
2016-06-24 00:22:01 +02:00
Lorenz Meier
bf0b3c1585 More complete ESC feedback, ensure to include a timestamp 2016-06-24 00:08:24 +02:00
Lorenz Meier
34c0d3e99a Add TAP to vendor list 2016-06-24 00:08:24 +02:00
Lorenz Meier
b04e2526a1 Fix compile errors for tap ESC 2016-06-24 00:08:24 +02:00
Lorenz Meier
de1c865881 Move TAP ESC to FMUv4 to save flash on FMUv2 2016-06-24 00:08:24 +02:00
Lorenz Meier
1f8b75c9f3 Enable it in build 2016-06-24 00:08:24 +02:00
Lorenz Meier
fab201a2d6 Initial import of TAP controllers 2016-06-24 00:08:24 +02:00
Mark Whitehorn
40a7bd009f implement Spektrum bind function for Pixracer R14 (#4887) 2016-06-23 23:27:51 +02:00
Lorenz Meier
024a86c309 Simulator: fix battery sim 2016-06-23 22:32:14 +02:00
Roman Bapst
571798c318 Pr external battery monitoring (#4881)
* mavlink receiver: added handling of battery status

handle incoming battery status messages in order to support external
battery monitoring

Signed-off-by: Roman <bapstr@ethz.ch>

* sensor params: added parameter for battery monitoring source

Signed-off-by: Roman <bapstr@ethz.ch>

* sensors: only publish battery status if we don't have external battery
monitoring activated

Signed-off-by: Roman <bapstr@ethz.ch>
2016-06-23 18:41:38 +02:00
sirPerna
9f95f457a9 Update default Caipirinha parameters (#4883)
* Update default parameters for TBS Caipirinha

* reverse channel 0 doesn't exist
2016-06-23 18:09:07 +02:00
Daniel Agar
b09872e795 travis-ci fix git shallow clone for git ver (#4885) 2016-06-23 11:04:36 -04:00
tumbili
c2825f701a ekf_att_pos_estimator: fixed saving params when landed
fixed logic such that parameters are saved when vehicle just landed.
only save parameters once when state changed from in_air to landed.

Signed-off-by: tumbili <roman@px4.io> and bkueng <beat-kueng@gmx.net>
2016-06-23 15:56:51 +02:00
tumbili
8026273cb0 land_detector: do not publish if landing or freefall state has not changed
Signed-off-by: tumbili <roman@px4.io> and bkueng <beat-kueng@gmx.net>
2016-06-23 15:56:51 +02:00
Beat Küng
7dea8d4a24 fix 10020_3dr_quad script: load proper mixer file (#4880)
fixes regression from 85245471c05a7453ffa50e2e74dbf8f48c01982b
2016-06-23 14:54:20 +02:00
Nate Weibley
0551e001e2 Properly reflect flow control state if IOCTL fails (#4873)
The flow control state is improperly reflected as enabled if the arch/HAL rejects an IOCTL to turn it on. Mavlink::enable_flow_control updates _flow_control_enabled only if the IOCTL call does not fail.
2016-06-23 10:17:17 +02:00
Roman
27e61127a8 ekf2: fix if else logic
Signed-off-by: Roman <bapstr@ethz.ch>
2016-06-23 09:08:35 +02:00
Roman
6f6ae78cf2 ekf_att_pos_estimator: added logic for airspeed modes
Signed-off-by: Roman <bapstr@ethz.ch>
2016-06-23 09:08:35 +02:00
tumbili
c1ba7ab62b vtol attitude control: fixed code style
Signed-off-by: tumbili <roman@px4.io>
2016-06-23 09:08:35 +02:00
sander
bbf852787e Rename param to throttle 2016-06-23 09:08:35 +02:00
sander
3002852bfa Allow throttle updates below 10% 2016-06-23 09:08:35 +02:00
sander
f2e425b75b commenting 2016-06-23 09:08:35 +02:00
sander
9d59ba125d remove debug info 2016-06-23 09:08:35 +02:00
sander
37531c018a Implement MAV_CMD_DO_CHANGE_SPEED throttle 2016-06-23 09:08:35 +02:00
Roman
7f8c183d99 added airspeed mode enum to control state topic
Signed-off-by: Roman <bapstr@ethz.ch>
2016-06-23 09:08:35 +02:00
Roman
22db94e352 removed debug printf
Signed-off-by: Roman <bapstr@ethz.ch>
2016-06-23 09:08:35 +02:00
sander
cea2350d2e Time based front transition blending 2016-06-23 09:08:35 +02:00
sander
b54982965b Allow VTOL transition based on time 2016-06-23 09:08:35 +02:00
tumbili
1bce38bd9b code style formatting 2016-06-23 09:08:35 +02:00
tumbili
c2da51ccf5 use airspeed mode parameter to decide which method used to publish
control state airspeed
2016-06-23 09:08:34 +02:00
tumbili
099becb353 added parameter for airspeed mode selection
this will enable small planes flying without an
airspeed sensor
2016-06-23 09:08:34 +02:00
Daniel Agar
e0a214da20 travis-ci OSX don't use homebrew (#4875)
* the OSX builds were spending the majority of the time just updating homebrew and installing a couple packages
2016-06-23 01:22:47 -04:00
Daniel Agar
3194153b21 travis-ci homebrew cleanup (#4874) 2016-06-22 21:55:12 -04:00
Daniel Agar
b247dac120 travis-ci optimizations (#4870)
* move gcc 4.9 build to circleci

* travis-ci update to xcode 7.3

* travis-ci limit git fetching for OSX

* Makefile split firmware targets for CI

* OSX ccache
2016-06-22 17:42:49 -04:00
Lorenz Meier
56ddd29f1a Commander: Update params on last step of mag cal 2016-06-22 16:03:01 +02:00
Beat Küng
e7f31393bc orb: reduce size of SubscriberData struct (#4771)
- priority field uses only the lower 8 bits, so we can merge with the
  update_reported flag
- orb_set_interval is not used often, so make the necessary data an
  optional pointer and alloc only when needed.

Memory savings:
- pixracer (w. ekf2): 7.3kB
- pixhawk: 5.3kB
2016-06-22 15:28:23 +02:00
Julian Oes
dfa2ec8c6c DriverFramework: updated submodule (#4867)
This brings some makefile and script fixes, as well as an updated dspal.
2016-06-22 15:19:29 +02:00
Roman Bapst
37108870e1 fw_pos_control_l1: added roll setpoint for logging (#4869)
in altitude control mode for fixed wings the roll setpoint was not
logged because the position controller publishes the attitude setpoint
but the desired roll setpoint is calculated in the attitude control
module. Now the position controller calculates the roll setpoint as well
for the sake of logging.

Signed-off-by: tumbili <roman@px4.io>
2016-06-22 15:19:11 +02:00
Daniel Agar
36103d33d2 travis-ci only build qgc firmware 2016-06-22 13:51:39 +02:00
Daniel Agar
3f3a44fec5 cmake status message if MEMORY_DEBUG enabled 2016-06-22 13:51:39 +02:00
Daniel Agar
924fb49bf5 fw_pos_control_l1 shorten task name
-limited to 16 chars
2016-06-22 13:51:39 +02:00
Daniel Agar
b65291579f show bad formatting diff 2016-06-22 13:51:39 +02:00
Daniel Agar
4d0bb9f1e2 update eclipse project file templates 2016-06-22 13:51:39 +02:00
jwilson
9794bb2f2f Running fix_code_style.sh on the requested source files. 2016-06-22 08:57:06 +02:00
jwilson
acc1f04b67 Unfortunately, lot's of whitespace changes, required to satisfy unspecified code style format errors. 2016-06-22 08:57:06 +02:00
jwilson
1091319274 Removing shmem_posix.c from the unit testing since param_shmem_test is disabled. 2016-06-22 08:57:06 +02:00
jwilson
a2c16a3b5e Another attempt to fix the build problem in the shmem code. 2016-06-22 08:57:06 +02:00
jwilson
701d6314d2 Fixes build problem in the shmem code. 2016-06-22 08:57:06 +02:00
jwilson
a73ac821ab Fixes shared memory locking bug and eliminates the need for an AppsProm driver to reserve a shared memory region. 2016-06-22 08:57:06 +02:00
tumbili
6739ae9dfc ekf2: substract gyro bias from control state rates
Signed-off-by: tumbili <roman@px4.io>
2016-06-22 07:10:20 +02:00
tumbili
c84870046e updated ecl: added method to return ekf bias state
Signed-off-by: tumbili <roman@px4.io>
2016-06-22 07:10:20 +02:00
Lorenz Meier
b563fae118 Fix request data stream handling 2016-06-22 00:09:13 +02:00
Lorenz Meier
de675845af Fix navigator timeout logic 2016-06-22 00:04:31 +02:00
Lorenz Meier
2f113a4ce3 MAVLink: Allow data rate updates 2016-06-21 16:38:53 +02:00
Lorenz Meier
1869ffd15f Fix unknown command message for Spektrum bind 2016-06-21 13:36:35 +02:00
Julian Oes
91127d51c0 commander: stay in failsafe even when landed
If the failsafe state is ended when landed, we would switch back to
POSCTL and therefore take off again, however, all we want is stay on
ground and wait for the auto disarm.
2016-06-21 10:21:34 +02:00
dong.chen
5ad671ed4c Solve the problem When lost rc signal, it will rtl repeated. 2016-06-21 10:21:34 +02:00
Julian Oes
c7ec07be70 commander: properly use new param
The param COM_ARM_WO_GPS is set to 1 by default to allow arming without
GPS. This then sets a bool arm_without_gps which translates to
!GNSS_check in preflightCheck.
2016-06-21 10:21:34 +02:00
Julian Oes
f67e74935e commander: remove leftover printf 2016-06-21 10:21:34 +02:00
Julian Oes
66dd72555a navigator: change default of RC loss param to RTL 2016-06-21 10:21:34 +02:00
Julian Oes
ef04085ac5 commander: go to ALTCTL if GPS is lost in POSCTL
Previously, we renained in POSCTL and would drift away if GPS was lost.
2016-06-21 10:21:34 +02:00
Julian Oes
67a4a57491 commander: only warn if termination happens
The termination warnings were printed even if termination was not
actually enabled. This was confusing and is therefore fixed.
2016-06-21 10:21:34 +02:00
Julian Oes
872b08f677 commander: remove unneeded include 2016-06-21 10:21:34 +02:00
Julian Oes
fdff6ea325 Revert "commander: remove unused/wrong failsafe handling"
This reverts commit 9e704a5e121c7516e2133d02b328500d9d66fb67.
2016-06-21 10:21:34 +02:00
Julian Oes
d0355cef1f Revert "commander/navigator: remove param NAV_RCL_ACT"
This reverts commit 77ea4cebf41cd106fe771b9eb469aa2326339467.
2016-06-21 10:21:34 +02:00
Julian Oes
049146ef9c commander: param to allow arming without GPS 2016-06-21 10:21:34 +02:00
Julian Oes
3e9d1388af commander: remove unused/wrong failsafe handling
The deleted code conflicts with the failsafe handling in set_nav_state.
Also, flight termination was usually disabled by circuit breaker which
means this code had no effect anyway.
2016-06-21 10:21:34 +02:00
Julian Oes
016d514d80 commander/navigator: remove param NAV_RCL_ACT
The param NAV_RCL_ACT was not implemented as described. Also, it has the
completely the wrong name. It should be a COM param and not NAV.
Therefore, remove the param and delete the partly implemented
and probably never used functionality.
2016-06-21 10:21:34 +02:00
Julian Oes
ea10c8c8a3 circuit_breaker: change default for GPS failure
We should definitely take action when GPS fails, this circuit breaker
shouldn't be engaged anymore.
2016-06-21 10:21:34 +02:00
Julian Oes
739d1cfd3f navigator: always run the loop, even without GPS
If the navigator stops when no more position updates arrive, it won't
switch to land mode when DESCEND is requested by the commander.
2016-06-21 10:21:34 +02:00
Julian Oes
fe29d99d62 commander: use the gps_failure flag
The gps_failure flag had been ignored in some navigation states.
2016-06-21 10:21:34 +02:00
Julian Oes
4d10759699 commander: use DESCEND mode and not LANDGPSFAIL
Always use the DESCEND mode and not LANDGPSFAIL because LANDGPSFAIL will
try to loiter for some time and then request termination instead of
descending gently and trying to land.
2016-06-21 10:21:34 +02:00
Henry Zhang
178f32ab41 Commander:fill missing command ack. (#4814) 2016-06-21 10:20:33 +02:00
Chris Lovett
847d9ec4f4 Fix code style using Tools/fix_code_style.sh 2016-06-21 10:10:50 +02:00
Chris Lovett
534e10c96a Implement code review feedback. Add get_id_static to MavlinkStream items. Add implementation of MAV_CMD_SET_MESSAGE_INTERVAL, MAV_CMD_GET_MESSAGE_INTERVAL. Add deprecation message to REQUEST_DATA_STREAM. 2016-06-21 10:10:50 +02:00
Chris Lovett
4ef4be2d70 MavlinkReceiver::handle_message_request_data_stream walks into deleted memory when you send the "stop" bit on a stream. It also fails to restart the stream because it deletes the stream when you send the stop command, so restart needs to use stream_list to find the stream again. 2016-06-21 10:10:50 +02:00
Lorenz Meier
3f45d008eb Fix stack main usage in motor ramp app 2016-06-21 09:43:00 +02:00
Julian Oes
8aee4432a9 px4io: set safety on before going into bootloader (#4860)
Sometimes when flashing new firmware, the IO update fails because safety
is off. In this case, we should set safety on first before putting the
IO board into bootloader mode.
2016-06-21 09:15:38 +02:00
Lorenz Meier
85245471c0 Update 3DR quad config, remove rendundant entries 2016-06-20 22:37:05 +02:00
Andreas Antener
2c29652136 fixed code style in motor_ramp 2016-06-20 20:59:43 +02:00
Andreas Antener
0581f1af52 added motor_ramp to fmu v4 2016-06-20 20:24:46 +02:00
Andreas Antener
2dc97fc680 added check for running attitude controllers, cleaned-up output 2016-06-20 20:24:46 +02:00
Andreas Antener
4e0980aeb9 fixed sine output 2016-06-20 20:24:46 +02:00
Andreas Antener
7f56961e26 removed unnecessary output texts 2016-06-20 20:24:46 +02:00
Roman
87dc996a41 added option to output sine wave 2016-06-20 20:24:46 +02:00
Andreas Antener
b3c3d6f88f fixed format error 2016-06-20 20:24:46 +02:00
Andreas Antener
7c76c7c25a added warning, set hold time to 1 sec 2016-06-20 20:24:46 +02:00
Andreas Antener
a7834693e8 updated usage, increased prio and lowered max hold time 2016-06-20 20:24:46 +02:00
Andreas Antener
d8cdb2032c constantly set outputs for ramp, otherwise the ESC doesn't keep it's setting (why?) 2016-06-20 20:24:46 +02:00
Andreas Antener
ede032c557 ouput pwm values directly 2016-06-20 20:24:45 +02:00
Andreas Antener
fabb37975d added motor_ramp to v2 config 2016-06-20 20:24:45 +02:00
Andreas Antener
0b930a36b9 added parameters to motor_ramp 2016-06-20 20:24:45 +02:00
Andreas Antener
1aeb139157 added motor ramp app, draft impl 2016-06-20 20:24:45 +02:00
Andreas Antener
d1b27ab056 moved params NAV_OBL to COM_OBL 2016-06-20 19:23:11 +02:00
Andreas Antener
8727295f8e fix OBL parameters in commander 2016-06-20 19:03:10 +02:00
Andreas Antener
d3d9f013f4 set OBL parameters for iris 2016-06-20 19:03:10 +02:00
Andreas Antener
095997ca59 changed order of arguments for readability 2016-06-20 19:03:10 +02:00
Andreas Antener
fedb9de6ef fixed offboard loss timing handling 2016-06-20 19:03:09 +02:00
Andreas Antener
ced8376268 added offboard lost actions with additional timeout 2016-06-20 19:03:09 +02:00
Daniel Agar
e42b5804a0 travis-ci only run make check within docker (#4854)
* otherwise the build environment doesn't get the proper return code
2016-06-20 10:03:37 -04:00
Julian Oes
d92496a7f7 df_ms5607_wrapper: astyle (#4853) 2016-06-20 15:29:30 +02:00
Michael Schaeuble
f95f37cb7b Update to DF commit with the MS5607 driver 2016-06-20 12:55:01 +02:00
Michael Schaeuble
83ec092b46 Update bebop configuration and use parameters 2016-06-20 12:55:01 +02:00
Michael Schaeuble
cc0d28e59b Update DF to include the MS5607 driver 2016-06-20 12:55:01 +02:00
Michael Schaeuble
0d9c031a2c Check for bebop ip as environment variable 2016-06-20 12:55:01 +02:00
Michael Schaeuble
847562f5d7 Don't build px4_simple_app anymore 2016-06-20 12:55:01 +02:00
Michael Schaeuble
47613fefa0 Don't advertise garbage, apply same fix from #4735 2016-06-20 12:55:01 +02:00
Michael Schaeuble
52d8723d55 Add df_ms5607_wrapper (a renamed copy from BMP280) 2016-06-20 12:55:01 +02:00
Michael Schaeuble
696a378120 Add modules and commands to bebop build 2016-06-20 12:55:01 +02:00
Michael Schaeuble
9933494d53 Add parrot bebop build structure 2016-06-20 12:55:01 +02:00
Lorenz Meier
b2cfe05881 Adjust Typhoon H480 gains 2016-06-20 12:54:22 +02:00
Julian Oes
146c8ddbc3 px4_getopt: astyle 2016-06-20 09:37:43 +02:00
Lorenz Meier
97f6ad4e53 Even better Gazebo models 2016-06-18 19:28:48 +02:00
Lorenz Meier
a812224103 Update standard VTOL 2016-06-18 18:18:00 +02:00
Lorenz Meier
95430180f0 Update gazebo 2016-06-18 17:37:24 +02:00
Lorenz Meier
c647b6db4d Update gains 2016-06-18 17:36:48 +02:00
Lorenz Meier
d860bdcdc0 Update VTOL gains 2016-06-18 17:03:49 +02:00
Lorenz Meier
229208610e Fix simulator code style 2016-06-18 17:03:11 +02:00
Lorenz Meier
e7d02f6272 Update VTOL gains 2016-06-18 16:59:46 +02:00
Lorenz Meier
3ef6ee056f Sync rate control gains 2016-06-18 16:58:04 +02:00
Lorenz Meier
3c9f5694e7 Fix Gazebo models for VTOL and planes 2016-06-18 16:38:49 +02:00
Lorenz Meier
03813cc46b Update fixed VTOL model 2016-06-18 16:29:39 +02:00
Lorenz Meier
afdc8cdf55 VTOL: Use standard attitude gains 2016-06-18 16:29:28 +02:00
Lorenz Meier
2242331f08 Update SITL Gazebo 2016-06-18 15:34:37 +02:00
Lorenz Meier
eabb504445 Compress Iris Gazebo model 2016-06-18 13:16:05 +02:00
Lorenz Meier
7b109bacf2 Update Gazebo models 2016-06-18 12:08:45 +02:00
Lorenz Meier
fd768fe5ac Update models 2016-06-18 10:41:35 +02:00
Lorenz Meier
5d18ea7502 Update models 2016-06-18 10:40:34 +02:00
Lorenz Meier
51df9771b3 Add support for more than 8 outputs, but do not enable it yet 2016-06-18 01:54:31 +02:00
Lorenz Meier
85e3073f14 Simulator: Send all actuator output groups 2016-06-18 01:50:42 +02:00
Lorenz Meier
c285e231b7 Update jMAVSim 2016-06-17 22:44:42 +02:00
Lorenz Meier
9230688f54 Commander: Add transition command 2016-06-17 22:44:42 +02:00
Lorenz Meier
e8274d3ddb SITL: Add gimbal meshes 2016-06-17 22:44:42 +02:00
Lorenz Meier
e6b82898fb Add airframe model 2016-06-17 22:44:42 +02:00
Lorenz Meier
0126e49841 Solo: Use the right mixer 2016-06-17 22:44:42 +02:00
Lorenz Meier
dff50072e9 Add new airframe meta files 2016-06-17 22:44:42 +02:00
Lorenz Meier
55267b9ad3 Add new airframe 2016-06-17 22:44:42 +02:00
Lorenz Meier
825ba912c3 Update plane mixer 2016-06-17 22:44:42 +02:00
Lorenz Meier
3770bfd641 Update Gazebo model for plane 2016-06-17 22:44:42 +02:00
Lorenz Meier
d50e307243 Update Tailsitter model 2016-06-17 22:44:42 +02:00
Lorenz Meier
c248adb18d Fix tuning gains for Solo and tailsitter 2016-06-17 22:44:42 +02:00
Lorenz Meier
96387ed824 Update SITL gazebo 2016-06-17 22:44:42 +02:00
Lorenz Meier
acd7c37057 Get closer to correct tailsitter mixer, still incomplete 2016-06-17 22:44:42 +02:00
Lorenz Meier
413233341e Update SITL Gazebo model 2016-06-17 22:44:42 +02:00
Lorenz Meier
afa9467dad Final plane mixer 2016-06-17 22:44:42 +02:00
Lorenz Meier
982c25b7da Update SITL Gazebo with new consistent interface 2016-06-17 22:44:42 +02:00
Lorenz Meier
184da9e743 Remove null mixers from plane now that we are doing it correctly 2016-06-17 22:44:42 +02:00
Lorenz Meier
f11d42aab3 Simulator MAVLink: Forward port cleanly 2016-06-17 22:44:42 +02:00
Andreas Bircher
46ec1e6b95 fixing cherry-picking divergences 2016-06-17 22:39:02 +02:00
Andreas Bircher
6bd17c7ba4 adding user info 2016-06-17 22:39:02 +02:00
Andreas Bircher
e951a356fe fixing the driver interface
Conflicts:
	PX4/src/drivers/camera_trigger/interfaces/src/pwm.cpp
	PX4/src/drivers/camera_trigger/interfaces/src/pwm.h
2016-06-17 22:39:02 +02:00
Andreas Bircher
f038b16734 adding arming check before setting PWM 2016-06-17 22:39:02 +02:00
Kelly Steich
eed968979f added parameter for choosing the camera interface mode
Conflicts:
	PX4/src/drivers/camera_trigger/camera_trigger.cpp
2016-06-17 22:39:02 +02:00
Andreas Bircher
c49a2da261 adding arming check before setting PWM 2016-06-17 22:39:02 +02:00
Kelly Steich
2ec1e508d2 added setup method to constructor of camera interfaces
Conflicts:
	PX4/src/drivers/camera_trigger/interfaces/src/pwm.cpp
2016-06-17 22:39:02 +02:00
Andreas Bircher
adffb85962 adding arming check before setting PWM 2016-06-17 22:39:02 +02:00
Kelly Steich
4c5f32ab16 delete the camera interface object in camera trigger destructor 2016-06-17 22:39:02 +02:00
Andreas Bircher
f83c53c274 adding the initial pwm trigger logic 2016-06-17 22:39:02 +02:00
Kelly Steich
3671bfb743 added the camera interface info method to the camera trigger info method 2016-06-17 22:39:02 +02:00
Kelly Steich
29f31ae6ac fixed the triggering function logic
Conflicts:
	PX4/src/drivers/camera_trigger/camera_trigger.cpp
	PX4/src/drivers/camera_trigger/interfaces/src/camera_interface.h
	PX4/src/drivers/camera_trigger/interfaces/src/pwm.cpp
	PX4/src/drivers/camera_trigger/interfaces/src/pwm.h
	PX4/src/drivers/camera_trigger/interfaces/src/relay.cpp
	PX4/src/drivers/camera_trigger/interfaces/src/relay.h
2016-06-17 22:39:02 +02:00
Kelly Steich
b31c346ea7 new file structure for the camera_trigger driver
Conflicts:
	PX4/cmake/configs/nuttx_px4fmu-v2_default.cmake
2016-06-17 22:39:02 +02:00
Julian Oes
1dec6e83c6 ecl: update submodule (#4839) 2016-06-17 21:16:54 +02:00
Eric Ye
c446304751 Update makefile to ask for cmake 3.4.3 (#4831) 2016-06-17 10:47:06 -04:00
Daniel Agar
bada390dde fw_pos_control_l1 fix FW_LND_FLALT usage (#4835)
-fixes #4745
2016-06-16 21:02:28 +02:00
David Sidrane
538d9ada25 Needed to avoid name collsion in upcomming Nuttx logger changes (#4830) 2016-06-15 21:51:53 +02:00
Daniel Agar
e2801d35e4 fix comment spelling 2016-06-15 20:35:16 +02:00
Daniel Agar
64d9b8eefd fix COM_FLTMODE5 metadata typo 2016-06-15 20:35:16 +02:00
Daniel Agar
4ab8ddec53 rename cb_usb -> circuit_breaker_engaged_usb_check 2016-06-15 20:35:16 +02:00
Daniel Agar
c22a9137dd commander cleanup headers 2016-06-15 20:35:16 +02:00
Daniel Agar
7bbfa5d94b cleanup px4_custom_mode 2016-06-15 20:35:16 +02:00
Daniel Agar
d16daf5ba4 pwm_out_sim sleep if no fds (#4829)
-fixes #4828
2016-06-15 20:29:19 +02:00
James Goppert
2a26611cf5 Make LPE sonar reading more robust. (#4806) 2016-06-15 12:37:52 -04:00
Julian Oes
a76eab367c DriverFramework: update submodule
This brings various PRs in:
- RPi build fixes
- unit tests on CI and on Mac
- some cmake cleanup
- CI style check for DF
2016-06-15 13:36:30 +01:00
Julian Oes
d9d5d9d9e4 mc_pos_control: run the loop without position data
By running the loop in mc_pos_control without successfully polling on
position data, we still copy the manual input over so that
mc_att_control can consume it. This allows to fly in manual mode without
GPS and no position estimate.
2016-06-15 13:34:27 +01:00
Beat Küng
26b7ac3884 mavlink: remove an UDP remote port warning, print remote port in mode info 2016-06-15 09:56:34 +02:00
Beat Küng
574a67b93d fix px4_getopt: ensure progress in case of unknown options
Previously sdlog2 got stuck in an endless loop if an unknown argument was
given
2016-06-15 09:55:25 +02:00
Beat Küng
2b85c594b3 fix px4_getopt: correctly handle options that take an argument, but no argument is given
This lead to a segfault, for example 'logger start -r'
2016-06-15 09:53:37 +02:00
CarlOlsson
d66af65a92 ekf2: fixed airspeed thr bug 2016-06-14 10:28:40 +02:00
Lorenz Meier
b731a9e96c Fix AR Drone scaling param 2016-06-14 08:42:12 +02:00
Daniel Agar
2eac57731c travis-ci fix missing semicolon (#4812) 2016-06-14 02:18:22 -04:00
Daniel Agar
f13b75a6d2 travis-ci fix s3 deploy conditions (#4810) 2016-06-14 01:56:42 -04:00
Daniel Agar
2f5357be7a travis-ci use px4io docker images (#4696) 2016-06-14 01:06:43 -04:00
Daniel Agar
6f7e978f33 initial circle-ci configuration (#4807) 2016-06-13 17:39:30 -04:00
Lorenz Meier
4cca4ea954 Add DOI 2016-06-12 11:53:55 +02:00
Lorenz Meier
8a5e2a3085 Updated IRIS params 2016-06-12 09:29:14 +02:00
Lorenz Meier
8ecada3f81 Sensors: Allow more headroom for stack 2016-06-10 21:28:05 +02:00
Lorenz Meier
a19a6be05e Update jMAVSim 2016-06-10 21:27:08 +02:00
Daniel Agar
e322359b27 get_mavlink_mode_state remove unused pos_sp_triplet (#4613) 2016-06-10 10:33:56 -04:00
Julian Oes
da0813b842 Snapdragon: make RC calibration easier
20 Hz of RC_CHANNELS makes the RC calibration in QGC a more pleasant
thing.
2016-06-10 11:20:22 +01:00
Beat Küng
3bfedfff19 logger: printf cleanup, output statistics when stopping the logger 2016-06-10 08:51:54 +02:00
Mark Whitehorn
0bf7c39356 remove extraneous topic list file 2016-06-10 08:51:54 +02:00
Mark Whitehorn
f129b86d1b reduce logbuffer size to 12K due to lack of RAM 2016-06-10 08:51:54 +02:00
Mark Whitehorn
0ca63fa379 move default topics into logger.cpp; add on/off command
look for alternate topic list at
/fs/microsd/etc/logging/logger_topics.txt
on and off commands have the same effect as arm/disarm
2016-06-10 08:51:54 +02:00
Mark Whitehorn
2bd15f1698 fix string handling issues and simplify parser 2016-06-10 08:51:54 +02:00
Mark Whitehorn
f250911776 read topics to log from a text file 2016-06-10 08:51:54 +02:00
Julian Oes
f4f0892b25 sdlog2: no new sessXXX folder on every arm (#4775)
Previously, if no time was set, sdlog2 created a folder like sess001,
sess002 for every logfile. The logfiles would then always be named
log001.px4log and their numbering would not actually increase.

This is now fixed and a new folder is only created per boot.
2016-06-10 08:48:37 +02:00
Mark Whitehorn
0a27d14f6c robustify S.port and D telemetry detection (#4731) 2016-06-09 23:33:57 +02:00
Stephen Street
039d5528dd Change prefix construction to allow correct building of scope tag in parameters.xml when building out-of-tree (#4781)
Fixes issue #4767
2016-06-09 15:08:57 -04:00
Beat Küng
29eac9b7cb px4_log.c: fix code style 2016-06-09 15:25:11 +02:00
Beat Küng
513900fb16 printf log: colorize output under POSIX & tty output according to the log level 2016-06-09 15:25:11 +02:00
Beat Küng
03f7ee9b12 posix shell: do not complaining about non-existing command muorb on SITL exit
Namely the following output after Ctrl-C:
Invalid command: muorb
type 'help' for a list of commands
2016-06-09 15:25:11 +02:00
Beat Küng
1b5edcabec posix shell: avoid printing non-printable characters (like Ctrl-C) 2016-06-09 15:25:11 +02:00
Beat Küng
5b811facab posix console/scripts: treat lines starting with # as comment 2016-06-09 15:25:11 +02:00
Beat Küng
a7c7a46be8 posix console: output newline before process_line
Before the output looked like this:
pxh> logger statusINFO  [logger]   Running
INFO  [logger]   Wrote 0.13 MiB (avg  0.72 KiB/s)
INFO  [logger]   Since last status: dropouts: 0 (max len: 0.000 s), max used buffer: 7176 / 12288 B
2016-06-09 15:25:11 +02:00
Beat Küng
fcab80bfee getprogname: rename to px4_get_taskname 2016-06-09 15:22:29 +02:00
Beat Küng
9f5adb2356 getprogname: re-enable on NuttX & move to px4_tasks.h 2016-06-09 15:22:29 +02:00
tumbili
b9e9f62bee code style formatting 2016-06-08 17:14:33 +02:00
CarlOlsson
acea2f98d5 log airspeed in rpl mode even if it is not fused 2016-06-08 17:12:05 +02:00
CarlOlsson
9c170f7fae added parameter which defines threshold for airspeed given to the filter
remove unnecessary replay fields
2016-06-08 17:11:10 +02:00
Julian Oes
847cf684db Revert "sitl_gazebo: update submodule"
This reverts commit a9a0759d91209c8a8839feba62e58a90c3e00e6e.
2016-06-08 12:38:50 +02:00
Julian Oes
a9a0759d91 sitl_gazebo: update submodule
This only removes one printfs, nothing fancy.
2016-06-08 10:55:56 +02:00
Miguel Arroyo
58f6835b19 Fixes Function signature MPU9250 2016-06-07 16:49:27 -04:00
Andreas Antener
98eeb25e45 produce 0 voltage/current if no suitable default could be set 2016-06-07 22:27:08 +02:00
Lorenz Meier
e1805dfe0c Sensors app: Use two parameters to convert battery current and voltage to make configuring custom frames easier 2016-06-07 22:27:08 +02:00
Julian Oes
3b5feafef4 err: add missing include for exit 2016-06-07 22:10:56 +02:00
Julian Oes
04083cff3d err: we need to use exit on NuttX
px4_task_exit doesn't seem to be available for NuttX, so it had no
effect and broke the init because the return values of the tasks were
wrong.
2016-06-07 22:10:56 +02:00
Julian Oes
a548b5bd5e tonealrmsim: better output of tone_alarm in SITL 2016-06-07 22:10:56 +02:00
Julian Oes
5e4e896dad tone_alrmsim: add missing string for home set tone 2016-06-07 22:10:56 +02:00
Julian Oes
69bb602291 gyrosim: be less verbose 2016-06-07 22:10:56 +02:00
Julian Oes
01f6d713b4 pwm_out_sim: use PX4_INFO 2016-06-07 22:10:56 +02:00
Julian Oes
f24ca14122 param: whitespace 2016-06-07 22:10:56 +02:00
Julian Oes
5f3332e429 ver: less verbose on startup 2016-06-07 22:10:56 +02:00
Julian Oes
0acf0b3c69 param: be less verbose on startup 2016-06-07 22:10:56 +02:00
Julian Oes
8d491077ce adc: removed unneeded printf 2016-06-07 22:10:56 +02:00
Julian Oes
4a6b845ef6 px4io: nicer printf 2016-06-07 22:10:56 +02:00
Julian Oes
c87f9a1f8a init: make echo consistent with printfs 2016-06-07 22:10:56 +02:00
Julian Oes
b24eded7a0 cmake: use module name if no main is available 2016-06-07 22:10:56 +02:00
Julian Oes
be4819e8b1 ecl: update submodule
This moves printfs to PX4_INFOs.
2016-06-07 22:10:56 +02:00
Julian Oes
de4ae58019 px4_log: get the printf of fmt/args right 2016-06-07 22:10:56 +02:00
Julian Oes
c916ee7357 err: astyle prefers it different 2016-06-07 22:10:56 +02:00
Julian Oes
6898e2dcf4 commander: don't shout please 2016-06-07 22:10:56 +02:00
Julian Oes
a6fd718530 px4_log: use proper ROS printfs 2016-06-07 22:10:56 +02:00
Julian Oes
f68a6eb42c err/px4_log: switch everything to static function
Instead of having separate log functions for NuttX and POSIX, this now
switches everything to px4_log.h and PX4_INFO/WARN/ERR/DEBUG.

Also, the call mostly used is now a static inline function instead of a
macro which lead to a big increase in flash size for STM32.
2016-06-07 22:10:56 +02:00
Julian Oes
49930d64ad romfs_pruner: delete hidden files, remove tabs
If a text editor creates hidden save files, those will get copied into
the ROMFS. This is now fixed by deleting hidden files.

Also, the there was some available potential by removing the leading
whitespace.
2016-06-07 22:10:56 +02:00
Julian Oes
cdd45a7b2d cmake: add define for module name 2016-06-07 22:10:56 +02:00
Julian Oes
750b40f962 pwm_out_sim: don't complain without waiting 2016-06-07 22:10:56 +02:00
Julian Oes
a6e46a7e6f commander: whitespace 2016-06-07 22:10:56 +02:00
Julian Oes
953984dd48 QURT px4_layer: getpid can shut up 2016-06-07 22:10:56 +02:00
Julian Oes
a2865cd5c1 QURT px4_layer: removed debug printfs 2016-06-07 22:10:56 +02:00
Julian Oes
8e47f612fd QURT main: more precise printfs 2016-06-07 22:10:56 +02:00
Julian Oes
7a29cf0f13 QURT main: less debug printfs 2016-06-07 22:10:56 +02:00
Julian Oes
4cb073a48b POSIX main: get the newlines right 2016-06-07 22:10:56 +02:00
Julian Oes
a381c6cea5 df_mpu9250_wrapper: removed a debug printf 2016-06-07 22:10:56 +02:00
Julian Oes
6b1bcef644 uORBManager: removed printfs 2016-06-07 22:10:56 +02:00
Julian Oes
11cc17b63a param_shmem: be less verbose 2016-06-07 22:10:56 +02:00
Julian Oes
a88c3c2dbe commander: printf fine tuning 2016-06-07 22:10:56 +02:00
Julian Oes
5b4f016357 qshell: swap INFO and DEBUG 2016-06-07 22:10:56 +02:00
Julian Oes
9186a95b00 pwm_out_rc_in: say a tiny bit less 2016-06-07 22:10:56 +02:00
Julian Oes
51defb9de2 px4.config: remove unneeded commands 2016-06-07 22:10:56 +02:00
Julian Oes
9079b54001 POSIX: be less verbose on startup 2016-06-07 22:10:56 +02:00
Julian Oes
9c9f22fd40 main: don't add a newline after every line 2016-06-07 22:10:56 +02:00
Julian Oes
93ada40bf9 param_shmem: removed a printf 2016-06-07 22:10:56 +02:00
Julian Oes
4827f0d931 sdlog2: removed a printf 2016-06-07 22:10:56 +02:00
Julian Oes
f8020a4063 muorb: removed printf 2016-06-07 22:10:56 +02:00
Julian Oes
c95c13985c mavlink: better printf 2016-06-07 22:10:56 +02:00
Julian Oes
00bffeaf72 mavlink: whitespace only 2016-06-07 22:10:56 +02:00
Julian Oes
1dea9433b7 mavlink: don't complain if there is no mission 2016-06-07 22:10:56 +02:00
Julian Oes
67b2f68abd mavlink: improved, updated usage 2016-06-07 22:10:56 +02:00
Julian Oes
ec5b2adfc0 mavlink: don't try broadcast 0, and less printfs
This removes a bunch of unneeded printfs and prevents broadcasting
packets of size 0 which just trigger a warning.
2016-06-07 22:10:56 +02:00
Julian Oes
a39124a10d dataman: make it less chatty
- Removed a couple of unneeded printfs.
- On POSIX it shouldn't warn if it's not a multiple of the
  block size.
2016-06-07 22:10:56 +02:00
Lorenz Meier
7a6ff4742d Add Solo sim model (#4761) 2016-06-07 21:25:35 +02:00
Roman
ff58d31348 fixed code style 2016-06-07 20:00:41 +02:00
tumbili
cd574c523b fixed whitespaces 2016-06-07 19:52:25 +02:00
sander
cdf9864428 QuadChute moved to VtolType 2016-06-07 19:52:25 +02:00
sander
2d61eddebf Remove debug info 2016-06-07 19:52:25 +02:00
sander
832e1003c2 Base QuadChute on local_pos.z and only when armed 2016-06-07 19:52:25 +02:00
sander
bb0b7f2632 Sanitize mavlink message 2016-06-07 19:52:25 +02:00
sander
7cea813d55 Sanity check and quadchute during front transition 2016-06-07 19:52:25 +02:00
sander
ec15130a80 Minimum altitude for FW flight in standard VTOL 2016-06-07 19:52:25 +02:00
Lorenz Meier
3f027023cf Update Solo model 2016-06-07 19:30:07 +02:00
Lorenz Meier
fb7f0747ca Update sitl_gazebo with Solo model 2016-06-07 15:20:00 +02:00
Andreas Antener
9ec9210a08 fixed code style in standard.cpp 2016-06-07 14:05:19 +02:00
Roman
ac9a81c0c7 standard vtol pusher fix:
- pusher code now works with the new manual setpoint generation
2016-06-07 14:05:19 +02:00
Julian Oes
354b31e1b1 DF driver wrappers: astyle 2016-06-07 14:04:11 +02:00
Julian Oes
44207a3a5c df_trone_wrapper: don't advertise garbage 2016-06-07 14:04:11 +02:00
Julian Oes
40d6a4e5fc df_isl29501_wrapper: don't advertise garbage 2016-06-07 14:04:11 +02:00
Julian Oes
7c57696752 df_bmp280_wrapper: don't advertise garbage 2016-06-07 14:04:11 +02:00
Julian Oes
f56e951f00 land_detector: don't estimate freefall on 0 data 2016-06-07 12:34:54 +02:00
Julian Oes
b2719cf439 land_detector: publish when there is proper data
Instead of publishing before even having done update(), let's wait for a
result and then advertise.
2016-06-07 12:34:54 +02:00
Julian Oes
ba7d35d9d0 commander: fix convoluted auto disarm 2016-06-07 12:34:54 +02:00
Julian Oes
294c05d607 DriverFramework: update to latest master 2016-06-07 12:33:28 +02:00
Julian Oes
224b20b3e4 cmake_hexagon: updated submodule (#4756)
This contains the latest fixes for the SDK 3.0.
2016-06-07 11:19:44 +02:00
Beat Küng
d9267a4db5 pwm_out_sim.cpp: fix initialization of _control_subs
Note: {-1} initializes only the first element, and sets the others to 0.
2016-06-07 10:49:07 +02:00
Beat Küng
1be3c0fe48 mavlink_main.cpp: fix race conditions in 'mavlink stop-all'
This had multiple issues:
- linked list was modified while other instances were still running and
  accessing it (the used linked list is NOT thread-safe).
- Mavlink instance was deleted, but it was still in the linked list, and
  thus could still be dereferenced by other threads
- the instance was deleted, but it was still accessed by the 'stop-all'
  calling thread

What we do now is:
- wait for all threads to exit
- then remove the instances from the linked list and delete them
2016-06-07 10:05:59 +02:00
Beat Küng
1f55e23827 fix resource leak in mavlink_main.cpp: close the socket 2016-06-07 10:05:59 +02:00
Beat Küng
d8fbd8a6f6 fix MavlinkOrbSubscription: use orb_unsubscribe instead of close() 2016-06-07 10:05:59 +02:00
Beat Küng
0eb22823a6 fix resource leak in MavlinkParametersManager: call orb_unsubscribe 2016-06-07 10:05:59 +02:00
Beat Küng
d0ffb1acb8 fix resource leak in MavlinkReceiver: call orb_unsubscribe 2016-06-07 10:05:58 +02:00
Beat Küng
dc3bd31e59 pwm_out_sim: fix orb handle == 0 is valid & use orb_unsubscribe instead of px4_close 2016-06-07 10:05:58 +02:00
James Goppert
9fedda43c6 Revert "Changed baro init count for LPE."
This reverts commit cefc00af39dccfe8ff3ec2155a271ec93ff57661.
2016-06-06 20:02:45 -05:00
James Goppert
cefc00af39 Changed baro init count for LPE. 2016-06-06 19:53:29 -05:00
James Goppert
97e6a57501 Add more GPS checks for LPE (#4750)
* Added more GPS checks for LPE.

* Add logic to force GPS alt init.
2016-06-06 19:40:41 -05:00
Beat Küng
c64b0d4573 logger: don't use system time for log file name if system time obviously wrong 2016-06-06 23:27:16 +02:00
Beat Küng
f5310ca51e orb: avoid unnecessary string duplication of objname 2016-06-06 23:27:16 +02:00
Beat Küng
5125fc3a81 uORBDevices::SubscriberData: remove unused member poll_priv 2016-06-06 23:27:16 +02:00
Beat Küng
605f731ac4 logger: reduce maximum logged string length to 128 (use less memory) 2016-06-06 23:27:16 +02:00
Beat Küng
76d6ffd445 logger: use the defined interval for all multi-instances (& fix code style) 2016-06-06 23:27:16 +02:00
Beat Küng
e709048fb8 orb: add orb_get_interval to API 2016-06-06 23:27:16 +02:00
Beat Küng
0fb0f17ccb logger: reduce memory usage, by limiting the nr of added topics to 64 (was 128) 2016-06-06 23:27:16 +02:00
Beat Küng
78d357cb0c logger: free up ~200B stack size
we now use the already existing buffer for logging messages, which is
allocated on the heap.
In fact, stack usage was too high before this, now it's ok again.
2016-06-06 23:27:16 +02:00
Beat Küng
febe75bb12 logger: don't use uint8_t buffer[msg_size]; (it's C99 not C++)
Also, it's not clear where the allocation was. It looks like it was on
the heap, but the compiler could decide to put it on the stack. This is
very bad for us because we use fixed size stacks with tights bounds. So if
a user specifies a large topic to log, it could have crashed.

Now the allocation is on the heap and the user can specify any size of
topic to log (as long as there is enough memory).
2016-06-06 23:27:16 +02:00
Beat Küng
8ef493c82d logger: use local time if orb_copy(vehicle_gps_position) fails for -t option
orb_copy can fail if there is no advertiser yet
2016-06-06 23:27:16 +02:00
Beat Küng
b51ec04938 logger: fix alignment issue in data message header 2016-06-06 23:27:16 +02:00
Lorenz Meier
64e5e565c2 Gazebo: Fix Tailsitter model 2016-06-06 23:12:17 +02:00
James Goppert
5ec7de3a5a Make LPE est always log. (#4749)
This is a trivial change so I'm going to merge to help address edge cases in users logs.
2016-06-06 14:12:18 -05:00
Lorenz Meier
f9df60919e Update submodule again 2016-06-05 15:51:54 +02:00
Lorenz Meier
ed0aad61d2 Updated SITL gazebo, fixes #4723 2016-06-05 15:47:03 +02:00
Lorenz Meier
66db577c7d Tone down mavlink message 2016-06-05 14:37:47 +02:00
Lorenz Meier
c02214f745 Update RPI2 config 2016-06-05 12:55:14 +02:00
Lorenz Meier
93ef7ea4f6 posix-configs/eagle/hil 2016-06-05 12:54:41 +02:00
Lorenz Meier
44c222f6b7 Update Eagle flight config 2016-06-05 12:54:27 +02:00
Lorenz Meier
8a7fd9c889 Update 210qc config 2016-06-05 12:54:12 +02:00
Lorenz Meier
131a1613af Update 200qx config 2016-06-05 12:53:58 +02:00
Lorenz Meier
6b97a9ece8 Update Bebop config 2016-06-05 12:53:44 +02:00
Lorenz Meier
b0d05c19bc Update SITL config posix-configs/SITL/init/rcS_multiple_gazebo_iris 2016-06-05 12:53:32 +02:00
Lorenz Meier
6608c98192 Update SITL config posix-configs/SITL/init/rcS_lpe_jmavsim_iris 2016-06-05 12:43:04 +02:00
Lorenz Meier
53b1bbd49f UPpdate SITL config posix-configs/SITL/init/rcS_lpe_gazebo_iris_opt_flow 2016-06-05 12:42:52 +02:00
Lorenz Meier
50f4a603e8 Update SITL config posix-configs/SITL/init/rcS_lpe_gazebo_iris 2016-06-05 12:42:37 +02:00
Lorenz Meier
17e28ceeb1 Update SITL config posix-configs/SITL/init/rcS_jmavsim_iris 2016-06-05 12:42:22 +02:00
Lorenz Meier
e5ba214f34 Update SITL config posix-configs/SITL/init/rcS_gazebo_tailsitter 2016-06-05 12:42:08 +02:00
Lorenz Meier
da943b0007 Update SITL config posix-configs/SITL/init/rcS_gazebo_standard_vtol 2016-06-05 12:41:55 +02:00
Lorenz Meier
a651f3dae5 Update SITL config posix-configs/SITL/init/rcS_gazebo_plane 2016-06-05 12:41:43 +02:00
Lorenz Meier
b198638a6c Update SITL config posix-configs/SITL/init/rcS_gazebo_iris_opt_flow 2016-06-05 12:40:41 +02:00
Lorenz Meier
e19b373347 Updatee SITL config rcS_gazebo_iris 2016-06-05 12:40:25 +02:00
Lorenz Meier
ff4f27b05e MAVLink app: Add option to configure broadcast, default to off 2016-06-05 12:39:33 +02:00
CAI Dongcai
f8ff667dde pwm steps bugs fixed (#4719)
fix the divide 0 bug in using "pwm steps" in NSH, and add it's
description
2016-06-05 12:08:31 +02:00
Julian Oes
eea102f63d cmake: POSIX/RPi build don't need patch/genromfs (#4733) 2016-06-05 12:02:13 +02:00
Julian Oes
1880d1f6fd Snapdragon: start sdlog first to log everything (#4734)
In order to capture everything for replay logs, start sdlog2 at the very
beginning. Also, wait with starting the sensors for a second, to make
sure sdlog2 has started by then.
2016-06-05 12:01:38 +02:00
Kartik Mohta
5e00155e03 Update cmake/cmake_hexagon
New updates required to use the Hexagon SDK v3.0 from Qualcomm
2016-06-05 09:05:09 +02:00
bharathr
6f9665d718 Restored 210qc snapdragon config files 2016-06-04 15:12:01 +02:00
Daniel Agar
7524474c7b make distclean ignore eclipse project files 2016-06-03 16:58:35 -04:00
Daniel Agar
de5bf60b07 make submodulesclean sync recursively 2016-06-03 16:58:23 -04:00
BharathR
f06e6f0ce1 Fixed actuator controls struct in Snapdragon legacy uart_esc driver wrapper (#4724) 2016-06-03 10:22:09 +02:00
Lorenz Meier
fb1fd205bd MAVLink app needs more FDs 2016-06-02 09:27:26 +02:00
Lorenz Meier
f07a4f2f93 MAVLink app needs more FDs 2016-06-02 09:27:15 +02:00
Beat Küng
fc2d2c6ce0 gps: update drivers submodule 2016-06-02 09:26:03 +02:00
Beat Küng
b226f7d13d gps: call fsync after injecting gps data
This is to minimize delay
2016-06-02 09:26:03 +02:00
Beat Küng
d35814ed99 nuttx px4fmu-v4 config: increase CONFIG_NFILE_DESCRIPTORS to 52
necessary for mavlink receiver. It had the following output:
 mavlink_rcv_if0: node_open as advertiser failed.
2016-06-02 09:26:03 +02:00
Beat Küng
25cff52019 RTCM: use MAVLINK_MSG_ID_GPS_RTCM_DATA mavlink message (supports fragmentation) 2016-06-02 09:26:03 +02:00
Beat Küng
0e3d660ccd logger refactor: add ulog_ prefix to struct names and header length 2016-06-02 07:32:49 +02:00
Beat Küng
078e79f294 mavlink_log.c: fix coding style 2016-06-02 07:32:49 +02:00
Beat Küng
034772056a logger: prepare for replay: add replayed file to the log, use _replayed as file name suffix 2016-06-02 07:32:49 +02:00
Beat Küng
069dd01cb0 logger: subscribe to mavlink_log messages and write them to the log 2016-06-02 07:32:49 +02:00
Beat Küng
659ac8faf2 refactor logger: use static fields & move them to source file
avoids multiple declarations of...
2016-06-02 07:32:49 +02:00
Beat Küng
43d734ef43 orb: consistently use unsigned int for queue_size 2016-06-02 07:24:44 +02:00
Beat Küng
392c32d316 uORBTest_UnitTest.cpp: fix style 2016-06-02 07:24:44 +02:00
Beat Küng
79b3766544 orb: add unit tests for queuing, including tests with poll & notify interface
Both succeed under Posix & NuttX (Pixracer)
2016-06-02 07:24:44 +02:00
Beat Küng
5b1273e334 orb: add optional queuing of messages
This adds two uORB API calls:
- orb_advertise_queue
- orb_advertise_multi_queue

Both add a queue_size parameter to define a maximum number of buffered
item. The existing orb calls use all a queue size of one and thus their
behavior is unchanged. If a writer publishes too fast, the oldest elements
from the queue are silently dropped.
The returned timestamp is always the one from the latest message in the
queue.

Queue size can be set via ioctl during advertisement phase. After that it
cannot be changed anymore.
2016-06-02 07:24:44 +02:00
Lorenz Meier
bdf064fd8f Update SITL Gazebo plugin 2016-06-02 06:45:32 +02:00
Kabir Mohammed
69976caca9 param : fix shell handler instructions (#4716) 2016-06-02 06:37:19 +02:00
Mark Charlebois
ec620ecc14 Updated cmake_hexagon for SDK 2.0 support
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
Mark Charlebois
cc15785091 Updated cmake_hexagon
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
Mark Charlebois
bea416e117 Updated cmake_hexagon for support of required posix build headers
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
Mark Charlebois
30a3311fe6 Fixed qurt_eagle_travis build
Added missing stub function and added SDK 2 and 3 support.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
Mark Charlebois
02e3f28d87 Added back support for SDK 2.0 as well as 3.0
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
Mark Charlebois
6ac0eabb5a Changes required to support Hexagon SDK 3.0
The inc and lib directories were renamed to incs and libs.

This requires an updated cmake_hexagon and come changes to qurt paths in
PX4.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-06-01 23:50:28 +02:00
David Sidrane
a7946aa771 Fixed Spelling (#4713) 2016-06-01 06:35:42 -10:00
Lorenz Meier
201b5e36fa Update SITL Gazebo 2016-06-01 17:54:19 +02:00
Julian Oes
64109daff8 land_detector: fix timestamp type (#4710)
The overflow of the uint32_t lead to the land_detector start getting
aborted.
2016-06-01 17:15:27 +02:00
Lorenz Meier
f79adacc9b FMUv4: Save 3KB of RAM 2016-06-01 17:12:52 +02:00
Lorenz Meier
ae5527fac7 FMUv2: Save 3KB of RAM 2016-06-01 17:12:34 +02:00
Lorenz Meier
eb7970bee2 MindPX: Save 3KB of RAM 2016-06-01 17:12:19 +02:00
Lorenz Meier
8f4ca16bae FMUv1: Fix board config 2016-06-01 17:12:02 +02:00
Julian Oes
144b0a179a df_hmc5883_wrapper: fix wrong variable name 2016-06-01 08:39:10 +02:00
Julian Oes
3e176fa91f df_mpu9250_wrapper: usage is info 2016-06-01 08:39:10 +02:00
Julian Oes
d5a7aaa09d df_hmc5883_wrapper: rotation on driver level 2016-06-01 08:39:10 +02:00
Julian Oes
969940e98a df_mpu9250_wrapper: add rotation to internal mag 2016-06-01 08:39:10 +02:00
Kabir Mohammed
a7ae7907f7 add rotation support to mpu9250 wrapper 2016-06-01 08:39:10 +02:00
David Sidrane
69d0a78c54 Update adc.cpp 2016-06-01 08:36:58 +02:00
David Sidrane
9833ef13fb Update adc.cpp 2016-06-01 08:36:58 +02:00
David Sidrane
08f0cc1b24 Print the DMA usage in top via instrumentation interface 2016-06-01 08:35:34 +02:00
David Sidrane
b54ec99d22 Move the DMA allocation to a common code and provide an instrumentation interface 2016-06-01 08:35:34 +02:00
Lorenz Meier
28080f04b0 Update Gazebo models 2016-06-01 08:12:35 +02:00
Julian Oes
99cf6758d2 DF driver wrappers: whitespace fixes 2016-05-31 16:43:13 +02:00
Julian Oes
4e54bed051 df_mpu9250_wrapper: bool comparison without ==
I prefer this way because I think it's more readable.
2016-05-31 16:43:13 +02:00
Julian Oes
b0b7832048 DF driver wrappers: advertise with actual data 2016-05-31 16:43:13 +02:00
Julian Oes
c170657dff DriverFramework: update submodule
This brings MPU9250 mag support with the correct scaling in place.
2016-05-31 16:43:13 +02:00
Julian Oes
d030444733 posix-configs: start HMC5883 before MPU9250 in DF
We need to start the external mag before we start the internal mag on
the MPU9250 because the ekf2 does not support voting for the sensor with
the highest priority (or failures) yet, so it will just subscribe to
whatever is at 0.
2016-05-31 16:43:13 +02:00
jywilson
c6e7307ee1 Update .gitmodules 2016-05-31 16:43:13 +02:00
jwilson
a7b31e9fca Pointing internal build to ATLFlight until PX4 pull request is accepted.
Signed-off-by: jwilson <jwilson@qti.qualcomm.com>
2016-05-31 16:43:13 +02:00
jwilson
76095ebba5 Responding to PR feedback. All items resolved.
Signed-off-by: jwilson <jwilson@qti.qualcomm.com>
2016-05-31 16:43:12 +02:00
jwilson
67ea3d6ec6 Fixing function which retrievs mag calibration values.
Signed-off-by: jwilson <jwilson@qti.qualcomm.com>
2016-05-31 16:43:12 +02:00
jwilson
c6250657eb Added mag support to the DriverFramework mpu9250 driver. Shortened parameter names for legacy drivers. Added temporary ifdef's in the calibration code for Snapdragon Flight builds.
Signed-off-by: jwilson <jwilson@qti.qualcomm.com>
2016-05-31 16:43:12 +02:00
Michael Schäuble
d9422e0296 Add Parrot Bebop as build target (#4698)
* Add parrot bebop build structure

* Add upload functionality to bebop build

* Add modules and commands to bebop build
2016-05-31 13:04:22 +02:00
Roman Bapst
292b35d06d updated matrix lib: (#4631)
- better documentation in header files
2016-05-30 23:31:06 +02:00
Beat Küng
8c9b272545 mavlink udp: avoid spamming the console when disconnecting the Network or bcast addr not found (#4611) 2016-05-30 21:53:37 +02:00
Julian Oes
95a7057768 cmake: fix merge mistake 2016-05-30 15:26:02 +01:00
Kabir Mohammed
977eb2de17 Fix missing dprintf on QURT 2016-05-30 15:23:13 +01:00
Lorenz Meier
4a0d7808a5 Remove LPE config 2016-05-29 16:34:23 +02:00
Lorenz Meier
aa961c8d28 FMUv2: Allow LPE config 2016-05-29 16:28:15 +02:00
Lorenz Meier
9dd050b393 VTOL: Be more efficient 2016-05-29 16:27:50 +02:00
Lorenz Meier
0354ada5d3 Sensors: be more efficient 2016-05-29 16:27:39 +02:00
Lorenz Meier
ba9e9397aa Navigator: Be more efficient 2016-05-29 16:27:27 +02:00
Lorenz Meier
1e9fae8301 MC pos control: Be more efficient 2016-05-29 16:27:14 +02:00
Lorenz Meier
8032787faa MC att control: Be more efficient 2016-05-29 16:27:01 +02:00
Lorenz Meier
4d4f8d25c2 Logger: Be more efficient 2016-05-29 16:26:47 +02:00
Lorenz Meier
c838469db9 Load man: Be more efficient 2016-05-29 16:26:37 +02:00
Lorenz Meier
4da0ddb8cb EKF1: Safe ROM space 2016-05-29 16:26:23 +02:00
Lorenz Meier
e134a683e0 Loggers: Be more efficient 2016-05-29 16:24:36 +02:00
Lorenz Meier
aebe4db52a Q estimator: Optimize for size 2016-05-29 16:15:01 +02:00
Lorenz Meier
5198fc39e8 PWM out: Fix usage of MAVLink buffer 2016-05-29 16:14:33 +02:00
Lorenz Meier
49f9607289 Snapdragon RC pwm: Only reserve one MAVLink buffer 2016-05-29 16:14:33 +02:00
Lorenz Meier
001a2c01f0 PWM out RC in app: Only reserve one MAVLink buffer 2016-05-29 16:14:33 +02:00
Lorenz Meier
1b2043b929 MAVLink app: Allocate buffers only as they are needed 2016-05-29 16:14:33 +02:00
Lorenz Meier
fe69be05ca INAV: Move to -Os 2016-05-29 15:54:04 +02:00
Lorenz Meier
b4bed73282 Update SITL Gazebo 2016-05-29 15:19:06 +02:00
Pavel Kirienko
ef343dc452 STM32 CAN driver moved from .data to heap; partially resolves #4677 (#4681) 2016-05-29 13:54:45 +02:00
Lorenz Meier
7398164fcc Updated PX4 use / API of low level GPIO and other hardware-centric system facilities 2016-05-28 14:56:17 +02:00
Paul Riseborough
c2e2645c82 ecl: update submodule reference
Improvements and bug fixes for external vision processing and filter initialisation
2016-05-28 14:54:14 +02:00
Paul Riseborough
9e0ab5d266 ekf2: update height source parameter documentation 2016-05-28 14:54:14 +02:00
Paul Riseborough
2ce8056b8f mavlink: publish values for vision system errors
Sets zero values as a placeholder until mavlink can be updated.
2016-05-28 14:54:14 +02:00
Paul Riseborough
ac50510c78 ekf2: Use parameter defined values for EV noise if vision system estimates not available 2016-05-28 14:54:14 +02:00
Paul Riseborough
26d81418fa ekf2: Add external vision to replay 2016-05-28 14:54:14 +02:00
Paul Riseborough
37b4955f07 ekf2: Add use and logging of external vision data 2016-05-28 14:54:14 +02:00
Paul Riseborough
57c1138d28 ekf2: add parameters for control of external vision fusion 2016-05-28 14:54:14 +02:00
Paul Riseborough
2e127a4737 sdlog2: Add external vision data to ekf2 replay
Put struct definitions in enum order
Fix duplicate enum value
Add ekf2 replay message for external vision data
2016-05-28 14:54:14 +02:00
Paul Riseborough
fc4d5ddb67 msg: add error estimates to vision pose and position data 2016-05-28 14:54:14 +02:00
Paul Riseborough
e5431543d8 msg: add external vision data for ekf2 replay 2016-05-28 14:54:14 +02:00
Lorenz Meier
8bccd69e6c LPE: Params are not actually C files 2016-05-28 14:51:12 +02:00
Lorenz Meier
0d26bccbbc Controllib: Params are not actual C files 2016-05-28 14:51:12 +02:00
Lorenz Meier
a80223bc81 systemlib: Added cases for TOP for Linux and QuRT 2016-05-28 14:51:12 +02:00
Lorenz Meier
04b491c365 Exit top on read failure 2016-05-28 14:51:12 +02:00
Lorenz Meier
8f37e02c59 Darwin: Print the relative CPU load produced by each thread 2016-05-28 14:51:12 +02:00
Lorenz Meier
55c7ffbe62 Fix more Qualcomm param length issues 2016-05-28 14:36:51 +02:00
Lorenz Meier
afa3429bdb 210qc: Fix sample rate 2016-05-28 14:24:55 +02:00
Lorenz Meier
aa355d86d0 200qx: Fix sample rate 2016-05-28 14:24:38 +02:00
Lorenz Meier
c19ac3425f MPU9x driver: Fix param names 2016-05-28 14:24:19 +02:00
Mark Charlebois
86e470b1c2 Fixed syle issues
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-28 14:06:14 +02:00
Mark Charlebois
af1e20a1d0 Added fc_addon uart_esc support
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-28 14:06:14 +02:00
Mark Charlebois
0b3cd3d008 Restored cmake/configs/qurt_sdflight_default.cmake
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-28 14:05:45 +02:00
Mark Charlebois
b8c22718af Added build of rc_receiver to qurt_eagle_legacy_driver_default
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-28 14:05:45 +02:00
Mark Charlebois
6f8f8279b7 Added support for fc_addon drivers
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-28 14:05:45 +02:00
Mark Charlebois
dea4c55897 Fixed incorrect variable name
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-28 14:05:27 +02:00
Mark Charlebois
7a44ee7429 Added support for external shared libraries
The FC_ADDON drivers are shared libraries that have PX4 wrappers.
The wrappers are built as modules which are static libraries and
cannot have shared library dependencies.

The shared libraries are required to resolve the symbols at runtime
and need to be linked with the libmainapp shared library.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-28 14:05:27 +02:00
Lorenz Meier
b412980f90 Enable top in SITL 2016-05-28 12:10:19 +02:00
Lorenz Meier
120ff6ea15 CPU load header cleanup 2016-05-28 12:07:28 +02:00
Paul Riseborough
2b370417e8 drivers: Correct IMU coning correction implementation
Previous did not match the matlab simulation in: https://github.com/priseborough/InertialNav/blob/master/models/imu_error_modelling.m
2016-05-28 11:47:23 +02:00
Julian Oes
9d489b9b0f Snapdragon: rename uart_esc to pwm_out_rc_in
The name uart_esc was initially taken by Qualcomm's UART ESC driver but
then got changed into the current mavlink ESC/RC helper. Since the
uart_esc is still around, we should prevent the names clashing.
2016-05-28 11:42:12 +02:00
Julian Oes
6dfb80ddd1 snapdragon_rc_pwm: fix comments 2016-05-28 11:42:12 +02:00
Julian Oes
73d70fa7e8 adb_upload: try to sync after uploading (#4669) 2016-05-28 11:35:28 +02:00
Lorenz Meier
ff5a481c34 Remove unneeded EKF2 configs 2016-05-28 11:34:08 +02:00
Lorenz Meier
c3974446bd Update Gazebo tuning gains 2016-05-28 11:31:39 +02:00
Lorenz Meier
959c9e3817 Update gazebo plugin to fix inertial sensor oscillation 2016-05-28 11:25:15 +02:00
Lorenz Meier
8b510270a9 CPU load: add missing header 2016-05-28 10:34:15 +02:00
Lorenz Meier
7a0d43586f MAVLink app: Only start transmitting when boot is complete (#4666) 2016-05-28 09:57:07 +02:00
Lorenz Meier
6fa446b465 Format fix 2016-05-28 00:10:02 +02:00
Lorenz Meier
7be5ae9b93 Version: Report in common MAVLink format 2016-05-27 23:12:51 +02:00
Lorenz Meier
0dc36d149e Sensors: Reinstate main stack 2016-05-27 23:12:07 +02:00
Lorenz Meier
24622131c9 Sensors: Reinstate boot stack 2016-05-27 23:11:51 +02:00
Jimmy Johnson
38acd15ec6 more clean up 2016-05-27 12:55:34 -07:00
Jimmy Johnson
f397d40f09 follow target updates 2016-05-27 12:55:34 -07:00
Beat Küng
26feb018d9 getprogname on posix: fix locking (mutex was not unlocked in some cases) 2016-05-27 19:33:55 +02:00
Andreas Antener
a2d78eaa50 use new build path for gazebo - sim connection 2016-05-27 18:53:33 +02:00
Andreas Antener
d34edfd435 changed mavros connection string, updated gazebo sitl build process 2016-05-27 18:53:33 +02:00
Julian Oes
45bb1786b6 Fix SITL CPU (#4657)
* accelsim: add debug output like in gyrosim

* DriverFramework: update submodule

This brings lower CPU usage because of scheduling in us instead of ms.
2016-05-27 18:52:38 +02:00
Julian Oes
224fbbc26b land_detector: fix uninitialized value (#4659) 2016-05-27 17:18:51 +02:00
Paul Riseborough
d4262bce2a EKF2 output predictor update (#4606)
* ekf2: Update tuning parameter documentation

* ecl: update submodule reference

Enables selection of a new output predictor method
2016-05-27 08:36:37 +02:00
Pavel Kirienko
c08eec0a23 Fixed stack overflow in UAVCAN process (#4643)
* Increased uavcan stack size; the old value of 1800 was insufficient

* Removed a misleading warning message from uavcan servers initialization
2016-05-26 20:00:10 +02:00
Julian Oes
a25bbdd12d DriverFramework: update submodule (#4648)
This fixes a bug where the accelsim and gyrosim were conflicting with
work handles which lead to a state where no gyro data was published.
2016-05-26 19:57:20 +02:00
Lorenz Meier
e8aae9c7ab Update DriverFramework reference to point to DF master 2016-05-26 14:05:50 +02:00
David Sidrane
acdcb14d79 In support of merging Spread the checks multiline lists (#4626)
* Insupport merging Spread the checks multiline lists

* Removed long line of checks
2016-05-25 22:24:01 +02:00
Lorenz Meier
0ad0602560 Added missing timestamp to topic listener 2016-05-25 22:21:19 +02:00
Julian Oes
af06737e7e sdlog2: fix Segfault on Eagle (#4638)
Since orb_exist doesn't work on the Snapdragon Linux side, we need to do
an additional orb_check after the orb_subscribe_multi, otherwise we copy
garbage.

The segfault was triggered by a count/length information about ESC
packets which lead to access outside the struct in the garbage case.
2016-05-25 21:50:23 +02:00
Lorenz Meier
d9718d0d98 Fix commander argc handling 2016-05-25 20:56:25 +02:00
bharathr
250aab66ed Fixed the parsing of commander arguments for non-QURT builds 2016-05-23 17:58:59 +02:00
bharathr
723b501186 Restricted the previous commit to __PX4_QURT only 2016-05-23 17:58:59 +02:00
jwilson
64c3b330ee Partial fix for Snapdragon HITL mode 2016-05-23 17:58:59 +02:00
Mark Charlebois
ea138cfd38 Updated DriverFramework with NuttX fixes
See required DriverFramework change:

   https://github.com/PX4/DriverFramework/pull/83

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-23 17:53:49 +02:00
Mark Charlebois
8845070d89 Revered changes by Daniel Agar that broke posix eagle build
The following cflags must be set for the eagle builds that compile the
generated IDL stubs:

	-Wno-missing-prototypes -Wno-missing-declarations

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-23 17:53:49 +02:00
Mark Charlebois
7c6d24d6b0 Updated DriverFramework with critical qurt fixes
Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2016-05-23 17:53:49 +02:00
Lorenz Meier
2c6a8c0ce6 MS5611: Drop readout rate to 25 Hz to alleviate self-heating. 2016-05-22 15:21:56 +02:00
Lorenz Meier
e6bfe4348c Reduce logging buffers to free some RAM 2016-05-22 15:17:44 +02:00
Lorenz Meier
c4da55e40f MAVLink app: Reduce excessive allocation 2016-05-22 15:03:22 +02:00
Lorenz Meier
655b605431 Do not force safety disable for all FMUv4 units 2016-05-22 14:55:20 +02:00
Lorenz Meier
1d3669714b EKF2 config: Do not build other estimators 2016-05-22 14:28:07 +02:00
Beat Küng
7f3a95508e logger: move SDLOG_UTC_OFFSET param definition into logger module
It's still used in sdlog2, but once we'll depricate/remove sdlog2, we will
not remove this parameter as well.
2016-05-22 13:31:35 +02:00
Beat Küng
cd7c955067 logger: -t param: fall back to px4_clock_gettime if there's no gps fix 2016-05-22 13:31:35 +02:00
Beat Küng
a9930c2173 logger: avoid logging the padding if it's at the end of a message format 2016-05-22 13:31:35 +02:00
Beat Küng
bd96afa00b logger: use int32_t for utc_offset instead of uint32_t 2016-05-22 13:31:35 +02:00
Beat Küng
623fe7ca2c logger + uorb msg template: rm msg name from o_fields to save space
Instead we use o_name to get the topic name. Now the topic names are not
upper case anymore in the log format. This makes it more consistent, eg.
if used as a nested topic
2016-05-22 13:31:35 +02:00
Beat Küng
4f8d16cc4d logger: log dropout events 2016-05-22 13:31:35 +02:00
Beat Küng
c13247e14f logger: log all known formats, add ADD_LOGGED_MSG message
this is needed for nested topics.
2016-05-22 13:31:35 +02:00
Beat Küng
2d037d1a1c logger: add an MSG_HEADER_LEN to clarify meaning 2016-05-22 13:31:35 +02:00
Beat Küng
df803fc4b9 logger: remove redundant format_len from message_format_s 2016-05-22 13:31:35 +02:00
Beat Küng
971e97745f logger: reorder message header fields (for alignment) 2016-05-22 13:31:35 +02:00
Beat Küng
0ddd7a408c logger: write "sys_name" and "time_ref_utc" info to log file 2016-05-22 13:31:35 +02:00
Beat Küng
908f7eb47f logger: remove some comments, logging output 2016-05-22 13:31:35 +02:00
Beat Küng
1719d9a957 logger: add a file magic 2016-05-22 13:31:35 +02:00
Beat Küng
5cf8081a98 uorb template: add timestamp to the format string
We explicitly include the timestamp. This makes it possible to change it's
type later on.
This breaks the current ULog logging format.
2016-05-22 13:31:35 +02:00
Andrew Tridgell
3f6f030fc4 px4iofirmware: allow override when RAW_PWM is active
if override is enabled then it should apply even if RAW_PWM is being
supplied by the FMU
2016-05-22 13:20:44 +02:00
Andrew Tridgell
f38b1bf160 px4fmu: allow for GPIO_SET_OUTPUT with initial value
this is needed to prevent inadvertent camera trigger when setting up a
port
2016-05-22 13:09:55 +02:00
Andrew Tridgell
9c1a02d673 gpio: added SET_OUTPUT ioctls 2016-05-22 13:09:55 +02:00
Andrew Tridgell
76c2c9a46d drivers: added filter control ioctls 2016-05-22 13:09:04 +02:00
Andrew Tridgell
8bc550b619 oreoled: align with ArduPilot version 2016-05-22 12:45:55 +02:00
Lorenz Meier
034bbdf988 Fix battery topic handling in SMBus battery 2016-05-22 12:44:07 +02:00
Beat Küng
a94654e8d4 gps dump communication to file: include received RTCM messages 2016-05-22 12:19:47 +02:00
Beat Küng
6b8ab4611b gps: workaround for missing stat() on QuRT 2016-05-22 12:19:47 +02:00
Beat Küng
aef78b8aeb gps: add GPS_DUMP_COMM param: if 1, dump all gps communication to a file 2016-05-22 12:19:47 +02:00
Beat Küng
47ed8c1a3c gps: fix thread initialization under posix
under NuttX the argc in task_main_trampoline contains two arguments,
but on linux only one.
2016-05-22 12:19:47 +02:00
Beat Küng
9d0c5469a0 gps: remove unneeded comment 2016-05-22 12:19:47 +02:00
Beat Küng
f600b7fb37 fix gps regression: publish satellite info 2016-05-22 12:19:47 +02:00
Beat Küng
c6f25591f7 dual gps: some cleanup, correctly use args argument of px4_task_spawn_cmd 2016-05-22 12:19:47 +02:00
Sebastian Verling
e7ed07cf3c formatting 2016-05-22 12:19:47 +02:00
Sebastian Verling
62a152227a removed debugging line 2016-05-22 12:19:47 +02:00
Sebastian Verling
49e1c99dee make sure gps1 always publishes to gps1 topic 2016-05-22 12:19:47 +02:00
Sebastian Verling
7c5d10d57c removed unnecessary pointer and comment 2016-05-22 12:19:47 +02:00
Sebastian Verling
07d1d78a43 driver starting correctly 2016-05-22 12:19:47 +02:00
Sebastian Verling
34150ba688 unadvertising gps_pub 2016-05-22 12:19:47 +02:00
Sebastian Verling
3a72e9b494 formatting 2016-05-22 12:19:47 +02:00
Sebastian Verling
c1cdef7e63 fixed multi subscribing and publishing
removed debugging message

changed to orb_publish_auto
2016-05-22 12:19:47 +02:00
Andreas Bircher
556851a511 applying dual gps patch
resolve transfer errors

reformatting

implementing multi-topics
2016-05-22 12:19:47 +02:00
Daniel Agar
5be1f3a856 ASan use normal optimization (MEMORY_DEBUG=1)
- see #4530
2016-05-22 10:27:29 +02:00
Mark Whitehorn
84761a9b8e add parameter for arm/disarm "hysteresis" 2016-05-22 10:26:00 +02:00
Mark Whitehorn
e7add076b5 typo in comment 2016-05-22 10:26:00 +02:00
Lorenz Meier
1db1a364c1 SBUS decoding: Fix channel 18 return value 2016-05-21 15:40:05 +02:00
Lorenz Meier
d8bcd77290 EKF2: Remove unused header 2016-05-21 14:10:49 +02:00
Lorenz Meier
2dad43549d Bottle drop: Fix uninitialized member 2016-05-21 14:10:31 +02:00
Lorenz Meier
47d2cb8134 LPE: Fix stack smashing 2016-05-21 14:10:12 +02:00
Lorenz Meier
490cd95cb2 EKF1: Simplify output 2016-05-21 14:09:59 +02:00
Lorenz Meier
fe60a43bba EKF1: Fix stack smashing resulting from uninitialized publication 2016-05-21 13:53:33 +02:00
Lorenz Meier
f71b68a487 Allow arming in Rattitude mode 2016-05-21 12:08:20 +02:00
Henry Zhang
1551d93a53 MindPXFMUv2 uses a new board id, different with PX4FMUv2. 2016-05-21 11:00:21 +02:00
Henry Zhang
4495eafbf4 MindPXFMUv2 add lpe/ekf2/load_mon. 2016-05-21 11:00:21 +02:00
Henry Zhang
9570d66d9d MindPXFMUv2 uses STM32F427 v3, enable 2M flash. 2016-05-21 11:00:21 +02:00
Lorenz Meier
45cc79fbf7 VTOL and fixed wing: Move parameters that belong to the navigator into its parameter definition space 2016-05-21 10:51:38 +02:00
David Sidrane
1b77ec7f82 Decouple board name 2016-05-21 10:48:15 +02:00
Daniel Agar
7badf645b3 fix missing stack check instrument_flags (#4593) 2016-05-20 21:17:54 -04:00
Lorenz Meier
4267b20c9a Fix Lama coax config 2016-05-20 10:06:04 +02:00
Lorenz Meier
3c22c1c525 Make navigator message a bit more informative 2016-05-19 22:17:41 +02:00
Mark Whitehorn
87e5499ad2 stop spamming console with timeout warnings 2016-05-19 22:16:29 +02:00
Mark Whitehorn
c626f5b001 shorten pwm init and ramp times 2016-05-19 22:14:29 +02:00
Lorenz Meier
761d02d433 Sensors: return stack handler to default stack size 2016-05-19 22:01:12 +02:00
Daniel Agar
5da9e7e653 cmake nuttx copy with rsync 2016-05-19 21:49:34 +02:00
Daniel Agar
0afcfd9fab px4fmu-v4 add lpe 2016-05-19 21:49:34 +02:00
Daniel Agar
464e2f14c1 mavlink remove clang warning/error 2016-05-19 21:49:34 +02:00
Daniel Agar
1ecdb0f6fb adjust stack sizes 2016-05-19 21:49:34 +02:00
Daniel Agar
206d5a7afc sync px4fmu-v2_default and px4fmu-v2_test 2016-05-19 21:49:34 +02:00
Daniel Agar
b0b2cfaa65 cmake nuttx stackcheck fix for current master 2016-05-19 21:49:34 +02:00
Daniel Agar
7cf8b3ea1b sync posix_sitl_default and posix_sitl_test 2016-05-19 21:49:34 +02:00
Daniel Agar
2487dbfc92 remove Wpacked and cleanup unused warning flags 2016-05-19 21:49:34 +02:00
Daniel Agar
f58596bbcd vtol_att_control astyle 2016-05-19 21:49:34 +02:00
Daniel Agar
3d1713f79e vtol remove Wno-write-strings 2016-05-19 21:49:34 +02:00
David Sidrane
4e26c7fcd4 Use the value of nuttx CONFIG_ARMV7M_STACKCHECK to configure PX4 build for HW stack checking 2016-05-19 21:49:34 +02:00
Lorenz Meier
be92040fe9 FMUv2: Do not build BMI160 2016-05-19 21:10:27 +02:00
Lorenz Meier
56e887c6c7 MAVLink app: Return result of network operation 2016-05-19 20:13:32 +02:00
Lorenz Meier
1775435ee5 v2 test config: Disable a couple unnecessary parts 2016-05-19 20:13:32 +02:00
Lorenz Meier
84800dfd87 MAVLink: Update complete app to support MAVLink 1 & MAVLink 2. Add MAV_PROTO_VER param to switch between them 2016-05-19 20:13:32 +02:00
Lorenz Meier
acb2e52389 Update headers 2016-05-19 20:13:32 +02:00
Lorenz Meier
55750a0e7c Fix GCC compile error 2016-05-19 20:13:32 +02:00
Lorenz Meier
0a597d0d62 MAVLink: Update to version 2 compaat API 2016-05-19 20:13:32 +02:00
Lorenz Meier
c6aa1b1efb Update MAVLink version 2016-05-19 20:13:32 +02:00
Lorenz Meier
6eccfe3d14 MAVLink 2.0: Take a first stab at integration, enable heartbeat packets 2016-05-19 20:13:32 +02:00
Lorenz Meier
c67907ffb2 BMP280 wrapper: Clean up floating point operations 2016-05-19 15:44:37 +02:00
Michael Schaeuble
9027ff4372 DriverFramework: update submodule reference 2016-05-19 15:41:50 +02:00
Kabir Mohammed
e185352f56 Add RPI2 definitions for DF 2016-05-19 15:41:50 +02:00
Kabir Mohammed
bcaa990220 Updated DF submodule 2016-05-19 15:41:50 +02:00
Kabir Mohammed
1bd4dca266 Fix RPI2 defines 2016-05-19 15:41:50 +02:00
Kabir Mohammed
529460d573 Fix RPi2 build system 2016-05-19 15:41:50 +02:00
Roman Bapst
02ba3317e9 WIP: Manual attitude setpoint for large heading errors (#4564)
* mc pos control: in manual mode calculate attitude setpoint
such that it reflects the users intuition of roll and pitch
for any given heading error

* added some comments on the new manual attitude setpoint generation

* make calculation shorter
2016-05-19 15:28:04 +02:00
Beat Küng
fd0f52bebd orb macros: cleanup some unused code (#4576) 2016-05-19 11:08:37 +02:00
Paul Riseborough
fee5e87d87 ecl: update submodule reference
Incorporates big fixes for use of external vision data
2016-05-19 13:04:49 +10:00
Paul Riseborough
567e10eb66 ecl: update library reference
Further updates to improve angular alignment consistency
2016-05-19 08:08:39 +10:00
Paul Riseborough
f5a1569f49 ecl: update library reference
fixes bug that can cause alignment to fail for pitch angles near +-90 deg
2016-05-18 12:44:04 +10:00
Julian Oes
6ddffb71ea SITL init: set EKF2 params for SITL
The sensors in the SITL environment are near ideal, so the
initialization in ekf2 can happen quicker.
2016-05-18 12:44:04 +10:00
Julian Oes
1e155776fd Revert "Switch from EKF2 to LPE since SITL s is not any more a bearable workflow with EKF2 init lag"
This reverts commit 503966165bf0322a521bebee505b13ec90d25ec4.
2016-05-18 12:44:04 +10:00
Paul Riseborough
83cc9ef496 ekf2: Enable tuning of initial tilt alignment uncertainty 2016-05-18 12:44:04 +10:00
Paul Riseborough
71db04c02c ecl: update submodule reference
adds ability to set initial tilt alignment uncertainty
2016-05-18 12:44:04 +10:00
Paul Riseborough
7d2d15643d ekf2: Add tuning for IMU switch-on bias errors 2016-05-18 12:44:04 +10:00
Paul Riseborough
ec991ab1a8 ecl: update submodule reference 2016-05-18 12:44:04 +10:00
Beat Küng
7f65e01d07 cmake: avoid GLOB for *.msg files and use an explicit .msg file enumeration
This makes sure that adding & removing of .msg files is handled properly
by the build system.
2016-05-17 09:08:13 +02:00
Beat Küng
f6f47e3362 cmake topic_listener: make topic_listener.cpp depend on msg_gen
This makes sure the .cpp file is regenerated on .msg file changes
2016-05-17 09:08:13 +02:00
Pavel Kirienko
a268845f1d Cleaned up UAVCAN ioctl codes 2016-05-17 08:56:02 +02:00
Jimmy Johnson
bf6dff3e99 raising follow target filter responsiveness to tested value 2016-05-16 15:12:50 -07:00
Jimmy Johnson
8e3720ca9a adding clamp for yaw smoothing 2016-05-16 15:12:50 -07:00
Jimmy Johnson
59296e0a49 adding user parameters, simplifying dynamic gps filter, adding yaw smoothing 2016-05-16 15:12:50 -07:00
Jimmy Johnson
bb79d14cb1 adding lpf based on confidence of linear movement 2016-05-16 15:12:50 -07:00
Jimmy Johnson
38b4278998 minimum follow target alt of 8 m added, protecting against nan values in pos controller, fixing ci build error 2016-05-16 15:11:57 -07:00
Jimmy Johnson
42e04d4c11 fixing travis CI build 2016-05-16 15:11:57 -07:00
Jimmy Johnson
55f023b771 adding params for offset, and side to track, fixing velocity tracking bug 2016-05-16 15:11:57 -07:00
Jimmy Johnson
f5c90a2d64 adding new follow target parameter 2016-05-16 15:11:57 -07:00
Jimmy Johnson
94f3c50f83 follow target safety updates 2016-05-16 15:11:57 -07:00
Lorenz Meier
f3ee22b22c Battery lib: Set valid flag 2016-05-15 15:38:20 +02:00
Lorenz Meier
55c879a0ab MAVLink: Use valid flag to initialize fields 2016-05-15 15:38:01 +02:00
Lorenz Meier
7633797190 Battery status: Add valid flag 2016-05-15 15:37:46 +02:00
Lorenz Meier
41b127d405 Make IO RSSI handling as robust and informative as on FMU 2016-05-15 14:32:06 +02:00
Lorenz Meier
65e079f8cd Startup: Boot system with sdlog starting sooner 2016-05-15 14:28:19 +02:00
Lorenz Meier
69f702fb6a MAVLink: Remove unused function definitions 2016-05-15 14:27:59 +02:00
Lorenz Meier
237bdfdb61 EKF: Be less verbose, avoid floating ng point printing stack smashing 2016-05-14 18:22:34 +02:00
Lorenz Meier
06fec2bce0 IO driver: Fix PWM load 2016-05-14 18:05:24 +02:00
Lorenz Meier
91142f0c20 PWM cmd: better reporting 2016-05-14 18:05:14 +02:00
Lorenz Meier
b2a223eaab Move logging to main rcS to save RAM 2016-05-14 17:21:46 +02:00
Paul Riseborough
b8b05b1b4b ecl: update submodule reference
Fixes error in calculation of observation variance used by terrain estimator.
2016-05-14 22:02:13 +10:00
CarlOlsson
ee33f21303 added airspeed to ekf2 replay 2016-05-14 11:32:11 +02:00
Beat Küng
6a07d61671 parameter source parser: validate length of parameter name (limited to 16) 2016-05-14 11:29:24 +02:00
Daniel Agar
97bcea292e logger.cpp fix style 2016-05-14 11:27:07 +02:00
Daniel Agar
c57bc26d5b fully restore px4fmu-v2_lpe 2016-05-14 11:27:07 +02:00
Daniel Agar
9c32792017 param_test link libmsg_gen 2016-05-14 11:27:07 +02:00
Beat Küng
cf667dedb8 tests: increase stack size from 8000 to 9000
clang failed with:
../src/systemcmds/tests/test_mathlib.cpp:56:5: fatal error: stack frame
size of 7400 bytes in function 'test_mathlib' [-Wframe-larger-than=]
int test_mathlib(int argc, char *argv[])
2016-05-14 11:27:07 +02:00
Beat Küng
d082060429 commander: fix wrong #ifdef header guard in state_machine_helper_test.h 2016-05-14 11:27:07 +02:00
Beat Küng
4b8152465d logger: unsubscribe from all topics when logger exits 2016-05-14 11:27:07 +02:00
Beat Küng
0f30bfa0ac logger: fix -e parameter (logger immediately stopped again after start) 2016-05-14 11:27:07 +02:00
Beat Küng
408f299dbb cmake px4fmu-v2_test: disable sdlog2 (avoids flash overflow) 2016-05-14 11:27:07 +02:00
Beat Küng
197b37fc17 fix cpuload.msg: remove timestamp (cleanup after rebase) 2016-05-14 11:27:07 +02:00
Beat Küng
fcf7e8b78c logger: -e option only logs until disarm, add -f option to log until shutdown 2016-05-14 11:27:07 +02:00
Beat Küng
fc51f81bf5 logger: add free space check (need at least 50MB to start) 2016-05-14 11:27:07 +02:00
Beat Küng
501544520f logger: change some PX4_WARN to PX4_INFO and PX4_ERR 2016-05-14 11:27:07 +02:00
Beat Küng
fe2b80ffb8 logger: add '-t' option to use GPS date/time for file and dir name 2016-05-14 11:27:07 +02:00
Beat Küng
9da2eac3d3 logger: remove unneeded start parameters (-x & -a) 2016-05-14 11:27:07 +02:00
Beat Küng
d9ced9730b logger: remove unnecessary MODULE_CFLAGS from CMakeLists.txt 2016-05-14 11:27:07 +02:00
Beat Küng
ec6c53eb60 logger: correct cleanup in case 'logger start' fails 2016-05-14 11:27:07 +02:00
Beat Küng
da1e63eaf3 logger: fix resource leaks in LogWriter 2016-05-14 11:27:07 +02:00
Julian Oes
d3a9930b50 logger: get paths working on Snapdragon 2016-05-14 11:27:07 +02:00
Beat Küng
a0beef3204 logger: output error on failed to get log file name 2016-05-14 11:27:07 +02:00
Beat Küng
693703de1e logger: initialize logger_ptr with null 2016-05-14 11:27:07 +02:00
Beat Küng
cfa491467e logger: fix 'logger stop' when nothing has been logged yet
when executing 'logger stop' and the logger did not log yet, _running was
false, so log_writer thread would never exit.
2016-05-14 11:27:07 +02:00
Beat Küng
d7f0808316 logger: create _vehicle_status_sub & _parameter_update_sub on stack
Since it's only used in run().
2016-05-14 11:27:07 +02:00
Beat Küng
4f0573d612 logger: reset _write_dropouts after status output 2016-05-14 11:27:07 +02:00
Beat Küng
6e7c605279 Tools/px_generate_uorb_topic*: combine the src & header generators into one script 2016-05-14 11:27:07 +02:00
Beat Küng
093eece29b orb message templates: move common code into px_generate_uorb_topic_helper.py
This also greatly speeds up the generators.
2016-05-14 11:27:07 +02:00
Beat Küng
797d0f24d6 reformat orb message templates 2016-05-14 11:27:07 +02:00
Beat Küng
d5dcbf01d0 logger: add copyright to files 2016-05-14 11:27:07 +02:00
Beat Küng
04f301619f refactor LogWriter: remove friend class Logger and use the public interface 2016-05-14 11:27:07 +02:00
Beat Küng
dde96dd4d7 logger: allocate _vehicle_status_sub & _parameter_update_sub on the logger thread
This makes sure the file descriptors are closed in the right thread.
Before on NuttX, when stopping the logger, orb unsubscribe failed due to
this.
2016-05-14 11:27:07 +02:00
Beat Küng
7d42a648f0 logger: make sure the buffer is at least 300B larger than _min_write_chunk
We always write larger chunks (orb messages) to the buffer, so the buffer
needs to be larger than the minimum write chunk
2016-05-14 11:27:07 +02:00
Beat Küng
9a02dbdd66 logger: extend status ouput, disable DBGPRINT for now 2016-05-14 11:27:07 +02:00
Beat Küng
4ce658ab99 logger: move _writer.lock() call after write_changed_parameters()
write_changed_parameters() also takes the lock and thus would deadlock
otherwise.
2016-05-14 11:27:07 +02:00
Daniel Agar
3de7fbb0a9 logger and uORBTest_UnitTest astyle 2016-05-14 11:27:07 +02:00
Beat Küng
1edf03767a logger: KB/s -> kB/s 2016-05-14 11:27:07 +02:00
Beat Küng
eabc43d78c orb structs: add padding bytes to align the structs where necessary
This is required for the logger, we just manually add the padding bytes
what would otherwise be done by the compiler. Additionally we reorder
the fields by type, so that padding is only necessary for nested types.
2016-05-14 11:27:07 +02:00
Beat Küng
7d4c4c0401 px_generate_uorb_topic_sources.py: add search_path to the environment 2016-05-14 11:27:07 +02:00
Daniel Agar
69c1ce1714 WIP logger serialization 2016-05-14 11:27:07 +02:00
Beat Küng
8f5cb4084d logger: use non-scientific format for status output 2016-05-14 11:27:07 +02:00
Beat Küng
4edc0d9ea9 fix logger: add forgotten unlock in Logger::write_info 2016-05-14 11:27:07 +02:00
Beat Küng
63bd2cebf9 refactor logger: add a write_wait method to avoid code duplication 2016-05-14 11:27:07 +02:00
Daniel Agar
768e5ab66f adc_report remove timestamp 2016-05-14 11:27:07 +02:00
Mark Whitehorn
c7e7026f47 remove code obsoleted by move of log buffer 2016-05-14 11:27:07 +02:00
Mark Whitehorn
4e50f271d6 use C99 print format for size_t 2016-05-14 11:27:07 +02:00
Mark Whitehorn
26596dbe15 fix infinite loop when not logging 2016-05-14 11:27:07 +02:00
Beat Küng
f40afac448 logger: fix 'Undefined symbols for architecture x86_64' on clang for _min_write_chunk 2016-05-14 11:27:07 +02:00
Beat Küng
dae12f1238 mathlib: replace math::{min,max,constrain} with template methods 2016-05-14 11:27:07 +02:00
Beat Küng
7055d3c929 fix tecs.cpp: use UINT64_C for uint64_t constant instead of UUL 2016-05-14 11:27:07 +02:00
Beat Küng
3dade23e39 logger: fix _min_write_chunk comparison and set file descriptor after closing it 2016-05-14 11:27:07 +02:00
Beat Küng
8b5a325644 logger: remove _log_buffer from Logger, initialize it in the writer instead
it's not used in the logger, so don't store it there. It is accessed via
LogWriter::write.
This also makes sure the buffer size is >= _min_write_chunk and handles
allocation failure properly.
2016-05-14 11:27:07 +02:00
Beat Küng
04f38b9197 fix Logger::add_topic: 0 is a valid file descriptor 2016-05-14 11:27:07 +02:00
Beat Küng
d0d2664efa logger: use %zu to print type size_t, use PX4_INFO instead of printf 2016-05-14 11:27:07 +02:00
Beat Küng
dd22445768 Logger::add_topic: error handling if orb_subscribe or _subscriptions.push_back fail 2016-05-14 11:27:07 +02:00
Beat Küng
e9f257c15f logger: fix wrong default buffer size in usage string 2016-05-14 11:27:07 +02:00
Beat Küng
84015e5c01 logger: proper error handling if writer thread creation fails 2016-05-14 11:27:07 +02:00
Mark Whitehorn
72263eaa97 correct msg_size offset to 3 for all records (must be same) 2016-05-14 11:27:07 +02:00
Mark Whitehorn
9dbbe8cd8d log changes to parameters 2016-05-14 11:27:07 +02:00
Mark Whitehorn
e5e523aa9e size_t is different in posix build 2016-05-14 11:27:07 +02:00
Mark Whitehorn
fb4d72df86 write git and hw version records to log 2016-05-14 11:27:07 +02:00
Mark Whitehorn
90ce04654d fix posix build 2016-05-14 11:27:07 +02:00
Mark Whitehorn
02b6d25414 non-posix NuttX feature? 2016-05-14 11:27:07 +02:00
Mark Whitehorn
89294317a1 reduce log buffer to 24K 2016-05-14 11:27:07 +02:00
Mark Whitehorn
8a77fec9c8 still need this workaround to avoid hardfault 2016-05-14 11:27:07 +02:00
Mark Whitehorn
db858a853a run astyle 2016-05-14 11:27:07 +02:00
Mark Whitehorn
1b483bcc2a correctly report failure to allocat log_buffer 2016-05-14 11:27:07 +02:00
Mark Whitehorn
f07c93651f clean up file open/close logic 2016-05-14 11:27:07 +02:00
Mark Whitehorn
56cc9bd377 my topics 2016-05-14 11:27:07 +02:00
Daniel Agar
dcdeefd5ea new logger 2016-05-14 11:27:07 +02:00
Daniel Agar
9a0e962cbf uorb autogeneration 2016-05-14 11:27:07 +02:00
Mark Whitehorn
728de5f87b clean up file open/close logic 2016-05-14 11:27:07 +02:00
Mark Whitehorn
672042e051 not enough RAM for 32K buffer: reduce to 20K 2016-05-14 11:27:07 +02:00
Daniel Agar
4e0129275d new logger 2016-05-14 11:27:07 +02:00
Daniel Agar
eb29b33620 use gcc attributes to align and pack 2016-05-14 11:27:07 +02:00
Daniel Agar
76387b1693 uorb autogeneration 2016-05-14 11:27:07 +02:00
Paul Riseborough
3aa2297497 ekf2: Add parameters to control output filter 2016-05-14 11:24:41 +02:00
Paul Riseborough
5f2c2f8392 ecl: update submodule reference 2016-05-14 11:24:41 +02:00
David Sidrane
3829871612 Removed unused NXFFS buys back 5792 bytes of FLASH 2016-05-14 11:22:52 +02:00
Julian Oes
920d2ef1e8 posix sdflight: add navigator to Linux side 2016-05-14 11:21:44 +02:00
Julian Oes
3a8d242576 dataman: get path for Snapdragon right 2016-05-14 11:21:44 +02:00
Daniel Agar
e186821692 vtol_att_control_params.c param metadata 2016-05-13 21:15:38 -04:00
Daniel Agar
b1d8c46bb2 uavcan_params.c param metadata 2016-05-13 21:15:38 -04:00
Daniel Agar
0ee801df20 system_params.c param metadata 2016-05-13 21:15:38 -04:00
Daniel Agar
119fa8ed1b sensor_params.c param metadata 2016-05-13 21:15:34 -04:00
Daniel Agar
0042c8ed12 sdlog2.c param metadata 2016-05-13 21:03:40 -04:00
Daniel Agar
e43751c219 params.c param metadata 2016-05-13 21:03:40 -04:00
Daniel Agar
e08e8fa24f position_estimator_inav_params.cpp param metadata 2016-05-13 21:03:40 -04:00
Daniel Agar
be3348d770 mission_params.c param metadata 2016-05-13 21:03:40 -04:00
Daniel Agar
439ccc99ce params.c param metadata 2016-05-13 21:03:39 -04:00
Daniel Agar
d6cf441bac mTecs_params.c param metadata 2016-05-13 21:03:39 -04:00
Daniel Agar
a54a51a9d5 fw_pos_control_l1_params.c param metadata 2016-05-13 21:03:39 -04:00
Daniel Agar
80ef893d23 attitude_estimator_q_params.c param metadata 2016-05-13 21:03:39 -04:00
Daniel Agar
be3f0ac175 attitude_estimator_ekf_params.c param metadata 2016-05-13 21:03:39 -04:00
Daniel Agar
ceea55a640 runway_takeoff_params.c param metadata 2016-05-13 21:03:39 -04:00
Daniel Agar
deecd4b918 launchdetection_params.c param metadata 2016-05-13 21:03:35 -04:00
Daniel Agar
6f49f861d6 px4io_params.c param metadata 2016-05-13 20:25:22 -04:00
Daniel Agar
3bda6e0883 mkblctrl_params.c param metadata 2016-05-13 20:25:21 -04:00
Daniel Agar
18b6815eec camera_trigger_params.c param metadata 2016-05-13 20:25:20 -04:00
Daniel Agar
27cd3af7fb mavlink fix missing MavlinkStreamNavControllerOutput (#4538) 2016-05-14 00:39:17 +02:00
Daniel Agar
a4c7fe50a7 travis-ci proper git version 2016-05-13 22:10:35 +02:00
Julian Oes
e064cb645e gpssim: fix command line argument handling
The gpssim interface was pretty broken, from random usage complaints to
segfaults.
2016-05-13 22:07:46 +02:00
Lorenz Meier
7d66435546 Commander: Fix the takeoff and land commands. Fixes #4516 2016-05-13 22:05:46 +02:00
Lorenz Meier
503966165b Switch from EKF2 to LPE since SITL s is not any more a bearable workflow with EKF2 init lag 2016-05-13 22:05:07 +02:00
Lorenz Meier
7c7d94e3dc Build LPE in all configs 2016-05-13 22:04:28 +02:00
Lorenz Meier
058bc139fe Update MAVLink 2.0 to include RTCM messages 2016-05-13 15:13:51 +02:00
Lorenz Meier
ae859ea7fd Update MAVLink v1.0 version 2016-05-13 15:10:51 +02:00
Lorenz Meier
29d6c95ec4 FMUv4: Build all Bosch drivers so they get built at least for one target 2016-05-13 15:02:58 +02:00
Lorenz Meier
637396359d BMA180: Fix compilation 2016-05-13 15:02:58 +02:00
Lorenz Meier
13a819730d BMP280: Cleanup to make it compile 2016-05-13 15:02:58 +02:00
Lok Tep
ea4896813c astyle formatted 2016-05-13 15:02:58 +02:00
Lok Tep
07557bc362 SPI bmp280 driver, I2C skeleton 2016-05-13 15:02:58 +02:00
Lorenz Meier
24022e4634 MAVLink 2.0: Update to 2.0 protocol files 2016-05-13 14:53:11 +02:00
Lorenz Meier
ae6d1c50d7 MAVLink submodules: Add v2.0 protocol 2016-05-13 14:51:04 +02:00
CarlOlsson
88800b9e36 added tas_innov_gate to params 2016-05-13 13:55:57 +02:00
korotkoves
1a992c2d02 fix code style for Travis 2016-05-13 13:24:30 +02:00
korotkoves
7f9ab9b7cb fix code style for Travis 2016-05-13 13:24:13 +02:00
korotkoves
a8bbbcbff5 scripts for runnung multiple SITL 2016-05-13 13:23:54 +02:00
korotkoves
22e3ce7d7a simulator udp port from command line 2016-05-13 13:23:20 +02:00
Daniel Agar
adfe946f72 sync test with default equivalents 2016-05-13 13:01:42 +02:00
Daniel Agar
27fc739f7d load_mon use STACK_MAIN 2016-05-13 13:01:42 +02:00
Daniel Agar
27f6b60169 fix pixhawk errata URL 2016-05-13 13:01:42 +02:00
Daniel Agar
97fd951d4a cleanup after rebase 2016-05-13 13:01:42 +02:00
Daniel Agar
51298c1eb1 remove unused 2016-05-13 13:01:42 +02:00
Daniel Agar
05b7dd0046 check_code_style don't create tmp files 2016-05-13 13:01:42 +02:00
Daniel Agar
701d177e23 px4fmu-v2_test don't build frsky_telemetry, gimbal, and snapdragon_rc_pwm 2016-05-13 13:01:42 +02:00
Daniel Agar
d804f5727e run tests in posix sitl with gazebo 2016-05-13 13:01:42 +02:00
Daniel Agar
d85e7732b4 fix param_test 2016-05-13 13:01:42 +02:00
Daniel Agar
008354f935 testing cleanup 2016-05-13 13:01:41 +02:00
Daniel Agar
12165ba5a4 uORB separate tests 2016-05-13 13:01:41 +02:00
Daniel Agar
dc8b9d1da8 px4fmu-v2_test add drivers/test_ppm 2016-05-13 13:01:41 +02:00
Daniel Agar
39d388051a WIP posix_sitl_test 2016-05-13 13:01:41 +02:00
Daniel Agar
2bc74fd5d9 restore px4fmu-v2_test 2016-05-13 13:01:41 +02:00
Daniel Agar
848e87ff76 lis3mdl use STACK_MAIN 2016-05-13 13:01:41 +02:00
Daniel Agar
875dbb92e5 check code style parallel 2016-05-13 13:01:41 +02:00
Daniel Agar
770c6b3bd1 travis-ci build px4fmu-v2 ekf2 and lpe 2016-05-13 13:01:41 +02:00
Daniel Agar
be391b4fe5 unittests stop building in tree 2016-05-13 13:01:41 +02:00
Daniel Agar
eae726e345 FW add mavlink NAV_CONTROLLER_OUTPUT 2016-05-13 12:56:04 +02:00
Lorenz Meier
5fb1de906c commander: Better reporting and convenience for commander 2016-05-13 11:39:40 +02:00
Lorenz Meier
a700b02f77 Navigator: Do not publish an empty triplet 2016-05-13 11:03:35 +02:00
Lorenz Meier
8b41ddd224 Commander: Better status feedback 2016-05-13 11:03:18 +02:00
Lorenz Meier
f204a145c7 POSIX: Improve console management 2016-05-13 10:35:19 +02:00
Lorenz Meier
a40e1ea269 sdlog2: Properly handle pragma 2016-05-13 10:35:07 +02:00
Lorenz Meier
623ef6d67c MC pos control: Use default initializers 2016-05-13 10:34:47 +02:00
Lorenz Meier
d89937502c MAVLink: Clean up stream init 2016-05-13 10:34:25 +02:00
Lorenz Meier
db5212a209 Land detector: add missing init 2016-05-13 10:34:13 +02:00
Julian Oes
89661b2d9a df_mpu9250_wrapper: use all accel/gyro data
Use the data which has been filtered by the integrator for the
instantanous values instead of only 1 out of 32 samples.

This is to better support estimators and modules other than ekf2 which
uses the integrated gyro/accel values anyway.
2016-05-12 12:41:40 +02:00
Julian Oes
080a136e50 integrator: add function to return filtered data
Instead of only being able to get the integral and its integration time,
it can also be handy to get the integral divided/differentiated by the
the integration time. This data is then just filtered by the integrator.
2016-05-12 12:41:40 +02:00
Julian Oes
54b3995175 load_mon: added missing include
USEC2TICK was not found.
2016-05-12 08:16:36 +02:00
Julian Oes
a69393b191 commander: fix shadowing errors 2016-05-12 08:16:36 +02:00
Julian Oes
352d099249 commander: fix merge conflict mistake 2016-05-12 08:16:36 +02:00
Julian Oes
30b6f9ff6c sdlog2: more merge conflict resolving 2016-05-12 08:16:36 +02:00
Julian Oes
afbdec1742 mavlink: whitespace 2016-05-12 08:16:36 +02:00
Julian Oes
b965554bdd sdlog2: move main state, fix formatting, fix bug
Since the vehicle_status topic has been split up, we can't publish it
together with the the split cpuload and commander_state topics.

Therefore, the log field STAT.MainState will change to COMM.MainState
because it is only the internal commander state. Important to the
outside is STAT.NavState.

Likewise, the log field STAT.Load becomes LOAD.CPU.
2016-05-12 08:16:36 +02:00
Julian Oes
43d76f5e17 load_mon: use work queue instead of a whole task 2016-05-12 08:16:36 +02:00
Julian Oes
3451e901a5 rcS: start load_mon on NuttX startup 2016-05-12 08:16:36 +02:00
Julian Oes
a94a409f5f commander: got rid of leftover system_load 2016-05-12 08:16:36 +02:00
Julian Oes
888b517d62 load_mon: correct copyright year 2016-05-12 08:16:36 +02:00
Julian Oes
939f04c80d load_mon: small comment fix 2016-05-12 08:16:36 +02:00
Jonathan Challinger
e5ce9809c5 cmake: add load_mon wherever commander is built 2016-05-12 08:16:36 +02:00
Jonathan Challinger
01305da7e7 sdlog2: subscribe to and use cpuload message instead of vehicle_status 2016-05-12 08:16:36 +02:00
Jonathan Challinger
7ec37d5ffd mavlink: subscribe to and use cpuload message instead of vehicle_status 2016-05-12 08:16:36 +02:00
Jonathan Challinger
535cea4e77 commander: remove load from vehicle_status message 2016-05-12 08:16:36 +02:00
Jonathan Challinger
749b598af1 load_mon: initial commit 2016-05-12 08:16:36 +02:00
Julian Oes
5ee865a6eb eagle: use a bigger buffer for sdlog2 2016-05-11 21:30:03 +02:00
Julian Oes
c7c786d567 Revert "posix-configs: conflicting args for sdlog2"
This reverts commit aac9a584aa5fa26ea93d7583305c44d50608ecfa.
2016-05-11 21:30:03 +02:00
Julian Oes
f6845df21f sdlog2: don't log an empty sensor_combined topic 2016-05-11 21:30:03 +02:00
Julian Oes
c8d888cdc1 sdlog2: fix wrong if (facepalm!) 2016-05-11 21:30:03 +02:00
Julian Oes
91cc52f60e posix-configs: conflicting args for sdlog2 2016-05-11 21:30:03 +02:00
Julian Oes
e00101e5ab sdlog2: remove duplicate orb_copy 2016-05-11 21:30:03 +02:00
Julian Oes
871c112699 sdlog2: log normal data and replay on Snapdragon
In SITL and on Snapdragon, the logging performance is high enough, so we
can log both: the usual topics, as well as the ekf2 replay fields.

Note that the ekf2 replay still needs to be enabled via param.
2016-05-11 21:30:03 +02:00
Daniel Agar
194b48b50a srcscanner.py replace windows slashes 2016-05-11 18:51:39 +02:00
Daniel Agar
8e130c878c system_params.c param metadata 2016-05-11 12:30:06 -04:00
Daniel Agar
845b4c032c battery_params.c param metadata 2016-05-11 12:30:04 -04:00
Daniel Agar
ec519a33b3 navigator_params.c param metadata 2016-05-11 12:30:04 -04:00
Daniel Agar
c5d53c4ee6 mission_params.c param metadata 2016-05-11 12:30:04 -04:00
Daniel Agar
731f633d3e gpsfailure_params.c param metadata 2016-05-11 12:30:00 -04:00
Daniel Agar
0fbf12a021 datalinkloss_params.c param metadata 2016-05-11 12:29:57 -04:00
Daniel Agar
331456f831 mc_pos_control_params.c param metadata 2016-05-11 12:29:54 -04:00
Daniel Agar
fc636b61b0 fw_pos_control_l1_params.c param metadata 2016-05-11 12:29:51 -04:00
Daniel Agar
b471d94069 fw_att_control_params.c param metadata 2016-05-11 12:29:49 -04:00
Daniel Agar
a1a1a515db commander_params.c param metadata 2016-05-11 12:29:47 -04:00
Daniel Agar
91f1ac5c88 runway_takeoff_params.c param metadata 2016-05-11 12:29:44 -04:00
Daniel Agar
72d296fe65 launchdetection_params.c param metadata 2016-05-11 12:29:40 -04:00
Andreas Antener
6ebb2079e0 use new method for instant transition in tiltrotor 2016-05-11 17:29:50 +02:00
Andreas Antener
1a66155d8a use new method for instant transition in tailsitter 2016-05-11 17:29:50 +02:00
Andreas Antener
05f1da8c4a subscribe to land_detected topic 2016-05-11 17:29:50 +02:00
Andreas Antener
af0c42d3d7 allow direct transition in standard vtol when landed 2016-05-11 17:29:50 +02:00
Beat Küng
42a9d5651f platform: some code cleanup for px4_{posix,qurt}_tasks.cpp
- __BEGIN_DECLS is for declarations not definitions
- getprogname() declaration is in err.h
2016-05-11 15:56:50 +02:00
Beat Küng
77c61260df px4_task_spawn_cmd: handle case properly when running out of unused taskmap items 2016-05-11 15:56:50 +02:00
Beat Küng
d3068b4337 px4_task_spawn_cmd: fix memory leak on posix 2016-05-11 15:56:50 +02:00
Beat Küng
0aabe9b3bb add sd_bench command, enable it on the px4fmu-v4 & posix_sitl build target
Useful to test maximum sequential write speed to the SD Card
2016-05-11 15:00:40 +02:00
David Sidrane
d7daab9620 Move the build log to nuttx directory 2016-05-11 14:59:36 +02:00
Julian Oes
7d64aa8057 ekf2: raise stack size on Snapdragon
It seems that the stack size was exhausted on Snapdragon.
2016-05-11 14:53:55 +02:00
Paul Riseborough
3179b12dd3 ecl: update library reference
removes use of vehicle arm status message
2016-05-11 14:53:55 +02:00
Paul Riseborough
163ad19957 msg: update documentation for estimator status 2016-05-11 14:53:55 +02:00
Paul Riseborough
4480e4206d ekf2: remove use of arm status 2016-05-11 14:53:55 +02:00
Paul Riseborough
4b8c7201b7 sdlog2: add logging of ekf2 internal fault message 2016-05-11 14:53:55 +02:00
Paul Riseborough
af9a7a39f2 ekf2: add handling of filter internal fault message 2016-05-11 14:53:55 +02:00
Paul Riseborough
e8c34fa30e msg: add filter internal fault message 2016-05-11 14:53:55 +02:00
Paul Riseborough
2c6b7a008f ekf2: Update tuning parameters
Remove unused gyro scale factor parameter
Change gyro and accelerometer bias noise parameters to more intuitive units
Updated tuning defaults
2016-05-11 14:53:55 +02:00
Paul Riseborough
7f1632d65b ekf2: correct control state message for 3D acc bias 2016-05-11 14:53:55 +02:00
Paul Riseborough
6ef2e4c9b2 ecl: update library reference
Numerous EKF updates for improved accuracy and stability
2016-05-11 14:53:55 +02:00
925 changed files with 49095 additions and 17987 deletions

1
.gitignore vendored
View File

@ -64,7 +64,6 @@ CMakeLists.txt.user
GPATH
GRTAGS
GTAGS
*.config
*.creator
*.creator.user
*.files

9
.gitmodules vendored
View File

@ -1,12 +1,15 @@
[submodule "mavlink/include/mavlink/v1.0"]
path = mavlink/include/mavlink/v1.0
url = git://github.com/mavlink/c_library.git
url = https://github.com/mavlink/c_library_v1.git
[submodule "mavlink/include/mavlink/v2.0"]
path = mavlink/include/mavlink/v2.0
url = https://github.com/mavlink/c_library_v2.git
[submodule "NuttX"]
path = NuttX
url = git://github.com/PX4/NuttX.git
url = https://github.com/PX4/NuttX.git
[submodule "src/modules/uavcan/libuavcan"]
path = src/modules/uavcan/libuavcan
url = git://github.com/UAVCAN/libuavcan.git
url = https://github.com/UAVCAN/libuavcan.git
[submodule "Tools/genmsg"]
path = Tools/genmsg
url = https://github.com/ros/genmsg.git

View File

@ -7,129 +7,117 @@ matrix:
fast_finish: true
include:
- os: linux
sudo: false
env: GCC_VER=4.8
- os: linux
sudo: false
env: GCC_VER=4.9
sudo: required
env: GCC_VER=4.8 DOCKER_REPO="px4io/px4-dev-base:2016-07-14"
services:
- docker
- os: osx
osx_image: xcode7
sudo: true
osx_image: xcode7.3
env: CCACHE_CPP2=1
cache:
ccache: true
pip: true
directories:
- $HOME/.ccache
addons:
apt:
sources:
- kubuntu-backports
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- build-essential
- ccache
- clang-3.5
- cmake
- g++-4.9
- gcc-4.9
- genromfs
- libc6-i386
- libncurses5-dev
- ninja-build
- python-argparse
- python-empy
- s3cmd
- texinfo
- zlib1g-dev
- $HOME/.pip/cache/
- $HOME/Library/Caches/pip
before_install:
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
pushd .
&& cd ~ && mkdir gcc && cd gcc
&& if [ "$GCC_VER" = "4.8" ]; then GCC_URL="https://launchpadlibrarian.net/186124160/gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2" ; fi
&& if [ "$GCC_VER" = "4.9" ]; then GCC_URL="https://launchpad.net/gcc-arm-embedded/4.9/4.9-2014-q4-major/+download/gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2" ; fi
&& wget -O gcc.tar.bz2 ${GCC_URL}
&& tar -jxf gcc.tar.bz2 --strip 1
&& exportline="export PATH=$HOME/gcc/bin:\$PATH"
&& if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
&& . ~/.profile
&& popd
&& git clone git://github.com/PX4/CI-Tools.git
&& ./CI-Tools/s3cmd-configure
&& mkdir -p ~/bin
&& wget -O ~/bin/astyle https://github.com/PX4/astyle/releases/download/2.05.1/astyle-linux && chmod +x ~/bin/astyle
&& astyle --version
&& if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi
cd ${TRAVIS_BUILD_DIR}
&& git fetch --unshallow && git fetch --all --tags
&& docker pull ${DOCKER_REPO}
;
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
brew tap PX4/homebrew-px4
&& brew update; brew update
&& brew install cmake ninja
&& brew install genromfs
&& sudo easy_install pip
&& sudo pip install empy
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
;
fi
before_script:
# setup ccache
- mkdir -p ~/bin
- ln -s /usr/bin/ccache ~/bin/arm-none-eabi-g++
- ln -s /usr/bin/ccache ~/bin/arm-none-eabi-gcc
- ln -s /usr/bin/ccache ~/bin/arm-none-eabi-size
- ln -s /usr/bin/ccache ~/bin/arm-none-eabi-objcopy
- ln -s /usr/bin/ccache ~/bin/clang++
- ln -s /usr/bin/ccache ~/bin/clang++-3.4
- ln -s /usr/bin/ccache ~/bin/clang++-3.5
- ln -s /usr/bin/ccache ~/bin/clang
- ln -s /usr/bin/ccache ~/bin/clang-3.4
- ln -s /usr/bin/ccache ~/bin/clang-3.5
- export PATH=~/bin:$PATH
env:
global:
- NINJA_BUILD=1
# AWS KEY: $PX4_AWS_KEY
- secure: "XknnZHWBbpHbN4f3fuAVwUztdLIu8ej4keC3aQSDofo3uw8AFEzojfsQsN9u77ShWSIV4iYJWh9C9ALkCx7TocJ+xYjiboo10YhM9lH/8u+EXjYWG6GHS8ua0wkir+cViSxoLNaMtmcb/rPTicJecAGANxLsIHyBAgTL3fkbLSA="
# AWS SECRET: $PX4_AWS_SECRET
- secure: "h6oajlW68dWIr+wZhO58Dv6e68dZHrBLVA6lPXZmheFQBW6Xam1HuLGA0LOW6cL9TnrAsOZ8g4goB58eMQnMEijFZKi3mhRwZhd/Xjq/ZGJOWBUrLoQHZUw2dQk5ja5vmUlKEoQnFZjDuMjx8KfX5ZMNy8A3yssWZtJYHD8c+bk="
- PX4_AWS_BUCKET=px4-travis
- GIT_SUBMODULES_ARE_EVIL=1
script:
- git submodule update --quiet --init --recursive
- ccache -M 1GB; ccache -z
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
arm-none-eabi-gcc --version && make check VECTORCONTROL=1;
docker run --rm -v `pwd`:`pwd`:rw -v $HOME/.ccache:$HOME/.ccache:rw -e CCACHE_DIR=$HOME/.ccache -e GIT_SUBMODULES_ARE_EVIL=1 -w=`pwd` --user=$UID -it ${DOCKER_REPO} /bin/bash -c "make check_qgc_firmware VECTORCONTROL=1";
elif [ "${TRAVIS_OS_NAME}" = "osx" ]; then
make check_posix_sitl_default;
make tests;
fi
- ccache -s
after_success:
- if [[ "${TRAVIS_OS_NAME}" = "linux" && "${GCC_VER}" = "4.8" ]]; then
make package_firmware
&& find . -name \*.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
&& ./CI-Tools/s3cmd-put `find . -maxdepth 1 -mindepth 1 -type f -name '*_default.px4'` build_px4fmu-v2_default/parameters.xml build_px4fmu-v2_default/airframes.xml CI-Tools/directory/index.html Firmware/$TRAVIS_BRANCH/
&& ./CI-Tools/s3cmd-put Firmware.zip archives/Firmware/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID/
&& ./CI-Tools/s3cmd-put CI-Tools/directory/index.html archives/Firmware/$TRAVIS_BRANCH/
&& ./CI-Tools/s3cmd-put CI-Tools/index.html index.html
&& ./CI-Tools/s3cmd-put CI-Tools/timestamp.html timestamp.html
&& echo ""
&& echo "Binaries have been posted to:" https://px4-travis.s3.amazonaws.com/archives/Firmware/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID/Firmware.zip
;
- make package_firmware && mkdir s3deploy-archive && cp Firmware.zip s3deploy-archive/
# find all px4 firmware (*.px4) and rename
- 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/
# only deploy GCC 4.8 builds on master/beta/stable
- if [[ "$GCC_VER" == "4.8" && ( "$TRAVIS_BRANCH" == "master" || "$TRAVIS_BRANCH" == "beta" || "$TRAVIS_BRANCH" == "stable" ) ]]; then
export PX4_S3_DEPLOY=1;
fi
deploy:
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.8
# 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.8
notifications:
webhooks:

View File

@ -121,6 +121,9 @@
# and leads to wrong toolchain detection
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(PX4_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(PX4_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}")
# Use clang
#SET (CMAKE_C_COMPILER /usr/bin/clang-3.6)
#SET (CMAKE_CXX_COMPILER /usr/bin/clang++-3.6)
@ -132,7 +135,7 @@ cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_BUILD_TYPE "" CACHE STRING "build type")
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
STRINGS ";Debug;Release;RelWithDebInfo;MinSizeRel")
set(CONFIG "nuttx_px4fmu-v2_default" CACHE STRING "desired configuration")
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
@ -152,12 +155,19 @@ set(target_name "${OS}-${BOARD}-${LABEL}")
message(STATUS "${target_name}")
# switch to ros CMake file if building ros
if (${OS} STREQUAL "ros")
include("cmake/ros-CMakeLists.txt")
else() # otherwise use the rest of this file
# Define GNU standard installation directories
include(GNUInstallDirs)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
# Setup install paths
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})
@ -202,7 +212,7 @@ if (NOT ${CMAKE_VERSION} VERSION_LESS 3.1.0)
endif()
set(version_major 1)
set(version_minor 0)
set(version_minor 4)
set(version_patch 1)
set(version "${version_major}.${version_minor}.${version_patch}")
set(package-contact "px4users@googlegroups.com")
@ -217,6 +227,11 @@ find_package(PythonInterp REQUIRED)
#
enable_testing()
#=============================================================================
# generate compile command database
#
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#=============================================================================
# check required toolchain variables
#
@ -235,7 +250,7 @@ endforeach()
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 "unittets/gtest")
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")
@ -246,7 +261,7 @@ px4_add_git_submodule(TARGET git_matrix PATH "src/lib/matrix")
px4_add_git_submodule(TARGET git_cmake_hexagon PATH "cmake/cmake_hexagon")
add_custom_target(submodule_clean
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
COMMAND git submodule deinit -f .
COMMAND rm -rf .git/modules/*
)
@ -256,12 +271,12 @@ add_custom_target(submodule_clean
#
add_custom_target(check_format
COMMAND Tools/check_code_style.sh
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
add_custom_target(config
COMMAND cmake-gui .
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${PX4_BINARY_DIR}
)
#=============================================================================
@ -295,11 +310,11 @@ add_definitions(${definitions})
#=============================================================================
# source code generation
#
file(GLOB_RECURSE msg_files msg/*.msg)
add_subdirectory(msg)
px4_generate_messages(TARGET msg_gen
MSG_FILES ${msg_files}
OS ${OS}
DEPENDS git_genmsg git_gencpp
DEPENDS git_genmsg git_gencpp prebuild_targets
)
px4_generate_parameters_xml(OUT parameters.xml BOARD ${BOARD})
px4_generate_airframes_xml(OUT airframes.xml BOARD ${BOARD})
@ -310,7 +325,7 @@ add_custom_target(xml_gen
# external projects
#
set(ep_base ${CMAKE_BINARY_DIR}/external)
set(ep_base ${PX4_BINARY_DIR}/external)
set_property(DIRECTORY PROPERTY EP_BASE ${ep_base})
# add external project install folders to build
@ -339,7 +354,7 @@ foreach(module ${config_module_list})
if(external_module)
STRING(REGEX REPLACE "//" "/" EXT_MODULE ${module})
STRING(REGEX REPLACE "/" "__" EXT_MODULE_PREFIX ${EXT_MODULE})
add_subdirectory(${module} ${CMAKE_BINARY_DIR}/${EXT_MODULE_PREFIX})
add_subdirectory(${module} ${PX4_BINARY_DIR}/${EXT_MODULE_PREFIX})
else()
add_subdirectory(src/${module})
endif()
@ -348,6 +363,9 @@ foreach(module ${config_module_list})
#message(STATUS "adding module: ${module}")
endforeach()
# Keep track of external shared libs required for modules
set(module_external_libraries "${module_external_libraries}" CACHE INTERNAL "module_external_libraries")
add_subdirectory(src/firmware/${OS})
#add_dependencies(df_driver_framework nuttx_export_${CONFIG}.stamp)
@ -361,19 +379,34 @@ endif()
#=============================================================================
# generate git version
#
px4_create_git_hash_header(HEADER ${CMAKE_BINARY_DIR}/build_git_version.h)
px4_create_git_hash_header(HEADER ${PX4_BINARY_DIR}/build_git_version.h)
#=============================================================================
# packaging
#
# Important to having packaging at end of cmake file.
#
set(CPACK_PACKAGE_NAME ${PROJECT_NAME}-${CONFIG})
set(CPACK_PACKAGE_VERSION ${version})
set(CPACK_PACKAGE_CONTACT ${package_contact})
set(CPACK_PACKAGE_CONTACT ${package-contact})
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(short-description "The px4 autopilot.")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${short-description})
set(CPACK_GENERATOR "ZIP")
set(CPACK_SOURCE_GENERATOR "ZIP")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${CONFIG}-${version}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${version}")
set(CPACK_SOURCE_GENERATOR "ZIP;TBZ2")
if ("${CMAKE_SYSTEM}" MATCHES "Linux")
find_program(DPKG_PROGRAM dpkg)
if (EXISTS ${DPKG_PROGRAM})
list (APPEND CPACK_GENERATOR "DEB")
endif()
endif()
if (${OS} STREQUAL "posix")
set(CPACK_SET_DESTDIR "ON")
endif()
include(CPack)
endif() # ros alternative endif
# vim: set noet fenc=utf-8 ff=unix ft=cmake :

View File

@ -66,8 +66,8 @@ Linux or Eagle with a working IP interface (?? does this need further instructio
> adb shell
# bash
root@linaro-developer:/# cd ???
root@linaro-developer:/# ./mainapp
App name: mainapp
root@linaro-developer:/# ./px4
App name: px4
Enter a command and its args:
uorb start
muorb start

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

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

View File

@ -1,10 +1,10 @@
{
"board_id": 9,
"magic": "PX4FWv2",
"description": "Firmware for the MindPx-V2 board",
"board_id": 88,
"magic": "MindPX",
"description": "Firmware for the MindPXFMUv2 board",
"image": "",
"build_time": 0,
"summary": "MindPx-v2",
"summary": "MindPXFMUv2",
"version": "2.1",
"image_size": 0,
"git_identity": "",

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

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

142
Makefile
View File

@ -42,7 +42,7 @@ 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, install or upgrade via:)
$(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)
@ -50,11 +50,11 @@ ifneq ($(CMAKE_VER),0)
$(warning sudo apt-get install cmake)
$(warning )
$(warning Official website:)
$(warning wget https://cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.sh)
$(warning chmod +x cmake-3.3.2-Linux-x86_64.sh)
$(warning sudo mkdir /opt/cmake-3.3.2)
$(warning sudo ./cmake-3.3.2-Linux-x86_64.sh --prefix=/opt/cmake-3.3.2 --exclude-subdir)
$(warning export PATH=/opt/cmake-3.3.2/bin:$$PATH)
$(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
@ -77,7 +77,7 @@ endif
# in that directory with the target upload.
# explicity set default build target
all: px4fmu-v2_default
all: posix_sitl_default
# Parsing
# --------------------------------------------------------------------
@ -104,14 +104,27 @@ endif
PX4_MAKE_ARGS = -j$(j) --no-print-directory
endif
# check if replay env variable is set & set build dir accordingly
ifdef replay
BUILD_DIR_SUFFIX := _replay
else
BUILD_DIR_SUFFIX :=
endif
# Functions
# --------------------------------------------------------------------
# describe how to build a cmake config
define cmake-build
+@if [ $(PX4_CMAKE_GENERATOR) = "Ninja" ] && [ -e $(PWD)/build_$@/Makefile ]; then rm -rf $(PWD)/build_$@; fi
+@if [ ! -e $(PWD)/build_$@/CMakeCache.txt ]; then Tools/check_submodules.sh && mkdir -p $(PWD)/build_$@ && cd $(PWD)/build_$@ && cmake .. -G$(PX4_CMAKE_GENERATOR) -DCONFIG=$(1) || (cd .. && rm -rf $(PWD)/build_$@); fi
+@if [ $(PX4_CMAKE_GENERATOR) = "Ninja" ] && [ -e ./build_$@$(BUILD_DIR_SUFFIX)/Makefile ]; then rm -rf ./build_$@$(BUILD_DIR_SUFFIX); fi
+@if [ ! -e ./build_$@$(BUILD_DIR_SUFFIX)/CMakeCache.txt ]; then Tools/check_submodules.sh && mkdir -p ./build_$@$(BUILD_DIR_SUFFIX) && cd ./build_$@$(BUILD_DIR_SUFFIX) && cmake .. -G$(PX4_CMAKE_GENERATOR) -DCONFIG=$(1) || (cd .. && rm -rf ./build_$@$(BUILD_DIR_SUFFIX)); fi
+@Tools/check_submodules.sh
+@(echo "PX4 CONFIG: $@" && cd $(PWD)/build_$@ && $(PX4_MAKE) $(PX4_MAKE_ARGS) $(ARGS))
+@(echo "PX4 CONFIG: $@$(BUILD_DIR_SUFFIX)" && cd ./build_$@$(BUILD_DIR_SUFFIX) && $(PX4_MAKE) $(PX4_MAKE_ARGS) $(ARGS))
endef
define cmake-build-other
+@if [ $(PX4_CMAKE_GENERATOR) = "Ninja" ] && [ -e ./build_$@/Makefile ]; then rm -rf ./build_$@; fi
+@if [ ! -e ./build_$@/CMakeCache.txt ]; then Tools/check_submodules.sh && mkdir -p ./build_$@ && cd ./build_$@ && cmake $(2) -G$(PX4_CMAKE_GENERATOR) || (cd .. && rm -rf ./build_$@); fi
+@(cd ./build_$@ && $(PX4_MAKE) $(PX4_MAKE_ARGS) $(ARGS))
endef
# create empty targets to avoid msgs for targets passed to cmake
@ -131,21 +144,27 @@ endef
# --------------------------------------------------------------------
# Do not put any spaces between function arguments.
tap-v1_default:
$(call cmake-build,nuttx_tap-v1_default)
asc-v1_default:
$(call cmake-build,nuttx_asc-v1_default)
px4fmu-v1_default:
$(call cmake-build,nuttx_px4fmu-v1_default)
px4fmu-v2_default:
$(call cmake-build,nuttx_px4fmu-v2_default)
px4fmu-v2_test:
$(call cmake-build,nuttx_px4fmu-v2_test)
px4fmu-v4_default:
$(call cmake-build,nuttx_px4fmu-v4_default)
px4-stm32f4discovery_default:
$(call cmake-build,nuttx_px4-stm32f4discovery_default)
px4fmu-v2_ekf2:
$(call cmake-build,nuttx_px4fmu-v2_ekf2)
mindpx-v2_default:
$(call cmake-build,nuttx_mindpx-v2_default)
@ -155,9 +174,6 @@ posix_sitl_default:
posix_sitl_lpe:
$(call cmake-build,$@)
posix_sitl_ekf2:
$(call cmake-build,$@)
posix_sitl_replay:
$(call cmake-build,$@)
@ -177,12 +193,13 @@ posix_eagle_default:
$(call cmake-build,$@)
eagle_default: posix_eagle_default qurt_eagle_default
eagle_legacy_default: posix_eagle_legacy_driver_default qurt_eagle_legacy_driver_default
qurt_eagle_legacy_driver_default:
$(call cmake-build,$@)
$(call cmake-build,$@)
posix_eagle_legacy_driver_default:
$(call cmake-build,$@)
$(call cmake-build,$@)
qurt_excelsior_default:
$(call cmake-build,$@)
@ -192,10 +209,13 @@ posix_excelsior_default:
excelsior_default: posix_excelsior_default qurt_excelsior_default
posix_rpi2_default:
posix_rpi_native:
$(call cmake-build,$@)
posix_rpi2_release:
posix_rpi_cross:
$(call cmake-build,$@)
posix_bebop_default:
$(call cmake-build,$@)
posix: posix_sitl_default
@ -213,8 +233,14 @@ run_sitl_ros: sitl_deprecation
# Other targets
# --------------------------------------------------------------------
.PHONY: uavcan_firmware check check_format unittest tests package_firmware clean submodulesclean distclean
.NOTPARALLEL: uavcan_firmware check check_format unittest tests package_firmware clean submodulesclean distclean
.PHONY: gazebo_build uavcan_firmware check check_format format unittest tests qgc_firmware package_firmware clean submodulesclean distclean
.NOTPARALLEL: gazebo_build uavcan_firmware check check_format format unittest tests qgc_firmware package_firmware clean submodulesclean distclean
gazebo_build:
@mkdir -p build_gazebo
@if [ ! -e ./build_gazebo/CMakeCache.txt ];then cd build_gazebo && cmake -Wno-dev -G$(PX4_CMAKE_GENERATOR) ../Tools/sitl_gazebo; fi
@cd build_gazebo && $(PX4_MAKE) $(PX4_MAKE_ARGS)
@cd build_gazebo && $(PX4_MAKE) $(PX4_MAKE_ARGS) sdf
uavcan_firmware:
ifeq ($(VECTORCONTROL),1)
@ -222,12 +248,45 @@ ifeq ($(VECTORCONTROL),1)
@(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: check_px4fmu-v1_default check_px4fmu-v2_default check_px4fmu-v4_default_and_uavcan check_mindpx-v2_default check_px4-stm32f4discovery_default check_posix_sitl_default check_unittest check_format
checks_defaults: \
check_px4fmu-v1_default \
check_px4fmu-v2_default \
check_px4fmu-v4_default \
check_mindpx-v2_default \
check_tap-v1_default
checks_bootloaders: \
checks_tests: \
check_px4fmu-v2_test
checks_alts: \
check_asc-v1_default \
check_px4-stm32f4discovery_default
checks_uavcan: \
check_px4fmu-v4_default_and_uavcan
checks_sitls: \
check_posix_sitl_default
checks_last: \
check_tests \
check_format \
check: checks_defaults checks_tests checks_alts checks_uavcan checks_bootloaders checks_last
quick_check: check_px4fmu-v2_default check_px4fmu-v4_default check_posix_sitl_default check_tests check_format
check_format:
$(call colorecho,"Checking formatting with astyle")
@./Tools/fix_code_style.sh
@./Tools/check_code_style.sh
@./Tools/check_code_style_all.sh
format:
$(call colorecho,"Formatting with astyle")
@./Tools/fix_code_style.sh
@./Tools/check_code_style_all.sh --fix
check_%:
@echo
@ -245,7 +304,30 @@ ifeq ($(VECTORCONTROL),1)
endif
unittest: posix_sitl_default
@(cd unittests && cmake -G$(PX4_CMAKE_GENERATOR) && $(PX4_MAKE) $(PX4_MAKE_ARGS) && ctest -j2 --output-on-failure)
$(call cmake-build-other,unittest, ../unittests)
@(cd build_unittest && ctest -j2 --output-on-failure)
run_tests_posix: posix_sitl_default
@mkdir -p build_posix_sitl_default/src/firmware/posix/rootfs/fs/microsd
@mkdir -p build_posix_sitl_default/src/firmware/posix/rootfs/eeprom
@touch build_posix_sitl_default/src/firmware/posix/rootfs/eeprom/parameters
@(cd build_posix_sitl_default/src/firmware/posix && ./px4 -d ../../../../posix-configs/SITL/init/rcS_tests | tee test_output)
@(cd build_posix_sitl_default/src/firmware/posix && grep --color=always "All tests passed" test_output)
tests: check_unittest run_tests_posix
# QGroundControl flashable firmware
qgc_firmware: \
check_px4fmu-v1_default \
check_px4fmu-v2_default \
check_mindpx-v2_default \
check_tap-v1_default \
check_px4fmu-v4_default_and_uavcan \
check_format
extra_firmware: \
check_px4-stm32f4discovery_default \
check_px4fmu-v2_test
package_firmware:
@zip --junk-paths Firmware.zip `find . -name \*.px4`
@ -255,18 +337,18 @@ clean:
@(cd NuttX/nuttx && make clean)
submodulesclean:
@git submodule sync
@git submodule sync --recursive
@git submodule deinit -f .
@git submodule update --init --recursive --force
distclean: submodulesclean
@git clean -ff -x -d
@git clean -ff -x -d -e ".project" -e ".cproject"
# targets handled by cmake
cmake_targets = test upload package package_source debug debug_tui debug_ddd debug_io debug_io_tui debug_io_ddd check_weak \
cmake_targets = install test upload package package_source debug debug_tui debug_ddd debug_io debug_io_tui debug_io_ddd check_weak \
run_cmake_config config gazebo gazebo_gdb gazebo_lldb jmavsim replay \
jmavsim_gdb jmavsim_lldb gazebo_gdb_iris gazebo_lldb_tailsitter gazebo_iris gazebo_iris_opt_flow gazebo_tailsitter \
gazebo_gdb_standard_vtol gazebo_lldb_standard_vtol gazebo_standard_vtol gazebo_plane
gazebo_gdb_standard_vtol gazebo_lldb_standard_vtol gazebo_standard_vtol gazebo_plane gazebo_solo gazebo_typhoon_h480
$(foreach targ,$(cmake_targets),$(eval $(call cmake-targ,$(targ))))
.PHONY: clean

2
NuttX

@ -1 +1 @@
Subproject commit f0f4bdc872d324f64e9d93d6f8989d3c1dfa2633
Subproject commit 28c412089cc28a04414df4602ee105a0c641de31

View File

@ -1,6 +1,6 @@
## PX4 Pro Drone Autopilot ##
[![Build Status](https://travis-ci.org/PX4/Firmware.svg?branch=master)](https://travis-ci.org/PX4/Firmware) [![Coverity Scan](https://scan.coverity.com/projects/3966/badge.svg?flat=1)](https://scan.coverity.com/projects/3966?tab=overview)
[![Releases](https://img.shields.io/github/release/PX4/Firmware.svg)](https://github.com/PX4/Firmware/releases) [![DOI](https://zenodo.org/badge/22634/PX4/Firmware.svg)](https://zenodo.org/badge/latestdoi/22634/PX4/Firmware) [![Build Status](https://travis-ci.org/PX4/Firmware.svg?branch=master)](https://travis-ci.org/PX4/Firmware) [![Coverity Scan](https://scan.coverity.com/projects/3966/badge.svg?flat=1)](https://scan.coverity.com/projects/3966?tab=overview)
[![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)

View File

@ -25,8 +25,8 @@ then
param set MC_YAWRATE_I 0.25
param set MC_YAWRATE_D 0.0
param set BAT_V_SCALING 0.00989
param set BAT_C_SCALING 0.0124
param set BAT_V_DIV 12.27559
param set BAT_A_PER_V 15.39103
fi
set MIXER quad_w

View File

@ -7,7 +7,7 @@
# @maintainer Lorenz Meier <lorenz@px4.io>
#
sh /etc/init.d/rc.mc_defaults
sh /etc/init.d/4001_quad_x
if [ $AUTOCNF == yes ]
then
@ -21,10 +21,3 @@ then
param set MC_PITCHRATE_D 0.004
param set MC_YAW_P 4
fi
set MIXER quad_x
set PWM_OUT 1234
set PWM_MIN 1100
set PWM_MAX 1950

View File

@ -15,22 +15,28 @@ then
param set VT_MOT_COUNT 4
param set VT_TRANS_THR 0.75
param set MC_ROLL_P 7.0
param set MC_ROLL_P 6.5
param set MC_ROLLRATE_P 0.15
param set MC_ROLLRATE_I 0.002
param set MC_ROLLRATE_I 0.01
param set MC_ROLLRATE_D 0.003
param set MC_ROLLRATE_FF 0.0
param set MC_PITCH_P 7.0
param set MC_PITCHRATE_P 0.12
param set MC_PITCHRATE_I 0.002
param set MC_PITCH_P 6.5
param set MC_PITCHRATE_P 0.15
param set MC_PITCHRATE_I 0.01
param set MC_PITCHRATE_D 0.003
param set MC_PITCHRATE_FF 0.0
param set MC_YAW_P 2.8
param set MC_YAW_P 3.5
param set MC_YAW_FF 0.5
param set MC_YAWRATE_P 0.22
param set MC_YAWRATE_I 0.02
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_ACC_HOR_MAX 2.0
param set VT_MOT_COUNT 4
param set VT_IDLE_PWM_MC 1080

View File

@ -0,0 +1,36 @@
#!nsh
#
# @name CruiseAder Claire
#
# @type VTOL Tiltrotor
#
# @maintainer Samay Siga <samay_s@icloud.com>
#
sh /etc/init.d/rc.vtol_defaults
if [ $AUTOCNF == yes ]
then
param set VT_TYPE 1
param set VT_TILT_MC 0.08
param set VT_TILT_TRANS 0.5
param set VT_TILT_FW 0.9
param set VT_MOT_COUNT 4
param set VT_IDLE_PWM_MC 1080
param set VT_TYPE 1
fi
set MIXER claire
set PWM_OUT 1234
set PWM_RATE 400
set PWM_MAX 2000
set MIXER_AUX claire
set PWM_AUX_RATE 50
set PWM_AUX_RATE 123
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000
set PWM_AUX_DISARMED 1000
set MAV_TYPE 21

View File

@ -0,0 +1,47 @@
#!nsh
#
# @name Koptr Image GreenKoptr
#
# @type VTOL Tiltrotor
#
# @maintainer Alexandre Gilbert <alexandre.gilbert@koptrimage.com>
#
sh /etc/init.d/rc.vtol_defaults
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 7.50
param set MC_ROLLRATE_P 0.180
param set MC_ROLLRATE_I 0.002
param set MC_ROLLRATE_D 0.0
param set MC_ROLLRATE_FF 0.0
param set MC_PITCH_P 7.0
param set MC_PITCHRATE_P 0.140
param set MC_PITCHRATE_I 0.002
param set MC_PITCHRATE_D 0.0040
param set MC_PITCHRATE_FF 0.0
param set MC_YAW_P 3.8
param set MC_YAW_FF 0.5
param set MC_YAWRATE_P 0.22
param set MC_YAWRATE_I 0.02
param set MC_YAWRATE_D 0.0
param set MC_YAWRATE_FF 0.0
param set VT_TILT_MC 0.08
param set VT_TILT_TRANS 0.5
param set VT_TILT_FW 0.9
param set VT_MOT_COUNT 6
param set VT_FW_MOT_OFFID 34
param set VT_IDLE_PWM_MC 1080
param set VT_TYPE 1
fi
set MIXER greenkoptr
set PWM_OUT 12345678
set PWM_RATE 400
set MIXER_AUX greenkoptr
set MAV_TYPE 21

View File

@ -1,6 +1,6 @@
#!nsh
#
# @name Coaxial Helicopter (such as Esky Lama v4 or Esky Big Lama)
# @name Esky (Big) Lama v4
#
# @type Coaxial Helicopter
#
@ -12,7 +12,8 @@
# @maintainer Emmanuel Roussel
#
set VEHICLE_TYPE mc
sh /etc/init.d/rc.mc_defaults
set MIXER coax
if [ $AUTOCNF == yes ]
then
@ -47,7 +48,6 @@ then
param set MC_YAWRATE_FF 0
fi
set MIXER coax
# use PWM parameters for throttle channel
set PWM_OUT 34
set PWM_RATE 400
@ -62,4 +62,3 @@ set PWM_AUX_OUT 1234
set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000

View File

@ -0,0 +1,50 @@
#!nsh
#
# @name Blade 130X
#
# @type Helicopter
#
# @maintainer Bart Slinger <bartslinger@gmail.com>
#
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 PWM_OUT 1234
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 5.0
param set MC_ROLLRATE_P 0.0
param set MC_ROLLRATE_I 0.0
param set MC_ROLLRATE_D 0.0
param set MC_ROLLRATE_FF 0.15
param set MC_PITCH_P 6.5
param set MC_PITCHRATE_P 0.0
param set MC_PITCHRATE_I 0.0
param set MC_PITCHRATE_D 0.0
param set MC_PITCHRATE_FF 0.15
param set MC_YAW_P 3.0
param set MC_YAWRATE_P 0.1
param set MC_YAWRATE_I 0.0
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.0
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 PWM_MIN 1075
param set MPC_THR_MIN 0.06
param set MPC_MANTHR_MIN 0.06
param set ATT_BIAS_MAX 0.0
param set CBRK_IO_SAFETY 22027
fi

View File

@ -11,31 +11,44 @@ sh /etc/init.d/rc.fw_defaults
if [ $AUTOCNF == yes ]
then
param set FW_AIRSPD_MAX 20
param set FW_AIRSPD_MIN 12
param set FW_AIRSPD_TRIM 16
param set FW_R_TC 0.3
param set FW_P_TC 0.3
param set FW_L1_DAMPING 0.74
param set FW_L1_PERIOD 16
param set FW_AIRSPD_MAX 25
param set FW_AIRSPD_MIN 12.5
param set FW_AIRSPD_TRIM 16.5
param set LNDFW_AIRSPD_MAX 6
param set LNDFW_VELI_MAX 4
param set LNDFW_VEL_XY_MAX 3
param set LNDFW_VEL_Z_MAX 5
param set FW_R_TC 0.4
param set FW_P_TC 0.4
param set FW_THR_CRUISE 0.55
param set FW_L1_DAMPING 0.75
param set FW_L1_PERIOD 15
param set FW_LND_ANG 15
param set FW_LND_FLALT 5
param set FW_LND_FLALT 8
param set FW_LND_HHDIST 15
param set FW_LND_HVIRT 13
param set FW_LND_TLALT 5
param set FW_LND_TLALT 10
param set FW_THR_LND_MAX 0
param set FW_PR_FF 0.35
param set FW_P_LIM_MAX 20
param set FW_P_LIM_MIN -30
param set FW_R_LIM 45
param set FW_PR_FF 0.45
param set FW_PR_IMAX 0.4
param set FW_PR_P 0.08
param set FW_RR_FF 0.6
param set FW_PR_P 0.005
param set FW_RR_FF 0.45
param set FW_RR_IMAX 0.2
param set FW_RR_P 0.04
param set FW_RR_P 0.013
param set FW_P_RMAX_NEG 70
param set FW_P_RMAX_POS 70
param set FW_R_RMAX 70
param set SYS_COMPANION 157600
param set PWM_MAIN_REV0 1
param set PWM_MAIN_REV1 1
param set PWM_MAIN_REV2 1
param set PWM_DISARMED 0
param set PWM_MIN 900
param set PWM_MAX 2100
param set MIS_TAKEOFF_ALT 50
param set NAV_LOITER_RAD 30
fi
set PWM_DISARMED p:PWM_DISARMED

View File

@ -0,0 +1,34 @@
#!nsh
#
# @name Lumenier QAV-R (raceblade) 5" arms
#
# @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>
#
sh /etc/init.d/4001_quad_x
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 8.0
param set MC_ROLLRATE_P 0.08
param set MC_ROLLRATE_I 0.05
param set MC_ROLLRATE_D 0.003
param set MC_PITCH_P 8.0
param set MC_PITCHRATE_P 0.1
param set MC_PITCHRATE_I 0.05
param set MC_PITCHRATE_D 0.003
param set MC_YAW_P 2.8
param set MC_YAWRATE_P 0.15
param set MC_YAWRATE_I 0.1
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.5
param set PWM_MIN 1075
param set MPC_THR_MIN 0.06
param set MPC_MANTHR_MIN 0.06
fi

View File

@ -29,7 +29,7 @@ then
param set MC_YAWRATE_D 0.0
param set MC_YAW_FF 0.8
param set BAT_V_SCALING 0.00838095238
param set BAT_V_DIV 34.32838
fi
set OUTPUT_MODE ardrone

View File

@ -33,4 +33,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
fi

View File

@ -79,7 +79,7 @@ then
param set RC5_TRIM 1500
fi
set MIXER solo
set MIXER quad_x
set PWM_OUT 1234
set MIXER_AUX none

View File

@ -20,9 +20,9 @@ then
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.24
param set MC_PITCHRATE_P 0.19
param set MC_PITCHRATE_I 0.1
param set MC_PITCHRATE_D 0.0065
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
@ -33,6 +33,9 @@ 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 PWM_MIN 1075

View File

@ -4,7 +4,7 @@
# att & pos estimator, rover steering control
#
ekf_att_pos_estimator start
ekf2 start
# disabled the start of steering control app due to use of offboard mode only
# rover_steering_control start

View File

@ -6,7 +6,7 @@
#
# Start the attitude and position estimator
#
ekf_att_pos_estimator start
ekf2 start
#
# Start attitude controller

View File

@ -11,7 +11,12 @@ then
param set RTL_DESCEND_ALT 100
param set RTL_LAND_DELAY -1
param set NAV_ACC_RAD 50
# 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
param set PE_VELNE_NOISE 0.3
param set PE_VELD_NOISE 0.35

View File

@ -45,10 +45,10 @@ then
if mixer load $OUTPUT_DEV $MIXER_FILE
then
echo "[i] Mixer: $MIXER_FILE on $OUTPUT_DEV"
echo "INFO [init] Mixer: $MIXER_FILE on $OUTPUT_DEV"
else
echo "[i] Error loading mixer: $MIXER_FILE"
echo "ERROR: Could not load mixer: $MIXER_FILE" >> $LOG_FILE
echo "ERROR [init] Error loading mixer: $MIXER_FILE"
echo "ERROR:[init] Could not load mixer: $MIXER_FILE" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
@ -56,8 +56,8 @@ then
else
if [ $MIXER != skip ]
then
echo "[i] Mixer not defined"
echo "ERROR: Mixer not defined" >> $LOG_FILE
echo "ERROR [init] Mixer not defined"
echo "ERROR [init] Mixer not defined" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
@ -137,10 +137,10 @@ then
then
if mixer load $OUTPUT_AUX_DEV $MIXER_AUX_FILE
then
echo "[i] Mixer: $MIXER_AUX_FILE on $OUTPUT_AUX_DEV"
echo "INFO [init] Mixer: $MIXER_AUX_FILE on $OUTPUT_AUX_DEV"
else
echo "[i] Error loading mixer: $MIXER_AUX_FILE"
echo "ERROR: Could not load mixer: $MIXER_AUX_FILE" >> $LOG_FILE
echo "ERROR [init] Error loading mixer: $MIXER_AUX_FILE"
echo "ERROR [init] Could not load mixer: $MIXER_AUX_FILE" >> $LOG_FILE
fi
else
set PWM_AUX_OUT none

View File

@ -29,19 +29,9 @@ then
fi
#---------------------------------------
if mc_att_control start
then
else
# try the multiplatform version
mc_att_control_m start
fi
mc_att_control start
if mc_pos_control start
then
else
# try the multiplatform version
mc_pos_control_m start
fi
mc_pos_control start
#
# Start Land Detector

View File

@ -34,15 +34,6 @@ set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000
# Transitional support: ensure suitable PWM min/max param values
if param compare PWM_MIN 1000
then
param set PWM_MIN 1075
fi
if param compare PWM_MAX 2000
then
param set PWM_MAX 1950
fi
if param compare PWM_DISARMED 0
then
param set PWM_DISARMED 900

View File

@ -14,6 +14,17 @@ else
fmu i2c 1 100000
fmu i2c 2 100000
if ver hwcmp PX4FMU_V4
then
# We know there are sketchy boards out there
# as chinese companies produce Pixracers without
# fully understanding the critical parts of the
# schematic and BOM, leading to sensor brownouts
# on boot. Original Pixracers following the
# open hardware design do not require this.
fmu sensor_reset 20
fi
if ms5611 -s start
then
fi
@ -45,6 +56,11 @@ then
then
fi
# Internal SPI bus ICM-20608-G
if mpu6000 -T 20608 start
then
fi
# external MPU6K is rotated 180 degrees yaw
if mpu6000 -X -R 4 start
then
@ -84,6 +100,10 @@ then
then
fi
if mpu9250 start
then
fi
if l3gd20 start
then
fi
@ -190,7 +210,7 @@ else
fi
fi
if sf10a start
if sf1xx start
then
fi

View File

@ -1,29 +0,0 @@
#!nsh
#
# UAVCAN initialization script.
#
#
# Starting stuff according to UAVCAN_ENABLE value
#
if param greater UAVCAN_ENABLE 0
then
if uavcan start
then
echo "[i] UAVCAN started"
else
echo "[i] ERROR: Could not start UAVCAN"
tone_alarm $TUNE_ERR
fi
fi
if param greater UAVCAN_ENABLE 1
then
if uavcan start fw
then
echo "[i] UAVCAN servers started"
else
echo "[i] ERROR: Could not start UAVCAN servers"
tone_alarm $TUNE_ERR
fi
fi

View File

@ -1,9 +0,0 @@
#!nsh
#
# USB MAVLink start
#
mavlink start -r 800000 -d /dev/ttyACM0 -m config -x
# Exit shell to make it available to MAVLink
exit

View File

@ -34,15 +34,6 @@ set PWM_DISARMED p:PWM_DISARMED
set PWM_MIN p:PWM_MIN
set PWM_MAX p:PWM_MAX
# Transitional support: ensure suitable PWM min/max param values
if param compare PWM_MIN 1000
then
param set PWM_MIN 1075
fi
if param compare PWM_MAX 2000
then
param set PWM_MAX 1950
fi
if param compare PWM_DISARMED 0
then
param set PWM_DISARMED 900

View File

@ -32,9 +32,9 @@ else
then
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
echo "[i] microSD card formatted"
echo "INFO [init] MicroSD card formatted"
else
echo "[i] format failed"
echo "ERROR [init] Format failed"
tone_alarm MNBG
set LOG_FILE /dev/null
fi
@ -50,7 +50,7 @@ fi
set FRC /fs/microsd/etc/rc.txt
if [ -f $FRC ]
then
echo "[i] Executing script: $FRC"
echo "INFO [init] Executing script: $FRC"
sh $FRC
set MODE custom
fi
@ -109,6 +109,16 @@ then
set AUTOCNF yes
else
set AUTOCNF no
#
# Release 1.4.0 transitional support:
# set to old default if unconfigured.
# this preserves the previous behaviour
#
if param compare BAT_N_CELLS 0
then
param set BAT_N_CELLS 3
fi
fi
#
@ -173,7 +183,7 @@ then
#
if param compare SYS_AUTOSTART 0
then
echo "[i] No autostart"
echo "INFO [init] No autostart"
else
sh /etc/init.d/rc.autostart
fi
@ -192,7 +202,7 @@ then
set FCONFIG /fs/microsd/etc/config.txt
if [ -f $FCONFIG ]
then
echo "[i] Custom: $FCONFIG"
echo "INFO [init] Custom: $FCONFIG"
sh $FCONFIG
fi
unset FCONFIG
@ -223,7 +233,7 @@ then
if px4io checkcrc ${IO_FILE}
then
echo "PX4IO CRC OK" >> $LOG_FILE
echo "INFO [init] PX4IO CRC OK" >> $LOG_FILE
set IO_PRESENT yes
else
@ -246,16 +256,16 @@ then
usleep 500000
if px4io checkcrc $IO_FILE
then
echo "PX4IO CRC OK after updating" >> $LOG_FILE
echo "INFO [init] PX4IO CRC OK after updating" >> $LOG_FILE
tone_alarm MLL8CDE
set IO_PRESENT yes
else
echo "PX4IO update failed" >> $LOG_FILE
echo "ERROR [init] PX4IO update failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
else
echo "PX4IO update failed" >> $LOG_FILE
echo "ERROR [init] PX4IO update failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
@ -263,7 +273,7 @@ then
if [ $IO_PRESENT == no ]
then
echo "ERROR: PX4IO not found" >> $LOG_FILE
echo "ERROR [init] PX4IO not found" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
@ -330,6 +340,11 @@ then
commander start
fi
#
# Start CPU load monitor
#
load_mon start
#
# Start primary output
#
@ -350,7 +365,7 @@ then
then
if param compare UAVCAN_ENABLE 0
then
echo "[i] OVERRIDING UAVCAN_ENABLE = 1"
echo "INFO [init] OVERRIDING UAVCAN_ENABLE = 1" >> $LOG_FILE
param set UAVCAN_ENABLE 1
fi
fi
@ -361,7 +376,7 @@ then
then
sh /etc/init.d/rc.io
else
echo "PX4IO start failed" >> $LOG_FILE
echo "INFO [init] PX4IO start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
@ -371,7 +386,7 @@ then
if fmu mode_$FMU_MODE
then
else
echo "FMU start failed" >> $LOG_FILE
echo "ERR [init] FMU start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
@ -403,7 +418,7 @@ then
if mkblctrl $MKBLCTRL_ARG
then
else
echo "ERROR: MK start failed" >> $LOG_FILE
echo "ERROR [init] MK start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
unset MKBLCTRL_ARG
@ -415,7 +430,7 @@ then
if pwm_out_sim mode_port2_pwm8
then
else
echo "PWM SIM start failed" >> $LOG_FILE
echo "ERROR [init] PWM SIM start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
@ -431,7 +446,7 @@ then
then
sh /etc/init.d/rc.io
else
echo "PX4IO start failed" >> $LOG_FILE
echo "ERROR [init] PX4IO start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
@ -441,7 +456,7 @@ then
if fmu mode_$FMU_MODE
then
else
echo "FMU mode_$FMU_MODE start failed" >> $LOG_FILE
echo "ERROR [init] FMU mode_$FMU_MODE start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
@ -525,25 +540,17 @@ then
# clear pins 5 and 6
if param compare SENS_EN_LL40LS 1
then
set FMU_MODE pwm4
set AUX_MODE pwm4
fi
if param greater TRIG_MODE 0
then
# Get FMU driver out of the way
set MIXER_AUX none
set AUX_MODE none
set FMU_MODE pwm4
set AUX_MODE pwm4
camera_trigger start
fi
fi
# Transitional support: Disable safety on all Pixracer boards
if ver hwcmp PX4FMU_V4
then
if param set CBRK_IO_SAFETY 22027
then
fi
fi
#
# Starting stuff according to UAVCAN_ENABLE value
#
@ -586,6 +593,12 @@ then
sf0x start
fi
# mb12xx sonar sensor
if param compare SENS_EN_MB12XX 1
then
mb12xx start
fi
if ver hwcmp PX4FMU_V4
then
frsky_telemetry start -d /dev/ttyS6
@ -612,26 +625,36 @@ then
mavlink start -r 800000 -d /dev/ttyACM0 -m config -x
fi
#
# Logging
#
if [ -d /fs/microsd ]
if ver hwcmp PX4FMU_V1
then
if ver hwcmp PX4FMU_V1
if sdlog2 start -r 30 -a -b 2 -t
then
if sdlog2 start -r 30 -a -b 2 -t
fi
else
# check if we should increase logging rate for ekf2 replay message logging
if param greater EKF2_REC_RPL 0
then
if param compare SYS_LOGGER 0
then
fi
else
# check if we should increase logging rate for ekf2 replay message logging
if param greater EKF2_REC_RPL 0
then
if sdlog2 start -r 500 -e -b 20 -t
if sdlog2 start -r 500 -e -b 18 -t
then
fi
else
if sdlog2 start -r 100 -a -b 12 -t
if logger start -r 500
then
fi
fi
else
if param compare SYS_LOGGER 0
then
if sdlog2 start -r 100 -a -b 9 -t
then
fi
else
if logger start -b 12 -t
then
fi
fi
@ -651,7 +674,7 @@ then
#
if [ $VEHICLE_TYPE == fw ]
then
echo "FIXED WING"
echo "INFO [init] Fixedwing"
if [ $MIXER == none ]
then
@ -679,11 +702,11 @@ then
#
if [ $VEHICLE_TYPE == mc ]
then
echo "MULTICOPTER"
echo "INFO [init] Multicopter"
if [ $MIXER == none ]
then
echo "Mixer undefined"
echo "INFO [init] Mixer undefined"
fi
if [ $MAV_TYPE == none ]
@ -721,12 +744,16 @@ then
then
set MAV_TYPE 14
fi
if [ $MIXER == coax ]
then
set MAV_TYPE 3
fi
fi
# Still no MAV_TYPE found
if [ $MAV_TYPE == none ]
then
echo "Unknown MAV_TYPE"
echo "WARN [init] Unknown MAV_TYPE"
param set MAV_TYPE 2
else
param set MAV_TYPE $MAV_TYPE
@ -744,11 +771,11 @@ then
#
if [ $VEHICLE_TYPE == vtol ]
then
echo "VTOL"
echo "INFO [init] VTOL"
if [ $MIXER == none ]
then
echo "VTOL mixer undefined"
echo "WARN [init] VTOL mixer undefined"
fi
if [ $MAV_TYPE == none ]
@ -771,7 +798,7 @@ then
# Still no MAV_TYPE found
if [ $MAV_TYPE == none ]
then
echo "Unknown MAV_TYPE"
echo "WARN [init] Unknown MAV_TYPE"
param set MAV_TYPE 19
else
param set MAV_TYPE $MAV_TYPE
@ -855,14 +882,14 @@ then
#
if [ $VEHICLE_TYPE == none ]
then
echo "[i] No autostart ID found"
echo "WARN [init] No autostart ID found"
fi
# Start any custom addons
set FEXTRAS /fs/microsd/etc/extras.txt
if [ -f $FEXTRAS ]
then
echo "[i] Addons script: $FEXTRAS"
echo "INFO [init] Addons script: $FEXTRAS"
sh $FEXTRAS
fi
unset FEXTRAS
@ -886,7 +913,7 @@ mavlink boot_complete
if [ $EXIT_ON_END == yes ]
then
echo "NSH EXIT"
echo "INFO [init] NSH exit"
exit
fi
unset EXIT_ON_END

Binary file not shown.

View File

@ -0,0 +1,38 @@
# mixer for the CruiseAder Claire tilt mechansim servo, aileron and elevator
=======================================================================
Tilt mechanism servo mixer
---------------------------
M: 1
O: 10000 10000 0 -10000 10000
S: 1 4 10000 10000 0 -10000 10000
Aileron mixers
-------------
M: 1
O: 10000 10000 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

View File

@ -0,0 +1,7 @@
# CruiseAder Claire Main Multirotor mixer for PX4FMU
#
#===========================
R: 4x 10000 10000 10000 0

View File

@ -0,0 +1,20 @@
# mixer for the GreenKoptr tilt mechansim servo, elevons and landing gear
=======================================================================
Tilt mechanism servo mixer
---------------------------
M: 1
O: 10000 10000 0 -10000 10000
S: 1 4 0 20000 -10000 -10000 10000
Elevon mixers
-------------
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -7500 -7500 0 -10000 10000
S: 1 1 8000 8000 0 -10000 10000
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -7500 -7500 0 -10000 10000
S: 1 1 -8000 -8000 0 -10000 10000

View File

@ -0,0 +1,4 @@
# GreenKoptr mixer for PX4FMU
#
#===========================
R: 6t 10000 10000 10000 0

View File

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

View File

@ -1,26 +0,0 @@
Mixer for SITL plane, using the VTOL airframe for now
=========================================================
Z:
Z:
Z:
Z:
# mixer for the elevons
M: 2
O: 10000 10000 0 -10000 10000
S: 0 0 5000 5000 0 -10000 10000
S: 0 1 -5000 -5000 0 -10000 10000
M: 2
O: 10000 10000 0 -10000 10000
S: 0 0 5000 5000 0 -10000 10000
S: 0 1 5000 5000 0 -10000 10000
# mixer for the pusher/puller throttle
M: 1
O: 10000 10000 0 -10000 10000
S: 0 3 0 20000 -10000 -10000 10000

View File

@ -1,18 +0,0 @@
Multirotor mixer for PX4FMU
===========================
This file defines a single mixer for a quadrotor in the V configuration. All controls
are mixed 100%.
R: 4v 10000 10000 10000 0
Gimbal / payload mixer for last two channels
-----------------------------------------------------
M: 1
O: 10000 10000 0 -10000 10000
S: 3 5 10000 10000 0 -10000 10000
M: 1
O: 10000 10000 0 -10000 10000
S: 3 6 10000 10000 0 -10000 10000

View File

@ -6,13 +6,21 @@ are mixed 100%.
R: 4x 10000 10000 10000 0
#mixer for the elevons
Z:
# left elevon
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 5000 5000 0 -10000 10000
S: 1 1 5000 5000 0 -10000 10000
# right elevon
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 5000 5000 0 -10000 10000
S: 1 1 -5000 -5000 0 -10000 10000
# mixer for the virtual elevator
M: 1
O: 10000 10000 0 -10000 10000
S: 1 1 10000 10000 0 -10000 10000

View File

@ -1,7 +0,0 @@
Multirotor mixer for PX4FMU
===========================
This file defines a single mixer for a quadrotor in the X configuration. All controls
are mixed 100%.
R: 4x 10000 10000 10000 0

View File

@ -19,13 +19,13 @@ input is inverted between the two servos.
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -6000 -6000 0 -10000 10000
S: 1 1 6500 6500 0 -10000 10000
S: 1 0 -8000 -8000 0 -10000 10000
S: 1 1 8000 8000 0 -10000 10000
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 -6000 -6000 0 -10000 10000
S: 1 1 -6500 -6500 0 -10000 10000
S: 1 0 -8000 -8000 0 -10000 10000
S: 1 1 -8000 -8000 0 -10000 10000
Motor speed mixer
-----------------

View File

@ -0,0 +1,201 @@
#!nsh
#
# Standard startup script for PX4FMU v1, v2, v3, v4 onboard sensor drivers.
#
if ver hwcmp PX4FMU_V1
then
if ms5611 start
then
fi
else
# Configure all I2C buses to 100 KHz as they
# are all external or slow
fmu i2c 1 100000
fmu i2c 2 100000
if ms5611 -s start
then
fi
# Blacksheep telemetry
if bst start
then
fi
fi
if adc start
then
fi
if ver hwcmp PX4FMU_V2
then
# External I2C bus
if hmc5883 -C -T -X start
then
fi
# External I2C bus
if lis3mdl -X start
then
fi
# Internal I2C bus
if hmc5883 -C -T -I -R 4 start
then
fi
# external MPU6K is rotated 180 degrees yaw
if mpu6000 -X -R 4 start
then
set BOARD_FMUV3 true
else
set BOARD_FMUV3 false
fi
if [ $BOARD_FMUV3 == true ]
then
# external L3GD20H is rotated 180 degrees yaw
if l3gd20 -X -R 4 start
then
fi
# external LSM303D is rotated 270 degrees yaw
if lsm303d -X -R 6 start
then
fi
# internal MPU6000 is rotated 180 deg roll, 270 deg yaw
if mpu6000 -R 14 start
then
fi
if hmc5883 -C -T -S -R 8 start
then
fi
if meas_airspeed start -b 2
then
fi
else
# FMUv2
if mpu6000 start
then
fi
if l3gd20 start
then
fi
if lsm303d start
then
fi
fi
fi
if ver hwcmp PX4FMU_V4
then
# External I2C bus
if hmc5883 -C -T -X start
then
fi
if lis3mdl -R 2 start
then
fi
# Internal SPI bus is rotated 90 deg yaw
if hmc5883 -C -T -S -R 2 start
then
fi
# Internal SPI bus ICM-20608-G is rotated 90 deg yaw
if mpu6000 -R 2 -T 20608 start
then
fi
# Internal SPI bus mpu9250 is rotated 90 deg yaw
if mpu9250 -R 2 start
then
fi
fi
if ver hwcmp PX4FMU_V1
then
# FMUv1
if mpu6000 start
then
fi
if l3gd20 start
then
fi
# MAG selection
if param compare SENS_EXT_MAG 2
then
if hmc5883 -C -I start
then
fi
else
# Use only external as primary
if param compare SENS_EXT_MAG 1
then
if hmc5883 -C -X start
then
fi
else
# auto-detect the primary, prefer external
if hmc5883 start
then
fi
fi
fi
fi
if ver hwcmp MINDPX_V2
then
if mpu6500 start
then
fi
if lsm303d start
then
fi
if l3gd20 start
then
fi
# External I2C bus
if hmc5883 -C -T -X start
then
fi
if lis3mdl -R 2 start
then
fi
fi
if meas_airspeed start
then
else
if ets_airspeed start
then
else
if ets_airspeed start -b 1
then
fi
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
then
fi

View File

@ -38,6 +38,11 @@ fi
# Start a minimal system
#
#
# Start the ORB (first app to start)
#
uorb start
#
# Load parameters
#
@ -104,131 +109,24 @@ then
tests mount
fi
sh /etc/init.d/rc.sensors
ver all
#
# Run unit tests at board boot, reporting failure as needed.
# Add new unit tests using the same pattern as below.
#
if mavlink_tests
then
else
set unit_test_failure 1
set unit_test_failure_list "${unit_test_failure_list} mavlink_tests"
fi
if commander_tests
then
else
set unit_test_failure 1
set unit_test_failure_list "${unit_test_failure_list} commander_tests"
fi
if uorb test
then
else
set unit_test_failure 1
set unit_test_failure_list "${unit_test_failure_list} uorb_tests"
fi
# Start all sensors on all boards
ms5611 start
adc start
if mpu6000 -X start
then
fi
if mpu6000 start
then
fi
if l3gd20 -X start
then
fi
if l3gd20 start
then
fi
# MAG selection
if param compare SENS_EXT_MAG 2
then
if hmc5883 -I start
then
fi
else
# Use only external as primary
if param compare SENS_EXT_MAG 1
then
if hmc5883 -X start
then
fi
else
# auto-detect the primary, prefer external
if hmc5883 start
then
fi
fi
fi
if ver hwcmp PX4FMU_V2
then
if lsm303d -X start
then
fi
if lsm303d start
then
fi
if ms5611 -X start
then
fi
fi
if meas_airspeed start
then
else
if ets_airspeed start
then
else
if ets_airspeed start -b 1
then
fi
fi
fi
if sensors start
then
fi
# Check for flow sensor
if px4flow start
then
fi
if ll40ls start
then
fi
if tests all
then
else
set unit_test_failure 1
set unit_test_failure_list "${unit_test_failure_list} system_tests"
fi
if [ $unit_test_failure == 0 ]
then
echo
echo "All Unit Tests PASSED"
rgbled rgb 20 255 20
else
echo
echo "Some Unit Tests FAILED:${unit_test_failure_list}"
echo "Some Unit Tests FAILED"
rgbled rgb 255 20 20
fi
ver all
free

View File

@ -0,0 +1,36 @@
Mixer for SITL plane
=========================================================
Z:
Z:
# mixer for the rudder
M: 1
O: 10000 10000 0 -10000 10000
S: 0 2 10000 10000 0 -10000 10000
# mixer for the flaps
M: 1
O: 10000 10000 0 -10000 10000
S: 0 4 10000 10000 0 -10000 10000
# mixer for the pusher/puller throttle
M: 1
O: 10000 10000 0 -10000 10000
S: 0 3 0 20000 -10000 -10000 10000
# mixer for the left aileron
M: 1
O: 10000 10000 0 -10000 10000
S: 0 0 -10000 -10000 0 -10000 10000
# mixer for the right aileron
M: 1
O: 10000 10000 0 -10000 10000
S: 0 0 10000 10000 0 -10000 10000
# mixer for the elevator
M: 1
O: 10000 10000 0 -10000 10000
S: 0 1 10000 10000 0 -10000 10000

View File

@ -1,24 +1,26 @@
Mixer for standard vtol plane (SITL) with motor x configuration
=========================================================
This file defines a single mixer for a standard vtol plane (SITL gazebo) with motors in X configuration.
The plane has two ailerons and one elevator. The ailerons and elevator are treated as elevons
in order to make the standard vtol simulation compatible with the tailsitter simulation.
This file defines a single mixer for a standard vtol plane (SITL gazebo) with motors in X configuration. The plane has two ailerons and one elevator.
R: 4x 10000 10000 10000 0
# mixer for the elevons
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 5000 5000 0 -10000 10000
S: 1 1 -5000 -5000 0 -10000 10000
M: 2
O: 10000 10000 0 -10000 10000
S: 1 0 5000 5000 0 -10000 10000
S: 1 1 5000 5000 0 -10000 10000
# mixer for the pusher/puller throttle
M: 1
O: 10000 10000 0 -10000 10000
S: 1 3 0 20000 -10000 -10000 10000
# mixer for the left aileron
M: 1
O: 10000 10000 0 -10000 10000
S: 1 0 10000 10000 0 -10000 10000
# mixer for the right aileron
M: 1
O: 10000 10000 0 -10000 10000
S: 1 0 -10000 -10000 0 -10000 10000
# mixer for the elevator
M: 1
O: 10000 10000 0 -10000 10000
S: 1 1 10000 10000 0 -10000 10000

View File

@ -0,0 +1,21 @@
#!nsh
#
# @name Generic Quadrotor X config
#
# @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>
#
sh /etc/init.d/rc.mc_defaults
if tap_esc start -d /dev/ttyS4 -n 4
then
fi
set OUTPUT_MODE tap_esc
param set BAT_N_CELLS 4
set MIXER quad_x

View File

@ -0,0 +1,25 @@
#!nsh
#
# @name Generic Hexarotor x geometry
#
# @type Hexarotor 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 Anton Babushkin <anton@px4.io>
#
sh /etc/init.d/rc.mc_defaults
param set MAV_TYPE 13
param set MC_YAWRATE_P 0.12
param set CAL_MAG0_ROT 6
if tap_esc start -d /dev/ttyS4 -n 6
then
fi
set OUTPUT_MODE tap_esc
set MIXER hexa_x

View File

@ -0,0 +1,20 @@
#!nsh
#
# Standard apps for fixed wing
#
#
# Start the attitude and position estimator
#
ekf2 start
#
# Start attitude controller
#
fw_att_control start
fw_pos_control_l1 start
#
# Start Land Detector
#
land_detector start fixedwing

View File

@ -0,0 +1,28 @@
#!nsh
set VEHICLE_TYPE fw
if [ $AUTOCNF == yes ]
then
#
# Default parameters for FW
#
param set RTL_RETURN_ALT 100
param set RTL_DESCEND_ALT 100
param set RTL_LAND_DELAY -1
param set NAV_ACC_RAD 50
param set PE_VELNE_NOISE 0.3
param set PE_VELD_NOISE 0.35
param set PE_POSNE_NOISE 0.5
param set PE_POSD_NOISE 1.0
fi
# This is the gimbal pass mixer
set MIXER_AUX pass
set PWM_AUX_RATE 50
set PWM_AUX_OUT 1234
set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000

View File

@ -0,0 +1,83 @@
#!nsh
#
# Script to configure control interface
#
set SDCARD_MIXERS_PATH /fs/microsd/etc/mixers
if [ $MIXER != none -a $MIXER != skip ]
then
#
# Load main mixer
#
# Use the mixer file
set MIXER_FILE /etc/mixers/$MIXER.main.mix
set OUTPUT_DEV /dev/pwm_output0
if [ $OUTPUT_MODE == tap_esc ]
then
set OUTPUT_DEV /dev/tap_esc
fi
if mixer load $OUTPUT_DEV $MIXER_FILE
then
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
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
fi
fi
if [ $OUTPUT_MODE == fmu -o $OUTPUT_MODE == io ]
then
if [ $PWM_OUT != none ]
then
#
# Set PWM output frequency
#
if [ $PWM_RATE != none ]
then
pwm rate -c $PWM_OUT -r $PWM_RATE
fi
#
# Set disarmed, min and max PWM values
#
if [ $PWM_DISARMED != none ]
then
pwm disarmed -c $PWM_OUT -p $PWM_DISARMED
fi
if [ $PWM_MIN != none ]
then
pwm min -c $PWM_OUT -p $PWM_MIN
fi
if [ $PWM_MAX != none ]
then
pwm max -c $PWM_OUT -p $PWM_MAX
fi
fi
if [ $FAILSAFE != none ]
then
pwm failsafe -d $OUTPUT_DEV $FAILSAFE
fi
fi
unset PWM_OUT
unset PWM_RATE
unset PWM_MIN
unset PWM_MAX
unset FAILSAFE
unset OUTPUT_DEV

View File

@ -0,0 +1,17 @@
#!nsh
#
# Standard apps for multirotors:
# att & pos estimator, att & pos control.
#
ekf2 start
mc_att_control start
mc_pos_control start
#
# Start Land Detector
#
land_detector start multicopter

View File

@ -0,0 +1,38 @@
#!nsh
set VEHICLE_TYPE mc
if [ $AUTOCNF == yes ]
then
param set PE_VELNE_NOISE 0.5
param set PE_VELD_NOISE 0.35
param set PE_POSNE_NOISE 0.5
param set PE_POSD_NOISE 1.25
param set PWM_DISARMED 900
param set PWM_MIN 1075
param set PWM_MAX 1950
fi
param set NAV_ACC_RAD 2.0
param set MIS_TAKEOFF_ALT 2.5
param set RTL_RETURN_ALT 30.0
param set RTL_DESCEND_ALT 10.0
param set RTL_LAND_DELAY 0
param set MPC_THR_MIN 0.10
param set MPC_MANTHR_MIN 0.04
# 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
# This is the gimbal pass mixer
set MIXER_AUX pass
set PWM_AUX_RATE 50
set PWM_AUX_OUT 1234
set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000

View File

@ -0,0 +1,28 @@
#!nsh
#
# Standard startup script for TAP v1 onboard sensor drivers.
#
if adc start
then
fi
if ms5611 -T 5607 -I start
then
fi
# External I2C bus
if hmc5883 -C -T -X start
then
fi
# Internal I2C bus
if mpu6000 -I -T 6000 start
then
fi
# Wait 50 ms for sensors (because we need to wait for the HRT and work queue callbacks to fire)
usleep 50000
if sensors start
then
fi

View File

@ -0,0 +1,24 @@
#!nsh
#
# Standard apps for vtol:
# att & pos estimator, att & pos control.
#
#
#---------------------------------------
# Estimator group selction
#
ekf2 start
vtol_att_control start
mc_att_control start
mc_pos_control start
fw_att_control start
fw_pos_control_l1 start
#
# Start Land Detector
# Multicopter for now until we have something for VTOL
#
land_detector start vtol

View File

@ -0,0 +1,49 @@
#!nsh
set VEHICLE_TYPE vtol
if [ $AUTOCNF == yes ]
then
param set MC_ROLL_P 6.0
param set MC_PITCH_P 6.0
param set MC_YAW_P 4
param set PE_VELNE_NOISE 0.5
param set PE_VELD_NOISE 0.3
param set PE_POSNE_NOISE 0.5
param set PE_POSD_NOISE 1.25
param set PE_ABIAS_PNOISE 0.0001
#
# Default parameters for mission and position handling
#
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_XY_VEL_MAX 4.0
param set MIS_YAW_TMT 10
param set MPC_ACC_HOR_MAX 2.0
param set RTL_LAND_DELAY 0
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
# Transitional support: ensure suitable PWM min/max param values
if param compare PWM_MIN 1000
then
param set PWM_MIN 1075
fi
if param compare PWM_MAX 2000
then
param set PWM_MAX 1950
fi
if param compare PWM_DISARMED 0
then
param set PWM_DISARMED 900
fi

347
ROMFS/tap_common/init.d/rcS Normal file
View File

@ -0,0 +1,347 @@
#!nsh
#
# TAP startup script.
#
# NOTE: COMMENT LINES ARE REMOVED BEFORE STORED IN ROMFS.
#
# Serial map:
# /dev/ttyS0: GPS
# /dev/ttyS1: GB
# /dev/ttyS2: nsh shell / console
# /dev/ttyS3: payload
# /dev/ttyS4: esc bus
# /dev/ttyS5: RC input
#
# Start CDC/ACM serial driver
#
sercon
set TUNE_ERR ML<<CP4CP4CP4CP4CP4
set LOG_FILE /fs/microsd/bootlog.txt
#
# Try to mount the microSD card.
#
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
echo "microSD present"
else
if mkfatfs /dev/mmcsd0
then
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
echo "microSD card formatted"
else
echo "ERROR [init] Format failed"
tone_alarm MNBG
set LOG_FILE /dev/null
fi
else
set LOG_FILE /dev/null
fi
fi
#
# Start the ORB (first app to start)
#
uorb start
#
# Load parameters
#
set PARAM_FILE /fs/microsd/params
if mtd start
then
set PARAM_FILE /fs/mtd_params
fi
param select $PARAM_FILE
if param load
then
else
if param reset
then
fi
fi
tone_alarm start
#
# Start system state indicator
#
if rgbled start
then
fi
#
# Set parameters and env variables for selected AUTOSTART
#
if param compare SYS_AUTOSTART 0
then
param set SYS_AUTOSTART 6001
param set SYS_AUTOCONFIG 1
fi
#
# Set AUTOCNF flag to use it in AUTOSTART scripts
#
if param compare SYS_AUTOCONFIG 1
then
# Wipe out params except RC*
param reset_nostart RC*
set AUTOCNF yes
else
set AUTOCNF no
fi
#
# Set default values
#
set VEHICLE_TYPE none
set MIXER 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 FMU_MODE pwm
set MAV_TYPE none
set FAILSAFE none
# Start canned airframe config
sh /etc/init.d/rc.autostart
#
# If autoconfig parameter was set, reset it and save parameters
#
if [ $AUTOCNF == yes ]
then
param set SYS_AUTOCONFIG 0
param save
fi
unset AUTOCNF
#
# Set default output if not set
#
if [ $OUTPUT_MODE == none ]
then
if [ $USE_IO == yes ]
then
set OUTPUT_MODE io
else
set OUTPUT_MODE fmu
fi
fi
gps start -d /dev/ttyS0
# waypoint storage
# REBOOTWORK this needs to start in parallel
if dataman start
then
fi
#
# Sensors System (start before Commander so Preflight checks are properly run)
#
sh /etc/init.d/rc.sensors
commander start
#
# Start CPU load monitor
#
load_mon start
# Start MAVLink on the gimbal port
#mavlink start -r 1200 -d /dev/ttyS1
# Start MAVLink on USB, developers can use the MAVLink shell
mavlink start -r 60000 -d /dev/ttyACM0 -m config
#
# Logging
#
#if logger start -b 2 -t
#then
#fi
#
# Fixed wing setup
#
if [ $VEHICLE_TYPE == fw ]
then
echo "INFO [init] Fixedwing"
if [ $MIXER == none ]
then
# Set default mixer for fixed wing if not defined
set MIXER AERT
fi
if [ $MAV_TYPE == none ]
then
# Use MAV_TYPE = 1 (fixed wing) if not defined
set MAV_TYPE 1
fi
param set MAV_TYPE $MAV_TYPE
# Load mixer and configure outputs
sh /etc/init.d/rc.interface
# Start standard fixedwing apps
sh /etc/init.d/rc.fw_apps
fi
#
# Multicopters setup
#
if [ $VEHICLE_TYPE == mc ]
then
echo "INFO [init] Multicopter"
if [ $MIXER == none ]
then
echo "INFO [init] Mixer undefined"
fi
if [ $MAV_TYPE == none ]
then
# Use mixer to detect vehicle type
if [ $MIXER == quad_x -o $MIXER == quad_+ ]
then
set MAV_TYPE 2
fi
if [ $MIXER == quad_w ]
then
set MAV_TYPE 2
fi
if [ $MIXER == quad_h ]
then
set MAV_TYPE 2
fi
if [ $MIXER == tri_y_yaw- -o $MIXER == tri_y_yaw+ ]
then
set MAV_TYPE 15
fi
if [ $MIXER == hexa_x -o $MIXER == hexa_+ ]
then
set MAV_TYPE 13
fi
if [ $MIXER == hexa_cox ]
then
set MAV_TYPE 13
fi
if [ $MIXER == octo_x -o $MIXER == octo_+ ]
then
set MAV_TYPE 14
fi
fi
# Still no MAV_TYPE found
if [ $MAV_TYPE == none ]
then
echo "WARN [init] Unknown MAV_TYPE"
param set MAV_TYPE 2
else
param set MAV_TYPE $MAV_TYPE
fi
# Load mixer and configure outputs
sh /etc/init.d/rc.interface
# Start standard multicopter apps
sh /etc/init.d/rc.mc_apps
fi
#
# VTOL setup
#
if [ $VEHICLE_TYPE == vtol ]
then
echo "INFO [init] VTOL"
if [ $MIXER == none ]
then
echo "WARN [init] VTOL mixer undefined"
fi
if [ $MAV_TYPE == none ]
then
# Use mixer to detect vehicle type
if [ $MIXER == caipirinha_vtol ]
then
set MAV_TYPE 19
fi
if [ $MIXER == firefly6 ]
then
set MAV_TYPE 21
fi
if [ $MIXER == quad_x_pusher_vtol ]
then
set MAV_TYPE 22
fi
fi
# Still no MAV_TYPE found
if [ $MAV_TYPE == none ]
then
echo "WARN [init] Unknown MAV_TYPE"
param set MAV_TYPE 19
else
param set MAV_TYPE $MAV_TYPE
fi
# Load mixer and configure outputs
sh /etc/init.d/rc.interface
# Start standard vtol apps
sh /etc/init.d/rc.vtol_apps
fi
#
# Rover setup
#
if [ $VEHICLE_TYPE == rover ]
then
# 10 is MAV_TYPE_GROUND_ROVER
set MAV_TYPE 10
# 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
fi
unset MIXER
unset MAV_TYPE
unset OUTPUT_MODE
#
# Start the RC input driver
#
if fmu mode_rcin
then
fi
#
# Start the navigator
#
if navigator start
then
fi
# There is no further script processing, so we can free some RAM
# XXX potentially unset all script variables.
unset TUNE_ERR
# Boot is complete, inform MAVLink app(s) that the system is now fully up and running
mavlink boot_complete

View File

@ -0,0 +1,105 @@
## PX4 mixer definitions ##
Files in this directory implement example mixers that can be used as a basis
for customisation, or for general testing purposes.
For a detailed description of the mixing architecture and examples see:
http://px4.io/dev/mixing
### Syntax ###
Mixer definitions are text files; lines beginning with a single capital letter
followed by a colon are significant. All other lines are ignored, meaning that
explanatory text can be freely mixed with the definitions.
Each file may define more than one mixer; the allocation of mixers to actuators
is specific to the device reading the mixer definition, and the number of
actuator outputs generated by a mixer is specific to the mixer.
For example: each simple or null mixer is assigned to outputs 1 to x
in the order they appear in the mixer file.
A mixer begins with a line of the form
<tag>: <mixer arguments>
The tag selects the mixer type; 'M' for a simple summing mixer, 'R' for a
multirotor mixer, etc.
#### Null Mixer ####
A null mixer consumes no controls and generates a single actuator output whose
value is always zero. Typically a null mixer is used as a placeholder in a
collection of mixers in order to achieve a specific pattern of actuator outputs.
The null mixer definition has the form:
Z:
#### Simple Mixer ####
A simple mixer combines zero or more control inputs into a single actuator
output. Inputs are scaled, and the mixing function sums the result before
applying an output scaler.
A simple mixer definition begins with:
M: <control count>
O: <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>
If <control count> is zero, the sum is effectively zero and the mixer will
output a fixed value that is <offset> constrained by <lower limit> and <upper
limit>.
The second line defines the output scaler with scaler parameters as discussed
above. Whilst the calculations are performed as floating-point operations, the
values stored in the definition file are scaled by a factor of 10000; i.e. an
offset of -0.5 is encoded as -5000.
The definition continues with <control count> entries describing the control
inputs and their scaling, in the form:
S: <group> <index> <-ve scale> <+ve scale> <offset> <lower limit> <upper limit>
The <group> value identifies the control group from which the scaler will read,
and the <index> value an offset within that group. These values are specific to
the device reading the mixer definition.
When used to mix vehicle controls, mixer group zero is the vehicle attitude
control group, and index values zero through three are normally roll, pitch,
yaw and thrust respectively.
The remaining fields on the line configure the control scaler with parameters as
discussed above. Whilst the calculations are performed as floating-point
operations, the values stored in the definition file are scaled by a factor of
10000; i.e. an offset of -0.5 is encoded as -5000.
#### Multirotor Mixer ####
The multirotor mixer combines four control inputs (roll, pitch, yaw, thrust)
into a set of actuator outputs intended to drive motor speed controllers.
The mixer definition is a single line of the form:
R: <geometry> <roll scale> <pitch scale> <yaw scale> <deadband>
The supported geometries include:
* 4x - quadrotor in X configuration
* 4+ - quadrotor in + configuration
* 6x - hexcopter in X configuration
* 6+ - hexcopter in + configuration
* 8x - octocopter in X configuration
* 8+ - octocopter in + configuration
Each of the roll, pitch and yaw scale values determine scaling of the roll,
pitch and yaw controls relative to the thrust control. Whilst the calculations
are performed as floating-point operations, the values stored in the definition
file are scaled by a factor of 10000; i.e. an factor of 0.5 is encoded as 5000.
Roll, pitch and yaw inputs are expected to range from -1.0 to 1.0, whilst the
thrust input ranges from 0.0 to 1.0. Output for each actuator is in the
range -1.0 to 1.0.
In the case where an actuator saturates, all actuator values are rescaled so that
the saturating actuator is limited to 1.0.

View File

@ -0,0 +1,3 @@
# Hexa X
R: 6x 10000 10000 10000 0

View File

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

View File

@ -1,9 +0,0 @@
QGC WPL 110
0 1 0 16 0 0 0 0 47.3979949951 8.54559612274 25.0 1
1 0 2 3000 4.0 0.0 0.0 0.0 47.3980331421 8.54578971863 25.0 1
2 0 3 16 0.0 0.0 -0.0 0.0 47.399269104 8.54557228088 25.0 1
3 0 3 16 0.0 0.0 -0.0 0.0 47.3992652893 8.54230213165 25.0 1
4 0 3 16 0.0 0.0 -0.0 0.0 47.3974761963 8.54239082336 25.0 1
5 0 3 16 0.0 0.0 -0.0 0.0 47.3976669312 8.54509449005 25.0 1
6 0 2 3000 3.0 0.0 0.0 0.0 47.3977851868 8.54526233673 25.0 1
7 0 3 21 25.0 0.0 -0.0 0.0 47.3979797363 8.54460906982 25.0 1

View File

@ -23,3 +23,7 @@ do
adb push $arg $last
((i+=1))
done
# Make sure they are synced to the file system
echo "Syncing FS..."
adb shell sync

39
Tools/adb_upload_to_bebop.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/bash
if [ -z ${BEBOP_IP+x} ]; then
ip=192.168.42.1
echo "\$BEBOP_IP is not set (use default: $ip)"
else
ip=$BEBOP_IP
echo "\$BEBOP_IP is set to $ip"
fi
port=9050
echo "Connecting to bebop: $ip:$port"
# adb returns also 0 as exit status if the connection fails
adb_return=$(adb connect $ip:$port)
adb_status=$(echo $adb_return | cut -f 1 -d " ")
if [[ $adb_status == "unable" ]]; then
echo ""
echo "Connection with Parrot Bebop could not be established:"
echo " Make sure you are connected with the Bebop's WiFi and"
echo " enable access to the board by pressing the power button 4 times."
echo ""
exit 50
fi
echo "Connection successfully established"
sleep 1
adb shell mount -o remount,rw /
adb shell touch /home/root/parameters
../Tools/adb_upload.sh $@
echo "Disconnecting from bebop"
adb disconnect

View File

@ -1,70 +1,29 @@
#!/usr/bin/env bash
set -eu
failed=0
for fn in $(find src/examples \
src/systemcmds \
src/include \
src/drivers \
src/platforms \
src/firmware \
src/lib/launchdetection \
src/lib/geo \
src/lib/geo_lookup \
src/lib/conversion \
src/lib/rc \
src/lib/version \
src/modules/attitude_estimator_q \
src/modules/fw_att_control \
src/modules/gpio_led \
src/modules/land_detector \
src/modules/muorb \
src/modules/px4iofirmware \
src/modules/param \
src/modules/sensors \
src/modules/simulator \
src/modules/uORB \
src/modules/bottle_drop \
src/modules/dataman \
src/modules/segway \
src/modules/local_position_estimator \
src/modules/unit_test \
src/modules/systemlib \
src/lib/controllib \
-path './Build' -prune -o \
-path './mavlink' -prune -o \
-path './NuttX' -prune -o \
-path './src/lib/eigen' -prune -o \
-path './src/modules/uavcan/libuavcan' -prune -o \
-path './src/modules/attitude_estimator_ekf/codegen' -prune -o \
-path './src/modules/ekf_att_pos_estimator' -prune -o \
-path './src/modules/sdlog2' -prune -o \
-path './src/modules/uORB' -prune -o \
-path './src/modules/vtol_att_control' -prune -o \
-path './unittests/build' -prune -o \
-path './unittests/gtest' -prune -o \
-name '*.c' -o -name '*.cpp' -o -name '*.hpp' -o -name '*.h' \
-not -name '*generated*' \
-not -name '*uthash.h' \
-not -name '*utstring.h' \
-not -name '*utlist.h' \
-not -name '*utarray.h' \
-type f); do
if [ -f "$fn" ];
then
./Tools/fix_code_style.sh --quiet < $fn > $fn.pretty
diffsize=$(diff -y --suppress-common-lines $fn $fn.pretty | wc -l)
rm -f $fn.pretty
if [ $diffsize -ne 0 ]; then
failed=1
echo $fn 'bad formatting, please run "./Tools/fix_code_style.sh' $fn'"'
fi
fi
done
if [ $failed -eq 0 ]; then
echo "Format checks passed"
exit 0
else
echo "Format checks failed"
exit 1
file=$1
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
if [ -f "$file" ];
then
${DIR}/fix_code_style.sh --dry-run $file | grep --quiet Formatted
if [[ $? -eq 0 ]]
then
${DIR}/fix_code_style.sh --quiet < $file > $file.pretty
echo
git --no-pager diff --no-index --minimal --histogram --color=always $file $file.pretty
echo
rm -f $file.pretty
if [[ $PX4_ASTYLE_FIX -eq 1 ]]
then
${DIR}/fix_code_style.sh $file
else
echo $file 'bad formatting, please run "./Tools/fix_code_style.sh' $file'"'
exit 1
fi
fi
fi

38
Tools/check_code_style_all.sh Executable file
View File

@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -eu
if [[ "$@" == "--fix" ]]
then
export PX4_ASTYLE_FIX=1
fi
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
find src \
-path src/lib/DriverFramework -prune -o \
-path src/lib/ecl -prune -o \
-path src/lib/external_lgpl -prune -o \
-path src/lib/mathlib -prune -o \
-path src/lib/matrix -prune -o \
-path src/modules/attitude_estimator_ekf -prune -o \
-path src/modules/commander -prune -o \
-path src/examples/ekf_att_pos_estimator -prune -o \
-path src/modules/mavlink -prune -o \
-path src/examples/attitude_estimator_ekf -prune -o \
-path src/modules/navigator -prune -o \
-path src/modules/sdlog2 -prune -o \
-path src/modules/uavcan -prune -o \
-path src/modules/uavcan/libuavcan -prune -o \
-type f \( -name "*.c" -o -name "*.h" -o -name "*.cpp" -o -name "*.hpp" \) \
-not -name '*generated.h' \
-not -name '*uthash.h' \
-not -name '*utstring.h' \
-not -name '*utlist.h' \
-not -name '*utarray.h' \
-print0 | xargs -0 -n 1 -P 8 -I % ${DIR}/check_code_style.sh %
if [ $? -eq 0 ]; then
echo "Format checks passed"
exit 0
fi

View File

@ -69,6 +69,7 @@ check_git_submodule Tools/jMAVSim
check_git_submodule Tools/sitl_gazebo
check_git_submodule cmake/cmake_hexagon
check_git_submodule mavlink/include/mavlink/v1.0
check_git_submodule mavlink/include/mavlink/v2.0
check_git_submodule src/lib/DriverFramework
check_git_submodule src/lib/DriverFramework/cmake/cmake_hexagon
check_git_submodule src/lib/DriverFramework/dspal

54
Tools/clang-tool.sh Executable file
View File

@ -0,0 +1,54 @@
#!/bin/bash
while getopts "b:t:" opt; do
case "${opt}" in
b)
builddir=$OPTARG
;;
t)
tool=$OPTARG
;;
esac
done
echo "builddir = ${builddir}, tool = ${tool}"
case "${builddir}" in
"build_posix_rpi_cross")
CXX_INC=$(cd ${RPI_TOOLCHAIN_DIR}/gcc-linaro-arm-linux-gnueabihf-raspbian/arm-linux-gnueabihf/include/c++/*; pwd)
EXTRA_ARG1=-I${CXX_INC}
EXTRA_ARG2=-I${CXX_INC}/arm-linux-gnueabihf
EXTRA_ARG3=-I${CXX_INC}/backward
extra_args="--extra-arg=-I${CXX_INC} --extra-arg=-I${CXX_INC}/arm-linux-gnueabihf --extra-arg=-I${CXX_INC}/backward"
;;
"build_posix_sitl_default")
;;
*)
echo "unknown build dir: ${builddir}"
;;
esac
COMPILE_DB=$(/bin/pwd)/${builddir}
if [[ ! -f ${COMPILE_DB}/compile_commands.json ]]; then
echo "compile_commands.json not found in ${COMPILE_DB}"
exit 1
fi
case "${tool}" in
"clang-check")
command=clang-check;
option=-analyze;
;;
"clang-tidy")
command=clang-tidy
;;
esac
grep file ${COMPILE_DB}/compile_commands.json |
awk '{ print $2; }' |
sed 's/\"//g' |
while read FILE; do
(cd $(dirname ${FILE});
${command} ${option} -p ${COMPILE_DB} ${extra_args} $(basename ${FILE})
);
done

View File

@ -43,10 +43,10 @@ import subprocess
# If the following lines were pasted into the shell after running decode_backtrace.py
#
# INFO Backtrace: 10
# INFO ./mainapp(px4_backtrace+0x27) [0x42b212]
# INFO ./mainapp() [0x42d608]
# INFO ./mainapp() [0x42d57e]
# INFO ./mainapp() [0x4ba48d]
# INFO ./px4(px4_backtrace+0x27) [0x42b212]
# INFO ./px4() [0x42d608]
# INFO ./px4() [0x42d57e]
# INFO ./px4() [0x4ba48d]
#
# The output would be:
#
@ -63,7 +63,7 @@ def usage():
msg = """
Usage: Tools/decode_backtrace.py <builddir>
This will load the symbols for <builddir>/src/firmware/posix/mainapp
This will load the symbols for <builddir>/src/firmware/posix/px4
The user just needs to copy and paste the backtrace into the terminal
where decode_backtrace.py is running.
@ -75,7 +75,7 @@ func = []
# Load the symbols from the binary
def load_symbol_map():
output = subprocess.check_output(["nm", "-p", "-C", os.sys.argv[1]+"/src/firmware/posix/mainapp"])
output = subprocess.check_output(["nm", "-p", "-C", os.sys.argv[1]+"/src/firmware/posix/px4"])
data = output.split("\n")
data.sort()

View File

@ -115,7 +115,6 @@ print("""
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#ifndef PRIu64
@ -173,6 +172,7 @@ for index,m in enumerate(messages[1:]):
print("\t\t\ti++;")
print("\t\t\tprintf(\"\\nTOPIC: %s #%%d\\n\", i);" % m)
print("\t\t\torb_copy(ID,sub,&container);")
print("\t\t\tprintf(\"timestamp: %\" PRIu64 \"\\n\", container.timestamp);")
for item in message_elements[index+1]:
if item[0] == "float":
print("\t\t\tprintf(\"%s: %%8.4f\\n\",(double)container.%s);" % (item[1], item[1]))

@ -1 +1 @@
Subproject commit 9155c8f955e05c969bcd932b705b98d98845f228
Subproject commit a5b0f1f0896c9372c62222e88117c6ced2c6282b

206
Tools/mavlink_shell.py Executable file
View File

@ -0,0 +1,206 @@
#!/usr/bin/env python
"""
Open a shell over MAVLink.
@author: Beat Kueng (beat-kueng@gmx.net)
"""
from __future__ import print_function
import sys, select
import termios
try:
from pymavlink import mavutil
import serial
except:
print("Failed to import pymavlink.")
print("You may need to install it with 'pip install pymavlink pyserial'")
exit(-1)
from argparse import ArgumentParser
class MavlinkSerialPort():
'''an object that looks like a serial port, but
transmits using mavlink SERIAL_CONTROL packets'''
def __init__(self, portname, baudrate, devnum=0, debug=0):
self.baudrate = 0
self._debug = debug
self.buf = ''
self.port = devnum
self.debug("Connecting with MAVLink to %s ..." % portname)
self.mav = mavutil.mavlink_connection(portname, autoreconnect=True, baud=baudrate)
self.mav.wait_heartbeat()
self.debug("HEARTBEAT OK\n")
self.debug("Locked serial device\n")
def debug(self, s, level=1):
'''write some debug text'''
if self._debug >= level:
print(s)
def write(self, b):
'''write some bytes'''
self.debug("sending '%s' (0x%02x) of len %u\n" % (b, ord(b[0]), len(b)), 2)
while len(b) > 0:
n = len(b)
if n > 70:
n = 70
buf = [ord(x) for x in b[:n]]
buf.extend([0]*(70-len(buf)))
self.mav.mav.serial_control_send(self.port,
mavutil.mavlink.SERIAL_CONTROL_FLAG_EXCLUSIVE |
mavutil.mavlink.SERIAL_CONTROL_FLAG_RESPOND,
0,
0,
n,
buf)
b = b[n:]
def close(self):
self.mav.mav.serial_control_send(self.port, 0, 0, 0, 0, [0]*70)
def _recv(self):
'''read some bytes into self.buf'''
m = self.mav.recv_match(condition='SERIAL_CONTROL.count!=0',
type='SERIAL_CONTROL', blocking=True,
timeout=0.03)
if m is not None:
if self._debug > 2:
print(m)
data = m.data[:m.count]
self.buf += ''.join(str(chr(x)) for x in data)
def read(self, n):
'''read some bytes'''
if len(self.buf) == 0:
self._recv()
if len(self.buf) > 0:
if n > len(self.buf):
n = len(self.buf)
ret = self.buf[:n]
self.buf = self.buf[n:]
if self._debug >= 2:
for b in ret:
self.debug("read 0x%x" % ord(b), 2)
return ret
return ''
def main():
parser = ArgumentParser(description=__doc__)
parser.add_argument('port', metavar='PORT', nargs='?', default = None,
help='Mavlink port name: serial: DEVICE[,BAUD], udp: IP:PORT, tcp: tcp:IP:PORT. Eg: \
/dev/ttyUSB0 or 0.0.0.0:14550. Auto-detect serial if not given.')
parser.add_argument("--baudrate", "-b", dest="baudrate", type=int,
help="Mavlink port baud rate (default=115200)", default=115200)
args = parser.parse_args()
if args.port == None:
serial_list = mavutil.auto_detect_serial(preferred_list=['*FTDI*',
"*Arduino_Mega_2560*", "*3D_Robotics*", "*USB_to_UART*", '*PX4*', '*FMU*'])
if len(serial_list) == 0:
print("Error: no serial connection found")
return
if len(serial_list) > 1:
print('Auto-detected serial ports are:')
for port in serial_list:
print(" {:}".format(port))
print('Using port {:}'.format(serial_list[0]))
args.port = serial_list[0].device
print("Connecting to MAVLINK...")
mav_serialport = MavlinkSerialPort(args.port, args.baudrate, devnum=10)
mav_serialport.write('\n') # make sure the shell is started
# setup the console, so we can read one char at a time
fd_in = sys.stdin.fileno()
old_attr = termios.tcgetattr(fd_in)
new_attr = termios.tcgetattr(fd_in)
new_attr[3] = new_attr[3] & ~termios.ECHO # lflags
new_attr[3] = new_attr[3] & ~termios.ICANON
try:
termios.tcsetattr(fd_in, termios.TCSANOW, new_attr)
cur_line = ''
command_history = []
cur_history_index = 0
def erase_last_n_chars(N):
if N == 0: return
CURSOR_BACK_N = '\x1b['+str(N)+'D'
ERASE_END_LINE = '\x1b[K'
sys.stdout.write(CURSOR_BACK_N + ERASE_END_LINE)
while True:
while True:
i, o, e = select.select([sys.stdin], [], [], 0)
if not i: break
ch = sys.stdin.read(1)
# provide a simple shell with command history
if ch == '\n':
if len(cur_line) > 0:
# erase current text (mavlink shell will echo it as well)
erase_last_n_chars(len(cur_line))
# add to history
if len(command_history) == 0 or command_history[-1] != cur_line:
command_history.append(cur_line)
if len(command_history) > 50:
del command_history[0]
cur_history_index = len(command_history)
mav_serialport.write(cur_line+'\n')
cur_line = ''
elif ord(ch) == 127: # backslash
if len(cur_line) > 0:
erase_last_n_chars(1)
cur_line = cur_line[:-1]
sys.stdout.write(ch)
elif ord(ch) == 033:
ch = sys.stdin.read(1) # skip one
ch = sys.stdin.read(1)
if ch == 'A': # arrow up
if cur_history_index > 0:
cur_history_index -= 1
elif ch == 'B': # arrow down
if cur_history_index < len(command_history):
cur_history_index += 1
# TODO: else: support line editing
erase_last_n_chars(len(cur_line))
if cur_history_index == len(command_history):
cur_line = ''
else:
cur_line = command_history[cur_history_index]
sys.stdout.write(cur_line)
elif ord(ch) > 3:
cur_line += ch
sys.stdout.write(ch)
sys.stdout.flush()
data = mav_serialport.read(4096)
if data and len(data) > 0:
sys.stdout.write(data)
sys.stdout.flush()
except serial.serialutil.SerialException as e:
print(e)
except KeyboardInterrupt:
mav_serialport.close()
finally:
termios.tcsetattr(fd_in, termios.TCSADRAIN, old_attr)
if __name__ == '__main__':
main()

View File

@ -69,6 +69,8 @@ class XMLOutput():
xml_group.attrib["image"] = "VTOLTiltRotor"
elif (group.GetName() == "Coaxial Helicopter"):
xml_group.attrib["image"] = "HelicopterCoaxial"
elif (group.GetName() == "Helicopter"):
xml_group.attrib["image"] = "Helicopter"
elif (group.GetName() == "Hexarotor Coaxial"):
xml_group.attrib["image"] = "Y6A"
elif (group.GetName() == "Y6B"):

View File

@ -1,5 +1,7 @@
import sys
import re
import math
global default_var
default_var = {}
@ -39,7 +41,7 @@ class Parameter(object):
# Define sorting order of the fields
priority = {
"board": 9,
"board": 9,
"short_desc": 8,
"long_desc": 7,
"min": 5,
@ -52,6 +54,7 @@ class Parameter(object):
def __init__(self, name, type, default = ""):
self.fields = {}
self.values = {}
self.bitmask = {}
self.name = name
self.type = type
self.default = default
@ -77,6 +80,12 @@ class Parameter(object):
"""
self.values[code] = value
def SetBitmaskBit(self, index, bit):
"""
Set named enum value
"""
self.bitmask[index] = bit
def GetFieldCodes(self):
"""
Return list of existing field codes in convenient order
@ -115,6 +124,24 @@ class Parameter(object):
return ""
return fv
def GetBitmaskList(self):
"""
Return list of existing bitmask codes in convenient order
"""
keys = self.bitmask.keys()
keys.sort(key=float)
return keys
def GetBitmaskBit(self, index):
"""
Return value of the given bitmask code or None if not found.
"""
fv = self.bitmask.get(index)
if not fv:
# required because python 3 sorted does not accept None
return ""
return fv
class SourceParser(object):
"""
Parses provided data and stores all found parameters internally.
@ -133,7 +160,7 @@ class SourceParser(object):
re_remove_dots = re.compile(r'\.+$')
re_remove_carriage_return = re.compile('\n+')
valid_tags = set(["group", "board", "min", "max", "unit", "decimal", "increment", "reboot_required", "value", "boolean"])
valid_tags = set(["group", "board", "min", "max", "unit", "decimal", "increment", "reboot_required", "value", "boolean", "bit"])
# Order of parameter groups
priority = {
@ -164,6 +191,7 @@ class SourceParser(object):
long_desc = None
tags = {}
def_values = {}
def_bitmask = {}
elif state is not None and state != "comment-processed":
m = self.re_comment_end.search(line)
if m:
@ -187,6 +215,10 @@ class SourceParser(object):
# Take the meta info string and split the code and description
metainfo = desc.split(" ", 1)
def_values[metainfo[0]] = metainfo[1]
elif (tag == "bit"):
# Take the meta info string and split the code and description
metainfo = desc.split(" ", 1)
def_bitmask[metainfo[0]] = metainfo[1]
else:
tags[tag] = desc
current_tag = tag
@ -262,6 +294,8 @@ class SourceParser(object):
param.SetField(tag, tags[tag])
for def_value in def_values:
param.SetEnumValue(def_value, def_values[def_value])
for def_bit in def_bitmask:
param.SetBitmaskBit(def_bit, def_bitmask[def_bit])
# Store the parameter
if group not in self.param_groups:
self.param_groups[group] = ParameterGroup(group)
@ -284,6 +318,9 @@ class SourceParser(object):
for group in self.GetParamGroups():
for param in group.GetParams():
name = param.GetName()
if len(name) > 16:
sys.stderr.write("Parameter Name {0} is too long (Limit is 16)\n".format(name))
return False
board = param.GetFieldValue("board")
# Check for duplicates
name_plus_board = name + "+" + board
@ -321,6 +358,16 @@ class SourceParser(object):
if param.GetEnumValue(code) == "":
sys.stderr.write("Description for enum value is empty: {0} {1}\n".format(name, code))
return False
for index in param.GetBitmaskList():
if not self.IsNumber(index):
sys.stderr.write("bit value not number: {0} {1}\n".format(name, index))
return False
if not int(min) <= math.pow(2, int(index)) <= int(max):
sys.stderr.write("Bitmask bit must be between {0} and {1}: {2} {3}\n".format(min, max, name, math.pow(2, int(index))))
return False
if param.GetBitmaskBit(index) == "":
sys.stderr.write("Description for bitmask bit is empty: {0} {1}\n".format(name, index))
return False
return True
def GetParamGroups(self):

View File

@ -33,8 +33,9 @@ class SourceScanner(object):
Scans provided file and passes its contents to the parser using
parser.Parse method.
"""
prefix = ".." + os.path.sep + "src" + os.path.sep
scope = re.sub(prefix, '', os.path.dirname(os.path.relpath(path)))
prefix = "^.*" + os.path.sep + "src" + os.path.sep
scope = re.sub(prefix.replace("\\", "/"), "", os.path.dirname(os.path.relpath(path)).replace("\\", "/"))
with codecs.open(path, 'r', 'utf-8') as f:
try:
contents = f.read()

View File

@ -63,6 +63,14 @@ class XMLOutput():
xml_value = ET.SubElement(xml_values, "value")
xml_value.attrib["code"] = code;
xml_value.text = param.GetEnumValue(code)
if len(param.GetBitmaskList()) > 0:
xml_values = ET.SubElement(xml_param, "bitmask")
for index in param.GetBitmaskList():
xml_value = ET.SubElement(xml_values, "bit")
xml_value.attrib["index"] = index;
xml_value.text = param.GetBitmaskBit(index)
indent(xml_parameters)
self.xml_document = ET.ElementTree(xml_parameters)

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
#############################################################################
#
# Copyright (C) 2013-2015 PX4 Development Team. All rights reserved.
# Copyright (C) 2013-2016 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
@ -33,8 +33,8 @@
#############################################################################
"""
px_generate_uorb_topic_headers.py
Generates c/cpp header files for uorb topics from .msg (ROS syntax)
px_generate_uorb_topics.py
Generates c/cpp header/source files for uorb topics from .msg (ROS syntax)
message files
"""
from __future__ import print_function
@ -49,6 +49,7 @@ sys.path.append(px4_tools_dir + "/genmsg/src")
sys.path.append(px4_tools_dir + "/gencpp/src")
try:
import em
import genmsg.template_tools
except ImportError as e:
print("python import error: ", e)
@ -68,35 +69,99 @@ On Windows please run:
''')
exit(1)
__author__ = "Thomas Gubler"
__copyright__ = "Copyright (C) 2013-2014 PX4 Development Team."
__author__ = "Sergey Belash, Thomas Gubler, Beat Kueng"
__copyright__ = "Copyright (C) 2013-2016 PX4 Development Team."
__license__ = "BSD"
__email__ = "thomasgubler@gmail.com"
msg_template_map = {'msg.h.template': '@NAME@.h'}
srv_template_map = {}
incl_default = ['std_msgs:./msg/std_msgs']
package = 'px4'
TEMPLATE_FILE = ['msg.h.template', 'msg.cpp.template']
TOPICS_LIST_TEMPLATE_FILE = 'uORBTopics.cpp.template'
OUTPUT_FILE_EXT = ['.h', '.cpp']
INCL_DEFAULT = ['std_msgs:./msg/std_msgs']
PACKAGE = 'px4'
TOPICS_TOKEN = '# TOPICS '
def convert_file(filename, outputdir, templatedir, includepath):
def get_multi_topics(filename):
"""
Converts a single .msg file to a uorb header
Get TOPICS names from a "# TOPICS" line
"""
#print("Generating headers from {0}".format(filename))
genmsg.template_tools.generate_from_file(filename,
package,
outputdir,
templatedir,
includepath,
msg_template_map,
srv_template_map)
ofile = open(filename, 'r')
text = ofile.read()
result = []
for each_line in text.split('\n'):
if each_line.startswith (TOPICS_TOKEN):
topic_names_str = each_line.strip()
topic_names_str = topic_names_str.replace(TOPICS_TOKEN, "")
result.extend(topic_names_str.split(" "))
ofile.close()
return result
def get_msgs_list(msgdir):
"""
Makes list of msg files in the given directory
"""
return [fn for fn in os.listdir(msgdir) if fn.endswith(".msg")]
def convert_dir(inputdir, outputdir, templatedir):
def generate_output_from_file(format_idx, filename, outputdir, templatedir, includepath):
"""
Converts all .msg files in inputdir to uORB header files
Converts a single .msg file to an uorb header/source file
"""
msg_context = genmsg.msg_loader.MsgContext.create_default()
full_type_name = genmsg.gentools.compute_full_type_name(PACKAGE, os.path.basename(filename))
spec = genmsg.msg_loader.load_msg_from_file(msg_context, filename, full_type_name)
topics = get_multi_topics(filename)
if includepath:
search_path = genmsg.command_line.includepath_to_dict(includepath)
else:
search_path = {}
genmsg.msg_loader.load_depends(msg_context, spec, search_path)
md5sum = genmsg.gentools.compute_md5(msg_context, spec)
if len(topics) == 0:
topics.append(spec.short_name)
em_globals = {
"file_name_in": filename,
"md5sum": md5sum,
"search_path": search_path,
"msg_context": msg_context,
"spec": spec,
"topics": topics
}
# Make sure output directory exists:
if not os.path.isdir(outputdir):
os.makedirs(outputdir)
template_file = os.path.join(templatedir, TEMPLATE_FILE[format_idx])
output_file = os.path.join(outputdir, spec.short_name +
OUTPUT_FILE_EXT[format_idx])
return generate_by_template(output_file, template_file, em_globals)
def generate_by_template(output_file, template_file, em_globals):
"""
Invokes empy intepreter to geneate output_file by the
given template_file and predefined em_globals dict
"""
ofile = open(output_file, 'w')
# todo, reuse interpreter
interpreter = em.Interpreter(output=ofile, globals=em_globals, options={em.RAW_OPT:True,em.BUFFERED_OPT:True})
if not os.path.isfile(template_file):
ofile.close()
os.remove(output_file)
raise RuntimeError("Template file %s not found" % (template_file))
interpreter.file(open(template_file)) #todo try
interpreter.shutdown()
ofile.close()
return True
def convert_dir(format_idx, inputdir, outputdir, templatedir):
"""
Converts all .msg files in inputdir to uORB header/source files
"""
# Find the most recent modification time in input dir
@ -122,7 +187,7 @@ def convert_dir(inputdir, outputdir, templatedir):
if (maxinputtime != 0 and maxouttime != 0 and maxinputtime < maxouttime):
return False
includepath = incl_default + [':'.join([package, inputdir])]
includepath = INCL_DEFAULT + [':'.join([PACKAGE, inputdir])]
for f in os.listdir(inputdir):
# Ignore hidden files
if f.startswith("."):
@ -133,11 +198,10 @@ def convert_dir(inputdir, outputdir, templatedir):
if not os.path.isfile(fn):
continue
convert_file(fn,
outputdir,
templatedir,
includepath)
if fn[-4:].lower() != '.msg':
continue
generate_output_from_file(format_idx, fn, outputdir, templatedir, includepath)
return True
@ -151,15 +215,15 @@ def copy_changed(inputdir, outputdir, prefix='', quiet=False):
if not os.path.isdir(outputdir):
os.makedirs(outputdir)
for f in os.listdir(inputdir):
fni = os.path.join(inputdir, f)
for input_file in os.listdir(inputdir):
fni = os.path.join(inputdir, input_file)
if os.path.isfile(fni):
# Check if f exists in outpoutdir, copy the file if not
fno = os.path.join(outputdir, prefix + f)
# Check if input_file exists in outpoutdir, copy the file if not
fno = os.path.join(outputdir, prefix + input_file)
if not os.path.isfile(fno):
shutil.copy(fni, fno)
if not quiet:
print("{0}: new header file".format(f))
print("{0}: new header file".format(fno))
continue
if os.path.getmtime(fni) > os.path.getmtime(fno):
@ -168,26 +232,39 @@ def copy_changed(inputdir, outputdir, prefix='', quiet=False):
if not filecmp.cmp(fni, fno):
shutil.copy(fni, fno)
if not quiet:
print("{0}: updated".format(f))
print("{0}: updated".format(input_file))
continue
if not quiet:
print("{0}: unchanged".format(f))
print("{0}: unchanged".format(input_file))
def convert_dir_save(inputdir, outputdir, templatedir, temporarydir, prefix, quiet=False):
def convert_dir_save(format_idx, inputdir, outputdir, templatedir, temporarydir, prefix, quiet=False):
"""
Converts all .msg files in inputdir to uORB header files
Unchanged existing files are not overwritten.
"""
# Create new headers in temporary output directory
convert_dir(inputdir, temporarydir, templatedir)
convert_dir(format_idx, inputdir, temporarydir, templatedir)
if generate_idx == 1:
generate_topics_list_file(inputdir, temporarydir, templatedir)
# Copy changed headers from temporary dir to output dir
copy_changed(temporarydir, outputdir, prefix, quiet)
def generate_topics_list_file(msgdir, outputdir, templatedir):
# generate cpp file with topics list
tl_globals = {"msgs" : get_msgs_list(msgdir)}
tl_template_file = os.path.join(templatedir, TOPICS_LIST_TEMPLATE_FILE)
tl_out_file = os.path.join(outputdir, TOPICS_LIST_TEMPLATE_FILE.replace(".template", ""))
generate_by_template(tl_out_file, tl_template_file, tl_globals)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description='Convert msg files to uorb headers')
description='Convert msg files to uorb headers/sources')
parser.add_argument('--headers', help='Generate header files',
action='store_true')
parser.add_argument('--sources', help='Generate source files',
action='store_true')
parser.add_argument('-d', dest='dir', help='directory with msg files')
parser.add_argument('-f', dest='file',
help="files to convert (use only without -d)",
@ -206,15 +283,22 @@ if __name__ == "__main__":
' name when converting directories')
args = parser.parse_args()
if args.headers:
generate_idx = 0
elif args.sources:
generate_idx = 1
else:
print('Error: either --headers or --sources must be specified')
exit(-1)
if args.file is not None:
for f in args.file:
convert_file(
f,
args.outputdir,
args.templatedir,
incl_default)
for f in args.file:
generate_output_from_file(generate_idx, f, args.outputdir, args.templatedir, INCL_DEFAULT)
if generate_idx == 1:
generate_topics_list_file(args.dir, args.outputdir, args.templatedir)
elif args.dir is not None:
convert_dir_save(
convert_dir_save(
generate_idx,
args.dir,
args.outputdir,
args.templatedir,

View File

@ -0,0 +1,171 @@
# helper methods & common code for the uorb message templates msg.{cpp,h}.template
# Another positive effect of having the code here, is that this file will get
# precompiled and thus message generation will be much faster
import genmsg.msgs
import gencpp
type_map = {
'int8': 'int8_t',
'int16': 'int16_t',
'int32': 'int32_t',
'int64': 'int64_t',
'uint8': 'uint8_t',
'uint16': 'uint16_t',
'uint32': 'uint32_t',
'uint64': 'uint64_t',
'float32': 'float',
'float64': 'double',
'bool': 'bool',
'char': 'char',
}
msgtype_size_map = {
'int8': 1,
'int16': 2,
'int32': 4,
'int64': 8,
'uint8': 1,
'uint16': 2,
'uint32': 4,
'uint64': 8,
'float32': 4,
'float64': 8,
'bool': 1,
'char': 1,
}
def bare_name(msg_type):
"""
Get bare_name from <dir>/<bare_name>[x] format
"""
bare = msg_type
if '/' in msg_type:
# removing prefix
bare = (msg_type.split('/'))[1]
# removing suffix
return bare.split('[')[0]
def sizeof_field_type(field):
"""
Get size of a field, used for sorting
"""
bare_name_str = bare_name(field.type)
if bare_name_str in msgtype_size_map:
return msgtype_size_map[bare_name_str]
return 0 # this is for non-builtin types: sort them at the end
def get_children_fields(base_type, search_path):
(package, name) = genmsg.names.package_resource_name(base_type)
tmp_msg_context = genmsg.msg_loader.MsgContext.create_default()
spec_temp = genmsg.msg_loader.load_msg_by_type(tmp_msg_context, '%s/%s' %(package, name), search_path)
sorted_fields = sorted(spec_temp.parsed_fields(), key=sizeof_field_type, reverse=True)
return sorted_fields
def add_padding_bytes(fields, search_path):
"""
Add padding fields before the embedded types, at the end and calculate the
struct size
returns a tuple with the struct size and padding at the end
"""
struct_size = 8 # account for the timestamp
align_to = 8 # this is always 8, because of the 64bit timestamp
i = 0
padding_idx = 0
while i < len(fields):
field = fields[i]
if not field.is_header:
a_pos = field.type.find('[')
array_size = 1
if field.is_array:
array_size = field.array_len
if field.is_builtin:
field.sizeof_field_type = sizeof_field_type(field)
else:
# embedded type: may need to add padding
num_padding_bytes = align_to - (struct_size % align_to)
if num_padding_bytes != align_to:
padding_field = genmsg.Field('_padding'+str(padding_idx),
'uint8['+str(num_padding_bytes)+']')
padding_idx += 1
padding_field.sizeof_field_type = 1
struct_size += num_padding_bytes
fields.insert(i, padding_field)
i += 1
children_fields = get_children_fields(field.base_type, search_path)
field.sizeof_field_type, unused = add_padding_bytes(children_fields,
search_path)
struct_size += field.sizeof_field_type * array_size
i += 1
# add padding at the end (necessary for embedded types)
num_padding_bytes = align_to - (struct_size % align_to)
if num_padding_bytes == align_to:
num_padding_bytes = 0
else:
padding_field = genmsg.Field('_padding'+str(padding_idx),
'uint8['+str(num_padding_bytes)+']')
padding_idx += 1
padding_field.sizeof_field_type = 1
struct_size += num_padding_bytes
fields.append(padding_field)
return (struct_size, num_padding_bytes)
def convert_type(spec_type):
"""
Convert from msg type to C type
"""
bare_type = spec_type
if '/' in spec_type:
# removing prefix
bare_type = (spec_type.split('/'))[1]
msg_type, is_array, array_length = genmsg.msgs.parse_type(bare_type)
c_type = msg_type
if msg_type in type_map:
c_type = type_map[msg_type]
if is_array:
return c_type + "[" + str(array_length) + "]"
return c_type
def print_field_def(field):
"""
Print the C type from a field
"""
type_name = field.type
# detect embedded types
sl_pos = type_name.find('/')
type_appendix = ''
type_prefix = ''
if (sl_pos >= 0):
type_name = type_name[sl_pos + 1:]
type_prefix = 'struct '
type_appendix = '_s'
# detect arrays
a_pos = type_name.find('[')
array_size = ''
if (a_pos >= 0):
# field is array
array_size = type_name[a_pos:]
type_name = type_name[:a_pos]
if type_name in type_map:
# need to add _t: int8 --> int8_t
type_px4 = type_map[type_name]
else:
type_px4 = type_name
comment = ''
if field.name.startswith('_padding'):
comment = ' // required for logger'
print('\t%s%s%s %s%s;%s'%(type_prefix, type_px4, type_appendix, field.name,
array_size, comment))

View File

@ -71,7 +71,7 @@ def main():
const="",
metavar="BOARD",
help="Board to create airframes xml for")
parser.add_argument("-v", "--verbose", help="verbose output")
parser.add_argument('-v', '--verbose', action='store_true', help="verbose output")
args = parser.parse_args()
# Check for valid command

View File

@ -107,7 +107,7 @@ def main():
metavar="SUMMARY",
default="Automagically updated parameter documentation from code.",
help="DokuWiki page edit summary")
parser.add_argument("-v", "--verbose", help="verbose output")
parser.add_argument('-v', '--verbose', action='store_true', help="verbose output")
args = parser.parse_args()
# Check for valid command

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
############################################################################
#
# Copyright (C) 2014-2015 PX4 Development Team. All rights reserved.
# Copyright (C) 2014-2016 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
@ -35,7 +35,12 @@
"""
px_romfs_pruner.py:
Delete all comments and newlines before ROMFS is converted to an image
Try to keep size of ROMFS minimal.
This script goes through the temporarily copied ROMFS data and deletes all
comments, empty lines and leading whitespace.
It also deletes hidden files such as auto-saved backups that a text editor
might have left in the tree.
@author: Julian Oes <julian@oes.ch>
"""
@ -53,18 +58,25 @@ def main():
help="ROMFS scratch folder.")
args = parser.parse_args()
#print("Pruning ROMFS files.")
# go through
# go through temp folder
for (root, dirs, files) in os.walk(args.folder):
for file in files:
# only prune text files
if ".zip" in file or ".bin" in file or ".swp" in file \
or ".data" in file or ".DS_Store" in file \
or file.startswith("."):
file_path = os.path.join(root, file)
# delete hidden files
if file.startswith("."):
os.remove(file_path)
continue
file_path = os.path.join(root, file)
# delete documentation
if file.startswith("README"):
os.remove(file_path)
continue
# only prune text files
if ".zip" in file or ".bin" in file or ".swp" in file \
or ".data" in file or ".DS_Store" in file:
continue
# read file line by line
pruned_content = ""
@ -77,7 +89,7 @@ def main():
else:
if not line.isspace() \
and not line.strip().startswith("#"):
pruned_content += line
pruned_content += line.strip() + "\n"
# overwrite old scratch file
with open(file_path, "wb") as f:
pruned_content = re.sub("\r\n", "\n", pruned_content)

32
Tools/scp_upload.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
if [[ "$#" < 2 ]]; then
echo "usage: scp_upload.sh SRC1 [SRC2 ...] DEST"
exit
fi
if [ -z ${AUTOPILOT_HOST+x} ]; then
host=px4autopilot
echo "\$AUTOPILOT_HOST is not set (use default: $host)"
else
host=$AUTOPILOT_HOST
echo "\$AUTOPILOT_HOST is set to $host"
fi
echo "Uploading..."
# Get last argument
for last; do true; done
# Go through source files and push them one by one.
i=0
for arg
do
if [[ $((i+1)) == "$#" ]]; then
break
fi
# echo "Pushing $arg to $last"
#adb push $arg $last
scp $arg pi@$host:$last
((i+=1))
done

View File

@ -8,6 +8,22 @@ logconv.m: This is a MATLAB script which will automatically convert and display
sdlog2_dump.py: This is a Python script (compatible with v2 and v3) which converts the self-describing binary log format to a CSV file. To export a CSV file from within a shell (Windows CMD or BASH on Linux / Mac OS), run:
```
python sdlog2_dump.py log001.bin -f "export.csv" -t "TIME" -d "," -n ""
```
Python can be downloaded from http://python.org, but is available as default on Mac OS and Linux.
geo_tag_images.py: Use this script to geotag a set of images. It uses GPS time and file creation date to synchronize the images, so it needs that the images have a valid creation date. Can generate a KML file to view where the photos were taken in Google Earth (including height).
```sh
python geo_tag_images.py --logfile=mylog.bin --input=images/ --output=tagged/ --kml -v
python geo_tag_images.py -l=mylog.bin -i=images/ -o=tagged/ --kml -v
```
geotagging.py: Use this script to geotag a set of images. It uses the CAM trigger data from the log file for image association.
```sh
python geotagging.py --logfile=mylog.bin --input=images/ --output=tagged/
```
Python can be downloaded from http://python.org, but is available as default on Mac OS and Linux.

View File

@ -0,0 +1,404 @@
#!/usr/bin/env python
#
# Tag the images recorded during a flight with geo location extracted from
# a PX4 binary log file.
#
# This file accepts *.jpg format images and reads position information
# from a *.bin file
#
# Example Syntax:
# python geotag.py --logfile=log001.bin --input=images/ --output=imagesWithTag/ --offset=-0.4 -v
#
# Author: Hector Azpurua hector@azpurua.com
# Based on the script of Andreas Bircher
import os
import re
import sys
import csv
import bisect
import pyexiv2
import argparse
from lxml import etree
import datetime, calendar
from shutil import copyfile
from subprocess import check_output
from pykml.factory import KML_ElementMaker as KML
from pykml.factory import GX_ElementMaker as GX
class GpsPosition(object):
def __init__(self, timestamp, lat, lon, alt):
self.timestamp = timestamp
self.lat = float(lat)
self.lon = float(lon)
self.alt = float(alt)
class Main:
def __init__(self):
"""
:param logfile:
:param input:
:param output:
:param offset:
:param verbose:
:return:
"""
args = self.get_arg()
self.logfile = args['logfile']
self.input = args['input']
self.output = args['output']
self.kml = args['kml']
self.verbose = args['verbose']
self.offset = args['offset']
self.time_tresh = args['treshold']
self.tdiff_list = []
self.non_processed_files = []
self.tagged_gps = []
print '[INFO] Loading logs and images locations...'
self.gps_list = self.load_gps_from_log(self.logfile, self.offset)
self.img_list = self.load_image_list(self.input)
if len(self.img_list) <= 0:
print '[ERROR] Cannot load JPG images from input folder, please check filename extensions.'
sys.exit(1)
if not os.path.exists(self.output):
os.makedirs(self.output)
if not self.output.endswith(os.path.sep):
self.output += os.path.sep
self.tag_images()
if self.kml and len(self.tdiff_list) > 0:
self.gen_kml()
if len(self.non_processed_files) > 0:
print '[WARNING] Some images werent processed (', len(self.non_processed_files), 'of', len(self.img_list), '):'
for elem in self.non_processed_files:
print '\t', elem
@staticmethod
def to_degree(value, loc):
"""
Convert a lat or lon value to degrees/minutes/seconds
:param value: the latitude or longitude value
:param loc: could be ["S", "N"] or ["W", "E"]
:return:
"""
if value < 0:
loc_value = loc[0]
elif value > 0:
loc_value = loc[1]
else:
loc_value = ""
absolute_value = abs(value)
deg = int(absolute_value)
t1 = (absolute_value-deg) * 60
minute = int(t1)
sec = round((t1 - minute) * 60, 5)
return deg, minute, sec, loc_value
@staticmethod
def gps_week_seconds_to_datetime(gpsweek, gpsmillis, leapmillis=0):
"""
Convert GPS week and seconds to datetime object, using leap milliseconds if necessary
:param gpsweek:
:param gpsmillis:
:param leapmillis:
:return:
"""
datetimeformat = "%Y-%m-%d %H:%M:%S.%f"
epoch = datetime.datetime.strptime("1980-01-06 00:00:00.000", datetimeformat)
elapsed = datetime.timedelta(days=(gpsweek * 7), milliseconds=(gpsmillis + leapmillis))
return Main.utc_to_local(epoch + elapsed)
@staticmethod
def utc_to_local(utc_dt):
"""
Convert UTC time in local time
:param utc_dt:
:return:
"""
timestamp = calendar.timegm(utc_dt.timetuple()) # use integer timestamp to avoid precision lost
local_dt = datetime.datetime.fromtimestamp(timestamp)
assert utc_dt.resolution >= datetime.timedelta(microseconds=1)
return local_dt.replace(microsecond=utc_dt.microsecond)
def gen_kml(self):
"""
Generate a KML file with keypoints on the locations of the pictures, including height
:return:
"""
style_dot = "sn_shaded_dot"
style_path = "red_path"
doc = KML.kml(
KML.Document(
KML.Name("GPS of the images"),
KML.Style(
KML.IconStyle(
KML.scale(0.4),
KML.Icon(
KML.href("http://maps.google.com/mapfiles/kml/shapes/shaded_dot.png")
),
),
id=style_dot,
),
KML.Style(
KML.LineStyle(
KML.color('7f0000ff'),
KML.width(6),
GX.labelVisibility('1'),
),
id=style_path
)
)
)
# create points
for i, gps in enumerate(self.tagged_gps):
ii = i + 1
doc.Document.append(
KML.Placemark(
KML.styleUrl('#{0}'.format(style_dot)),
KML.Point(
KML.extrude(True),
KML.altitudeMode('absolute'),
KML.coordinates("{},{},{}".format(gps.lon, gps.lat, gps.alt))
),
KML.name(str(ii)) if ii % 5 == 0 or ii == 1 else KML.name()
)
)
# create the path
doc.Document.append(
KML.Placemark(
KML.styleUrl('#{0}'.format(style_path)),
KML.LineString(
KML.altitudeMode('absolute'),
KML.coordinates(
' '.join(["{},{},{}".format(gps.lon, gps.lat, gps.alt) for gps in self.tagged_gps])
)
)
)
)
s = etree.tostring(doc)
file_path = self.output + 'GoogleEarth_points.kml'
f = open(file_path,'w')
f.write(s)
f.close()
print '[INFO] KML file generated on:', file_path
def get_closest_datetime_index(self, datetime_list, elem):
"""
Get the closest element between a list of datetime objects and a date
:param datetime_list:
:param elem:
:return:
"""
dlist_len = len(datetime_list)
i = bisect.bisect_left(datetime_list, elem)
# Cleanup of the indices
if i < 0:
i = 0
elif i >= dlist_len:
i = dlist_len - 1
date = datetime_list[i]
diff = abs((date - elem).total_seconds())
if diff > self.time_tresh:
return -1, diff
return i, diff
def set_gps_location(self, file_name, lat, lng, alt):
"""
Add the GPS tag and altitude to a image file
:param file_name:
:param lat:
:param lng:
:param alt:
:return:
"""
lat_deg = self.to_degree(lat, ["S", "N"])
lng_deg = self.to_degree(lng, ["W", "E"])
exiv_lat = (pyexiv2.Rational(lat_deg[0] * 60 + lat_deg[1], 60),
pyexiv2.Rational(lat_deg[2] * 100, 6000), pyexiv2.Rational(0, 1))
exiv_lng = (pyexiv2.Rational(lng_deg[0] * 60 + lng_deg[1], 60),
pyexiv2.Rational(lng_deg[2] * 100, 6000), pyexiv2.Rational(0, 1))
try:
exiv_image = pyexiv2.ImageMetadata(file_name)
exiv_image.read()
exiv_image["Exif.GPSInfo.GPSLatitude"] = exiv_lat
exiv_image["Exif.GPSInfo.GPSLatitudeRef"] = lat_deg[3]
exiv_image["Exif.GPSInfo.GPSLongitude"] = exiv_lng
exiv_image["Exif.GPSInfo.GPSLongitudeRef"] = lng_deg[3]
exiv_image["Exif.GPSInfo.GPSAltitude"] = pyexiv2.Rational(alt, 1)
exiv_image["Exif.GPSInfo.GPSAltitudeRef"] = '0'
exiv_image["Exif.Image.GPSTag"] = 654
exiv_image["Exif.GPSInfo.GPSMapDatum"] = "WGS-84"
exiv_image["Exif.GPSInfo.GPSVersionID"] = '2 0 0 0'
exiv_image.write(True)
except Exception as e:
print '[ERROR]', e
def load_gps_from_log(self, log_file, offset):
"""
Load gps list from PX4 binary log
:param log_file:
:param offset:
:return:
"""
gps_list = []
out = check_output(["python", "sdlog2_dump.py", log_file, "-m GPS", "-v"])
for line in out.splitlines():
if not line.startswith("MSG GPS:"):
continue
vdict = {}
pairs = re.split(r'[;,:]\s*', line)
for pair in pairs:
e = pair.split('=')
if len(e) == 2:
vdict[e[0]] = float(e[1])
gps_time = vdict['TimeMS']
gps_week = vdict['Week']
gps_lat = vdict['Lat']
gps_lon = vdict['Lng']
gps_alt = vdict['Alt']
date = self.gps_week_seconds_to_datetime(gps_week, gps_time, leapmillis=offset)
gps_list.append(GpsPosition(date, gps_lat, gps_lon, gps_alt))
return gps_list
def get_image_creation_date(self, filename):
exiv_image = pyexiv2.ImageMetadata(filename)
exiv_image.read()
# Prefer DateTime/Original over the other values
if 'Exif.Photo.DateTimeOriginal' in exiv_image:
cdate = exiv_image['Exif.Photo.DateTimeOriginal'].value
return cdate
elif 'Exif.Image.DateTime' in exiv_image:
cdate = exiv_image['Exif.Image.DateTime'].value
return cdate
else:
epoch = os.path.getmtime(filename)
return datetime.datetime.fromtimestamp(epoch)
def load_image_list(self, input_folder, file_type='jpg'):
"""
Load image list from a folder given a file type
:param input_folder:
:param file_type:
:return:
"""
self.img_list = [input_folder + filename for filename in os.listdir(input_folder)
if re.search(r'\.'+file_type+'$', filename, re.IGNORECASE)]
self.img_list = sorted(self.img_list)
return self.img_list
def tag_images(self):
"""
Tag the image list using the GPS loaded from the LOG file
:return:
"""
tagged_gps = []
img_size = len(self.img_list)
print '[INFO] Number of images:', img_size
print '[INFO] Number of gps logs:', len(self.gps_list)
dt_list = [x.timestamp for x in self.gps_list]
img_seq = 1
for i in xrange(img_size):
cdate = self.get_image_creation_date(self.img_list[i])
gps_i, img_tdiff = self.get_closest_datetime_index(dt_list, cdate)
base_path, filename = os.path.split(self.img_list[i])
if gps_i == -1:
self.non_processed_files.append(filename)
continue
closest_gps = self.gps_list[gps_i]
self.tdiff_list.append(img_tdiff)
if self.verbose:
msg = "[DEBUG] %s/%s) %s\n\timg %s -> gps %s (%ss)\n\tlat:%s, lon:%s, alt:%s".ljust(60) %\
(i+1, img_size, filename, cdate, closest_gps.timestamp, img_tdiff, closest_gps.lat, closest_gps.lon, closest_gps.alt)
print msg
output_filename = self.output + str(img_seq) + '_' + filename
copyfile(self.img_list[i], output_filename)
self.set_gps_location(output_filename, closest_gps.lat, closest_gps.lon, closest_gps.alt)
self.tagged_gps.append(closest_gps)
img_seq += 1
if len(self.tdiff_list) > 0:
print '[INFO] Mean diff in seconds:', sum(self.tdiff_list) / float(len(self.tdiff_list))
@staticmethod
def get_arg():
parser = argparse.ArgumentParser(
description='Geotag script to add GPS info to pictures from PX4 binary log files.'\
'It uses synchronized time to allocate GPS positions.'
)
parser.add_argument(
'-l', '--logfile', help='PX4 log file containing recorded positions.', required=True
)
parser.add_argument(
'-i', '--input', help='Input folder containing untagged images.', required=True
)
parser.add_argument(
'-o', '--output', help='Output folder to contain tagged images.', required=True
)
parser.add_argument(
'-t', '--treshold', help='Time treshold between the GPS time and the local image time.',
default=1, required=False, type=float
)
parser.add_argument(
'-of', '--offset', help='Time offset in MILLISECONDS between the GPS time and the local time.',
default=-17000, required=False, type=float
)
parser.add_argument(
'-kml', '--kml', help='Save the in KML format the information of all tagged images.',
required=False, action='store_true'
)
parser.add_argument(
'-v', '--verbose', help='Prints lots of information.',
required=False, action='store_true'
)
args = vars(parser.parse_args())
return args
if __name__ == "__main__":
m = Main()

@ -1 +1 @@
Subproject commit 9353834b2f89d08beaa055fc97321e1871bc2b3a
Subproject commit 800b12aff9bed3bc145f800184f83c6e9b070a29

52
Tools/sitl_multiple_run.sh Executable file
View File

@ -0,0 +1,52 @@
#!/bin/bash
sitl_num=2
sim_port=15019
mav_port=15010
mav_port2=15011
mav_oport=15015
mav_oport2=15016
port_step=10
src_path=`pwd`
rc_script="posix-configs/SITL/init/rcS_multiple"
build_path=${src_path}/build_posix_sitl_default
pkill px4
sleep 2
cd $build_path/src/firmware/posix
user=`whoami`
n=1
while [ $n -le $sitl_num ]; do
if [ ! -d $n ]; then
mkdir -p $n
cd $n
mkdir -p rootfs/fs/microsd
mkdir -p rootfs/eeprom
touch rootfs/eeprom/parameters
cp ${src_path}/ROMFS/px4fmu_common/mixers/quad_w.main.mix ./
cat ${src_path}/${rc_script}_gazebo_iris | sed s/_SIMPORT_/${sim_port}/ | sed s/_MAVPORT_/${mav_port}/g | sed s/_MAVOPORT_/${mav_oport}/ | sed s/_MAVPORT2_/${mav_port2}/ | sed s/_MAVOPORT2_/${mav_oport2}/ > rcS
cd ../
fi
cd $n
sudo -b -u $user ../px4 -d rcS >out.log 2>err.log
cd ../
n=$(($n + 1))
sim_port=$(($sim_port + $port_step))
mav_port=$(($mav_port + $port_step))
mav_port2=$(($mav_port2 + $port_step))
mav_oport=$(($mav_oport + $port_step))
mav_oport2=$(($mav_oport2 + $port_step))
done

View File

@ -43,8 +43,8 @@ fi
# kill process names that might stil
# be running from last time
pkill gazebo
pkill mainapp
jmavsim_pid=`jps | grep Simulator | cut -d" " -f1`
pkill px4
jmavsim_pid=`ps aux | grep java | grep Simulator | cut -d" " -f1`
if [ -n "$jmavsim_pid" ]
then
kill $jmavsim_pid
@ -58,7 +58,7 @@ cp Tools/posix.gdbinit $build_path/src/firmware/posix/.gdbinit
SIM_PID=0
if [ "$program" == "jmavsim" ] && [ "$no_sim" == "" ]
if [ "$program" == "jmavsim" ] && [ ! -n "$no_sim" ]
then
cd Tools/jMAVSim
ant create_run_jar copy_res
@ -66,31 +66,33 @@ then
java -Djava.ext.dirs= -jar jmavsim_run.jar -udp 127.0.0.1:14560 &
SIM_PID=`echo $!`
cd ../..
elif [ "$program" == "gazebo" ] && [ "$no_sim" == "" ]
elif [ "$program" == "gazebo" ] && [ ! -n "$no_sim" ]
then
if [ -x "$(command -v gazebo)" ]
then
# Set the plugin path so Gazebo finds our model and sim
export GAZEBO_PLUGIN_PATH=$curr_dir/Tools/sitl_gazebo/Build:${GAZEBO_PLUGIN_PATH}
export GAZEBO_PLUGIN_PATH=$curr_dir/build_gazebo:${GAZEBO_PLUGIN_PATH}
# Set the model path so Gazebo finds the airframes
export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:$curr_dir/Tools/sitl_gazebo/models
# The next line would disable online model lookup, can be commented in, in case of unstable behaviour.
# export GAZEBO_MODEL_DATABASE_URI=""
export SITL_GAZEBO_PATH=$curr_dir/Tools/sitl_gazebo
mkdir -p Tools/sitl_gazebo/Build
cd Tools/sitl_gazebo/Build
cmake -Wno-dev ..
make -j4
make sdf
gzserver --verbose ../worlds/${model}.world &
make --no-print-directory gazebo_build
gzserver --verbose $curr_dir/Tools/sitl_gazebo/worlds/${model}.world &
SIM_PID=`echo $!`
gzclient --verbose &
GUI_PID=`echo $!`
if [[ -n "$HEADLESS" ]]; then
echo "not running gazebo gui"
else
gzclient --verbose &
GUI_PID=`echo $!`
fi
else
echo "You need to have gazebo simulator installed!"
exit 1
fi
elif [ "$program" == "replay" ] && [ "$no_sim" == "" ]
elif [ "$program" == "replay" ] && [ ! -n "$no_sim" ]
then
echo "Replaying logfile: $logfile"
# This is not a simulator, but a log file to replay
@ -115,18 +117,18 @@ set +e
# Start Java simulator
if [ "$debugger" == "lldb" ]
then
lldb -- mainapp ../../../../${rc_script}_${program}_${model}
lldb -- px4 ../../../../${rc_script}_${program}_${model}
elif [ "$debugger" == "gdb" ]
then
gdb --args mainapp ../../../../${rc_script}_${program}_${model}
gdb --args px4 ../../../../${rc_script}_${program}_${model}
elif [ "$debugger" == "ddd" ]
then
ddd --debugger gdb --args mainapp ../../../../${rc_script}_${program}_${model}
ddd --debugger gdb --args px4 ../../../../${rc_script}_${program}_${model}
elif [ "$debugger" == "valgrind" ]
then
valgrind ./mainapp ../../../../${rc_script}_${program}_${model}
valgrind ./px4 ../../../../${rc_script}_${program}_${model}
else
$sudo_enabled ./mainapp $chroot_enabled ../../../../${rc_script}_${program}_${model}
$sudo_enabled ./px4 $chroot_enabled ../../../../${rc_script}_${program}_${model}
fi
if [ "$program" == "jmavsim" ]
@ -135,5 +137,7 @@ then
elif [ "$program" == "gazebo" ]
then
kill -9 $SIM_PID
kill -9 $GUI_PID
if [[ ! -n "$HEADLESS" ]]; then
kill -9 $GUI_PID
fi
fi

View File

@ -17,7 +17,7 @@ fi
if [ $SYSTYPE = "Linux" ];
then
SERIAL_PORTS="/dev/serial/by-id/usb-3D_Robotics*"
SERIAL_PORTS="/dev/serial/by-id/usb-3D_Robotics*,/dev/serial/by-id/usb-The_Autopilot*"
fi
if [ $SYSTYPE = "" ];
@ -25,4 +25,4 @@ then
SERIAL_PORTS="COM32,COM31,COM30,COM29,COM28,COM27,COM26,COM25,COM24,COM23,COM22,COM21,COM20,COM19,COM18,COM17,COM16,COM15,COM14,COM13,COM12,COM11,COM10,COM9,COM8,COM7,COM6,COM5,COM4,COM3,COM2,COM1,COM0"
fi
python $BASEDIR/px_uploader.py --port $SERIAL_PORTS $1
python $BASEDIR/px_uploader.py --port $SERIAL_PORTS $1

20
circle.yml Normal file
View File

@ -0,0 +1,20 @@
machine:
services:
- docker
checkout:
post:
- git submodule sync --recursive
- git submodule update --init --recursive
## Customize dependencies
dependencies:
cache_directories:
- "~/.ccache"
pre:
- docker pull px4io/px4-dev-nuttx-gcc4.9
test:
override:
- docker run --rm -v `pwd`:`pwd`:rw -w=`pwd` -v $HOME/.ccache:$HOME/.ccache:rw -e CCACHE_DIR=$HOME/.ccache --user=$UID -it px4io/px4-dev-nuttx-gcc4.9 /bin/bash -c "ccache -z; make px4fmu-v4_default; ccache -s"

@ -1 +1 @@
Subproject commit 77d487dc076a8519f81a335a5e4a2040799790de
Subproject commit eb1d242e57b34a28ba4b8ab4c04901bd85540d07

View File

@ -136,14 +136,14 @@ function(px4_add_git_submodule)
REQUIRED TARGET PATH
ARGN ${ARGN})
string(REPLACE "/" "_" NAME ${PATH})
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/git_init_${NAME}.stamp
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMAND touch ${CMAKE_BINARY_DIR}/git_init_${NAME}.stamp
DEPENDS ${CMAKE_SOURCE_DIR}/.gitmodules
add_custom_command(OUTPUT ${PX4_BINARY_DIR}/git_init_${NAME}.stamp
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
COMMAND touch ${PX4_BINARY_DIR}/git_init_${NAME}.stamp
DEPENDS ${PX4_SOURCE_DIR}/.gitmodules
)
add_custom_target(${TARGET}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
DEPENDS ${CMAKE_BINARY_DIR}/git_init_${NAME}.stamp
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
DEPENDS ${PX4_BINARY_DIR}/git_init_${NAME}.stamp
)
endfunction()
@ -303,6 +303,9 @@ function(px4_add_module)
if(MAIN)
set_target_properties(${MODULE} PROPERTIES
COMPILE_DEFINITIONS PX4_MAIN=${MAIN}_app_main)
add_definitions(-DMODULE_NAME="${MAIN}")
else()
add_definitions(-DMODULE_NAME="${MODULE}")
endif()
if(INCLUDES)
@ -359,14 +362,16 @@ function(px4_generate_messages)
NAME px4_generate_messages
OPTIONS VERBOSE
ONE_VALUE OS TARGET
MULTI_VALUE MSG_FILES DEPENDS
MULTI_VALUE MSG_FILES DEPENDS INCLUDES
REQUIRED MSG_FILES OS TARGET
ARGN ${ARGN})
set(QUIET)
if(NOT VERBOSE)
set(QUIET "-q")
endif()
set(msg_out_path ${CMAKE_BINARY_DIR}/src/modules/uORB/topics)
# headers
set(msg_out_path ${PX4_BINARY_DIR}/src/modules/uORB/topics)
set(msg_list)
foreach(msg_file ${MSG_FILES})
get_filename_component(msg ${msg_file} NAME_WE)
@ -378,41 +383,77 @@ function(px4_generate_messages)
endforeach()
add_custom_command(OUTPUT ${msg_files_out}
COMMAND ${PYTHON_EXECUTABLE}
Tools/px_generate_uorb_topic_headers.py
Tools/px_generate_uorb_topic_files.py
--headers
${QUIET}
-d msg
-o ${msg_out_path}
-e msg/templates/uorb
-t ${CMAKE_BINARY_DIR}/topics_temporary
-t ${PX4_BINARY_DIR}/topics_temporary_header
DEPENDS ${DEPENDS} ${MSG_FILES}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
COMMENT "Generating uORB topic headers"
VERBATIM
)
# !sources
set(msg_source_out_path ${PX4_BINARY_DIR}/topics_sources)
set(msg_source_files_out ${msg_source_out_path}/uORBTopics.cpp)
foreach(msg ${msg_list})
list(APPEND msg_source_files_out ${msg_source_out_path}/${msg}.cpp)
endforeach()
add_custom_command(OUTPUT ${msg_source_files_out}
COMMAND ${PYTHON_EXECUTABLE}
Tools/px_generate_uorb_topic_files.py
--sources
${QUIET}
-d msg
-o ${msg_source_out_path}
-e msg/templates/uorb
-t ${PX4_BINARY_DIR}/topics_temporary_sources
DEPENDS ${DEPENDS} ${MSG_FILES}
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
COMMENT "Generating uORB topic sources"
VERBATIM
)
set_source_files_properties(${msg_source_files_out} PROPERTIES GENERATED TRUE)
# We remove uORBTopics.cpp to make sure the generator is re-run, which is
# necessary when a .msg file is removed and because uORBTopics.cpp depends
# on all topics.
execute_process(COMMAND rm uORBTopics.cpp
WORKING_DIRECTORY ${msg_source_out_path}
ERROR_QUIET)
# multi messages for target OS
set(msg_multi_out_path
${CMAKE_BINARY_DIR}/src/platforms/${OS}/px4_messages)
${PX4_BINARY_DIR}/src/platforms/${OS}/px4_messages)
set(msg_multi_files_out)
foreach(msg ${msg_list})
list(APPEND msg_multi_files_out ${msg_multi_out_path}/px4_${msg}.h)
endforeach()
add_custom_command(OUTPUT ${msg_multi_files_out}
COMMAND ${PYTHON_EXECUTABLE}
Tools/px_generate_uorb_topic_headers.py
Tools/px_generate_uorb_topic_files.py
--headers
${QUIET}
-d msg
-o ${msg_multi_out_path}
-e msg/templates/px4/uorb
-t ${CMAKE_BINARY_DIR}/multi_topics_temporary/${OS}
-t ${PX4_BINARY_DIR}/multi_topics_temporary/${OS}
-p "px4_"
DEPENDS ${DEPENDS} ${MSG_FILES}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
COMMENT "Generating uORB topic multi headers for ${OS}"
VERBATIM
)
add_custom_target(${TARGET}
DEPENDS ${msg_multi_files_out} ${msg_files_out})
add_library(${TARGET}
${msg_source_files_out}
${msg_multi_files_out}
${msg_files_out}
)
endfunction()
#=============================================================================
@ -447,6 +488,7 @@ function(px4_add_upload)
if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
list(APPEND serial_ports
/dev/serial/by-id/usb-3D_Robotics*
/dev/serial/by-id/usb-The_Autopilot*
/dev/serial/by-id/pci-3D_Robotics*
)
elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin")
@ -462,9 +504,9 @@ function(px4_add_upload)
px4_join(OUT serial_ports LIST "${serial_ports}" GLUE ",")
add_custom_target(${OUT}
COMMAND ${PYTHON_EXECUTABLE}
${CMAKE_SOURCE_DIR}/Tools/px_uploader.py --port ${serial_ports} ${BUNDLE}
${PX4_SOURCE_DIR}/Tools/px_uploader.py --port ${serial_ports} ${BUNDLE}
DEPENDS ${BUNDLE}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${PX4_BINARY_DIR}
COMMENT "uploading ${BUNDLE}"
VERBATIM
USES_TERMINAL
@ -481,9 +523,45 @@ function(px4_add_adb_push)
ARGN ${ARGN})
add_custom_target(${OUT}
COMMAND ${CMAKE_SOURCE_DIR}/Tools/adb_upload.sh ${FILES} ${DEST}
COMMAND ${PX4_SOURCE_DIR}/Tools/adb_upload.sh ${FILES} ${DEST}
DEPENDS ${DEPENDS}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
WORKING_DIRECTORY ${PX4_BINARY_DIR}
COMMENT "uploading ${BUNDLE}"
VERBATIM
USES_TERMINAL
)
endfunction()
function(px4_add_adb_push_to_bebop)
px4_parse_function_args(
NAME px4_add_upload_to_bebop
ONE_VALUE OS BOARD OUT DEST
MULTI_VALUE FILES DEPENDS
REQUIRED OS BOARD OUT FILES DEPENDS DEST
ARGN ${ARGN})
add_custom_target(${OUT}
COMMAND ${PX4_SOURCE_DIR}/Tools/adb_upload_to_bebop.sh ${FILES} ${DEST}
DEPENDS ${DEPENDS}
WORKING_DIRECTORY ${PX4_BINARY_DIR}
COMMENT "uploading ${BUNDLE}"
VERBATIM
USES_TERMINAL
)
endfunction()
function(px4_add_scp_push)
px4_parse_function_args(
NAME px4_add_upload
ONE_VALUE OS BOARD OUT DEST
MULTI_VALUE FILES DEPENDS
REQUIRED OS BOARD OUT FILES DEPENDS DEST
ARGN ${ARGN})
add_custom_target(${OUT}
COMMAND ${PX4_SOURCE_DIR}/Tools/scp_upload.sh ${FILES} ${DEST}
DEPENDS ${DEPENDS}
WORKING_DIRECTORY ${PX4_BINARY_DIR}
COMMENT "uploading ${BUNDLE}"
VERBATIM
USES_TERMINAL
@ -541,7 +619,6 @@ function(px4_add_common_flags)
-Wall
-Werror
-Wextra
-Wpacked
-Wno-sign-compare
-Wshadow
-Wfloat-equal
@ -583,7 +660,8 @@ function(px4_add_common_flags)
endif()
if ($ENV{MEMORY_DEBUG} MATCHES "1")
set(max_optimization -O0)
message(STATUS "address sanitizer enabled")
set(max_optimization -Os)
set(optimization_flags
-fno-strict-aliasing
@ -591,7 +669,7 @@ function(px4_add_common_flags)
-funsafe-math-optimizations
-ffunction-sections
-fdata-sections
-g -fsanitize=address
-g3 -fsanitize=address
)
else()
set(max_optimization -Os)
@ -683,21 +761,21 @@ function(px4_add_common_flags)
)
set(added_include_dirs
${CMAKE_SOURCE_DIR}/src
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}/src
${CMAKE_SOURCE_DIR}/src/modules
${CMAKE_SOURCE_DIR}/src/include
${CMAKE_SOURCE_DIR}/src/lib
${CMAKE_SOURCE_DIR}/src/platforms
${PX4_SOURCE_DIR}/src
${PX4_BINARY_DIR}
${PX4_BINARY_DIR}/src
${PX4_SOURCE_DIR}/src/modules
${PX4_SOURCE_DIR}/src/include
${PX4_SOURCE_DIR}/src/lib
${PX4_SOURCE_DIR}/src/platforms
# TODO Build/versioning was in Makefile,
# do we need this, how does it work with cmake
${CMAKE_SOURCE_DIR}/src/drivers/boards/${BOARD}
${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}/src/modules/px4_messages
${CMAKE_BINARY_DIR}/src/modules
${CMAKE_SOURCE_DIR}/mavlink/include/mavlink
${CMAKE_SOURCE_DIR}/src/lib/DriverFramework/framework/include
${PX4_SOURCE_DIR}/src/drivers/boards/${BOARD}
${PX4_BINARY_DIR}
${PX4_BINARY_DIR}/src/modules/px4_messages
${PX4_BINARY_DIR}/src/modules
${PX4_SOURCE_DIR}/mavlink/include/mavlink
${PX4_SOURCE_DIR}/src/lib/DriverFramework/framework/include
)
list(APPEND added_include_dirs
@ -710,6 +788,7 @@ function(px4_add_common_flags)
string(REPLACE "-" "_" board_config ${board_upper})
set(added_definitions
-DCONFIG_ARCH_BOARD_${board_config}
-D__STDC_FORMAT_MACROS
)
if (NOT (APPLE AND (${CMAKE_C_COMPILER_ID} MATCHES ".*Clang.*")))
@ -776,22 +855,22 @@ function(px4_create_git_hash_header)
REQUIRED HEADER
ARGN ${ARGN})
execute_process(
COMMAND git describe --tags
COMMAND git describe --always --tags
OUTPUT_VARIABLE git_tag
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
#message(STATUS "GIT_TAG = ${git_tag}")
message(STATUS "GIT_TAG = ${git_tag}")
execute_process(
COMMAND git rev-parse HEAD
OUTPUT_VARIABLE git_desc
COMMAND git rev-parse --verify HEAD
OUTPUT_VARIABLE git_version
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
WORKING_DIRECTORY ${PX4_SOURCE_DIR}
)
#message(STATUS "GIT_DESC = ${git_desc}")
set(git_desc_short)
string(SUBSTRING ${git_desc} 1 16 git_desc_short)
configure_file(${CMAKE_SOURCE_DIR}/cmake/templates/build_git_version.h.in ${HEADER} @ONLY)
#message(STATUS "GIT_VERSION = ${git_version}")
set(git_version_short)
string(SUBSTRING ${git_version} 1 16 git_version_short)
configure_file(${PX4_SOURCE_DIR}/cmake/templates/build_git_version.h.in ${HEADER} @ONLY)
endfunction()
#=============================================================================
@ -818,12 +897,12 @@ function(px4_generate_parameters_xml)
ONE_VALUE OUT BOARD
REQUIRED OUT BOARD
ARGN ${ARGN})
set(path ${CMAKE_SOURCE_DIR}/src)
set(path ${PX4_SOURCE_DIR}/src)
file(GLOB_RECURSE param_src_files
${CMAKE_SOURCE_DIR}/src/*params.c
${PX4_SOURCE_DIR}/src/*params.c
)
add_custom_command(OUTPUT ${OUT}
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_process_params.py
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_process_params.py
-s ${path} --board CONFIG_ARCH_${BOARD} --xml --inject-xml
DEPENDS ${param_src_files}
)
@ -865,7 +944,7 @@ function(px4_generate_parameters_source)
set(SCOPE "")
endif()
add_custom_command(OUTPUT ${generated_files}
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Tools/px_generate_params.py ${XML} ${SCOPE}
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/Tools/px_generate_params.py ${XML} ${SCOPE}
DEPENDS ${XML} ${DEPS} ${SCOPE}
)
set(${OUT} ${generated_files} PARENT_SCOPE)
@ -896,10 +975,10 @@ function(px4_generate_airframes_xml)
ONE_VALUE OUT BOARD
REQUIRED OUT BOARD
ARGN ${ARGN})
set(process_airframes ${CMAKE_SOURCE_DIR}/Tools/px_process_airframes.py)
set(process_airframes ${PX4_SOURCE_DIR}/Tools/px_process_airframes.py)
add_custom_command(OUTPUT ${OUT}
COMMAND ${PYTHON_EXECUTABLE} ${process_airframes}
-a ${CMAKE_SOURCE_DIR}/ROMFS/px4fmu_common/init.d
-a ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/init.d
--board CONFIG_ARCH_BOARD_${BOARD} --xml
)
set(${OUT} ${${OUT}} PARENT_SCOPE)

View File

@ -0,0 +1,128 @@
include(nuttx/px4_impl_nuttx)
set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(config_module_list
#
# Board support modules
#
drivers/device
drivers/stm32
drivers/stm32/adc
drivers/led
#drivers/px4fmu
drivers/boards/asc-v1
drivers/rgbled_pwm
drivers/tap_esc
drivers/mpu6500
drivers/ms5611
drivers/hmc5883
drivers/gps
drivers/airspeed
drivers/meas_airspeed
modules/sensors
drivers/camera_trigger
#
# System commands
#
systemcmds/bl_update
systemcmds/mixer
systemcmds/param
systemcmds/perf
systemcmds/pwm
systemcmds/motor_test
systemcmds/reboot
systemcmds/top
systemcmds/config
systemcmds/nshterm
systemcmds/mtd
systemcmds/dumpfile
systemcmds/ver
systemcmds/topic_listener
#
# General system control
#
modules/commander
modules/load_mon
modules/navigator
modules/mavlink
modules/land_detector
#
# Estimation modules (EKF/ SO3 / other filters)
#
modules/ekf2
#
# Vehicle Control
#
modules/fw_pos_control_l1
modules/fw_att_control
modules/mc_att_control
modules/mc_pos_control
modules/vtol_att_control
#
# Logging
#
modules/logger
#
# Library modules
#
modules/param
modules/systemlib
modules/systemlib/mixer
modules/uORB
modules/dataman
#
# Libraries
#
lib/controllib
lib/mathlib
lib/mathlib/math/filter
lib/ecl
lib/external_lgpl
lib/geo
lib/geo_lookup
lib/conversion
lib/launchdetection
lib/terrain_estimation
lib/runway_takeoff
lib/tailsitter_recovery
lib/DriverFramework/framework
platforms/nuttx
# had to add for cmake, not sure why wasn't in original config
platforms/common
platforms/nuttx/px4_layer
)
set(config_extra_builtin_cmds
serdis
sercon
)
set(config_io_board
)
set(config_extra_libs
)
set(config_io_extra_libs
)
add_custom_target(sercon)
set_target_properties(sercon PROPERTIES
PRIORITY "SCHED_PRIORITY_DEFAULT"
MAIN "sercon"
STACK_MAIN "2048")
add_custom_target(serdis)
set_target_properties(serdis PROPERTIES
PRIORITY "SCHED_PRIORITY_DEFAULT"
MAIN "serdis"
STACK_MAIN "2048")

View File

@ -1,6 +1,6 @@
include(nuttx/px4_impl_nuttx)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(config_uavcan_num_ifaces 2)
@ -15,7 +15,7 @@ set(config_module_list
drivers/led
drivers/px4fmu
#drivers/px4io
drivers/test_ppm
#drivers/test_ppm
drivers/boards/mindpx-v2
#drivers/rgbled
drivers/rgbled_pwm
@ -64,18 +64,33 @@ set(config_module_list
systemcmds/pwm
systemcmds/esc_calib
systemcmds/reboot
#systemcmds/topic_listener
systemcmds/topic_listener
systemcmds/top
systemcmds/config
systemcmds/nshterm
systemcmds/mtd
systemcmds/dumpfile
systemcmds/ver
systemcmds/sd_bench
systemcmds/motor_ramp
#
# Tests
#
drivers/sf0x/sf0x_tests
drivers/test_ppm
modules/commander/commander_tests
modules/controllib_test
modules/mavlink/mavlink_tests
modules/unit_test
modules/uORB/uORB_tests
systemcmds/tests
#
# General system control
#
modules/commander
modules/load_mon
modules/navigator
modules/mavlink
modules/gpio_led
@ -85,16 +100,14 @@ set(config_module_list
#
# Estimation modules (EKF/ SO3 / other filters)
#
# Too high RAM usage due to static allocations
# modules/attitude_estimator_ekf
modules/attitude_estimator_q
modules/ekf_att_pos_estimator
modules/position_estimator_inav
modules/local_position_estimator
modules/ekf2
#
# Vehicle Control
#
# modules/segway # XXX Needs GCC 4.7 fix
modules/fw_pos_control_l1
modules/fw_att_control
modules/mc_att_control
@ -105,6 +118,7 @@ set(config_module_list
# Logging
#
modules/sdlog2
modules/logger
#
# Library modules
@ -134,7 +148,7 @@ set(config_module_list
platforms/nuttx
# had to add for cmake, not sure why wasn't in original config
platforms/common
platforms/common
platforms/nuttx/px4_layer
#
@ -145,7 +159,7 @@ set(config_module_list
#
# Rover apps
#
examples/rover_steering_control
#examples/rover_steering_control
#
# Demo apps
@ -153,7 +167,7 @@ set(config_module_list
#examples/math_demo
# Tutorial code from
# https://px4.io/dev/px4_simple_app
examples/px4_simple_app
#examples/px4_simple_app
# Tutorial code from
# https://px4.io/dev/daemon
@ -176,10 +190,6 @@ set(config_extra_builtin_cmds
sercon
)
set(config_io_board
px4io-v2
)
set(config_extra_libs
uavcan
uavcan_stm32_driver
@ -191,9 +201,11 @@ set(config_io_extra_libs
add_custom_target(sercon)
set_target_properties(sercon PROPERTIES
PRIORITY "SCHED_PRIORITY_DEFAULT"
MAIN "sercon" STACK_MAIN "2048")
MAIN "sercon"
STACK_MAIN "2048")
add_custom_target(serdis)
set_target_properties(serdis PROPERTIES
PRIORITY "SCHED_PRIORITY_DEFAULT"
MAIN "serdis" STACK_MAIN "2048")
MAIN "serdis"
STACK_MAIN "2048")

View File

@ -1,6 +1,6 @@
include(nuttx/px4_impl_nuttx)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(config_module_list
#

View File

@ -1,6 +1,6 @@
include(nuttx/px4_impl_nuttx)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(config_module_list
#
@ -61,19 +61,18 @@ set(config_module_list
# General system control
#
modules/commander
modules/load_mon
modules/navigator
modules/mavlink
modules/gpio_led
modules/land_detector
#
# Estimation modules (EKF/ SO3 / other filters)
# Estimation modules
#
# Too high RAM usage due to static allocations
# modules/attitude_estimator_ekf
modules/attitude_estimator_q
modules/ekf_att_pos_estimator
modules/position_estimator_inav
modules/local_position_estimator
modules/ekf2
#
@ -90,6 +89,7 @@ set(config_module_list
# Logging
#
modules/sdlog2
modules/logger
#
# Library modules

View File

@ -1,6 +1,6 @@
include(nuttx/px4_impl_nuttx)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(config_uavcan_num_ifaces 2)
@ -48,48 +48,62 @@ set(config_module_list
drivers/bst
drivers/snapdragon_rc_pwm
drivers/lis3mdl
drivers/bmi160
#
# System commands
#
systemcmds/bl_update
systemcmds/config
systemcmds/dumpfile
#systemcmds/esc_calib
systemcmds/mixer
#systemcmds/motor_ramp
systemcmds/mtd
systemcmds/nshterm
systemcmds/param
systemcmds/perf
systemcmds/pwm
systemcmds/esc_calib
systemcmds/reboot
#systemcmds/topic_listener
#systemcmds/sd_bench
systemcmds/top
systemcmds/config
systemcmds/nshterm
systemcmds/mtd
systemcmds/dumpfile
#systemcmds/topic_listener
systemcmds/ver
#
# Testing
#
#drivers/sf0x/sf0x_tests
#drivers/test_ppm
#lib/rc/rc_tests
#modules/commander/commander_tests
#modules/controllib_test
#modules/mavlink/mavlink_tests
#modules/unit_test
#modules/uORB/uORB_tests
#systemcmds/tests
#
# General system control
#
modules/commander
modules/load_mon
modules/navigator
modules/mavlink
modules/gpio_led
#modules/gpio_led
modules/uavcan
modules/land_detector
#
# Estimation modules (EKF/ SO3 / other filters)
# Estimation modules
#
modules/attitude_estimator_q
modules/ekf_att_pos_estimator
modules/position_estimator_inav
modules/local_position_estimator
modules/ekf2
#
# Vehicle Control
#
# modules/segway # XXX Needs GCC 4.7 fix
modules/fw_pos_control_l1
modules/fw_att_control
modules/mc_att_control
@ -99,6 +113,7 @@ set(config_module_list
#
# Logging
#
#modules/logger
modules/sdlog2
#

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