Commit Graph

37308 Commits

Author SHA1 Message Date
bugobliterator 76d6a88b7b AP_HAL_ChibiOS: properly enable periph IMU on CubeOrange-periph and heavy 2024-10-23 06:46:22 +09:00
bugobliterator 2cc7277692 AP_Scripting: fix build with both GCS and Scripting enabled 2024-10-23 06:46:22 +09:00
bugobliterator 830de73e58 AP_HAL_ChibiOS: add support for raw imu publishing in AP_Periph 2024-10-23 06:46:22 +09:00
bugobliterator 87ae3bccec AP_HAL_ChibiOS: change name CubePilot-CANMod and -PPPGW to CubeNode 2024-10-23 06:46:22 +09:00
Andrew Tridgell 145cc4bb26 AP_Scripting: example to test ESC slew limit
can be used to calculate equivalent cutoff frequency
2024-10-17 11:16:18 +11:00
Hayden Donald 0ddaae5cb6 AP_Scripting: Add mcu_voltage
Add analog:mcu_voltage() to get a reading of the mcu voltage
2024-10-16 19:04:16 +11:00
ZeroOne-Aero 81768b26ff hwdef: added ZeroOneX6 picture
upload ZeroOneX6 picture
2024-10-15 15:04:49 +11:00
Andrew Tridgell b34417f683 GCS_MAVLink: raise number of MAVLink ports
with CAN serial ports and network serial ports sometimes need more
2024-10-15 13:13:54 +11:00
Andrew Tridgell 996b36531b AP_DroneCAN: force DroneCAN zero throttle when disarmed
if a user has set CAN_D1_UC_ESC_RV which is the mask of ESCs that are
reversible we were sending -8191 when disarmed, which is full reverse
throttle. This is the correct output when armed as it is treated as
full reverse at "PWM" 1000 and stopped at 1500, but when disarmed we
should always send zero or the user may find all ESCs spin up at full
reverse when disarmed if the ESC supports reverse throttle (which is
rare in DroneCAN ESCs)
2024-10-15 11:51:10 +11:00
Andrew Tridgell 8053c40993 AP_Logger: mark CSRV non-streaming
the rate of CAN servo messages is controlled by the servo. Having this
streaming means we can miss logging when there is more than one CAN
servo.

In the future we will move to holding the CAN servo data in a data
structure like we do for ESCs, and then log at a regular rate, but for
now this fixes the issue
2024-10-15 11:31:36 +11:00
Tom Pittenger 3ec92731d4 AP_Temperature: fix MCP9600 i2c address and TEMP9 index 2024-10-15 11:30:30 +11:00
Andrew Tridgell 02fd1f3561 AP_Scripting: use cached in AHRS_switch example
and use EKF2/EKF3, more likely to be useful
2024-10-15 10:48:11 +11:00
Peter Barker e15f72ce58 AP_DAL: document more replay messages 2024-10-15 10:46:45 +11:00
Peter Barker d8b109683a AP_NavEKF3: initialise variables as part of declaration 2024-10-15 10:45:59 +11:00
Thomas Watson f2a9075d43 AP_PiccoloCAN: use 32 bit microsecond timeouts for write_frame
For consistency with other parts of the code.

Note that now different frames in a group could have slightly different
deadlines.
2024-10-15 10:24:25 +11:00
Thomas Watson 1354490621 AP_PiccoloCAN: use 32 bit microsecond timeouts for read_frame
For consistency with other parts of the code.

Makes obvious the curious fact that the read_frame timeout is always 0.
2024-10-15 10:24:25 +11:00
Thomas Watson 55c5cb10d0 AP_PiccoloCAN: use 32 bit microsecond timeouts for connection funcs
For consistency with other parts of the code.
2024-10-15 10:24:25 +11:00
Iampete1 baf41ae92e AP_Volz_Protocol: rate limit logs to 5Hz 2024-10-15 10:13:06 +11:00
Iampete1 441dba493f AP_Volz_Protocol: add support for telem and logging 2024-10-15 10:13:06 +11:00
bugobliterator 2524583dda AP_HAL_ChibiOS: increase the number of memory regions for crashdump
also checks num region overruns for bss and heap
2024-10-14 07:21:22 +11:00
MattKear 20449e3c6a AC_Autorotation: Add RSC_Autorotation class 2024-10-11 09:54:26 +11:00
Gone4Dirt b96bb5dc08 AC_Autorotation: Remove bailout case 2024-10-11 09:54:26 +11:00
Gone4Dirt 075ce596d2 Copter: Heli: simplify autorotation mode change and support RSC autorotation state 2024-10-11 09:54:26 +11:00
Gone4Dirt 431cc25dca AP_MotorsHeli: Consolidate all autorotation state into its own class within RSC 2024-10-11 09:54:26 +11:00
Tiziano Fiorenzani 969979cd17 AP_DDS: battery topic to report all the available batteries 2024-10-11 09:53:51 +11:00
Peter Barker a8ce43426b AP_TemperatureSensor: compile all of TemperatureSensor in on boards with >2048 flash
this includes SITL but should also include CubeRed etc
2024-10-11 09:52:03 +11:00
Thomas Watson 9a497fe716 AP_KDECAN: standardize on 32 bit microsecond CAN timeouts
For consistency with other parts of the code. No compiler output change.
2024-10-11 09:51:43 +11:00
Alexis Guijarro 43b8900bec hwdef: Removed duplication for AP_STATS_ENABLED 2024-10-11 09:51:27 +11:00
Peter Barker b36f539c7c SITL: avoid floating point exception around rangefinder distance
projecting onto an infinite plane can cause exceptionally long rangefinder distances - for now jsut cap the distance that the simulated rangefinder can return to avoid floating point exceptions.

the FPE is caused in the Plane FlyEachFrame autotest when flying quadplane-copter_tailsitter - which ends up with a rangefinder at yaw-minus-180.
2024-10-10 20:44:04 +11:00
Andy Piper cb111504e2 AP_InertialSensor: cope with negative ESC frequencies in notch updates 2024-10-09 18:31:57 +11:00
Tiziano Fiorenzani 57157d470f AP_DDS: Airspeed topic 2024-10-09 10:00:32 +11:00
Peter Barker dec10a1a58 hwdef: GEPRCF745BTHD: remove parachute and bl-flashing support (flash overflow) 2024-10-09 08:24:12 +11:00
Henry Wurzburg b71ed41c32 AP_BLHeli:correct RVMASK metadata 2024-10-08 20:58:16 +11:00
Peter Barker 8ba2dae936 AP_NavEKF2: clarify wind direction descriptions 2024-10-08 20:57:36 +11:00
Peter Barker 197d837b6c SITL: clarify wind direction descriptions 2024-10-08 20:57:36 +11:00
Peter Barker 8edcb4b8d3 AP_NavEKF3: clarify wind direction descriptions 2024-10-08 20:57:36 +11:00
Peter Barker 8487657137 AP_AHRS: DCM: log estimated wind 2024-10-08 20:57:36 +11:00
Peter Barker 56de7243f5 AP_AHRS: DCM: tidy variable creation 2024-10-08 20:57:25 +11:00
muramura 6c1a5bf3d0 AP_Logger: Align the order of definitions 2024-10-08 20:57:01 +11:00
Peter Barker 41753b43d7 AP_AHRS: DCM: remove unused variable 2024-10-08 11:10:26 +11:00
Peter Barker 3273f58851 AP_HAL: remove defines for boards which don't exist
we'll now get compilation failures if code is introduced depending on these...
2024-10-08 11:04:28 +11:00
Peter Barker 93174e3240 AP_HAL: avoid include of non-existant file
this file doesn't exist
2024-10-08 11:04:28 +11:00
olliw42 4616fec1be AP_SerialManager: RegisteredPort, add bytes_per_second/baudrate methods 2024-10-08 10:42:21 +11:00
Thomas Watson e9e7eba799 AP_DroneCAN: properly convert timeout to deadline for aux frames
The timeout specified for auxiliary driver frames was passed to the
driver where a deadline was expected. The transmission was then started
after its "deadline", thereby causing it to be canceled and the data
lost if the frame could not be sent immediately.

Fix by converting the timeout to a deadline before passing to the
driver. The conversion is done in the Canard interface code as it
already does other conversions from timeouts to deadlines.
2024-10-08 10:35:41 +11:00
ARg 47d391fc6d AP_HAL_ESP32: ADC driver ported to new idf 5.x driver and debugged 2024-10-08 10:29:02 +11:00
Ryan Friedman 88c06e07d7 AP_DDS: Wrap all topics in ifdefs
* Give ability to enable/disable any topic in DDS through compile
  options

Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2024-10-08 10:18:38 +11:00
Nick Exton 77f1efac5e AP_Mission: Set DO_MOUNT_CONTROL.mode when converting command to MAVLink 2024-10-08 08:05:27 +09:00
bnsgeyer e30b4bf090 AP_MotorsHeli: fix cooldown feature with new autorotation RSC library 2024-10-06 14:33:57 +11:00
Leonard Hall 4d116ceefe AR_PosControl: integrate PSC logging update
Co-authored-by: Randy Mackay <rmackay9@yahoo.com>
2024-10-04 09:25:56 +09:00
Leonard Hall 399336f7ce AC_PID: AC_P_2D comment fix 2024-10-04 09:25:56 +09:00
Randy Mackay 73dfeac547 AP_Scripting: copter-slung-payload suppresses oscillation
Co-authored-by: Leonard Hall <leonardthall@gmail.com>
2024-10-04 09:25:56 +09:00
Randy Mackay bff288d498 AP_Scripting: mavlink_msgs global-position-int and heartbeat 2024-10-04 09:25:56 +09:00
Randy Mackay 51ec6dfd73 AP_Scripting: add copter-posoffset example script
Co-authored-by: Leonard Hall <leonardthall@gmail.com>
2024-10-04 09:25:56 +09:00
Randy Mackay 0c81f111fb AP_Scripting: add set_posvelaccel_offset binding
Co-authored-by: Leonard Hall <leonardthall@gmail.com>
2024-10-04 09:25:56 +09:00
Leonard Hall 37a7635c66 AC_Loiter: updates to offset handling 2024-10-04 09:25:56 +09:00
Randy Mackay e20c7edf68 AC_Loiter: optimise get-posvelaccel-target usage 2024-10-04 09:25:56 +09:00
Randy Mackay 2753b7030b AC_Circle: get-closest-point-on-circle returns dist 2024-10-04 09:25:56 +09:00
Randy Mackay 9ca47cf465 AC_Circle: integrate pos vel accel offsets
Co-authored-by: Leonard Hall <leonardthall@gmail.com>
2024-10-04 09:25:56 +09:00
Leonard Hall 9185b82b7a AC_WPNav: get_closest_point_on_circle uses is_positive 2024-10-04 09:25:56 +09:00
Randy Mackay 951ff473c3 AC_WPNav: support pos vel accel offsets
Co-authored-by: Leonard Hall <leonardthall@gmail.com>
2024-10-04 09:25:56 +09:00
Randy Mackay c706d01d7f AC_PosControl: implement singleton 2024-10-04 09:25:56 +09:00
Leonard Hall 9fb8a0f1ac AC_PosControl: support 3D pos, vel, accel offsets
Co-authored-by: Randy Mackay <rmackay9@yahoo.com>
2024-10-04 09:25:56 +09:00
George Zogopoulos 68003a5eb4 AP_TECS: Reverted pitch limitation order 2024-10-02 17:09:07 +10:00
George Zogopoulos 121adf5f6d AP_TECS: Throttle limits refactor 2024-10-02 17:09:07 +10:00
George Zogopoulos 880ebbcdad AP_TECS: Takeoff improvements
- Refactor and split set_pitch_max_limit method.
- New _update_pitch_limits to encapsulate all relevant functionality.
- Automatically reset if pitch and throttle are overriden.
- nullified TAKEOFF alt_dem offset on external throttle.
- Simplify use of TKOFF_THR_MIN.
- Prevent takeoff altitude overshoot by capping the altitude setpoint offset.
- Move pitch limits after vertical acceleration limitation.
2024-10-02 17:09:07 +10:00
Bayu Laksono efe003743c AP_Notify: Add GPIO driver and buzzer 2024-10-01 21:06:39 -05:00
Bayu Laksono 6d672d42b9 AP_HAL_ESP32: Add GPIO driver and buzzer 2024-10-01 21:06:39 -05:00
Stephen Dade 9a563e222f GCS_MAVLink: Check if set_message_interval is too fast 2024-10-02 09:22:43 +10:00
Ryan Friedman 1bdc635ba8 AP_DDS: Implement joystick support
Signed-off-by: Ryan Friedman <ryan.friedman+github@avinc.com>
Co-Authored-by: Tiziano Fiorenzani
2024-10-01 10:46:35 +10:00
Andrew Tridgell b6f20e3786 AP_Scripting: docs update 2024-10-01 10:45:10 +10:00
Andrew Tridgell 3bbde7c302 AP_Scripting: test update 2024-10-01 10:45:10 +10:00
Andrew Tridgell 6a16bce001 AP_Scripting: added bindings for IPv4 address/string
and make socket recv return the source address and port
2024-10-01 10:45:10 +10:00
Peter Barker 8dec79d136 AP_GPS: use AP_GPS_FixType for ExternalAHRS fix type 2024-10-01 10:32:11 +10:00
Peter Barker f66815b200 AP_ExternalAHRS: use AP_GPS_FixType for ExternalAHRS fix type 2024-10-01 10:32:11 +10:00
Peter Barker efec7ccdc5 SITL: remove stale parameter metadata
now done by having the subgroup in its own file
2024-10-01 10:25:49 +10:00
Iampete1 d7599f225c GCS_MAVLink: Common: Allow scripting to receive messages which fail CRC check 2024-10-01 10:25:22 +10:00
Iampete1 902f1e6476 AP_Scripting: modules: MAVLink: update to latest version of generated code 2024-10-01 10:25:22 +10:00
Peter Barker 163f49827f AP_Mission: split logging of mission-upload vs mission-execution 2024-10-01 10:19:29 +10:00
Peter Barker 4237a33ce6 AP_Logger: split logging of mission-upload vs mission-execution 2024-10-01 10:19:29 +10:00
Peter Barker 1d947396b3 AP_Mission: move Mission log structures into Mission library 2024-10-01 10:19:29 +10:00
Peter Barker b98e682ec6 AP_Logger: move Mission log structures into Mission library 2024-10-01 10:19:29 +10:00
Peter Barker 423daaa71f GCS_MAVLink: split sending terrain report from terrain request 2024-10-01 10:13:06 +10:00
Peter Barker a401c98c74 AP_Terrain: split sending terrain report from terrain request 2024-10-01 10:13:06 +10:00
Bob Long 11014cae06 AP_BattMonitor: add option minimum volt option 2024-10-01 10:05:01 +10:00
Andrew Tridgell 52169f25da HAL_ChibiOS: replace volatile bools with mutexes
this replaces the two booleans used to mediate TX and RX buffer
protection with mutexes.

The booleans were a hangover from the very early HAL_ChibiOS code, and
can lead to a deadlock. The sequence is as follows:

 - a very high CAN bus bandwidth usage, triggered by MissionPlanner
   requesting CAN_FORWARD on a CAN serial port. That causes a
   "infinite" number of CAN_FRAME messages which saturates the bus,
   and leads to the DroneCAN thread looping with no pause

 - a serial port configured as GPS type AUTO, auto-probing for a GPS
   that isn't there. This calls begin() periodically

 - the UART TX thread assocated with that UART not making progress as
   the TX thread priority is below the DroneCAN thread priority

 - this causes the begin() in main thread waiting for _in_tx_timer to
   loop forever, which triggers a watchdog
2024-10-01 09:54:26 +10:00
Peter Barker 0cd6e330a5 AP_BattMonitor: add more-specific prearm failure when SUM backend not available 2024-10-01 09:48:13 +10:00
Peter Barker 721a9b846e AP_BattMonitor: print unhealthy message if battery backend not as expected
a backend which fails to allocate, or where the user has changed the backend type without rebooting will cause an "unhealthy" message to be emitted
2024-10-01 09:48:13 +10:00
Henry Wurzburg 4b5f490e9f Tools:remove BATTRY_SUM from <1K builds 2024-10-01 09:48:13 +10:00
tompsontan 84fbaa3abc AP_HAL_ChibiOS: add board X-MAV-AP-H743v2
Co-authored-by: Henry Wurzburg <hwurzburg@yahoo.com>
2024-10-01 09:39:55 +10:00
Thomas Watson 8e5ee61b02 AP_NavEKF3: derivation: don't generate unused equations
The code is left in for the future when they might be used.
2024-10-01 09:28:54 +10:00
Thomas Watson f9fa2565c4 AP_NavEKF3: document provenance of tilt error variance equations
This is also from the older version of the generator.

Note that as documented, some of the equations have been removed and
rearranged slightly as it is assumed their terms are zero. Additionally,
the result is taken as the sum of the diagonal entries of the matrix.
2024-10-01 09:28:54 +10:00
Thomas Watson 34fba4dfd7 AP_NavEKF3: document provenance of drag force fusion equations
It's from the older version of the generator as well.

Update variable names in the real code to be the same as the generated
code. Skip generation of the unused alternate form of the equations.

Delete `acc_bf_generated.cpp` as we know exactly how to generate it now.
2024-10-01 09:28:54 +10:00
Thomas Watson ef1c31bd50 AP_NavEKF3: document provenance of yaw fusion equations
Requires digging up old versions of the generator script.

The equations have been rearranged somewhat after generation to choose
the appropriate method but they do match overall. The auto-substitution
of the power functions caused slight changes to the generated syntax so
we make those to the real code as well.

Delete `yaw_generated.cpp` as we know exactly how to generate it now.
2024-10-01 09:28:54 +10:00
Thomas Watson ad5da01077 AP_NavEKF3: document provenance of covariance matrix equations
Validated that the generated code matches exactly the code in AP_NavEKF3
(except for the early exits).

Delete `covariance_generated.cpp` as we know exactly how to generate it
now (and it was out of date anyway).
2024-10-01 09:28:54 +10:00
Thomas Watson 4184980537 AP_NavEKF3: derivation: pin generator library versions
Document exactly which versions were used when generating the code.
Sympy is the most important so it is explicitly checked.

Also add an alternate generate script which uses `nix-shell` to make it
convenient to automatically use these versions.
2024-10-01 09:28:54 +10:00
Thomas Watson 57082257fd AP_NavEKF3: derivation: make generation slightly easier
Add a shell script to run the generate_1.py file. Foresight tells us
that we will need multiple such files.

Also ignore the generated code files as they are already out of date and
we are aiming to document provenance and make them unnecessary anyway.
2024-10-01 09:28:54 +10:00
Thomas Watson c880bf57cd AP_NavEKF3: derivation: auto-substitute optimized power functions
Avoids the need to manually insert them after generation.
2024-10-01 09:28:54 +10:00
ARg 1ef0f1a63f AP_HAL_ESP32: Migration of ESP32 targets from idf 4.4 to 5.3 consisting of:
- modification of CMakeLists to use new component names of idf 5.3;
- removing big sdkconfig, which changes a lot, when upgrading idf and to use sdkconfig.defaults, which contain only non default defines;
- Updated idf installation packages list, according to espressif documentation;
- Updated README.md to reflect changes in sdkconfig handling;
- Fixed WDT in Scheduler, it was broken with idf 5.3;
- fixed compilation issues with GCC 13 (which is used by idf 5.3);
- fixed bug in case when HAL_ESP32_WIFI defined as 0 (disable wifi)
- Added ESP32 targets sdkconfig (auto generated) to .gitignore
2024-10-01 09:25:35 +10:00
Peter Barker b234729398 AP_HAL_ChibiOS: CubeRedPrimary: probe external compasses 2024-10-01 09:22:42 +10:00
Nick Exton 2989d623bd AP_Scripting: Add binding for AP_Camera::set_stream_information() 2024-10-01 08:18:54 +09:00