To control the robot, even if 4 wheel driven, it is used the differential steering system. The wheels on one side are considered as one only, they travel every time at the same speed and for the same distance. This is achieved using two different control boards.
The board is also commercially available on robotic on-line shops. It is a fully compatible engineering of my prototype.
A detailed description of usage, configuration and some demo video can be found on Droids site.
The navigation system is split in two parts, the front dsNav is the master one. It exchanges information with the IMU and decides the speed for front-right and front-left wheels to go in the right direction for the right distance.
Then it sends those values to the back dsNav, the slave one, in order to maintain perfectly paired the wheels on each side, i.e.: the back-right wheel always spins at the same speed of the front-right one, as well as the back-left and front-left wheels.
The code for both master and slave dsNavs is regularly updated on Google Code as an open source software.
How to use the encoder to measure the speed of the robot using dsPICC33F Input Capture Module.
Of course the encoder is used also to perform odometry and, therefore, using dead reckoning, to know where the robot is.
The software for Lino, as already explained, is very similar to Rino one. The navigation software architecture is the same. The differences are due to the outdoor navigation requirements. So the orientation is computed with the aid of the IMU and the field mapping/obstacle avoidance is performed by the High Level Supervisor. The basic concepts are described in the Navigation Procedures Description page.