First, we are going to clone the wheels, this is for helping us to define where the mesh's vertices are going to be. Then we'll work only with one wheel.
Select the frame and the Wheel (the big one) and hide unselected. Copy the wheel in the same place (ctrl+V) select copy in the dialog Box and press OK, then without unselect this copy, place it to the opposite side of the frame shifting its x-position from negative to positive value (this is to make sure its position is exactly opposite). Then, Select both wheels and drag-copy them to the lower side of the screen, calculate a short distance from the first wheels, having in mind we're going to have 5 wheels each side along the frame. In the Clone Options Dialog select 4 in the Number of copies spinner.
Now let's create a 4 length seg by 1 width seg plane. Before drawing it into the viewport, configure the snap tool to snap to pivots. Right click over the Snaps Toggle button, in the Grid and Snap Settings Dialog check Pivot. Now, Hide the frame and from the top view create the plane snapping from the top-left wheel to the bottom-right wheel. Name this plane as ProjectedPlane.
Set zero as the plane's z-position, the plane should now be in the bottom of the wheels. Also add a shell modifier to it with zero in the Inner and Outer Amount. Without this modifier the projection isn't going to work, because the conform space warp doesn't conform open meshes.
After this, we're going to work over the first wheel, so delete the rest of them. It seems like a waste of time make the copies and then deleting them. But, they were useful to define from now the wheels' position and enabled us to create the projected mesh without having any future troubles with its vertices position.
Create a point helper with a size of 0.3 and the display form that you like, I choose a box.
Snap it to the first plane's vertex (the vertex where the first wheel is going to be constrained), as we did before snapping to pivots we can do the same snapping to vertices, Name this helper as "Helper_Attached_01", this point will help us to constraint the wheels to the plane's vertices. It'll be attached to the plane's vertex using an attachment constraint, this controller attach nodes to mesh faces, but we can use it as a vertex attachment constraint just defining the point's position over the face.
Rotate the wheel's pivot (with Affect Pivot Only, Hierarchy Panel) 90 degrees over its local y-axis. This is to make sure that our wheel's rotation will work fine setting its spinning over the x-axis which is the first one in the Axis order.
Then, Link the Wheel to the Helper_Attached_01 (Helper_Attached_01 as parent).
Select the Helper_Attached_01 and Add an Attachment constraint to it, select the plane as a target. The point now is in other position; we have to configure its attachment constraint. In the motion panel under the Attachment Properties Rollout set the next parameters: Face=7, A=1, B=0. The face is where the point we'll be attached and A and B are the barycentric coordinates, useful to place the point just over its respective vertex. Make sure the "Align to Surface" property is checked.
If the wheel has a wrong orientation you have to rotate the helper to fix it, just make sure the wheel has the orientation that it had before.
If the Face, A and B values doesn't work for you, you could change them until you get the right point's position.
Finally we're going to create the conform space warp and project the plane. Create panel -> Space warps -> Geometric/Deformable -> Conform. Draw it from the top view with any size you like, it must be pointing downward. Unhide by name the Ground. In the modify panel choose the Ground as Warp to Object and set zero the Standoff Distance (This parameter defines an offset position from the Mesh)
Bind the projected plane to this space warp with the Bind to Space warp tool. And this is it for now! Our first part of the rig is finished, now we have a modifier over the Projected Plane projecting it over the ground's surface. If we move our projected plane we can see how it adapts itself in real time.
Auto Spinning Wheels
First of all, we need to create our tank's route, so we can use the distance along this path to define the wheel's spinning. We cannot use only the tank's current position, because the wheel's spinning depends on the distance travelled by the tank. For example, if our tank goes from the point A to the point C its wheel's rotation in the point C will be different if it goes from A to B and then to C, not to matter that it's finally in the same place, that's because the distance is different. So, if we create a spline as its path, we may know exactly the distance travelled by the tank along this path.
Unhide by name the "Path" and the "Control_Main" objects, we're going to use this last one as the point that is going to travel along the path. Select the Helper_Attached_01 and link it to the ProjectedPlane, then link the ProjectedPlane to the Control_Main, the hierarchy now goes as shown in the picture below.
Align the ProjectedPlane to the Control_Main, make sure to check all position and orientation axis and that both objects are in pivot point align. The plane now looks weird, but we'll fix that in the next step.
With this hierarchy we make sure the wheel and the projectedPlane will follow the Control_Main's rout and its orientation
Select the Control_Main and add it a Path_constraint, select the Path spline as target. We need to configure some settings in the motion panel. The point needs to "Follow" the path and its axis must to be "z" and flipped. With these settings the projectedPlane has a right shape, because it is now parallel to the ground.