<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6824434415499038373</id><updated>2011-07-07T17:39:02.282-07:00</updated><title type='text'>Intelligent Systems</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6824434415499038373.post-3796052429673996365</id><published>2009-08-27T03:49:00.000-07:00</published><updated>2009-12-08T11:07:43.655-08:00</updated><title type='text'>Z Axis For Camera Calibration and getting a 3D coordinate from 2D image</title><content type='html'>&lt;span style="font-family:courier new;"&gt;I have recently started working with computer vision problems and one of the first problem i needed to solve was getting the 3D coordinates from a 2D image. I had absolutely no clue to where I should start and I ended up reading lots of theory behind image formation and simple models of camera called pinhole camera model.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;In the pinhole camera model, you imagine a box with a small aperture through which light can enter and the image plane is inside the box. This model basically give a transformation equation from a 3D coordinate to 2D image plane coordinates with the focal length as a variable. In a real camera, lenses are used and hence there are more variables internal to the camera like lens distortion coefficients- both tangential and radial. These parameters are called the intrinsic parameters. Once these intrinsic parameters are known, the transformation between a 3D coordinate system and 2D system can be solved. And camera calibration is a method to do just that.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;A good calibration software for Matlab is available &lt;/span&gt;&lt;a style="color: rgb(0, 0, 102); font-family: courier new;" href="http://www.vision.caltech.edu/bouguetj/calib_doc/"&gt;HERE&lt;/a&gt;&lt;span style="font-family:courier new;"&gt; It also contain links to various other works on camera calibration.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;To get the depth of the image, a single camera is not sufficient. 2 cameras can be used for calibration and that procedure is called stereo calibration. There is a library containing different types of algorithm for computer vision problems called &lt;/span&gt;&lt;a style="color: rgb(0, 0, 102); font-family: courier new;" href="http://opencv.willowgarage.com/wiki/"&gt;OPENCV&lt;/a&gt;&lt;span style="font-family:courier new;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;There are mainly two types of calibration process - &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-family:courier new;" &gt;photogrammetric calibration&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; which is calibrating a camera by viewing an object with known size and location and is the commonly used method for almost all calibration methods. The second method is &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);font-family:courier new;" &gt;self-calibration&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; which aims to calibrate a camera by moving it and has not been fully developed yet.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;For photogrammetric calibration as the one in the link above, its easy to be confused with how the chessboard(calibration object) coordinates are taken. I thought at first that all the values of 3D coordinate of the object is known but this is not the case. Only the X and Y coordinate values are known as the chessboard has all patterns of same size. The third value ie the z cordinate is not known and is taken as constant. This is logical as the frame of reference is fixed on the board and hence we can alway assume z to be any constant. In the equation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                                               x=MRTw&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;where x=image coordinate vector, M= camera matrix , R=rotational vectors ,T=translational vectors, w=object vector.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Its easy to wrongly assume that the translation and rotational vectors are somehow used to determine the depth of the object from the camera. The coordinates are taken as fixed on the chessboard. So you have x axis along the width and y axis along height or vice versa and finally the z axis perpendicular to the plane. During the calibration process the z value is always assumed to be constant. This is abit confusing as we are moving the chessboard around for each calibration image.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;To understand this, imagine the chessboard as lying flat on a table and assume the coordinates as described above. Now you move the camera to get the same image as the ones taken before. Here, the rotation and translation of the camera is described by the rotation and translational vectors ie how the camera rotate and translate relative to the fixed frame of the chessboard and hence the depth of the camera from the board is not known at all.  All we are doing is getting the XY values (since those values are known)  so that we can determine the intrinsic parameters. The rotation and translation vectors have the same meaning when doing the calibration by moving the chessboard and keeping camera fixed.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824434415499038373-3796052429673996365?l=edwardlhm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/3796052429673996365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824434415499038373&amp;postID=3796052429673996365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/3796052429673996365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/3796052429673996365'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/2009/08/camera-calibration-and-getting-3d.html' title='Z Axis For Camera Calibration and getting a 3D coordinate from 2D image'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824434415499038373.post-7417924913398090216</id><published>2009-03-12T23:15:00.000-07:00</published><updated>2009-10-01T17:01:02.198-07:00</updated><title type='text'>Does a Genetic Algorithm Always Have To Be Population Based??</title><content type='html'>&lt;div  style="text-align: justify; font-family: courier new;font-family:verdana;"&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Genetic algorithm (GA) is a computational method of problem solving which draws inspirations from the mechanisms of evolution. It is a population based algorithm in which the population consist of potential solutions, called genotypes. The first step is the encoding process which simply creates a ‘template’ to represent a solution. Note that these potential solutions are not the real solution to the problem; they are just a random instance of a potential solution. A simple analogy for this process in computer programming would be to define what data type to be used and then randomly generating values of that data type. The algorithm will then ‘evolve’ the population over a number of generations using a fitness function which gives guidelines to evaluate the genotypes and thereby a way to produce better genotypes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Recombination and mutation are the techniques which are used to evolve the solution of the algorithm. Both of these methods are modelled on their biological counterparts. Recombination involves taking two genotypes and creating a new genotype by combining these two genotypes in some fashion. Mutation involves altering the values of the genotype to any other values permitted by the encoding ‘template’. Over the generations, the older genotypes ‘dies’ off and are replaced by better genotypes. Hence, we get a population with higher average fitness value which will move towards the correct or optimal solution.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SboGh6vhUTI/AAAAAAAAABo/MVJoTRHU3HA/s1600-h/piclandsca.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 221px;" src="http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SboGh6vhUTI/AAAAAAAAABo/MVJoTRHU3HA/s320/piclandsca.JPG" alt="" id="BLOGGER_PHOTO_ID_5312565890210943282" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;In the classical view of genetic algorithm, the evolutionary landscape was thought to be rugged as shown in the figure above and the algorithm was seen as performing a ‘hill climbing’ function on this landscape. In such scenario, there is a chance of not finding the global optima. Neutral networks are like ridges connecting two terrains with same fitness value. Thus, the search can jump from one terrain to another by mutation. If such networks exist abundantly throughout the landscape, the search will never get stuck in local optima and hence the evolutionary dynamics changes considerably. The term ‘neutral network’ has been conceived by Schuster while doing research on RNA evolution. Thus the landscape can now be viewed as layers of neutral networks connected by mutations where each neutral network has a unique fitness value.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;In the presence of such networks, a new algorithm has been proposed which is very different from the traditional genetic algorithm. This algorithm doesn’t use recombination method and have a population of only one genotype. A mutated genotype is created and the fitness values of the mutated genotype and the original genotype are compared. If the fitness value of the mutated genotype is smaller than the original genotype, the original genotype is selected for further mutation; otherwise the mutated genotype is selected for further mutation. These steps are repeated a number of times till we get an optimal solution. And it has been shown that this algorithm performs much better than the population based GA which shows that a GA doesn’t need to be population based all the time, at least not when there are neutral networks.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824434415499038373-7417924913398090216?l=edwardlhm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/7417924913398090216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824434415499038373&amp;postID=7417924913398090216' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/7417924913398090216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/7417924913398090216'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/2009/03/does-genetic-algorithm-always-have-to.html' title='Does a Genetic Algorithm Always Have To Be Population Based??'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SboGh6vhUTI/AAAAAAAAABo/MVJoTRHU3HA/s72-c/piclandsca.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824434415499038373.post-7029220487539867770</id><published>2009-03-12T22:16:00.000-07:00</published><updated>2009-03-13T00:14:52.749-07:00</updated><title type='text'>Neutral Networks In Artificial Evolution</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a style="font-family: verdana;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_0VYAM5ZR_Mg/Sbnsunh5-OI/AAAAAAAAABQ/flaEuDHV0p8/s1600-h/300px-NN_FL.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 177px;" src="http://3.bp.blogspot.com/_0VYAM5ZR_Mg/Sbnsunh5-OI/AAAAAAAAABQ/flaEuDHV0p8/s320/300px-NN_FL.jpg" alt="" id="BLOGGER_PHOTO_ID_5312537521089542370" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;Neutral network basically mean a set of genotypes with the same fitness value. Consider the figure above which I've plagiarized from Inman's article in &lt;a href="http://www.scholarpedia.org/article/Neutral_networks"&gt;scholarpedia&lt;/a&gt;. The yellow, green and blue layers are the neutral networks and there is a single fitness value for each layer.  The red bars represent the mutation which allows movement from one network to another.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;So what is the significance of this??&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;The most important outcome of the existence of the above phenomenon is in the effect it has on the design of the genetic algorithm. Classical view of genetic algorithm has always neglected this phenomenon as a result of which genetic algorithm look the way they do today. In the presence of the neutrality, the design of genetic algorithm changes as pointed out by Lionel Barnett in the paper- &lt;a href="http://ieeexplore.ieee.org/Xplore/dynhome.jsp"&gt;Lionel Barnett (2000) Netcrawling - Optimal Evolutionary Search with Neutral Networks.&lt;/a&gt; This paper presents a new algorithm to deal with problems containing neutrality.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;A good description of neutral network by Inman Harvey &lt;a href="http://www.scholarpedia.org/article/Neutral_networks"&gt;is available here.&lt;/a&gt; At the time of this post, this is the only proper description of neutral network available on the net.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824434415499038373-7029220487539867770?l=edwardlhm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/7029220487539867770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824434415499038373&amp;postID=7029220487539867770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/7029220487539867770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/7029220487539867770'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/2009/03/neutral-networks-in-artificial.html' title='Neutral Networks In Artificial Evolution'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_0VYAM5ZR_Mg/Sbnsunh5-OI/AAAAAAAAABQ/flaEuDHV0p8/s72-c/300px-NN_FL.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824434415499038373.post-2716848798915777989</id><published>2009-03-12T20:57:00.000-07:00</published><updated>2009-03-13T00:15:12.501-07:00</updated><title type='text'>Genetic  Algorithm In A Nutshell</title><content type='html'>&lt;span style="font-family: verdana;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;Genetic algorithm is a programming technique for problem solving by mimicking evolution. It has been used extensively in robotics and other applications where you would want to do away with hard coding certain procedures for obtaining solution and leave the program to decide the best solution on its own.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;Given any problem to solve, potential solutions are encoded and fed into the program. These potential solutions are called genotypes and the set of all genotypes is called the population of the GA. This population is then 'evolved' using a fitness function and other techniques which changes the population to a new population with better average fitness value. One complete cycle which changes the old population to a new one is taken as one generation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;The 'evolution' is done by using a combination of two techniques which also draw inspiration from biology. The first is the recombination method which is the basically&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;recombining the genotypes to produce a new genotype. Mutation is the second method involved which is basically mutating the genotype to any possible value permitted by the encoding standard.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;This procedure is repeated over many generations. So, in course of time, the GA will optimize its population to one containing comparatively larger number of better solution candidates.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;As GA is basically a type of optimization method, it is not suitable for all types of problem.&lt;a href="http://findarticles.com/p/articles/mi_m0REL/is_n5_v92/ai_12238966"&gt; A good description of the types of problems suitable for genetic algorithm can be found here.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-size:130%;" &gt;A nice general description of GA as well as an example of how a GA solve a problem plus codes in Delphi and java &lt;a href="http://www.ai-junkie.com/ga/intro/gat1.html"&gt;is available here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824434415499038373-2716848798915777989?l=edwardlhm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/2716848798915777989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824434415499038373&amp;postID=2716848798915777989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/2716848798915777989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/2716848798915777989'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/2009/03/genetic-algorithm-in-nutshell.html' title='Genetic  Algorithm In A Nutshell'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824434415499038373.post-4287604414848810883</id><published>2009-03-12T17:55:00.001-07:00</published><updated>2009-03-13T00:16:09.638-07:00</updated><title type='text'>Adam And Eve Of Robotics</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: verdana; text-align: justify;"&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-size:130%;"&gt;William Grey Walter (1910-1977)  was a neurophysiologist and robotician who lived in Bristol, England. Though his name is mostly forgotten nowadays, he built what is arguably the first real demonstration of artificial life way back in 1949. Here's a clip of the autonomous robots he built in 1949.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-size:100%;" &gt;&lt;span style="font-size:130%;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lLULRlmXkKo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/lLULRlmXkKo&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-size:130%;" &gt;He named these robots Elmer and Elsie. They are widely regarded by many as the Adam and Eve of robotics. Its interesting to see how modern robots have not shown much advances from these forerunners. &lt;/span&gt;&lt;span style=";font-size:130%;" &gt;These robots were often described as tortoises because of the shape of their design as well as their slow rates of movement. &lt;/span&gt;&lt;span style=";font-size:130%;" &gt;They were capable of  phototaxis and returning to recharge themselves&lt;/span&gt;&lt;span style=";font-size:130%;" &gt; once they run low on battery power.Whats even more interesting is that these robots were built without any processors or other digital components which are so widespread and essential in robot building nowadays.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824434415499038373-4287604414848810883?l=edwardlhm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/4287604414848810883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824434415499038373&amp;postID=4287604414848810883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/4287604414848810883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/4287604414848810883'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/2009/03/adam-and-eve-of-robotics.html' title='Adam And Eve Of Robotics'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824434415499038373.post-2268335730331010695</id><published>2009-03-12T17:18:00.000-07:00</published><updated>2009-03-13T01:10:24.514-07:00</updated><title type='text'>The Most Advanced Quadruped Robot On Earth</title><content type='html'>&lt;span style=";font-family:verdana;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;The first time I saw this video, I thought it was a scene from a science fiction movie. But this is a real robot built by Boston Dynamics. It is called BigDog.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cHJJQ0zNNOM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/cHJJQ0zNNOM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;It is a quadruped robot which can run, walk, climb rough terrains and carry heavy loads. The design of the legs are particularly interesting as it seems to resemble a real animal. BigDog is powered by a gasoline engine that drives a hydraulic actuation system. BigDog has an on-board computer that controls locomotion, servos the legs and handles a wide variety of sensors. BigDog’s control system manages the dynamics of its behavior to keep it balanced, steer, navigate, and regulate energetics as conditions vary.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:verdana;font-size:130%;"  &gt;Here’s another video of a less impressive but equally interesting robot by Boston Dynamics.&lt;/span&gt;&lt;br /&gt;&lt;object style="font-family: verdana;" width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/a0NFrA-Nx4Y&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/a0NFrA-Nx4Y&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824434415499038373-2268335730331010695?l=edwardlhm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/2268335730331010695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824434415499038373&amp;postID=2268335730331010695' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/2268335730331010695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/2268335730331010695'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/2009/03/most-advanced-quadruped-robot-on-earth.html' title='The Most Advanced Quadruped Robot On Earth'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6824434415499038373.post-7518348543997746404</id><published>2009-03-10T14:47:00.000-07:00</published><updated>2009-03-13T00:13:48.878-07:00</updated><title type='text'>Episodic Memory System For Autonomous Agents</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-family: verdana;"&gt;&lt;span style="font-size:130%;"&gt;Episodic memory, a term coined by Endel Tulving, is basically the memory system which provides the ability to recollect past personal experiences. It is that part of the memory which allows you to integrate the ‘what’, ‘when’ and ‘where’ features of personal experiences which can be recollected later. The episodic memory system is different from the semantic memory system although they collaborated closely for various activities.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The idea of building robots with an episodic memory system is an interesting area of research and we'll look at two recent papers on the subject and some of the problems and challenges of building an episodic memory system. But first, let’s look at some of the steps involved in building any memory system.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The stages involved in building an episodic memory system can be broken down as follows:-&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;(1) Encoding-&lt;/span&gt; This phase will deal with how the incident is captured. There are different ways of encoding this captured incident in the internal memory. A good encoding scheme could allow for relational clues among the different incidents captured&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;(2) Storage- &lt;/span&gt;The storage phase is concerned with how the captured memories are maintained. In this phase, there is an interesting problem to address, the question of which captured memories to delete when there the storage is full. Humans also forget things as time elapsed and so the this phase of design has to allow some memories to be ‘forgotten’. However, an exponential decay of memories would be a bad design as there may be some memories which needs to be preserved and are crucial for many other things. As we’ll see later, most of the existing solutions to this problem has not been satisfactory.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;(3) Retrieval and use. &lt;/span&gt;The retrieval phase is concerned with retrieval of stored memory and the use phase is concerned with what or how the retrieved memory is going to be used.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The first paper -&lt;a href="http://ieeexplore.ieee.org/Xplore/dynhome.jsp"&gt; Deutsch,T., Lang,R., Gruber,A.,Velik,R. (2008) Episodic memory for autonomous agents.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;This paper discussed most of the existing models on the subject and highlighted the major problems associated with each model. The paper also mentioned ISAC, a model with an interesting view of the role of emotion in remembering and forgetting memories.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Perhaps, the most interesting part is the speculation on the possibility of transferring the memories between semantic and episodic memory systems, to facilitate learning in robots.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The second paper is -&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;a href="http://ieeexplore.ieee.org/Xplore/dynhome.jsp"&gt;Kuppuswamy,N,S., Cho,S,E., Kim,J,H. (2006) A Cognitive Control Architecture for an Artificial Creature using Episodic Memory.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;This paper described the cognition system of a virtual creature called Ritty. The virtual creature is a virtual model of a dog so there are many behaviours which are similar to a real dog. Ritty is placed in a virtual environment and its task is to explore the environment. The simulation showed that Ritty was able to optimize certain tasks by using the episodic memory system.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;One of the main problems, which all of the models have is the problem of ‘forgetting’ as mentioned earlier. The ISAC humanoid has an emotion triggered mechanism which is an interesting solution, but this still mechanism still rely on an exponential decay mechanism indirectly. One can argue that the decay mechanism is sufficient for simple robots that perform simple tasks but as the tasks to be performed become more complicated, a more sophisticated mechanism is required. &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6824434415499038373-7518348543997746404?l=edwardlhm.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edwardlhm.blogspot.com/feeds/7518348543997746404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6824434415499038373&amp;postID=7518348543997746404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/7518348543997746404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6824434415499038373/posts/default/7518348543997746404'/><link rel='alternate' type='text/html' href='http://edwardlhm.blogspot.com/2009/03/edward-12.html' title='Episodic Memory System For Autonomous Agents'/><author><name>EdwardLHM</name><uri>http://www.blogger.com/profile/13664782166058434857</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_0VYAM5ZR_Mg/SbqhEPVUaDI/AAAAAAAAAB4/-UeLNjoX4NI/S220/ed.jpg'/></author><thr:total>0</thr:total></entry></feed>
