<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Edinburgh Hacklab</title>
	<atom:link href="http://edinburghhacklab.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://edinburghhacklab.com</link>
	<description>Making stuff since 2010</description>
	<lastBuildDate>Wed, 16 May 2012 21:29:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Can&#8217;t wait for the Raspberry Pi? Hack a router!</title>
		<link>http://edinburghhacklab.com/2012/05/raspberry-pi-alternative/</link>
		<comments>http://edinburghhacklab.com/2012/05/raspberry-pi-alternative/#comments</comments>
		<pubDate>Wed, 16 May 2012 21:27:17 +0000</pubDate>
		<dc:creator>Al</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[OpenWRT]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=861</guid>
		<description><![CDATA[My Raspberry Pi delivery date is now only two ice ages away! Until the mighty Pi ships, where can you get a cheap embedded Linux fix? Please welcome the catchily named TP-Link TL-WR703N! So what is it? For about £20 you can get a teeny embedded Linux device (in a nice little enclosure) with built in [...]]]></description>
			<content:encoded><![CDATA[<p>My Raspberry Pi delivery date is now only <strong>two</strong> ice ages away! Until the mighty Pi ships, where can you get a cheap embedded Linux fix? Please welcome the catchily named <strong>TP-Link TL-WR703N</strong>!</p>
<p><a href="http://edinburghhacklab.com/2012/05/raspberry-pi-alternative/703-1/" rel="attachment wp-att-862"><img class="alignnone size-medium wp-image-862" title="TL-WR703N" src="http://edinburghhacklab.com/wp-content/uploads/2012/05/703-1-450x308.jpg" alt="" width="450" height="308" /></a></p>
<p>So what is it? For about £20 you can get a teeny embedded Linux device (in a nice little enclosure) with built in 10/100 ethernet, 802.11bgn wifi and USB. Not bad for the same price as an Arduino! The device is intended to be used as a &#8220;travel router&#8221;, you&#8217;re supposed to shove a 3G dongle in the USB socket and then use it as a personal hotspot. It&#8217;d probably be handy to have one for that purpose, but that wouldn&#8217;t be very hacky would it?</p>
<p>I bought one of these after Stephen Giles recommended it on the Hacklab <a title="About" href="/about/#mailinglists">discuss mailing list</a>, turns out a few other members and Hacklab regulars have too. This device looks to be pretty popular with hackers, so you can expect to see it turn up in projects online (and probably in the lab too&#8230;).</p>
<p><a href="http://edinburghhacklab.com/2012/05/raspberry-pi-alternative/703-2/" rel="attachment wp-att-863"><img class="alignright size-thumbnail wp-image-863" title="TL-WR703N" src="http://edinburghhacklab.com/wp-content/uploads/2012/05/703-2-150x150.jpg" alt="" width="150" height="150" /></a>Why so popular with hackers? Well, despite shipping with a Chinese web interface, it&#8217;s a doddle to flash it with <a href="https://openwrt.org/">OpenWRT</a>, a lightweight Linux distro designed for routers and other low-spec embedded devices. Following <a href="http://wiki.openwrt.org/toh/tp-link/tl-wr703n">these instructions</a> on the OpenWRT site I was up and running in a few minutes. A few minutes later I was installing some packages and half an hour after that I had it configured as a client on my wifi network.</p>
<p>So what can be done with it? With OpenWRT installed, you can use it as nature intended and do some routing, making a nice small router/WAP. Or you can install packages to enable it to be a file server, using a USB flash disk or hard disk to make a tiny NAS box. Or you could attach a USB printer and make it a print server. Or you could plug in a cheap webcam and stream video. Or, and this is where it gets interesting, you could hook up something to the device&#8217;s onboard serial port (<a href="http://wiki.villagetelco.org/index.php?title=Building_a_Serial_Port_for_TL-WR703N">some soldering required</a>&#8230;) and internetify an LCD, or a temperature sensor, or an anything really. After the flashing LED, the UART is the embedded hacker&#8217;s best friend!</p>
<p>Sold yet? You can buy them from <a href="http://www.ebay.co.uk/sch/i.html?_from=R40&amp;_trksid=p5197.m570.l1311&amp;_nkw=tl-wr703n">eBay</a> for &lt;£20 shipped to the UK from China. They come with a US power supply but can be powered via micro USB.</p>
<p>I&#8217;m not sure what I&#8217;m going to do with mine yet, any ideas?</p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/05/raspberry-pi-alternative/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>May Music Night this Friday</title>
		<link>http://edinburghhacklab.com/2012/05/may-music-night-this-friday/</link>
		<comments>http://edinburghhacklab.com/2012/05/may-music-night-this-friday/#comments</comments>
		<pubDate>Tue, 15 May 2012 18:51:13 +0000</pubDate>
		<dc:creator>gde</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=856</guid>
		<description><![CDATA[This Friday, 18th May, is our monthly music night, starting from around 8pm in the lab. Come along to talk about music, hacking, and make some noise! The month before last I wasn&#8217;t there, and I missed out on Andrew and Tom&#8217;s resistive fabric synth, and James and Matt of Madlab making instruments out of [...]]]></description>
			<content:encoded><![CDATA[<p>This Friday, 18th May, is our monthly music night, starting from around 8pm in the lab. Come along to talk about music, hacking, and make some noise! The month before last I wasn&#8217;t there, and I missed out on Andrew and Tom&#8217;s resistive fabric synth, and James and Matt of Madlab making instruments out of jelly. Don&#8217;t make the same mistake I did: make sure you come to the lab on Friday!</p>
<p><a href="http://edinburghhacklab.com/2012/05/may-music-night-this-friday/imgp3768-scaled-450x298/" rel="attachment wp-att-857"><img class="alignright size-thumbnail wp-image-857" title="IMGP3768-scaled-450x298" src="http://edinburghhacklab.com/wp-content/uploads/2012/05/IMGP3768-scaled-450x298-150x150.jpg" alt="" width="150" height="150" /></a>This month Gareth is going to talk about using cSound to create sounds on your computer, and I hope we&#8217;ll have some live performances from anyone who fancies it. There&#8217;ll also be the usual blether and working on hacks throughout the night.</p>
<p>Bring your own hacks, ideas, news, and performances.</p>
<p>Hope to see you there <img src='http://edinburghhacklab.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Alex</p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/05/may-music-night-this-friday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acrylic boxes for Rasberry PI</title>
		<link>http://edinburghhacklab.com/2012/05/acrylic-boxes-for-rasberry-pi/</link>
		<comments>http://edinburghhacklab.com/2012/05/acrylic-boxes-for-rasberry-pi/#comments</comments>
		<pubDate>Thu, 10 May 2012 16:30:01 +0000</pubDate>
		<dc:creator>tom.larkworthy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=850</guid>
		<description><![CDATA[The guys at Shropshire Linux User Group have been busy designing boxes to put your Rasberry Pi in. Well, that is if  you are lucky enough to have one. I don&#8217;t think I am far enough along the queue to get to place an order yet  Damn I want so bad, I want one more than [...]]]></description>
			<content:encoded><![CDATA[<p>The guys at <a href="http://shropshirelug.wordpress.com/">Shropshire Linux User Group</a> have been busy designing boxes to put your <a href="http://www.raspberrypi.org/">Rasberry Pi</a> in. Well, that is if  you are lucky enough to have one. I don&#8217;t think I am far enough along the queue to get to place an order yet <img src='http://edinburghhacklab.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />   Damn I want so bad, I want one more than I wanted Lego when I was (twenty)8.</p>
<p style="text-align: center;"><iframe width="560" height="315" src="http://www.youtube.com/embed/1rlYz2wI7hY" frameborder="0" allowfullscreen></iframe></p>
<p>&nbsp;</p>
<p>I am sure we will be cutting a few of these on our laser in the coming year!</p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/05/acrylic-boxes-for-rasberry-pi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optical Localization for Robot Arms, Initial Experiments</title>
		<link>http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/</link>
		<comments>http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 18:41:12 +0000</pubDate>
		<dc:creator>tom.larkworthy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=806</guid>
		<description><![CDATA[ If this can be made accurate, anything can Something I have realised is that there are no good open source robot arms in existence. Sure there are have been a few attempts (Oomlout,  TROBOT (kickstarter) but these are toy scale robot arms. What researchers, engineers and entrepreneurs need are arms of similar specifications to those [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/2012-04-23-191534/" rel="attachment wp-att-807"><img class="aligncenter  wp-image-807" title="2012-04-23-191534" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/2012-04-23-191534.jpg" alt="" width="461" height="288" /></a></p>
<p style="text-align: center;"><em> If this can be made accurate, anything can</em></p>
<p>Something I have realised is that there are no good open source robot arms in existence. Sure there are have been a few attempts (<a href="http://oomlout.com/blog/2009/03/fancy_yourself_a_robotic_arm_d.html">Oomlout</a>,  <a href="http://www.kickstarter.com/projects/tbaumg/trobot-40-a-miniature-articulated-robot">TROBOT</a> (kickstarter) but these are toy scale robot arms. What researchers, engineers and entrepreneurs need are arms of similar specifications to those used in factories. Unfortunately those kind of arms start at £10k and go up to £120k and beyond.</p>
<p>Now a common fallacy in build-it-yourself projects is cost savings. There are very real reasons why industrial arms cost so much. They are precision engineered, made out of cast iron and use very powerful actuators. The high cost is attributable to the quality of the engineering used to achieve a strength and accuracy specification. However I think I have a shortcut to precision.</p>
<p><span id="more-806"></span></p>
<p>High accuracy in industry is achieved by using precision anti-backlash (read expensive) mechanisms. Anti-backlash means the arm does not move by any means other than actuator control. The end effector of the arm reaches a predictable position because both the joints understand where they are, and the entire structure of the arm is very rigid and predictable. The rigidity of arm is achieved by using a very stiff material such as cast iron (in preference to steel which transmits unwanted vibrations).</p>
<p>High strength is achieved by using expensive actuators, which also need to be able to be controlled precisely for the accuracy requirements. The actuators have to be really strong because the arm is commonly built out of metal.</p>
<p>So to summarize robot arms are expensive, because just about every part of the system is built out of expensive components. I believe that there is a better way which would be adequate for a number of applications. Instead of using very high quality components to ensure the end effector is at a known location, we use a cheaply built arm and use optical sensors and vision processing to track the end effector in real time.</p>
<p>There are a few drivers for this approach which did not exist 20 years ago. Optical sensors are ludicrously cheap thanks to smart phone cameras, visual processing is getting cheaper as GPU costs are dropping and custom mountings for mechanically adapting commercial-off-the-shelf components can be realised using 3D printing technology.</p>
<p>So this is the motivation for my next major side project. Build a 2kg capacity, 1m reach, 0.1mm accurate 6DOF robot arm for approx £2000 of raw materials (I am looking for sponsorship BTW). Previous experience has shown that getting the software working is the hardest part in robot development, and sometimes can be made easier through mechanical hardware choices. Thus before I rush off, blow loads of cash and build a robot arm, the first step is making sure the software side of things will work. Which (finally) brings me to the point of this blog article, my first experiments in optical tracking.</p>
<p>The trigger for starting work was prompted by a new post doc starting at my university (Heriot Watt). He came from the Lagadic group in France, one of the leading institutes in research into visual servoing (controlling arms from cameras). They have a mature software stack called <a href="http://www.irisa.fr/lagadic/visp/visual-servoing.html">Vision Visp</a> for doing exactly what I want to do (you can sudo apt-get install libvisp-dev !). He also revealed they have full time software engineers maintaining the code so I realised that this package was probably quite good in comparison to most research code. If the main software component can be sourced fairly trivially then what am I waiting for?! They were also <a href="http://www.ros.org/wiki/visp">currently integrating</a> the software into my favourite robot development middleware, <a href="http://www.ros.org/wiki/">ROS</a> (robot operating system), so theoretically it should be easy for me to integrate with other stuff (e.g. the actuator control system).</p>
<p><iframe src="http://www.youtube.com/embed/pKDiX2S4m5o" frameborder="0" width="420" height="315"></iframe></p>
<p>CAMERA SETUP</p>
<p>So my first implementation sprint was to see if I could get 3D optical tracking up and running using the vision visp software on a cheap USB camera.</p>
<p>I used a Microsoft LiveCam 3000. It was £18 from Amazon. I choose this because it was HD (1280&#215;720) , 30FPS and I personally think Microsoft hardware in generally good quality and reasonable price. I was pleased to say it worked fine out-of-the-box with Ubuntu 10.04 (note 10.04 is the preferred version of Ubuntu for using robot operating system at the moment). I tested Ubuntu comparability by running the camera with “cheese”.</p>
<p>I then read the article at <a href="http://www.iheartrobotics.com/2010/05/testing-ros-usb-camera-drivers.html">IHeartRobotics</a> and set the camera up on ROS using the usb_cam package. By using rostopic hz /camera/image_raw I could measure the framerate the camera was publishing at internal to ROS. I found that at 640&#215;480 resolution the camera worked at 30FPS trivially. At 1280&#215;720 the camera only published at 30FPS if the view was well illuminated. If the white balance of the camera kicked in, the next frame rate would be 15FPS, and in total darkness the camera would publish at a measly 1FPS. However, its not a big deal to put some lamps up if you know you have to do it.</p>
<p>SCENE SETUP</p>
<p>One of the tracking methodologies implementing in Visp works by matching high contrast edges of a known 3D model to the camera view. A human initializes the system by providing the initial pose of the model (by clicking on set points of the model in the image). So for us to achieve a high accuracy, we require a real 3D object, with sharp edges, and an accurate 3D model of it. Visp requires the 3D object to be specified in VRML 2.0</p>
<p>For the physical object, I thought Lego would be a good material. Lego is manufactured to an astonishing high tolerance. Each brick is a piece of precision engineering, which is manufactured in such quantities as to make them relatively cheap. The exact dimensions of Lego are well <a href="http://www.robertcailliau.eu/Lego/Dimensions/zMeasurements-en.xhtml">published</a>. So without much effort, you can use Lego to build an object of known dimensions. However, we also need that object in VRML.</p>
<p><a href="http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/2012-04-23-191836/" rel="attachment wp-att-814"><img class="aligncenter size-medium wp-image-814" title="2012-04-23-191836" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/2012-04-23-191836-450x281.jpg" alt="" width="450" height="281" /></a></p>
<p style="text-align: center;"><em>I thought a good shape for tracking would be the inside of a box, with three orthogonal lines in each corner spread out over the field of view.</em></p>
<p>I thought my budget CAD suite did VRML but it didn&#8217;t (bad Alibre!). However, Lego enthusiasts have actually built up their own open source stack of Lego engineering tools over the years in the form of Ldraw and MLCad (windows only &#8216;fraid). This lets you build a Lego model in simulation, and they have EVERY POSSIBLE LEGO BRICK IN EXISTENCE MODELLED! I was actually blown away by how cool that software was. So by using <a href="http://mlcad.lm-software.com/">MLCad</a> and the <a href="http://www.ldraw.org/">Lego parts library</a>, I was able to save my 3D object in LDR format.</p>
<p><a href="http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/lego/" rel="attachment wp-att-817"><img class="aligncenter size-medium wp-image-817" title="lego" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/lego-450x253.png" alt="" width="450" height="253" /></a></p>
<p style="text-align: center;"><em>MLCad is cool! Don&#8217;t let anyone imply otherwise</em></p>
<p>&nbsp;</p>
<p>LDR is not VRML though. <a href="blender.org">Blender</a> however did have an python script for importing LDR files*. Inside blender I could: get rid of all the pointless holes in my Technic bricks, remove faces that would not be useful for tracking and make a lovely ray-traced image of my Lego creation! Oh and I could also export to VRML.</p>
<p>*once you have corrected all the windows file path conventions for running in Linux. Use the <a href="http://wiki.blender.org/index.php/Extensions:2.4/Py/Scripts/Import/LDRAW">LDRAW</a> importer and not the LDRAW2 importer (it&#8217;s about 10,000x slower and doesn&#8217;t work).</p>
<p><a href="http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/snapshot/" rel="attachment wp-att-820"><img class="aligncenter size-medium wp-image-820" title="snapshot" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/snapshot-450x337.jpg" alt="" width="450" height="337" /></a></p>
<p>&nbsp;</p>
<p style="text-align: center;"><em> Mmmm, gorgeous Lego in Blender</em></p>
<p>TRACKING</p>
<p>As it turned out Visp only supports a very small subset of VRML. No transforms and the model should be specified in one block of coordinates. Using blender I was able to merge all the objects into one mesh, rescale the mesh and set all the faces to use one material. I then had to use the provided example VRML files in Visp to trim down the blender generated VRML into exactly the same form.</p>
<p>I actually used Visp to calibrate my camera too, but actually that was unnecessary. The usb_cam package allows you to set the calibration settings, and the image_proc package rectifies the image. My calibration parameters were very similar to the defaults in ROS so it probably wasn&#8217;t necessary and slowed down my implementation bender unnecessarily. Here were my calibration settings for the LiveCam in the usb_cam launch file. This shows the camera had very little distortion (+1 LiveCam 3000).</p>
<pre>&lt;rosparam param="D"&gt;[0.03983109092, 0.0, 0.0, 0.0, 0.0]&lt;/rosparam&gt;</pre>
<pre>&lt;rosparam param="K"&gt;[666.015717, 0.000000, 319.2997418, 0.000000, 662.0900984, 246.9209726, 0.000000, 0.000000, 1.000000]&lt;/rosparam&gt;</pre>
<pre>&lt;rosparam param="R"&gt;[1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]&lt;/rosparam&gt;</pre>
<pre>&lt;rosparam param="P"&gt;[666.015717, 0.000000, 319.2997418, 0.000000, 0.000000, 662.0900984, 246.9209726, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]&lt;/rosparam&gt;</pre>
<p>I used the <a href="http://www.ros.org/wiki/visp_tracker">visp_tracker</a> package to recognise the 3D model. This uses moving edge detection so that once the model is initialized, it can utilize robot motion commands to predict where the new edges should be (and search for edges in that area). Using this supplied client GUI to initialize the tracker was straight forward. After initialization other tracker utilities can be used to view what is going on graphically and rostopic echo /object_position can be used to dsiplay the calculated 3D potition and orientation of the object in real time. COOL!</p>
<p>So here we are, the tracker fitting the VRML model of the Lego to the video in real time:</p>
<p><a href="http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/tracking2/" rel="attachment wp-att-824"><img class="aligncenter size-medium wp-image-824" title="tracking2" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/tracking2-450x410.png" alt="" width="450" height="410" /></a></p>
<p style="text-align: center;"><em>Its a fit! The central plates aren&#8217;t being tracked properly, the suspected cause is incorrect face normals in the VRML.</em></p>
<p>ANALYSIS</p>
<p>So the tracker immediately after initialization was able to publish object updates at a rate of 25fps, which is a touch under the camera&#8217;s publishing rate of 30fps (determined using rostopic hz /object_position). Clearly the tracker was not able to process that volume of data, and I was only running the camera in 640&#215;480 mode. Worse though, the fps went down over time, to 5fps. I tried fiddling with image queue setting etc. but could not prevent this runaway degradation in performance. Artificially limiting the camera to 15fps solved the problems, at 15fps of camera data the tracker could concurrently keep a steady 15fps of tracking.</p>
<p>While that is one potential one work around, it is undesirable. Visp documents suggest 25fps is the lowest frame rate for reliable tracking. If the tracker loses the object lock, there is no way back because the system requires human intervention to initialize (initialization is a hard vision problem).</p>
<p>Given the tracker was nearly fast enough on my computer. I decided to profile the code to see if I could push the code over the line. If I was working with a raw c++ program I would normally execute the program through the awesome tool <a href="http://valgrind.org/">Valgrind</a>. ROS however manages the launching of interacting programs through a launch file so I was not sure how instanciate the program with a command line prefix. Those brilliant ROS devs though of this though! The attribute “launch-prefix” allows me to instruct the system to prefix an arbitrary string so I was able to instrument the tracker program in the normal way. I used <a href="http://kcachegrind.sourceforge.net/html/Home.html">kcachegrind</a> to visualise the profiled data</p>
<p><a href="http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/kcachegrind/" rel="attachment wp-att-825"><img class="aligncenter size-medium wp-image-825" title="kcachegrind" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/kcachegrind-450x253.png" alt="" width="450" height="253" /></a></p>
<p>&nbsp;</p>
<p>Nearly all CPU cost of running the tracker was concentrated in the tracking functionality, and in particular the convolution function. When I inspected the source it had evidence of being optimized at least twice! So the Visp guys know where the bottlenecks are clearly. I was a little surprised to see all the execution was being done in one thread though. I was told the package did parallel processing and CUDA optimizations but I was simple mis-sold. I was only using one core of my 8 core i7 over-clocked beast of a rig. If I could parallelize the convolution function, which looked likely (it was in a for loop), I could probably make the computational saving I needed.</p>
<p>Now I really enjoy optimizing code, but I have to be pragmatic. It would take a few weekends to extract a benchmark test case and perform the operation. My overall goal was to obtain a 0.1mm optical tracking system. There were other problems in my system completely unrelated to the tracker.</p>
<p>For the Lego model to be useful, it had to be upside down, hanging overhead the robot arm, with the camera facing skywards and attached to the hand. This put unusual stresses on the Lego model. On the modern Technic Lego bricks I have, under tension (in contrast to compression) they had a tendency to separate a fraction if joined by pins. Ultimately this meant my VRML model could not be accurate to 0.1mm so regardless of the tracker or optics, the 0.1mm accuracy target could not be achieved with this setup. Thus I am going to completely abandon this particular methodology of tracking a known 3D object using edge detection.</p>
<p>Visp has a different set of trackers for recognising textures on planar surfaces. There is some kind of ambiguity in the mathematics of recognising 3D position and orientation when recognition points are co-linear (as is the case with a planar object), but this can be resolved post processing. One of these 2D trackers is dot tracking, which uses a flood fill from an initial guess to detect circles (ellipses under affine transforms). This can be done a hell of a lot fast than edge detection so this will be the next line of enquiry.</p>
<p><a href="http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/screenshot-3/" rel="attachment wp-att-827"><img class="aligncenter size-medium wp-image-827" title="Screenshot" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/Screenshot1-450x354.png" alt="" width="450" height="354" /></a></p>
<p>&nbsp;</p>
<p><em>Thanks goes to Tom Joyce for helping with the fun bits (making lego decisions), Olivier Kermorgant for introducing me to Visp and giving strategic advice on visual servoing, and Thomas Moulard at Lagadic who responds well to my confused emails on the Visp mailing list.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/04/optical-localization-for-robot-arms-initial-experiments/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>March Music Night</title>
		<link>http://edinburghhacklab.com/2012/04/march-music-night/</link>
		<comments>http://edinburghhacklab.com/2012/04/march-music-night/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 23:30:55 +0000</pubDate>
		<dc:creator>peterj</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=741</guid>
		<description><![CDATA[March music night once again was busy with some familiar and new visitors dropping by during the evening. Jelly was a predominant theme of the night, with James of Madlab &#38; Matt bringing along Jelly Theremin and Drum kit. Andrew K and Tom H unveiled a project they had been working on together, a single string [...]]]></description>
			<content:encoded><![CDATA[<p>March music night once again <a href="http://edinburghhacklab.com/2012/04/march-music-night/imgp3768-scaled/" rel="attachment wp-att-766"><img class="wp-image-766 alignright" title="IMGP3768-scaled" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/IMGP3768-scaled-450x298.jpg" alt="" width="283" height="187" /></a>was busy with some familiar and new visitors dropping by during the evening. Jelly was a predominant theme of the night, with James of Madlab &amp; Matt bringing along Jelly Theremin and Drum kit. Andrew K and Tom H unveiled a project they had been working on together, a single string instrument built using a length of knitted conductive fabric. Gary brought along several OLPC laptops to demonstrate their musical abilities and for everybody to play with.  Tom L was coding something with a microphone connected to a laptop that reacted to singing and similar sounds!</p>
<p align="center">
<iframe width="420" height="315" src="http://www.youtube.com/embed/w_DP52PlUzI" frameborder="0"></iframe>
</p>
<p>Thanks to Anne Suss for the videos</p>
<div id="attachment_765" class="wp-caption center" style="width: 407px"><a href="http://edinburghhacklab.com/2012/04/march-music-night/img_2838-scaled/" rel="attachment wp-att-765"><img class=" wp-image-765" title="IMG_2838-scaled" src="http://edinburghhacklab.com/wp-content/uploads/2012/04/IMG_2838-scaled-450x337.jpg" align="center" alt="" width="397" height="298" /></a><p class="wp-caption-text">Magnification of Conductive Thread</p></div>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/04/march-music-night/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Online pixel art program PIQ</title>
		<link>http://edinburghhacklab.com/2012/04/online-pixel-art-program-piq/</link>
		<comments>http://edinburghhacklab.com/2012/04/online-pixel-art-program-piq/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 14:02:55 +0000</pubDate>
		<dc:creator>tom.larkworthy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=751</guid>
		<description><![CDATA[One of my friends is part of a team that developed an online pixel art drawing program. Its getting a lot of traffic these days with nearly 30,000 drawings uploaded. Interestingly he says one of the largest traffic drivers is a drawing of the Minecraft pick axe. If you google image search for Minecraft axe, [...]]]></description>
			<content:encoded><![CDATA[<p align="center">
<iframe width="420" height="315" src="http://www.youtube.com/embed/xy7kheKkS4M" frameborder="0"></iframe>
</p>
<p>One of my friends is part of a team that developed an online pixel art drawing program. Its getting a lot of traffic these days with nearly 30,000 drawings uploaded. Interestingly he says one of the largest traffic drivers is a drawing of the Minecraft pick axe. If you google image search for Minecraft axe, <a href="http://piq.codeus.net/">Piq</a> is the number 1 hit. </p>
<p>Anyway I thought I would share it with Edinburgh Hacklab people because its an Edinburgh team, its retro (being pixel art), and has tenuous links to Minecraft, our favourite Indy game. The pixel art application is pretty slick too, all written in javascript, with useful tools such as automatic mirroring of axis, adjustable pixel size and dynamic palettes. The quality of the top artists on there is fairly mind blowing too.</p>
<p>Enjoy </p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/04/online-pixel-art-program-piq/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Clementines (Coffee) &amp; Code</title>
		<link>http://edinburghhacklab.com/2012/03/clementines-coffee-code/</link>
		<comments>http://edinburghhacklab.com/2012/03/clementines-coffee-code/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 14:11:29 +0000</pubDate>
		<dc:creator>peterj</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=743</guid>
		<description><![CDATA[The hacklab will be open tonight (Thursday 29th March) from 7:30pm for the weekly Software night. Bit later than usual to give everyone a chance to enjoy the sunshine. Why Clementines? If it&#8217;s still warm then refreshing fruit may be just the thing for a night of code hacking. Don&#8217;t worry we still have Coffee! [...]]]></description>
			<content:encoded><![CDATA[<p>The hacklab will be open tonight (Thursday 29th March) from 7:30pm for the weekly Software night. Bit later<br />
than usual to give everyone a chance to enjoy the sunshine.</p>
<p>Why Clementines? If it&#8217;s still warm then refreshing fruit may be just<br />
the thing for a night of code hacking. Don&#8217;t worry we still have<br />
Coffee!</p>
<p>Everybody welcome. Hope to see you there.</p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/03/clementines-coffee-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://edinburghhacklab.com/2012/03/724/</link>
		<comments>http://edinburghhacklab.com/2012/03/724/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 12:55:03 +0000</pubDate>
		<dc:creator>tom.larkworthy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=724</guid>
		<description><![CDATA[John Alexander at the Shropshire Linux User Group (SLUG) has been busy with an arduino compatible IO extension board for the Raspberry PI. It looks like a very nice way for getting the Raspberry PI to control low level peripheries. Nice PCB milling too! Now if only I could get my hands on a damn [...]]]></description>
			<content:encoded><![CDATA[<p>John Alexander at the Shropshire Linux User Group (<a href="http://shropshirelug.wordpress.com/">SLUG</a>) has been busy with an arduino compatible IO extension board for the Raspberry PI. It looks like a very nice way for getting the Raspberry PI to control low level peripheries. Nice PCB milling too! Now if only I could get my hands on a damn Raspberry PI! (looks like they haven&#8217;t managed to get one too :/ ) </p>
<p><iframe width="500" height="281" src="http://www.youtube.com/embed/u5c1Dfaf57g?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>Keep up the good work John</p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/03/724/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quadcopters + Music = OMG!!!</title>
		<link>http://edinburghhacklab.com/2012/03/quadcopters-music-omg/</link>
		<comments>http://edinburghhacklab.com/2012/03/quadcopters-music-omg/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 10:45:06 +0000</pubDate>
		<dc:creator>tom.larkworthy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=719</guid>
		<description><![CDATA[From one of the premier robot labs, UPenn, comes some mad music generation. Quadcopters performing James Bond theme tune. Urgh, that&#8217;s so awesome it hurts me. Seems like the batteries could not last the whole piece though :p. 2M hits so far, further confirming the only thing people want robots to do is entertain us, [...]]]></description>
			<content:encoded><![CDATA[<p>From one of the premier robot labs, UPenn, comes some mad music generation. Quadcopters performing James Bond theme tune. Urgh, that&#8217;s so awesome it hurts me. Seems like the batteries could not last the whole piece though :p. 2M hits so far, further confirming the only thing people want robots to do is entertain us, becuase they are so damn good at it.</p>
<p><iframe width="500" height="281" src="http://www.youtube.com/embed/_sUeGC-8dyk?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/03/quadcopters-music-omg/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Music Night Feb 2012</title>
		<link>http://edinburghhacklab.com/2012/02/music-night-feb-2012/</link>
		<comments>http://edinburghhacklab.com/2012/02/music-night-feb-2012/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 22:47:12 +0000</pubDate>
		<dc:creator>aldroid</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://edinburghhacklab.com/?p=699</guid>
		<description><![CDATA[The hottest Friday night in Edinburgh, our monthly music event returned last week for more of the best in eccentric homebrew action. We saw Andrew Kieran&#8217;s fabric potentiometers &#8211; hand-woven cloths designed to behave as electronic components &#8211; being used to control sequencers and to drive synths. Andrew was good enough to explain some of [...]]]></description>
			<content:encoded><![CDATA[<p>The hottest Friday night in Edinburgh, our monthly music event returned last week for more of the best in eccentric homebrew action.  We saw Andrew Kieran&#8217;s fabric potentiometers &#8211; hand-woven cloths designed to behave as electronic components &#8211; being used to control sequencers and to drive synths.  </p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/iWAhYe3Q_H4" frameborder="0" allowfullscreen></iframe></p>
<p>Andrew was good enough to explain some of the technology behind his creation, though sadly my phone was not up to the job of videoing much.  Tom Hardiment demoed his arc tweeter, a speaker that emits sound by modulating a high-voltage electrical arc.  </p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/shnogMxaa0c" frameborder="0" allowfullscreen></iframe></p>
<p>Also, Ioann Maria brought a nostalgia trip in the form of an old Amiga 600 with Protracker in the disk drive.  Naturally, after we&#8217;d worked out how to make it make noises we had to wire this to the arc tweeter.  Tom Larkworthy wrote a whole set of strange and wonderful vocal modulations in SuperCollider.</p>
<p>A good time was had by all, the next one is on March 16th!</p>
<div id="attachment_709" class="wp-caption alignnone" style="width: 347px"><a href="http://edinburghhacklab.com/2012/02/music-night-feb-2012/img_20120217_201747/" rel="attachment wp-att-709"><img src="http://edinburghhacklab.com/wp-content/uploads/2012/02/IMG_20120217_201747-337x450.jpg" alt="Andrew with his fabric sequencer." title="Andrew with his fabric sequencer." width="337" height="450" class="size-medium wp-image-709" /></a><p class="wp-caption-text">Andrew with his fabric sequencer.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://edinburghhacklab.com/2012/02/music-night-feb-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

