This is how the models looked in Gazebo and Rviz with the same Xacro code. Notice that the camera isn't on the robot, the drive wheels are not on the shaft properly, and the casters are not aligned about the mounting point. The first step in fixing this was to take the parts of the model into a stl editing tool to center them and to change the angle of the parts. The next step was to make the model more like the real machine.
To get the wheels aligned and all of the parts where they are supposed to be, I set the parts to be transparent in Gazebo. This allows the shaft to be seen so the alignment can be checked easily.
Next, I selected the show joints option and then moved the joints to the correct locations for both the drive wheels and the casters. Then the same was done for the inertial data.
The beauty of making all of the parts centered is that once I find the where the joint or inertial data goes for one part it is mirrored. This means the that the x axis value is multiplied by -1.
Also the inertial stuff can be figured out using this: https://github.com/uos/uos_tools/blob/fuerte/uos_common_urdf/common.xacro
5/27/17