Introduction: Robotic Three Finger Gripper


This project was created based on the research of the Astana LAboratory for Robotic and Intelligent Systems (ALARIS) by recreating a 3D printed 3-finger underactuated robotic gripper. This robotic gripper has been designed for educational and research purposes and therefore it was an opportunity for its re-production by integrating further measurement possibilities apart from grasping an object. Thus, different sensors were introduced by adapting the initial design accordingly.

Step 1: Project Analysis

Problem Definition

The aim of this project was the advancement of an open-source robotic gripper that could include technology that could be used for further scientific study. For this reason, as a first step the description of the technology behind the gripper was given and then a proposal for a different case scenario was proposed.

Considering the paper was provided from the ALARIS laboratory, the mechanical analysis of the robotic hand as an underactuated robotic chain had been done. However, the design itself did not have any control or feedback method for data acquisition and interaction with the user.

Therefore, initially, an ON/OFF switch was integrated as a manual power supply of the system when is needed. Also, two different LEDs were considered as an indication method for realizing the position of the servo motor as a response to the value of a sliding potentiometer that a user could manipulate. This way, the fingers of the gripper could close according to the given value of the potentiometer and therefore grasp an object.

However, in order to avoid any damage to the equipment itself or the object that is placed in the gripper, a force-sensitive sensor was used that could estimate the pressure is applied on the fingers when the user slides the potentiometer, the fingers are converging and the object is stabilized in the desired position. In the case where the force could exceed an upper limit then a red LED turns on as a warning and the servo motor stops working indicating to the user to return the potentiometer in its initial position such that the object could be removed.


The persons that could benefit from this device could be mostly on an educational and researching level where space even further advancement could be an option.

Goals of the Project

The 3-finger robotic gripper has been provided such that could be advanced up to a level for educational purposes by providing an alternative solution for manipulating the fingers. Therefore the following steps should be fulfiled by the end of this project:

  • The use of different electronic components could make the gripper more automatic.
  • Control of the gripper based on those components.
  • Learn programming the Arduino board according to its capabilities.
  • Understand the principles of the electronic components that could be used and how those are in connection with the Arduino board.
  • 3D modeling according to the requirements of the problem and generation of useful real parts.
  • Understand and the manufacturing process of each component/part.
  • Create a final robot that could be effectively used in real life.

Design Assignment

A challenge in this project was the adaptation of the extra sensor in each phalange of the robotic gripper such that it would not restrict the motion due to wires, especially due to the fact that it is underactuated and that there is a linear component that preserves the continuity of the system. Also, it would not challenge the accuracy either of the position of the finger neither of the sensor itself.

Also, the operation of the sensor inside the finger for the pressure data acquisition could be fixtured accordingly and have the ability to operate without a big loss of information or noise of any contact of it with the possible potential surroundings. Thus a matrix was 3D-printed that could give the shape of a silicon fingertip with the piezoelectric sensor encapsulated in it.

List of Requirements

At the end of the project, the servo motor would be necessary to respond to the movement of the sliding potentiometer, returning the respective light intensity of the LED and in case of high pressure, the FSR sensor could indicate that correctly.

Step 2: Project Synthesis - 3D Modeling

Small changes were made to the given design such that the requirements could be met, based on the electronic components were chosen. More precisely, the soft pads that were covering the fingers were replaced with similar components that were molded with a silicon rubber material. Those were designed such that could carry at a specific position the pressure sensors that were used for measuring the required forces and respond according to the programmed tasks.

Each finger consists of the same modification in design and therefore manufacturing procedure such that a possible second force-sensitive sensor could be placed for better security of the system, or changing their position from the distal to intermediate phalanges. Lastly, one extra-base layer was designed that could carry the microprocessor and the power source at the bottom, while on the upper layer a sliding potentiometer was placed with the ON/OFF switch.

Manufacturing Process & Components

Most of the components were designed for this robotic gripper such that could be used off-the-shelf components or easily manufactured either by 3D-Printing or laser cutting whatever was necessary. In this particular case, all the finger parts were designed with the possibility to be 3D printed similarly to the base layers for mounting the gripper. Those two layers were considered to be connected through an M4 threaded rod worm and supported by small metallic shafts that were in consideration by the first designers of the gripper. The alternative option though could be given to the latter parts by using a laser cut machine and an MDF wooden material, for the case of time and cost safe. However, details of the design were the bolts placed hidden inside the part could not be in consideration since the laser machine would be difficult to engrave the wood in such depth without damaging (burning) the material.

Also, the fingertips of the gripper are covered with a rubber material that in this case, were cast and shaped considering that the pressure sensors should be hosted at the center of them, however with the possibility to retrieve it or change it according to the circumstances. For this, an extra matrix that supported such an application was 3D-Designed and considered as a component that could be 3D-printed. With that and the appropriate chemical composition of the rubber material, the support puds could be cast, and when are healed both the pud itself and the inner part that shapes the slope that hosts the sensor could be removed. The casted rubber material could be glued afterward on the right position of the robotic fingers and used for the application and execution of the tests.

Off-The-Shelf Components

The mechanical components were used for the assembling and fixation of each part that constitutes the robotic gripper were supplied by online and local stores and those are listed on the provided attached excel file.

Design Analysis

Each component was designed and adapted to the specifications and requirements of the project. Considering the goal of the project, the 3D model of the gripper should be approached in three different groups of components. Firstly, possible changes on the fingers themselves, secondly potential changes on the base such that could support all the electronics were chosen integrated into one compound design, and lastly the designing of any possible extra part that could assist the production or support the basic model.

The two levels of the base where the gripper and all the rest components were mounted were designed according to the already existed model that was provided. Based on this, it was sketched and extruded similar geometries in dimensions according to the size of the ON/OFF switch, the sliding potentiometer, the Arduino, and the battery base. Therefore, a number of modifications of the base-plates were designed such that could provide support to each component. As an example for the sliding potentiometer, an additional material removal was considered where the wires that could connect on the three basic pins of the component could pass through the base and not around the whole structure till up to the Arduino board. Also, holes were created where the potentiometer could be mounted with bolds offering comfort and stability during use, as could be shown in the pictures. And lastly, the two different base plates were designed such that could be connected with metal rods that interconnect the two different layers by using a threaded rod worm.

Similarly, for the integration of the FSR sensor on the fingers, the casted rubber pad was necessary to have a hollow space where the sensor could fit in and be removed or replaced at any moment. For this, an extra component was designed on the shape and size of the original pad the first designers provided which component consists of two different parts. One is the matrix where the silicon material is placed and the "Inner Part" that could give the hollow shape for placing the FSR sensor. In order to support the inner part until the silicon solidifies an extra micro-sized support extrusion was designed that could hold the second part stable and parallel to the matrix. At the end of the solidification, the silicon pad is removed from part 1 and then part 2 is retrieved carefully from the pad. Part 2 was designed such that could be functional for its purpose without damaging the silicon pad or disturbing the manufacturing procedure. Geometrical Details could be shown in the attached images.

Step 3: Project Synthesis - Circuit Schematic

Electronics List

At this stage, an illustration of the circuit with all the electronics was created by using the free application named Fritzing. The following components were in consideration as listed below:

  1. 1x Force Sensitive Resistors,
  2. 1x Servo Motor,
  3. 2x LED (Green & Red),
  4. 3x Resistors (10 kΩ, 220 Ω),
  5. 1x Linear Potentiometer (10 kΩ),
  6. 1x ON/OFF switch,
  7. 1x 9(V) Battery.

The circuit of the system was created according to the reference tutorial of each component individually executed their code on an Arduino board, initially and then as a combination of all as was required for the project. Thus, by combining all of them without violating the energy supply equilibrium, the required tasks were executed by the gripper according to the considerations that were initially made. Based on this schematic, the circuit was tested and validated.

Principle of the Electronic Components

FSR Sensor

The basic components that were used for this project and had to be controlled were mainly four, the Servo Motor, the Linear Potentiometer, the Force Sensitive Resistor, and the switch. Explaining the principles of each one, one could say that the force Sensitive Resistor (FSR) is a combination of two conductive layers, where interdigitating electrodes are printed on one of them extended out of the plastic sealing cover and an adhesive layer in the middle of the conductive material. All those serve the purpose of resistance magnitude variance when pressure is applied on them with a range varying between 10 [MΩ] when no pressure is applied and 200 [Ω] being the maximum pressure the sensor could withstand.

Therefore, the relation Force vs Resistance F(R) describes the logarithmic behavior of the sensor and mostly the response of the sensor when the pressure is applied considering that the higher the force, the lower the value of the resistance could be. The value of the sensor could be read by the ADC of the Arduino given that a voltage variance could be created. Thus a voltage divider circuit and a pull-down resistor have been created, as shown in the schematic and the equation that describes the output voltage of the Arduino that is measured could be V_{out} = V_{sorce} * R / (R + R_{FSR}), with V_{sorce} = 5 [Volts]. Therefore, according to the pull-down resistor value, the output could vary accordingly which could be used as an understanding of the setpoint for the sensor itself.

ON/OFF Switch

The switch was chosen for turning ON and OFF the robot is a two-state discreet switch that was used only for controlling manually the supply of energy to the whole robotic system when is used or not. The only extra consideration that was not implemented in this project was the use of an extra resistor in series to it, but it was avoided since the current is provided is minimum and there was no other use for information acquisition of this sensor apart from the power supply.

Linear Potentiometer

A linear potentiometer is a passive electronic component and could be considered as a type of variable resistor that based on the position of a slider, a respective output divided voltage could be derived. Therefore, the principle of deriving the voltage of this sensor could be similar to the principle of the FSR sensor since, in order to acquire the adjustable voltage, a variable voltage divider would be necessary to be considered. Similarly, as the FSR sensor, the signal is measured by the Arduino micro-processor is analog and could be considered continuous which could require the respective programming that could allocate its potential values within common ranges/intervals.

Servo Motor

Servo motor is a combination of components that could provide precise positioning and mainly as a system consists of a control device, a DC motor, and a feedback system. By using positive feedback error to rotate and acknowledge the position of the motor shaft the system maintains its position normally even with disturbances. The DC motor is connected to a gear assembly which is used to reduce the RPM and increase the torque, while a potentiometer acknowledges its position each time, which could generate the required signal for measuring the error and ultimately have this information into the micro-processor; in this case Arduino board. Therefore, servo motors consist of three basic pins, one for the input power, the GND, and the discrete PWM connector.

The servomotors could be controlled based on the principle of pulse width modulation (PWM), which means that the rotation of the shaft depends on the duration (ms) of the applied electrical pulsation that the controller of the servo motor receives. Servo motors usually can rotate between 90 and 180 degrees angle and in this particular project, a motor or 180 degrees rotation angle was used with an adapted rotation range to the requirements of the project itself.

Step 4: Project Synthesis - 3D Finger Robot Script

On the pictures, the execution of the written script, given below, where could be shown a number of manual steps of the servo motor. Also, a flowchart of the code is provided, as could be seen in the pictures.

#include <Servo.h>
// Set the pins were used on Arduino UNO for each sensor/actuator. 
const int ServoMotor = 11;
const int RedLed = 5;
const int GreenLed = 6;
const int SlidingPot = A2;
const int FSR = A1;
// Define the variables are used in the script.
int LEDbrightness;
int ServoVal;
float FSRData;
float PotVal;
// Declaration of a new variable "sm" that links the functions of the "Servo.h" library with the code.
Servo sm;
void setup()

	 // Configuring the behaviour of the sensors.
	pinMode(RedLed, OUTPUT);
	pinMode(GreenLed, OUTPUT);
  	// Attaches the servo motor to the pin was set, with an optional operating PWM interval.

void loop()
  	// Reading analog values of the potentiometer and alocate it in the range of motion of the ServoMotor.
	PotVal = analogRead(SlidingPot);
 	PotVal = map(PotVal, 0, 1023, 0, 180);
  	if (PotVal > 0)
   		 // Print the mapped values of the ServoMotor.
    		Serial.print(", ");

    		// Print the values of the potentiometer.
    		Serial.print(", ");
    		// Print the values of the FSR sensor.
	 	 FSRData = analogRead(FSR);

    		// Alocate the values of the ServoMotor into the range of the LED brightness.
    		LEDbrightness = map(PotVal, 0, 180, 0, 255);
   		 analogWrite(GreenLed, LEDbrightness);

		// Setting a threshold of 800 could be according to the intuition of the user considering
		//  the range between [0,5] Volts the sensor operates and therefore the board allocates 
		// those values into an intiger range of numbers between [0, 1023].
  		if (FSRData > 800)
    			 // LED light turns on and the ServoMotor detaches from its pin.
     			digitalWrite(GreenLed, LOW);
    			digitalWrite(RedLed, HIGH);
	     		Serial.print("WARNING -  WAIT \n");
	    		digitalWrite(RedLed, LOW);
	     		Serial.println("Zero the potentiometer and remove the object.");
	    		 // Attaches the ServoMotor again on its pin and zeros the ServoMotor.

Step 5: Discussion

Further improvement of this project could be an advanced control of the servo motor that could function with accuracy, precision, and the least energy cost. Additionally, further improvements to the design could also be introduced. What concerning the graph and data samples are provided, as could be shown in the attached photos, Arduino IDE does not provide an option to export the acquired data from the sensors, or save the plotted graphs, or handling appropriately and with flexibility the axes titles, legends, etc, while there was a sensitivity and inconsistency on the automatic naming of the titles with respect to the measured data that are represented as colored lines on the graphs.

This means that the code could be controlled up to a limit by changing the spacing with an additional underscore "_" between the words, as an example "Serial.print("FSR_values")" , or by eliminating the number of Serial.Print() functions inside the code and compromising the organization of the presented records. Therefore, an alternative solution to this could be a different IDE or a methodology that could be combined with the Arduino board that could offer better control over the functions and capabilities of the micro-controller. Cases like Matlab, etc. could offer such possibilities with better controllability and data acquisition from the electronic components that could be used.

Lastly, considering the workflow and the steps as were described, from the beginning until the end, the goal for manipulating a servo motor such that would be possible to execute specific action was reached. The 3D model, the schematic, and the practical experimentation could show that the gripper has been advanced up to a level and could be used effectively according to the requirements and the purpose of the project.

Step 6: Download Files