PX4-Autopilot
PX4-Autopilot copied to clipboard
Collision Prevention for manual flight mode
Solved Problem
Ports and extends the current collision prevention algorithm to FlightModeManualAcceleration
Associated PR's
- [x] https://github.com/PX4/PX4-gazebo-models/pull/52
- [ ] https://github.com/PX4/PX4-user_guide/pull/3364
Solution
The algorithm has two parts, velocity compensation, and constraining of the commanded acceleration.
Velocity compensation
For this i have ported over the existing methods from the velocity based collision prevention method. and transformed the velocity into an acceleration by subtracting the velocity set-point from the collision prevention velocity and applying a proportional gain ( MPC_XY_VEL_P_ACC ) to it.
Acceleration constraining
For this I'm calculating the minimal distance to the obstacle, and scaling it quadratic in the range of [0,1] distances proportional to the maximum velocity.
hereby its important to note that scaling currently only happens in surface-normal direction, which means that the drone is still able to move freely tangentially.
whereby the acceleration constraining is done in the distance between CP_DIST and MPC_VEL_MANUAL / MPC_XY_P
Drawbacks
The main drawback of this approach is that it might allow collision causing accelerations if flying into inside corners, as when your closer to one wall than the other, you can command maximum acceleration into the other wall. might introduce normal and tangential damping parameters to solve this.
Changelog Entry
For release notes:
Feature: Collision prevention for FlightModeManual Acceleration
New parameter: TBD
Documentation: Need to clarify page ... / done, read docs.px4.io/...
Drawbacks
- Difficulty with inside corners
- If velocity is not close to set point, might cause crashes
Alternatives
- dont use the max velocity and position error gain for the scaling factor and use a new normal and tangential scaling parameter.
Test coverage
- Tested in SITL with a 2D scanning lidar
- Hardware Testing planned
Context
https://github.com/user-attachments/assets/594d7011-10b8-49f8-ab40-dfc65866d363
@Claudio-Chies is this something I can pull down to flight test? Or is it needing more time in the SITL?
@dirksavage88 it should be ready to test, the only thing i haven't tested is how non-default gains in the position and velocity controller change the CP behavior
I've recreated this issue in sim
The main drawback of this approach is that it might allow collision causing accelerations if flying into inside corners, as when your closer to one wall than the other, you can command maximum acceleration into the other wall.
might introduce normal and tangential damping parameters to solve this.
This is kind of a big issue in indoors with an inside corner. Is there a way to maybe adapt the yaw setpoint to prevent ping-ponging between inside corner walls? We can yaw out of the corner and then revert to adapting the setpoint?
@dirksavage88
big issue in indoors with an inside corner. Is there a w
Yea, which is why i mentioned it. i just added a commit which looks at the distance in the tangential direction and then scales the tangential component based on that distance. this should fix this issue.
I rebased on the main branch and removed the submodule update which is to be reviewed here: https://github.com/PX4/PX4-Autopilot/pull/23879 since it caused incompatibility with the simulation test setup.
Simulation tests can now be ran using make px4_sitl gz_x500_lidar_walls (and gz installed, I have 22.04 and gz-harmonic)
@MaEtUgR can we change this to be a param? https://github.com/PX4/PX4-Autopilot/blob/6764c149d55e3992d4da9bcb05fc2db0d7cb573b/src/lib/collision_prevention/CollisionPrevention.cpp#L46
The original collision prevention used point-lidar sensors with low resolution, but now we have advanced rotating lidars with <1 degree resolution per sample, so being able to set to the lowest increment value of 5 makes sense
@dirksavage88
big issue in indoors with an inside corner. Is there a w
Yea, which is why i mentioned it. i just added a commit which looks at the distance in the tangential direction and then scales the tangential component based on that distance. this should fix this issue.
I just tested with subtfinals on an inside corner and it no longer ping pongs between the corner walls, but it does get stuck. But overall much better. I think the lidar model on the x500 does not have rear facing coverage
can we change this to be a param?
This should rather be dependent on the input interface resolution https://github.com/PX4/PX4-Autopilot/blob/4f00df60ae7f20d747c9613e631d075e3a7ed3ce/msg/ObstacleDistance.msg#L17 or if that's too complicated we just run with the highest resolution and just fill the unknown directions accordingly when the resolution is lower.
@MaEtUgR we have the obstacle distance increment set to 5 deg on the SF45 driver currently. However @Claudio-Chies is wanting to change it to 10 to match the collision prevention lib.
@dirksavage88 I see. I'd say let's change both to 5° and check it doesn't break things. Ideally, collision prevention would adapt to the input data but I assume it doesn't explode to run through the 72 bins.
@dirksavage88 sounds good, then let's switch the driver and Collision Prevention to 5. my assumption was that it was 10 because of computational resources constraints and not because of sensor hardware limitations.
Well well, your commit breaks the unit tests and mine breaks the unit test build 🙈 Let's roll back and fix. I have multiple suggestions already but I'd like to have constantly passing unit tests as a first barrier to not break things.
I fixed all my commits but had to remove yours which both line changes broke the unit tests. Here's it for reference: 6be5dd0c5965bd109337df88346fe72b67e8ab93 I can add it back tomorrow making collision prevention use 72 bins again but have to check if anything is hardcoded in the tests.
Note, this will need a docs update (but should be fairly easy)
One open point for discussion:
- should we expand the collision_constraint message to differentiate between the velocity compensation and setpoint scaling? It might help with debugging to see where what contributed how much to the constrained setpoint?
FLASH Analysis
px4_fmu-v5x
FILE SIZE VM SIZE
-------------- --------------
+1.4% +344 [ = ] 0 [Unmapped]
-0.0% -344 -0.0% -344 .text
+28% +1.23Ki +28% +1.23Ki ../../src/lib/collision_prevention/CollisionPrevention.cpp
+8.4% +158 +8.4% +158 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+4.1% +146 +4.1% +146 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
+7.7% +114 +7.7% +114 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+0.8% +58 +0.8% +58 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+1.1% +50 +1.1% +50 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
+6.2% +50 +6.2% +50 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+1.1% +40 +1.1% +40 ../../src/modules/flight_mode_manager/tasks/Orbit/FlightTaskOrbit.cpp
-0.3% -32 -0.3% -32 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-0.0% -62 -0.0% -62 [section .text]
-0.1% -94 -0.1% -94 ROMFS/nsh_romfsimg.c
-7.4% -224 -7.4% -224 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -400 [DEL] -400 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -1.38Ki [DEL] -1.38Ki ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -360 [ = ] 0 .debug_aranges
-0.1% -704 [ = ] 0 .symtab
+39% +320 [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+53% +128 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+15% +96 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+9.3% +64 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Orbit/FlightTaskOrbit.cpp
+3.0% +32 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
-0.0% -48 [ = ] 0 [section .symtab]
[DEL] -192 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
-23.2% -208 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -896 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -1.03Ki [ = ] 0 .debug_frame
-0.2% -1.36Ki [ = ] 0 .strtab
+39% +437 [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+22% +158 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Orbit/FlightTaskOrbit.cpp
+47% +152 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+12% +87 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+2.7% +48 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
-0.1% -108 [ = ] 0 [section .strtab]
-26.7% -312 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -329 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -1.49Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.1% -2.05Ki [ = ] 0 .debug_str
+34% +1.03Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+1.1% +750 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
+13% +87 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+1.7% +48 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+8.8% +37 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAltitudeSmoothVel/FlightTaskManualAltitudeSmoothVel.cpp
+29% +15 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingZ.cpp
+1.0% +10 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/FlightTask/FlightTask.cpp
-0.6% -1 [ = ] 0 ../../src/lib/motion_planning/HeadingSmoothing.cpp
-4.4% -14 [ = ] 0 ../../src/lib/rtl/rtl_time_estimator.cpp
-3.7% -18 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
-0.0% -30 [ = ] 0 [section .debug_str]
[DEL] -73 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
-2.7% -841 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-6.7% -1.41Ki [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -1.64Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -4.06Ki [ = ] 0 .debug_abbrev
-0.2% -4.06Ki [ = ] 0 armv7-m/arm_vectors.c
-0.3% -4.18Ki [ = ] 0 .debug_ranges
+16% +832 [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+4.2% +160 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+2.2% +48 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+2.0% +48 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+0.8% +40 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+2.7% +24 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
-1.0% -40 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
-0.6% -80 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-10.5% -328 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-0.1% -352 [ = ] 0 [section .debug_ranges]
[DEL] -584 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -3.95Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -8.43Ki [ = ] 0 .debug_line
+15% +1.68Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+7.5% +556 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+6.6% +407 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+5.8% +407 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+1.8% +380 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+1.0% +150 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
+0.4% +46 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
-0.4% -111 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-4.0% -312 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-3.8% -398 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -2.25Ki [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -8.96Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.3% -14.7Ki [ = ] 0 .debug_loc
+26% +4.97Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+3.6% +539 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+5.4% +457 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+5.2% +457 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+1.5% +350 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+0.0% +14 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
-0.7% -340 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-4.0% -676 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
-8.1% -992 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-0.2% -2.46Ki [ = ] 0 [section .debug_loc]
[DEL] -2.60Ki [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -14.4Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.3% -83.8Ki [ = ] 0 .debug_info
+12% +9.18Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+8.6% +7.10Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+7.7% +6.30Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+7.8% +6.30Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+4.1% +5.64Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+2.1% +2.69Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
+0.3% +327 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
-0.5% -820 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-1.6% -1.49Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-1.7% -2.17Ki [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -18.9Ki [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -98.0Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -120Ki -0.0% -344 TOTAL
px4_fmu-v6x
FILE SIZE VM SIZE
-------------- --------------
+0.5% +335 [ = ] 0 [Unmapped]
-0.0% -336 -0.0% -336 .text
+28% +1.23Ki +28% +1.23Ki ../../src/lib/collision_prevention/CollisionPrevention.cpp
+8.4% +158 +8.4% +158 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+4.1% +146 +4.1% +146 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
+7.7% +114 +7.7% +114 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+0.8% +58 +0.8% +58 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+1.1% +50 +1.1% +50 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
+6.2% +50 +6.2% +50 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+1.1% +40 +1.1% +40 ../../src/modules/flight_mode_manager/tasks/Orbit/FlightTaskOrbit.cpp
-0.3% -32 -0.3% -32 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-0.0% -54 -0.0% -54 [section .text]
-0.1% -94 -0.1% -94 ROMFS/nsh_romfsimg.c
-7.4% -224 -7.4% -224 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -400 [DEL] -400 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -1.38Ki [DEL] -1.38Ki ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -360 [ = ] 0 .debug_aranges
-0.1% -704 [ = ] 0 .symtab
+39% +320 [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+53% +128 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+15% +96 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+9.3% +64 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Orbit/FlightTaskOrbit.cpp
+3.0% +32 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
-0.0% -48 [ = ] 0 [section .symtab]
[DEL] -192 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
-23.2% -208 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -896 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -1.03Ki [ = ] 0 .debug_frame
-0.2% -1.36Ki [ = ] 0 .strtab
+39% +437 [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+22% +158 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Orbit/FlightTaskOrbit.cpp
+47% +152 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+12% +87 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+2.7% +48 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
-0.1% -108 [ = ] 0 [section .strtab]
-26.7% -312 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -329 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -1.49Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.1% -2.05Ki [ = ] 0 .debug_str
+34% +1.03Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+1.1% +750 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
+13% +87 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
+2.0% +58 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+8.8% +37 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAltitudeSmoothVel/FlightTaskManualAltitudeSmoothVel.cpp
+29% +15 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingZ.cpp
+1.0% +10 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/FlightTask/FlightTask.cpp
-0.6% -1 [ = ] 0 ../../src/lib/motion_planning/HeadingSmoothing.cpp
-4.4% -14 [ = ] 0 ../../src/lib/rtl/rtl_time_estimator.cpp
-3.7% -18 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
-0.0% -30 [ = ] 0 [section .debug_str]
[DEL] -73 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
-2.7% -841 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-6.7% -1.41Ki [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -1.65Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -4.06Ki [ = ] 0 .debug_abbrev
-0.2% -4.06Ki [ = ] 0 armv7-m/arm_vectors.c
-0.3% -4.18Ki [ = ] 0 .debug_ranges
+16% +832 [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+4.2% +160 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+2.2% +48 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+2.0% +48 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+0.8% +40 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+2.7% +24 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
-1.0% -40 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
-0.6% -80 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-10.5% -328 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-0.1% -352 [ = ] 0 [section .debug_ranges]
[DEL] -584 [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -3.95Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.2% -8.43Ki [ = ] 0 .debug_line
+15% +1.68Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+7.5% +556 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+6.6% +407 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+5.8% +407 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+1.8% +380 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+1.0% +150 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
+0.4% +46 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
-0.4% -111 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-4.0% -312 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-3.8% -398 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -2.25Ki [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -8.96Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.3% -14.7Ki [ = ] 0 .debug_loc
+26% +4.97Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+3.6% +539 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+5.4% +457 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+5.2% +457 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+1.5% +337 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
-0.7% -340 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-4.1% -689 [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
-8.1% -992 [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-0.2% -2.47Ki [ = ] 0 [section .debug_loc]
[DEL] -2.60Ki [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -14.4Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.3% -83.4Ki [ = ] 0 .debug_info
+12% +9.18Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Utility/StickAccelerationXY.cpp
+8.7% +7.10Ki [ = ] 0 ../../src/lib/collision_prevention/CollisionPrevention.cpp
+7.7% +6.30Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAccelerationSlow/FlightTaskManualAccelerationSlow.cpp
+7.9% +6.30Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualAcceleration/FlightTaskManualAcceleration.cpp
+4.1% +5.64Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/Auto/FlightTaskAuto.cpp
+2.1% +2.69Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/AutoFollowTarget/FlightTaskAutoFollowTarget.cpp
+0.3% +327 [ = ] 0 ../../src/modules/flight_mode_manager/FlightModeManager.cpp
-0.5% -820 [ = ] 0 ../../src/modules/mc_pos_control/MulticopterPositionControl.cpp
-1.6% -1.49Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPosition/FlightTaskManualPosition.cpp
-1.7% -2.17Ki [ = ] 0 src/modules/flight_mode_manager/FlightTasks_generated.cpp
[DEL] -18.9Ki [ = ] 0 ../../src/lib/motion_planning/ManualVelocitySmoothingXY.cpp
[DEL] -97.5Ki [ = ] 0 ../../src/modules/flight_mode_manager/tasks/ManualPositionSmoothVel/FlightTaskManualPositionSmoothVel.cpp
-0.3% -120Ki -0.0% -336 TOTAL
💵 To receive payouts, sign up on Algora, link your Github account and connect with Stripe.