Rigidbody.MovePosition doesn't look smooth

My plan is that a gameobject with a rigidbody attached to it should follow a target object.

In my script the gameobject does follow the target but it doesn’t look smooth.

Is there any other way to make a rigidbody smoothly follow a gameobject?
I tried using Vector3.MoveTowards and it looks better but the object doesn’t collide with other objects.
Thats not what I need.

    private void FixedUpdate()
    {
        if (isCarrying == true)
        {
            Vector3 target = followTarget.transform.position;
            currentItem.GetComponent<Rigidbody>().MovePosition(target);
        }

    }

Hello, maybe I didn’t understand what you want but what about transform.Translate ?

The collider would still work.

[SerializeField]
private Transform target;
public float speed = 0.2f;

private void FixedUpdate()
{
    transform.Translate((target.position - transform.position) * Time.deltaTime * speed);
}

Otherwise, have you the interpolation enabled for your rigidbdy? According to the documentation, it is important in order to have smooth moves.

EDIT

AS SpaceManDan said, with the code above, there could be strange results with the physics (mainly during collisions). If you want to make the movement of your rigidbody with a nice collision handling, then you could use something like this :

Vector3 direction = target.position - transform.position;
        rigidBody.velocity = ((target.position - transform.position) * Time.deltaTime * speed);

But this is only one of the many ways of impact the velocity of the rigidbody. I recommend you to take a look at there.
And do not forget to enable the interpolation on your rigidbody.

Regards,

try:

currentItem.GetComponent<Rigidbody>().AddForce(target - gameObject.transform.position, ForceMode.Acceleration);