Per pixel labeling in cn24

I just found this project which shows great promise for use in OctoMY™.

cn24 is a portable and embeddable set of tools for building, training and using neural networks for per-pixel classification/labelling of input images.

It is refreshing to see a University project with such modern standards! It is available on github with travis ci build. It strives to be easy to use, performant and platform independent. It takes great care to not introduce any unnecessary dependencies and it even sports a commercial-friendly 3-clause BSD license! This aligns perfectly with our core values.

I hoipe to use this project for the many classification problems that OctoMY™ will handle in the future.

Status update for OctoMY™

There is a new feature page up here that shows the status of each sub-component of the OctoMY™ project. I will keep it updated as development moves along.


FYI: tiny_cnn was renamed to tiny_dnn

Just a tiny headsup (pun intended)..

the tiny_cnn prtoject I previously introduced on this blog has now been renamed to tiny_dnn.



OctoMY™ Identicons

One of the central ideas in OctoMY™ was to have unique identities for each robot that could be recognized easily by the display of an identicon image. This identicon would retain some character so that you would instantly know that it was related to OctoMY™.

In the first implementation I simply generated a hash of the MAC address for the first non-wifi ethernet adapter found on the device as the basis for generating the identicon. The identicon graphics itself was simply the original OctoMY™ logo with some changes applied to the limbs and colors.

This proved to be very effective and it became clear right away that there was something to the identicon idea. However there were some problems with the approach . First it would be very easy to "change" or "spoof" the identity of a robot simply by changing the MAC address. Second there was no guarantee that the device would have a MAC address or network interface at all. Finally, what if we decided to scrap the old hardware and move the software to a new one? The robot would "loose its mind"!

In the current iteration I have coupled the identity to the security aspects of the platform; the identity is now a secure hash of the full text of the public-key for the robot in PEM format. Benefits of this are many:

  • The robot may have an identity regardless of what hardware it runs on and how many ethernet devices are present.
  • An identity requires a key-pair, guaranteeing that the robot has the needed security in place.
  • By verifying a message using RSA and generating the id and identicon directly from the related pub-key you know that the  identicon is a real one and actually relates to the robot you are communicating with (paranoids would compare the full hash text as well, not just the identicon graphics).
Another thing that popped up as a problem was that I now had beautiful charming identicons for the robots them selves (OctoMY™ Agents), but there was no similar way of positively identifying the remotes and hubs that would interact with the robots! What I ended up doing was simply to make the same identicon generator produce identicons for OctoMY™ Remotes and OctoMY™ Hubs as well. And the results speak for themselves!

OctoMY™ Agent, Remote & Hub identicons in purple and green.

Notice how each tier has a different identicon personality while retaining the color palette.

The "personality" of the OctoMY™Agent identicon varies the direction and bend of its limbs.

OctoMY™ Remote & Hub vary the radius/thickness of the rings and the rotation of the brain respectively.


Anatomy of a hydraulic cylinder

Hydraulic cylinders look like this on the inside:

The pin eye and clevis is where the cylinder is mounted to the appliance, and are the points between which the cylinder exerts its force.

The barrel is the body of the cylinder where the piston and rod can slide in and out.

The ports are where the hydraulic fluids are pressed in or out.

The wiper keeps dirt from reaching the gland. O rings seal the crevices between parts. the seals and wear rings keep the rod wear and leak free.

The nut keeps the rod securely attached to the rod.