Name: "Eng. Cognito"
Member since: 2006-10-28 19:42:48
Last Login: 2010-05-30 11:37:13
Im an electronics engineer who build robots on my spare time.Currently im also studying artifisial inteligence at the local university My latest project is a hexpod 6x 2DOF robot. Its using a parralelogram leg design. Built out of expanded PVC sheets. The ultimate goal is to do a survey/wallfollower robot that emulates an insect as closley as i can. I have lots of ideas for this, that will get implemented in the future (heat sensing, light sensing +++) My spesialty is the electronics, logic, control and regulating stuff. I have been programming computers and microcontrollers since i was 7(startubg with Amiga BASIC back in the day). I love robots becaus its a chalange to make software that interacts with the world, pluss i like building stuff. I get a real kick out of ex. rewriting code that makes my robot draw less current by change the gait, and that sort of thing. Its the interaction between software and the real world that i realy like. When it comes to mechanics tho, im farly new at it. Ive built a few robots so far, some that didnt work due to bad mechanics design. Altho after studying the wonderfull world of 4-bar linkages, my last hexapod works alot better. Amasing how much it helps to learn the theory before designing somthing... (it was a Homer Simpson, Dope! moment for me when i saw the silly and obvius mistakes on my first atempt at hexapod) Cheers, "Magnum"
- Lead Developer on SpidaBOT
Recent blog entries by Magnum
Its been over three years since last i stop by this site. Honestly i forgot all about it. My bad. So for a long overdue update on my hexapod project:
After years of designing and redesigning both the mechanical and the intelligence i have arrived at a solution that does what i wanted it to do.
Its a hexapod, 2DOF per leg. The head has 2DOF also which is an important part of the intelligence.
The head contains ultrasonic and light intensity sensors. It goal in life is to move forward looking for the strongest light source it can find, while avoiding physical obstacles using the ultrasonic sensor.
The logic is implemented in a Microchip controller (PIC18F4520). Its a serialized approach the AFSM subsumption architecture as proposed by Dr Brooks in a series of articles(collected into book form, "Cambrian Intelligence")
The goal of the project was always to create a "lifelike" machine, or a "Creature" to use the artificial life term. The ultimate test for my project was to demonstrate it to some students of mine, without any robotic know-how or understanding of its construction to gauge their reactions. It was a delight to see some of them basically wanting to "play" with it like a pet, jumping in front of it to make it turn away from them (introducing obstacles for the robot to navigate around. The ultimate satisfaction for me was to hear some of them comment that they felt "sorry" for it when it got stuck in a corner and could not find its way out.
In conclusion; I have uploaded two videos on Youtube, and I have a website with some pictures and some short description of its design. Neither is of very good quality but they give some basic representation of my work.
Has anyone of you out there ever tried to build a robot inteligence based on neural networks? Im pretty sure many of you have tried the "bottom-up" aproch to robot intelignce as described by Rodney Brooks, in one way or another. Ive seen many atempts to do this, but i have not been able to find any amateur projects that realy utilize the full power of deisigning a subsumption architecture behavior level based robot AI based on a neural network.
Im currently trying this aproch myself, implementing a neural network in software in a PIC18F452. The way ive decided to implement the neurons is as a combination of data structs and a state machine function (one for each neuron). The structs hold the input and output data to each AFSM(augmented finite state machine). The function the handles all the states and conditions of state chaning in order to operate on the data of the neuron. The functions then has to be run in paralel, starting at level 0 and going upwards. The inhibit effect is done thru letting the higher level neurons overwrite the lower levels (similar to what Devantech does in their example robot "Chucky").
So far this aproch seems to work very well. With adding alitle convention to the way variables are named its quite easy to keep track of what data is inputs, what is outputs (what variables should be read and what should be written, its important to keep those apart).
If anyone have ever done anything along this path, it would be intresting to hear your thouights on the thing.
Im basing my design on Brooks own design ideas behind his hexapod "Ghenigs" , as discribed in an article i found in his book "Cambrain Intelignce"(highly recomend this book to anyone who is serius about robot AI).
Been a while now. Been working on the aluminum chassis. Today i finished all the wireing on the electronics mounted in the chasis. I have 14 LED's, 4 flip-switches and 4 pushbuttons. All this is conected to the GPIO modules, so it can be read and set over the i2c buss. Then thers a flatcable conecting evrything together.
In a few more days i should be ready to start programing the real logic. Then all the sensors, inputs and outputs should be ready. I do have some future plans tho. I will add some load sensors, pushbuttons on the leggs (preasure switches), and also a compas.
First tho i will get the input panel working (buttons, leds and LCD display)
Been working on mounting switches, keypad, and status leds, and lcd display in the aluminum shell. I want some onboard controls for changing gait, halting, running difrent programs on it, indicating status on difrent parts of the code. Its all hooked up to 2 GPIO chips with I2C interface. The LCD display has its own i2c conection tho. The i2c cables will also hook onto 3 ultrasound rangers and the main servo gait control, pluss the main brain card.
When its all done the shell of the bot will work kinda like an operator panel, with one flatcable hooking it to the main body of the bot. Ill load up some pics when i get the time, if anyone is intrested. The aluminum shell is alitle comlicated to make. It has several 45 degre bends in more 3 planes, so it took some fideling to build it. Im happy with the result tho. It has a cool "stealth" look to it.
Ive been working on ideas for doing load sensing on my servos. The concept so far is to use a 0.2 ohm resistor and run the common ground of all the servos thru that, so i can use the uC internal A/D to sense how much current they are drawing. Then i can test each individual servo, one at the time, to figure out wich one is causing the increased current.
Of course the best option would be to sense the current on all the servos directly, but then i would need to use either a MUX or several external A/D's. The information i get from this should tell me if any of the servos are loaded more then they are during a normal walking cycle.
Im currently working on this idea. Im gonna run a few tests on this, before implementing anything.
If anyone have any ideas id love to hear them. What is the normal way to do loadsensing ( in a simple way ... obviusly there are plenty of large expensive current sensors that could be used, but they wont fit the robot or my budget). Is there any IC's that have already finishe built in current sensing?. Any ideas is welcome ;)
Magnum certified others as follows:
- Magnum certified RobotsAustralia as Master
Others have certified Magnum as follows:
- Botnerd certified Magnum as Journeyer
[ Certification disabled because you're not logged in. ]