- freely available
Sensors 2012, 12(11), 15267-15280; doi:10.3390/s121115267
Abstract: Tactile sensors are needed for effectively controlling the interaction between a robotic hand and the environment, e.g., during manipulation of objects, or for the tactile exploration of unstructured environments, especially when other sensing modalities, such as vision or audition, become ineffective. In the case of hand prostheses, mainly intended for dexterous manipulation of daily living objects, the possibility of quickly detecting slip occurrence, thus avoiding inadvertent falling of the objects, is prodromal to any manipulation task. In this paper we report on a slip sensor with no-moving parts, based on thermo-electrical phenomena, fabricated on a flexible substrate and suitable for integration on curved surfaces, such as robotic finger pads. Experiments performed using a custom made test bench, which is capable of generating controlled slip velocities, show that the sensor detects slip events in less than 50 ms. This response time is short enough for enabling future applications in the field of hand prosthetics.
Current efforts in the field of robotic upper limb prosthetics are focused on the development of devices able to restore compromised body functions, with the final aim of achieving performances comparable to those of unimpaired people .
Slip detection is crucial for performing effective manipulation tasks. In fact, during the manipulation of delicate or fragile objects, it is important to reduce interaction forces to their lowest effective value, in order to avoid damaging the object, while still guaranteeing a stable grasp. Slip perception in humans is based on a concurrent involvement of different skin mechanoreceptors , as well as of predictive internal models . The absence of a unique and specific receptor for slip detection is probably the main reason why mimicking this human sensing capability is still complex and why over the years several different approaches for the development of slip sensors have been pursued, based on the observation of a variety of physical phenomena and quantities including: object displacement [4,5], microvibrations [6–9], normal and shear forces [10–13], thermal fluxes . Similarly, several trans-duction mechanisms (e.g., piezoresistive , piezoelectric [16–19], capacitive , optical , magnetic , thermal ) as well as fabrication technologies (e.g., thick-film , soft/flexible materials [20,22], MEMS [5,23]) have been explored.
However, despite the fact that the idea of embedding slip sensors in prosthetic hands dates back to the 1980s , most existing slip sensors are still: (i) affected by external disturbances; (ii) technologically demanding; (iii) expensive; or (iv) not embeddable on top of robotic finger pads.
The sensor we describe in this paper has no moving parts and exploits a thermo-electrical transduction principle, introduced in  and briefly outlined in Section 2. Since the sensor does not rely on the detection of vibrations, mechanical noise, e.g., produced by motors, does not affect its performance. Moreover, it is equally effective on rough and smooth objects.
Compared to the prototype in , the sensor described in this paper has been microfabricated on a flexible substrate and the contact layer has been removed in order to improve the heat flux exchanged between the microheater and the object surface.
The design and microfabrication are reported in Section 3, while the characterization set-up and the detection strategy are detailed in Section 4. Experimental results, which extend and detail the preliminary ones reported in , are discussed in Section 5. Finally, Section 6 is devoted to Conclusions and Future Work.
2. Working Principle
The sensing element is a patterned thin metal film with a positive thermal coefficient (α), working as a microheater (Figure 1). The metal film is warmed up by the Joule effect. By measuring its electrical resistance (R), direct information on its temperature (T) can be retrieved without the need for a dedicated temperature sensor, by inverting the following equation (where R0 is the resistance at the reference temperature, T0):
The microheater is kept at a constant temperature, which must be above the object's temperature, by a dedicated control, described in Section 4.2. When the sensor is in contact with an object with zero relative speed (v = 0, no slip condition), only heat conduction occurs, according to Fourier's law:
In (3) K, Cp and ρ are the thermal conductivity [W/m K], the specific heat [J/kg K] and the density [kg/m3] of the medium through which heat conduction occurs, respectively. If a slip event occurs (v ≠ 0), a convective heat transfer term (v·grad T) adds to the left member of (2):
The additional convective term requires a higher current to keep the microheater at the desired temperature. The slip detection strategy consists in firing a signal whenever such current overcomes a threshold.
It is therefore evident that the proposed detection strategy is inherently incapable of detecting slip incipience: a finite slip velocity is indeed necessary to build up a convective heat transfer term, responsible for the increase of the absorbed current. Nonetheless, it is possible to demonstrate that the sensitivity of the sensor to slip velocity is maximum for very small velocities, because the additional convective term quickly increases when slip velocity goes from zero to a given finite value.
Let's schematize the sensor as a circular isothermal sensing area sandwiched between a substrate and a protective layer (Figure 1). Because of their small masses, the thermal capacitances of the layers can be neglected compared to the thermal capacitance of the touched object. This allows the development of a purely resistive thermal model. If the thickness of the protective layer is very small compared to the transversal linear dimension of the microheater, a 1-D model can be used. Let Qc be the thermal flux due to convection. Qc is a function of a number of parameters: ν, slip speed; ΔT, temperature difference between the protective layer and the object; K, object thermal conductivity; S, contact surface; ρ, object density; Cp, specific heat of the object. All the above quantities can be expressed in terms of four fundamental units: Mass, Length, Time and Temperature. Therefore, according to Buckingham's theorem, the thermal problem:
The sensitivity of Qc to slip velocity (∂Qc/∂v)) is singular when v = 0:
In conclusion, although the sensor is not capable of detecting incipient slips, its responsiveness at low slip speeds is just limited by the resolution of the readout electronics used to calculate T through the measure of R, according to (1), being the additional convective term very sensitive to slip speed during the very initial instants of slip occurrence.
3. Fabrication and Thermal Characterization
The multilayered structure shown in Figure 1 includes a polyimide substrate, a thin metal film layer and a protective polyimide coat. The metal film is sandwiched between the two polyimide layers, which have the same thickness, thus laying on the neutral plane of the structure. This configuration preserves the metal from possible structural failures caused by tensile stresses that may arise during bending.
The active area of the sensor is an Au microheater, 25 nm thick, shaped as a serpentine, 130 μm wide, with a total length of 15.5 mm and a surface area of 2 mm2 (Figure 1). The connection between the microheater and the readout electronics occurs through two pairs of electric contacts: one pair is dedicated to current supply, the other one is used to read the electric resistance of the heating element. The dimensions of the electrical connections have been chosen in order to make the voltage drop across them negligible, compared to the voltage drop across the microheater.
The microfabrication of the sensors includes standard photolithographic and lift-off processes, the main steps being as follows:
15 μm of polyimide (Duramide 115A) has been spun on a sacrificial 4″ silicon wafer. A soft (at 100 °C for 120 s) and hard bake (at 350 °C for 1 h 30′) process have also been performed.
A lift-off process has been performed using a negative photoresist (ma-N 400 microresist), patterned by means of a photolithographic process. In order to allow the adhesion between the Au and the polyimide layers, a multilayer metal film, Cr/Au/Cr (thickness: 2.5 nm/25 nm/2 nm) has been evaporated.
15 μm of photodefinable polyimide has been patterned in order to cover the metal layer, while keeping the pads open for electrical connections. Finally, in order to avoid pad oxidation, the 2 nm Cr layer has been etched.
The complete structure (polyimide/metals/polyimide) has been removed from the Si sacrificial substrate by using a tetramethylammonium hydroxide (TMAH) attack. Figure 2 shows a schematic of the microfabrication process. A picture of the actual sensor is shown in Figure 3.
The temperature-resistance characteristic of the sensor has been obtained using a Type-K thermocouple (Model 80BK-A, by Fluke) and a OHM meter (Model 189, by Fluke). As shown in Figure 4, data can be fitted linearly (σ2 = 0.9995): R = 1.4602 T + 585.39, where the resistance R is in [Ω] and the temperature in [°C].
The maximum temperature which the sensor can safely withstand has been determined experimentally to be around 75 °C. In any case, the maximum working temperature of the sensor is about 40 °C, which is a temperature higher than that of commonly handled objects, but low enough to avoid damages in case of prolonged contact with objects or human skin.
Since the temperature of the microheater increases with the increase of the supplied current, it is necessary to keep this current below a safety threshold. When a constant current is provided, the temperature reached by the microheater depends on all those factors affecting the boundary conditions of the thermal problem, including the mounting/packaging of the sensor and the thermal and geometric properties of the touched objects. A simplifying and cautionary approach for evaluating the maximum current, which can safely be fed to the sensor, consists in limiting its heat exchanges with the environment, e.g., by having it suspended in air.
In this configuration, different current values, ranging from 1 mA to 15 mA have been provided to the microheater. Figure 5 shows the data obtained, which can be fitted by a quadratic relation (σ2 = 0.9949): R = 328,535 I2 + 14.482 I + 620.98, where the resistance R is in [Ω] and the current in [A].
4. Experimental Section
4.1. Experimental Set-up
A custom set-up, capable of providing controlled slip speeds, has been developed. A Scotch-Yoke mechanism in the system (Figure 6A), named hereafter “slip generator”, has been assembled for converting the constant rotary motion of a crank into the linear harmonic oscillation of slipping bars. The slip sensor has been coupled to a fixed frame through an elastic element (Figure 6B), which compensates for possible geometric irregularities of the touched surface. The crank is moved by a DC gearmotor (Maxon Motor EC 45 Flat 50 W; reduction ratio: 26:1) with an embedded incremental encoder (2,000 pulses/turn). Measurements of the microheater resistance and the motor position have been performed using two DAQ cards, the NI9205 and the NI9401, respectively, while current has been supplied by another DAQ card, the NI9265. All the DAQ cards (by National Instruments) have been connected to a programmable automation controller (NI CompactRIO, by National Instruments).
Both temperature control and motor rotation control have been implemented on a PC, using LabviewRT (by National Instruments). The whole experimental set-up is shown in Figure 6B. Bars of different materials (polyvinyl chloride–PVC, polytetrafluoroethylene–Teflon, and pinewood) with a rectangular cross-section (25 mm × 70 mm; thickness: 3 mm) and similar surface roughness (2.5/4 μm Ra) have been fixed on the frame, with one side in contact with the sensor.
4.2. Detection Strategy
In order to keep the microheater temperature at a constant value, a two-state bang-bang control has been implemented, with only two current intensities supplied to the microheater: IL and IH (IL < IH).
Let RT be the target resistance (higher than the one measured across the sensing element at room temperature), and TT the corresponding temperature of the microheater. Once TT is reached, the voltage drop across the microheater can assume two reference values: VL = RT IL or VH = RT IH.
According to (1), when a constant current is supplied, changes in the microheater temperature cause proportional variations to VL and VH. Therefore, after each sampling period, Ts, the voltage drop across the microheater is compared to the reference voltage (i.e., to VL if the supplied current is IL; to VH if the supplied current is IH).
Let's define S0 and S1 as the states when IL and IH are supplied, respectively. Starting from the initial state S0, if the measured voltage is lower than the reference voltage VL (i.e., R < RT), it is necessary to heat up the microheater. Therefore a transition from S0 to the S1 is required (S0→S1). Otherwise, (i.e., R > RT), no transition occurs. Once in S1, if the measured voltage is lower than the reference voltage VH, it is necessary to keep heating the sensing element, and no state transition occurs. On the contrary, if the measured voltage overcomes VH, it is necessary to cool down the microheater by switching to IL (S1→S0). All the possible state transitions are summarized in Table 1 and graphically shown in Figure 7. By using the symbols in Table 2, the truth table associated to the state diagram can be built (Table 3).
Binary values can be used to represent the two possible values of the supplied currents: “1” stands for IH and “0” for IL. The values of supplied currents are stored in a binary string (I). During an experimental session a value (“1” or “0”) is appended to I every Ts seconds.
The analysis of I is sufficient to detect slip: when slip occurs, the increase of the average current provided to the microheater corresponds to an increase in the average length of the substrings of I made of consecutive “1”s. Alternative indices, able to detect a (statistically) significant increase of the number of “1”s in any substring A of I containing a Δ-uple of binary values, can be used. In  we proposed the use of the coefficient of variation, defined as:
Therefore, the coefficient of variation can be equivalently written as:
If n1 is the number of “1”s in A, μ = n1/Δ, and:
CV approaches 0 (its minimum) when μ tends to 1 (its maximum), i.e., when n1→Δ. Let CVT be a threshold value, defined experimentally during tests performed in pure conduction conditions (i.e., no slip). The sensor would fire a slip signal when:
The value of CVT can be set by performing tests in pure conduction conditions (no slip). Once the electrical parameters are fixed (i.e., IL, IH, RT), a binary string I (length: N) is stored during each test. Fixing the length Δ of the substrings (Δ was set to 10 in our experiments), a coefficient of variation is calculated for each of the N-Δ substrings [Ik-Δ, Ik], with k ∈ (Δ + 1,N). CVT is obtained as the mean of the N-Δ coefficients of variations previously calculated.
During slip tests, every Ts seconds, the current value of CV, CVt, is calculated considering the last Δ values stored in I. The one-tailed Student's t-test is implemented to evaluate if CVT is significantly higher than CVt (12). If so, a slip signal is fired.
5. Results and Discussion
Bars of different materials (i.e., PVC, Teflon and pinewood) have been used. The bars have been fixed onto the slip generator, with one side in contact with the sensor (Figure 6B). Table 4 summarizes the values of the experimental parameters, while the thermal properties of the selected materials are reported in Table 5.
5.1. Power Dissipation
In first instance, pure conduction tests have been performed on the three materials (Table 5) to set the values of CVT, according to the methodology described in Section 4.2. During the same tests, the average dissipated power over a time window of 60 s, in steady conditions, with IL = 1 mA, IH = 13 mA and RT = 616 Ω, has also been measured. Figure 9 shows that the CVT decreases with thermal conductivity. Indeed, by keeping the electrical parameters (i.e., IL, IH and RT) constant, when the sensor is in contact with an object with a higher thermal conductivity, a higher heat exchange occurs, which requires more power for maintaining the constant temperature (Figure 10).
5.2. Response Time
When the motor rotates at constant speed (ω = 150 rpm, Table 4), slip velocity varies in time as described by the solid blue line shown in Figure 11. The peak speed of the bars during their harmonic oscillations (peak slip velocities), calculated taking into account the reduction ratio of the gear head (τ) and the length of the crank (Rm), is 1.5 cm/s.
The string I has been used to evaluate CVk over the substrings [Ik-Δ, Ik]. Figure 11 shows an example of data obtained using the PVC bar. The (absolute) value of slip speed (expressed in [cm/s]) is reported as a function of the number of crank turns (solid line in Figure 12), while the dashed horizontal lines stand for the logical values (1,0): “1” refers to the condition CV ≥ CVT (no slip), while “0” to the condition CV < CVT (slip detected). A slip signal is fired at instant kTs provided that CVk < CVT, according to the procedure described in Section 4.2.2. If the bar was at rest at instant t, the response time can be calculated as kTs − t.
As shown in Figure 12, the response time decreases with thermal conductivity. In particular, an almost 100% variation of the thermal conductivity corresponds to a variation of 17% of the response time. In the case of materials with very high thermal conductivities, such as metals (iron, for example, has a thermal conductivity three orders of magnitude higher than that of Teflon), a dramatic decrease of the response time is expected, which would require the development of an adequately fast readout electronics.
For all the materials tested, the measured response times are significantly shorter than those of humans . Short response times allow enough computation time to be allotted to the system controlling the grasping, still keeping the overall responsiveness of the artificial system in line with that of the human sensory-motor system.
6. Conclusions and Future Work
A thermal slip sensor with no-moving parts has been developed on a flexible substrate, in order to allow its mounting on curved surfaces, such as robotic finger pads. The sensing element, an Au microheater, has been sandwiched between two 15 μm thick polyimide layers. This configuration implies that the metal, lying on the neutral plane of the structure, is not affected by any compressive/tensile stresses during sensor bending.
The sensor has been functionally characterized. To this aim a dedicated control has been implemented for keeping the sensor at a constant temperature, and an experimental mechanical set-up has been developed in order to perform slip tests on three different and frequently used materials.
Experiments show the sensor capability in detecting slip events in about 40–55 ms, depending on the slipping material. On-going work is focused on implementing an adaptive control able to autonomously set the threshold value of slip occurrence (CVT) as well as on characterizing the sensor capability in discriminating initial contacts from slip events. Moreover, the readout electronics and the control will be further optimized and improved in order to be able to test the sensor with bars of several materials, covering a wider range of thermal conductivity values. Moreover, in order to improve the spatial acuity, as well as to allow the detection of slip direction, ongoing works focus on the development and characterization of a 2 × 1 cm2 array, embedding 24 thermal slip sensing units, arranged in a chessboard-like configuration.
Future work will be devoted to investigate possible performance limits due, for example, to the thickness of the touched object (e.g., thin paper sheets). Finally, considering that the response time is influenced by the thermal conductivity of the object, an extensive characterization of the sensor will be performed in order to verify its possible capability of discriminating the material it is in contact with. It is expected that the slip of objects with comparable thermal properties will induce comparable response times, but further optimizations of the sensing elements should overcome this issue.
Finally, in order to test the effectiveness of the sensors in a real scenario, future work includes the sensors integration on a robotic fingertip and the development of a manipulation control scheme, integrating the sensor signals.
The authors are grateful to the BioMEMS Group at FBK (Trento, Italy) for their invaluable help in the microfabrication of the sensors.
- Clement, R.G.E.; Bugler, K.E.; Oliver, C.W. Bionic prosthetic hands: A review of present technology and future aspirations. Surgeon 2011, 9, 336–340. [Google Scholar]
- Dahiya, R.S.; Metta, G.; Valle, M.; Sandini, G. Tactile Sensing—From Humans to Humanoids. IEEE Trans. Robot. 2010, 26, 1–20. [Google Scholar]
- Flanagan, J.R.; Wolpert, D.M.; Johansson, R.S. Sensorimotor prediction and memory in object manipulation. Can. J. Exp. Psychol. 2001, 55, 89–97. [Google Scholar]
- Hasegawa, T.; Honda, K. Detection and measurement of fingertip slip in multifingered precision manipulation with rolling contact. Proceedings of International Conference on Multisensor Fusion and Integration for Intelligent Systems, 2001. MFI 2001, Baden-Baden, Germany, 20–22 August 2001; pp. 43–48.
- Ikeda, A.; Kurita, Y.; Ueda, J.; Matsumoto, Y.; Ogasawara, T. Grip force control for an elastic finger using vision-based incipient slip feedback. Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems, Sendai, Japan, 28 September– 2 October 2004; pp. 810–815.
- Lowe, R.J.; Chappell, P.H.; Ahmad, S.A. Using accelerometers to analyze slip for prosthetic application. Meas. Sci. Technol. 2010, 21, 035203. [Google Scholar]
- Howe, R.D.; Cutkosky, M.R. Dynamic tactile sensing: Perception of fine surface features with stress rate sensing. IEEE Trans. Robot. Autom. 1993, 9, 140–151. [Google Scholar]
- Yamada, D.; Maeno, T.; Yamada, Y. Artificial finger skin having ridges and distributed tactile sensors used for grasp force control. J. Robot. Mechatron. 2002, 14, 140–146. [Google Scholar]
- Cotton, D.P.J.; Chappell, P.H.; Cranny, A.; White, N.M.; Beeby, S.P. A novel thick-film piezoelectric slip sensor for a prosthetic hand. IEEE Sens. J. 2007, 7, 752–761. [Google Scholar]
- Wettels, N.; Parnandi, A.R.; Moon, J.-H.; Loeb, G.E.; Sukhatme, G.S. Grip control using biomimetic tactile sensing systems. IEEE/ASME Trans. Mechatron. 2009, 14, 718–723. [Google Scholar]
- Wettels, N.; Santos, V.J.; Johansson, R.S.; Loeb, G.E. Biomimetic tactile sensor array. Adv. Robot. 2008, 22, 829–849. [Google Scholar]
- Engel, J.; Chen, J.; Liu, C. Development of polyimide flexible tactile sensor skin. J. Micromech. Microeng. 2003, 13, 359–366. [Google Scholar]
- Melchiorri, C. Slip Detection and Control using tactile and force sensors. IEEE/ASME Trans. Mechatron. 2000, 5, 235–243. [Google Scholar]
- Accoto, D.; Sahai, R.; Damiani, F.; Campolo, D.; Dario, P.; Guglielmelli, E. A slip sensor for biorobotic applications using a hot wire anemometry approach. Sens. Actuators A 2008. [Google Scholar] [CrossRef]
- Beccai, L.; Roccella, S.; Ascari, L.; Valdastri, P.; Sieber, A.; Carrozza, M.C.; Dario, P. Development and experimental analysis of a soft compliant tactile microsensor for anthropomorphic artificial hand. IEEE Trans. Mechatron. 2008, 13, 158–168. [Google Scholar]
- Cranny, A.; Cotton, D.P.J.; Chappell, P.H.; Beeby, S.P.; White, N.M. Thick-film force and slip sensors for a prosthetic hand. Sens. Actuators A 2005, 123–124, 162–171. [Google Scholar]
- Hosoda, K.; Tada, Y.; Asada, M. Anthropomorphic robotic soft fingertip with randomly distributed receptors. Robot. Auton. Syst. 2006, 54, 104–109. [Google Scholar]
- Fujimoto, I.; Yamada, Y.; Maeno, T. Development of artificial finger skin to detect incipient slip for realization of static friction sensation. Proceedings of IEEE Multisensor Fusion and Integration for Intelligent Systems, Tokyo, Japan, 30 July–1 August 2003; pp. 15–21.
- Nishihara, K.; Komiya, S.; Okuma, N.; Otsuka, H. Slip sensor using a piezoelectric bimorph element. Trans. JSME C 1996, 62, 2244–2249. [Google Scholar]
- Cotton, D.P.J.; Graz, I.M.; Lacour, S.P. A multifunctional capacitive sensor for stretchable electronic skins. IEEE Sens. J. 2009, 9, 2008–2009. [Google Scholar]
- Kyberd, P.J.; Chappell, P.H. A force sensor for automatic manipulation based on the Hall effect. Meas. Sci. Technol. 1993, 4, 281–287. [Google Scholar]
- Engel, J.; Chen, J.; Fan, Z.; Liu, C. Polymer micromachined multimodal tactile sensors. Sens. Actuators A 2005, 117, 50–61. [Google Scholar]
- Oddo, C.M.; Beccai, L.; Felder, M.; Giovacchini, F.; Carrozza, M.C. Artificial Roughness Encoding with a Bio-inspired MEMS based Tactile Sensor Array. Sensors 2009, 9, 3161–3183. [Google Scholar]
- Childress, D.S. Historical aspects of powered limb prosthesis. Clin. Prosth. Orthot. 1985, 9, 2–13. [Google Scholar]
- Francomano, M.T.; Accoto, D.; Morganti, E.; Lorenzelli, L.; Guglielmelli, E. A microfabricated flexible slip sensor. Proceedings of IEEE RAS/EMBS 4th International Conference on Biomedical Robotics and Biomechatronics (BioRob), Rome, Italy, 24–27 June 2012; pp. 1919–1924.
- Accoto, D.; Francomano, M.T.; Benvenuto, A.; Luccarelli, C.; Guglielmelli, E. Optimization of a thermal slip sensor using FEM and dimensional analysis. Proceedings of IEEE RAS/EMBS 3rd International Conference on Biomedical Robotics and Biomechatronics (BioRob), Tokyo, Japan, 26– 29 September 2010; pp. 855–860.
- Katz, R. Contemporary Logic Design; The Benjamin/Cummings: Redwood City, CA, USA, 1998; pp. 70–85. [Google Scholar]
- Serway, R.A. Principles of Physics, 2nd ed.; Saunders College Publishers: Fort Worth, TX, USA, 1998; p. 602. [Google Scholar]
- Chakrabarti, R.; Das, M.; Chakraborty, D. Physical, mechanical, and thermal properties of PVC/PMMA blends in relation to their morphologies. J. Appl. Polym. Sci. 2004, 93, 2721–2730. [Google Scholar]
- Steinhagen, H.P. Thermal Conductive Properties of Wood, Green or Dry, from −40 to +100 °C: A Literature Review; Technical Report for USDA Forest Service, Forest Products Laboratory, General Technical Report FPS-9: Madison, WI, USA, 1977. [Google Scholar]
|IN1||V < VL||S0→S1|
|IN2||V ≥ VL||S0→S0|
|IN3||V < VH||S1→S1|
|IN4||V ≥ VH||S1→S0|
|A||V < VL||1|
|B||V < VH||1|
|C||I = IH||1|
|IL||Current (low)||1 mA|
|IH||Current (high)||13 mA|
|R0||Microsensor resistance at room temperature||614 Ω|
|RT||Microsensor target resistance||616 Ω|
|α||Au thermal coefficient||0.0034 °C−1|
|ω||Motor velocity||150 rpm|
|TS||Sampling time||1 ms|
|Rm||Crank radius||25 mm|
© 2012 by the authors; licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).