Thanks for the complements about this robot.
We are building this with an extremely limited (nonexistent) budget so this is the original design that my team came up with in January (like week 1 or 2 of build); consequently this robot base isn't perfect. We had the swerve module parts manufactured during the build season. We started actually making the swerve robot during the summer with a 2-3 hour meeting once a week. We have been working on it on and off since June or July. Most of the issues (in terms of why its taking so long) are related to a lack of funds for buying parts or not having easy access to machining equipment, making it so that we have to design so that we don't use anything we don't already have. Overall everything on this robot (excluding electronics) cost us, less than $1200. I know that the overall investment for our planned 2 swerve robots and additional mecanum robot was around $2500-$3500 in parts.
My intent for this offseason project is to use this as an opportunity to teach new members the basics of mechanics and using tools. My hope is that we can get this to function as a crab-drive that can pivot (by rotating the wheels such that they are tangent to a circular path).
I personally like the shifter, the rest of my team isn't so fond of it. For a second version of this robot we plan on having drive gearboxes for each wheel, and because of our very limited machining and budget right now these will almost certainly be CIMPLE boxes.
Our intent with the joysticks is to get it so that we can translate with one joystick and then use a second joystick to control pivoting. For now we will likely make it so that it only pivots when it is not translating (primarily because this version uses two rather than 4 drive gearboxes). We still haven't gotten this really driving yet, this was because we didn't know what type of encoders to get and we didn't have money to buy them. Mechanically we know this works, we are still trying to get our code working though.
I apologize if I am just rambling or I forgot to answer some of the questions.