Flying tank bug

urc_s04_programmatic_sideways_friction

#1

The flying tank bug is a result of differential forces on the tank due to how we’re moving our tank. Currently, we apply Force to the track location which is at the bottom of the tank. Pushing the tank like this causes more force at the bottom than the top creating torque. While held to a level surface (by gravity in our case), the force applied to Z-axis is absorbed by surfaces (effectively limiting our force 2-Dimensionally). Once the tank is no longer level (has enough forward force and torque to overcome gravity), applied force affects the Z-axis lifting the tank (3-D force). You could see the effects of this you had double speed on the tank (Using Stick and Triggers together), the tank would start doing a wheelie. Attempting to turn (apply negative force on one track and positive force on the other) greatly increases torque. This can be handled the same way we solved sideways slippage, but vertically and only applying force negatively (effectively increasing gravity).


#2

Thanks for this insight, Brian. Do you have a patchset or code snippet you can share which fixes this?