Commit Graph

98 Commits

Author SHA1 Message Date
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
Peter Barker 0107466fe4 AC_PrecLand: include required GCS.h header 2022-09-27 09:26:45 +10:00
chobitsfan 43105249cb PrecLand: support LANDING_TARGET ext field 2022-09-06 12:10:21 +09:00
Shiv Tyagi 8bd26dffac AC_PrecLand: rotate target vector based on sensor orient
Since, the frontend takes care of rotating sensor frame target vector to body frame, the  sitl backend should return unit
vector in sensor frame instead of body frame. This is to have homogeneity among backends.
2022-08-30 03:44:26 -04:00
Shiv Tyagi bc3ff20871 AC_PrecLand: add _ORIENT param to precland library
The orient parameter will help us construct a direction of approach vector in vehicle body frame. This vector would help
us rotate the target vector from sensor frame to body frame and determine the horizontal position error of vehicle for
more orientations than just PITCH_270
2022-08-30 03:44:26 -04:00
Shiv Tyagi 5ff268fa97 AC_PrecLand: return target distance if enabled from SIM_Precland
For rover, we cant measure distance towards target using a rangefinder. Hence, we should must return target distance if enabled through SIM_Precland.
2022-08-18 22:47:43 +10:00
Iampete1 22aa09d125 AC_PrecLand: params always use set method 2022-08-03 13:43:48 +01:00
Peter Barker c452002ae4 AC_PrecLand: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Peter Barker 2ab2555e0b AC_PrecLand: include cleanups 2022-03-01 11:21:33 +11:00
Rishabh 89cd6ab006 AC_PrecLand: Change parameter to bitmask 2022-02-01 17:12:56 +09:00
Rishabh 819539af1a AC_PrecLand: Add features to check if target is moving and figure out its velocity 2022-01-31 14:38:29 +09:00
Jaaaky 0c16ebec6c AC_PrecLand: Fix multi #include's 2021-12-21 10:38:46 +11:00
Rishabh ee176d26e9 AC_PrecLand: Raise internal error if state machine is running while precland is disabled 2021-08-30 14:08:44 +09:00
Rishabh ae98545202 AC_PrecLand: Add prec landing state machine 2021-08-23 15:00:56 +09:00
Rishabh d4edd84573 AC_Precland: Allow landing retry and failsafe handling 2021-08-23 15:00:56 +09:00
Rishabh d9534d9526 AC_Precland: Add new parameter to descend only when close to target 2021-08-17 15:09:55 +09:00
bugobliterator 9cad93f58c AC_PrecLand: change class name from SITL::SITL to SITL::SIM 2021-08-05 07:25:31 +10:00
Andrew Tridgell f3181ae0f6 AC_PrecLand: mark log messages as streaming 2021-08-03 10:23:36 +10:00
Peter Barker 63015e9e9a AC_PrecLand: fixes 2021-07-21 21:01:39 +10:00
Peter Barker 6aba6c83c6 AC_PrecLand: rename for AHRS restructuring 2021-07-21 21:01:39 +10:00
Rishabh 290174f9d9 AC_PrecLand: NFC: Refactor EKF code 2021-07-05 15:21:27 +09:00
Andrew Tridgell f209504a12 AC_PrecLand: convert SITL backends to double precision position 2021-06-24 21:34:30 +10:00
Rishabh 08b8a43ab5 AC_PrecLand: Use rotate_xy instead of matrix multiplication 2021-06-14 15:59:52 +09:00
Rishabh 53bd545fac AC_PrecLand: Account for vertical camera offset in alt calculations 2021-06-14 15:59:52 +09:00
Rishabh f1e4f6dbc8 AC_PrecLand: Initialize EKF before using its output 2021-06-14 15:59:52 +09:00
Hwurzburg a2f1c6e19e AP_PrecLand: correct metatdata for YAW_ALIGN 2021-05-21 08:27:49 +09:00
Peter Barker 6a3188a8ec AC_PrecLand: use enum-class for Type, make enum private 2021-04-14 18:04:26 +10:00
Peter Barker 252543978e AC_PrecLand: remove unused PrecLandBehaviour enum and accessor
AFAICS this has never been used
2021-04-14 18:04:26 +10:00
Peter Barker 1ad9542df3 AC_PrecLand: use enum-class for EstimatorType
And remove accessor for same
2021-04-14 18:04:26 +10:00
Andrew Tridgell 1fe1e53260 AC_PrecLand: pass in time corrected LANDING_TARGET msg
should make companion based precision landing more accurate
2021-04-13 17:30:19 +10:00
Peter Barker 9513bbe85f AC_Precland: remove unused _timestamp_us 2021-04-13 14:18:05 +10:00
Peter Barker 6d9f1f1bb4 AC_PrecLand: move precision landing logging up into AC_PrecLand 2021-04-13 10:28:39 +10:00
Peter Barker 3569c4d979 AC_PrecLand: correct @User field in ACC_P_NSE documentation 2020-09-22 14:56:04 +10:00
Randy Mackay b31a9fd54a AC_PrecLand: POS param range of 5m and 1cm increment 2020-02-01 08:46:03 +09:00
Pierre Kancir a9814d34c7 AC_PrecLand: pass mavlink_message_t by const reference 2019-07-16 20:51:42 +10:00
Peter Barker 63e75459e2 AC_PrecLand: add floating point specifier on constant 2019-04-05 23:04:17 -07:00
Pierre Kancir 40e7d22811 AC_Precland: use SITL precland object
AC_Precland: simplify includes
2019-03-01 20:28:22 +11:00
Peter Barker ff06e34aa7 AC_Precland: clean headers 2019-02-19 09:16:26 +11:00
Dr.-Ing. Amilcar do Carmo Lucas 4a71ac5e93 AC_PrecLand: small improvements in comments 2019-02-07 10:54:58 +09:00
Randy Mackay bee90261ef AC_PrecLand: enabled param desc loses 2nd option
this strict option was not actually supported
2019-01-15 10:25:28 +09:00
Randy Mackay d271dda8c5 AC_PrecLand: init accepts update rate 2018-09-21 16:38:35 +09:00
Randy Mackay 7fbdaa3c65 AC_PrecLand: LAG to float and use main loop rate
also includes other changes from peer review:

- check_inertia_buffer renamed to init_inertial_buffer and nullptr checks removed to make it more clear this should only be called once
- init_inertial_buffer made private
- add check that inertial_buffer_size is never less than 1
- fixup comments
2018-09-21 16:38:35 +09:00
Randy Mackay 40d4bcb84a AC_PrecLand: rename BUFFER to LAG and add alloc failure check
avoids issue where LAG parameter is set too large which would lead to trying to access unallocated memory
inertial buffer is only allocated at startup to avoid memory leak
2018-09-21 16:38:35 +09:00
fnoop 02da34a246 AC_PrecLand: Add PLND_BUFFER parameter and move to AP_HAL::utility::RingBuffer, #6297
AC_PrecLand: Add PLND_BUFFER parameter and move to AP_HAL::utility::RingBuffer, ##6297

AC_PrecLand: Fixup int type, #8892

AC_PrecLand: Add PLND_BUFFER parameter and move to AP_HAL::utility::RingBuffer, ##6297

Update screwed up submodules from rebase
2018-09-21 16:38:35 +09:00
Peter Barker 0a7399ae7d AC_PrecLand: use AHRS singleton, remove pointless initialisations 2018-08-17 21:14:57 +09:00
fnoop bfceb5dd32 AC_PrecLand: Improve logging
Add unit/multiplier of new fields to log structure
Fix new log structure
2018-08-08 10:23:26 +09:00
Pierre Kancir 6fe0597399 AC_PrecLand: replace AP_InertialNav by AHRS 2018-04-17 17:21:35 +09:00
Peter Barker 7cc808543f AC_Precland: use ins singleton 2018-03-16 00:37:35 -07:00
Andrew Tridgell 9ba8097502 AC_PrecLand: removed create() method for objects
See discussion here:

  https://github.com/ArduPilot/ardupilot/issues/7331

we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach

Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Lucas De Marchi b29a183a74 AC_PrecLand: add static create method 2017-09-26 03:01:21 +01:00