This is a attemp to build up a robot form scratch. Planed is a six legged robot with 18 servos, each leg has tree servos and a own control.
The project is hosted on
This project follows the UNIX Way:
download the project direct from the CVS with
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/alita login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/alita co alita
cd alita/utils
make clean all
open three shells sh1, sh2, sh3
sh1> leg -f ../data/frontleft.cal | multi -s -a127.0.0.1 -p5000 -n1
sh2> leg -f ../data/frontright.cal | multi -s -a127.0.0.1 -p5000 -n1 -e
sh3> multi -r -p5000 | servo -s /dev/ttyS0
Now a stream of values could be send via keyboard or via pipe to the legs processes to move the legs. The command take the first value for the first specified servo the next value for the second specified servo an so on.
The command servo works for mini SSC II only
Instead of the command servo you also could run the simulation 3dModel in 3d folder:
sh> leg -f ../data/frontright.cal | 3dModel
Then we should be able to calibrate a leg with the following script
joystick | ctrl -c | servo /dev/ttyS0
After this we are able to let the machine walk with the following script
joystick | ctrl -w /dev/ttyS0 | multi -s -a127.0.0.1 -p5000 -n6;
multi -r -p6000 | servo /dev/ttyS0;
for i in `seq 1 6`
do
multi -r -p500$i | step | leg -f leg$i.cal | multi -s -a127.0.0.1 -p6000 -n1
done
We have 6 command chains for the legs, one control chain to feed the leg chains and one output chain to move the servos of all legs. The control it self gets the feedback of the servos from the same serial line. The mulitplexor/demultiplexor is needed to split the control output to all leg command chains and to serialize the output of these chains to the servo command. All commands should be configurable as much as possible to use them for other projects too (great dream).
We need a mathematical model of a feet. I have now some first results I want to make public [ia97lies]:
phi [degrees] | psi [degrees] | |
---|---|---|
front right leg | 85 | -45 |
front left leg | -85 | -45 |
middle right leg | 100 | -45 |
middle left leg | -100 | -45 |
back right leg | 115 | -45 |
back left leg | -115 | -45 |
A vector in the a-koordinate system can be calculated with the vector in the b-koordnate system as follow:
The otherway around can be done as follow:
If you are handy with linux, mathematics, neuronal networks, electronics, construction, programming, documentation or even with HTML you are welcome to help.
mail to ia97lies at users.sourceforge.net