<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
<link rel="self" type="application/atom+xml" href="http://forum.robosavvy.com/feed.php?f=15&amp;t=6016" />

<title>RoboSavvy Forum</title>
<subtitle>Robosavvy Forum: The largest online community of Humanoid Robot Builders</subtitle>
<link href="http://forum.robosavvy.com/index.php" />
<updated>2010-05-16T10:57:47+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=15&amp;t=6016</id>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2010-05-16T10:57:47+01:00</updated>
<published>2010-05-16T10:57:47+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26791#p26791</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26791#p26791"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26791#p26791"><![CDATA[
thanks - great reply.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Sun May 16, 2010 10:57 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AlexanderHWUK]]></name></author>
<updated>2010-05-14T21:42:07+01:00</updated>
<published>2010-05-14T21:42:07+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26775#p26775</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26775#p26775"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26775#p26775"><![CDATA[
Uhm, a very interesting proposal! <br /><br /> To be honest, I had thought of doing a similar thing (teach a robot how to walk) for my project, but when I realised my time constraints I changed it into something more simplistic (detecting obstacles and remembering patterns).<br /><br /> However, keeping balance would be a very interesting problem to solve with an ANN. When comparing ANNs to anything else, you have to think if you have enough data. ANNs are awesome when you have lots and lots of input data (either because you robot can take thousands of measurings a second, or because it can stay on the surface of Mars for a whole year, with lots of rocks).<br /><br /> So to keep balance, you could design a simple ANN (Same structure as the one I used for this project: Sigmoidal Feed-Forward BackPropagation ANN), as they work well for this type of &quot;data&quot; problems. For example, you already know what is bad or good (big accelerations are bad for example, as you don't want the robot to fall, etc.), so you could use a supervised ANN.<br /><br /> Nevertheless, it would be very interesting as well, designing an unsupervised ANN without telling the robot what it must do to keep the balance. I recommend having it attached to a string or something, as it will fall many times this way! <br /><br /> To learn about coding ANNs, I may recommend that you read over the code and libraries in my project, however I would not recommend you to program them as I did. The libraries I used were <span style="font-weight: bold">very</span> &quot;low level&quot;, in other words, it actually creates the matrices and everything needed to simulate the ANNs, hardcore style. At the end of the project I have learnt there are other more &quot;high-level&quot; approaches to designing ANNs, even though the way I chose was perfect for learning how an ANN actually works.<br /><br /> Both the libraries and the online course I used to learn how to code ANNs in C# was obtained from Heaton Research. The online course is a little <br /> <span style="font-style: italic"> meh </span>, however the libraries are pretty interesting to have a look at if you already know C#. To be fair it was a pretty crazy coincidence that your code to communicate with the Robobuilder was in C#, it saved me a lot of trouble!<br /><br /> Anyways, to answer your well posed question, I do recommend using an ANN, if you are planning on more complicated learning in the future (Such as combining balance with other sensors) or specially if you don't know much about GA. The BIG advantage of the ANNs in this case is if, you do not know as a programmer, what would keep the Robobuilder upright (It is easy enough to say &quot;If you accelerate in +x, try to move to -x&quot;, however that may not be as easy to program when moving servos, or when the robot is walking for example). <br /><br /> So my recommendation is do a simple ANN that can run parallel to the code you send to the robot, and create 2 inputs, 2 outputs. The inputs being the positive and negative directions of an accelerometer axis (You can use one input if you want, but you will have to use an activation function like the Hyperbolic activation func.), and the two outputs being a servo in each arm, to expand &amp; contract depending where it is being pushed from. You will see (if you run it in real time, or obtaining data every 0.2 sec or so) how the robot at the beginning does not know what to do, and will do random stuff when you push it. However, shifting the weight of the robot will affect the acceleration, which if you have supervised it correctly, will learn what arm to move depending of where you push him.<br /><br /> Heh, it may sound as tricky, but it only took a year for me to learn <img src="http://forum.robosavvy.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" /> There is just so many possibilities with learning mechanisms, that the only way to find the best one is by experimenting. I find this area very interesting, and if you need any help with research or coding I am happy to help <img src="http://forum.robosavvy.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" /><br /><br /> Alex<br /><br />P.S. By the way I added you as an owner of my project so you can edit stuff if you want, don't know if it worked<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1992">AlexanderHWUK</a> — Fri May 14, 2010 9:42 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2010-05-14T19:58:14+01:00</updated>
<published>2010-05-14T19:58:14+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26773#p26773</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26773#p26773"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26773#p26773"><![CDATA[
Incidentally - I'd be interested in your thoughts about how this could be modified to 'train' a robot to balance, using the outputs from the accelerometer - do you think thats possible - and if so what configuration of ANN and type of training would you use ??<br /><br />I have created a very basic balance program but am now trying to work out how to improve it and ideally self learn. How would a GA stack up against using ANN for instance ?<br /><br />Any tips welcome<br /><br />cheers<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Fri May 14, 2010 7:58 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2010-05-14T19:52:03+01:00</updated>
<published>2010-05-14T19:52:03+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26772#p26772</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26772#p26772"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26772#p26772"><![CDATA[
Looks a great start - I'm looking forward to having a play with it. (and read your dissertation) - good luck with your exams !<br /><br />I use <!-- m --><a class="postlink" href="http://tortoisesvn.net/">http://tortoisesvn.net/</a><!-- m -->.  Its an SVN client thats simple to use and integrates nicely with windows. You can see in windows folders if the files are out of date, and then single click will commit all the updates.<br /><br />If you go to the &quot;source&quot; tab on the project it gives you details of URLs and password to use to check in and out. Any one can extract a read-only dump.  I've been really impressed with Google project and I see the bioloid people are starting to use it now as well.<br /><br />cheers<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Fri May 14, 2010 7:52 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AlexanderHWUK]]></name></author>
<updated>2010-05-14T18:28:11+01:00</updated>
<published>2010-05-14T18:28:11+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26771#p26771</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26771#p26771"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26771#p26771"><![CDATA[
Hello!<br /><br /> Goodness, I was expecting that after finishing the project, I would have enough time to create a google code project and upload everything there!<br /> But time after time I found I was terribly busy, but I've got no excuse now!<br /><br /> Let me check the google code projects and I'll try creating one, so I can upload everything there. If it doesn't work or I can't figure it out then I may take you on your offer <img src="http://forum.robosavvy.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" /><br /><br /> Thanks for the interest!<br /><br />    Alex<br /><br /> Edit: Done!<br /><br /> Created a googlecode project  <a href="http://code.google.com/p/robobuilderann/" class="postlink">http://code.google.com/p/robobuilderann/</a> and here you can find all the code (for now its in a winrar file, however I would like to know if you can use subversion or similar in case anyone is interested in editing it).<br /> I'll write something in the wiki explaining how the thing works, but I made a shortcut that can be clicked to start the GUI.<br /> Word of warning! The code was practically finished when I ended the project, however I played around with it a bit afterwards, which may have caused some bugs. However if the Robobuilder is plugged in, and the files are in the right places, everything should work!<br /><br />  Alex<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1992">AlexanderHWUK</a> — Fri May 14, 2010 6:28 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2010-05-14T17:49:18+01:00</updated>
<published>2010-05-14T17:49:18+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26770#p26770</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26770#p26770"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26770#p26770"><![CDATA[
Hi,<br /><br />Are you going to upload / make available your source code on this for other people to try ?  If you want I'm happy to add you as a contributor to the RobobuilderLib google project ( <!-- m --><a class="postlink" href="http://code.google.com/p/robobuilderlib">http://code.google.com/p/robobuilderlib</a><!-- m --> )- so you can add the source (or I'll do it for you if you want).<br /><br />BTW Ive created a modified foirmware that enable the PSD and accelerometers to be read more quickly - so if your code has a problem with response time from the robot I/we could look to convert to use the DCMP firmware.<br /><br />cheers<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Fri May 14, 2010 5:49 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AlexanderHWUK]]></name></author>
<updated>2010-03-30T19:05:14+01:00</updated>
<published>2010-03-30T19:05:14+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26150#p26150</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26150#p26150"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26150#p26150"><![CDATA[
Ok, thanks for the suggestion, I will look into it when I have time <img src="http://forum.robosavvy.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" /><br /><br />  Alex<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1992">AlexanderHWUK</a> — Tue Mar 30, 2010 7:05 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[scarab]]></name></author>
<updated>2010-03-30T18:56:44+01:00</updated>
<published>2010-03-30T18:56:44+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26149#p26149</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26149#p26149"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26149#p26149"><![CDATA[
Why not create yourself a project space on code.google.com and commit your source to that?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2038">scarab</a> — Tue Mar 30, 2010 6:56 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AlexanderHWUK]]></name></author>
<updated>2010-03-30T17:43:47+01:00</updated>
<published>2010-03-30T17:43:47+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26148#p26148</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26148#p26148"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26148#p26148"><![CDATA[
Right, done a few changes to the code, and is practically bug safe now.<br /><br /> I have a major presentation this thursday, so I will prefer to keep the code for now, but after that I will pack it up and put it... somewhere.<br /><br /> Actually, any suggestions? Does Robosavvy have any webspace to store stuff like this? If not I can just send it to anyone interested.<br /><br />  For any questions, just ask<br /><br />   Alex<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1992">AlexanderHWUK</a> — Tue Mar 30, 2010 5:43 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[scarab]]></name></author>
<updated>2010-03-30T11:50:39+01:00</updated>
<published>2010-03-30T11:50:39+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26142#p26142</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26142#p26142"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26142#p26142"><![CDATA[
Wow, this looks awesome! I'm a new Robobuilder owner so hopefully I can leverage off your knowledge now! <img src="http://forum.robosavvy.com/images/smilies/icon_smile.gif" alt=":)" title="Smile" /><br /><br />I don't own a Windows machine. but as it's written in C# perhaps it will work with the Mono libraries under Linux?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2038">scarab</a> — Tue Mar 30, 2010 11:50 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2010-03-29T22:58:17+01:00</updated>
<published>2010-03-29T22:58:17+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26127#p26127</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26127#p26127"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26127#p26127"><![CDATA[
Sounds (and looks) really cool.  I'd love to get a copy to play with.<br /><br />Cheers<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Mon Mar 29, 2010 10:58 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AlexanderHWUK]]></name></author>
<updated>2010-03-29T19:59:03+01:00</updated>
<published>2010-03-29T19:59:03+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26126#p26126</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26126#p26126"/>
<title type="html"><![CDATA[Combining Robobuilder with Artificial Neural Networks]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6016&amp;p=26126#p26126"><![CDATA[
Hello there, long time no see!<br /><br /> I stopped posting in the forums as I had solved my critical problems with the Robobuilder, however I have not stopped working a single day!<br /><br /> This may not be groundbreaking in the Robobuilder field, but its always interesting to see what it can be done with a Robotic platform. I have created a cool interface between the Robobuilder and some C# ANN libraries I obtained from a website (Heaton Research).<br /><br /> <img src="http://img260.imageshack.us/img260/4171/guicollection.jpg" alt="Image" /><br /><br /> With these GUIs, I can:<br /><ul>- Test the PSD value and change the Distance threshold for testing.<br />- Test the Robobuilder using predefined probabilities<br />- Load and Save probability values in text files<br />- Train an Artificial Neural Network &quot;virtually&quot; (Setting the desired virtual output values), and use its values to test the Robobuilder<br />- Train an Artificial Neural Network &quot;manually&quot; (Allowing the Robobuilder to walk around, detecting the objects), and save them for future use<br />- Set the different parameters of the ANN (Inputs, Outputs, Epochs, Learning Rate, Training Momentum, Number of Neurons in Hidden layer)<br /></ul><br /><br /> All works in realtime, fully debugged and with lots of error Message boxes!<br /><br /> I am happy to provide the code to anyone interested (C# - Windows Forms and Console app + C# Libraries), and a big thanks to all the people who helped me in this forum to understand how the Robobuilder works, specially l3v3rz and Pedro <img src="http://forum.robosavvy.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" /><br /><br /> Enjoy!<br /><br />     Alex<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1992">AlexanderHWUK</a> — Mon Mar 29, 2010 7:59 pm</p><hr />
]]></content>
</entry>
</feed>