Compare commits

...

1239 Commits

Author SHA1 Message Date
Lorenz Meier 60c2aa165f Fix USB line speed issues in NuttX 2016-08-25 22:19:08 +02:00
Lorenz Meier 07aa993c05 Fix MPU6K sampling 2016-08-25 22:16:31 +02:00
Lorenz Meier 24f09a6578 MAVLink: use only the memory it needs 2016-08-25 00:04:04 +02:00
Lorenz Meier 263f68d241 EKF2: Only use the memory it needs 2016-08-25 00:03:15 +02:00
Lorenz Meier ce1b63a423 Replace EKF1 with EKF2 in rover config 2016-08-06 23:34:23 +02:00
Andreas Antener 6c84e41502 VTOL: publish stabilized FW attitude to correct topic 2016-08-06 20:43:36 +02:00
Lorenz Meier d537a1b628 Merged master into stable 2016-08-06 19:42:14 +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 a956429c4c.
2016-08-05 22:10:34 +02:00
Lorenz Meier 102f5b54d7 Revert "Improvements to SITL to make paths more flexible. (#5181)"
This reverts commit 699b6a2cb3.
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 399d4ef833
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 9c73eae941 (#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 cb1528008f 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:30:24 +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 85245471c0
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 403d76c7a7 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:18:45 +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 a9a0759d91.
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 cefc00af39.
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 503966165b.
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
821 changed files with 42449 additions and 16795 deletions
-1
View File
@@ -64,7 +64,6 @@ CMakeLists.txt.user
GPATH
GRTAGS
GTAGS
*.config
*.creator
*.creator.user
*.files
+6 -3
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
+80 -92
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;
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:
+38 -7
View File
@@ -132,7 +132,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,6 +152,17 @@ set(target_name "${OS}-${BOARD}-${LABEL}")
message(STATUS "${target_name}")
# Define GNU standard installation directories
include(GNUInstallDirs)
# 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}")
# switch to ros CMake file if building ros
if (${OS} STREQUAL "ros")
include("cmake/ros-CMakeLists.txt")
@@ -202,7 +213,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")
@@ -235,7 +246,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")
@@ -295,11 +306,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})
@@ -348,6 +359,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)
@@ -368,10 +382,27 @@ px4_create_git_hash_header(HEADER ${CMAKE_BINARY_DIR}/build_git_version.h)
#
# 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
+2 -2
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
+4 -4
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
View File
@@ -0,0 +1,12 @@
{
"board_id": 78,
"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
}
+102 -26
View File
@@ -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,12 +144,18 @@ endef
# --------------------------------------------------------------------
# Do not put any spaces between function arguments.
tap-v1_default:
$(call cmake-build,nuttx_tap-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)
@@ -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 unittest tests qgc_firmware package_firmware clean submodulesclean distclean
.NOTPARALLEL: gazebo_build uavcan_firmware check check_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,39 @@ 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_mindpx-v2_default \
check_px4-stm32f4discovery_default \
check_tap-v1_default \
checks_bootloaders: \
checks_tests: \
check_px4fmu-v2_test
checks_alts: \
check_px4fmu-v2_ekf2 \
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_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
check_%:
@echo
@@ -245,7 +298,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_px4fmu-v4_default_and_uavcan \
check_format
extra_firmware: \
check_px4-stm32f4discovery_default \
check_px4fmu-v2_test \
check_px4fmu-v2_ekf2
package_firmware:
@zip --junk-paths Firmware.zip `find . -name \*.px4`
@@ -255,18 +331,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
+1 -1
Submodule NuttX updated: f0f4bdc872...93df871201
+1 -1
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)
+2 -2
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
+1 -8
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
@@ -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
+36
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
+3 -4
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
+27 -14
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
+34
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
+1 -1
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
+1 -1
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
@@ -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
+1 -1
View File
@@ -6,7 +6,7 @@
#
# Start the attitude and position estimator
#
ekf_att_pos_estimator start
ekf2 start
#
# Start attitude controller
+6 -1
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
+8 -8
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
+2 -12
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
+12 -1
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
@@ -190,7 +201,7 @@ else
fi
fi
if sf10a start
if sf1xx start
then
fi
-29
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
-9
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
+76 -49
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.
+38
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
@@ -0,0 +1,7 @@
# CruiseAder Claire Main Multirotor mixer for PX4FMU
#
#===========================
R: 4x 10000 10000 10000 0
@@ -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
@@ -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
@@ -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
-7
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
@@ -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
-----------------
+201
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
+10 -112
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
+36
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
@@ -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
+18
View File
@@ -0,0 +1,18 @@
#!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
set MIXER quad_x
set PWM_OUT 1234
+19
View File
@@ -0,0 +1,19 @@
#!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
set MIXER hexa_x
# Need to set all 8 channels
set PWM_OUT 12345678
+20
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
+28
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
+83
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 == uavcan_esc ]
then
set OUTPUT_DEV /dev/uavcan/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
+17
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
+49
View File
@@ -0,0 +1,49 @@
#!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 NAV_ACC_RAD 2.0
param set RTL_RETURN_ALT 30.0
param set RTL_DESCEND_ALT 10.0
param set PWM_DISARMED 900
param set PWM_MIN 1075
param set PWM_MAX 1950
param set 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
# 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
# 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
+46
View File
@@ -0,0 +1,46 @@
#!nsh
#
# Standard startup script for TAP v1 onboard sensor drivers.
#
if adc start
then
fi
# 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
if meas_airspeed start
then
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
+24
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
+49
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
+486
View File
@@ -0,0 +1,486 @@
#!nsh
#
# PX4FMU startup script.
#
# NOTE: COMMENT LINES ARE REMOVED BEFORE STORED IN ROMFS.
#
#
# Start CDC/ACM serial driver
#
sercon
#
# Default to auto-start mode.
#
set MODE autostart
set TUNE_ERR ML<<CP4CP4CP4CP4CP4
set LOG_FILE /fs/microsd/bootlog.txt
#
# Try to mount the microSD card.
#
# REBOOTWORK this needs to start after the flight control loop
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
# Start playing the startup tune
tone_alarm start
else
tone_alarm MBAGP
if mkfatfs /dev/mmcsd0
then
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
echo "INFO [init] 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
#
# Look for an init script on the microSD card.
# Disable autostart if the script found.
#
set FRC /fs/microsd/etc/rc.txt
if [ -f $FRC ]
then
echo "INFO [init] Executing script: $FRC"
sh $FRC
set MODE custom
fi
unset FRC
if [ $MODE == autostart ]
then
#
# 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
#
# Start system state indicator
#
if rgbled start
then
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 MAVLINK_F default
set EXIT_ON_END no
set MAV_TYPE none
set FAILSAFE none
set USE_IO no
#
# Set parameters and env variables for selected AUTOSTART
#
if param compare SYS_AUTOSTART 0
then
echo "INFO [init] No autostart"
else
sh /etc/init.d/rc.autostart
fi
unset MODE
#
# 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 primary output
#
set TTYS1_BUSY no
#
# Check if UAVCAN is enabled, default to it for ESCs
#
if param greater UAVCAN_ENABLE 2
then
set OUTPUT_MODE uavcan_esc
fi
# If OUTPUT_MODE == none then something is wrong with setup and we shouldn't try to enable output
if [ $OUTPUT_MODE != none ]
then
if [ $OUTPUT_MODE == uavcan_esc ]
then
if param compare UAVCAN_ENABLE 0
then
echo "INFO [init] OVERRIDING UAVCAN_ENABLE = 1" >> $LOG_FILE
param set UAVCAN_ENABLE 1
fi
fi
if [ $OUTPUT_MODE == fmu ]
then
if fmu mode_$FMU_MODE
then
else
echo "ERR [init] FMU start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
if fmu mode_pwm4
then
else
echo "ERROR [init] FMU mode_$FMU_MODE start failed" >> $LOG_FILE
tone_alarm $TUNE_ERR
fi
fi
mavlink start -r 1200 -d /dev/ttyS1
#
# Starting stuff according to UAVCAN_ENABLE value
#
if param greater UAVCAN_ENABLE 0
then
if uavcan start
then
else
tone_alarm $TUNE_ERR
fi
fi
if param greater UAVCAN_ENABLE 1
then
if uavcan start fw
then
else
tone_alarm $TUNE_ERR
fi
fi
#
# Optional drivers
#
# Sensors on the PWM interface bank
if param compare SENS_EN_LL40LS 1
then
if pwm_input start
then
if ll40ls start pwm
then
fi
fi
fi
# sf0x lidar sensor
if param compare SENS_EN_SF0X 1
then
sf0x start
fi
# Start USB shell if no microSD present, MAVLink else
if [ $LOG_FILE == /dev/null ]
then
# Try to get an USB console
nshterm /dev/ttyACM0 &
else
mavlink start -r 800000 -d /dev/ttyACM0 -m config -x
fi
#
# Logging
#
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
#
# 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 navigator
#
navigator start
#
# Generic setup (autostart ID not found)
#
if [ $VEHICLE_TYPE == none ]
then
echo "WARN [init] No autostart ID found"
fi
# Start any custom addons
set FEXTRAS /fs/microsd/etc/extras.txt
if [ -f $FEXTRAS ]
then
echo "INFO [init] Addons script: $FEXTRAS"
sh $FEXTRAS
fi
unset FEXTRAS
# Run no SD alarm
if [ $LOG_FILE == /dev/null ]
then
# Play SOS
tone_alarm error
fi
# End of autostart
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
if [ $EXIT_ON_END == yes ]
then
echo "INFO [init] NSH exit"
exit
fi
unset EXIT_ON_END
+105
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.
+3
View File
@@ -0,0 +1,3 @@
# Hexa X
R: 6x 10000 10000 10000 0
+7
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
-9
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
+4
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
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
+20 -67
View File
@@ -1,70 +1,23 @@
#!/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
echo $file 'bad formatting, please run "./Tools/fix_code_style.sh' $file'"'
exit 1
fi
fi
+57
View File
@@ -0,0 +1,57 @@
#!/usr/bin/env bash
set -eu
failed=0
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
find \
src/drivers \
src/examples \
src/firmware \
src/include \
src/lib/controllib \
src/lib/conversion \
src/lib/geo \
src/lib/geo_lookup \
src/lib/launchdetection \
src/lib/rc \
src/lib/tailsitter_recovery \
src/lib/terrain_estimation \
src/lib/version \
src/modules/attitude_estimator_q \
src/modules/bottle_drop \
src/modules/controllib_test \
src/modules/dataman \
src/modules/fw_att_control \
src/modules/fw_pos_control_l1 \
src/modules/gpio_led \
src/modules/land_detector \
src/modules/local_position_estimator \
src/modules/logger \
src/modules/mavlink/mavlink_tests \
src/modules/muorb \
src/modules/param \
src/modules/px4iofirmware \
src/modules/replay \
src/modules/segway \
src/modules/sensors \
src/modules/simulator \
src/modules/systemlib \
src/modules/unit_test \
src/modules/uORB \
src/modules/vtol_att_control \
src/platforms \
src/systemcmds \
-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
+1
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
+6 -6
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()
+1 -1
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]))
+206
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()
+2
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"):
+49 -2
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):
+3 -2
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()
+8
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)
@@ -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,
+171
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))
+1 -1
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
+1 -1
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
+23 -11
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
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
+10 -2
View File
@@ -8,6 +8,14 @@ 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 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.
python geo_tag_images.py --logfile=mylog.bin --input=images/ --output=tagged/
geotagging.py: Use this script to geotag a set of images. It uses the CAM trigger data from the log file for image association.
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.
+375
View File
@@ -0,0 +1,375 @@
#!/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
# 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 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.klm = args['klm']
self.verbose = args['verbose']
self.offset = args['offset']
self.time_tresh = args['treshold']
self.tdiff_list = []
self.non_processed_files = []
self.tagged_gps = []
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.klm and len(self.tdiff_list) > 0:
self.gen_klm()
if len(self.non_processed_files) > 0:
print '[WARNING] Some images werent processed:'
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_klm(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('relativeToGround'),
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('relativeToGround'),
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:
"""
i = bisect.bisect_left(datetime_list, elem)
date = datetime_list[i]
diff = (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:
"""
os.system('python sdlog2_dump.py ' + log_file + ' -f log.csv')
f = open('log.csv', 'rb')
reader = csv.reader(f)
headers = reader.next()
line = {}
for h in headers:
line[h] = []
for row in reader:
for h, v in zip(headers, row):
line[h].append(v)
gps_list = []
for seq in range(0, len(line['GPS_Lat']) - 1):
gps_time = int(line['GPS_TimeMS'][seq + 1])
gps_week = int(line['GPS_Week'][seq + 1])
gps_lat = float(line['GPS_Lat'][seq + 1])
gps_lon = float(line['GPS_Lng'][seq + 1])
gps_alt = float(line['GPS_RelAlt'][seq + 1])
date = self.gps_week_seconds_to_datetime(gps_week, gps_time, leapmillis=offset)
print date
gps_list.append(GpsPosition(date, gps_lat, gps_lon, gps_alt))
return gps_list
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
dt_list = [x.timestamp for x in self.gps_list]
img_seq = 1
for i in xrange(img_size):
base_path, filename = os.path.split(self.img_list[i])
cdate = datetime.datetime.fromtimestamp(os.path.getmtime(self.img_list[i]))
gps_i, img_tdiff = self.get_closest_datetime_index(dt_list, cdate)
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
copyfile(self.img_list[i], self.output + str(img_seq) + filename)
self.set_gps_location(self.output + str(img_seq) + 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(
'-klm', '--klm', 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()
+52
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
+23 -19
View File
@@ -43,7 +43,7 @@ fi
# kill process names that might stil
# be running from last time
pkill gazebo
pkill mainapp
pkill px4
jmavsim_pid=`jps | grep Simulator | cut -d" " -f1`
if [ -n "$jmavsim_pid" ]
then
@@ -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
+2 -2
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
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"
+95 -16
View File
@@ -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,13 +362,15 @@ 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()
# headers
set(msg_out_path ${CMAKE_BINARY_DIR}/src/modules/uORB/topics)
set(msg_list)
foreach(msg_file ${MSG_FILES})
@@ -378,18 +383,48 @@ 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 ${CMAKE_BINARY_DIR}/topics_temporary_header
DEPENDS ${DEPENDS} ${MSG_FILES}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "Generating uORB topic headers"
VERBATIM
)
# !sources
set(msg_source_out_path ${CMAKE_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 ${CMAKE_BINARY_DIR}/topics_temporary_sources
DEPENDS ${DEPENDS} ${MSG_FILES}
WORKING_DIRECTORY ${CMAKE_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)
@@ -399,7 +434,8 @@ function(px4_generate_messages)
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}
@@ -411,8 +447,13 @@ function(px4_generate_messages)
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")
@@ -490,6 +532,42 @@ function(px4_add_adb_push)
)
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 ${CMAKE_SOURCE_DIR}/Tools/adb_upload_to_bebop.sh ${FILES} ${DEST}
DEPENDS ${DEPENDS}
WORKING_DIRECTORY ${CMAKE_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 ${CMAKE_SOURCE_DIR}/Tools/scp_upload.sh ${FILES} ${DEST}
DEPENDS ${DEPENDS}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "uploading ${BUNDLE}"
VERBATIM
USES_TERMINAL
)
endfunction()
#=============================================================================
#
@@ -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)
@@ -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,21 +855,21 @@ 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}
)
#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}
)
#message(STATUS "GIT_DESC = ${git_desc}")
set(git_desc_short)
string(SUBSTRING ${git_desc} 1 16 git_desc_short)
#message(STATUS "GIT_VERSION = ${git_version}")
set(git_version_short)
string(SUBSTRING ${git_version} 1 16 git_version_short)
configure_file(${CMAKE_SOURCE_DIR}/cmake/templates/build_git_version.h.in ${HEADER} @ONLY)
endfunction()
+27 -14
View File
@@ -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,15 @@ 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 +119,7 @@ set(config_module_list
# Logging
#
modules/sdlog2
modules/logger
#
# Library modules
@@ -134,7 +149,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 +160,7 @@ set(config_module_list
#
# Rover apps
#
examples/rover_steering_control
#examples/rover_steering_control
#
# Demo apps
@@ -153,7 +168,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 +191,6 @@ set(config_extra_builtin_cmds
sercon
)
set(config_io_board
px4io-v2
)
set(config_extra_libs
uavcan
uavcan_stm32_driver
@@ -191,9 +202,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")
@@ -61,6 +61,7 @@ set(config_module_list
# General system control
#
modules/commander
modules/load_mon
modules/navigator
modules/mavlink
modules/gpio_led
@@ -90,6 +91,7 @@ set(config_module_list
# Logging
#
modules/sdlog2
modules/logger
#
# Library modules
+26 -10
View File
@@ -48,33 +48,48 @@ 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
@@ -82,14 +97,14 @@ set(config_module_list
# Estimation modules (EKF/ SO3 / other filters)
#
modules/attitude_estimator_q
modules/ekf_att_pos_estimator
#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 +114,7 @@ set(config_module_list
#
# Logging
#
#modules/logger
modules/sdlog2
#
+10 -7
View File
@@ -41,11 +41,13 @@ set(config_module_list
modules/sensors
#drivers/mkblctrl
drivers/px4flow
drivers/oreoled
#drivers/oreoled
drivers/gimbal
drivers/pwm_input
drivers/camera_trigger
drivers/bst
#drivers/snapdragon_rc_pwm
#drivers/lis3mdl
#
# System commands
@@ -64,25 +66,25 @@ set(config_module_list
systemcmds/mtd
systemcmds/dumpfile
systemcmds/ver
#systemcmds/sd_bench
#systemcmds/tests
systemcmds/motor_ramp
#
# 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)
#
# Too high RAM usage due to static allocations
# modules/attitude_estimator_ekf
modules/attitude_estimator_q
modules/ekf2
modules/position_estimator_inav
#
# Vehicle Control
@@ -97,6 +99,7 @@ set(config_module_list
#
# Logging
#
modules/logger
modules/sdlog2
#
@@ -138,7 +141,7 @@ set(config_module_list
#
# Rover apps
#
examples/rover_steering_control
#examples/rover_steering_control
#
# Demo apps
+210
View File
@@ -0,0 +1,210 @@
include(nuttx/px4_impl_nuttx)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(config_uavcan_num_ifaces 2)
set(config_module_list
#
# Board support modules
#
drivers/device
drivers/stm32
drivers/stm32/adc
drivers/stm32/tone_alarm
drivers/led
drivers/px4fmu
drivers/px4io
drivers/boards/px4fmu-v2
drivers/rgbled
drivers/mpu6000
drivers/mpu9250
drivers/lsm303d
drivers/l3gd20
drivers/hmc5883
drivers/ms5611
#drivers/mb12xx
#drivers/srf02
#drivers/sf0x
#drivers/ll40ls
#drivers/trone
drivers/gps
#drivers/pwm_out_sim
#drivers/hott
#drivers/hott/hott_telemetry
#drivers/hott/hott_sensors
drivers/blinkm
drivers/airspeed
drivers/ets_airspeed
drivers/meas_airspeed
drivers/frsky_telemetry
modules/sensors
#drivers/mkblctrl
drivers/px4flow
#drivers/oreoled
drivers/gimbal
drivers/pwm_input
drivers/camera_trigger
#drivers/bst
#drivers/snapdragon_rc_pwm
#drivers/lis3mdl
#
# 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/reboot
#systemcmds/sd_bench
systemcmds/top
#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/uavcan
modules/land_detector
#
# Estimation modules (EKF/ SO3 / other filters)
#
modules/attitude_estimator_q
#modules/ekf_att_pos_estimator
modules/position_estimator_inav
modules/local_position_estimator
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
#modules/sdlog2
#
# 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
#
# OBC challenge
#
#modules/bottle_drop
#
# Rover apps
#
#examples/rover_steering_control
#
# Demo apps
#
#examples/math_demo
# Tutorial code from
# https://px4.io/dev/px4_simple_app
#examples/px4_simple_app
# Tutorial code from
# https://px4.io/dev/daemon
#examples/px4_daemon_app
# Tutorial code from
# https://px4.io/dev/debug_values
#examples/px4_mavlink_debug
# Tutorial code from
# https://px4.io/dev/example_fixedwing_control
#examples/fixedwing_control
# Hardware test
#examples/hwtest
)
set(config_extra_builtin_cmds
serdis
sercon
)
set(config_io_board
px4io-v2
)
set(config_extra_libs
uavcan
uavcan_stm32_driver
)
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")
+21 -2
View File
@@ -23,6 +23,7 @@ set(config_module_list
drivers/mb12xx
drivers/srf02
drivers/sf0x
drivers/sf1xx
drivers/ll40ls
drivers/trone
drivers/gps
@@ -45,6 +46,10 @@ set(config_module_list
drivers/bst
drivers/snapdragon_rc_pwm
drivers/lis3mdl
drivers/bmp280
drivers/bma180
drivers/bmi160
drivers/tap_esc
#
# System commands
@@ -63,12 +68,26 @@ set(config_module_list
systemcmds/mtd
systemcmds/dumpfile
systemcmds/ver
systemcmds/sd_bench
systemcmds/motor_ramp
#
# Testing
#
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
@@ -78,12 +97,11 @@ 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/ekf2
modules/local_position_estimator
#
# Vehicle Control
@@ -99,6 +117,7 @@ set(config_module_list
# Logging
#
modules/sdlog2
modules/logger
#
# Library modules
+129
View File
@@ -0,0 +1,129 @@
include(nuttx/px4_impl_nuttx)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-none-eabi.cmake)
set(config_module_list
#
# Board support modules
#
drivers/device
drivers/stm32
drivers/stm32/adc
drivers/stm32/tone_alarm
drivers/led
drivers/px4fmu
drivers/boards/tap-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")
@@ -1,57 +1,106 @@
include(posix/px4_impl_posix)
if ("${RPI_TOOLCHAIN_DIR}" STREQUAL "")
set(RPI_TOOLCHAIN_DIR /opt/rpi_toolchain)
endif()
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf-raspbian.cmake)
set(CMAKE_PROGRAM_PATH
add_definitions(
-D__PX4_POSIX_BEBOP
-D__LINUX
-D__BEBOP
)
set(CMAKE_PROGRAM_PATH
"${RPI_TOOLCHAIN_DIR}/gcc-linaro-arm-linux-gnueabihf-raspbian/bin"
${CMAKE_PROGRAM_PATH}
)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake)
set(config_module_list
# examples/px4_simple_app
#
# Board support modules
#
drivers/device
platforms/common
platforms/posix/px4_layer
platforms/posix/work_queue
modules/sensors
platforms/posix/drivers/df_ms5607_wrapper
platforms/posix/drivers/df_mpu6050_wrapper
platforms/posix/drivers/df_ak8963_wrapper
#
# System commands
#
systemcmds/param
systemcmds/mixer
systemcmds/ver
systemcmds/esc_calib
systemcmds/reboot
systemcmds/topic_listener
systemcmds/perf
modules/uORB
#
# Estimation modules (EKF/ SO3 / other filters)
#
#modules/attitude_estimator_ekf
modules/ekf_att_pos_estimator
modules/attitude_estimator_q
modules/position_estimator_inav
modules/local_position_estimator
modules/ekf2
#
# Vehicle Control
#
modules/mc_att_control
modules/mc_pos_control
modules/fw_att_control
modules/fw_pos_control_l1
modules/vtol_att_control
#
# Library modules
#
modules/sdlog2
modules/logger
modules/commander
modules/param
modules/systemlib
modules/systemlib/mixer
modules/sensors
modules/mavlink
modules/attitude_estimator_q
modules/position_estimator_inav
modules/navigator
modules/vtol_att_control
modules/mc_pos_control
modules/mc_att_control
modules/land_detector
modules/fw_att_control
modules/fw_pos_control_l1
modules/uORB
modules/dataman
modules/sdlog2
modules/commander
modules/land_detector
modules/navigator
modules/mavlink
#
# PX4 drivers
#
#
# Libraries
#
lib/controllib
lib/mathlib
lib/mathlib/math/filter
lib/conversion
lib/ecl
lib/external_lgpl
lib/geo
lib/ecl
lib/geo_lookup
lib/launchdetection
lib/external_lgpl
lib/conversion
lib/terrain_estimation
lib/runway_takeoff
lib/tailsitter_recovery
lib/DriverFramework/framework
#
# POSIX
#
platforms/common
platforms/posix/px4_layer
platforms/posix/work_queue
)
set(config_df_driver_list
ms5607
mpu6050
ak8963
)
+1
View File
@@ -27,6 +27,7 @@ set(config_module_list
modules/sensors
modules/dataman
modules/sdlog2
modules/logger
modules/simulator
modules/commander
@@ -1,6 +1,6 @@
include(posix/px4_impl_posix)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf.cmake)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-arm-linux-gnueabihf.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon")
@@ -12,7 +12,7 @@ set(CONFIG_SHMEM "1")
# or if it is for the Snapdragon.
add_definitions(
-D__PX4_POSIX_EAGLE
-D__USING_SNAPDRAGON_LEGACY_DRIVER
-D__USING_SNAPDRAGON_LEGACY_DRIVER
)
set(config_module_list
@@ -45,8 +45,10 @@ set(config_module_list
modules/sensors
modules/dataman
modules/sdlog2
modules/logger
modules/simulator
modules/commander
modules/navigator
lib/controllib
lib/mathlib
-48
View File
@@ -1,48 +0,0 @@
include(posix/px4_impl_posix)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake)
set(config_module_list
drivers/device
platforms/common
platforms/posix/px4_layer
platforms/posix/work_queue
systemcmds/param
systemcmds/mixer
systemcmds/ver
systemcmds/esc_calib
systemcmds/reboot
systemcmds/topic_listener
systemcmds/perf
modules/uORB
modules/param
modules/systemlib
modules/systemlib/mixer
modules/sensors
modules/mavlink
modules/attitude_estimator_q
modules/position_estimator_inav
modules/navigator
modules/vtol_att_control
modules/mc_pos_control
modules/mc_att_control
modules/land_detector
modules/fw_att_control
modules/fw_pos_control_l1
modules/dataman
modules/sdlog2
modules/commander
lib/controllib
lib/mathlib
lib/mathlib/math/filter
lib/conversion
lib/ecl
lib/external_lgpl
lib/geo
lib/geo_lookup
lib/launchdetection
lib/terrain_estimation
lib/runway_takeoff
lib/tailsitter_recovery
lib/DriverFramework/framework
)
+114
View File
@@ -0,0 +1,114 @@
# This file is shared between posix_rpi_native.cmake
# and posix_rpi_cross.cmake.
include(posix/px4_impl_posix)
# This definition allows to differentiate if this just the usual POSIX build
# or if it is for the RPi.
add_definitions(
-D__PX4_POSIX_RPI
-D__LINUX
)
set(config_module_list
#
# Board support modules
#
drivers/device
modules/sensors
platforms/posix/drivers/df_mpu9250_wrapper
platforms/posix/drivers/df_lsm9ds1_wrapper
platforms/posix/drivers/df_ms5611_wrapper
platforms/posix/drivers/df_hmc5883_wrapper
platforms/posix/drivers/df_trone_wrapper
platforms/posix/drivers/df_isl29501_wrapper
#
# System commands
#
systemcmds/param
systemcmds/mixer
systemcmds/ver
systemcmds/esc_calib
systemcmds/reboot
systemcmds/topic_listener
systemcmds/perf
#
# Estimation modules (EKF/ SO3 / other filters)
#
#modules/attitude_estimator_ekf
modules/ekf_att_pos_estimator
modules/attitude_estimator_q
modules/position_estimator_inav
modules/local_position_estimator
modules/ekf2
#
# Vehicle Control
#
modules/mc_att_control
modules/mc_pos_control
modules/fw_att_control
modules/fw_pos_control_l1
modules/vtol_att_control
#
# Library modules
#
modules/sdlog2
modules/logger
modules/commander
modules/param
modules/systemlib
modules/systemlib/mixer
modules/uORB
modules/dataman
modules/land_detector
modules/navigator
modules/mavlink
#
# PX4 drivers
#
drivers/gps
drivers/navio_sysfs_rc_in
drivers/navio_sysfs_pwm_out
#
# Libraries
#
lib/controllib
lib/mathlib
lib/mathlib/math/filter
lib/geo
lib/ecl
lib/geo_lookup
lib/launchdetection
lib/external_lgpl
lib/conversion
lib/terrain_estimation
lib/runway_takeoff
lib/tailsitter_recovery
lib/DriverFramework/framework
#
# POSIX
#
platforms/common
platforms/posix/px4_layer
platforms/posix/work_queue
)
#
# DriverFramework driver
#
set(config_df_driver_list
mpu9250
lsm9ds1
ms5611
hmc5883
trone
isl29501
)
+8
View File
@@ -0,0 +1,8 @@
include(configs/posix_rpi_common)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-arm-linux-gnueabihf-raspbian.cmake)
set(CMAKE_PROGRAM_PATH
"${RPI_TOOLCHAIN_DIR}/gcc-linaro-arm-linux-gnueabihf-raspbian/bin"
${CMAKE_PROGRAM_PATH}
)
+3
View File
@@ -0,0 +1,3 @@
include(configs/posix_rpi_common)
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/toolchains/Toolchain-native.cmake)
@@ -38,8 +38,10 @@ set(config_module_list
modules/sensors
modules/dataman
modules/sdlog2
modules/logger
modules/simulator
modules/commander
modules/navigator
lib/controllib
lib/mathlib
+1
View File
@@ -49,6 +49,7 @@ set(config_module_list
modules/fw_pos_control_l1
modules/dataman
modules/sdlog2
modules/logger
modules/commander
lib/controllib
lib/mathlib

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