<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>robots.net blog for motters</title>
    <link>http://robots.net/person/motters/</link>
    <description>robots.net blog for motters</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sat, 17 May 2008 22:40:36 GMT</pubDate>
    <item>
      <pubDate>Sun, 20 Apr 2008 19:35:19 GMT</pubDate>
      <title>20 Apr 2008</title>
      <link>http://robots.net/person/motters/diary.html?start=48</link>
      <guid>http://robots.net/person/motters/diary.html?start=48</guid>
      <description>More hardware hacking.  I added some buttons for starting&#xD;
and stopping the robot, a joystick to be used for teaching&#xD;
specific routes (amongst other things) and an additional&#xD;
infrared motion sensor.  The motion sensor will be used to&#xD;
detect the presence of people in a room when the robot is&#xD;
stationary, just like a burglar alarm.  Once the robot knows&#xD;
that there is someone in the general vicinity it can use its&#xD;
cameras and pan/tilt mechanism to locate them.&#xD;
&#xD;
&lt;p&gt; http://farm4.static.flickr.com/3280/2427779514_d28b368557.jpg</description>
    </item>
    <item>
      <pubDate>Sun, 13 Apr 2008 19:58:24 GMT</pubDate>
      <title>13 Apr 2008</title>
      <link>http://robots.net/person/motters/diary.html?start=47</link>
      <guid>http://robots.net/person/motters/diary.html?start=47</guid>
      <description>The physical construction of the robot is now complete.  It&#xD;
looks like this.&#xD;
&#xD;
&lt;p&gt; http://farm3.static.flickr.com/2169/2408346868_efca6ed26f.jpg&#xD;
&#xD;
&lt;p&gt; Next weekend I'll do the first dead reckoning runs to&#xD;
determine how quickly position and pose errors typically&#xD;
accumulate.  This information will then be used as part of&#xD;
the motion model.  I may also need to do additional tuning&#xD;
of the main drive motors, since the original tuning&#xD;
parameters were for an unloaded situation with the robot&#xD;
sitting on a pile of books.</description>
    </item>
    <item>
      <pubDate>Sun, 30 Mar 2008 18:35:41 GMT</pubDate>
      <title>30 Mar 2008</title>
      <link>http://robots.net/person/motters/diary.html?start=46</link>
      <guid>http://robots.net/person/motters/diary.html?start=46</guid>
      <description>Things are now moving along pretty well.  Using the phidgets&#xD;
motor controller and a pair of encoder modules I can get&#xD;
good closed loop position control of the robot, and this&#xD;
morning ran the first few tests, with the robot actually&#xD;
rolling along the floor rather than being jacked up on a&#xD;
couple of books as it was whilst writing the motion control&#xD;
software and tuning the PID gains.  I'm quite pleased with&#xD;
the results so far, and it does look like I'll be able to&#xD;
achieve a reasonable dead reckoning performance which can&#xD;
then be integrated with the vision system to give reliable&#xD;
navigation.&#xD;
&#xD;
&lt;p&gt; Currently the robot looks like this:&#xD;
&#xD;
&lt;p&gt; http://farm4.static.flickr.com/3208/2373724362_3b23854c8d_b.jpg&#xD;
&#xD;
&lt;p&gt; http://www.youtube.com/watch?v=8FRJxWcAzI4&#xD;
&#xD;
&lt;p&gt; http://farm4.static.flickr.com/3024/2372889549_b50154a8a3_b.jpg&#xD;
&#xD;
&lt;p&gt; http://www.youtube.com/watch?v=CByUznJRs_g&#xD;
&#xD;
&lt;p&gt; There's still much more to be done with the software, but I&#xD;
think most of the hardware hacking is now out of the way.  I&#xD;
only have some cable tidying to do, and will perhaps make&#xD;
the head covering a little more robust to protect the&#xD;
cameras.  At present the robot is still tethered to a mains&#xD;
supply, and I'll probably leave it that way until testing&#xD;
navigation over significant distances becomes an issue.</description>
    </item>
    <item>
      <pubDate>Sat, 1 Mar 2008 21:16:08 GMT</pubDate>
      <title>1 Mar 2008</title>
      <link>http://robots.net/person/motters/diary.html?start=45</link>
      <guid>http://robots.net/person/motters/diary.html?start=45</guid>
      <description>Over the last few weekends I've been stuck with a&#xD;
microcontroller problem.  Basically I'm just trying to use a&#xD;
couple of interrupts to count encoder pulses, then pass that&#xD;
back to a PC via RS232.  The programming on this stuff is&#xD;
fairly archaic and requires proprietary software tools which&#xD;
are flaky and no longer supported (the classic proprietary&#xD;
"software death").  I don't really want to spend weeks or&#xD;
months on this so as a plan B I've opted for using a couple&#xD;
of phidget encoder counter boards instead.&#xD;
&#xD;
&lt;p&gt; http://www.active-robots.com/products/phidgets/encoder-1057-details.shtml&#xD;
&#xD;
&lt;p&gt; This is a slightly more expensive solution, but it will&#xD;
allow me to use full quadrature rather than just single&#xD;
ended pulses and the rate of communication with the PC will&#xD;
be far higher than is the case for RS232 at 9600 baud.&#xD;
&#xD;
&lt;p&gt; I've also noticed that the servo which I'm using to pan the&#xD;
stereo cameras is underpowered, resulting in some laggy&#xD;
control.  At the moment I'm just using bog standard 3kg/cm&#xD;
RC servos for pan and tilt, which you can get from any hobby&#xD;
store.  I've ordered a couple of 13kg/cm RC servos with the&#xD;
same physical dimensions and metal gears which should give&#xD;
better controlled movement.  Good control of the stereo&#xD;
cameras will be essential for 3D mapping performance.&#xD;
&#xD;
&lt;p&gt; If all goes well and there are no further holdups I'm hoping&#xD;
to be able to begin some dead reckoning tests in maybe a month.&#xD;
&#xD;
&lt;p&gt; Of course all of this hoo-haar is symptomatic of the fact&#xD;
that at present there is no reasonably sized PC based robot&#xD;
platform which you can buy on a hobbyists budget as an "off&#xD;
the shelf" package.</description>
    </item>
    <item>
      <pubDate>Mon, 21 Jan 2008 22:52:08 GMT</pubDate>
      <title>21 Jan 2008</title>
      <link>http://robots.net/person/motters/diary.html?start=44</link>
      <guid>http://robots.net/person/motters/diary.html?start=44</guid>
      <description>I've added a second rearward looking stereo camera to the&#xD;
robot.  This isn't yet calibrated, but that's a fairly&#xD;
straightforward procedure which I always intended would be&#xD;
done with the cameras in situ.  I'll probably also need a&#xD;
separate calibration procedure to characterise the pan and&#xD;
tilt behavior as well as possible.  This will allow the grid&#xD;
maps to be updated properly, taking the head pose&#xD;
uncertainty into account.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt;&#xD;
http://farm3.static.flickr.com/2099/2205545549_e6bea41a36.jpg&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; One consideration when building the stereo head was&#xD;
whether the cameras should be rolled to a 45 degree angle or&#xD;
not. For simple types of stereo correspondence detecting&#xD;
vertically oriented features along each row of the image&#xD;
camera roll can be a good strategy allowing a mix of both&#xD;
vertically and horizontally aligned features in the&#xD;
environment to be ranged. However, for the stereo&#xD;
correspondence algorithm which I'm using rolling the cameras&#xD;
doesn't make all that much difference. This is mainly&#xD;
because I'm using simulated multi scale centre/surround&#xD;
fields, which turn each image into a kind of contour map,&#xD;
and also explicitly taking vertical context into account. In&#xD;
this case vertical context extends significantly beyond the&#xD;
usual patch matching windows. Hence features which may&#xD;
appear identical when narrowly viewed along each image row&#xD;
can be disambiguated from their wider surrounding context.&#xD;
There are still classic dilemmas, such as the "picket fence"&#xD;
effect, but vertical context tends to rule out all but the&#xD;
most mesmorizing situations.</description>
    </item>
    <item>
      <pubDate>Sun, 13 Jan 2008 17:48:47 GMT</pubDate>
      <title>13 Jan 2008</title>
      <link>http://robots.net/person/motters/diary.html?start=43</link>
      <guid>http://robots.net/person/motters/diary.html?start=43</guid>
      <description>The new robot is now being constructed.  I scavenged an&#xD;
ASC-16 servo controller from an earlier project and am using&#xD;
this to control the pan and tilt of the stereo cameras. &#xD;
Although it's quite old the ASC-16 (sold by www.medonis.com)&#xD;
allows good control of speed and acceleration and has quite&#xD;
a few features.  I also have five ultrasonic sensors&#xD;
networked and connected to an I2C-USB converter.  These have&#xD;
been tested out and are working well.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; The robot currently looks like this&#xD;
http://farm3.static.flickr.com/2110/2169598662_0fce766497.jpg&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Ultrasonics being tested&#xD;
http://farm3.static.flickr.com/2182/2141668593_14624ef85e.jpg&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; The main purpose of this robot will be to test and develop&#xD;
the Sentience system (http://code.google.com/p/sentience/),&#xD;
and I'll also be using a bridgeware framework&#xD;
(http://code.google.com/p/robotbridgeware/) so that the&#xD;
various pieces of hardware are all treated as network&#xD;
devices by the higher level software.  This idea was&#xD;
inspired from a talk last year by Matt Trossen, and also in&#xD;
another recent talk Rod Brooks mentioned that all the&#xD;
devices on the Pacbots are treated as network devices.</description>
    </item>
    <item>
      <pubDate>Sun, 2 Dec 2007 22:01:24 GMT</pubDate>
      <title>2 Dec 2007</title>
      <link>http://robots.net/person/motters/diary.html?start=42</link>
      <guid>http://robots.net/person/motters/diary.html?start=42</guid>
      <description>Added multi-threading to the stereo correspondence part of&#xD;
the software, so that when multiple stereo cameras are used&#xD;
together with a multi-core CPU the processing load is more&#xD;
evenly distributed.  The processing time for dense stereo&#xD;
correspondence on a 2GHz processor is now about 50&#xD;
milliseconds, since I've introduced a fast binarization step&#xD;
and am making greater use of vertical context.  The bulk of&#xD;
the time is now not actually in the matching but the&#xD;
integral image calculation, which is very unlikely to be&#xD;
significantly improved upon.&#xD;
&#xD;
&lt;p&gt; I've got some electronics on order and mobile robot testing&#xD;
is hopefully going to commence in January, after a lot of&#xD;
delay and dithering (all of which is hardware related - the&#xD;
software is pretty much ready to run).  Once I have&#xD;
something proven to work I'll release an initial alpha&#xD;
version of the software and a detailed description of how to&#xD;
independently reproduce the result (at last, robotics may&#xD;
yet become a proper science!).</description>
    </item>
    <item>
      <pubDate>Sun, 7 Oct 2007 09:20:33 GMT</pubDate>
      <title>7 Oct 2007</title>
      <link>http://robots.net/person/motters/diary.html?start=41</link>
      <guid>http://robots.net/person/motters/diary.html?start=41</guid>
      <description>Have been experimenting with simple mirrored stereo vision,&#xD;
as described on the Mirage Robotics site.  It's fairly&#xD;
trivial to adjust the stereo sensor models to handle this&#xD;
type of setup.  The good news is that this effect certainly&#xD;
works, and would simplify the camera calibration procedure.&#xD;
 However it does look as if you need quite a large mirror in&#xD;
order to be able to get a good stereo effect, which limits&#xD;
the practicality of this design.  This would be ok if you&#xD;
needed stereo vision on a large robot, but I think for most&#xD;
smaller robots it wouldn't be suitable.&#xD;
&#xD;
&lt;p&gt; So for the present it still looks like conventional twin&#xD;
camera stereo is the preferable option.</description>
    </item>
    <item>
      <pubDate>Sun, 30 Sep 2007 19:37:24 GMT</pubDate>
      <title>30 Sep 2007</title>
      <link>http://robots.net/person/motters/diary.html?start=40</link>
      <guid>http://robots.net/person/motters/diary.html?start=40</guid>
      <description>Found an interesting looking web site selling robot bases,&#xD;
which might be ideal for further development of the stereo&#xD;
vision system.&#xD;
&#xD;
&lt;p&gt; https://www.zagrosrobotics.com/&#xD;
&#xD;
&lt;p&gt; I could buy a cheap laptop with a dual core CPU which would&#xD;
probably provide more than enough computing power to do the&#xD;
job, and the whole robot could be constructed reasonably&#xD;
cheaply.</description>
    </item>
    <item>
      <pubDate>Sun, 30 Sep 2007 11:56:56 GMT</pubDate>
      <title>30 Sep 2007</title>
      <link>http://robots.net/person/motters/diary.html?start=39</link>
      <guid>http://robots.net/person/motters/diary.html?start=39</guid>
      <description>I've added a program to visualise the depth maps resulting&#xD;
from stereo correspondence.  This is mainly so that I can&#xD;
tweak the algorithm and view the results.  It has user&#xD;
interfaces for VS2005 and also for MonoDevelop.&#xD;
&#xD;
&lt;p&gt; http://sentience.googlecode.com/svn/trunk/applications/stereocorrespondence/&#xD;
&#xD;
&lt;p&gt; Also I've added a roadmap with a list of things remaining to&#xD;
be done.  Mostly its just down to integration testing.&#xD;
&#xD;
&lt;p&gt; http://code.google.com/p/sentience/wiki/ProjectRoadmap&#xD;
&#xD;
&lt;p&gt; I could use the humanoids for some testing, but the way that&#xD;
their vision is physically constructed isn't ideal and could&#xD;
introduce significant errors.  Over the years I've gone from&#xD;
trying to implement biological-type stereo vision with eyes&#xD;
which can verge to a more engineering approach where the&#xD;
cameras are rigidly fixed in place and calibrated.</description>
    </item>
  </channel>
</rss>
