This weekend I finished programming the Rotacaster bot. It now is a remote controlled bot that can be driven in two modes.
The first mode I call “drive” mode. In this mode the robot always faces forward while driving. When it corners the robot keeps facing in the direction of driving, just like a normal robot or car would do. In this mode the holonomic wheels don’t do much special. The only thing is that it can make very tight corners, as a matter of fact it can turn in place.
The second mode I call “strife” mode. In this mode the robot keeps facing in the same direction, no matter what direction it is going to. In this mode one can really see the holonomic drive in action. The direction the robot is facing is controlled by a gyro sensor. The driver toggles between the two modes with a joystick button.
The joystick is attached to the pc. I wrote a small program that sends joystick commands over Bluetooth to the NXT. Thanks to the fast Bluetooth implementation of robotc there is no lag that could make driving difficult. It is surprising how well the control works and how easy it is to master.
There are a few things I noticed regarding the holonomic drive. The wheels are not perfectly round, this makes the robot vibrate during movements. Also, and this I haven’t seen mentioned before, the robot is faster then a robot with normal wheels of the same diameter. This is due to the fact that the wheels are not (well not always) exactly in the driving direction. The speed of the wheels equal the y component of the speed of the robot, when there is an angle between the wheels and the driving direction this y component is less than the total speed. The principle is very much like that of a sailing vessel, it can also go faster than the wind when having a crosswind. In drive mode my robot is about 15% quicker than a comparable robot with normal wheels.