Instantiating a prefab with velocity

I am pretty new to Unity and am trying to make an Infinite runner game. I have the floor generating randomly, however I cannot get the floor to move at all, I have tried using both addForce and adding a velocity to the rigidbody, bot neither have worked.

public Transform mainPrefab;
public Rigidbody floorSpeed;
public Vector3 startPosition;
public Vector3 nextPosition;
public int numberOfObjects;

private Queue<Transform> objectQueue;

void Start	() {
	objectQueue = new Queue<Transform>(numberOfObjects);
	nextPosition = startPosition;
	for (int i = 0; i < numberOfObjects; i++){
		Transform o = (Transform)Instantiate(mainPrefab);
		o.localPosition = nextPosition;
		nextPosition.z += o.localScale.z*5;
		objectQueue.Enqueue (o);
		floorSpeed = o.GetComponent<Rigidbody>();
		floorSpeed.AddForce(0, 0, -1);
	}
}

I presume the floor is set to Kinematic? Otherwise it would be knocked about by the physics engine. You can use MovePosition and MoveRotation to move that object.

Also, you should handle these calls in FixedUpdate as its part of the physics engine.