Collisions don't have time to be calculated

In my 2d game with the top view I have a player and walls with colliders.
When a player runs into a wall, as if it begins to flow through it, but then the collider on the wall pushes him back. Sometimes it happens that a player goes through walls.

Sometimes it so happens that if you go to the wall, as described above, and then stop to go, the player flies with great speed in the opposite direction.

I think I need to correctly configure Time settings.
Here is my configures:

  • Fixed timestep: 0.002

  • Maximum allowed time: 0.3333333

  • Time Scale: 1

Maybe you’d use Rigidbody.MovePosition (Unity - Scripting API: Rigidbody.MovePosition)

instead Transform.Translate (Unity - Scripting API: Transform.Translate)

and for character you could set rigidbody collision detection to continuos.
Check for interpolation enum, too.