Commit Graph

23665 Commits

Author SHA1 Message Date
yaapu 80eca32604 AP_MSP: added Multiwii Serial protocol (MSP) v1 and v2 support 2020-09-02 05:56:46 +10:00
Siddharth Purohit d25908a1c9 AP_HAL_ChibiOS: keep a backup of storage for last 100 boots 2020-09-01 14:31:53 +10:00
Michael du Breuil 6027553b85 AP_SerialManager: Add missing baud rate documentation 2020-09-01 10:42:30 +10:00
ashvath100 9e86355734 AP_Scripting: quadruped.lau fix after review 2020-09-01 09:33:24 +09:00
ashvath100 f344363404 AP_Scripting: quadruped.lua logic test fix 2020-09-01 09:33:24 +09:00
Randy Mackay a4c7aa6386 AP_Scripting: quadruped.lua fixups after peer review
includes these changes:
add header to quadruped.lua example
quadruped.lua loses unnecessary pwm array
minor formatting fix
correct quadruped comments re servo connections
quadruped.lua replaces /2 with x0.5
quadruped.lua loses servo_estimate arguments
2020-09-01 09:33:24 +09:00
Randy Mackay 28026176f6 AP_Scripting: quadruped example formatting fixes 2020-09-01 09:33:24 +09:00
ashvath100 1a6a623295 AP_Scripting: quadruped example script 2020-09-01 09:33:24 +09:00
ashvath100 9ea390e24b SITL: pybullet script for walking robots 2020-09-01 09:33:24 +09:00
Peter Hall d5316edde7 RC_Channel: add roll and pitch input channels 2020-09-01 09:33:24 +09:00
Sharvashish Das 80e2dbc9f2 GCS_Common: send_local_position uses offset from origin 2020-09-01 10:27:18 +10:00
vierfuffzig 56e44c46ca AP_HAL_ChibiOS: disable IMU fast sampling on F35 / WingFC10
fast sampling introduces random IMU glitches, bisect search identifies 9c2caf5b12 
disabling fast sampling fixes IMU back to expected behaviour. see:
https://github.com/ArduPilot/ardupilot/issues/15090
https://discuss.ardupilot.org/t/shaking-horizon-and-jittering-servos/60420
for reference
2020-08-31 19:50:09 +10:00
Peter Barker 9cdda81e9c RC_Channel: correct case in AvoidAPRoximity function string 2020-08-29 09:48:33 +09:00
Andrew Tridgell 30f9fd9d2a GCS_MAVLink: fixed overrun of text passed to other libraries
this caused corruption in log files, and was passing a
non-nul-terminated string to notify and other libraries
2020-08-28 17:35:17 +10:00
Andrew Tridgell b18928e28e SITL: fixed SIM_IMU_COUNT conflict
this came from merging two PRs which both changed SITL params
2020-08-28 11:32:31 +10:00
Andrew Tridgell 458ade86f5 AP_NavEKF3: fixed segfault when IMU mask covers more IMUs than GSF mask 2020-08-28 10:17:00 +10:00
Andrew Tridgell 6ee527d3e0 AP_NavEKF2: fixed segfault when IMU mask covers more IMUs than GSF mask 2020-08-28 10:17:00 +10:00
Andrew Tridgell d5c0522651 AP_InertialSensor: instantiate SIM_IMU_COUNT sensors in SITL 2020-08-28 10:17:00 +10:00
Andrew Tridgell c16467a47f SITL: added SIM_IMU_COUNT 2020-08-28 10:17:00 +10:00
Siddharth Purohit 8373862f39 AP_CANManager: constant slcan via serial manager protocol param 2020-08-28 09:13:23 +10:00
Andrew Tridgell a4e7c72635 AP_AHRS: removed duplicate implementation of airspeed_estimate() 2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla b5b3298f0a AP_AHRS: get airspeed estimate from non-primary instances too
with multiple airspeed sensors and airspeed affinity in EKF3,
it is possible to have switched over to a lane not using the
primary airspeed sensor, so AHRS should know which airspeed
sensor to use, i.e, the one being used by the primary lane.
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla d7c569c085 AP_Baro: able to freeze baro using SITL parameter 2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla 952c14ed33 AP_HAL_SITL: add GPS Velocity Error through a SITL parameter 2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla 8507c7d3b9 SITL: add some airspeed, baro, gps noise simulation parameters
also some rearrangements in the parameter
lists to make things look better
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla 09620ee1e7 AP_HAL_SITL: use airspeed noise as pressure noise
this emulates real sensors that have higher airspeed noise at
lower speeds, also change airspeed offset to a sitl parameter
2020-08-27 20:20:51 +10:00
Andrew Tridgell 505953bdb2 AP_Airspeed: added get_num_sensors() 2020-08-27 20:20:51 +10:00
Andrew Tridgell 326ab0d7b8 AP_Baro: added get_primary() method 2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla edc3709653 AP_NavEKF3: implement sensor affinity using EK3_AFFINITY parameter
this allows the EKF core index to be used to select a GPS/baro/mag
instance. This is an alternative to GPS blending that allows EKF lane
switching to be used to select the right combination of GPS and IMU
add logging to XKFS message
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla 9588a68e1b AP_Logger: added logging of baro, gps, airspeed to XKFS
new XKFS message for "XKF Sensor"
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla d7edc946b6 AP_NavEKF3: Relative Error based Lane-Switching
Improvments to the lane selection logic, we accumulate error for each
EKF lane relative to the primary for a more robust core selection
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla 56cbcb42ee AP_NavEKF2: Add core relative error and errorscore logging in NKF3 packet
TODO : Port lane switching logic from EKF3 to make use of these terms
Since both share the same NKF3 log structure, needed to do this.
Just log 0 as of.
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla 775a40e4cc AP_Logger: Add RErr and ErSc fields to NKF3 log
RErr (Core Relative Errors) and ErSc (Core Error Scores)
2020-08-27 20:20:51 +10:00
Pierre Kancir af1bdcfdfc AP_Scipting: fix memleak on generator 2020-08-26 17:06:23 +10:00
Rishabh caf5bfed59 AC_Avoid: Added new OA type (Dijkstra + BendyRuler fusion) 2020-08-26 15:43:46 +09:00
Patrick José Pereira 6e24880f87 AP_Common: missing: Add definition for strndupa
`strndupa` is only available when using the GNU GCC suite.
With this definition is possible to use the MUSL compiler.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-08-25 07:15:00 -07:00
Patrick José Pereira 5746943f50 AP_HAL_Linux: Use pthread_self in place of _ctx
Avoid aproblem where _ctx is initialized in a race condition.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-08-25 07:15:00 -07:00
Patrick José Pereira 248daa85a1 AP_HAL_Linux: Scheduler: Use pthread_* over sched_* calls for setschedparam
musl implements `sched_*` following the posix standard,
where `sched_setschedule` is used for process scheduling.
Linux implementation defines `sched_*` functions based in
the thread scheduler and not with the process.

Using `pthread_*` should be used to follow such standard.

Ref: https://pubs.opengroup.org/onlinepubs/9699919799/

From: https://www.openwall.com/lists/musl/2016/03/01/5

> ... Linux does not provide a way
> to set scheduling parameters for a _process_, only for threads. The
> sched_setscheduler syscall is documented as taking a pid but actually
> takes a thread id and only operates on that thread. glibc just ignores
> this and provides sched_* functions that do the wrong thing.

This can be fixed by using `pthread_setschedparam` and requesting the current
thread id via `pthread_self`.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-08-25 07:15:00 -07:00
Patrick José Pereira 11c19a2dde AP_HAL: RCOutput_Tap_Linux: Include arm/ioctls.h
Add missing include for TCGETS2 while compile with MUSL

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-08-25 07:15:00 -07:00
Randy Mackay 46a7e96c48 AP_NavEKF3: readRngBcnData avoids array overflow from beacon count 2020-08-25 09:38:10 +09:00
Randy Mackay b314195f6e AP_NavEKF3: minor spelling fix 2020-08-25 09:38:10 +09:00
Randy Mackay b86e16e927 AP_NavEKF3: readRngBcnData gets minor formatting fix 2020-08-25 09:38:10 +09:00
Randy Mackay 384029d278 AP_NavEKF3: rngBcnDataNew made local 2020-08-25 09:38:10 +09:00
Randy Mackay 8c877f02af AP_NavEKF3: shrink beacon arrays and add assert 2020-08-25 09:38:10 +09:00
Randy Mackay d292ba028a AP_NavEKF3: increase beacon buffer to imu + 1 2020-08-25 09:38:10 +09:00
Randy Mackay ce55af4d95 AP_Beacon: fix sitl position to be NED 2020-08-25 09:38:10 +09:00
Randy Mackay 276e56e618 AP_Beacon: update comments to clarify frame
also minor formatting fix
2020-08-25 09:38:10 +09:00
Peter Barker 716e7622be AP_Logger: log RCIN channels 14 and 15 in RCI2 2020-08-25 10:27:00 +10:00
Andrew Tridgell e5e092d077 AP_AHRS: check EKF status for having horizontal position estimate
this will allow a fixed wing to fall back to DCM if the EKF stops
providing an absolute position while we have 3D GPS lock. The
using_gps flag is not enough, as lagged GPS data can lead to the EKF
stopping fusing when the data is behind the fusion time horizon. In
that case EKF3 gives using_gps=1 but sets horiz_pos_abs=0
2020-08-25 10:22:05 +10:00
Andrew Tridgell 87c7781be2 AP_GPS: show GPS as unhealthy if it is lagged too much
this detects GPS data lag, and if 5 samples in a row are lagged by
more than 50ms beyond the expected lag for the GPS then we declare the
GPS as unhealthy.

This is useful to detect users who have asked for more data from the
GPS then it can send at the baudrate that is being used. The case that
led to this path was a F9 GPS with GPS_RAW_DATA=1 at 115200 baud. In
that case the UART data is quickly lagged by over 1s
2020-08-25 10:22:05 +10:00