Hello everyone,
I’m running a PX4 SITL simulation and have hit a roadblock—hoping to get some advice.
Issue: My custom VTOL cannot generate enough thrust to take off.
I added the gz-sim-multicopter-motor-model-system
plugin to my SDF file and calculated all constants and coefficients based on an MIT paper. In Gazebo SIM, the props spin, but no matter how much I increase throttle, the vehicle never gains altitude. I’ve concluded it simply isn’t producing enough thrust, but I can’t find a fix.
The total mass of all links is about 2.1 kg, which is even lighter than our real prototype. Hand-calculations using the plugin’s values also indicate that thrust should be sufficient.
I have tried every likely workaround, but it still won’t lift off:
- Set each rotor link’s
<self_collide>
to0
in the SDF - Added lift/drag plugins (they did nothing; now commented out)
- Tweaked the airframe in QGroundControl (there are no QGC parameters that directly change thrust)
- Calculated and injected inertial moments from the CATIA model
- Changed the SDF version to test plugin compatibility
- Added
<velocity_decay/>
(copied from the PX4 tiltrotor SDF; its effect is unclear) - Expanded the joint limits between each rotor and the base link
- Set
<rotorVelocitySlowdownSim>
to1
in the motor model plugin (still applied) - Adjusted the mesh scale in each rotor’s
<collision>
tag (started at0.001
, now0.01
; no effect) - Verified via
gz topic
that velocity commands are indeed being published
+11. I checked the direction of the propellers, and they are properly set to generate lift.
I’m completely stumped at this point…
The only differences between the PX4 default tiltrotor SDF and mine are link structure, collision geometry, and scale. Below I’ve attached the three critical blocks from my SDF—(1) the plugin section, (2) the base‐link-to‐rotor joint, and (3) the rotor link definition.
Any insights or suggestions would be greatly appreciated. Thank you!