Commit Graph

8817 Commits

Author SHA1 Message Date
Randy Mackay
6bf6442396 MotorsMatrix; protect against divide by zero
This should never happen but just to be safe
2015-07-20 20:44:43 +09:00
Randy Mackay
fa60c3dce8 MotorsCoax: fix output_armed_stabilized min thr limit 2015-07-20 20:44:36 +09:00
Randy Mackay
8a308205ce MotorsSingle: fix output_armed_stabilized min thr limit 2015-07-20 20:44:32 +09:00
Randy Mackay
bd9a605086 MotorsTri: fix output_armed_stabilized min thr limit
_min_throttle is in the pwm range but was being used as if in the 0 to
1000 range
2015-07-20 20:44:23 +09:00
Randy Mackay
e53c46bd8f MotorsMatrix: fix output_armed_stabilized min thr limit
_min_throttle was being used as if it were in the 0 to 1000 range when
in fact it is in the pwm range.  This meant the lower limit was too low.
2015-07-20 20:44:14 +09:00
Jean-Baptiste Dubois
7dcfe1c667 RCOutput_Bebop: group channels write 2015-07-20 09:23:13 +10:00
Andrew Tridgell
3b1b7ea029 AP_GPS: fixed time handling with NMEA driver 2015-07-20 09:15:32 +10:00
Julien BERAUD
a852e48f37 AP_GPS_NMEA: fix gps startup
when no valid gps data, gps would restart in a loop. Take the frame without
gps fix into account for frame counting
2015-07-20 09:14:15 +10:00
John Hsu
14e462706d SITL: added gazebo SITL shim 2015-07-20 09:10:48 +10:00
John Hsu
c34ddb7fb8 HAL_SITL: added gazebo SITL model support 2015-07-20 09:10:48 +10:00
Randy Mackay
a61129f7f8 GCS_MAVLink: add support for send_mission_item_reached 2015-07-19 12:14:09 +09:00
Randy Mackay
766ccea3be Mission: fix bug causing first do-cmd to be run many times
The symptom was that if the very first command in the mission was a
do-command, it would be run after every nav-command that didn't have
another do-command before it.
2015-07-17 12:15:08 +09:00
Randy Mackay
429346f4bc AP_Mission: add missing breaks to case statement 2015-07-17 12:15:06 +09:00
Randy Mackay
0acfcbfa81 NavEKF: use primary compass instead of first instance
Thanks very much to staroselskii for finding this bug
2015-07-17 10:02:42 +09:00
Randy Mackay
cedc9a8670 Compass: add last_update_usec per instance 2015-07-17 10:02:41 +09:00
Andrew Tridgell
69cfe11455 AP_Arming: raise accel arming threshold to 0.75
arming issues due to accel inconsistency are too common
2015-07-17 09:50:19 +10:00
Andrew Tridgell
18de1c2c47 GCS_MAVLink: send AHRS2 even if we don't have a secondary position 2015-07-17 08:24:49 +10:00
Andrew Tridgell
6009ae55b1 AP_Math: fixed build of eulers example sketch 2015-07-17 08:24:49 +10:00
Randy Mackay
cc0ab26f5d Mount: fix init of mode
Mode was being set from MNT_DEFTL_MODE parameter before that parameter's
value had been initialised from eeprom
2015-07-16 14:14:01 +09:00
Jean-Baptiste Dubois
9e5d13c1de RCOutput_Bebop: use CLOCK_MONOTONIC instead of CLOCK_REALTIME
CLOCK_MONOTONIC is not affected by discontinuous jumps in the system time.
2015-07-15 12:08:44 +02:00
Robert Lefebvre
14882bc6a8 AC_AttitudeControl: Remove unused takeoff jump #define 2015-07-14 20:16:58 +09:00
Robert Lefebvre
e1902e2289 AP_MotorsHeli: Remove unused _dt variable. 2015-07-14 20:13:43 +09:00
Randy Mackay
7d2fe3cc2b AP_GPS_UBlox: remove unused member 2015-07-14 15:02:15 +09:00
Randy Mackay
2c33250bee AP_GPS_UBlox: send_next_rate_update always runs all steps
Moving the if, endif checks within the case statement ensures the state
machine goes through all 10 states
2015-07-14 15:02:13 +09:00
Randy Mackay
4b015d2091 AP_GPS: remove compiler warnings 2015-07-14 15:02:10 +09:00
Randy Mackay
df3a04e284 AP_GPS: reduce fake Ublox hdop to 130 2015-07-14 15:02:08 +09:00
Andy Piper
5ccc58ffb4 AP_GPS: Read actual hDOP value from UBLOX messages
Before we were reading the position DOP and calling it hDOP. Since the
other drivers actualy read hDOP it seem best to do the same.
Fixes issue 462.
2015-07-14 15:02:03 +09:00
Paul Riseborough
610595bfb9 AP_NavEKF: Prevent position drift between arming and takeoff when using OF 2015-07-13 10:54:36 +09:00
Randy Mackay
2b4aaf2368 SITL: add vibe monitor and SIM_ACC2_RND to sitl 2015-07-12 16:50:30 +09:00
Paul Riseborough
8b4b0b9576 AP_NavEKF: Add accelerometer clip monitoring and isolation
Isolates an accelerometer that is clipping  and attempts to use the one that is clipping less.
2015-07-12 16:49:19 +09:00
Staroselskii Georgii
72820303d4 AP_HAL_Linux: set higher SPI speed for Navio
We can set a higher speed on newer Linux kernels since
52469b2a38.
The older ones will just floor the value.
2015-07-10 18:59:18 +10:00
Peter Barker
0028910428 AP_InertialNav: take reference to variable we are trying to update
There are no callers to this function.  Perhaps it should be removed?
2015-07-10 18:56:20 +10:00
Andrew Tridgell
4e0c2c5a9b AP_HAL: defined default log and terrain directories for bebop
the /var filesystem is wiped on boot on Bebop. Use these as a
temporary workaround
2015-07-10 16:46:31 +10:00
Andrew Tridgell
6df33dd3f4 AP_InertialSensor: fixed MPU6000_SPI bus initialisation
we need _spi for get_semaphore()
2015-07-10 16:46:30 +10:00
Julien BERAUD
954ec71630 HAL_Linux: added rcout implementation for bebop 2015-07-10 16:46:30 +10:00
Julien BERAUD
51c3c499e2 AP_Compass: support AK8963 on I2C 2015-07-10 16:46:30 +10:00
Julien BERAUD
0b41da0dea AP_Compass: rework to make the bus generic for AK8963
Supporting only MPU9250, prepare to implement another bus, i.e i2c on the
bebop
2015-07-10 16:46:29 +10:00
Julien BERAUD
0cd584c293 AP_Compass: fix rotation for bebop AK8963
Set the correct rotation for bebop
2015-07-10 16:46:29 +10:00
Julien BERAUD
7dd0b5fae6 AP_Compass: removed _spi_sem and _spi 2015-07-10 16:46:29 +10:00
Julien BERAUD
d407737434 AP_Baro: added MS5607 support 2015-07-10 16:46:29 +10:00
Julien BERAUD
3cf952d1f8 AP_InertialSensor: add fifo support for MPU6000
And remove the use of data rdy in this case
2015-07-10 14:24:09 +10:00
Julien BERAUD
8a76ff53bd AP_InertialSensor: add i2c bus driver for MPU6050 2015-07-10 14:24:09 +10:00
Julien BERAUD
1679728730 AP_InertialSensor: Configure SPI as a generic bus for MPU6000
Add the possibility to implement an i2c bus communication for the
MPU6050 on parrot bebop
2015-07-10 14:24:09 +10:00
Julien BERAUD
f0bed711cf AP_HAL: added AK8963 I2C defines 2015-07-10 14:23:18 +10:00
Julien BERAUD
e0b59942b0 AP_HAL: changed log directories for bebop 2015-07-10 14:23:18 +10:00
Julien BERAUD
5c414b4ca2 AP_HAL: Fix Compass I2C address for Bebop 2015-07-10 14:23:18 +10:00
Julien BERAUD
8d6123928f AP_HAL: Add i2c bus numbers and addresses 2015-07-10 14:23:18 +10:00
Julien BERAUD
bef8001a09 AP_HAL: added MS5607 baro define 2015-07-10 14:23:17 +10:00
Julien BERAUD
eea7ea8488 AP_HAL: split MPU6000 INS defines for I2C and SPI 2015-07-10 14:23:17 +10:00
Julien BERAUD
7275e33e79 AP_HAL: add the possibility to have more than 1 i2c
Bebop drone has 3 i2c
2015-07-10 14:23:17 +10:00
Andrew Tridgell
a6f62c208e AP_HAL: added bebop Linux board type 2015-07-10 10:22:59 +10:00
Julien BERAUD
b32259307d AP_GPS: Add baudrate 230400 for GPS
Needed by bebop gps by default
2015-07-10 10:12:52 +10:00
Andrew Tridgell
282efe2d57 AP_Baro: fixed example to run accumulate at 50Hz 2015-07-10 09:59:35 +10:00
Andrew Tridgell
c83d5b1f08 AP_Compass: only build AK8963 driver on Linux
must match MPU9250 build
2015-07-09 11:57:27 +10:00
Andrew Tridgell
f4a9f9876f HAL_PX4: make usb_connected() more robust
thanks to a suggestion from Phillip Kocmoud, this should fix issues
with the XUAV-X2
2015-07-08 11:19:07 +10:00
Randy Mackay
2f8a7f316f Notify: enable toshibaLED for NAVIO 2015-07-07 20:08:19 +09:00
Staroselskii Georgii
402f46c56f AP_Airspeed: fixed a typo in the ARSPD_DEFAULT_PIN define
There was a redundant elif for Linux builds.
2015-07-07 21:02:21 +10:00
Randy Mackay
1d732ddf62 Mount: param desc rename from MAVLink to 3DR Solo 2015-07-07 13:29:24 +09:00
mirkix
1b0f482d37 AP_RangeFinder: Add support for HC-SR04 Range Finder connected to BBB 2015-07-07 08:00:33 +10:00
Randy Mackay
d192b3ccea Compass: set device id for ak8963 and hmc5843 2015-07-06 21:04:46 +09:00
Randy Mackay
ad1f9c4829 DataFlash: add ORGN message 2015-07-06 12:11:49 +09:00
Randy Mackay
03356a8d3a OptFlow: fix parameter descriptions 2015-07-06 11:37:38 +09:00
dgrat
f56f584233 Compass: Improved field rounding in learning
Signed-off-by: Daniel Frenzel <dgdanielf@gmail.com>
2015-07-06 11:31:58 +10:00
Daniel Frenzel
c49e44d02c HAL_LInux: RCInput for Navio
Cleaned the code a bit

Signed-off-by: Daniel Frenzel <dgdanielf@gmail.com>
2015-07-06 11:19:33 +10:00
kozinalexey
20a04bad77 AP_GPS: request RMC message in NMEA driver 2015-07-06 11:16:12 +10:00
dzollo
5d5d9dc137 AP_GPS: Fix max/min bug on SBP buffering. Log messages whether SBP driver recognizes the msg_type or not. 2015-07-06 10:53:35 +10:00
Lucas De Marchi
efec7723ff AP_InertialSensor: reset the MPU9250 chip on startup
Now that the initialization of MPU9250 is shared between the
AP_InertialSensor and other drivers using it as a backend, we can reset
the MPU9250 in order to put it in a known state.
2015-07-06 10:48:07 +10:00
Lucas De Marchi
1deb837e70 AP_Compass: Use common function in MPU9250 for initialization 2015-07-06 10:48:07 +10:00
Lucas De Marchi
eb4e2ac2e5 AP_InertialSensor: factor out MPU9250 initialization
Now we have the initialization code split in 2 parts:

1) Making sure the MPU9250 chip is alive and working: this is now in a
static function that may be called by other drivers that use MPU9250 as
backend.

2) The configuration of gyro and accel. Once the first part is completed
successfully the AP_InertialSensor_MPU9250 finishes the configuration of
the sensors it uses.

The only change in behavior here is that before we would try 25 time (5x
inside _hardware_init time 5x inside _init_sensor() that calls the first
function) to "boot the chip" and now we are doing "only" 5.
2015-07-06 10:48:07 +10:00
Lucas De Marchi
953bfbd3fe AP_InertialSensor: provide static methods for spi transactions
Add static methods to do the SPI transactions and provide the wrapper
methods when we have an instance of the object. This is useful so these
methods can be called from other contexts when the AP_InertialSensor
hasn't been initialized yet.
2015-07-06 10:48:07 +10:00
Lucas De Marchi
fde43a77b3 AP_HAL_Linux: allow to change spi device state
Allowing to change the SPI device state allows us to save the
information whether the device was already initialized and avoid 2
separate drivers to initialize it.
2015-07-06 10:48:06 +10:00
Lucas De Marchi
384d650a23 AP_HAL: allow to have spi device state 2015-07-06 10:48:06 +10:00
Staroselskii Georgii
26c8007c96 AP_Compass: updated backend detect method
Uses reimplemented AK8963 driver. There's also no need trying to detect this
compass twice. Actually, it might even be bad, because the current code can
allocate an AK8963 object twice.
2015-07-06 10:48:06 +10:00
Staroselskii Georgii
7a417d1151 AP_Compass: AK8963 rework
Got rid of extra abstraction layer. There is no need for that now.
2015-07-06 10:48:06 +10:00
mirkix
f82344358f AP_InertialSensor: Change BBBMINI standard orientation 2015-07-06 10:12:39 +10:00
mirkix
e6363ea95d AP_HAL_Linux: BBBMINI uses /dev/i2c-2 2015-07-06 10:09:21 +10:00
Lucas De Marchi
b211b86204 AP_HAL_Linux: don't manually define number of spi devices
It's error-prone, let's make the compiler define it for us.
2015-07-06 10:07:22 +10:00
Lucas De Marchi
82314ee4a3 AP_Common: add helper macro ARRAY_SIZE 2015-07-06 10:07:21 +10:00
Andrew Tridgell
1f58e0080a SITL: fixed some build warnings 2015-07-06 09:21:49 +10:00
Andrew Tridgell
8f41d97548 AP_Math: fixed build error on PX4
variable set but not used with recent longitude_scale change
2015-07-06 08:19:57 +10:00
Andrew Tridgell
099392d3ca AP_Math: don't optimise longitude_scale on faster CPUs
it causes problems with replay
2015-07-05 17:27:53 +10:00
Andrew Tridgell
88a90495b2 HAL_SITL: allow for more data before GPS pipe flush 2015-07-04 15:14:39 +10:00
Andrew Tridgell
21c895f6f3 AP_GPS: prevent extra NMEA messages causing rapid fix rates
unexpected messages could cause the GPS driver to report a very high
fix rate, which can confuse the EKF
2015-07-03 22:08:05 +10:00
Paul Riseborough
4fb7beba4b AP_NAvEKF: Prevent failure due to magnetometer fusion numerical errors
If a badly conditioned covariance matrix causes negative innovation variances, then the filter will diverge. The previous approach of increasing process noise was not effective in some cases, so a hard reset of the covariance matrix has been adopted to guarantee recovery.
This fixes a numerical error observed using the replay on flight log which had significant periods of compass rejection.
2015-07-02 18:07:22 +10:00
Randy Mackay
43b1694c76 Compass: add third compass to PRIMARY param description 2015-07-02 14:19:30 +09:00
Peter Barker
844f050cf3 DataFlash: correct zero-byte-file handling in CLI
-rw-rw-r-- 1 pbarker pbarker   2105344 Jul  1 16:10 1.BIN
-rw-rw-r-- 1 pbarker pbarker         0 Jul  1 19:35 2.BIN
-rw-rw-r-- 1 pbarker pbarker   2494464 Jul  1 16:58 3.BIN
-rw-rw-r-- 1 pbarker pbarker 128503808 Jul  1 20:22 4.BIN
-rw-rw-r-- 1 pbarker pbarker         3 Jul  1 19:46 LASTLOG.TXT

Before fix:

2 logs
Log 3 in logs/3.BIN of size 2494464 2015/7/1 6:58
Log 4 in logs/4.BIN of size 128503808 2015/7/1 10:22

After Fix:

4 logs
Log 1 in logs/1.BIN of size 2105344 2015/7/1 6:10
Log 2 in logs/2.BIN of size 0 2015/7/1 9:35
Log 3 in logs/3.BIN of size 2494464 2015/7/1 6:58
Log 4 in logs/4.BIN of size 128503808 2015/7/1 10:22

If the last file was zero bytes, no files would be shown.
2015-07-02 08:53:18 +10:00
Andrew Tridgell
5b0394eb05 AP_Compass: start MPU9250 driver at low speed
this raises the chances of successful init of the MPU9250
2015-07-02 08:48:06 +10:00
Staroselskii Georgii
d40b45c9ae AP_InertialSensor: disable reset on MPU9250
The Compass library is initialized before the InertialSensor. AK8963 with
MPU9250 as backend already takes care of resetting MPU9250. The problem with
also resetting it in the MPU9250 initialization code is that if the reset
happens during an internal I2C transaction, the AK8963 may hang. So here we
remove the reset inside MPU9250. There still a possibility that the first
MPU9250 initialization is not successful and it resets the chip, but it's not
happening in tests.
2015-07-01 20:44:09 +03:00
Andrew Tridgell
5f0302ed9f HAL_Linux: fixed chaining of getopt calls 2015-07-01 20:44:07 +10:00
Andrew Tridgell
355575f793 HAL_Linux: fixed chaining of getopt instances 2015-07-01 15:42:07 +10:00
Andrew Tridgell
c8a6a02be1 HAL_Linux: don't do chardev test on subtype NONE
otherwise replay is broken
2015-07-01 15:36:34 +10:00
Andrew Tridgell
0679552cf7 GCS_MAVLink: regenerate headers 2015-07-01 12:02:44 +10:00
Andrew Tridgell
44b7c75a4c GCS_MAVLink: merged upstream mag cal messages for APM 2015-07-01 12:00:23 +10:00
tcr3dr
41e4c2720d AP_Param: Explicitly casts AP_CLASSTYPE parameter. 2015-07-01 11:32:11 +10:00
tcr3dr
9d26bc6958 HAL_SITL: Adds polyfill for feenableexcept on OS X. 2015-07-01 11:32:01 +10:00
tcr3dr
523acc1c54 AP_Menu: Corrects string null comparison in AP_Menu. 2015-07-01 11:31:54 +10:00
Tom Pittenger
457d3be4d7 AP_BoardConfig: add user-defined serial number
new param: BRD_SERIAL_NUM
// @Description: User-defined serial number of this vehicle, it can be any arbitrary number you want and has no effect on the autopilot
// @Range: -32767 to 32768 (any 16bit signed number)
2015-06-30 17:20:15 +10:00
Andrew Tridgell
281f6d9caa HAL_Linux: cope with expansion of storage from 4096 to 16k 2015-06-30 16:45:49 +10:00
Gustavo Jose de Sousa
87776d8a4b Storage: define LINUX_STORAGE_SIZE correctly
The value for LINUX_STORAGE_SIZE was defined inconsistently against the one
defined for Linux boards in HAL_STORAGE_SIZE. That led to some values not
being written to the storage when running the test binary built at
libraries/StorageManager/examples/StorageTest.
2015-06-30 16:37:08 +10:00
Peter Barker
cabea266e7 DataFlash: pull out common mission logging code 2015-06-30 16:23:35 +10:00
Peter Barker
d85b247706 DataFlash: Log_Write_SysInfo - pull out common logging startup messages 2015-06-30 16:23:34 +10:00
Peter Barker
c5c39a77a3 DataFlash: method to flush ringbuffer to fd 2015-06-30 16:19:22 +10:00
Andrew Tridgell
686b1137fa AP_NavEKF: added vehicle specific initial gyro bias uncertainty 2015-06-30 16:16:26 +10:00
Andrew Tridgell
761b39be03 HAL_Linux: removed extra include 2015-06-30 15:09:52 +10:00
Andrew Tridgell
1296da56bb AP_Terrain: fixed terrain path handling 2015-06-30 15:08:10 +10:00
Andrew Tridgell
a3c7297d8e HAL_Linux: fixed setting of custom directories 2015-06-30 15:08:10 +10:00
Víctor Mayoral Vilches
f592981a60 TerrainIO: Support custom_terrain_directory 2015-06-30 14:36:43 +10:00
Víctor Mayoral Vilches
c06abeb02e DataFlash_File: Support custom_log_directory 2015-06-30 14:36:42 +10:00
Víctor Mayoral Vilches
2e7a4aa1e6 HAL_Linux: Implement custom dir. methods 2015-06-30 14:36:42 +10:00
Víctor Mayoral Vilches
e5a90c7a34 AP_HAL: Util, add custom terrain and log methods 2015-06-30 14:36:00 +10:00
Víctor Mayoral Vilches
5c4ae15deb HAL_Linux: Make use of GetOptLong
Use GetOptLong to process long args, support
custom terrain and log directories and update
_usage().
2015-06-30 14:36:00 +10:00
Víctor Mayoral Vilches
309511dc08 HAL_Linux: UARTDriver, const device_path
Class member set to const and set_device_path
accepts a const char* now.
2015-06-30 14:36:00 +10:00
Víctor Mayoral Vilches
790f4ec56c HAL_Linux: Util fix indentation 2015-06-30 14:35:59 +10:00
Andrew Tridgell
ac3200fd32 AP_InertialSensor: make max_abs_offsets a single float, not a vector 2015-06-30 10:51:43 +10:00
Gustavo Jose de Sousa
0fcd98c804 AP_InertialSensor: disable debug on LSM9DS0 2015-06-30 10:28:05 +10:00
Gustavo Jose de Sousa
c168e19e73 AP_InertialSensor: fix coding style with uncrustify on LSM9DS0
This commit makes backend source code for LSM9DS0 comply with the configuration
files "uncrustify_cpp.cfg" and "uncrustify_headers.cfg".
2015-06-30 10:28:02 +10:00
Gustavo Jose de Sousa
2f2a627002 AP_InertialSensor: use runtime GPIO drdy pins numbers instead C constant macros
As we intend to eventually get board related parameters from a configuration
file, this commit makes the GPIO numbers for data-ready pins be instance
variables instead of from C constant macros.

Another advantage of using instance variables in this context is the
possibility of using more than one LSM9DS0.
2015-06-30 10:27:59 +10:00
Gustavo Jose de Sousa
0ef914adac AP_InertialSensor: don't take SPI semaphore if not necessary on LSM9DS0
If the data-ready polling is done entirely on GPIO pins, it isn't necessary to
hold the semaphore before we now we have data to consume. In that case, only
take the SPI semaphore if there's new data available.

On the other hand, if at least one SPI transaction is done in order to check
for new data, then it makes sense to take the semaphore beforehand.
2015-06-30 10:27:57 +10:00
Gustavo Jose de Sousa
a82ab25ed3 AP_InertialSensor: use bitfield macros instead of literal values on LSM9DS0
This commit makes accel and gyro initialization routines use bitfield macros
instead of hardcoding the literal value when wrinting on registers. That is
less prone to typos and a lot of times self-explanatory. Also, due to the
latter, the long comments explaining each register field were removed (any
detail can be checked on the datasheet).
2015-06-30 10:27:54 +10:00
Gustavo Jose de Sousa
1572324315 AP_InertialSensor: add macros for LSM9DS0 registers' bitfields 2015-06-30 10:27:51 +10:00
Gustavo Jose de Sousa
033409c629 AP_InertialSensor: set max abs calibration offset for LSM9DS0 2015-06-30 10:27:48 +10:00
Gustavo Jose de Sousa
42eb73a1d1 AP_InertialSensor: add LSM9DS0 backend
This adds the backend driver for LSM9DS0. This implementation is based on the
legacy driver coded by Víctor Mayoral Vilches (under folder LSM9DS0) and makes
some necessary adaptations and fixes in order to work properly. The legacy
driver folder was removed.
2015-06-30 10:27:46 +10:00
Gustavo Jose de Sousa
c340e072f2 AP_InertialSensor: use accel instance max abs offset instead of a constant value
The calibration on LSM9DS0 was giving offsets between 4.0 and 4.2 on x-axis and
around 3.6 on y-axis. It turned out that those offsets were actually right.

The maximum absolute values of calibration offset should be a sensor
characteristic rather than a constant value for all sensors.

The constant value previously used (3.5 m/s/s for all axes) is set here as a
default maximum absolute calibration offset for every instance to keep it
working.
2015-06-30 10:27:44 +10:00
Lucas De Marchi
623c5f0713 AP_HAL_Linux: check if I2C device is chardev 2015-06-30 09:10:54 +10:00
Lucas De Marchi
acc571c2c5 AP_HAL_Linux: add function to check if path is chardev
Utility function to allow checking if a certain path is a character
device.
2015-06-30 09:10:54 +10:00
Lucas De Marchi
a4c1b0d75f AP_HAL_Linux: add constructor to find I2C bus reliably
The device number in /dev may not be reliable from one boot to another
due to the initialization order of each bus.

For example, in Minnow Board Max, the exposed I2C buses may be i2c-7 and
i2c-8 or i2c-8 and i2c-9 depending if the platform driver in the kernel
is initialized before or after the PCI.

It also may change with different version and configuration of the DT or
UEFI used making another kernel driver to bind to the device. This means that
for Minnow Board Max we need to use something like below to pass to the
constructor:

	static const char * const i2c_devpaths[] = {
	    /* UEFI with lpss set to ACPI */
	    "/devices/platform/80860F41:05",
	    /* UEFI with lpss set to PCI */
	    "/devices/pci0000:00/0000:00:18.6",
	     NULL
	};

The devpath here is the one returned by udev with the following command:

	udevadm info -q path /dev/<i2c-device>

In contrary to the device number in /dev/i2c-N, this path in sysfs is
stable across reboots and can only change if there's a change in the
UEFI firmware or the board's device tree.

This patch assumes the currently supported boards don't have this
problem so it's not touching them.
2015-06-30 09:10:54 +10:00
Lucas De Marchi
ec5d0b6c08 AP_HAL_Linux: reorder members and methods and use C++ initializer 2015-06-30 09:10:53 +10:00
Michael du Breuil
a382ce2b0c AP_GPS: Add support for logging ublox RXM-RAWX messages
Can only record 32 satellites raw info before memory corruption occurs. (And raised the limit on normal RXM-RAW messages to 22)
2015-06-30 09:05:49 +10:00
Michael du Breuil
d665c85c20 DataFlash: Add RXM-RAWX logging messages 2015-06-30 09:05:48 +10:00
mirkix
38a8a772f8 AP_GPS: Add fix status 3D+DGPS 2015-06-30 09:00:31 +10:00
Andrew Tridgell
15efae5a48 HAL_SITL: use SITL_NUM_CHANNELS 2015-06-30 08:55:02 +10:00
Andrew Tridgell
f8944ab6be SITL: define number of RC out channels 2015-06-30 08:54:46 +10:00
Vladislav Zakharov
be4b6033e4 AP_HAL_Linux: Navio RCInput reimplemented. 2015-06-29 16:45:43 +10:00
Vladislav Zakharov
e505eb2cd8 AP_HAL_Linux: Changes in Scheduler: Added defines for delays, RCIN_RERIOD changed 2015-06-29 16:45:42 +10:00
Przemek Lekston
90378b21da AP_BattMonitor: Fix battery monitor Floating Point Exception in SITL
Adds a sanity check to avoid division by zero when BATT_CAPACITY is set to 0.
2015-06-29 16:42:52 +10:00
Andrew Tridgell
ff88932091 SITL: setup turbulence in JSBSim 2015-06-29 11:25:59 +10:00
Andrew Tridgell
92c9779d18 HAL_SITL: pass turbulence to simulators 2015-06-29 11:25:44 +10:00
Randy Mackay
ef20676c67 GPS: fix INJECT_TO param desc and add definition
No functional change
2015-06-27 16:31:03 +09:00
Randy Mackay
0264b1aa84 AC_Circle: set only xy position targets 2015-06-27 15:43:49 +09:00
Randy Mackay
0b9c7c2a3b SerialManager: add SToRM32 to protocol param description 2015-06-27 11:18:17 +09:00
Víctor Mayoral Vilches
ab5f1b3a24 BusTest: Fix compilation error with AP_ADC 2015-06-26 21:59:22 +10:00
Peter Barker
723c37bcf7 DataFlash: backend/frontend split 2015-06-26 16:02:50 +10:00
Andrew Tridgell
21c8a2d94a AP_Common: override new and delete on all platforms to zero memory
this guarantees that all classes get zero initial members when
they are dynamically allocated.
2015-06-26 15:55:19 +10:00
Andrew Tridgell
eeb97800ae AC_AttitudeControl: allow for tail pass-thru in ACRO mode
this allows for all channels to be passed through
2015-06-26 12:45:38 +09:00
Michael du Breuil
e45f3537cf APM_Control: Remove duplicate include statements 2015-06-25 10:23:47 +10:00
Michael du Breuil
aa04c81e3c APM_Control: Fix a typo in the docstring for YAW2SRV_SLIP 2015-06-25 10:22:36 +10:00
Tom Pittenger
e6122d1a4e AP_Mission: ensure cache coherence on mission resume
- when resuming a mission we should read the value from storage of the same index to ensure we're not continuing an old cached version of the mission item.
- inherent problem: DO commands will continue and will be unaffected unless the new mission has a different DO_ command structure. If so, a set_current_cmd() or reset() should be issued by the GCS.
2015-06-25 10:21:06 +10:00
Andrew Tridgell
a81590f7ac HAL_SITL: prevent FPE on zero range with optflow 2015-06-25 10:08:53 +10:00
Randy Mackay
9f17fc17ab NavEKF: update parameter descriptions 2015-06-24 16:25:14 +09:00
Paul Riseborough
87e6a24154 AP_NavEKF: Add public method to reset EKF height datum and baro alt 2015-06-24 16:25:11 +09:00
Randy Mackay
1e3e65e443 AC_AttControl: add shift_ef_yaw_target
This allows shifting the target heading in case the EKF shifts it's
heading estimate
2015-06-24 11:49:32 +09:00
Paul Riseborough
e3ccb74e12 AP_NavEKF: Publish amount of in-flight yaw angle reset 2015-06-24 11:49:29 +09:00
Gustavo Jose de Sousa
c72dc9bd45 AP_InertialSensor: make single rotation on MPU9250
The previous implementation made some boards apply two rotations to suit
their default orientation. That was happening because there was an
unconditional rotation being done (commented as "rotate for bbone
default").

This commit makes that unconditional rotation as a default rotation
instead and adjusts the former additional rotations to be single
rotations.
2015-06-22 17:45:20 +10:00
Gustavo Jose de Sousa
3dad768e8b AP_InertialSensor: log failure to initialize after max attempts on MPU9250
This happens for example when you are trying to use an SPI speed that's
above the one supported by the sensor or the controller.
2015-06-22 17:45:20 +10:00
Gustavo Jose de Sousa
587471ab54 AP_InertialSensor: disable I2C on MPU9250
As the datasheet says: "To prevent switching into I2C mode when using
SPI, the I2C interface should be disabled by setting the I2C_IF_DIS
configuration bit."

We also reset the sensor like PX4Firmware does for initializing the
MPU6000.  See: ee1d8cd770/src/drivers/mpu6000/mpu6000.cpp (L695)
2015-06-22 17:45:20 +10:00
Michael du Breuil
6cd81ae1fb APM_Control: Add PID logging to yaw controller 2015-06-22 15:41:44 +10:00
Michael du Breuil
225c946af0 DataFlash: Add PIDS for steering logging 2015-06-22 15:41:44 +10:00
Robert Lefebvre
11214b3414 AP_Motors: move constraints to set_throttle 2015-06-22 13:52:59 +09:00
Grant Morphett
84ac8abc42 AP_Mount: Fixed a bug with wrapping of panning angles. 2015-06-22 09:32:26 +09:00
Andrew Tridgell
a424686d2f DataFlash: reduce future merge conflicts
an enum makes it easier to merge new messages
2015-06-20 16:18:50 +10:00
Andrew Tridgell
81e6d88560 StorageManager: fixed hang in erase()
found by coverity
2015-06-20 15:00:57 +10:00
Andrew Tridgell
4eab27abe9 AP_InertialSensor: fixed logic bug in MPU6000 init
thanks to coverity
2015-06-20 14:53:04 +10:00
Andrew Tridgell
131b345ccc APM_Control: cleanup some coverity warnings 2015-06-20 13:30:32 +10:00
Andrew Tridgell
322a61635f SITL: allow extra arguments to be passed to last_letter 2015-06-19 16:39:46 +10:00
Robert Lefebvre
0c92565d23 AP_MotorsHeli: add Critical Rotor Speed param, use to switch off runup_complete 2015-06-19 15:10:53 +09:00
Robert Lefebvre
3ad6700c5d AP_MotorsHeli: add getters for rotor speed 2015-06-19 15:10:51 +09:00
Robert Lefebvre
8b917b82ee AP_MotorsHeli: Simplify set_desired_rotor_speed function definition 2015-06-19 15:10:50 +09:00
Robert Lefebvre
79e8c8f7f7 AP_MotorsHeli: whitespace fixes 2015-06-19 15:10:47 +09:00
Georacer
b375a8debf SITL: Allows last_letter to start at the location specified by the SITL arguments 2015-06-19 12:49:29 +10:00
Leonard Hall
cfc388934b AC_AttControl: add set_accel_roll_max
Also equivalents for pitch and yaw
2015-06-18 23:06:33 +09:00
mirkix
7c55689aad AP_HAL_Linux: Fix loading Firmware 2015-06-18 10:13:49 +10:00
Paul Riseborough
6ba8cd05ff AP_NavEKF: Fix bug preventing GPS vertical velocity being used
This fixes a bug that prevents GPS velocity being used permanently if there is a temporary unavailability
2015-06-18 09:01:21 +10:00
mirkix
a1d478909a AP_BattMonitor: Add Linux support for example 2015-06-18 09:00:01 +10:00
mirkix
d169fea9ec AP_AHRS: Add Linux support for example 2015-06-18 08:59:16 +10:00
mirkix
588a16dec2 AP_InertialSensor: Add Linux support for VibTest example 2015-06-18 08:48:23 +10:00
Andrew Tridgell
de11b5394e GCS_MAVLink: support NSH shell with SERIAL_CONTROL 2015-06-17 20:30:10 +10:00
Andrew Tridgell
a0594bd50e GCS_MAVLink: regenerate headers 2015-06-17 20:30:10 +10:00
Andrew Tridgell
bdbe1a7553 GCS_MAVLink: added SERIAL_CONTROL_DEV_SHELL 2015-06-17 20:30:09 +10:00
Andrew Tridgell
d909f11ba3 HAL_PX4: added implementation of NSH shell stream 2015-06-17 20:30:09 +10:00
Andrew Tridgell
7f239f5d46 AP_HAL: added get_shell_stream() 2015-06-17 17:04:15 +10:00
Andrew Tridgell
4fe092fead AP_InertialSensor: panic on bad gyro or accel sample rates 2015-06-17 15:01:23 +10:00
Andrew Tridgell
d3b85eb792 AP_InertialSensor: use driver supplied sample rate
this will work with a wider range of sensors
2015-06-17 14:44:19 +10:00
Andrew Tridgell
e91bfdfc1c AP_InertialSensor: fixed VibTest example build 2015-06-17 14:15:58 +10:00
Andrew Tridgell
feb928dcd3 DataFlash: fixed build warnings 2015-06-17 13:10:26 +10:00
Andrew Tridgell
c9988d8b37 AP_NavEKF: rely on delta_velocity and delta_angles always being available 2015-06-17 13:10:26 +10:00
Andrew Tridgell
bc0ae630a1 AP_InertialSensor: always provide delta_velocity and delta_angles
this makes the NavEKF code simpler
2015-06-17 13:10:26 +10:00
Andrew Tridgell
a115182041 AP_NavEKF: fixed minimum deltat to be 100us 2015-06-17 13:10:26 +10:00
Andrew Tridgell
c221959d5a AP_NavEKF: fixed corrected del velocity to use both accels 2015-06-17 13:10:25 +10:00
Andrew Tridgell
f831c16238 AP_InertialSensor: use fixed sensor sample times
this uses fixed sample times for PX4 IMUs, rather than reported
timestamps. It avoids timing jitter caused by the over-sampling in
the PX4 drivers
2015-06-17 13:03:56 +10:00
Andrew Tridgell
f77ffd30f6 AP_GPS: fixed HIL GPS driver to make have vertical velocity sticky 2015-06-17 12:46:56 +10:00
Randy Mackay
9d81856580 InertialSensor: fix name of get_delta_velocity method 2015-06-17 12:46:54 +10:00
Randy Mackay
384755e271 Dataflash: add IMT messages 2015-06-17 12:46:54 +10:00
Andrew Tridgell
727be87d84 AP_InertialSensor: support HIL functions for delta_velocity and delta_angles 2015-06-16 09:53:55 +10:00
Andrew Tridgell
4677c189e0 HAL_SITL: support balloon model 2015-06-15 09:20:56 +10:00
Andrew Tridgell
83cc60a699 SITL: added simple balloon simulator
for testing balloon release code in plane
2015-06-15 09:20:55 +10:00
Andrew Tridgell
5e80f0cf72 APM_Control: allow for multiple stop calls in autotune 2015-06-15 09:20:54 +10:00
Andrew Tridgell
9bd8e215b2 AP_Mission: enable DO_AUTOTUNE_ENABLE 2015-06-15 09:20:54 +10:00
Andrew Tridgell
08acde2766 AP_Mission: added ALTITUDE_WAIT NAV command
used for HAB launch
2015-06-15 09:20:54 +10:00
Andrew Tridgell
c415bfe766 GCS_MAVLink: regenerate headers 2015-06-15 09:20:54 +10:00
Andrew Tridgell
3ef44459c8 GCS_MAVLink: added ALTITUDE_WAIT message 2015-06-15 09:17:27 +10:00
Randy Mackay
69e59b2d99 GCS_MAVLink: update version after adding LANDING_TARGET 2015-06-12 21:37:09 +09:00
Randy Mackay
835a203566 GCS_MAVLink: generate after adding LANDING_TARGET 2015-06-12 21:37:07 +09:00
Randy Mackay
94aec19336 GCS_MAVLink: import LANDING_TARGET from upstream 2015-06-12 21:37:04 +09:00
Randy Mackay
76fdfdfcf2 GCS_MAVLink: do not send_vibration on APM2 2015-06-12 21:37:01 +09:00
Randy Mackay
0d239d2746 DataFlash: disable vibration logging on APM2
Also remove unnecessary include
2015-06-12 21:36:59 +09:00
Randy Mackay
8ceccd778d InertialSensor: disable vibration checks on APM2
Also bug fix get_accel_clip_count's instance check
2015-06-12 21:36:56 +09:00
Randy Mackay
642aa74530 GCS_MAVLink: add send_vibration 2015-06-12 21:36:42 +09:00
Randy Mackay
581e43bd0e GCS_MAVLink: update version after adding VIBRATION msg 2015-06-12 21:36:39 +09:00
Randy Mackay
afbb670e73 GCS_MAVLink: generate after adding VIBRATION message 2015-06-12 21:36:36 +09:00
Randy Mackay
e677a100c6 GCS_MAVLink: add VIBRATION message to common.xml 2015-06-12 21:36:34 +09:00
Randy Mackay
f0f262eb04 DataFlash: add Log_Write_Vibration 2015-06-12 21:36:28 +09:00
Randy Mackay
1289208244 LowPassFilter: add get method 2015-06-12 21:36:24 +09:00
Randy Mackay
0db7acc628 InertialSensor: calc vibration and accel clipping 2015-06-12 21:36:22 +09:00
Tom Pittenger
3544549cf4 AP_GPS: Allow switching primary GPS instance with 1 sat difference
Rapid switching between GPS receivers can cause real problems.
Switch if:
1) secondary GPS has 1 more satellite for at least 20 seconds
OR
2) secondary GPS has 2 more satellites for at least 5 seconds

Fixes https://github.com/diydrones/ardupilot/pull/2320
2015-06-11 21:33:06 +10:00
Andrew Tridgell
dea36c1ae9 HAL_PX4: fixed build on non-PX4 systems 2015-06-11 15:17:02 +10:00
Andrew Tridgell
88655b48e1 HAL_PX4: added px4_param stub functions
this replaces the PX4 parameter system with stub functions that fail
all parameter find calls
2015-06-11 13:31:41 +10:00
Randy Mackay
0b6323d5ed Mount: default MNT_TYPE to servo gimbal if rc outputs defined 2015-06-10 16:47:08 +09:00
Randy Mackay
03a336d496 RC_Channel: update_aux_servo_function made public 2015-06-10 16:47:06 +09:00
Eugene Shamaev
40a5aa497a HAL_PX4: added rc_bind for DSM bind 2015-06-10 17:19:09 +10:00
Eugene Shamaev
8cb367eaf8 AP_HAL: added rc_bind rcin method 2015-06-10 17:19:08 +10:00
Lucas De Marchi
b3da1579c1 AP_Notify: rename member to initialized
We are not only checking if there was an error, but if it was already
initialized.  Let's make it explicit by inverting the value we store.
2015-06-10 16:39:01 +10:00
Lucas De Marchi
3f8dab41c4 AP_Notify: fix wrong boolean check
Check by false instead of checking by -1. Fix the following compiler warning
with gcc 5.1.0:

ardupilot/libraries/AP_Notify/ToneAlarm_Linux.cpp:64:13: warning: comparison of constant '-1' with boolean expression is always false [-Wbool-compare]
     if (err == -1) {
             ^

Also change the initialization code not to use -1.
2015-06-10 16:39:01 +10:00
Andrew Tridgell
979a571d68 AP_HAL: fixed example build 2015-06-10 09:27:41 +10:00
Andrew Tridgell
d6af9fd0ee HAL_PX4: prevent uavcan motor spin up while booting 2015-06-09 19:45:01 +10:00
Andrew Tridgell
6a33aeef67 HAL_PX4: cope with multi-instance actuator_outputs uORB
we need to subscribe to all of them
2015-06-09 19:45:00 +10:00
Andrew Tridgell
2167675b3d AP_RangeFinder: update for upstream merge 2015-06-09 19:44:20 +10:00
Andrew Tridgell
23d291f144 AP_Notify: update for upstream merge 2015-06-09 19:44:20 +10:00
Andrew Tridgell
333778bac1 HAL_PX4: updates for upstream merge 2015-06-09 19:44:20 +10:00
Andrew Tridgell
02aa6983a7 APM_Control: fixed FF handling in steering controller 2015-06-09 13:28:26 +10:00
Andrew Tridgell
5105d510b8 APM_Control: added pid_info and FF to steering controller
used for realtime ground steering tuning
2015-06-09 12:48:55 +10:00
Andrew Tridgell
c44ab01be8 AP_HAL: use noreturn attribute on panic
should reduce coverity warnings
2015-06-08 21:09:08 +10:00
Randy Mackay
aa7a151fe5 AC_WPNav: init flags
Resolves Coverity warning
2015-06-08 14:46:39 +09:00
Randy Mackay
bb382a65e8 AC_Circle: init members and flags
Removed unused dir flag
Resolves Coverity warning
2015-06-08 14:46:37 +09:00
Randy Mackay
1bf0139162 AC_Sprayer: init flags
Resolves warning from Coverity
2015-06-08 14:46:35 +09:00
Randy Mackay
d2f93dd379 AC_PosControl: init flags
Resolves warning from Coverity
2015-06-08 14:46:32 +09:00
Randy Mackay
d366c30358 AP_RangeFinder: fix potential out-of-bounds read
Issue found by Coverity
2015-06-08 14:46:21 +09:00
Randy Mackay
2849430341 AP_Motors: init flags
resolves coverity issue
2015-06-08 14:46:16 +09:00
Randy Mackay
ac76562638 RangeFinder: init state and drivers
resolves a coverity defect
2015-06-08 14:46:14 +09:00
Randy Mackay
7bbaeac55f OpticalFlow: init _last_update_ms member
This resolves a defect found with coverity
2015-06-08 14:46:11 +09:00
Eugene Shamaev
ca482cf44a StorageManager: added example sketch 2015-06-08 10:05:05 +09:00
Eugene Shamaev
c6c6e2dc13 AP_GPS: add comments to example sketch 2015-06-08 10:04:36 +09:00
Max Basescu
32994a5b1e AP_HAL_AVR: Changed constrain_period to use RC_OUTPUT bounds instead of RC_INPUT
Done in order to get full range of motion for servo output
2015-06-05 21:03:03 +10:00
Max Basescu
de50217809 AP_HAL: Added RC_OUTPUT_MIN_PULSEWIDTH set to 400 and RC_OUTPUT_MAX_PULSEWIDTH set to 2100
For use in AP_HAL_AVR in RCOutput_APMx
2015-06-05 21:03:03 +10:00
Randy Mackay
382f5d087f AC_PosControl: explicitly set set_alt_target_from_climb_rate params 2015-06-05 15:51:02 +09:00
Randy Mackay
6ea60aa662 AC_PosControl: remove default from set_alt_target_from_climb_rate 2015-06-05 15:15:03 +09:00
Randy Mackay
11fee21f06 AC_PosControl: init accel_last_z_cms 2015-06-05 15:06:34 +09:00
Randy Mackay
b8e3fe8f26 Mount: AlexMos fix to stop crashing before init 2015-06-05 12:31:16 +09:00
Randy Mackay
66d2328163 Mount: Alexmos save 4 bytes of RAM 2015-06-05 12:31:14 +09:00
Randy Mackay
7a8fe5f4d4 Mount: Alexmos formatting fixes 2015-06-05 12:31:12 +09:00
Tim Ryan
d7fe6bfe0d Terrain: cast grid_spacing to fix OSX clang error 2015-06-04 21:01:34 +09:00
Lucas De Marchi
1d39f548dc AP_HAL: remove aliases FUNCTOR_[BIND|TYPEF]_VOID
Nobody is using them anymore, so kill them.
2015-06-04 13:37:41 +09:00
Lucas De Marchi
98a1a05933 AP_Scheduler: stop using alias FUNCTOR_BIND_VOID 2015-06-04 13:37:40 +09:00
Andrew Tridgell
2de8c26c06 AP_Arming: allow pre_arm_checks() to be subclassed
this allows for vehicle specific arming checks
2015-06-04 13:26:39 +10:00
Andrew Tridgell
dbff6cab43 HAL_Linux: added udp example to help 2015-06-03 21:47:01 +10:00
Paul Riseborough
d3f83e8ec6 AP_NavEKF: Improve gyro bias learning rate for plane and rover
This patch increases initial gyro bias uncertainty and plane and rover specific process noise to improve the rate of gyro bias learning.
This reduces the likelihood of a navigation failure due to rapid temperature changes in the inertial sensors causing rapid changes in zero rate offset.

The increase in process noise cannot be applied to Copter due to different numerical stability limits arising from the faster update rate.
2015-06-03 11:46:17 +10:00
Andrew Tridgell
367a87591a AP_Param: fixed build of eedump_apparam 2015-06-03 11:46:00 +10:00
Andrew Tridgell
9a7b283322 AP_GPS: fixed enable of RXM_RAW on uBlox on Pixhawk
if version detection was disabled this would never trigger
2015-06-02 16:52:08 +10:00
Grant Morphett
7d1bf75aa8 DataFlash: Moving parameter logging to be after all systems have started
Moved Log_Write_Parameters to be public so we can call it from the
vehcile code at the end of the startup sequence.
We needed to do this because parameters like COMPASS_EXTERNAL are
modified by the startup code and if we log the parameters too early we
will be recording the wrong value.
2015-06-01 20:22:43 +09:00
Randy Mackay
9c28d61a5c Mission: protect against endless loops of do-commands 2015-06-01 18:11:54 +09:00
Andrew Tridgell
e234844905 RC_Channel: fixed example sketch 2015-06-01 18:05:50 +10:00
Andrew Tridgell
767aeedf01 AP_Mission: fixed example sketch 2015-06-01 18:05:38 +10:00
Andrew Tridgell
b2a5de8a63 AP_Scheduler: fixed example sketch 2015-06-01 17:42:32 +10:00
Andrew Tridgell
214b61bfc0 AP_InertialSensor: fixed example build 2015-06-01 17:35:15 +10:00
Andrew Tridgell
3edac37929 AP_Math: removed unused include in example 2015-06-01 17:35:03 +10:00
Andrew Tridgell
407fbc7261 AP_Menu: remove unused AP_Vehicle.h include 2015-06-01 17:34:48 +10:00
Andrew Tridgell
9fa1e15238 AP_Menu: removed example sketch
not very useful
2015-06-01 17:34:34 +10:00
Andrew Tridgell
5c86005160 AP_HAL: removed spurious delay example 2015-06-01 17:28:45 +10:00
Andrew Tridgell
1bd61ae96e AP_HAL: no need to include AP_Vehicle_Type.h here any more 2015-06-01 17:28:24 +10:00
Andrew Tridgell
d746e8fa29 AP_Motors: mark examples as nobuild
waiting for fix from Rob
2015-06-01 17:27:33 +10:00
Andrew Tridgell
7f408cae02 AP_PerfMon: convert example from .pde to .cpp 2015-06-01 17:07:09 +10:00
Andrew Tridgell
421c7e02ae StorageManager: convert example from .pde to .cpp 2015-06-01 17:07:08 +10:00
Andrew Tridgell
6c1c2dd8bd RC_Channel: convert example from .pde to .cpp 2015-06-01 17:07:08 +10:00
Andrew Tridgell
fce95178e7 PID: convert example from .pde to .cpp 2015-06-01 17:07:08 +10:00
Andrew Tridgell
3b48f68cce GCS_MAVLink: convert example from .pde to .cpp 2015-06-01 17:07:07 +10:00
Andrew Tridgell
89c4e6fc21 GCS_Console: convert example from .pde to .cpp 2015-06-01 17:07:07 +10:00
Andrew Tridgell
b7f0735c2b Filter: convert example from .pde to .cpp 2015-06-01 17:07:07 +10:00
Andrew Tridgell
e734f24cc1 DataFlash: convert example from .pde to .cpp 2015-06-01 17:07:07 +10:00
Andrew Tridgell
ae4cfe3f2f AP_Scheduler: convert example from .pde to .cpp 2015-06-01 17:07:06 +10:00
Andrew Tridgell
b2fb2c676e AP_RangeFinder: convert example from .pde to .cpp 2015-06-01 17:07:06 +10:00
Andrew Tridgell
330d8f5c3a AP_Parachute: convert example from .pde to .cpp 2015-06-01 17:07:06 +10:00
Andrew Tridgell
637f8430c9 AP_OpticalFlow: convert example from .pde to .cpp 2015-06-01 17:07:06 +10:00
Andrew Tridgell
24e2e4b35e AP_Notify: convert example from .pde to .cpp 2015-06-01 17:07:05 +10:00
Andrew Tridgell
83b46243db AP_Mount: convert example from .pde to .cpp 2015-06-01 17:07:05 +10:00
Andrew Tridgell
89baf2bdf1 AP_Motors: convert example from .pde to .cpp 2015-06-01 17:07:05 +10:00
Andrew Tridgell
d1ed4c863c AP_Mission: convert example from .pde to .cpp 2015-06-01 17:07:04 +10:00
Andrew Tridgell
4d040bbb94 AP_Math: convert example from .pde to .cpp 2015-06-01 17:07:04 +10:00
Andrew Tridgell
7f7113c1de AP_InertialSensor: convert example from .pde to .cpp 2015-06-01 17:07:04 +10:00
Andrew Tridgell
ca8482b4d6 AP_HAL_PX4: convert example from .pde to .cpp 2015-06-01 17:07:04 +10:00
Andrew Tridgell
dd10cbc976 AP_HAL_Linux: convert example from .pde to .cpp 2015-06-01 17:03:44 +10:00
Andrew Tridgell
f9aa1d1a8b AP_HAL_FLYMAPLE: convert example from .pde to .cpp 2015-06-01 17:03:44 +10:00
Andrew Tridgell
36b19b26ce AP_HAL: convert example from .pde to .cpp 2015-06-01 17:03:40 +10:00
Andrew Tridgell
379b130d0a AP_HAL_Empty: convert example from .pde to .cpp 2015-06-01 17:03:37 +10:00
Andrew Tridgell
0cc31c2db5 AP_HAL_AVR: convert example from .pde to .cpp 2015-06-01 17:03:37 +10:00
Andrew Tridgell
e18a2df64e AP_GPS: convert example from .pde to .cpp 2015-06-01 16:58:11 +10:00
Andrew Tridgell
7320a35ad2 AP_GPS: convert example from .pde to .cpp 2015-06-01 16:58:11 +10:00
Andrew Tridgell
c18c84fbe1 AP_Declination: convert example from .pde to .cpp 2015-06-01 16:58:11 +10:00
Andrew Tridgell
d6a1bd98e6 AP_Compass: convert example from .pde to .cpp 2015-06-01 16:58:11 +10:00
Andrew Tridgell
191cdb8bc1 AP_Common: convert example from .pde to .cpp 2015-06-01 16:58:11 +10:00
Andrew Tridgell
debe7db861 AP_BattMonitor: convert example from .pde to .cpp 2015-06-01 16:58:11 +10:00
Andrew Tridgell
4368f922a3 AP_Baro: convert example from .pde to .cpp 2015-06-01 16:58:10 +10:00
Andrew Tridgell
e66b56970e AP_Airspeed: convert example from .pde to .cpp 2015-06-01 16:58:10 +10:00
Andrew Tridgell
edab50ab5a AP_AHRS: convert example from .pde to .cpp 2015-06-01 16:58:10 +10:00
Andrew Tridgell
0cfdb9af8a AP_ADC: convert example from .pde to .cpp 2015-06-01 16:58:10 +10:00
Andrew Tridgell
a62c450f86 AC_PID: convert example from .pde to .cpp 2015-06-01 16:58:10 +10:00
Andrew Tridgell
2b828a794e AP_Math: fixed example build 2015-06-01 16:36:54 +10:00
Andrew Tridgell
04ba5fa0bd AP_AHRS: pass EKF into constructor
this makes it possible for var_info in vehicle code to be in text
segment
2015-06-01 16:16:24 +10:00
Andrew Tridgell
f50ee4c44c GCS_MAVLink: all vehicles now use functors 2015-06-01 15:18:33 +10:00
Andrew Tridgell
9379e79489 DataFlash: all vehicles now use functors 2015-06-01 15:18:32 +10:00
Andrew Tridgell
f24e69f4a0 AP_Vehicle: all vehicles now use functors 2015-06-01 15:18:32 +10:00
Andrew Tridgell
dd691ae75c AP_Scheduler: all vehicles now use functors 2015-06-01 15:18:31 +10:00
Andrew Tridgell
ec2d429513 AP_Mission: all vehicles now use functors 2015-06-01 15:18:31 +10:00
Andrew Tridgell
bd5a58e4c4 AP_Menu: all vehicles now use functors 2015-06-01 15:18:31 +10:00
Andrew Tridgell
4dd47ead0e AP_HAL: removed old fastdelegate code 2015-06-01 15:18:30 +10:00
Andrew Tridgell
9ed0ee12fb AP_Vehicle: all vehicle types now use functors 2015-06-01 15:06:31 +10:00
Andrew Tridgell
96737a3982 SITL: fixed yaw wrap in simulated AntennaTracker 2015-06-01 14:08:45 +10:00
Andrew Tridgell
d57eca9de8 HAL_SITL: enable simulated antenna tracker 2015-06-01 12:53:50 +10:00
Andrew Tridgell
edb54cabb5 SITL: added simulated antenna tracker 2015-06-01 12:53:30 +10:00
Andrew Tridgell
14bdfe2889 SITL: started to use C++11 variable initialisation 2015-06-01 08:04:51 +10:00
Andrew Tridgell
b541bfb739 SITL: fixed build warnings 2015-05-30 22:51:38 +10:00
Andrew Tridgell
d5da9fcca6 AP_NavEKF: fixed build warnings 2015-05-30 22:51:30 +10:00
Andrew Tridgell
6a2c585632 AP_InertialSensor: fixed build warnings 2015-05-30 22:51:19 +10:00
Andrew Tridgell
ac3fc2f373 AP_HAL: fixed build warnings 2015-05-30 22:51:09 +10:00
Andrew Tridgell
084521243e AP_GPS: fixed some build warnings 2015-05-30 22:51:00 +10:00
Andrew Tridgell
249b339e6c HAL_SITL: fixed a build warning 2015-05-30 22:16:37 +10:00
Andrew Tridgell
73445fdae9 DataFlash: added error checking and fixed a warning 2015-05-30 22:16:22 +10:00
Andrew Tridgell
1088e72fda AP_Vehicle: make copter use functors 2015-05-30 15:21:22 +09:00
Robert Lefebvre
1424b17a83 AP_Motors_Heli: Change default RSC_SETPOINT to 700 2015-05-29 17:46:25 +09:00
Robert Lefebvre
4da54783fd AC_AttitudeControl_Heli: Semantic Change. Motor Runup to Rotor Runup. 2015-05-29 17:46:23 +09:00
Robert Lefebvre
d24664ccf9 AP_MotorsHeli: Semantic change. Motor Runup to Rotor Runup 2015-05-29 17:46:18 +09:00
Robert Lefebvre
65ca09600c AP_Motors: Heli eliminate _dt member and fix rsc_runup calculation 2015-05-29 17:46:09 +09:00
Robert Lefebvre
18bac524a3 Copter: TradHeli, change Rate FF LPF to 10Hz 2015-05-29 17:46:05 +09:00
Andrew Tridgell
f39063e023 DataFlash: don't do PID logging on APM2 2015-05-29 16:32:05 +10:00
Randy Mackay
19b021f729 RCMap: added RebootRequired param description 2015-05-28 19:32:38 +09:00
svefro
b02bbcd289 RCMap: added Reboot required to rcmap parameter descriptions
Added Reboot required to rcmap throttle, yaw, pitch, roll
2015-05-28 19:32:20 +09:00
Andrew Tridgell
b6eba0842a DataFlash: fixed CAM message format 2015-05-27 22:10:39 +10:00
Andrew Tridgell
00ca493860 AP_AHRS: prevent a floating exception in update_trig 2015-05-27 22:10:39 +10:00
Randy Mackay
b121d83beb RC_Channel: add EPM, LandingGear to FUNCTION param description 2015-05-27 18:05:01 +09:00
Andrew Tridgell
8454246fae AP_Param: make it safe to change the type of a parameter
if the type is changed then the value will revert to its default value
2015-05-27 15:29:40 +10:00
Andrew Tridgell
95ff71940c DataFlash: fixed rebase errors 2015-05-27 14:28:50 +10:00
Andrew Tridgell
8f34ed5b76 DataFlash: added PIDA message
for logging Z accel PID in copter
2015-05-27 14:28:50 +10:00
Andrew Tridgell
a57889e3b0 GCS_MAVLink: re-generate headers 2015-05-27 14:28:49 +10:00
Andrew Tridgell
0ed7fda41d GCS_MAVLink: added ACCZ and STEER PID_TUNING axes 2015-05-27 14:28:49 +10:00
Andrew Tridgell
521dae1c65 AC_AttitudeControl: use set_desired_rate() on PID controllers
this sets them up for logging of PIDs
2015-05-27 14:28:49 +10:00
Andrew Tridgell
3ec8857fbc AC_PID: added set_desired_rate() interface
used to setup _pid_info for logging
2015-05-27 14:28:48 +10:00
Andrew Tridgell
6000bb0c32 AC_PID: log desired rate for VFF as well as AFF 2015-05-27 14:28:48 +10:00
Andrew Tridgell
b45ab52015 DataFlash: added desired rate to PID logging 2015-05-27 14:28:48 +10:00
Andrew Tridgell
86a3bca88c APM_Control: added FF parameters to roll and pitch controllers
these are much easier to tune with the new PID_TUNING messages
2015-05-27 14:28:47 +10:00
Robert Lefebvre
353879cd2b AC_AttitudeControl_Heli: Add Rate Accel FF to Yaw control 2015-05-27 14:28:47 +10:00
Robert Lefebvre
366f87c91c AC_HELI_PID: Add Acceleration FF method. 2015-05-27 14:28:47 +10:00
Robert Lefebvre
7ab628521e DataFlash: Add Acceleration Feedforward to PID_Info. 2015-05-27 14:28:47 +10:00
Robert Lefebvre
810b12a1ac AC_AttitudeControlHeli: Change Rate Yaw FF LPF from 5Hz to 10Hz. 2015-05-27 14:28:46 +10:00
Andrew Tridgell
e79a21d8c2 AC_PID: fill in desired rate for heli PID 2015-05-27 14:28:46 +10:00
Andrew Tridgell
d148c38f68 DataFlash: added desired rate to PID_Info 2015-05-27 14:28:45 +10:00
Andrew Tridgell
0fe04a93ce GCS_MAVLink: rebuilt headers 2015-05-27 14:28:45 +10:00
Andrew Tridgell
cc80fdf593 GCS_MAVLink: added PID_TUNING message 2015-05-27 14:28:45 +10:00
Andrew Tridgell
216a78a9f0 APM_Control: added get_pid_info() interface 2015-05-27 14:28:44 +10:00
Robert Lefebvre
23adf2773c AC_AttitudeControl: Remove To-Do comments for Attitude Rate logging. 2015-05-27 14:28:44 +10:00
Robert Lefebvre
967071ca62 AC_PID: Integrate PID Logging functionality. 2015-05-27 14:28:44 +10:00
Robert Lefebvre
753be18c17 DataFlash: Add PID Logging Method 2015-05-27 14:28:44 +10:00
Andrew Tridgell
d8df31c023 SITL: initialise a couple of variables to prevent a valgrind error 2015-05-27 11:54:18 +10:00
Andrew Tridgell
2a22ae5404 DataFlash: support 64 bit TimeUS log dumping 2015-05-27 11:54:18 +10:00
Andrew Tridgell
1400d0155c AP_Mount: fixed valgrind error with gimbal code 2015-05-27 11:54:17 +10:00
Andrew Tridgell
4705be97bf AP_HAL: support %lld and %llu in internal printf
useful for log messages with 64 bit timestamps
2015-05-27 11:54:17 +10:00
Peter Barker
8be9e99fad AP_InertialSensor_PX4: 64-bit timestamps for ACCx and GYRx messages 2015-05-27 11:54:17 +10:00
Peter Barker
988f3277de DataFlash: 64-bit timestamps for ACCx and GYRx messages 2015-05-27 11:54:17 +10:00
Peter Barker
f489f6b696 AP_InertialSensor: use 64-bit timestamps in dataflash logs 2015-05-27 11:54:17 +10:00
Peter Barker
9ae85ed9ab APM_Control/AP_AutoTune: use 64-bit timestamps for dataflash logs 2015-05-27 11:54:17 +10:00
Peter Barker
457f77314e AP_TECS: use 64-bit timestamps for dataflash logs 2015-05-27 11:54:16 +10:00
Peter Barker
feb85ef7d5 AP_GPS: unused SBP struct gets 64-bit timestamp 2015-05-27 11:54:16 +10:00
Peter Barker
4d67ccb338 AP_GPS: use 64-bit timestamps for dataflash logs 2015-05-27 11:54:16 +10:00
Peter Barker
9e0b5910e2 AP_Terrain: use 64-bit timestamps for dataflash logs 2015-05-27 11:54:16 +10:00
Peter Barker
88015503ac SITL: use 64-bit timestamps for dataflash logs 2015-05-27 11:54:16 +10:00
Peter Barker
617043f468 DataFlash: convert GPS and CAM dataflash messages to 64-bit timestamps
GPS structures remove 32-bit apm_time and replace with standard time_us
Significant change to GPS and GPS2 messages:
	    Add TimeUS as first field
	    Remove T field
	    Due to length restrictions on labels:
	    	Renamed TimeMS to GMS (Gps MilliSeconds)
		Renamed Week to GWk (Gps WeeK)
		Renamed RelAlt to RAlt
Significant change to CAM messages:
	    Removed GPSTime (uin32_t), added TimeUS (uint64_t)
2015-05-27 11:54:15 +10:00
Peter Barker
769982b8f2 DataFlash: use 64-bit timestamps for dataflash logs 2015-05-27 11:54:14 +10:00
Randy Mackay
114c4f4077 AP_Match: fix example sketch 2015-05-27 09:47:24 +09:00
Randy Mackay
fb2d29364e Mount_SToRM32_serial: fix angle request 2015-05-26 21:05:29 +09:00
Randy Mackay
9b04a67e63 Mount_SToRM32_serial: rename sent_do_mount_control 2015-05-26 21:05:26 +09:00
Randy Mackay
72eb25b166 Mount: add SToRM32 serial to front end 2015-05-26 21:05:24 +09:00
Sergey Kirillov
c133511431 Mount: add SToRM32 serial support 2015-05-26 21:05:22 +09:00
Sergey Kirillov
69959a4214 SerialManager: add SToRM32 serial enum and baudrates 2015-05-26 21:05:19 +09:00
Andrew Tridgell
c7044c4f91 AP_Terrain: make terrain request times per channel
otherwise we can miss sending one if we send first to a channel not
being listened to
2015-05-26 17:27:51 +10:00
Andrew Tridgell
3a9d7363ea HAL_VRBRain: fixed functor comparison 2015-05-26 15:17:06 +10:00
Andrew Tridgell
e589ca9b80 HAL_Flymaple: fixed functor comparison 2015-05-26 15:16:51 +10:00
Andrew Tridgell
7e264b44df HAL_Linux: fixed functor comparison 2015-05-26 15:14:50 +10:00
Andrew Tridgell
96b921d4cc AP_Scheduler: fixed example build 2015-05-26 14:37:14 +10:00
Andrew Tridgell
4fdfa47ca3 GCS_MAVLink: removed BUILD_DELEGATES code
no longer needed
2015-05-26 14:35:12 +10:00
Andrew Tridgell
8624a262e7 DataFlash: removed BUILD_DELEGATES code
no longer needed
2015-05-26 14:35:04 +10:00
Andrew Tridgell
83e6181024 AP_Vehicle: removed BUILD_DELEGATES code
no longer needed
2015-05-26 14:34:58 +10:00
Andrew Tridgell
e3f8e22fc6 AP_Mission: removed BUILD_DELEGATES code
no longer needed
2015-05-26 14:34:51 +10:00
Andrew Tridgell
85f87b6d9c AP_Menu: removed BUILD_DELEGATES code
no longer needed
2015-05-26 14:34:47 +10:00
Andrew Tridgell
1a2b02a563 AP_HAL: removed AVR special case
no longer needed
2015-05-26 14:34:13 +10:00
Andrew Tridgell
7db9da6545 AP_Scheduler: removed delegate ptr handling
no longer needed
2015-05-26 14:33:30 +10:00
Andrew Tridgell
edc21cfa38 AP_Compass: make having no compass backends non-fatal
thanks to Daniel for spotting this
2015-05-26 14:23:40 +10:00
Andrew Tridgell
43fb1202f2 HAL_PX4: fixed functor comparison with NULL 2015-05-26 13:54:38 +10:00
Lucas De Marchi
0daeeb9518 ArduPlane: Start using new Functor implementation
It both reduces flash size and move symbols to read-only sections.
The scheduler_tasks table is one known not to be in read-only section before due
to the FastDelegate implementation. Before and after this patch:

	ArduPlane $ size ArduPlane.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 733368	   8252	  67352	 808972	  c580c	ArduPlane.elf.old
	 730632	   8236	  64792	 803660	  c434c	ArduPlane.elf

	ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks
	0000000000402800 t _GLOBAL__sub_I__ZN5Plane15scheduler_tasksE
	00000000006b54c0 B Plane::scheduler_tasks

	ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks
	0000000000490900 R Plane::scheduler_tasks

As can be seen above, now the scheduler_tasks symbol is in a read-only data
section and in all of them we decreased the total size.

For APM2 we have a little increase in the text size size.

	ArduPlane $ size ArduPlane.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 241940	    942	   4447	 247329	  3c621	ArduPlane.elf.old
	 242222	    942	   4431	 247595	  3c72b	ArduPlane.elf

	ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks
	00001f8f T Plane::scheduler_tasks

	ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks
	00001f8f T Plane::scheduler_tasks
2015-05-26 13:46:55 +10:00
Lucas De Marchi
84f399ec3c APMrover2: Start using new Functor implementation
It both reduces flash size and move symbols to read-only sections.
The scheduler_tasks table is one known not to be in read-only section before due
to the FastDelegate implementation. Before and after this patch:

	APMrover2 $ size APMrover2.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 611406	   4832	  40920	 657158	  a0706	APMrover2.elf.old
	 609686	   4824	  38936	 653446	  9f886	APMrover2.elf

	APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
	0000000000696f80 B Rover::scheduler_tasks
	000000000047c440 R Rover::scheduler_tasks

As can be seen above, now the scheduler_tasks symbol is in a read-only data
section and in all of them we decreased the total size.

For APM2 we have a similar situation, but the table was already in text section
because it was using plain C pointers:

	APMrover2 $ size APMrover2.elf{.old,}
	   text	   data	    bss	    dec	    hex	filename
	 189518	   1038	   3494	 194050	  2f602	APMrover2.elf.old
	 189216	   1038	   3480	 193734	  2f4c6	APMrover2.elf

	APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
	00001f92 T Rover::scheduler_tasks
	00001f8a T Rover::scheduler_tasks
2015-05-26 13:46:55 +10:00
Lucas De Marchi
20ef7efaf6 AP_HAL: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:55 +10:00
Lucas De Marchi
c894a1349e DataFlash: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
6ae2591cad AP_Terrain: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
9764bb2452 AP_Notify: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
3aa46e3213 AP_InertialSensor: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
4c97d92982 AP_HAL_Linux: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
9b7c1d8f93 AP_HAL_FLYMAPLE: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
dcf992b558 AP_HAL_AVR: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
435613de69 AP_Frsky_Telem: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
95627cf412 AP_Compass: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
df5652fa87 AP_Baro: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
ca7db5cdc1 AP_Arming: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
cc1fbddc95 AP_Airspeed: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
f7dc19554f AP_ADC: use functor macros
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:51 +10:00
Lucas De Marchi
9f0af5b9cb AP_HAL: add fallback implementation of functor macros 2015-05-26 13:46:51 +10:00
Lucas De Marchi
83efb9280b AP_HAL: use variadic templates in FastDelegate
Now that we are using C++11 we can use variadic templates to simplify
the FastDelegate classes. It also simplifies moving away from the
FastDelegate implementation.
2015-05-26 13:46:51 +10:00
Lucas De Marchi
78b00784fb AP_Scheduler: allow to use functor 2015-05-26 13:46:50 +10:00
Lucas De Marchi
58847bffd6 GCS_MAVLink: allow to use functor 2015-05-26 13:46:50 +10:00
Lucas De Marchi
cd308b5e2f DataFlash: allow to use functor 2015-05-26 13:46:50 +10:00
Lucas De Marchi
384a3bfcc3 AP_Mission: allow to use functor 2015-05-26 13:46:50 +10:00
Lucas De Marchi
70525fa2c1 AP_Menu: allow to use functor 2015-05-26 13:46:50 +10:00
Lucas De Marchi
4b5cf24a81 Allow to change to functor implementation
Start to add code behind APM_BUILD_FUNCTOR to support changing the
functor implementation (without breaking the build while the change is
not complete).
2015-05-26 13:46:49 +10:00
Lucas De Marchi
a1e1503e1a AP_HAL: Add Functor implementation
This is a Functor implementation that should cover the use cases we have
for FastDelegate. In contrary to the latter, it can be constructed at
compile time so the compiler can safely put it in a read-only section
which covers the cases in which we are not using it.
2015-05-26 13:46:49 +10:00
Lucas De Marchi
5dfb3ed70c AP_Scheduler: replace tabs with spaces 2015-05-26 13:46:49 +10:00
Lucas De Marchi
82d22992bd GCS_MAVLink: Do not compare delegate to NULL
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:49 +10:00
Lucas De Marchi
ff398dbf0c AP_Menu: Do not compare delegate to NULL
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:48 +10:00
Lucas De Marchi
acdcdc35fa AP_HAL_SITL: Do not compare delegate to NULL
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:48 +10:00
Lucas De Marchi
9ef870c08a AP_HAL_AVR: Do not compare delegate to NULL
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:48 +10:00
Lucas De Marchi
57386434d1 AP_ADC: remove AP_ADC_HIL
It's not being used and it's actually broken: it references
AP_ADC_HIL::read() that doesn't exist.
2015-05-26 13:46:48 +10:00
Randy Mackay
d777166c6f AP_MotorsTri: revert tail servo to Ch7 2015-05-25 22:27:38 +09:00
Randy Mackay
1a1fa7ca4b AP_MotorsHeli: add comment to avoid param conflict 2015-05-25 22:13:49 +09:00
Randy Mackay
4c94a69e33 AP_MotorsCoax: resolve param conflict with TradHeli 2015-05-25 22:13:47 +09:00
Randy Mackay
78b49fb4c6 AP_MotorsSingle: resolve param conflict with TradHeli
Also rename servo reverse parameters to be consistent with tricopter
2015-05-25 22:13:45 +09:00
Randy Mackay
8dc7cf7fa8 AP_MotorsTri: YAW_SV_REV values -1 or +1
Also resolve parameter conflict with TradHeli
2015-05-25 22:13:43 +09:00
Randy Mackay
71e4bccecb AP_Motors: init members in constructor
Also add f to end of float constants
2015-05-25 22:13:41 +09:00
Robert Lefebvre
915236f1f5 AC_AttitudeControl: Non-functional comment change
Don't encourage future misuse of g.rc3
2015-05-25 22:13:37 +09:00
Robert Lefebvre
e87ca6de6f AC_PosControl: Change motors.get_throttle_out
to get_throttle to follow function renaming in AP_Motors
2015-05-25 22:13:34 +09:00
Robert Lefebvre
b8181b6b90 AP_Motors: RCMAP fix
Remove all RC Input channels passed as reference into AP_Motors.  All input handling self-contained inside AP_Motors.
Rework Tricopter to use internal servo calcs.
2015-05-25 22:13:32 +09:00
Andrew Tridgell
527fc2a610 SITL: use 127.0.0.1 to improve reliability on windows 2015-05-25 22:02:18 +10:00
Andrew Tridgell
563be63d00 SITL: try to get speedup accurate on both windows and linux 2015-05-25 21:48:42 +10:00
Andrew Tridgell
2b2259a6d7 SITL: use more granrular sleeps for windows 2015-05-25 17:05:44 +10:00
Andrew Tridgell
c06d81a06a SITL: use autotest_dir
this allows for the aircraft directory for SITL to be packaged without
the source tree
2015-05-25 13:04:46 +10:00
Andrew Tridgell
3daee9c8bc HAL_SITL: added --autotest-dir option 2015-05-25 13:04:17 +10:00
Andrew Tridgell
4f37926aea SITL: fixed gimbal build on PX4 2015-05-25 12:39:40 +10:00
Andrew Tridgell
958d8b4787 GCS_MAVLink: update from upstream headers 2015-05-25 12:20:27 +10:00
Andrew Tridgell
e7abc07898 HAL_SITL: enable --gimbal option
instantiates a MAVLink gimbal
2015-05-25 12:20:26 +10:00
Andrew Tridgell
7f5b206c55 SITL: added gimbal simulator class 2015-05-25 12:20:26 +10:00
Andrew Tridgell
2f7facba40 GCS_MAVLink: removed old MAVLink 0.9 headers 2015-05-25 10:19:47 +10:00
Andrew Tridgell
d96e62cce7 AP_Mount: update gimbal for changed quaternion API 2015-05-25 09:08:45 +10:00
Andrew Tridgell
2a8f645d81 AP_Math: use matrix3 euler312 operations in quaternion library 2015-05-25 09:08:31 +10:00
Andrew Tridgell
7aa7e03169 AP_Math: added euler312 functions (for gimbal) 2015-05-25 09:03:11 +10:00
Andrew Tridgell
2bb5f677c7 SITL: removed earth frame rates 2015-05-25 09:03:10 +10:00
Andrew Tridgell
8dce5e11d6 HAL_SITL: removed earth-frame rates 2015-05-25 09:03:10 +10:00
Andrew Tridgell
19419fd901 AP_Mount: fixed reporting of MAVLink gimbal position to GCS 2015-05-24 15:24:02 +10:00
Andrew Tridgell
b61f7fa2f6 AP_AHRS: enable EKF by default on plane
now we have arming checks enabled by default I think this is the best
choice
2015-05-23 17:17:44 +10:00
Andrew Tridgell
efd958f0b0 AP_NavEKF: rename file to remove spaces
spaces in file names break shell scripts
2015-05-23 17:14:52 +10:00
Andrew Tridgell
2d53a1ff9a SITL: fixed airspeed in last_letter 2015-05-23 11:37:21 +10:00
Andrew Tridgell
ae6ac1b82d SITL: fixed airspeed in CRRCSim 2015-05-23 11:35:56 +10:00
Andrew Tridgell
da5d5c9936 SITL: fixed airspeed pass-thru from simulators 2015-05-23 11:24:10 +10:00
Andrew Tridgell
e7f3716e8c HAL_SITL: pass in wind speed to C++ simulators 2015-05-23 11:04:13 +10:00
Andrew Tridgell
091a1e7fe0 SITL: fixed wind support in JSBSim 2015-05-23 11:03:57 +10:00
Andrew Tridgell
4486ddc53e DataFlash: changed TimeUS to SampleUS for raw IMU logging
this prevents a problem with an upcoming patch from Peter
2015-05-22 17:58:18 +10:00
Jonathan Challinger
28731d2bdc AP_Motors: add throttle filter input constraint from -100 to 1100 2015-05-22 16:12:27 +09:00
Andrew Tridgell
60221f5e9c SITL: use sendto() in CRRCSim
this makes us robust to restart of client or server
2015-05-22 16:07:45 +10:00
Andrew Tridgell
6cbd291dd2 HAL_SITL: make model name case insensitive 2015-05-22 16:07:44 +10:00
Andrew Tridgell
9336914598 AP_HAL: added sendto socket method 2015-05-22 16:07:44 +10:00
Andrew Tridgell
4e117bc90f HAL_SITL: support last_letter simulator 2015-05-22 16:07:44 +10:00
Andrew Tridgell
b35c21fbe2 SITL: fixed socket recv error check 2015-05-22 16:07:43 +10:00
Andrew Tridgell
e487d95c1b SITL: added direct support for last_letter simulator 2015-05-22 16:07:43 +10:00
Robert Lefebvre
bcc3fa0526 AC_HELI_PID: Pass default FF param setting in constructor 2015-05-22 09:38:28 +09:00
Robert Lefebvre
73bafa131e AP_MotorsHeli: Overload output()
To protect it from future interference from Multirotor code.
2015-05-22 09:38:23 +09:00
Robert Lefebvre
d3ce68a8ca AP_MotorsHeli: Overload update_throttle_filter()
Do not reset filter to zero when disarmed to allow collective pitch servo movement.
2015-05-22 09:38:20 +09:00
Peter Barker
6299a8c90d autotest: drain control socket in SITL
fixes SITL on plane
2015-05-22 08:09:15 +10:00
Andrew Tridgell
cd66ce1c74 HAL_SITL: don't advance clock on garbage SIM input 2015-05-21 21:17:22 +10:00
Andrew Tridgell
605b8b4ece AP_Math: converted rotations example to cpp
this is just a test conversion before we start converting on-mass
2015-05-21 13:41:20 +10:00
Andrew Tridgell
062c9406bd AP_Math: fixed rotations example build 2015-05-21 13:37:44 +10:00
Andrew Tridgell
a1a3212131 AP_Common: moved NOINLINE define to AP_Common.h 2015-05-21 09:35:26 +10:00
Andrew Tridgell
fb97c16a84 AP_Param: make data pointer const 2015-05-21 07:48:52 +10:00
Andrew Tridgell
84726e4a3a GCS_MAVLink: use APM_BUILD_DELEGATES 2015-05-21 07:48:52 +10:00
Andrew Tridgell
f8aef57ec3 DataFlash: use APM_BUILD_DELEGATES 2015-05-21 07:48:51 +10:00
Andrew Tridgell
0847bd2608 AP_Scheduler: use APM_BUILD_DELEGATES 2015-05-21 07:48:51 +10:00
Andrew Tridgell
e7ba2c8d93 AP_Mission: use APM_BUILD_DELEGATES 2015-05-21 07:48:51 +10:00
Andrew Tridgell
3a300575bc AP_Menu: use APM_BUILD_DELEGATES 2015-05-21 07:48:51 +10:00
Andrew Tridgell
98d2b9b3aa AP_Vehicle: added APM_BUILD_DELEGATES macro 2015-05-21 07:48:50 +10:00
Andrew Tridgell
c3aa8d67fa AP_Arming: convert to delegates 2015-05-21 07:48:50 +10:00
Andrew Tridgell
71b550d7b5 GCS_MAVLink: support member functions for rover 2015-05-21 07:48:47 +10:00
Andrew Tridgell
b5d930be61 DataFlash: support member functions for rover 2015-05-21 07:48:47 +10:00
Andrew Tridgell
1237772479 AP_Scheduler: support member functions for rover 2015-05-21 07:48:46 +10:00
Andrew Tridgell
12cbf7888f AP_Mission: support member functions for rover 2015-05-21 07:48:46 +10:00
Andrew Tridgell
db13f657a8 AP_Menu: support member functions for rover 2015-05-21 07:48:46 +10:00
Andrew Tridgell
e1e85ecc3d AP_Progmem: simpler PROGMEM header 2015-05-21 07:48:46 +10:00
Andrew Tridgell
abfb601db6 AP_Progmem: added pgm_read_block() 2015-05-21 07:48:45 +10:00
Andrew Tridgell
d57fcf7e46 AP_HAL: added workaround for AVR delegates in PROGMEM 2015-05-21 07:48:45 +10:00
Andrew Tridgell
be587beedc AP_HAL: disable nagle on sockets for faster local operation 2015-05-21 07:48:45 +10:00
Andrew Tridgell
b0932548d8 AP_GPS: enable NMEA GPS on AntennaTracker
we have enough flash space for it
2015-05-21 07:30:21 +10:00
Andrew Tridgell
411a96b4b3 AP_NavEKF: take at most 30s to accept DCM attitude
velocity noise on the GPS can cause DCM to take a long time to
converge. If it takes longer than 30s then allow EKF to start
2015-05-20 15:22:15 +10:00
Andrew Tridgell
7a76f72bf5 AP_AHRS: added uptime_ms() interface 2015-05-20 15:22:14 +10:00
ziltoid2
23787cf695 AP_Baro: use ground_temperature instead of calibration_temperature for alt calculation 2015-05-20 11:42:21 +10:00
Andrew Tridgell
92c4c5cbcf AP_NavEKF: change using_gps threshold to 4s
this means plane will continue to use dead reckoning with GPS 3D lock
for 4s
2015-05-19 20:52:39 +10:00
Paul Riseborough
69ca654194 AP_NavEKF: Update declination when we know our location
This ensures that when we start using GPS, that the EKF will be using the correct declination for that location
If declination is not known it defaults to zero
2015-05-19 20:35:52 +10:00
Paul Riseborough
c1c5e3598a AP_NavEKF: Enforce alignment of realigned earth mag field with declination
This prevents bad inertial or GPS data combined with the post takeoff heading alignment check used by plane from resulting in earth field states that have an incorrect declination
2015-05-19 20:35:52 +10:00
Paul Riseborough
b1d8805114 AP_NavEKF: Reduce takeoff detection sensitivity
This patch reworks the in-air transition criteria to reduce the likelihood of false positives and to ensure that there will be enough ground speed to make the heading check work reliably.
2015-05-19 20:35:52 +10:00
Randy Mackay
d1808c645d AC_PosControl: recalc leash length on speed or accel change
This resolves an issue in which do-set-speed would not take effect until
one waypoint too late in a mission.
2015-05-19 18:16:39 +09:00
Andrew Tridgell
5514a9f690 AP_NavEKF: base EKF decisions on vehicle class
using the vehicle class rather than the build macros allows this to
work correctly in replay
2015-05-19 15:21:22 +10:00
Andrew Tridgell
92daa15ccc AP_AHRS: on plane and rover make AHRS unhealthy when EKF not initialised
planes and rovers need full absolute position from the EKF if the EKF
is going to be used. We don't want users to arm without full
capabilities
2015-05-19 15:21:21 +10:00
Andy Piper
c600c1a746 DataFlash: log Gyro and Accel Health for IMUs.
Log the health of the various IMUs under GyHlt and AcHlt.
(Names are shortened to get inside the string array limit).
2015-05-19 13:13:35 +09:00
Andrew Tridgell
0619247992 HAL_Linux: don't advance time in delay() and delay_microseconds()
this could cause time to go backwards in Replay. Thanks to Peter for
finding this
2015-05-19 13:17:15 +10:00
Andrew Tridgell
29f0561ce4 AP_AHRS: reject EKF for plane when we have GPS and aren't fusing
plane users would prefer to use GPS in this case
2015-05-17 21:24:57 +10:00
Andrew Tridgell
6154db5cf8 AP_NavEKF: added using_gps status bit 2015-05-17 21:24:57 +10:00
Randy Mackay
0077cac1b7 AC_WPNav: rename stop to brake 2015-05-17 14:44:33 +09:00
Andrew Tridgell
80c20b5cf2 DataFlash: use L for latitude/longitude in DF messages 2015-05-16 14:04:31 +10:00
Tom Pittenger
e987173ffb AP_NavEKF: float to double promotion via tan instead of tanf 2015-05-16 08:21:49 +10:00
Tom Pittenger
5f677c2b5b AP_Math: float to double promotion via cos instead of cosf 2015-05-16 08:21:49 +10:00
Tom Pittenger
7b95241306 AP_HAL_SITL: float to double promotion via cos instead of cosf 2015-05-16 08:21:37 +10:00
Tom Pittenger
4f1dd2c8a4 AC_AttitudeControl: compiler warning stuff
float to double promotion via cos & sin instead of cosf & sinf
(this code is commented out but in case it ever gets included it would be nice to be correct
2015-05-16 08:21:36 +10:00
Andrew Tridgell
aaa35bd1ec AP_InertialSensor: using atan2f() gives more accurate euler corrections
thanks to Jon and Paul!
2015-05-16 08:19:18 +10:00
Andrew Tridgell
9e723ef907 AP_InertialSensor: added calibrate_trim() function
used for redoing trim calculation
2015-05-16 07:56:34 +10:00
Andrew Tridgell
b564ba0868 AP_InertialSensor: fixed AHRS_TRIM calculation again 2015-05-16 07:56:33 +10:00
Andrew Tridgell
2475ee9630 AP_Compass: setup HIL/SITL for two compasses 2015-05-16 07:06:04 +10:00
Andrew Tridgell
ab687ab0f5 DataFlash: added double to list of format strings
thanks to Dario <proyectoire@gmail.com> for noticing this
2015-05-15 21:14:49 +10:00
Jonathan Challinger
159599879f AP_InertialSensor: simplify and correct AHRS_TRIM computation 2015-05-15 21:03:03 +10:00
Andrew Tridgell
d7e4310df0 DataFlash: Lat can be negative in POS 2015-05-15 17:55:50 +10:00
Randy Mackay
559684b257 GCS_MAVLink: fix flow control check
Thanks to Tridge for spotting is
2015-05-15 15:39:34 +09:00
Andrew Tridgell
b0a90df135 DataFlash: fixed double Init of DF object
thanks to Michael De Breuil
2015-05-15 16:33:10 +10:00
Randy Mackay
763c671d0a GCS_Console: fix example sketch after mavlink_comm_port to array 2015-05-15 15:07:32 +09:00
Randy Mackay
85eeba93c0 GCS_MAVLink: mavlink_comm_port to array 2015-05-15 15:07:31 +09:00
Randy Mackay
facbfaf31f SerialManager: support for 4th mavlink channel 2015-05-15 15:07:24 +09:00
Randy Mackay
62e7e8cc7d GCS_MAVLink: add support for 4th mavlink chan on PX4 2015-05-15 15:07:23 +09:00
Andrew Tridgell
74485c5754 DataFlash: added Log_Write_POS() call
write AHRS position to DF log
2015-05-15 14:28:08 +10:00
Andrew Tridgell
3370ec62a1 HAL_SITL: fix for multi-compass SITL 2015-05-15 14:25:44 +10:00
Andrew Tridgell
91b4ba3588 AP_Compass: allow for more than one compass in HIL/SITL 2015-05-15 14:25:44 +10:00
Andrew Tridgell
11f70da8b4 DataFlash: fixed incorrect change to GPS message 2015-05-15 14:25:43 +10:00
Randy Mackay
ade4f81c77 Compass: fix example sketch 2015-05-15 11:53:28 +09:00
Paul Riseborough
bd91b9727f AP_NavEKF: Add pre-arm check for horizontal inertial errors
This check will declare the EKF as unhealthy if the horizontal position innovations exceed a threshold  before motors are armed.
This will help to prevent a takeoff with bad inertial data caused by bad accel or gyro offsets.
2015-05-15 10:35:25 +09:00
Randy Mackay
1b13250fd8 RC_Channel: small parameter description change 2015-05-14 10:33:08 +09:00
Randy Mackay
61c851885f AC_WPNav: remove unused set_spline_dest_and_vel 2015-05-13 22:40:08 +09:00
Randy Mackay
7056484ef0 Copter: fix spline overshoot 2015-05-13 22:40:06 +09:00
Randy Mackay
56b92e7d8c AC_PID: fix example sketch 2015-05-13 17:55:39 +09:00
Paul Riseborough
c2ac80cc63 AP_AHRS: Prevent copter from switching to DCM unless EKF has severe errors 2015-05-13 16:11:13 +09:00
Randy Mackay
3f8b832075 InertialSensor: fix example sketch 2015-05-13 10:13:51 +09:00
Randy Mackay
3bcd97fcd1 Parachute: increase deployment duration to 2sec 2015-05-12 22:08:20 +09:00
Randy Mackay
5560d3dba1 BattMonitor: fix example sketch 2015-05-12 21:34:24 +09:00
Randy Mackay
e080b2acce AP_Arming: use accel_calibrated_ok_all 2015-05-12 16:32:22 +09:00
Randy Mackay
1f14eec4ea InertialSensor: accel_calibrated_all_ok replaces calibrated
This checks that the current number of accelerometers matches the number
of calibrated accels in order to catch accel failures at boot
2015-05-12 16:32:16 +09:00
Randy Mackay
0d72f3ac29 AP_HAL: fix example sketches 2015-05-12 14:42:15 +09:00
Andrew Tridgell
8bf2baef70 AP_InertialSensor: fixed primary accel/gyro in replay 2015-05-11 11:19:11 +10:00
Andrew Tridgell
f40c96de9d SITL: add 'quad' and 'copter' as aliases for quadcopter 2015-05-11 09:19:53 +10:00
Andrew Tridgell
2a47cc3c81 HAL_SITL: cleanup command line handling 2015-05-11 08:48:42 +10:00
Andrew Tridgell
bab94c8a04 SITL: close high fds before launching JSBSIM 2015-05-11 08:06:10 +10:00
Andrew Tridgell
414f4125de AP_HAL: use FD_CLOEXEC to prevent sockets being inherited in SITL 2015-05-11 08:05:51 +10:00
Andrew Tridgell
7692889248 SIM_JSBSim: added elevon and vtail support 2015-05-10 21:57:39 +10:00
Andrew Tridgell
aa9853179c SITL: fixed startup yaw 2015-05-10 21:57:19 +10:00
Andrew Tridgell
5687adbdba HAL_SITL: support JSBSim backend 2015-05-10 21:02:20 +10:00
Andrew Tridgell
692fc18698 AP_HAL: protect Socket.h from double include 2015-05-10 21:02:04 +10:00