Your use of one large class to hold all your robots data is kind of interesting. What made you choose this? The only wrapping I did was when I made my variable-modifying code so I could receive automatic updates.
It's important to comment your code, but I would say the ArcadeDrive is a good example of an exception. It's one of those things you accept it works, and look it up if you want to know about it. If something like CVEncoder hadn't had at least some comments (it looks decent as of now), that might have been a problem.
Could use some more linebreaks, though
