I forgot to say before, welcome to the forums and I like your model.
I hope you don’t take offence but I am going to throw a long list of things at you. Keep in mind that I am trying to help, not beat you over the head. Hopefully others can learn a trick or two as well.
First, things first. This model is made up with many mesh item. (which is fine, but…) Almost all of them have some level of unapplied location, rotation or scale. If you look in the Transform channels you can see that some items have values other then zero for location and rotation and values other then 1 for scale.
For an example of what this means, and why it’s a “Bad Thing”, select all of you meshes (in your original file, not mine) and use the hotkeys Alt R, Alt S and Alt G. Your AT-AT will crumble. Ctrl Z to undo the damage. (multiple times)
This is not a good thing. To fix this select all your mesh items, Ctrl A, Apply Location, Rotation and Scale.
You will need to do the same to your armature as it looks like you scaled this as well. Select it in Object Mode, Ctrl A, Location, rotation, Scale.
All of your items and your armature should read: 0,0,0 for x,y,z location and rotation, and 1,1,1 for x,y,z, scale.
Here is a pic of a before and after.
Look at all of the orange dots. These are the origin points of your meshes and armature. The second image you will notice that there is only one dot. This is because all the items now have an origin point set at ground zero of the scene. They also have no location rotation or scale values.
With this setup, you can no longer destroy the meshes by clearing the transforms. The meshes and armature also share the same size and position in space.
Next, rigging tips.
I think it’s a bad practice to use empties in rigging especially when you are already using an armature. An armature has an advantage over all other items within Blender and that advantage is, you can have multiple bones within that armature, but it only requires one action to move those bones. If you had an empty as a control, you would need an action for every control that you set up this way. This complicates animation needlessly. It’s also pointless as a bone can do anything that any empty can do, and much more.
(I know! My good friend, Clockmender used them in the file he gave you. I’ll have a talk with that dude.)
You were only using them as objects to point constraints at, so in this case it’s not too big of a deal, but, one of your goals was to animate this object, so stick with bones and armatures while rigging. It will help down the road.
While on the subject of bones, one thing I noticed was you often had quaternion rotations selected for a bones rotation. (This is the default rotation type assigned to bones when you add them.) Then, you locked off two of the three axes. This will also complicate your animations. Quaternions use four values. W,X,Y and Z. If your bone will only be rotating on one axis, change the rotation type to Euler. You will notice in the drop down that there are many choices. Pick one that starts with the rotation that you are using.
For example, if the bone will only rotate in X, pick Euler XYZ. Only rotating in Z, pick Euler ZYX.
Quaternion rotations are great if used in the right situation. Anytime you have a bone that will be rotating on multiple axes, pick quaternions. The reason you do not want them here is, you will need to polish the W and X values in the graph editor, instead of just the X. Sometimes you can get into trouble with Euler rotations if you need a bone to rotate on multiple axes. They can sometimes cause gimbal lock. Quaternions don’t have this issue and will NEVER EVER cause gimbal lock. (mathematicaly impossible).
I would suggest reading up on Quaternion and Euler rotations and get a good understanding of each. It’s harder to explain then to understand if you have the right teacher. (My teacher was Nathan Vegdahl, author of Humane Rigging. A must watch for riggers, IMHO. Search for it.)
One other thing I noticed is your bones all had the Deform option ticked in Bone Properties. (See image.)
The only bones that need this checked are bones that actually deform the mesh. In this case, only the neck bones currently deform the mesh. This is a bit nitpicky, but a good practice to get into. If you do character rigging later on, you will not want your mechanism or rig control bones deforming the mesh. (Usually.)
Last but not least, you should always have a root or main bone. This bone is the master of the armature and will take every other bone with it in space. It will also be needed later to parent things like IK pole targets and other mechanism bones.
To Be Continued… after I sleep and work…