This textile skin is designed to stretch over a robotic limb in order to detect intensity of pressure as well as location of contact across it’s entire surface. rSkin was commissioned by Ian Danforth who also helped fund the Bilibot, an affordable robotics platform. The aim of this project was to develop an affordable open source design robot skin that could be customized to fit a variety of robot shapes and sizes.

While this Instructable documents the process of building a fully functioning 28 x 28 pressure sensitive matrix, there is much room for improvement, and so in each step we discuss issues with the current solution and also include suggests for improvements. At this stage in the project we are really looking fwd to receiving your feedback and suggestions! Ian is also looking to hire individuals interested in (re-)building the skin based on this Instructable (changes, alterations, improvements encouraged!), so if you are interested in taking on this challenge, please contact us through Instructables. Please note that the skills required to replicate the current version of rSkin include: hand and machine sewing, soldering and a basic understanding of the electrical properties of materials.

The next step this Instructable explains in more detail the basic principal of how rSkin works without going into the full amount of detail required to build it yourself. Before attempting to remake this Instructable, i would recommend reading through all the steps to get a good impression of how it all comes together. Building rSkin is not necessarily a linear process where everything needs to happen in a particular order, though in this Instructable i make an attempt at doing just that.

rSkin project progress blog >> http://www.plusea.at/?page_id=2259

Here are some videos of the results of the current version of rSkin:

Ellipse Visualization

Heat-Map Visualization

Gray-Scale Visualization

rSkin Links:
Project Page
Progress Blog
Flickr Photo Set
GitHub Code Repository
YouTube Playlist

Step 1: Pressure Sensor Matrix (an overview)

rSkin is a pressure sensitive grid made of conductive, non-conductive and piezoresistive fabrics. While the grid described in this Instructable is 28 rows x 28 columns large, ideally it can be scaled up to cover much larger areas.

rSkin is made of stretchy materials so that it can fit tightly over the robot arm. The conductive rows and columns are sewn using a conductive thread to adjacent pieces of non-conductive stretch materials (base substrates). Stretchy piezoresistive fabric is sandwiched between the conductive rows and columns, and acts as a pressure sensitive layer. Piezoresistive materials have the property that their electrical resistance decreases under under mechanical stress, such as pressure.

The photo included in this step shows the conductive rows and columns made from strips of conductive fabric sewn to their base substrates with a regular (non-conductive) thread. This photo was taken during the prototyping stage and while it nicely shows the layering of the skin (the white layer is flipped to face the pink layer), in the final version we sewed the conductive rows and columns using conductive thread, rather than using strips of conductive fabric. Our choice to use the thread instead of the fabric, came because by minimizing the conductive surface (a strand of thread is thinner than a strip of fabric), we increased the range of pressure sensitivity through the piezoresistive fabric.

Once the fabric part of the matrix is constructed, the rows and columns are individually connected to in/outputs of a microcontroller that acts as an analog to digital converter. Because there are more rows and columns than most microcontrollers have pins for, we use multiplexers to increase the number of in/out connections. But essentially what we we are doing is powering the rows one by one, while reading analog values (pressure information) from the columns one by one. Because we know which row is powered and which column we are reading from, we know where (location information) the incoming analog value is located. This all happens really fast, so that we can parse through the whole grid in multiple times in less than one second - giving us the impression that it is all happening instantaneously.

The mircrocontroller (in our case a Teensy) is programmed to parse the rows and columns and collect the pressure and position data, sending it over the USB connection to the computer where another application (written in Processing), reads the string of data and translates it into a visualization by mapping the incoming values to their corresponding position on the robot skin, and shading, colouring or drawing shapes according to the pressure information.

The row and column solution is not the only possibility we explored when approaching this project. The Piezoresistive Touchpad was among our first trials, but it does not support multi-touch.

Terminology (for clarity):
* Base substrates: non conductive materials.
* Flesh: lower base substrate made of neoprene with conductive columns machine sewn with conductive thread.
* Skin: upper level base substrate made of durable double knit stretch fabric with conductive rows machine sewn with conductive thread.
* Base: end of robot arm opposite the hand. This is where all the row and column connections terminate/accumulate and make the connection to their hard circuitry.
* Far end: opposite base end of robot arm. This is where the robot hand is with its two fingers.
* Hand: robot hand that has two fingers.
* Fingers: individual parts of the robot hand.
* Traces: i refer to the rows and columns as traces, they are conductors analogous to wires.
This is really great. Very exciting project.
Thanks! We're pretty excited about it too!
<p>so when does Ian release His new Invention of the fenn! When will you sell this new product? and how much will it cost?</p>
Thanks for this. It reminds me of the <a href="http://storelocator.bell.ca/bellca/en/ON/Toronto/Bell-Danforth-and-Broadview/BE243" rel="nofollow">Belldanforth &amp; Broadview</a> robot in Europe a few years ago.
Can this be used on a person as well? Say a shirt or pants, mapping parts of the body or no?
It should be able to. Its like making a matrix of those bend sensors that are all over instructables. Hmm putting this on a person could be an interesting way to see which muscles are being used, could be useful for fitness buffs
Hey, this is a really cool project. <br>I posted it on Geek Crafts. <br><br>http://geekcrafts.com/robot-skin/
Well this is cool. I'm going to need to do more work on electronics if I want to get started on a robot cat any time soon.
Is this &quot;piezo-resistive foam&quot; any more special than anti-static foam? I have made pressure sensors from that stuff before. Of course the one thing that does make it less effective for a purpose like this is that it doesn't really spring back well or very quickly. I will have to look at the Eeonyx stuff.
you're right, it's the same thing. some foams hold their shape better with squeezing than others. velostat another antistatic/piezoresistive material that comes in flat plastic sheeet form, and the eeonyx fabrics are fabrics coated in a antistatic/piezoresistive polymer.
Add a some EL multi-color material with a power source and finaly put it all in to a pair of pants and you have a womans worest nightmare pants that show how<strong> </strong><strong>fat</strong> you are
WOW, this is awesome, congratulations!
Wow. Robots with touch!
Fear the Emo bots!<br>I'd like to see the &quot;touch from a horny human&quot; script!