<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>robots.net blog for raquib</title>
    <link>http://robots.net/person/raquib/</link>
    <description>robots.net blog for raquib</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 16 May 2008 12:20:21 GMT</pubDate>
    <item>
      <pubDate>Tue, 19 Dec 2006 02:03:50 GMT</pubDate>
      <title>19 Dec 2006</title>
      <link>http://robots.net/person/raquib/diary.html?start=5</link>
      <guid>http://robots.net/person/raquib/diary.html?start=5</guid>
      <description>It's been a while. moved the senscience project over to&#xD;
describe my thesis. updates more regularly soon... </description>
    </item>
    <item>
      <pubDate>Tue, 16 Mar 2004 15:19:38 GMT</pubDate>
      <title>16 Mar 2004</title>
      <link>http://robots.net/person/raquib/diary.html?start=4</link>
      <guid>http://robots.net/person/raquib/diary.html?start=4</guid>
      <description>Just a quick update,
the darpa project is moving along steadily
we named our group gcart (grand challenge autonomous yada yada)
website is now  gcart.rit.edu

&lt;p&gt; yea, i know, lots of random sentences there... link em
together. 
In other news, i'm messing around with a new type of neural
net, which i'm calling the "messynet". Yea, that's right,
because it's that messy. I'll put up initial results soon...
churning through test cases as i'm typing.
</description>
    </item>
    <item>
      <pubDate>Tue, 28 Oct 2003 05:20:29 GMT</pubDate>
      <title>28 Oct 2003</title>
      <link>http://robots.net/person/raquib/diary.html?start=3</link>
      <guid>http://robots.net/person/raquib/diary.html?start=3</guid>
      <description>OK, starting with the DARPA project. Got funding (in the
form of software) from evolution robotics. Sencience will
have to take a back seat as this project devolopes. More
coming soon...


&lt;p&gt; darpa.rit.edu</description>
    </item>
    <item>
      <pubDate>Mon, 18 Aug 2003 22:27:20 GMT</pubDate>
      <title>18 Aug 2003</title>
      <link>http://robots.net/person/raquib/diary.html?start=2</link>
      <guid>http://robots.net/person/raquib/diary.html?start=2</guid>
      <description>OK, here's some really basic code for one of my subroutine 
programs. This one will be the one that "blindly" builds a 
map of where the robot is and where other things may be. 
The map itself is only used as a secondary source (more for 
seeing "am i headed in the right direction" then for 
planning out complex moves). 

&lt;p&gt; sensors used: 
3 IR sensors that measure proximity to robot. They are 
placed facing foward, foward left, and foward 
right.Distance tracking: x,y, and degree values of the 
robot are measured by the robot. There may be a lot of 
imprecision here, which is why the map is a secondary 
source! (NOTE: the x and y values may be negative! the 
robot starts off in the state 0,0 )


&lt;p&gt; The pseudocode:

&lt;p&gt; /*
NOTES: if you use this, email me...!  raquib0@lycos.com i'd 
like to hear about your robot! (credit would be nice too..)

&lt;p&gt; a map is made up of areas

&lt;p&gt; an area is a matrix of doubles (real numbers) where the 
location of each element (x,y) represents a set distance 
and the value of each element represents the probability 
that is is "filled".

&lt;p&gt; when I say "mark" an area, i mean that you will do this:

&lt;p&gt; &lt;br&gt;   your position is x,y
&lt;br&gt;   add .1 (or some other constant) to the elements 1 
element away from x,y
&lt;br&gt;   add .05 (or some other contant) to the elements 2 
elements away from x,y
&lt;br&gt;   add .0025 (or some other contant) to the elements 3 
elements away from x,y...
&lt;br&gt;   ....  etc
&lt;br&gt;   ....  etc
&lt;br&gt;   keep doing this for N elements away from xy


&lt;p&gt; the elements in the matrix with a value above a certain 
threshold are likely to be filled... you can use this to 
plan a overall route to a point.


&lt;p&gt; */

&lt;p&gt; &lt;br&gt; constant Tx; // max x size on the map
&lt;br&gt; constant Ty; // max y size on the map
&lt;br&gt; constant Td = 360; // max degrees
&lt;br&gt; constant Tir; // threshold for IR values to signal a 
mark event

&lt;p&gt; &lt;br&gt;var doff = 0;
&lt;br&gt;var xoff = 10;
&lt;br&gt;var yoff = 10;

&lt;p&gt; &lt;br&gt;var ir1, ir2, ir3, x,y,d 

&lt;p&gt; &lt;br&gt;begin critical loop{
  
&lt;br&gt;   read in ir1, ir2, ir3, x,y,d values from robot
&lt;br&gt;   // bring the x,y values to our system
&lt;br&gt;   x += (Tx/2);
&lt;br&gt;   y += (Ty/2);

&lt;p&gt; &lt;br&gt;    // now put x,y to our degree position
&lt;br&gt;   var distance = sqrt(x*x + y*y);
&lt;br&gt;   x = distance*sin(doff+d);
&lt;br&gt;   y = distance*cos(doff+d);
  
&lt;br&gt;   // check bounds, create or move to new area if need 
be
&lt;br&gt;   if(! inbounds(x,y) ){
&lt;br&gt;     make xoff and yoff starting positions in new area
&lt;br&gt;      doff = (doff+d)%Td;
&lt;br&gt;      go back to start of loop
&lt;br&gt;   }  // inbounds check
  

&lt;p&gt; &lt;br&gt;    // check if i should update this area of the map
&lt;br&gt;   if(ir1 + ir2 + ir3 &amp;gt; Tir){
&lt;br&gt;      update values around me in the area
&lt;br&gt;   }
&lt;br&gt;} // end of crtical loop</description>
    </item>
    <item>
      <pubDate>Wed, 13 Aug 2003 04:04:58 GMT</pubDate>
      <title>13 Aug 2003</title>
      <link>http://robots.net/person/raquib/diary.html?start=1</link>
      <guid>http://robots.net/person/raquib/diary.html?start=1</guid>
      <description>So here's another project i'm working on cocurrently. A 
music analyser using neural nets. I'm using the Maate MPEG 
library to decode mp3s and running them through the neural 
net to look for classifications. Okay, that made no sense. 
Here we go. Let's call the program MA. You pass in 2 lists 
to MA, a list of songs you want to hear and a list of songs 
that you don't want to hear. You then train the network (a 
standard FFN) with the lists that you passed in, expecting 
a result of 1 for a good song and 0 for a bad. I'm 
currently using the RMS value of each subband as the inputs 
to the network. Layers: variable node input layer, 20 and 
10 node hidden layers, and a 1 node output layer. I want to 
extend the program so I have multiple nets (RMS, Centroid, 
Energy Movement, etc) and allow the songs that have a 
majority of the nets firing to enter the "good" list. I've 
only programmed in the RMS network so far, and that seems 
to be working well. I'm looking at a 98% success rate so 
far... i'll get back to the robot soon...</description>
    </item>
    <item>
      <pubDate>Mon, 11 Aug 2003 03:31:11 GMT</pubDate>
      <title>11 Aug 2003</title>
      <link>http://robots.net/person/raquib/diary.html?start=0</link>
      <guid>http://robots.net/person/raquib/diary.html?start=0</guid>
      <description>And the journey into the realm of AI is a harsh one. The 
basic plan right now is loop... loop... and loop. Every 
subsystem runs on its own with no communication with the 
others. I'm thinking that's a good idea and a bad one at 
the same time. I'm using what's generally known as 
subsumption architecture, (build one layer, then another, 
then another... have the real world be the model.. ), but 
the results although interesting, aren't what i want. It's 
ok to have a robot avoid everything, until you want it to 
get close to something. I've been wondering about how to 
have everything communicate with each other but in a 
general enough way so that i don't have to specialize any 
given item.
Here's the plan: connect everything with "chemical-like" 
messages. imagine the modules of the robot in a chemical 
pool, much like cells in our body. Each module is affected 
by a particular signal, say inhibit other motor modules, 
excite other motor modules, inhibit sensory information, 
etc... Right now, i'm planning on 2 signals for the motors 
(as the motor is the only thing that does stuff right now) 
inhibit motors to everything else, excite to everything 
else. All inhibit and excite do is change the module's rate 
of fire. Alright, enough typing... back to work.</description>
    </item>
  </channel>
</rss>
