Commit Graph

23774 Commits

Author SHA1 Message Date
Andrew Tridgell
7159283e33 AP_MSP: fixed valgrind warning with RTC msg 2020-09-07 11:59:20 +10:00
Pierre Kancir
240c34ecde AP_Math: add missing ; on benchmark test 2020-09-06 19:13:04 +10:00
Andy Piper
5c554221c7 AP_Logger: address review commenst from #14299 2020-09-06 09:12:59 +10:00
bugobliterator
76ee7bec77 AP_CANManager: fix skipping driver init for disabled slcan iface 2020-09-06 07:16:01 +10:00
Andy Piper
ccb583d092 AP_Logger: make block logger conform to mavlink expectations of numbering
add support for log time to block logger
refactor rotation into backed. Don't start logs when erasing
correct log start logic
separate read and write points so that requesting log information does not corrupt the current log
when starting a new log stop logging first
clear the write buffer when starting a new log
insert utc time when requesting info for the current log
stop logging and request formats again when starting a new log
cope with erase happening while we are logging
keep pushing out startup messages even when format messages are done
don't log to the gcs in the io thread
don't start new logs in the io thread
don't validate logs while erasing
flush logs when stopping logging
account for page header when calculating logs sizes
don't return data when asked for more data than in the log
optimize locking and use separate semaphore to mediate ring buffer access
stop logging when the chip is full and send a notification
calculate logs sizes correctly even when they wrap
read log data correctly even when it wraps
add stats support to block logger
reset dropped when starting a new log
fail logging when the chip is full
refactor critical bufferspace checks
increase messagewriter budget to 250us and to 300us for FMT
2020-09-05 10:20:39 +10:00
Michael Oborne
4e9848ab3a HAL_ChibiOS: fix sdcard param init
the write was failing because of a 0 byte write attempt, the response was -1 vs 0
this results in not using the sdcard backend for storage for all boots after the initial
2020-09-04 07:13:12 +10:00
murata
a44defc49e SITL: Disabling debugging cyclic messages
SITL: Disabling debugging cyclic messages
2020-09-03 11:31:05 +10:00
bugobliterator
27b1ce572e AP_CANManager: fix comms between SLCAN and second CAN Iface 2020-09-03 11:01:26 +10:00
Michael du Breuil
d905282c1e AP_HAL: Don't redefine allowing double math in SITL/Linux if already defined 2020-09-03 09:56:29 +10:00
Andrew Tridgell
56b743dfca AP_GPS: build SBF driver with double precision 2020-09-03 09:56:29 +10:00
Michael du Breuil
6a8680d31d AP_GPS: Send RTK baseline data from SBF 2020-09-03 09:56:29 +10:00
Samuel Tabor
f1290a2e17 Plane: Add use of airbrakes, used when throttle is negative OR via RC channel option. 2020-09-02 10:10:09 -07:00
Rajat Singhal
e9b3c54e6d AP_Rangefinder: Add SITL option in param description 2020-09-02 17:25:43 +10:00
Rajat Singhal
0f66936353 SITL: Airsim: Add support for rangefinder sensor data
Also increase RC channels to 12
2020-09-02 17:25:43 +10:00
Rajat Singhal
6085614364 SITL: Airsim: Resend servo output after timeout
Plus some cleanup
2020-09-02 17:25:43 +10:00
Tatsuya Yamaguchi
829cd29d7c SITL: fix when speedup is specified as a startup parameter 2020-09-02 17:13:22 +10:00
Andy Piper
1f3c24d436 AP_RCProtocol: put back DSM VTX control and logging, add tests 2020-09-02 17:10:59 +10:00
bugobliterator
c6e45dd536 AP_Param: add set_and_save_ifchanged for Vector3f params 2020-09-02 17:06:05 +10:00
bugobliterator
de6b48f922 AP_Compass: set only if changed to save space in param storage 2020-09-02 17:06:05 +10:00
Andrew Tridgell
3a252a042b HAL_ChibiOS: fixed fast sampling on F32Lightning
this SPI bus on this board can't handle 8MHz
2020-09-02 06:42:44 +10:00
Andrew Tridgell
cfc59497f6 AP_InertialSensor: trigger internal error on persistent IMU reset
this will give users a warning when they are getting the Invensense
IMU FIFO reset issue
2020-09-02 06:42:44 +10:00
Andrew Tridgell
b20279e452 AP_InternalError: added imu_reset error 2020-09-02 06:42:44 +10:00
Andrew Tridgell
1488142d88 AP_MSP: fixed system ID 2020-09-02 05:56:46 +10:00
Andrew Tridgell
f330d5aa77 AP_MSP: run new MSP code through code style script 2020-09-02 05:56:46 +10:00
Andrew Tridgell
d8ed210b98 AP_MSP: cleanup namespace handling
using "using namespace MSP" in headers is a bad idea as it spreads to
lots of cpp via includes. It is fine in a cpp file
2020-09-02 05:56:46 +10:00
Andrew Tridgell
3517ab9c45 AP_OpticalFlow: allow separate enable of MSP opticalflow 2020-09-02 05:56:46 +10:00
Andrew Tridgell
34430e9d6c AP_RangeFinder: allow separate enable of MSP rangefinder 2020-09-02 05:56:46 +10:00
Andrew Tridgell
87cf7b58ae AP_MSP: added sample OSD enable params 2020-09-02 05:56:46 +10:00
Andrew Tridgell
5358c1e476 AP_MSP: handle utf-8 in string display 2020-09-02 05:56:46 +10:00
Andrew Tridgell
8ca9af72e0 AP_OSD: prevent startup segfault 2020-09-02 05:56:46 +10:00
Andrew Tridgell
8319b7b6b7 AP_MSP: check for MSP rangefinder enable 2020-09-02 05:56:46 +10:00
Andrew Tridgell
84f7589f2d AP_RangeFinder: allow separate enable of MSP rangefinder 2020-09-02 05:56:46 +10:00
yaapu
4a8290508d AP_MSP:Tools: added more OSD items and messages 2020-09-02 05:56:46 +10:00
yaapu
cfc7823af8 AP_MSP: fix missing memset for battery_state struct 2020-09-02 05:56:46 +10:00
Andrew Tridgell
0e55a63be2 AP_OSD: skip backend drawing for boards without font backends
this saves a lot of flash space on boards that want the MSP OSD system
but not the MAX7456 backend
2020-09-02 05:56:46 +10:00
Andrew Tridgell
25746ef27e AP_OSD: avoid building MAX7456 driver without an SPI device for it 2020-09-02 05:56:46 +10:00
Andrew Tridgell
491e82159c HAL_ChibiOS: add HAL_WITH_SPI_xx defines for SPI devices
this allows us to avoid building drivers for SPI devices we don't
have, such as OSD
2020-09-02 05:56:46 +10:00
Andrew Tridgell
17173871a4 AP_RangeFinder: fixed non-MSP build 2020-09-02 05:56:46 +10:00
Andrew Tridgell
f3a0ba0138 AP_OpticalFlow: fixed non-MSP build 2020-09-02 05:56:46 +10:00
Andrew Tridgell
27acdf1800 AP_MSP: fixed values for MSP_OSD_NCELLS param docs 2020-09-02 05:56:46 +10:00
Andrew Tridgell
d9da06b9e4 AP_MSP: fixed constrains in analog and battery MSP msgs
need to use constrain_int32() for values that give unsigned 16 bit
values
2020-09-02 05:56:46 +10:00
Andrew Tridgell
5dba8ab9c8 AP_MSP: convert more MSP msg parsing to new system 2020-09-02 05:56:46 +10:00
Andrew Tridgell
c31bab2a85 AP_MSP: don't send zero length MSP packets 2020-09-02 05:56:46 +10:00
Andrew Tridgell
f033aaf5bd AP_MSP: fixed ESC telem data send
only send if we have telemetry data, and ensure data lines up with
motor numbers
2020-09-02 05:56:46 +10:00
Andrew Tridgell
952a3956a9 AP_BLHeli: added have_telem_data() API 2020-09-02 05:56:46 +10:00
Andrew Tridgell
05f4bf0b32 AP_MSP: fixed viewer for py2 and py3 2020-09-02 05:56:46 +10:00
Andrew Tridgell
5a7f81b5c3 AP_MSP: use more compact message format for most messages 2020-09-02 05:56:46 +10:00
Andrew Tridgell
24a6cfe36c AP_MSP: fill in millis for RTC 2020-09-02 05:56:46 +10:00
Andrew Tridgell
c4092ca57a AP_MSP: don't send ESC_SENSOR_DATA when not enabled in build 2020-09-02 05:56:46 +10:00
Andrew Tridgell
449883c7f1 AP_MSP: added python MSP FPV viewer 2020-09-02 05:56:46 +10:00
Andrew Tridgell
cea2eadd16 AP_MSP: make MSP packing smaller and more efficient
this changes two MSP items (GPS and home pos) to use packed structures
insteaf of individual sbuf writes. This makes for faster and smaller
code
2020-09-02 05:56:46 +10:00
yaapu
6a0531c08a AP_Common: added missing bit set/clear functions 2020-09-02 05:56:46 +10:00
yaapu
9efc4602af AP_BLHeli: integrate MSP protocol with existing blheli inplementation 2020-09-02 05:56:46 +10:00
yaapu
144f7df02f AP_Math: added CRCs needed by AP_MSP 2020-09-02 05:56:46 +10:00
yaapu
7170adf50e AP_OpticalFlow: added support for MSP based flow sensors 2020-09-02 05:56:46 +10:00
yaapu
699ffcbcd2 AP_RangeFinder: added support for MSP based range finders 2020-09-02 05:56:46 +10:00
yaapu
b8b285b359 AP_OSD: added support for an MSP based OSD 2020-09-02 05:56:46 +10:00
yaapu
234ed303fe AP_SerialManager: added support for the MSP protocol 2020-09-02 05:56:46 +10:00
yaapu
7f789fb443 AP_Vehicle: added support for the MSP protocol 2020-09-02 05:56:46 +10:00
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