Elite Project Report: Gesture Controlled Robot
Elite Project Report: Gesture Controlled Robot
On
Gesture Controlled Robot
By
Pushkar Baranwal
BSc(H) Electronics
ZO-457
And
Phulender
BSc(H) Electronics
ZO-426
2019
ACKNOWLEDGEMENT
Foremost, we would like to express our sincere gratitude to our Acting Principal Dr. Ravi Toteja
for providing us with an opportunity to explore our ideas through summer fellowship ELITE
program. We would like to thank our mentor Dr. Anju Agrawal and Ms. Gauri Ghai for guiding
us at every stage in our project. Our mentors Dr. Anju Agrawal and Ms. Gauri Ghai provided
their valuable time for the development of our project and to get familiarized with the different
components which are part of our project. Besides our mentors, we would like to thank Dr.
Ravneet Kaur and Mr. Dinesh Kumar for helping us during our project. We would like to thank
Dr. Amit Garg and Mr. Shani Kumar for allowing us to use resources from SPIE Lab for
hardware assembling and testing of Gesture Controlled Robot. We would also appreciate the
help provided by our non-teaching Staff for helping us in issuing different hardware items from
Department of Electronics. We would like to thank our parents and friends for supporting us.
CERTIFICATE
This is to certify that the project entitled “GESTURE CONTROLLED ROBOT” has been
undertaken under the ELITE scheme of Acharya Narendra Dev College, University of
Delhi and is a bonafide work carried out by us in the Electronic Laboratory. This work has
not been submitted anywhere earlier, partially or fully.
Date: -_______
ABSTRACT
Today's world is surrounded with technology. Advancement in technology and making it more
accessible for efficient interaction has become a very crucial part in the human development.
Gesture control enable us to control machines by hands just as we can control our body parts.
The ability to control machines with gestures eliminates complicated steps one needs to perform
while operating a machine. Moreover, it does not require proper training to operate machine
which works on complicated algorithms. Gestures provide the user with a new form of
interaction that mirrors their experience in the real world. They feel natural and require neither
interruption nor an additional device. Furthermore, they do not limit the user to a single point of
input but instead offer various forms of interaction. It provides immense aid for people for whom
mobility is a great challenge. This paper deals with the design and implementation of an
accelerometer-based hand gesture-controlled robot, operated wirelessly using a small low cost,
3-axis accelerometer. A novel algorithm for gesture identification has been developed to replace
the approach of conventional controlling mechanism of robots via buttons by an innovative hand
gesture-based controlling.
INTRODUCTION
The current emerging technology in the field of science is Robotics. It is the new emerging
booming field of great use to people in the coming years. These days a number of wireless robots
are being developed and put to various applications and uses. In order to enhance the
contribution of robot in our daily lives we need to find an effective way of communicating with
robots. For this purpose, there have been certain developments in area of human-machine
interaction. One common form of communication is gestures that are not only limited to face,
body and fingers but also hand gestures. In order to increase the use of robot in places where
conditions are not certain like rescue operations, robots can be made to follow the instructions of
human operator and perform the task accordingly. This proposes an integrated approach of
tracking and recognition of hands which is intended to be used as human-robot interaction
interface.
COMPONENTS USED IN THE PROJECT
Accelerometer: -
An accelerometer is a one type of sensor and it gives an analog data while moving in the
direction of X, Y and Z. These directions depend on the type of sensor. The diagram of
accelerometer is shown below. This sensor consists of arrow directions, if the sensor is tilt in one
direction, then the data at the particular pin will change in the form of analog. The accelerometer
consists of six pins, where the function of each pin is discussed below.
Encoder
The HT 12E Encoder ICs are series of CMOS LSIs for Remote Control system applications.
They are capable of Encoding 12 bit of information which consists of N address bits and 12-N
data bits. Each address/data input is externally trinary programmable if bonded out. This encoder
is used to encode the 4-bit data and transmits by using an RF transmitter module.
RF Module
Radio Frequency (RF) module consists of two parts: Transmitter (Tx) and Receiver (Rx). It is a
small electronic device used to transmit and receive signal between two devices. It is available in
different operating frequencies with different operating range. An encoder Circuit & a decoder
circuit is used along with the Transmitter & Receiver respectively in order to transmit & receive
the message/signal. As shown in figure below, the RF Module operates at the frequency of
315MHz with an operating range of 400-500 meters. RF transmission is better than IR because
signals through RF can travel through larger distances while IR mostly operates in line-of-sight
mode and also RF signals can travel even when there is an obstruction between transmitter &
receiver. Moreover, RF transmission is stronger and more reliable than IR transmission.
The major components used in the receiving section include receiver, decoder, microcontroller
and motor driver.
WIRELESS
ENCODER IC
TRANSMITTER
ATMEGA
POWER SUPPLY ACCELEROMETER
328P
Decoder
The HT 12D ICs are series of CMOS LSIs for remote control system applications. For proper
operation a pair of encoder/decoder with the same number of address and data format should be
selected. The Decoder receive the serial address and data from its corresponding decoder,
transmitted by a carrier using an RF transmission medium and gives output to the output pins
after processing the data. The decoder is used to change the serial data into parallel data which is
received from the receiver circuit.
Microcontroller
The Atmel 8-bit AVR RISC-based microcontroller combines 32 kB ISP flash memory with read-
while-write capabilities, 1 kB EEPROM, 2 kB SRAM, 23 general purpose I/O lines, 32 general
purpose working registers, three flexible timer/counters with compare modes, internal and
external interrupts, serial programmable USART, a byte-oriented 2-wire serial interface, SPI
serial port, 6-channel 10-bit A/D converter (8-channels in TQFP and QFN/MLF packages),
programmable watchdog timer with internal oscillator, and five software selectable power saving
modes. The device operates between 1.8-5.5 volts. The device achieves throughput approaching
1 MIPS per MHz the microcontroller is the most essential part of the robot. An AT328P family
microcontroller is used in the circuit to give a decision capacity.
Motor Driver
The primary purpose is to supply current to the motors as it cannot be done through the
microprocessors. The L298D is a 16-pin IC dedicated to control the motor. It can take input voltage
between the range 6-18 Volts.
At the receiver section, an RF receiver module receives the data from the transmitter. The
received data can be decoded by an IC HT12D. The received data can be processed by AT328P
microcontroller and motor driver is used to control the motor.
DECODER
MOTOR
RF RECEIVER IC MOTORS
DRIVER IC
POWER
SUPPLY
#include <MPU6050_tockn.h>
#include <Wire.h>
MPU6050 mpu6050(Wire);
long timer = 0;
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
void loop() {
mpu6050.update();
Serial.print("accX : ");Serial.print(mpu6050.getAccX());
Serial.print("\taccY : ");Serial.print(mpu6050.getAccY());
Serial.print("\taccZ : ");Serial.println(mpu6050.getAccZ());
{ //FORWARD
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
{ //BACKWARD
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
{ //LEFT
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
}
{ //RIGHT
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
else{
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
Applications
The application of accelerometer-based gesture-controlled robot include
● These robots are used in military applications to operate robots
● These robots are used in medical applications for the purpose of surgery
● This robotics are used in the construction field
● This robotics are used in industries to control trolley and lift.
Result
There are total five conditions for Gesture Control that has been studied. Specific inputs are to be
fed to the analog port of the Arduino and the digital output from Arduino is fed to the transmitter
circuit. These inputs are given in the following table
Input to the Arduino
Movement of hand
ports
Angle of tilt Direction Gesture Code D3 D2 D1 D0
Hand gesture control is an example of companionship between man and machine in the race of
man vs machine, further enhancing the technology to the next level from speech recognition and
wired connections to wireless hand gestured controlled technology. There is rapid growth in
application development in the field of gesture recognition system. So, in this project, we
propose a model of robot based on ‘Hand Gesture Recognition utilizing hand gestures to
communicate with the robot.’ The low price and short setup time are some of the advantages of
the system but an important limitation is limited accuracy of the system. Physical hardship is
avoided through the use of accelerometer as with the twist of hand. The user gets the ability and
freedom to turn the robot to desired direction
Future work will build upon accurate recognition of desired gestures. There are two possible
ways to achieve the desired accuracy. Firstly, by implementation of a gyroscope in the system, in
order to separate the acceleration due to gravity from inertial acceleration. Secondly, by
installing a GPS in the system to track the position of ROBOT. The use of more accelerometers
to the arms is another possibility.
References
[2] http://research.ijcaonline.org/volume79/number13/pxc3891906.pdf
[3] http://ijsetr.org/wp-content/uploads/2013/07/IJSETR-VOL-2-ISSUE-3-749-755.pdf
[4] http://researchtrend.net/ijet41/3%20DIKSHA%20NGF.pdf
Appendix I
1 Vcc Provides power for the module, can be +3V to +5V. Typic ally +5V is used
3 Serial Clock (SCL) Used for providing clock pulse for I2C Communication
4 Serial Data (SDA) Used for transferring Data through I2C communication
5 Auxiliary Serial Data (XDA) Can be used to interface other I2C modules with MPU6050. It is optional
6 Auxiliary Serial Clock Can be used to interface other I2C modules with MPU6050. It is optional
(XCL)
7 AD0 If more than one MPU6050 is used a single MCU, then this pin can be used to vary the address
8 Interrupt (INT) Interrupt pin to indicate that data is available for MCU to read.
MPU6050 Features
● MEMS 3-aixs accelerometer and 3-axis gyroscope values combined
● Power Supply: 3-5V
● Communication: I2C protocol
● Built-in 16-bit ADC provides high accuracy
● Built-in DMP provides high computational power
● Can be used to interface with other IIC devices like magnetometer
● Configurable IIC Address
● In-built Temperature sensor