Колёса цепляются за кузов — в WheelJoint2D укажи Connected Body и выключи Enable Collision, трение кузова в 0 тогда не нужно.
Отскоки скорее всего из-за разницы масс: 2000 против 20-40 это 50-100 к 1, на таком соотношении через joint решатель нестабилен. Сделай кузов ~20, колёса по ~2 и подбери заново. Центр тяжести задаётся в локальных координатах кузова:
rb.centerOfMass = new Vector2(0f, -0.25f); (ниже геометрического центра). Bounciness у материалов в 0, Collision Detection = Continuous.
Параметры: motorSpeed — целевая угловая скорость колеса (град/с), maxMotorTorque — предел момента. baseSpeed переводится как
motorSpeed = baseSpeed / wheelRadius * Mathf.Rad2Deg
, baseAcceleration уходит в maxMotorTorque, а топливо к joint отношения не имеет. Подвеска для старта: frequency 3-5, dampingRatio 0.7-0.9.