Very buggy body velocity

Hello, I’m trying to make a game about tanks. I got to the point of creating and setting up the movement physics, and I had a problem. When a tank crashes into a wall, it starts to get very buggy.

I did translation using BodyVelocity, and it doesn’t work very well… Tell me how this can be implemented differently, or how to fix these problems…
I would be very grateful!

Some materials:

Video:

Explorer:
image

Part of script:

local newVelocity = movingBase.CFrame:VectorToWorldSpace(Vector3.new(0, 0, currentSpeed))
BodyVelocity.Velocity = newVelocity