Fan Gogh Demo

For IROS and ROSCON 2017, Clearpath Robotics is bringing a robot artist!

The code first takes an image of the user, checks for a face using OpenCV (inside of ROS of course ;). It then processes the image, and feeds it to a iterative approximation algorithm (Primitive). Fan Gogh (vincent to his friends) then draws the generated image with a Fanuc CR7 collaborative arm.

And all this with only 1 ear!

Check out the building blocks of the demo here:

See Vincent at IROS and ROSCON

Fan Gogh


You obviously have a deep level of experience in the space and we appreciate taking the time to talk and sharing your insights.
Comment from a client today đŸ™‚

Good reading – The Book of Life

Highly recommended reading, often updated and well thought out. A modern approach to philosophy of everyday life that isn’t above being applicable and useful.

Bravo to the team that put this together!

(Their videos are good too!)

4 months of “the quantified self”

Collected activity data


Data path:   Fitbit Charge 2 -> IFTTT -> Google Docs Spreadsheet -> WordPress Visualizer

Minor quote in insideunmannedsystems

UGV’s Gaining Ground

Minor quote from me on robotics in mining applications.

Podcast spotlight

Intelligent Autonomous Robots with Ilia Baranov

Got a great interview in with This Week in Machine Learning and AI.

Check it out!

ICRA 2017 – Singapore

Visiting ICRA 2017 in Singapore this week.

Robotics continues to gain popularity worldwide, with delegates from almost every country converging in Singapore for the International Conference on Robotics and Automation (ICRA). I attended with Clearpath Robotics and demoed autonomous navigation and teleoperation of robots.

teleconferencing tweak

I keep thinking we really need to apply real time facial tracking to morph video conference images, so that participants actually look at each other. This should solve most of the remaining awkwardness with teleconferences.

Update 2019:

Importing Images into Altium Circuit Maker


One of the things Altium Circuit maker current lacks (see a short review here: Altium) is the ability to import images into Altium’s board design.

There is a fairly painful way to do this via making an image into a font, installing the font to your computer, and then “typing” it in to get the image to appear. This is.. sub-optimal.

However, one can import/export from a .csv file into vertices of a polygon pour. This could enable importing images into Altium.


The rules for polygon pours seem to be as follow:

  • polygons are filled when vertices form a (clockwise oriented) closed surface.
  • Lines that cross back on themselves have a zero thickness, and hence don’t appear.
  • The entire list must start and end on the same vertex.

So, we could make a script that generates a list of vertices, and import a (somewhat blocky, 1 bit color image) in this way.

Here is an example done by hand (note the thin lines do not appear in a gerber export!). The lower left square is drawn first, then the lower right, and lastly the center square.

Hand Desgined Image into Altium Circuit Maker

The starting/ending point is always the lower left origin.

The vertices for just that simple shape are fairly lengthy:


Index X (mil) Y (mil) Arc Angle (Neg = CW)
0 -1550 -700
1 -1550 -690
2 -1550 -680
3 -1540 -680
4 -1540 -690
5 -1550 -690
6 -1550 -700
7 -1540 -690
8 -1530 -690
9 -1530 -680
10 -1520 -680
11 -1520 -690
12 -1530 -690
13 -1540 -690
14 -1550 -700
15 -1540 -690
16 -1540 -680
17 -1540 -670
18 -1530 -670
19 -1530 -680
20 -1540 -680
21 -1540 -690
22 -1550 -700

Notice above, we do have the ability to specify Arc angle for each segment, but that is a level of complexity I will likely avoid in the near term.

It speaks with a hiss

My favorite tool in the bag of tricks is Python, mostly due to avoiding the need to compile, and lots of good libraries. This is especially true of graphical manipulation, which we will need if we want to get images into Altium Circuit Maker.

I used Python 2.7 for this, on Windows. (you will need the python pillow library, execute “python -m pip install pillow”)

See the full code here:

Open the “” file, and change the file name, size and inversion as needed. Once the program is run, it will generate a .csv file with the same name as the image input. This can then be imported into the polygon pour.

Menu for  Image into Altium Circuit Maker



Test Image into Altium Circuit Maker

The lines returning to the center can be seen above, however they do not appear on a Gerber file.

What’s the catch?

There’s a few downsides to this approach over the image-font-import method:

  • Resolution is low. For your sanity and RAM usage, I don’t suggest using any image over 20×20 pixels.
  • This looks much nicer with images that are blocky to start with. I’ve used this to generate QR codes, barcodes, etc.
  • Images are placed at the origin, but can be moved later

Future Work

  • Use Arc Angle to make smoother images
  • Generate triangle instead of squares, and take into account 50% filed cells, instead of only black and white.
  • Automate generating multiple layers (top layer, top solder, top mask, silkscreen) to generate 4 color images
  • Optimize path-ing algorithm to reduce path complexity

Audio jack – A love letter. Why Apple is removing audio jacks

Apple’s removal of the 3.5mm audio jack. This topic may have been done to death already, but there are a few technological and social issues people are not really considering.

By doing this, Apple is directly exposing their clients to this market of crap.

Audio Jack Loss – Social Issues


It is much more expensive to get Bluetooth headphones than wired headphones, plain and simple. From crappy headphone vs. crappy Bluetooth, to high end devices, in each case adding Bluetooth means adding batteries, charge management, and processing/communication circuitry. With cell phone costs already very high, adding a second expensive accessory seems unnecessary. This leads directly to the second issue:

Consumer choice

There are thousands or even millions of earbuds and headphones. However, there are only a  few hundred Bluetooth ones. Headphones made in the 1970s would still (with a simple jack adapter) work with a modern cell phone. However, the same cannot be said of Bluetooth headsets, with the current spec already up to V4, there is no guarantee of backwards compatibility. Therefore, there is a good chance that 10 years down the line, your nice Bluetooth headphones will not be usable anymore. This is not even considering the fact that the built-in batteries will die within 3 years, necessitating expensive replacement or DIY efforts.

Also, if I buy cheap, crappy earbuds currently, I just get tinny, scratchy sound. However, trying the same thing with Bluetooth headphones could result in dropped signals, little battery life, and a host of other quality issues. By doing this, Apple is directly exposing their clients to this market of crap.


This is more of a minor issue, but broadcasting data over the fairly insecure Bluetooth standard is not the best idea. Though even wired headphones radiate EM that could be intercepted, they are orders of magnitude quieter than Bluetooth signals. This is not a huge deal in most cases, but confidential conversations and especially financial transactions (like Square does with the audio jack currently) are at risk. Bluetooth does have some encryption and countermeasures to surveillance, but they are not really designed to be robust.

DRM integration


What happens when a torrent of user complaints come in about dropped Bluetooth signals? Apple will announce a “partner program” where companies can get “Apple Certified” Bluetooth headsets approved. This opens the door to further restrict how and when users can listen to their music and content. This also locks out vendors unwilling to pay (what has historically been) high licensing fees to use Apple’s technology. Before you think that this is just scare mongering on my part, let me remind you that Apple is no stranger to proprietary formats and locked down content; they have done this before.


Audio jacks have been used for lots of secondary devices; payment processing, children’s games, etc. This is one of the last, easy to use input/output ports on modern cellphones. Making something work with the audio jack takes a little copper wire, a magnet, and some patience. With Bluetooth, the question becomes a lot harder, and loses a lot of its education immediacy.

Secondary markets

Image result for Ipad POSEver notice how most small cafes now use an Ipad for a checkout register? This is a revolution, mostly started by Square, but now there are hundreds of companies that provide Point of Sales (POS) systems built around an Ipad. They are cheap, durable and easy to program. Most of these systems use the audio jack to input and receive data from the Ipad, because trying to get USB hosting working is (yet another) proprietary nightmare. Here is another avenue that Apple is eventually looking to cut off by removing the audio jack.

Audio Jack Loss – Technological Issues

These issues have been touched on elsewhere in this post, but the essentials are:

  • Bluetooth is more complex, and thus more expensive than simple wires.
  • Bluetooth has backwards compatibility issues, and eliminates a huge amount of very good, old headphones and speakers.
  • Wires are just more reliable than Bluetooth. (I just had Bluetooth audio issues with my car for more than 4 months. I just had to wait for an update. Without the audio jack I would have been totally stuck!)bluetooth
  • The RF spectrum is not infinitely large, with more RF devices, interference and so called “spectrum crunch” will start to play a role. I am willing to bet that if everyone on a crowded subway car tried to use Bluetooth at the same time, everyone would get audio drops and issues.
  • Batteries built into headphones means they last for a maximum of 3-4 years. After that, Li-ion batteries are toast. We will no longer have beautiful, old-school headphones passed down through families.

Audio Jack Loss – Benefits

Well, we have listed the large amount of downsides to losing the audio jack, but there must be some reason to lose it… right?

From the consumer and user standpoint, a *very slightly* thinner phone, is ultimately the only benefit. Users that claim frustration with tangled cords already had the option to use Bluetooth headsets, there is no difference.

From Apple’s standpoint, all of the negatives listed above are potential positives. Greater control over the market is the prime way any media distribution company has of wringing more profit.

apple Waka

Especially with Apple Pay competing with Square in a similar space, the incentive to physically block out their competitor is high.

For the opposite view (totally wrong of course…) see here:

Death To The 3.5mm Audio Jack, Long Live Wireless