When operating fully autonomously (i.e., without manual control or a guaranteed link to the ground station), tuning a vehicle can be difficult since the current autotune process requires either RC input or a GCS command. For these scenarios, it it useful to be able to start autotune inside a mission.
* ICE Control Module: Added option to use VTOL transition state to trigger ICE on/off states
Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>
* ran make format
Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>
* Update src/modules/internal_combustion_engine_control/InternalCombustionEngineControl.cpp to initialize vtol_vehicle_status_s correctly
Initialize appropriately
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
* ICE Module: adjusted VTOL logic to use vehicle_status
Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>
---------
Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
Counts active mavlink instances atomically when instances
are claimed or released and uses that value to early-exit
the forwarding logic.
It means on single-instance scenarios this will skip taking
the mavlink_module_mutex lock and will not iterate over
mavlink_module_instances on every received message.
Signed-off-by: Onur Özkan <work@onurozkan.dev>
Add PWM_*_CENTERx for each servo.
Use a bilinear transform to map actuator_servos to PWM signals.
This solution only works for PWM based servos. Other types of servos are not affected.
* PWM: Add servo trim option
* PWM: Improve documentation of PWM trim feature
* PWM: cleaner clamping and docs typo
* update documentation & safety
* add migration formula
* rename param from trim to center
* docs with center instead of trim
* move clamping and reorder values
* improve documentation
* adress failing range check
* improve documentation
* CA: add event for setting CENTER with TRIM
Signed-off-by: Silvan <silvan@auterion.com>
---------
Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Silvan <silvan@auterion.com>
This allows airspeed and sideslip fusion to start during VTOL front
transition, but not in backtransition or MC. This mitigates issues seen
due to going in and out of airspeed fusion in strong headwinds in MC.
Co-authored-by: bresch <brescianimathieu@gmail.com>
The mode executor can run land mode which updates the home position to the landing location. This
can be not the desirable behavior and the home position should stay at the original location.
A flag is added to the configuration overrides to control if the home position is updated or not.
Some modes should only be run within the context of a mode executor and the user should not be able
to select them in the GCS. With this change, the external component registration request can be
used to set if a mode is selectable or not.
I don't think it makes sense to ignore required streams that easily.
If we do use some streams that are only in the MAVLink development.xml
dialect, then we will have to properly and explicitly ifdef them
everywhere that we use them. Otherwise, this basically means that we
will just swallow this warning on most (non mavlink-dev) platforms which
can mask issues.
Abort publication immediately when not enough memory is available.
Zero _zenoh_publishers and _zenoh_subscribers to ensure we're not
dereferencing a wrong pointer
* mavlink: esc: fix ESC_STATUS and ESC_INFO message emission.
Fixes mavlink messages emission for ESC messages. Actuator --> MotorNumber mapping was not respected, the mavlink messages should be reporting the ESC status in motor number order not actuator order.
* Update src/modules/mavlink/streams/ESC_STATUS.hpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/modules/mavlink/streams/ESC_INFO.hpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* remove dependency on mixer_module/output_functions.hpp
* add actuator function definitions to EscReport.msg
* clean up
* add missing header
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
MCP9808: Replaced PX4_INFO with PX4_DEBUG
MCP9808: Update date in headers
MCP9808: Define functions before variables
MCP9808: Increase logging interval for sensor_temp
MCP9808: Removed extra space
MCP9808: Remove this->
During backtransition in gusty conditions the current "pitch-up to decelerate" strategy had deficiencies as the motion is not always purely in body-x direction. Thus we replace it here with a "tilt-up to decelerate" strategy.
Secondly, in GNSS-denied environments where the position error increases, tracking a precise landing point through position feedback is not reasonable, and we now instead discard the position feedback in cases where the position error exceeds 10m.
* add eph limit check for dist-to-target VT BT deceleration
* add alphafilter for acceleration estimate in VT BT, rename constants
* explicitly set yawspeed_setpoint to 0
* replace backtransition pitch-setpoint with tilt-setpoint
* blend vtol-backtransition roll vehicle_attitude_sp based on mc_weight
* remove memcpy for v_att_sp
* pusher_assist: keep pitch setpoint VT_PITCH_MIN
resetting the pitch setpoint to zero made little sense, because we lose
the forward thrust component of the hover motors, while the pusher
throttle was calculated to be applied in addition to the hover forward
component
* pusher assist: change default min pitches to 0
To make for a smoother transition for users who don't care much about
pitch when pusher-assisting and were fine with it (mostly) being at zero
This aligns setActiveMissionItems() in rtl_direct_mission_land.cpp and in rtl_mission_fast.cpp with what was already in mission.cpp. It probably was on oversight when the RTL restructure happened. The FW landing requires the previous waypoint to be correctly set, that's why it was only noticeable there.
* Fix position setpoint update logic in Mission RTL
Currently, when proceeding to the landing point the previous setpoint is not updated, which results in an unexpected and off course landing pattern in fixed wing. (see #25436)
* Change to work more like `mission.cpp`
* Fix rtl_direct_misssion_land formatting for style guide
* rtl_mission_fast: fix FW landing by setting previous wp in landing
Signed-off-by: Silvan <silvan@auterion.com>
---------
Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Silvan <silvan@auterion.com>
With IMUs of higher report rate (e.g. ADIS16470), setting backup schedule timeout simply
to half of the ORB queue length may cause the backup firing before required updates are received.
Set backup schedule to queue length - 1 instead. Additionally, double-check that the backup
doesn't get too short after finding the largest integer multiple of gyro_integral_samples.
Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
* Update to latest mavlink that includes support for WIP warnings
* mavsdk_tests: pass build for now
We need this until the figure eight stuff has moved to common.
---------
Co-authored-by: Julian Oes <julian@oes.ch>