** o wow, 5 posts while i was writing. guess it's still relevant. posting anyway... **
what will be the functions of this robot?
the way i interpret this thread is we are designing a set of modules that can be combined to produce whatever robot you choose to make.
(personally i think the robot built from blocks in the vid above is cool but not really capable of getting beer from the fridge or shocking the cat which are the main uses for robotics in the RealWorld (tm).)
example modules that i think valuable to a project like this are as follows:
- servo controller.
- motor controller.
- I/O module. (able to read inputs from digital or analogue inputs and output to digital or PWM pins.)
- wireless UART link (for remote control of projects)
- modified servo + wheel combination (with data on power draw, how fast it travels, how heavy a robot it can move etc.)
- motor + wheel combination (with data on motor controller specs, how fast it travels, how heavy a robot it can move etc.)
- mapping processor. (able to take input from I/O modules and output commands to servo or motor modules)
so imagine you want to make a killer 8WD bot with a robotic arm for grabbing beer out of the fridge.
rather than having to design your own components, just build 8 of the motor controller modules, 8 of the motor + wheel combinations, some servos and a servo controller module.
now connect them all to a wireless UART link module and connect the other end of that to your PC.
at this point you find no one has written a nice program to control 8 motors plus all your servos from a PC so that becomes the "module" you decide to design.
the key to this sort of modular approach is coming up with a set of standards which means that all the modules are controlled in the same way.
for motors this is fairly easy. there are currently 3 main standards i can think of: regular DC motors, stepper motors and modified servos.
i would suggest we allow all 3 to be developed as valid modules. (obviously motor controller modules for each would be the first step.)
a harder thing to decide upon would be the communication method between modules.
i have some thoughts on the matter but rather than go into too much detail i suggest we allow UART and i2c communication methods between on board hardware modules
and allow RS232 and USB communication between robot hardware and a remote computer (only needed if your project needs remote communication).
it could be argued that we need to also choose a standard microcontroller but i would argue that we do not.
as long as you can program your microcontroller to play nicely with the other modules i don't think it matters if you use a PIC or AVR or which version of each you use.
what would be important is to come up with a few reference microcontroller designs with working i2c and UART code and circuit diagrams so novices could modify these rather than having to start from scratch.
Ill offer myself up for leadership aswell, but i think this project really needs the leadership of an 'Expert Roboticist' e.g. dunk, jon hylands, hgorden or jessewelling. (i think thats all of them)
flattering but i really doubt if i would have time to lead this.
i am completely up for helping with initial design specifications though.
also expressing opinions. i'm good at that.
i appreciate the need for inter-module communication would put this project out of reach for complete beginners but most of the people enthusiastic about this thread have at least some experience....