The Hemissons are small semi-autonomous robots made by a Swiss company called K-Team. They began as extra-curricular projects by students at the Swiss Institute of Technology and are now widely used by teachers and hobbyists. The Hemisson has a number of features which make it ideal for small scale robotics experiments.
Each Hemisson is a small mobile robot driven by two separate motors driving its two wheels. It can sense obstacles by means of a total of 8 infra-red sensors, 6 on the sides and two on the bottom (which allow it follow marks on the ground). The brains of the Hemisson is an 8-bit Microchip PIC 16F877 microcontroller running at 20Mhz which can be programmed with a simplified 35-instruction set. It is also packaged with enough RAM and flash memory to host a simple operating system that can effectively control the robot and execute complex behaviors in response to sensor inputs. The Hemissons also come with 6 switches which can be used to turn them on, switch from a running to a programming mode and execute a number of predefined behaviors (like moving in a circle or following a line).
What makes the Hemisson attractive to robot hobbyists is that you don’t have to stick to the simple set of predefined behaviors. Each Hemisson has a serial port which can be used to directly control the robot from a host computer by sending a set of commands which the HemiOS operating system then executes. There is also an extension connector which allows hook-up of I²C compliant peripherals which can also be accessed via the serial port. K-team sells a number of sensors which come with their own microprocessors and software. In case you are feeling particularly adventurous it is possible to directly access the flash memory, thereby replacing the HemiOS operating system with your own concoction (though it seems that you need a special connector to be able to do this). Of course you can always alter the flash memory over a serial connection.
The Hemisson robots can be simulated with the Webots robot simulation package which allows you to create a virtual world with a virtual robot, program it in C, C++ or Java and then set it loose to see what happens. Though you can cross-compile a program to make it run directly on the Hemisson, actually getting it to the Hemisson’s flash memory is slightly complicated (and not covered by warranty). Bu K-Team provides a graphical programming environment it calls Bot-Studio which lets you define a behavior for the Hemisson based on the concept of finite-state machines, and these FSMs can donwloaded to the robot over the serial connection.
I will personally be making use of the serial connection to let a Gumstix essentially “drive” a Hemisson by issuing it commands over serial and listening to responses from the sensors. Because it is possible to listen to the I²C bus over the serial connection, we could attach a wide variety of sensors to the Hemisson and let the Gumstix do the thinking. While I go figure out how to do that, I’ll leave you with a nice picture (from the Hemisson website):