i have started my orangutan robot, and it uses an analogue neural network that i have created, a very simple but have chaotic behaviour, and i have created some formulae for it, here it is:
letsmakerobots(.)com/node/30429 just remove the ( ) on the dot
Very Impressive! I've been reading the comments, did you write a matlab program or use the the available NEAT matlab code for this project? Was trying to determine if the neat algorithm would be difficult to implement from scratch. Thanks
@chphmapr The guts of my program came from the MATLAB implementation uf NEAT. So the main running script and the one which did the reproduction and crossover. I had to write programs to alter how the neural network was structured and how it propogated information throughout itself.
Just a FYI I'm hoping to purpose this type of work and other topics in intelligent robotics at the University of Sussex in their Master for Evolutionary and Adaptive Systems. If anyone else is interested in this type of work and is wondering where the hell to go next to study I would suggest checking it out.
@Yeronemo The robot had six sensors and that fed directly into the six input nodes of neural network. The three angle sensors for the servor motors. The contact sensor on the bottom of the robot. The touch sensor at the end of the arm. And the odometer. If I remember correctly they were all scaled continous from 0 to 1 except for the touch and contact sensor. They winded up being either a 0 or 1.
@Yeronemo I didn't really train the artifical neural networks (ANN). Once the ANN was evolved ("born") it didn't change throughout its lifetime. Or are you asking how the ANNs came about. The ANNs were evolved using NEAT. I started with a basic topology and then the algorithm NEAT evolved the ANNs over the course of many generations. NEAT task was to evolve ANNs which would control the robot and get it to move some distance.
Hey sorry haven't responded lately. I'm in americorps and have been in Joplin, MO responding to the tornados and now I'm in Montana so very little internets. But thank you all for your comments and interests.
This reminds me of Chemical Brothers video to Believe, in the end of the video the robot is hunting the former operator and has a similar way of crawling...
I'm still yet to build a robot, but i've been working on some pretty impressive A.I. for about 4 years now. I would start making videos like these in a few months time :D
why does it learn to crawl, it does not know it has a goal :O a baby wants to move to a location or to its parent, but this has no goal, how can it...
@EZbakeROFLcakes this is just a neural network simulation mate!!!! it's not like deep blue that can play computer!!!! it chooses and uses it's inputs to produce it's outputs!!!!
@keithosmarferrer well duh xD but how does it know which one is the best walking, does the human decide which code to keep when its finally walking, because it does not know what walking is, therefore performing any output is the same to it surely... Every computer system performs outputs that doesnt mean it learns how to produce its output because its already decided by a human! Im trying to understand how it does it without humans involved at all... Thanks for the help but please expand :D
@EZbakeROFLcakes So I made a simulator, and in the universe of the simulator movement is good. That's it. I ran the simulations and whichever neural network produce the most movement was the best. And the simulator was close enough to real world physics in that if it worked in the computer it worked in the real world. With genetic algorithms the hard and cool part about them is that you justt set up the environment and parameters and then let the thing go.
@keithosmarferrer Yeah, sorry I must have not finished the video, sorry to be so annoying xD The program that the maker wanted was put onto it, through human selection, thats what i was wondering :) thanks for trying to help :)
@EZbakeROFLcakes Goals are a human conceept. Evolution really doesn't have any goals. Whatever produces an organism/thing/artifact that can survive and move onto the next generation does. In my experiment movement equated high fitness and so the neural networks which caused the robot to move moved onto the next generation. I set the task/goal of crawling in the fitness measure.
@NebunLaCap I don't. Based on simple parameters such as how many neurons in the input, middle, and output layers random neural networks are made in the beginning. And then whichever ones produce the best fitness (determined by the herestic I choose which is movement) mates and moves onto the next generation. The neural networks, once they are born, are static and do not change throughout the lifetime of the individual. This part is kind of lame, but I'm working on a solution.
One touch sensor at the end of the arm, three position sensors for each servo, a contact sensor at the bottom of the chassis, and an odometer/castor at the back of the robot.
This was written using MATLAB. There is a version of NEAT for MATLAB. There is no physics engine really. The simulation uses the dimensions of the robot and a few rules to correctly plot the robot and create sensor values that the real robot would receive. I can check but I think I link the paper I wrote for this which has a section on the simulator and how it was created. But yeah I wrote what you would call the physics engine for this from scratch.
@Palmiik Well that's what I'm asking. In the video there is no learning stage mentioned. It perhaps would be possible, but what is the point if the weights are already optimized (by the genetic algorithms)?
Yeah you're right. Aside from saying how many inputs and outputs there are and what they correspond to on the robot I don't specify anything about the ANN. The GA has free reign to add whatever connections and nodes and change the weights (within reason of course) as it pleases.
Yeah once an ANN is "born" it can't learn (change weights). You could use this setup to create ANNs which will make the robot climb and turn, but you would have to change the fitness function of the GA.
I wanted to know if the structure of a neural net could facilitate the control of a limbed/crawling robot. And it does by using recurrent connections.
Someday I want to get to the point where the weights of the neural network will change over the course of the life of the robot as it explores and experiences its environment. But that may have to wait for grad school.
Good job! I am very interested in starting a project using neural network control as an independent study for the next few semesters (as if I have time). It seems like very cool stuff!
some sweet info here
rodswebdesign 4 days ago
This is a great video
thegeffc 4 days ago
Very enjoyable thank you
MrBrucebracey 6 days ago
love the video really good
msjessypp 1 week ago
love the video man
jjclassjj 1 week ago
i have started my orangutan robot, and it uses an analogue neural network that i have created, a very simple but have chaotic behaviour, and i have created some formulae for it, here it is:
letsmakerobots(.)com/node/30429 just remove the ( ) on the dot
cheers!, btw, i'm 14!
keithosmarferrer 3 weeks ago
Very Impressive! I've been reading the comments, did you write a matlab program or use the the available NEAT matlab code for this project? Was trying to determine if the neat algorithm would be difficult to implement from scratch. Thanks
chphmapr 4 months ago
@chphmapr The guts of my program came from the MATLAB implementation uf NEAT. So the main running script and the one which did the reproduction and crossover. I had to write programs to alter how the neural network was structured and how it propogated information throughout itself.
shaggyman87 4 months ago
Just a FYI I'm hoping to purpose this type of work and other topics in intelligent robotics at the University of Sussex in their Master for Evolutionary and Adaptive Systems. If anyone else is interested in this type of work and is wondering where the hell to go next to study I would suggest checking it out.
shaggyman87 5 months ago
What did you give to input of neural network? Couldn't understand it from your paper.
Yeronemo 5 months ago
@Yeronemo The robot had six sensors and that fed directly into the six input nodes of neural network. The three angle sensors for the servor motors. The contact sensor on the bottom of the robot. The touch sensor at the end of the arm. And the odometer. If I remember correctly they were all scaled continous from 0 to 1 except for the touch and contact sensor. They winded up being either a 0 or 1.
shaggyman87 5 months ago
@shaggyman87 ok. Another question: How did you train the generated by NEAT networks?
Yeronemo 5 months ago
@Yeronemo I didn't really train the artifical neural networks (ANN). Once the ANN was evolved ("born") it didn't change throughout its lifetime. Or are you asking how the ANNs came about. The ANNs were evolved using NEAT. I started with a basic topology and then the algorithm NEAT evolved the ANNs over the course of many generations. NEAT task was to evolve ANNs which would control the robot and get it to move some distance.
shaggyman87 5 months ago
Shaggyman87, can I see the schematic diagram of this circuit.
zackdreamer86 5 months ago
Shaggyman87, can I have your coding.
zackdreamer86 5 months ago
Hey sorry haven't responded lately. I'm in americorps and have been in Joplin, MO responding to the tornados and now I'm in Montana so very little internets. But thank you all for your comments and interests.
shaggyman87 6 months ago
Can I have the coding if you don't minds
zackdreamer86 6 months ago
This reminds me of Chemical Brothers video to Believe, in the end of the video the robot is hunting the former operator and has a similar way of crawling...
watch?v=c_IkUysQASQ
robertjansson72 7 months ago
i'm using a simple neural network for my orangutan-like robot, now i'm studying the movements of orangutans!!!! {:(|}
keithosmarferrer 8 months ago
whaha your robot is funny
tijs14tijs 8 months ago
Nice!!!
I'm still yet to build a robot, but i've been working on some pretty impressive A.I. for about 4 years now. I would start making videos like these in a few months time :D
cirusMEDIA 9 months ago
the link is broken can u post another thx
rogertrullo 1 year ago
why does it learn to crawl, it does not know it has a goal :O a baby wants to move to a location or to its parent, but this has no goal, how can it...
EZbakeROFLcakes 1 year ago
@EZbakeROFLcakes this is just a neural network simulation mate!!!! it's not like deep blue that can play computer!!!! it chooses and uses it's inputs to produce it's outputs!!!!
keithosmarferrer 8 months ago
@keithosmarferrer Yes, but i was asking how the robot learns to crawl???
EZbakeROFLcakes 8 months ago
@EZbakeROFLcakes it learns by it's outputs!!!!
keithosmarferrer 8 months ago
@keithosmarferrer well duh xD but how does it know which one is the best walking, does the human decide which code to keep when its finally walking, because it does not know what walking is, therefore performing any output is the same to it surely... Every computer system performs outputs that doesnt mean it learns how to produce its output because its already decided by a human! Im trying to understand how it does it without humans involved at all... Thanks for the help but please expand :D
EZbakeROFLcakes 8 months ago
@EZbakeROFLcakes So I made a simulator, and in the universe of the simulator movement is good. That's it. I ran the simulations and whichever neural network produce the most movement was the best. And the simulator was close enough to real world physics in that if it worked in the computer it worked in the real world. With genetic algorithms the hard and cool part about them is that you justt set up the environment and parameters and then let the thing go.
shaggyman87 6 months ago
@shaggyman87 Thanks Shaggyman :D I understand it crystal clear now :)
EZbakeROFLcakes 6 months ago
@keithosmarferrer Yeah, sorry I must have not finished the video, sorry to be so annoying xD The program that the maker wanted was put onto it, through human selection, thats what i was wondering :) thanks for trying to help :)
EZbakeROFLcakes 8 months ago
@EZbakeROFLcakes no problem mate.
keithosmarferrer 8 months ago
@EZbakeROFLcakes Goals are a human conceept. Evolution really doesn't have any goals. Whatever produces an organism/thing/artifact that can survive and move onto the next generation does. In my experiment movement equated high fitness and so the neural networks which caused the robot to move moved onto the next generation. I set the task/goal of crawling in the fitness measure.
shaggyman87 6 months ago
how do you reward it??
NebunLaCap 1 year ago
@NebunLaCap I don't. Based on simple parameters such as how many neurons in the input, middle, and output layers random neural networks are made in the beginning. And then whichever ones produce the best fitness (determined by the herestic I choose which is movement) mates and moves onto the next generation. The neural networks, once they are born, are static and do not change throughout the lifetime of the individual. This part is kind of lame, but I'm working on a solution.
shaggyman87 6 months ago
@shaggyman87 Can't you hook it up to polyworld (open source)?
NebunLaCap 6 months ago
What sensors does it have?
mission2ridews 1 year ago
One touch sensor at the end of the arm, three position sensors for each servo, a contact sensor at the bottom of the chassis, and an odometer/castor at the back of the robot.
shaggyman87 1 year ago
Hello, I'm interested in what language you coded your simulation in and if any, what physics engine did you use?
awfa3 1 year ago
This was written using MATLAB. There is a version of NEAT for MATLAB. There is no physics engine really. The simulation uses the dimensions of the robot and a few rules to correctly plot the robot and create sensor values that the real robot would receive. I can check but I think I link the paper I wrote for this which has a section on the simulator and how it was created. But yeah I wrote what you would call the physics engine for this from scratch.
shaggyman87 1 year ago
One question: you use a genetic algorithm to optimize the topology AND the weights?
I mean what's the point in using a neural net, if you don't use learning?
bullpup1337 1 year ago
@bullpup1337 Maybe to find optimal algorithm for crawling. Who said he can not even improve (learn) afterwards?
Palmiik 1 year ago
@Palmiik Well that's what I'm asking. In the video there is no learning stage mentioned. It perhaps would be possible, but what is the point if the weights are already optimized (by the genetic algorithms)?
bullpup1337 1 year ago
@bullpup1337 What i can think of is for example climbing, turning around, etc.
Palmiik 1 year ago
@bullpup1337 If the joints allow that of course.
Palmiik 1 year ago
Comment removed
bartosz27091989 1 year ago
Comment removed
bartosz27091989 1 year ago
Yeah you're right. Aside from saying how many inputs and outputs there are and what they correspond to on the robot I don't specify anything about the ANN. The GA has free reign to add whatever connections and nodes and change the weights (within reason of course) as it pleases.
shaggyman87 1 year ago
Yeah once an ANN is "born" it can't learn (change weights). You could use this setup to create ANNs which will make the robot climb and turn, but you would have to change the fitness function of the GA.
shaggyman87 1 year ago
I wanted to know if the structure of a neural net could facilitate the control of a limbed/crawling robot. And it does by using recurrent connections.
Someday I want to get to the point where the weights of the neural network will change over the course of the life of the robot as it explores and experiences its environment. But that may have to wait for grad school.
shaggyman87 1 year ago
Excellent, bravo!
planmix 2 years ago
Very nice. I've also been wanting to do something like this and eventually make the robot even walk although it could be very hard.
tebbbbe 2 years ago
that's the hope for grad school. i figure starting small like crawling is a better approach then jumping straight to walking
shaggyman87 2 years ago
veeeeery impressing
kid29a 2 years ago
Good job! I am very interested in starting a project using neural network control as an independent study for the next few semesters (as if I have time). It seems like very cool stuff!
origamisquaredvideos 2 years ago
yeah, that's very interesting...looking forward to your research i think it's possable to train more complecated robots to do more interesting stuff)
LegatoDi 2 years ago
very cool indeed.
hkane1 2 years ago