28223 Commits

Author SHA1 Message Date
Matthias Grob
6b2b20bd6e imu_gyro_parameters: lower default angular acceleration filter from 30Hz to 20Hz
to avoid noise getting into the derivative term of the PID rate control loop on integration flights.
2025-06-12 17:15:12 +02:00
Peter van der Perk
0fe8738ed9 msp_osd: Add VTX config, stick commands and arming status
- Adds MSPv1 rx parsing to fetch VTX config
 - Allows to inspect and change VTX channel through CLI
 - Forward MSP_RC for stick commands osd
 - Forward MSP_STATUS for arming status for PIT and LP mode
2025-06-11 11:32:32 -04:00
chfriedrich98
d348bf4828 mecanum: centralize mode management, resets and checks 2025-06-11 14:17:23 +02:00
chfriedrich98
f0c15af426 mecanum: update position controller 2025-06-11 14:17:23 +02:00
chfriedrich98
5e9322899b mecanum: seperate actuator control 2025-06-11 14:17:23 +02:00
Mahima Yoga
c9658f28e9
commander: use existing class state to track mission progress (#24947)
Replaced the local variable landed_amid_mission with the class member _mission_in_progress for consistency and to reduce redundancy.
No functional change.
2025-06-09 18:17:13 -08:00
bresch
457ce90541 ekf2: run simplified GNSS checks after initial fix
This prevents stopping GNSS fusion on slightly degraded solution when
tight checks are set
2025-06-06 15:59:56 +02:00
Silvan Fuhrer
ff87361ffa Navigator: RTL reverse: when landing set next to invalid
This makes sure that there is no weird line following logic executed
by the flight task when the vehicle should just come down vertical
for landing.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-06-06 15:47:35 +02:00
Matthias Grob
c7ef12545c mc_att_control_params: lower default roll and pitch attitude gains from 6.5 to 4
6.5 is a relatively high value that was used mostly on smaller, low inertia vehicles ~250-500mm diagonal. There it works great but on larger, higher intertia vehicles this leads to problems.
2025-06-05 19:28:53 +02:00
Matthias Grob
fdc4766da6 Make sure vehicle_thrust_setpoint is always published before vehicle_torque_setpoint
After f0b05ea7cfd9de4113f4cd63e8068cf8089bc158
the control allocator only has a callback on the torque setpoint and even though this should work
I'm paranoid and would like to avoid surprises by always publishing the thrust before torque
then the samples that were published together are also allocated together.
2025-06-05 08:46:30 +02:00
Niklas Hauser
6d35ad5d9b
[uavcan] Fix safety state not getting published (#24972) 2025-06-04 09:20:34 -08:00
Matthias Grob
84cb748080 esc_calibration: simplify the logic and consider battery only connected if there's no message timeout and the connected flag is set 2025-06-04 17:11:33 +02:00
Don Gagne
7018e1b74b Fix reporting of connected battery 2025-06-04 17:11:33 +02:00
Matthias Grob
7e055656b0 uavcan esc: translate temperature field from Kelvin to Celsius 2025-06-04 16:44:16 +02:00
bresch
e487d59521 Vehicle_odometry: protect angular_velocity field against aliasing
Accumulate delta-angles between each publication to get the correct
angular velocity between two attitudes
2025-06-04 09:01:33 +02:00
bresch
0e32b155f3 ekf2: simplify names of scoped variables 2025-06-03 09:22:32 +02:00
bresch
c33d79cfb4 ekf2: move gnss_checks to their own class 2025-06-03 09:22:32 +02:00
bresch
2dbce4d958 ekf2: replace defines with enum class 2025-06-03 09:22:32 +02:00
bresch
5332010b13 ekf2: move on ground GNSS checks to separate function 2025-06-03 09:22:32 +02:00
Silvan
66fe3aa2b3 ControlAllocator: only run allocator on torque updates, not thrust
Signed-off-by: Silvan <silvan@auterion.com>
2025-06-02 09:26:13 -07:00
Silvan
f0b05ea7cf ControlAllocator: only use torque, not thrust sp as callback item
Signed-off-by: Silvan <silvan@auterion.com>
2025-06-02 09:26:13 -07:00
Niklas Hauser
3971db3cb4 [iis2mdc] Help device detection by retrying probing 2025-06-02 16:54:15 +02:00
Niklas Hauser
56d53b60c0 [bmp388] Initialize multiple times with delay 2025-06-02 16:54:15 +02:00
Silvan Fuhrer
cff5ecfd88 ICE: allow throttle setpoint to be set to NAN to stop motor without disarming
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-06-02 16:50:30 +02:00
Silvan Fuhrer
ed15258abb ICE: small cosmetic changes and make message definition clearer
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-06-02 16:50:30 +02:00
GuillaumeLaine
17cadf7739 dds_topics: set more sensible ROS2 publication rate limits 2025-06-02 12:01:40 +02:00
Mahima Yoga
2110da73ad
Commander: don't reset Home position if landed during a (uncompleted) mission. (#24902) 2025-06-02 10:50:03 +02:00
Marco Hauswirth
8d3c94c947
Baro offset calibration based on GNSS height (#24859)
* apply offset to baro sensors based on gnss measurements when gnss is selected as hgt-ref

* always calibrate baro with gnss if new param SENS_BAR_AUTOCAL is set accordingly

* always do baro-gnss calibration when AUTOCALIB is set, but ensure epv is small enough and gnss data is consistent with baro

* avoid update and reset in the same step

* minor change of constexpr usage
2025-06-02 08:38:11 +02:00
Beniamino Pozzan
a2c23acc65
fix (msp_ods): clear buffers before writing and adjust sizes (#24951)
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
2025-06-01 18:33:09 -08:00
Niklas Hauser
62c9bf8a47 [uavcan] Param for interface mask of ESC actuators 2025-05-28 15:03:59 +02:00
chfriedrich98
38bcc50127 differential: centralize mode management, resets and checks 2025-05-28 09:03:27 +02:00
chfriedrich98
d5dc0a7eb8 differential: update position control 2025-05-28 09:03:27 +02:00
chfriedrich98
ac80958cc5 differential: seperate actuator control 2025-05-28 09:03:27 +02:00
Roman Bapst
b26dd4d3f3
Commander: Introduce global_position_relaxed (#24280)
To separate accuracy requirements for VTOL hover and cruise.

- global_position_relaxed refers to having a valid horizontal velocity aid source 
in the estimator and a set global reference position, but poses no requirements 
on the accuracy of the provided position estimate. 
- Auto flight modes Mission, Loiter and RTL, while in fixed-wing mode, 
only require the relaxed global position going forward
- COM_POS_FS_EPH is thus no longer used on fixed-wing vehicles (resp. VTOL in FW)
- rename failsafe_flags.local_position_accuracy_low to failsafe_flags.position_accuracy_low
---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
Co-authored-by: Silvan <silvan@auterion.com>
2025-05-28 08:16:10 +02:00
Mahima Yoga
4abe2d1dab Navigator: allow executing a disarm command during a mission 2025-05-27 13:26:30 +02:00
GuillaumeLaine
e1167f0888 dds_topics: rate limit BatteryStatus ROS2 publication to 1 Hz 2025-05-27 13:21:56 +02:00
GuillaumeLaine
238dffcd1b uxrce_client: add option to set polling rate limit per topic 2025-05-27 13:21:56 +02:00
Niklas Hauser
8c6d7235e4 [drivers] Allow swapping RX/TX pins of DShot Telemetry 2025-05-27 11:07:29 +02:00
Jacob Dahl
3bbe3e5268 logger: add new mask for high rate sensors 2025-05-27 08:09:28 +02:00
chfriedrich98
0d9cb1f048 ackermann: only control relevant setpoints in manual modes 2025-05-26 15:56:24 +02:00
chfriedrich98
a129a29793 ackermann: split modes into seperate folder 2025-05-26 15:56:24 +02:00
chfriedrich98
47a9b552f8 ackermann: centralize mode management, resets and checks 2025-05-26 15:56:24 +02:00
chfriedrich98
cd486b2da6 ackermann: update position control 2025-05-26 15:56:24 +02:00
chfriedrich98
45540455fe ackermann: separate actuator control 2025-05-26 15:56:24 +02:00
Silvan
ea94bc11eb DDS topics: add FW highlevel interfaces
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
mahima-yoga
8a5e5a411a msgs: Clean up message definitions and descriptions
- Add versioning to interfacing messages
- Add header description
- Add units, frame and range wherever possible
- Add [norm] and @range indentifiers
2025-05-26 14:47:38 +02:00
Silvan
8c1f7ec7c0 rename FWPositionController to FWModeManager
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan Fuhrer
259e7d1d53 FWModeManger: remove throttle spike during flaring by waiting with height rate change
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan Fuhrer
2600946172 FW Attitude Controller: Wheel controller rework
add RunwayControl messge to pass wheel steering controls to wheel controller

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

Runway takeoff: specify that RWTO_TKOFF is directly applied during takeoff

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

msg/RateCtrlStatus: remove unused wheel_rate_integ field

The wheel rate controller is not run in the moduels that are now
running the MC/FW rate controllers, so thsi field canot be filled.

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

wheel rate controller: use speed scaler quadratically on integrator

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

wheel yaw controller: use a time constant of 0.1

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>

FW Attitude Controller: lock heading setpoint for wheels to initial heading

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
Silvan
a849ab9de5 FW: Re-organize param sections for FW params
Params that are used by FW Mode Manager
- FW NPFG: NPFG params, should be renamed to FW Lateral Control once moved to the lat/lon controller
- FW Auto Takeoff
- FW Auto Landing

Params used by Fw Lat/Long Controller:
- FW Lateral Control
- FW Longitudinal Control

Params used by both:
- FW General

Params used by Performance model:
- FW Performance (could be moerged with FW General?)

Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00