Using rigidbody to move the player

I’m trying to use rigidbody.velocity to move my player, however it doesn’t seem to work at all.
Here is the rigidbody settings on the player:
alt text
Here are the input settings:
alt text
And here is the file controlling player movement:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour {

	public Rigidbody rb;

	void Start () {
		rb = GetComponent<Rigidbody>();

	}

	void Update () {
		Vector3 desiredVelocity = Input.GetAxis("Horizontal") * transform.right + Input.GetAxis("Vertical") * transform.forward;
		rb.velocity = Vector3.Lerp(rb.velocity, desiredVelocity, Time.deltaTime * 5f);

	}
}

Can someone explain to me why this doesn’t work?

Use this:

Rigidbody rb;
public float speed;

void Start () {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate () {
float mH = Input.GetAxis ("Horizontal");
float mV = Input.GetAxis ("Vertical");
rb.velocity = new Vector3 (mH * speed, rb.velocity.y, mV * speed);
}

You can use this code to move player

    void FixedUpdate ()
    {
        float moveHorizontal = Input.GetAxis ("Horizontal");
        float moveVertical = Input.GetAxis ("Vertical");

        Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);

        rb.AddForce (movement * speed);
    }

https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial/moving-player?playlist=17141

Is there no way to move the player in a “snappy” fashion, without the slow responsiveness?