How to roll a ball by physic in RealityKit

I decided to use a club to kick a ball and let it roll on the turf in RealityKit, but now I can only let it slide but can not roll.

I add collision on the turf(static), club (kinematic) and the ball(dynamic), and set some parameters: radius, mass.

Using these parameters calculate linear damping, inertia, besides, use time between frames and the club position to calculate speed. Code like these:

                let radius: Float = 0.025
                let mass: Float = 0.04593 // 质量,单位:kg
                var inertia = 2/5 * mass * pow(radius, 2)

                let currentPosition = entity.position(relativeTo: nil)
                let distance = distance(currentPosition, rgfc.lastPosition)
                let deltaTime = Float(context.deltaTime)
                let speed = distance / deltaTime
                
                let C_d: Float = 0.47 //阻力系数
                let linearDamping = 0.5 * 1.2 * pow(speed, 2) * .pi * pow(radius, 2) * C_d //线性阻尼(1.2表示空气密度)

                entity.components[PhysicsBodyComponent.self]?.massProperties.inertia = SIMD3<Float>(inertia, inertia, inertia)
                entity.components[PhysicsBodyComponent.self]?.linearDamping = linearDamping

// force
                let acceleration = speed / deltaTime
                let forceDirection = normalize(currentPosition - rgfc.lastPosition)
                
                let forceMultiplier: Float = 1.0

                let appliedForce = forceDirection * mass * acceleration * forceMultiplier
                entityCollidedWith.addForce(appliedForce, at: rgfc.hitPosition, relativeTo: nil)
                

Also I try to applyImpulse but not addForce, like:

                let linearImpulse = forceDirection * speed * forceMultiplier * mass

No matter how I adjust the friction(static, dynamic) and restitution, using addForce or applyImpulse, the ball can only slide. How can I solve this problem?

How to roll a ball by physic in RealityKit
 
 
Q