Caio Marcelo de Oliveira Filho
01665282f7
AP_HAL_VRBRAIN: Remove unused extern declaration for HALs
2015-11-20 16:32:57 +09:00
Caio Marcelo de Oliveira Filho
bb165d8a4c
AP_HAL_SITL: Remove unused extern declaration for HALs
2015-11-20 16:32:45 +09:00
Caio Marcelo de Oliveira Filho
c43474fbf4
AP_HAL_PX4: Remove unused extern declaration for HALs
2015-11-20 16:32:32 +09:00
Caio Marcelo de Oliveira Filho
6773e18bc4
AP_HAL_Linux: Remove unused extern declaration for HALs
2015-11-20 16:32:17 +09:00
Caio Marcelo de Oliveira Filho
d9a3876851
AP_HAL_FLYMAPLE: Remove unused extern declaration for HALs
2015-11-20 16:32:00 +09:00
Caio Marcelo de Oliveira Filho
ee542aac8b
AP_HAL_Empty: Remove unused extern declaration for HALs
...
These are "left-overs" from how things worked before commit
"AP_HAL: make code not depend on concrete HAL
implementations". The real declaration now lives inside get_HAL() function.
Use the opportunitiy to change the files to use "#pragma once".
2015-11-20 16:30:45 +09:00
Andrew Tridgell
1ee7963edb
AP_ADC: fixed example build
2015-11-20 17:33:17 +11:00
Andrew Tridgell
7375f395f9
AP_RPM: added optional PWM logging
2015-11-20 17:02:46 +11:00
Caio Marcelo de Oliveira Filho
cbaa57c7be
AP_HAL_VRBRAIN: remove unused functions
2015-11-20 12:36:54 +09:00
Caio Marcelo de Oliveira Filho
783db23a0f
AP_HAL_SITL: remove unused functions
2015-11-20 12:36:42 +09:00
Caio Marcelo de Oliveira Filho
1de0e0a5a6
AP_HAL_PX4: remove unused functions
2015-11-20 12:36:34 +09:00
Caio Marcelo de Oliveira Filho
e0a6d83457
AP_HAL_LINUX: remove unused functions
2015-11-20 12:36:25 +09:00
Caio Marcelo de Oliveira Filho
f3cc27e04a
AP_HAL_FLYMAPLE: remove unused functions
2015-11-20 12:36:18 +09:00
Caio Marcelo de Oliveira Filho
420dfc7ce2
AP_HAL_Empty: remove unused functions
2015-11-20 12:36:10 +09:00
Caio Marcelo de Oliveira Filho
c5fc0deee9
AP_HAL_Scheduler: remove unused functions
...
Getting the time elapsed and panic are now functions in AP_HAL, so
remove them from HAL class interface and it's implementations.
2015-11-20 12:36:00 +09:00
Caio Marcelo de Oliveira Filho
d343bfdc6c
SITL: use millis/micros/panic functions
2015-11-20 12:35:50 +09:00
Caio Marcelo de Oliveira Filho
e839892524
PID: use millis/micros/panic functions
2015-11-20 12:35:42 +09:00
Caio Marcelo de Oliveira Filho
a096c2b72c
GCS_MAVLink: use millis/micros/panic functions
2015-11-20 12:35:34 +09:00
Caio Marcelo de Oliveira Filho
51a6455ac0
Filter: use millis/micros/panic functions
2015-11-20 12:35:25 +09:00
Caio Marcelo de Oliveira Filho
578b31e7f8
AP_DataFlash: example uses millis/micros/panic functions
2015-11-20 12:35:17 +09:00
Caio Marcelo de Oliveira Filho
753956bd77
AP_Dataflash: use millis/micros/panic functions
2015-11-20 12:35:00 +09:00
Caio Marcelo de Oliveira Filho
0aa520a273
AP_Terrain: use millis/micros/panic functions
2015-11-20 12:34:53 +09:00
Caio Marcelo de Oliveira Filho
c70dda526c
AP_TECS: use millis/micros/panic functions
2015-11-20 12:34:46 +09:00
Caio Marcelo de Oliveira Filho
7c9a5dc1b9
AP_ServoRelayEvents: use millis/micros/panic functions
2015-11-20 12:34:39 +09:00
Caio Marcelo de Oliveira Filho
81186e5416
AP_Scheduler: use millis/micros/panic functions
2015-11-20 12:34:17 +09:00
Caio Marcelo de Oliveira Filho
82a14b183d
AP_RangeFinder: use millis/micros/panic functions
2015-11-20 12:34:10 +09:00
Caio Marcelo de Oliveira Filho
5344d95ef5
AP_Rally: use millis/micros/panic functions
2015-11-20 12:34:04 +09:00
Caio Marcelo de Oliveira Filho
9639add306
AP_RPM: use millis/micros/panic functions
2015-11-20 12:33:57 +09:00
Caio Marcelo de Oliveira Filho
26c06ae3a9
AP_PerfMon: use millis/micros/panic functions
2015-11-20 12:33:33 +09:00
Caio Marcelo de Oliveira Filho
d186704724
AP_Parachute: use millis/micros/panic functions
2015-11-20 12:33:26 +09:00
Caio Marcelo de Oliveira Filho
5b06924779
AP_OpticalFlow: use millis/micros/panic functions
2015-11-20 12:33:19 +09:00
Caio Marcelo de Oliveira Filho
daee8e8e76
AP_Notify: use millis/micros/panic functions
2015-11-20 12:33:13 +09:00
Caio Marcelo de Oliveira Filho
8d882b06dd
AP_NavEKF2: use millis/micros/panic functions
2015-11-20 12:32:41 +09:00
Caio Marcelo de Oliveira Filho
e3c317b96b
AP_NavEKF: use millis/micros/panic functions
2015-11-20 12:32:31 +09:00
Caio Marcelo de Oliveira Filho
0b2184b818
AP_Mount: use millis/micros/panic functions
2015-11-20 12:32:24 +09:00
Caio Marcelo de Oliveira Filho
513f4fe986
AP_Motors: example uses millis/micros/panic functions
2015-11-20 12:32:16 +09:00
Caio Marcelo de Oliveira Filho
01e4265ce1
AP_Mission: example uses millis/micros/panic functions
2015-11-20 12:32:09 +09:00
Caio Marcelo de Oliveira Filho
f20a4e413c
AP_Mission: use millis/micros/panic functions
2015-11-20 12:32:03 +09:00
Caio Marcelo de Oliveira Filho
8257e6ab89
AP_Math: examples use millis/micros/panic functions
2015-11-20 12:31:55 +09:00
Caio Marcelo de Oliveira Filho
5292bc0054
AP_HAL: example uses millis/micros/panic functions
2015-11-20 12:31:48 +09:00
Caio Marcelo de Oliveira Filho
d7601095fa
AP_InertialSensor: use millis/micros/panic functions
2015-11-20 12:31:41 +09:00
Caio Marcelo de Oliveira Filho
87b9b4463e
AP_IRLock: use millis/micros/panic functions
2015-11-20 12:31:35 +09:00
Caio Marcelo de Oliveira Filho
2314578f6f
AP_HAL_VRBRAIN: use millis/micros/panic functions
2015-11-20 12:31:28 +09:00
Caio Marcelo de Oliveira Filho
85d12efbef
AP_HAL_SITL: use millis/micros/panic functions
2015-11-20 12:31:20 +09:00
Caio Marcelo de Oliveira Filho
a76c9e0051
AP_HAL_PX4: use millis/micros/panic functions
2015-11-20 12:31:13 +09:00
Caio Marcelo de Oliveira Filho
7675913d5b
AP_HAL_Linux: use millis/micros/panic functions
2015-11-20 12:31:04 +09:00
Caio Marcelo de Oliveira Filho
f03eec59d6
AP_HAL_FLYMAPLE: use millis/micros/panic functions
2015-11-20 12:30:55 +09:00
Caio Marcelo de Oliveira Filho
c33b86a783
AP_GPS: use millis/micros/panic functions
2015-11-20 12:30:48 +09:00
Caio Marcelo de Oliveira Filho
2b982d6391
AP_FrSkyTelem: use millis/micros/panic functions
2015-11-20 12:30:41 +09:00
Caio Marcelo de Oliveira Filho
032acaaee4
AP_EPM: use millis/micros/panic functions
2015-11-20 12:30:34 +09:00
Caio Marcelo de Oliveira Filho
0ae2fe6fcd
AP_Declination: example uses millis/micros/panic functions
2015-11-20 12:30:27 +09:00
Caio Marcelo de Oliveira Filho
cd7cfdef91
AP_Compass: examples use millis/micros/panic functions
2015-11-20 12:30:20 +09:00
Caio Marcelo de Oliveira Filho
86954cda0e
AP_CompassCalibrator: use millis/micros/panic functions
2015-11-20 12:30:14 +09:00
Caio Marcelo de Oliveira Filho
0d3fbbdd37
AP_Compass: use millis/micros/panic functions
2015-11-20 12:30:05 +09:00
Caio Marcelo de Oliveira Filho
89d6acaeaa
AP_BoardConfig: use millis/micros/panic functions
2015-11-20 12:29:58 +09:00
Caio Marcelo de Oliveira Filho
3b4e18043b
AP_BattMonitor: examples use millis/micros/panic functions
2015-11-20 12:29:52 +09:00
Caio Marcelo de Oliveira Filho
9eb945d24f
AP_BattMonitor: use millis/micros/panic functions
2015-11-20 12:29:45 +09:00
Caio Marcelo de Oliveira Filho
8cce3067f4
AP_Baro: examples use millis/micros/panic functions
2015-11-20 12:29:38 +09:00
Caio Marcelo de Oliveira Filho
5a280838f8
AP_Baro: use millis/micros/panic functions
2015-11-20 12:29:31 +09:00
Caio Marcelo de Oliveira Filho
b8f0beab83
AP_Arming: use millis/micros/panic functions
2015-11-20 12:29:24 +09:00
Caio Marcelo de Oliveira Filho
410bbe4c26
AP_Airspeed: examples use millis/micros/panic functions
2015-11-20 12:29:16 +09:00
Caio Marcelo de Oliveira Filho
2b10e0fac0
AP_Airspeed: use millis/micros/panic functions
2015-11-20 12:29:07 +09:00
Caio Marcelo de Oliveira Filho
3a17c858e3
AP_AHRS: use millis/micros/panic functions
2015-11-20 12:29:00 +09:00
Caio Marcelo de Oliveira Filho
4ea45b8df1
AP_AHRS_NavEKF: use millis/micros/panic functions
2015-11-20 12:28:53 +09:00
Caio Marcelo de Oliveira Filho
55e61538b3
AP_AHRS_DCM: use millis/micros/panic functions
2015-11-20 12:28:45 +09:00
Caio Marcelo de Oliveira Filho
b293fb150c
AP_ADC: use millis/micros/panic functions
2015-11-20 12:28:36 +09:00
Caio Marcelo de Oliveira Filho
b331ffdd91
APM_OBC: use millis/micros/panic functions
2015-11-20 12:28:28 +09:00
Caio Marcelo de Oliveira Filho
fe718a6ce8
APM_Control: use millis/micros/panic functions
2015-11-20 12:28:20 +09:00
Caio Marcelo de Oliveira Filho
e867a06383
AC_WPNav: use millis/micros/panic functions
2015-11-20 12:28:13 +09:00
Caio Marcelo de Oliveira Filho
70d0ea9151
AC_Sprayer: use millis/micros/panic functions
2015-11-20 12:28:04 +09:00
Caio Marcelo de Oliveira Filho
ccd03bcf60
AC_Fence: use millis/micros/panic functions
2015-11-20 12:27:11 +09:00
Caio Marcelo de Oliveira Filho
ea08b6115d
AC_AttControl: use millis/micros/panic functions
2015-11-20 12:27:03 +09:00
Caio Marcelo de Oliveira Filho
7662c2e73f
AP_HAL_VRBRAIN: implement new AP_HAL functions
...
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
2015-11-20 12:25:42 +09:00
Caio Marcelo de Oliveira Filho
79721feb14
AP_HAL_FLYMAPLE: implement new AP_HAL functions
...
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
Because the functions are in a namespace, there's no need to do the
define/undef trick and avoid the globals millis() and micros() provided
by libmaple.
2015-11-20 12:25:41 +09:00
Caio Marcelo de Oliveira Filho
8db8b9b355
AP_HAL_PX4: implement new AP_HAL functions
...
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
2015-11-20 12:25:40 +09:00
Caio Marcelo de Oliveira Filho
ff016c4b5a
AP_HAL_Linux: implement new AP_HAL functions
...
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
The '_sketch_start_time' was renamed and moved as a detail of
implementation of the functions code. It allows the code to return time
starting from zero.
The 'stopped_clock_usec' was renamed to follow convention in the file
and add a getter so that AP_HAL functions can reach it. It's not a
problem this getter is public because in practice, regular code
shouldn't even access the Linux::Scheduler directly -- only code that
should is from Linux implementation.
2015-11-20 12:25:39 +09:00
Caio Marcelo de Oliveira Filho
3ef77617fd
AP_HAL_SITL: implement new AP_HAL functions
...
Implement the new AP_HAL functions and use them in the Scheduler when
possible.
The '_sketch_start_time' was renamed and moved as a detail of
implementation of the functions code. It allows the code to return time
starting from zero.
The 'stopped_clock_usec' was renamed to follow convention in the file
and add a getter so that AP_HAL functions can reach it. It's not a
problem this getter is public because in practice, regular code
shouldn't even access the SITLScheduler directly -- only code that
should is from SITL itself.
2015-11-20 12:25:38 +09:00
Caio Marcelo de Oliveira Filho
efbc7648b1
AP_HAL: create AP_HAL namespace and use for some HAL functionality
...
For certain basic functionality, there aren't much benefit to be able to
vary the implementation easily at runtime. So instead of using virtual
functions, use regular functions that are "resolved" at link time. The
implementation of such functions is provided per board/platform.
Examples of functions that fit this include: getting the current
time (since boot), panic'ing, getting system information, rebooting.
These functions are less likely to benefit from the indirection provided
by virtual interfaces. For more complex hardware access APIs the
indirection makes more sense and ease the testing (when we have it!).
The idea is that instead of calling
hal.scheduler->panic("on the streets of london");
now use
AP_HAL::panic("on the streets of london");
A less important side-effect is that call-site code gets
smaller. Currently the compiler needs to get the hal, get the scheduler
pointer, get the right function pointer in the vtable for that
scheduler. And the call must include an extra parameter ("this"). Now it
will be just a function call, with the address resolved at link time.
This patch introduces the first functions that will be in the namespace,
further patches will implementations for each board and then switch the
call-sites. The extra init() function allow any initial setup needed for
the functions to work.
2015-11-20 12:25:24 +09:00
Jonathan Challinger
f9c7f15052
AC_WPNav: WPNAV_LOIT_SPEED WPNAV_LOIT_MAXA take effect immediately
2015-11-18 22:12:39 +09:00
Paul Riseborough
ff2782b790
AP_NavEKF2: Parameter changes to reduce noise on gyro bias estimates
2015-11-18 20:17:03 +09:00
Paul Riseborough
2193103586
AP_NavEKF: Reduce time to switch after an IMU fault
...
This revised threshold value is still double the maximum that has been observed in flight logs so far with healthy sensors
The previous value was too slow to switch for sudden IMU gyro faults
We can afford an ocasional false trigger becasue the front end will only select another instance if it is healthy and has lower errors
2015-11-18 20:17:00 +09:00
Paul Riseborough
20798316e1
AP_NavEKF2: fix bug in performance timer
2015-11-18 20:16:58 +09:00
Randy Mackay
c9340dbeb6
AC_PosControl: run velocity controller z-axis at 400hz
2015-11-18 13:31:21 +09:00
Randy Mackay
dbc8ce1d69
AC_PosControl: default z-axis controller to 400hz
...
No functional change as vehicle code always sets it explicitely
2015-11-18 13:31:20 +09:00
Randy Mackay
323a527734
AC_PosControl: velocity controller uses feed-forward althold
2015-11-18 13:31:19 +09:00
Randy Mackay
4b41710261
AC_AttControl: minor comment fix
2015-11-18 13:31:18 +09:00
Caio Marcelo de Oliveira Filho
a348424551
AP_HAL: remove unused function
...
This was used by APM1/2 that were removed.
2015-11-18 11:50:56 +09:00
Andrew Tridgell
5561efde2b
AP_NavEKF: we can assume get_sample_rate() returns a non-zero number
...
this fixes a build error with the previous patch
2015-11-18 11:48:50 +11:00
Paul Riseborough
e32e6cfa67
AP_NavEKF: Protect against bad delta time from the INS library
...
Prevent arithmetic divide by zero exceptions and handle invalid delta time in a consistent way by setting invalid times to the average.
2015-11-18 11:43:40 +11:00
Paul Riseborough
2fb5a4489b
AP_NavEKF2: Prevent airspeed faults from causing excessive loss of accuracy
2015-11-18 11:39:54 +11:00
Paul Riseborough
fc6978e4d9
AP_NavEKF2: Fix error in parameter documentations
2015-11-18 11:39:54 +11:00
Paul Riseborough
f9cadaf15c
AP_NavEKF2: Increase resolution of innovation consistency gate parameters
...
Also adds protection against setting the gate to a number that would casue numerical errors.
2015-11-18 11:39:53 +11:00
Andrew Tridgell
08ef00b431
AP_NavEKF2: fixed build with IMU_BUFFER_LENGTH change
2015-11-18 11:33:51 +11:00
Paul Riseborough
af3507ef3c
AP_NavEKF2: Stop bad INS velocity spoiling height reset
...
We should reset the velocity as well as the height if a reasonable reset value is available.
2015-11-18 11:18:50 +11:00
Paul Riseborough
97799ef0b3
AP_NavEKF2: Ensure that GPS origin is set before using data for height
2015-11-18 11:18:50 +11:00
Paul Riseborough
b8427e5d95
AP_NavEKF2: Only allow rangefinder height option during optical flow nav
2015-11-18 11:18:50 +11:00
Paul Riseborough
c9eea98142
AP_NavEKF2: Improve terrain height estimation
...
The ad-hoc scaling of error growth has been replaced with a consistent method that uses the main nav filters published vertical velocity uncertainty and the terrain gradient assumption.
2015-11-18 11:18:46 +11:00
Paul Riseborough
d820a538d5
AP_NavEKF2: Make magnetometer data available status global
...
This assists with debugging and makes it consistent with other measurements that are buffered
2015-11-18 11:18:46 +11:00
Paul Riseborough
04228e0b3b
AP_NavEKF2: Rework selection of height measurements for fusion
...
GPS height has been added as a measurement option along with range finder and baro
Selection of the height measurement source has been moved into a separate function
Each height source is assigned its own measurement noise
If GPS or baro alt is not able to be used, it reverts to baro
When baro is not being used, an offset is continually calculated which enables a switch to baro without a height step.
2015-11-18 11:18:42 +11:00
Paul Riseborough
80bc64ee7a
AP_NavEKF2: Update parameter documentation with GPS height source option
2015-11-18 11:18:18 +11:00