Commit Graph

13800 Commits

Author SHA1 Message Date
Randy Mackay 5de64273ec AP_GPS: more efficient initialisation of blending arrays 2017-03-13 11:31:51 +11:00
Randy Mackay 81b20e971b AP_GPS_UBLOX: use get_rate_ms accessor 2017-03-13 11:31:51 +11:00
Randy Mackay ef1399a52f AP_GPS: fixups after peer review
This includes these changes:
RATE_MS, RATE_MS2 parameter description Range minimum reduced to 50
_blend_health_counter is reset to 0 if blending is disabled
GPS_MAX_RECEIVERS is replaced with GPS_BLENDED_INSTANCE where appropriate
simplify all_consistent functions check of number of receivers
calc_blended_weights fix for initial check of how many receivers we have
remove unnecessary setting of GPS last time when blending fails
remove RebootRequired from AUTO_SWITCH param description
2017-03-13 11:31:51 +11:00
Randy Mackay 2f21e3b40c DataFlash: rename GPS3/GPA3 to GPSB/GPAB 2017-03-13 11:31:51 +11:00
Randy Mackay 4f0333892d AP_Arming: clarify GPS inconsistency message 2017-03-13 11:31:51 +11:00
Randy Mackay e398bb5c68 AP_Arming: make gps-checks virtual
Copter's GPS checks will override this
2017-03-13 11:31:51 +11:00
Randy Mackay 9f21649dc0 AP_Arming: add gps consistency and blend health check 2017-03-13 11:31:51 +11:00
Randy Mackay 729ce34ce3 AP_GPS: add all_consistent and blend health for use as pre-arm check 2017-03-13 11:31:51 +11:00
Randy Mackay 72dfe1127f AP_GPS: protect parameters from being accessed externally
backends become friends so they can continue to access parameters held in frontend
get_rate_ms made private because only used by frontend
Also moved static arrays higher in cpp file
2017-03-13 11:31:51 +11:00
Randy Mackay 3172657f26 AP_GPS: move constructor and complex accessors to cpp file
These functions are slightly long and make the .h file hard to read.  Also saves a small amount of flash space.
No functional change
2017-03-13 11:31:51 +11:00
Randy Mackay 0066022a7f AP_GPS: check for valid instance in highest_supported_status
highest_supported_status will always return FIX_3D for blended or invalid instance
setHIL_Accuracy checks instance is 2 or less
send_mavlink_gps2_raw uses num_instances variable directly to avoid confusion with num_sensors
2017-03-13 11:31:51 +11:00
Randy Mackay e764f0d5d0 AP_GPS: sanity check update rate
Also minor spelling and parameter documentation fix
2017-03-13 11:31:51 +11:00
priseborough 6b26bdd454 AP_GPS: Add option to blend multiple GPS receivers
Fix pre-existing bug in hard switch logic
Update GPS_AUTO_SWITCH description
protect against zero accuracy estimates returned by GPS drivers
2017-03-13 11:31:51 +11:00
Randy Mackay cd379b0e86 AP_GPS: move time_epoch calcs into proper file
The frontend implementation was in the backend file
No functional change
2017-03-13 11:31:51 +11:00
Randy Mackay a79474dcbc AP_GPS: minor comment fix
No functional change
2017-03-13 11:31:51 +11:00
Randy Mackay 201504dbae AP_GPS: remove unused get_antenna_offsets()
callers always specify an instance
2017-03-13 11:31:51 +11:00
Randy Mackay 2d0258b6a2 AP_GPS: remove unused highest_supported_status(void) 2017-03-13 11:31:51 +11:00
Randy Mackay ac86c7999b AP_GPS_MAV: set have_accuracy as boolean 2017-03-13 11:31:51 +11:00
priseborough a82b6929f1 DataFlash: Allow logging of blended GPS instance
Add GPS and GPA reporting for blended solution
Allow GPS library to manage reporting for the blended solution
2017-03-13 11:31:51 +11:00
priseborough 56a9e2c462 AP_NavEKF3: Reference correct derivation 2017-03-13 11:31:51 +11:00
priseborough 44fa82d58c AP_NavEKF2: Reference correct derivation 2017-03-13 11:31:51 +11:00
priseborough 18927395d7 AP_NavEKF3: log correct GPS for replay 2017-03-13 11:31:51 +11:00
priseborough 407a60e599 AP_NavEKF2: log correct GPS for replay 2017-03-13 11:31:51 +11:00
priseborough 01551a4423 AP_NavEKF3: handle position jump caused by change in GPS receiver
If the GPS receiver selection changes and we are using GPS for height, the vertical position will be reset to the new GPS height measurement.
correct output observer history when doing a GPS height reset
2017-03-13 11:31:51 +11:00
priseborough 8c46d4316b AP_NavEKF2: handle position jump caused by change in GPS receiver
If the GPS receiver selection changes and we are using GPS for height, the
vertical position will be reset to the new GPS height measurement.
correct output observer history when doing a GPS height reset
2017-03-13 11:31:51 +11:00
Randy Mackay 341b926a43 AP_HAL_SITL: add glitch for 2nd ublox 2017-03-13 11:31:51 +11:00
Randy Mackay 07ce7b8bd6 SITL: add GPS2_GLITCH parameter 2017-03-13 11:31:51 +11:00
Michael Oborne e4ff445ea7 AP_GPS_GSOF-NOVA: fix last_gps_time_ms 2017-03-09 10:41:48 -08:00
mirkix 9e1345453f AP_HAL_Linux: BBBmini remove onboard OpticalFlow 2017-03-07 22:48:48 -08:00
mirkix ac60ddfdde AP_OpticalFlow: allow to search on I2C bus 2 2017-03-07 22:48:48 -08:00
mirkix ad208cab56 AP_OpticalFlow: BBBmini remove onboard OpticalFlow 2017-03-07 22:48:48 -08:00
mirkix 81da61a68d AP_HAL: BBBmini remove onboard OpticalFlow 2017-03-07 22:48:48 -08:00
Michael du Breuil be1fd147fc Arming: Remove the SITL protection around GPS configuration, and rely upon the GPS library instead 2017-03-07 12:43:30 +11:00
Michael du Breuil 398ff823c0 AP_GPS: Always consider ublox as configured in sitl 2017-03-07 12:43:30 +11:00
Francisco Ferreira f6687a2d6c AP_Baro: fix example output
PX4 boards can only start console after USB is connected so we need to
check it is available
2017-03-07 09:37:14 +11:00
jaxxzer b98573d55f SITL: Improved Sub simulation
-Constrain z axis movement between -100m (seafloor) and 0m (water
surface)
-More accurate thruster modelling
2017-03-07 09:35:41 +11:00
Michael du Breuil 44bcd74a57 AP_GPS: Remove dead SBF code
CID 125035
2017-03-06 15:24:22 +00:00
Randy Mackay 7a7f8eb7c1 AC_Avoidance: only stop below alt-fence if fence is enabled 2017-03-06 18:02:03 +09:00
Randy Mackay 3e039a6ba4 AP_NavEKF3: minor formatting fixes
No functional change
2017-03-06 18:40:18 +11:00
Randy Mackay a80c0a231d AP_NavEKF3: attempt to set-up every core
previously we would only call setup_core for the 2nd core if the first had been setup successfully
2017-03-06 18:40:18 +11:00
priseborough 7a8783f35e AP_NavEKF3: Fix bug preventing reset to GPS
This fixes a bug that prevented the reset to the GPS position occurring if GPS velocity observations were still passing innovation consistency checks.
2017-03-06 17:11:39 +11:00
priseborough b7c4945000 AP_NavEKF2: Fix bug preventing reset to GPS
This fixes a bug that prevented the reset to the GPS position occurring if GPS velocity observations were still passing innovation consistency checks.
2017-03-06 17:11:39 +11:00
Michael du Breuil 7f11cf3ca6 AP_Mount: Remove solo gimbal from the minimal build support 2017-03-06 11:53:08 +11:00
Randy Mackay 67097c8d59 AC_AttitudeControl: use gyro_latest
This allows moving the attitude control before the ahrs/ekf update

We continue to use ahrs.get_gyro for the non-time-critical heli
passthrough functions.  We should avoid using get_gyro_latest() unless we know there is a direct benefit because it could lead to inconsistent gyro values vs what the EKF is using.
2017-03-03 13:14:28 +11:00
Randy Mackay d3aca5544e AP_AHRS: get_gyro_latest returns latest rates from IMU with drift correction
Pulling the gyro values from the IMU allows our rate controllers to run before the EKF
2017-03-03 13:14:28 +11:00
Andrew Tridgell ce978595cd AP_BoardConfig: added support for ICM-20602 detection 2017-03-02 14:21:36 +11:00
Andrew Tridgell 875274e761 AP_InertialSensor: added support for ICM-20602
treat the same as a 20608
2017-03-02 14:21:36 +11:00
Andrew Tridgell e7024d9203 AP_Landing: restructure parameters into a structure 2017-03-02 12:38:59 +11:00
Michael du Breuil 547d06febf AP_Landing: Add deepstall support 2017-03-02 12:38:59 +11:00
Michael du Breuil 8b20577b74 AP_Landing: Add a servo override interface and PID logging interface 2017-03-02 12:38:59 +11:00
Michael du Breuil ed359a5833 Dataflash: Add landing PID logging 2017-03-02 12:38:59 +11:00
Michael du Breuil c10fe2e7a4 AP_Landing: Add more interfaces from vehicle code
Fixs up some documentation about expected return values
2017-03-02 12:38:59 +11:00
Michael du Breuil c5c94949bf AP_Math: Extend vector2::angle(vector2) to distinguish parallel and antiparallel vectors
There are a number of use cases where distingusihing antiparallel from parallel vectors is important
2017-03-02 00:50:44 +00:00
Andrew Tridgell 05cbc19ad6 AP_RangeFinder: added type 15 for LidareLiteV3 2017-03-01 22:44:37 +11:00
Andrew Tridgell cf3db7560c AP_BoardConfig: fixed AUAV21 board ID to not overlap with VRBrain boards 2017-03-01 18:07:44 +11:00
Jacob Walser 507b461388 AP_Motors: Initialize throttle range directly
This was causing SITL to hang at boot when motors object is statically allocated.
2017-02-28 22:34:35 -08:00
Andrew Tridgell b86513f503 AP_InertialSensor: support AUAV21 board 2017-03-01 17:24:10 +11:00
Andrew Tridgell 37c9e08316 AP_Compass: support AUAV21 board 2017-03-01 17:24:10 +11:00
Andrew Tridgell d5cad2ae44 AP_Baro: support AUAV21 board 2017-03-01 17:24:10 +11:00
Andrew Tridgell 1989f31ae3 AP_BoardConfig: added AUAV21 board type
unfortunately this uses the same sensor types as the PHMini, which
means we can't auto-detect the difference between them.
2017-03-01 17:24:10 +11:00
Randy Mackay d79403707b AC_AttControl: add feed forward param descriptions
No functional change
2017-03-01 14:59:44 +09:00
Randy Mackay fd94ab43fa AP_Proximity: minor fix to param description
No functional change
2017-03-01 14:59:44 +09:00
Randy Mackay 36bcabb4e4 SRV_Channel: add constraint to move_servo 2017-02-28 19:29:00 +11:00
Randy Mackay 7b3af58634 AC_Avoidance: fix AVOID_ANGLE_MAX parameter description 2017-02-28 15:33:59 +09:00
Andrew Tridgell adf215998f SRV_Channel: added MotorTilt to docs for SERVOn_FUNCTION 2017-02-28 08:10:56 +11:00
Randy Mackay 2b43c6aeed DataFlash: log range finder orientation 2017-02-27 15:18:40 +09:00
Randy Mackay e725ae866b AP_OpticalFlow: fix example sketch 2017-02-27 15:18:13 +09:00
Randy Mackay a74833a04a AP_AHRS: fix example sketch 2017-02-27 15:18:13 +09:00
Randy Mackay 65c8f87b17 AP_Frsky_Telem: only use downward facing rangefinder 2017-02-27 15:18:12 +09:00
Randy Mackay 3f6a734a71 AP_NavEKF3: only use downward facing rangefinder 2017-02-27 15:18:11 +09:00
Randy Mackay 563be389ee AP_NavEKF2: only use downward facing rangefinder 2017-02-27 15:18:10 +09:00
Randy Mackay a093bcb05f AP_Proximity: add rangefinder driver
This allows avoidance using upward or forward facing range finders
2017-02-27 15:18:09 +09:00
Randy Mackay c98e598ae2 AP_RangeFinder: fix example sketch 2017-02-27 15:18:08 +09:00
Randy Mackay e7dd21a0bb AP_RangeFinder: remove primary, add orientation 2017-02-27 15:18:03 +09:00
Randy Mackay 49f4afc2a1 AC_Avoidance: add 2m margin to upward avoidance 2017-02-27 09:48:29 +09:00
Peter Barker d170396acf Notify: Display: blank text line after 10s 2017-02-27 09:02:09 +09:00
Peter Barker da03cf29d6 Notify: Display: pad GPS status/sat count to fix stray chars 2017-02-27 08:14:25 +09:00
Lucas De Marchi f972fed70b AP_HAL_PX4: rename method to follow AP_HAL
This allows to avoid the cast in the HAL, making it easier to replace
the implementation with an Empty::RCOutput while prototyping.
2017-02-26 13:38:24 +11:00
Lucas De Marchi 686e0f08d6 AP_HAL: RCOutput: add optional timer_tick() method
This is common enough across the HAL implementaions so add a method for
it to avoid the need for casts inside the HALs.
2017-02-26 13:38:24 +11:00
Lucas De Marchi ade1876318 AP_Motors: tie esc scaling with set_throttle_range()
We need to update the esc scaling from inside the Motors library, that
has access to the MOT_PWM_[MIN|MAX] values. Otherwise even though the
AP_Motors library honors the value for calculations, the RCOutput
drivers that need the scaling to set the real HW scaling will not work.
Right now it scales the value using the throttle_channel's min/max, even
though AP_Motors may be passing values in other range.
2017-02-26 13:38:24 +11:00
Lucas De Marchi e1eda3066c AP_HAL_PX4: SPIDevice: add missing ifdefs
These sensors may always be present on px4fmu* boards, but they are not
always present for all boards supported by the PX4Firmware.
2017-02-26 13:37:13 +11:00
Lucas De Marchi 2d50eb312c AP_InertialSensor: add support to MPU6500
Just like and MPU9250 without mag and with different WHOAMI register.
2017-02-26 13:37:13 +11:00
Lucas De Marchi 8002df6e45 AP_HAL: add MPU6500 defines 2017-02-26 13:37:13 +11:00
Andrew Tridgell e5ed20d6f7 AC_AttitudeControl: added set_throttle_mix_value()
used by quadplane
2017-02-26 09:20:51 +11:00
Peter Barker e744460ff5 AP_AHRS: mark many functions as override
Also take the opportunity to remove void parameter
2017-02-24 21:13:08 +11:00
Peter Barker 6ee4045878 AP_AHRS: mark new relative position functions override 2017-02-24 21:13:08 +11:00
Peter Barker 35f876f853 AP_AHRS: examples: correct AHRS_Test
This is required so gcs() returns an object
2017-02-24 21:13:08 +11:00
Peter Barker 4ed7fb154f AP_AHRS: supply missing get_relative_position_D_home
Simply returns the baro altitude (like EKF does if it lacks
position)
2017-02-24 21:13:08 +11:00
Peter Barker 24647fb2b0 AP_AHRS: make get_relative_position_D_home pure virtual
Having a void function with a return parameter that isn't
filled in by the base class function seems like a bad idea
2017-02-24 21:13:08 +11:00
Peter Barker d6807d749c GCS_MAVLink: make send_statustext virtual 2017-02-23 23:03:54 -08:00
Peter Barker c93942695f AP_Param: load parameters from a comma-separated-list
This patch will break things for anyone who is using
a comma in their filenames for their ardupilot defaults
files.
2017-02-23 22:46:33 -08:00
Peter Barker fe189fefbc AP_Param: Factor load_defaults_file (NFC) 2017-02-23 22:46:33 -08:00
Lucas De Marchi 0a381dfa1b AP_HAL: document method to split transfers 2017-02-23 22:38:15 -08:00
Lucas De Marchi 32d208dbe8 AP_HAL_Linux: move check for _split_transfers
This is likely not true, so allow not to check the other conditions.
Also remove comment since this is going to be added to the method.
2017-02-23 22:38:15 -08:00
Andrew Tridgell df1da3c14e AP_RangeFinder: setup for split I2C transfers
this fixes PulsedLight Lidar on Linux
2017-02-23 22:38:15 -08:00
Andrew Tridgell a2e445cf24 HAL_Linux: implement set_split_transfers() API for I2C 2017-02-23 22:38:15 -08:00
Andrew Tridgell dc26cbc074 AP_HAL: added set_split_transfers() API for I2C 2017-02-23 22:38:15 -08:00
Michael du Breuil 7b483a1460 AP_GPS: Ublox, always quickly set the rates until we have fetched the version 2017-02-23 07:33:58 +11:00
Tom Pittenger 76dabf2dd9 AP_ADSB: cleanup
non-functional change
2017-02-22 11:55:47 -08:00
Tom Pittenger 5adbf9b232 AP_ADSB: populate altitude via pressure for ADSB-Out
fixes https://github.com/ArduPilot/ardupilot/issues/5424
2017-02-22 11:55:47 -08:00
Michael du Breuil 1de198883d AP_NavEKF3: Check gps vertical accuracy for aligning the GPS 2017-02-22 11:53:42 -08:00
Michael du Breuil 8b69f1708e NavEKF2: Add optional check for GPS vertical accuracy before aligning the EKF 2017-02-22 11:53:42 -08:00
Michael du Breuil 61023fc636 NavEKF: Add GPS vertical accuracy to nav_gps_flags 2017-02-22 11:53:42 -08:00
Jacob Walser cde1452da3 AP_Motors: Use fabsf instead of fabs 2017-02-22 11:25:18 -08:00
Jacob Walser 870183f26b AP_TemperatureSensor: Use powf instead of pow 2017-02-22 11:25:18 -08:00
Jacob Walser 06b394bf43 AP_JSButton: Fix param metadata for relay enum values 2017-02-22 14:42:23 +00:00
Tom Pittenger fb214ef95f AP_Baro: fixed spelling in comment 2017-02-21 02:23:23 -08:00
Jacob Walser 8c87868b5c AP_AHRS: Add submarine vehicle class 2017-02-21 11:26:14 +11:00
Jacob Walser 5829d4b645 AC_Avoidance: Refactor fence.get_safe_alt() to fence.get_safe_alt_max() 2017-02-21 11:26:14 +11:00
Jacob Walser e7a34b0fb3 AP_NavEKF2: Add set_baro_alt_noise method 2017-02-21 11:26:14 +11:00
Jacob Walser e7caf05238 AP_HAL_SITL: Add support for Sub 2017-02-21 11:26:14 +11:00
Jacob Walser 613bc46592 AP_Baro: Add support for water pressure and Sub 2017-02-21 11:26:14 +11:00
Jacob Walser 3c6df7cc0e AC_Fence: Add minimum altitude limit
get_safe_alt() -> get_safe_alt_max() and get_safe_alt_min()
2017-02-21 11:26:14 +11:00
Jacob Walser 0e124d0be5 AC_PosControl: Add AC_PosControl_Sub class 2017-02-21 11:26:14 +11:00
Jacob Walser 925fa5d214 AC_AttitudeControl: Add AC_AttitudeControl_Sub class 2017-02-21 11:26:14 +11:00
Jacob Walser ac1e1b9460 AP_NavEKF3: Add set_baro_alt_noise method 2017-02-21 11:26:14 +11:00
Jacob Walser ca603e1517 AP_TemperatureSensor: Add AP_TemperatureSensor library and TSYS01 driver 2017-02-21 11:26:14 +11:00
Jacob Walser 7121910fa7 AP_Compass: Set default learn parameter to disabled for Sub 2017-02-21 11:26:14 +11:00
Rustom Jehangir 36f3cae535 SITL: Add support for Sub 2017-02-21 11:26:14 +11:00
Jacob Walser 96303c3092 AC_WPNav: Add accessor for origin, and make get_bearing_cd() public 2017-02-21 11:26:14 +11:00
Jacob Walser d3442ae16b AP_RangeFinder: Bugfix for mavlink rangefinders to include out of range low/high 2017-02-21 11:26:14 +11:00
Jacob Walser f3fa8403f8 AP_Notify: Add tone and light pattern for leak detection 2017-02-21 11:26:14 +11:00
Jacob Walser 9c8fca02d9 AP_LeakDetector: New library and analog/digital sensor drivers 2017-02-21 11:26:14 +11:00
Rustom Jehangir 116f166a78 AP_JSButton: New library to map joystick buttons to vehicle functions 2017-02-21 11:26:14 +11:00
jaxxzer ccb6434831 AP_Scheduler: Set main loop rate to 400hz for Sub 2017-02-21 11:26:14 +11:00
jaxxzer 44c9efad50 AP_Vehicle: Add the ArduSub vehicle type.
This also fixes the issue causing accel calibration to be unresponsive
in gcs.
2017-02-21 11:26:14 +11:00
Jacob Walser 2bacc2fea2 AP_RCMapper: Add forward and strafe channel mappings for Sub 2017-02-21 11:26:14 +11:00
Rustom Jehangir 237ba87ca4 AP_Motors: New AP_Motors6DOF used by Sub 2017-02-21 11:26:14 +11:00
Peter Barker 1217256898 AP_AHRS: correct infinite recursion in AP_AHRS_View 2017-02-21 09:03:03 +11:00
Andrew Tridgell 29b06d2d4a SRV_Channel: fixed output slew rate handling
this fixes a bug that happens when the RC output speed is much lower
than the main loop speed, such as with forward throttle for
quadplanes. We need to base the slew on the last sent output, not the
last value read back (at 50Hz) from the IO board, or we will slew the
channel at 6x to 8x slower than the correct rate.
2017-02-21 06:09:33 +11:00
Andrew Tridgell 3ce7e4b322 AP_GPS: fixed fake uBlox with PVT message support 2017-02-21 06:09:33 +11:00
murata fe93bdbc5e AP_IRLock: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
murata eb6cdd27fb AP_Notify: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
murata d9dbf6e1eb AP_OpticalFlow: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
murata a3f5b4f319 AP_InertialSensor: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
murata eb4d8963d0 AP_HAL_Linux: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
murata bc7b2144e7 AP_Compass: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
murata f5c3de2a61 AP_Baro: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
murata af65be5aa4 AP_Airspeed: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
Andrew Tridgell d338d9c0aa SITL: fixed whitespace on flightaxis code 2017-02-18 17:26:43 +11:00
Andrew Tridgell 83d055eceb AP_Motors: support twin-motor tailsitters
use differential thrust for roll
2017-02-18 17:26:43 +11:00
Andrew Tridgell 584fbf629b SRV_Channel: added k_throttleLeft and k_throttleRight
support for differential thrust for yaw in twin engine planes
2017-02-18 17:26:43 +11:00
Andrew Tridgell 7845181f4b AP_AHRS: fixes for changes in AP_AHRS API from Michael 2017-02-18 17:26:43 +11:00
Andrew Tridgell 17e1329068 AC_WPNav: converted to use AP_AHRS_View
for use in quadplane tailsitters
2017-02-18 17:26:43 +11:00
Andrew Tridgell 3c8020862c SITL: support a builtin tailsitter vehicle type 2017-02-18 17:26:43 +11:00
Andrew Tridgell ac2a9c4b4a AP_Motors: allow Copter to fly the tailsitter motors class 2017-02-18 17:26:43 +11:00
Andrew Tridgell c62c64d27b AP_AHRS: added support for AP_AHRS_View 2017-02-18 17:26:43 +11:00
Andrew Tridgell 1345bf8737 AC_AttitudeControl: added support for AP_AHRS_View
this allows for tailsitters with a different attitude view
2017-02-18 17:26:43 +11:00
Andrew Tridgell 8bd1fc63d5 SITL: support pitch90 and pitch270 in FlightAxis
used for flying tailsitters
2017-02-18 17:26:43 +11:00
Andrew Tridgell 1a74b7fc0c AP_Motors: started on tailsitter support 2017-02-18 17:26:43 +11:00