Game object rotates but does not move

I have created a project trying to follow the red ball game tutorial and the tank tutorial. I have a game object which I am trying to move like the tank. But, I am only able to get the rotation right. When I try to move forward or backward nothing happens or at least very little (when watching the position values while trying).

If this is not related to the controller, then do you have some suggestions to what else might be wrong. Only other object are a plane (ground) and a MapBox map.

I have setup the controller like this:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShipController : MonoBehaviour {
	public int m_PlayerNumber = 1;              // Used to identify which tank belongs to which player.  This is set by this tank's manager.
	public float m_Speed;                 // How fast the tank moves forward and back.
	public float m_TurnSpeed;            // How fast the tank turns in degrees per second.


	private string m_MovementAxisName;          // The name of the input axis for moving forward and back.
	private string m_TurnAxisName;              // The name of the input axis for turning.
	private Rigidbody m_Rigidbody;              // Reference used to move the tank.
	private float m_MovementInputValue;         // The current value of the movement input.
	private float m_TurnInputValue;             // The current value of the turn input.
	private float m_OriginalPitch;              // The pitch of the audio source at the start of the scene.


	private void Awake ()
	{
		m_Rigidbody = GetComponent<Rigidbody> ();
	}


	private void OnEnable ()
	{
		// When the tank is turned on, make sure it's not kinematic.
		//m_Rigidbody.isKinematic = false;

		// Also reset the input values.
		m_MovementInputValue = 0f;
		m_TurnInputValue = 0f;
	}


	private void OnDisable ()
	{
		// When the tank is turned off, set it to kinematic so it stops moving.
		//m_Rigidbody.isKinematic = true;
	}


	private void Start ()
	{
		// The axes names are based on player number.
		m_MovementAxisName = "Vertical";// + m_PlayerNumber;
		m_TurnAxisName = "Horizontal";// + m_PlayerNumber;
	}


	private void Update ()
	{
		// Store the value of both input axes.
		m_MovementInputValue = Input.GetAxis (m_MovementAxisName);
		m_TurnInputValue = Input.GetAxis (m_TurnAxisName);
	}


	private void FixedUpdate ()
	{
		// Adjust the rigidbodies position and orientation in FixedUpdate.
		Move ();
		Turn ();
	}


	private void Move ()
	{
		// Create a vector in the direction the tank is facing with a magnitude based on the input, speed and the time between frames.
		Vector3 movement = transform.forward * m_MovementInputValue * m_Speed * Time.deltaTime;


		// Apply this movement to the rigidbody's position.
		m_Rigidbody.MovePosition(m_Rigidbody.position + movement);
	}


	private void Turn ()
	{
		// Determine the number of degrees to be turned based on the input, speed and time between frames.
		float turn = m_TurnInputValue * m_TurnSpeed * Time.deltaTime;

		// Make this into a rotation in the y axis.
		Quaternion turnRotation = Quaternion.Euler (0f, 0f, turn);

		// Apply this rotation to the rigidbody's rotation.
		m_Rigidbody.MoveRotation (m_Rigidbody.rotation * turnRotation);
	}
}

The problem was that I did rotate the game object so forward was actually up. And as I had locked movement in y, then it did not move. When updating the script to move the game object up, in stead of forward… it works, even though it is not pretty.