In order to control the robot, I'm building a C program that will be the core of the robot. The idea is to make a very modular system. The main program will execute programs (modules) that will make simple things and comunicate with the others modules using stdin and stdout, similar as CGI-BIN programs comunicate with a Web server.
For example, let's say that we want to have a module for making robot speak. This module will handle the command SayText, and send the text to festival (it will listen lines from his stdin, and if the line begins with SayText will execute festival with the rest of the line).
There will be a module that comunicates with the pic board using serial port (picmodule). This module will listed lines form his stdin, and there will be commands in order to send or receive values to/from the pic
Lets say that we want to have a module that handles the movement of the robot, this module will accept order "Walk" and will traslate this in a robot dependant orders for the picmodule. If we have a robot with two gears, walk will be put some outputs of the pic board to some values. If you have a human like robot, there will be a complex servo movements in order for making the robot walk.
As the modules use stdin and stdout, it will be very simple to develope modules in any language, and as long as it possible to have a lot of modules, it easier to make modular andsmall programs that will be used by another people.
I have an alfa version of the main program, and need to begin working in the "picmodule"
The PIC board will have a Assembly program in order to control all the devices that the robot needs, I think that this program will change few (I'm finishing this program now).