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 f0b05ea7cf
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
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
Matthias Grob
7e055656b0
uavcan esc: translate temperature field from Kelvin to Celsius
2025-06-04 16:44:16 +02:00
Matthias Grob
ce9bb0dc6b
multicopter defaults: use PX4 default <2g ublox GNSS dynamic model also for multirotors
...
It currently defaults to 1g for multirotors, which works in most cases. However, during extended high-acceleration flight (e.g. in Stabilized mode), the limited dynamic model can upset the EKF, causing repeated resets due to data inconsistencies. Recovery is sometimes quick but can also be too slow to maintain position after high acceleration flight. This issue was observed on an 850mm vehicle, not a racer.
2025-05-27 15:27:32 +02:00
Matthias Grob
a9f7f00844
batteryCheck: refine low battery reporting sevirity
...
To make sure QGC also shows a box and reads out for "low battery"
and make events and mavlink_log reports consistent.
Low - Critical
Critical - Critical
Emergency - Emergency
2025-05-21 16:08:27 +02:00
Matthias Grob
30df381f0e
multicopter_autonomous_params: adjust yaw acceleration and maximum rate for exclusive use with HeadingSmoothing
2025-05-21 13:25:46 +02:00
Matthias Grob
a8f5b6dc1b
FlightTaskOrbit: also use HeadingSmoothing to avoid steps during the approach
2025-05-21 13:25:46 +02:00
Matthias Grob
70ad2e6fe5
FlightTaskAuto: Smooth yaw follow-up, bring back necessary previous yaw setpoint and reset smoothing when yaw is not locked
2025-05-21 13:25:46 +02:00
Matthias Grob
0b3fc0a62d
SIH: add Hexacopter X
...
to enable easy simulation of a motor failure.
2025-05-20 13:23:08 +02:00
Matthias Grob
df65e5bced
docs events_interface: fix entire paragraph being declared code by accident ( #24860 )
2025-05-16 08:40:21 +10:00
Matthias Grob and Hamish Willee
406f0bb470
Fix cellular_status message definition ( #24662 )
...
* msg: fix cellular_status definition
12 * Update msg/CellularStatus.msg
* cellular_status: remove confusing reference to roaming
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-05-08 15:07:11 +02:00
Matthias Grob
87db286a88
pps_capture_params: clarify description ( #24641 )
2025-05-07 11:15:20 +10:00
Matthias Grob
8e89906b9a
docs: update link to navigator's publish_vehicle_command function
2025-04-25 15:32:47 +02:00
Matthias Grob
dfed3970d4
navigator: use reference instead of pointer to pass the vehicle command to publish
2025-04-25 15:32:47 +02:00
Matthias Grob
672d228d79
navigator: fill vehicle_command with float literals and comment what they stand for
2025-04-25 15:32:47 +02:00
Matthias Grob
da870c4dce
navigator: refactor vcmd -> vehicle_command
2025-04-25 15:32:47 +02:00
Matthias Grob
176783dbcb
navigator: clarify publish_vehicle_command() comment
2025-04-25 15:32:47 +02:00
Matthias Grob
f07ddda344
navigator: refactor publish_vehicle_cmd() -> publish_vehicle_command()
2025-04-25 15:32:47 +02:00
Matthias Grob
5f34474ecb
FlightTaskAuto: clean up parameter description and internal variable naming
2025-04-25 15:32:47 +02:00
Matthias Grob
9eaec534ab
mc_att_control_main: fix check for hover thrust estimate update ( #24750 )
2025-04-22 15:53:51 -08:00
Matthias Grob
9404783c99
EKF2: more accurate unaided yaw calculation
...
to fix the yaw unlocking in StickYaw
when giving a lot of roll and pitch input
2025-04-22 15:55:38 +02:00
Matthias Grob
d514cb4903
mc_att_control: use StickYaw class for Stabilized
...
to make yawing including reset and drift handling consistent with
Altitude and Position mode.
2025-04-22 15:35:26 +02:00
Matthias Grob
174147208e
Move StickYaw class into a globally available library
2025-04-22 15:35:26 +02:00
Matthias Grob
fa3f255301
SIH: write out vehicle types for clarity ( #24731 )
2025-04-16 14:03:34 +02:00
Matthias Grob
45d7f707d7
mc_att_control: remove useless subscription
...
added in 28fa044386
#19633
2025-04-04 13:23:49 +02:00
Matthias Grob
ddb9a5d0b9
gz_plugins: do not look for gz-transport12 (Gazebo garden) ( #24633 )
...
this tries to build the plugins and breaks the SITL build if you have
Gazebo garden isntalled even if you're not trying to simulate with
Gazebo.
2025-03-28 10:11:56 -08:00
Matthias Grob
a048a8e8a0
mavlink_receiver: refactor manual_control.throttle extraction to exactly match MAVLink output
2025-03-21 11:44:51 +01:00
Matthias Grob
faf4114a09
gz_bridge: add a localhost GZ_IP to avoid multicasting all messages to all networks
2025-03-18 10:52:34 +01:00
Matthias Grob
40c26e7880
17002_flightgear_tf-g2: translate FW_THR_CRUISE to FW_THR_TRIM ( #24523 )
...
See 461d0561b8
2025-03-17 17:18:46 +01:00
Matthias Grob
f69361f742
vtol_type: remove unused variable and function for deceleration pitch integral ( #24419 )
...
This functionality was moved to FlightTaskTransition and the variable was forgotten in 079b756f1b
2025-02-26 13:37:21 +01:00
Matthias Grob
ed9111ec49
Remove obstacle avoidance test with Gazebo classic and ROS 1
2025-02-18 14:33:16 +01:00
Matthias Grob
0b370ab5d3
Remove obstacle avoidance MAVLink Heartbeat check
2025-02-18 14:33:16 +01:00
Matthias Grob
4c2e69b2e6
estimatorCheck: only warn about GPS in modes that require a position but fail all modes if GPS required by configuration
2025-01-30 18:45:10 +01:00
Matthias Grob
f142363575
HealthAndArmingChecks: allow to warn in certain modes and fail arming checks in other modes
...
Previously it was only possible to warn in all modes and fail none or fail and warn in certain modes.
2025-01-30 18:45:10 +01:00
Matthias Grob
7e47605871
batteryCheck: separate event messages for low, critical and emergency battery states
2025-01-29 15:32:47 +01:00
Matthias Grob and Hamish Willee
165f644580
control_allocator: fix typo and use [0,1] instead of [0%, 100%] in slew rate description
...
Co-authored-by: Hamish Willee <hamishwillee@gmail.com >
2025-01-27 08:43:11 +01:00
Matthias Grob
c1cab2d4e0
control_allocator: add unit for slew rate and reword description
2025-01-27 08:43:11 +01:00
Matthias Grob
af062c85eb
Revert "FLightTaskAuto: limit nudging speed based on distance sensor"
...
This reverts commit 97cb933cff .
2025-01-21 09:59:47 +01:00
Matthias Grob
f693fab7c8
rc_update params: remove comment about default static mixing
...
Was added back in 2014:
7441efde47
2025-01-17 08:18:42 +01:00
Matthias Grob
e01fef755a
Control allocation: make heli rpm control an optional build flag disabled by default
...
to save flash.
The rpm capture dirver is also disabled on default releases
2025-01-15 14:35:35 +01:00
Matthias Grob
bc92008885
RpmControl: Better consider the case where there's no rpm measurement (anymore)
2025-01-14 14:55:34 +01:00
Matthias Grob
b584f8381c
Helicopter defaults: don't auto disarm so quickly after spoolup
2025-01-14 14:55:34 +01:00
Matthias Grob
5e2848312d
Commander: start timer for auto disarm after spoolup
2025-01-14 14:55:34 +01:00
Matthias Grob
2506bd3b5d
RpmControl: simplify the entire control logic
2025-01-14 14:55:34 +01:00
Matthias Grob
1c4325db6d
RpmControl: split into cpp source file fixing includes
2025-01-14 14:55:34 +01:00
Matthias Grob
2772ae7e0e
RpmControl: maximum rpm outliers are now caught by RpmCapture
2025-01-14 14:55:34 +01:00
Matthias Grob
ddd410e9d8
RpmControl: remove status message because it by now only contains redundant information
2025-01-14 14:55:34 +01:00
Matthias Grob
4050cedfaf
RpmControl: call local message instance after message name following the convention
2025-01-14 14:55:34 +01:00
Matthias Grob
cd0e04f8b0
RpmControl: name current timestamp now following the convention
2025-01-14 14:55:34 +01:00
Matthias Grob
940fe45ba7
ControlAllocator: introduce helicopter rotor rpm controller
2025-01-14 14:55:34 +01:00
Matthias Grob
50092a7f67
NuttX: update submodule to branch px4_firmware_nuttx-10.3.0+ with "FlexSPI allow RWW" merged
2025-01-14 10:32:00 +01:00
Matthias Grob
b042f2101f
system_params: clarify SYS_HAS_MAG description
...
after answering the questions:
Ah the value can be 2? Should I set the number of magnetometers the board has or include the external ones?
2025-01-08 21:24:00 -05:00
Matthias Grob
2968af7b63
Carzyflie: don't compile Navigator ADSB handling
...
I forgot to stage that change in the original change:
839010eeab
2024-12-23 21:55:08 -05:00
Matthias Grob
61961350f9
mavlink_receiver: don't publish out of range joystick input
...
Note that the MAVLink definition explicitly writes
"A value of INT16_MAX indicates that this axis is invalid."
which before this change was happily executed.
2024-12-19 17:59:41 +01:00
Matthias Grob
5cf85e320a
offboardCheck: acceleration setpoints only require vehicle attitude control
2024-12-19 17:58:38 +01:00
Matthias Grob
ad799b64b7
mc_pos_control: shorten parameter descriptions to a readable size
2024-12-19 16:12:43 +01:00
Matthias Grob
1239f0aaed
FlightTaskTransition: Comment why using invalid horizontal velocity works
2024-12-19 16:00:21 +01:00
Matthias Grob
34bcc277a5
FlightTaskTransition: keep high decelration when overshooting the transition target
2024-12-19 16:00:21 +01:00
Matthias Grob
11d7dd41fd
FlightTaskTransition: clean up and simplify
2024-12-19 16:00:21 +01:00
Matthias Grob
839010eeab
Navigator: make ADSB handling optional
2024-12-19 15:30:34 +01:00
Matthias Grob
c69f96ec04
ADSB: replace last excess hrt_absolute_time() in the loop
2024-12-19 09:35:38 +01:00
Matthias Grob
077ade4f8f
Add IO timer channel mode for RPM and also sync up rpi configuration to work with all these drivers
2024-12-19 07:30:25 +01:00
Matthias Grob
b85ad98a98
Use defines instead of hardcoded magic values for maximum number of output channels and rpm filter time constant
2024-12-19 07:30:25 +01:00
Matthias Grob
8ce6ad6662
camera_capture: refactor to simplify capture channel initialization
2024-12-19 07:30:25 +01:00
Matthias Grob
267fa06da8
RPMCapture: fix copyright year, improve comments
2024-12-19 07:30:25 +01:00
Matthias Grob
f4c8e0e35f
RPMCapture: fix dt should not have a minimum which would limit to 6000rpm
2024-12-19 07:30:25 +01:00
Matthias Grob
b7b384ab2e
RPMCapture: add back filter reset on timeout
2024-12-19 07:30:25 +01:00
Matthias Grob
d027f8bf39
RPMCapture: publish outliers in rpm message but don't update the filters and estimate
2024-12-19 07:30:25 +01:00
Matthias Grob
9ca06be4f5
RPMCapture: refactor to clarify scheduling
2024-12-19 07:30:25 +01:00
Matthias Grob
c406e0a3a2
RPMCapture: refactor to clarify when an interrupt happened
2024-12-19 07:30:25 +01:00
Matthias Grob
ec4ed75264
RPMCapture: define period as UINT32_MAX when timed out
2024-12-19 07:30:25 +01:00
Matthias Grob
825dc47fad
RPMCapture: fix pulses per revolution parameter name, description, type -> use module params
2024-12-19 07:30:25 +01:00
Matthias Grob
6241db74db
mavlink: stream RAW_RPM message for ONBOAR_LOW_BANDWIDTH
2024-12-19 07:30:25 +01:00
Matthias Grob
8486f74b2a
RPMCapture: much better timeout scheduling
...
Not timing out based on a random interval but based
on the time after the last inerrupt.
2024-12-19 07:30:25 +01:00
Matthias Grob
c463cc42d0
RPM: clean up message
2024-12-19 07:30:25 +01:00
Matthias Grob
a60591378c
RPMCapture: switch to PublicationMulti to be compatible with the existing rpm drivers
2024-12-19 07:30:25 +01:00
Matthias Grob
41b55724bc
RPMCapture: Detect rpm sensing timeout
2024-12-19 07:30:25 +01:00
Matthias Grob
1bcdb3ef8c
RPMCapture: add hardcoded rpm processing
...
Such that we can continue development on this part.
The implementation was already used before porting things into the RPM capture module.
2024-12-19 07:30:25 +01:00
Matthias Grob
ef823e5bb1
gz submodule: switch to hash on submodule main branch
...
after https://github.com/PX4/PX4-gazebo-models/pull/71 was merged
2024-12-18 18:06:37 +01:00
Matthias Grob
d5c9ea048e
LidarLitePWM: refactor static cast and comment
2024-12-12 13:50:17 +01:00
Matthias Grob
5010b01e2e
PCF8583: refactor 1e6f for 1000000.f
2024-12-12 13:50:17 +01:00
Matthias Grob
cbde9729e8
Airframes: remove unnecessary double newlines
2024-12-12 13:50:17 +01:00
Matthias Grob
d416cd2a6c
Commander: remove COM_POS_FS_DELAY
...
A user configurable delay for the internal `vehicle_local_position` seems confusing in my eyes. It's a different timeout for fixed-wing and multirotor which might have made sense earlier but not really anymore since the topic is constantly published by the estimator and not expected to time out on either vehicle type and the parameter description is also misleading because it's outdated.
2024-12-03 17:31:56 +01:00
Matthias Grob
7dcfeb2f77
PositionSmoothing: refactor _getMaxZSpeed()
2024-12-02 14:52:31 +01:00
Matthias Grob
092e5e8f9d
TrajectoryConstraints: clarify waypoint indexing
2024-12-02 14:52:31 +01:00
Matthias Grob
ce3fcd503f
navigator: unify timeout waiting for payload to execute mission item command
...
Used for winch, gripper, gimbal to reach the desired state before continuing the mission.
Ideally we'd have feedback from all these components and not just a feed-forward delay.
2024-11-28 20:23:36 +01:00
Matthias Grob
17c24bafbc
mission_block: simplify timeout check
2024-11-28 20:23:36 +01:00
Matthias Grob
ec1cf04bc9
mission_block: fix style, shorten debug message strings
2024-11-28 20:23:36 +01:00
Matthias Grob and chfriedrich98
a280d67be8
PID: Fix test to respect integral updates being applied in the next iteration
...
Co-authored-by: chfriedrich98 <125505139+chfriedrich98@users.noreply.github.com >
2024-11-26 16:13:48 +01:00
Matthias Grob and chfriedrich98
f9bcbc31ae
PID: protect from division by zero because of dt
...
Co-authored-by: chfriedrich98 <125505139+chfriedrich98@users.noreply.github.com >
2024-11-26 16:13:48 +01:00
Matthias Grob
b89c53d28c
Replace old pid library with new one
2024-11-26 16:13:48 +01:00
Matthias Grob
e047972cde
Add new C++ PID library
2024-11-26 16:13:48 +01:00
Matthias Grob
044d13635d
Commander: Change user facing messages to "Remote ID" instead of "OpenDroneID"
...
Apprently users reference the system like that and OpenDroneID
might already be too technical, less understandable to some.
2024-11-21 11:38:23 +01:00
Matthias Grob
bbc59dcde7
CollisionPrevention: prevent illegal array index with malicious obstacle_dsitance message
2024-11-21 11:36:03 +01:00
Matthias Grob
1410325c62
CollisionPrevention: follow parameter variable naming convention
2024-11-21 11:36:03 +01:00
Matthias Grob
30eec33e09
CollisionPrevention: slightly simplify _transformSetpoint()
2024-11-21 11:36:03 +01:00
Matthias Grob
399a8ad5b7
CollisionPrevention: fix early return and use unified bin count + array size 72
2024-11-21 11:36:03 +01:00
Matthias Grob
61d999073b
Remove FlightTaskManualPositionSmoothVel
...
The default implementation for multicopter Position mode is FlightTaskManualAcceleration.
The last missing piece was support for CollisionPrevention in this implementation.
2024-11-21 11:36:03 +01:00
Matthias Grob
2ef2911c36
Remove FlightTaskManualPositionSmoothVel
...
The default implementation for multicopter Position mode is FlightTaskManualAcceleration.
The last missing piece was support for CollisionPrevention in this implementation.
2024-11-21 11:36:03 +01:00