Complete Report
Complete Report
Complete Report
Chapter 1: Introduction
1.1: Inspiration:
In this busy world, time is of the prime essence. Thus humans try to optimize the usage of
time. Also due to lack of resources, the optimum utilisation of resources is also very
important. Thus in order to use optimally the time and resources, robot is being made to
perform repetitive, redundant work with appreciable efficiency. Nowadays robots are also
used to perform tasks in various hazardous environments.
Just like any office, our department too consists of several official and administrative works
which requires the processing of various documents. These documents generally are needed
to be passed through different people either for notifications, signing etc. This passing of
documents from one person to another person sitting at a different table at a different location
is generally carried out by a human. But it really is a task which does not require the many
skills of a human being. It only needs to be transported. A human is resource is wasted to
perform this simple and unskilled job. Thus it struck our mind to replace this human resource
with an autonomous robot in order to save time as well as a precious human resource.
The objective of this project is to build a robotic officemate for the purpose of carrying
documents from one table to another. In order to operate the proposed system in real
environment, it is very important for the officemate to be able to adapt to an environmental
changes that may occur in an indoor environment. While achieving its task it will also detect
obstacles on its way, avoid them, avoid falling off edges and also form a path from its present
location to its destination.
1.3: Overview:
The mobile robot is a three wheeled robot platform which employs the differential steering
mechanism for motion in given angles. Two DC geared motors have been used for the
driving wheels. The robot has an array of onboard infrared sensors which is mounted on the
robot chassis. The movement of the robot is controlled by the Atmega328 microcontroller.
Now before we get into the details of how it works we will be covering certain information
which I hope will further improve our understanding of the robot and its actions.
Page 1
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Because it is far easier to evolve a robot into something better at a job than it is to evolve a
human to be better at a job. So while a human might be able to do piecework at some speed,
it is almost certain a robot can be designed to do that same piecework better, faster, more
economically, even more environmentally friendly
The project is to develop a robot that will move according to the code assigned but find a free
space, navigating from any obstacle on its way. This kind of obstacle is very useful in
industries where automated supervision is needed, for example, in places where it might be
risky for humans to be. This robot can also be made by putting other sensors like light sensors
or line sensors depending on the need. However, putting camera in the robot will make it a
smart robot that this may help humans if needed.
The project also provides a guideline to the students who are new in the world of Arduino
and help them to understand about embedded system, IR sensors, microcontroller and how to
make a robot using Arduino.
Page 2
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Chapter 2: Terminology
Page 3
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Robotics has become the most evolving field with an exciting and accessible tool for teaching
and supporting in science, technology, engineering, mathematics, design principles etc. As
technology proliferated, automation has ingrained into our daily lives, allowing a complex
application to become a reality. By this we can extricate energy, materials, manpower and
time, thus emphasizing its importance. Robotics indulges more affordability and reusability
of equipment as compared to other prepackaged options. Hence the quality, accuracy and
precision are better. In this paper an institution assistant system which is fully automated has
been presented. This machine was designed in order to mitigate the human to human
interference. This also gives an agile work performance in an institution. The perpendicular
line we used to halt the robot will be replaced by the RF IDs in the future work. Unique codes
to each and every classroom help the robot to halt in front of it. In order to recognize the
authenticated user, mini camera can also be used which is added to our future work. The
GSM module helps out the user by avoiding the signing at the end of the circular.
Paper 3: Adaptive Navigation of Mobile Robots with Obstacle Avoidance by Atsushi Fujimori,
Peter N. Nikiforuk, and Madan M. Gupta, August 1997
Robot navigation problems can be generally classified as global or local, depending upon the
environment surrounding the robot. In global navigation, the environment surrounding the
robot is known and a path which avoids the obstacles is selected. In one example of the
global navigation techniques, graphical maps which contain information about the obstacles
are used to determine a desirable path. In local navigation, the environment surrounding the
robot is unknown, or only partially known, and sensors have to be used to detect the obstacles
and a collision avoidance system must be incorporated into the robot to avoid the obstacles.
Page 4
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
The concept of utilizing RFID for indoor localization has been shown to be both technically
and economically feasible. The RFID positioning robot was successfully designed to provide
autonomous navigation for indoor applications. In the near future, we plan to improve the
localization and navigation algorithm to improve accuracy. Further analysis will be
performed to accurately identify a specified location by placing RFID tags at different
distances and orientations. While we are currently able to determine our location within
30cm, further analysis will provide improvement on the accuracy. Many different methods
have been proposed for localization of RFID system including Angle of Arrival (AOA),
Received Signal Strength Indicator (RSSI), and Time of Arrival (TOA). AOA measurement
determines the angle between the transmitter receiver line and the reference direction [13],
and the accuracy is dependent on number of receivers or the rotating device, and is more
suitable for operating outdoors. RSSI on the other hand uses signal strength to determine the
distance between the sender and receiver [13].
Page 5
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
In order to make our autonomous robotic officemate “Ally” we used the following
components:
The power supply to the Arduino, the infrared sensors and the Motor driver circuit are
provided by the rechargeable 9V Nickel- Metal Hydride Battery. The Dc gear motors work
from the power provided by the motor driver.
The nine-volt battery, or 9-volt battery, is a common size of battery that was introduced for
the early transistor radios. It has a rectangular prism shape with rounded edges and a
polarized snap connector at the top. 9 Volt NiMH rechargeable batteries are ideal for
powering wireless microphones, remote controls, toys, electronic games, camping equipment,
tens units, metal detectors and so much more. The capacity of 9 Volt NiMH rechargeable
batteries ranges between 175 to 300 mAh (milli ampere hours). The higher the mAh rating
for the battery, the longer the run-time the battery will give you in one full charge.
Page 6
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
There are many advantages to using a 9V Ni-MH cell of battery. These 9V Ni-MH battery
advantages include:
Compatibility: If you have ten gadgets using an NiMH battery, you can use a single
pack to power them all. Not simultaneously of course. NiMH uses standard sizes so they
are compatible with all devices using sizes such as AAA or AA. Compared to Li-ions,
the sizes depend on the manufacturer or model of the device. I did see some AA size Li-
ions around the market so it may be worth checking them out.
They Are Safer: They have less active materials compared to Li-ion batteries. NiMH
can pop if they are overcharged too much or short circuit but this is nothing compared to
a Li-ion which can potentially blow up.
Can Be Completely Discharged: By this I mean they can be brought down to 0 charge,
if you can get it to reach that. They will still charge, just don't let it suffer from reverse
polarity or else they will be damaged.
High Self Discharge Rate: NiMH lose a large percentage of their charge every month.
The number is around 5% on the first week after the charge and about 50% on the first
month. There are low-self discharge (LSD) rate types available. They are more reliable
than the standard NiMH but they have lower capacities, usually around 2000mAh.
Unreliable for Low Load Devices: You should not use NiMH batteries for devices
such as clocks. They will lose charge faster through self-discharge rather than the load.
Use alkaline, Li-ion, or lithium batteries instead.
Low Voltage Output: Each AA cell can only give 1.2v compared to Li-ion cells which
can give 3.7v.
Long Charging Time: The standard charge time of a NiMH is 10-12 hours. Fast
charging these cells can result in damage. Li-ion cells can be charged at around 1-3
hours depending on capacity.
Page 7
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Page 8
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Chapter 5: Arduino
Arduino is an open source computer hardware and software company, project, and user
community that designs and manufactures single-board microcontrollers and microcontroller
kits for building digital devices and interactive objects that can sense and control objects in
the physical world.
Arduino board designs use a variety of microprocessors and controllers. The boards are
equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to
various expansion boards (shields) and other circuits. To the Arduino board, we can write
programs in personal computers and upload in it. The microcontrollers are typically
programmed using features from the programming languages C and C++. The Arduino
project provides an integrated development environment (IDE) in which the programs are
written into.
A program written with the IDE for Arduino is called a sketch. Sketches are saved on the
development computer as text files with the file extension .ino.
"Uno" means one in Italian and was chosen to mark the release of Arduino Software (IDE)
1.0. The Uno board and version 1.0 of Arduino Software (IDE) were the reference versions of
Page 9
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Arduino, now evolved to newer releases. The Uno board is the first in a series of USB
Arduino boards.
Page
10
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Chapter 6: Microcontroller:
A highly integrated chip that contains all the components comprises a controller. Typically
this includes a CPU, RAM, some form of ROM, I/O ports, and timers. Unlike a general-
purpose computer, which also includes all of these components, a microcontroller is designed
for a very specific task; to control a particular system. As a result, the parts can be simplified
and reduced, which cuts down on production costs. Microcontrollers are used in
automatically controlled products and devices, such as automobile engine control systems,
implantable medical devices, remote controls, office machines, appliances, power tools, toys
and other embedded systems.
6.1: ATMEGA328:
The ATmega328 plugs into a socket in the Arduino Uno as shown in the image below. There
are some Arduino Uno boards that have a surface mount ATmega328 chip. In this case it is a
small square chip soldered on top of the Arduino.
Specification of ATmega328:
Page
11
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
SRAM: 2 KB
EEPROM: 1 KB
Pin count: 28 pins – 23 general purpose I/O lines, three flexible timers/counters with
different compare modes, internal and external interrupts, with 32 general purpose
working register.
Number of channels: 16
Maximum operating frequency: 20 MHz
A/D converters: 6-channel, 10 bit
Advantage of Atmega328:
Page
12
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
A motor driver IC is an integrated circuit chip which is usually used to control motors in
autonomous robots. Motor driver ICs act as an interface between microprocessors in robots
and the motors in the robot. The most commonly used motor driver IC’s are from the L293
series such as L293D, L293NE, etc. These ICs are designed to control 2 DC motors
simultaneously. L293D consist of two H-bridge. H-bridge is the simplest circuit for
controlling a low current rated motor.
L293D has 16 pins, they are comprised as follows:
Ground Pins – 4, Input Pins – 4, Output Pins – 4, Enable pins - 2, Voltage Pins – 2
Page
13
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Working Of A H-bridge
H-bridge is given this name because it can be modelled as four switches on the corners of
‘H’. The basic diagram of H-bridge is given below:
Fig 8: H- Bridge
In the given diagram, the arrow on the left points to the higher potential side of the input
voltage of the circuit. Now if the switches S1 & S4 are kept in a closed position while the
switches S2 & S3 are kept in a open position meaning that the circuit gets shorted across the
switches S1 & S4. This creates a path for the current to flow, starting from the V input to
switch S1 to the motor, then to switch S4 and then the exiting from the circuit. This flow of
the current would make the motor turn in one direction. The direction of motion of the motor
can be clockwise or anti-clockwise; this is because the rotation of the motor depends upon the
connection of the terminals of the motor with the switches.
For simplicity, let’s assume that in this condition the motor rotates in a clockwise direction.
Now, when S3 and S2 are closed then and S1 and S4 are kept open then the current flows
from the other direction and the motor will now definitely rotates in counter-clockwise
direction
When S1 and S3 are closed and S2 and S4 are open then the ‘STALL’ condition will
occur(The motor will break).
Stall Condition:
When the motor is applied positive voltage on both sides then the voltage from both the sides
brings the motor shaft to a halt.
Page
14
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Page
15
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Chapter 8: Sensors
Sensors are sophisticated devices that are frequently used to detect and respond to electrical
or optical signals. A Sensor converts the physical parameter (for example: temperature,
blood pressure, humidity, speed, etc.) into a signal which can be measured electrically. Let’s
explain the example of temperature. The mercury in the glass thermometer expands and
contracts the liquid to convert the measured temperature which can be read by a viewer on
the calibrated glass tube.
In our project the main function is of the sensors. Without the presence of the sensors, we
cannot make the robot autonomous. Thus in order to give any kind of “intelligence” to an
autonomous robot, sensors coupled with the correct programming is essential.
The different sensors which can be used to perform the duties of obstacle avoidance and edge
detection are proximity sensors. The two most widely used proximity sensors are: Infrared
sensors and Ultrasonic sensors. The working principle of both the sensors is similar.
An Ultrasonic sensor is a device that can measure the distance to an object by using sound
waves. It measures distance by sending out a sound wave at a specific frequency and listening
for that sound wave to bounce back. By recording the elapsed time between the sound wave
being generated and the sound wave bouncing back, it is possible to calculate the distance
between the sonar sensor and the object.
Page
16
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
IR Sensors work by using a specific light sensor to detect a select light wavelength in the
Infra-Red (IR) spectrum. By using an LED which produces light at the same wavelength as
what the sensor is looking for, you can look at the intensity of the received light. When an
object is close to the sensor, the light from the LED bounces off the object and into the light
sensor. This results in a large jump in the intensity, which we already know can be detected
using a threshold. Since the sensor works by looking for reflected light, it is possible to have
a sensor that can return the value of the reflected light. This type of sensor can then be used to
measure how "bright" the object is. This is useful for tasks like line tracking.
Page
17
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
What is RFID?
Fig 14: RFID Tag (inner circuit) Fig 15: RFID Tag (Passive Inlays)
Page
18
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
• A reader: It consists of a scanner with antennas to transmit and receive signals and is
responsible for communication with the tag and receives the information from the tag.
Page
19
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Passive RFID system: These are systems where the tag gets power through the transfer of
power from a reader antenna to the tag antenna. They are used for short range transmission.
Page
20
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
125 kHz and 134.3 kHz Low Frequency (LF) Passive RFID Tags -read distance of 30
cm (1 foot) or less.
13.56 MHz High Frequency (HF) Passive RFID Tags - maximum read distance of
1.5 meters
860 ~ 960 MHz Ultra High Frequency (UHF) Passive RFID Tags - minimum read
distance of over 1 meter or 3 feet. Gen2 tags can have a read range of up to 12 meters
Active tags use a frequency of 433 MHz or 2.4GHz.
Antenna Gain:
A higher gain antenna increases the power received from the reader. For a longer read
range, an antenna having a gain of 9 dbi or higher is required. Thus, higher the gain, the
higher is the range of the antenna, and vice-versa.
Antenna Polarization:
Polarization refers to type of electromagnetic field the antenna is generating.
Linear Polarization refers to radiation along a single plane. A very simple way to
think of a linearly polarized RFID antenna‘s beam is to imagine swinging a sword
straight up and down or side to side.
Circular Polarization refers to antennas that split the radiated power across two
axes and then “spins” the field so as to cover as many planes as possible. A simple
way to imagine a circularly polarized RFID antenna‘s field is to imagine a
“tornado” emitting from surface of the antenna.
Since the power is not split across more than one axis, a linear antenna’s field will extend
farther than a circular antennaFig
with
20: comparable gain, polarization
Linear and Circular thus allowing for longer read range
when aligned with the RFID tag. But to get a overall superior read range in terms of area
Page
21
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Environmental factors:
Different environmental conditions can affect the performance of UHF RFID systems.
Water, metal, florescent lighting, large machinery, and competing frequencies (other
radio waves) may adversely affect UHF RFID read ranges.
In India, for the usage of RFID instruments, the ISM band is:
Frequency Band: 865-867 MHz
Low power RFID equipments or any other low power wireless devices or equipments
Power: Maximum transmitter output power of 1 Watt ( 4 Watts Effective Radiated Power)
Carrier Bandwidth: 200 KHz
Page
22
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
1. Placing the document and entering the destination: First the document will be
placed on the document holder placed on the robot chassis. Then the destination point
will be entered into the robot via a keyboard mounted on the robot chassis.
2. Identifying the destination: The destination will be marked by an RFID tag. The
robot will identify the destination via its IR sensors.
3. Path planning: Then it will plan a path to reach its destination. This path planning
will be done using an appropriate path planning algorithm.
4. Movement of the robot: The robot after forming its path plan will follow the path.
While moving linearly in the forward direction, the robot will move with a linear
speed. When encountering any turns, it will move via differential speed mechanism.
5. Obstacle detection: While moving in its path if the robot comes in contact with any
obstacle (stationary or moving), it will detect it using the IR sensors. After detecting
the obstacle it will move right and avoid the obstacle. This will occur every time the
robot comes in contact with any obstacle.
6. Adjustment of the path: Since it had avoided the obstacle, its pre-planned path has
been distorted. It will then try to return to its planned path. After returning to its
planned path, it will then continue on its path to the destination.
8. Reaching the destination: After reaching the destination, the robot will stop.
Page
23
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
The logic tables for the operation of the IR sensors are as follows:
Page
24
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
1. Our objective was determined, i.e. what we wanted to make, why we wanted to make
it, what was the source of inspiration, whether there was any practicality towards it etc
were discussed. A lot of brainstorming as well as internet surfing was done in order to
get the inspiration.
2. Next the concept of the robot, specifically what are the functions are to be performed
were determined. Thus a concept of the working of the robot was developed. The next
steps taken were keeping this concept in mind.
3. The majority of the time was spent for literature survey. A lot of literature was studied
to understand the working of the various parts of the robot architecture.
4. A market survey was done to learn the cost of the different components that are to be
used for the hardware realization of the conceptual robot.
6. The different approaches possible towards each function of the robot were debated
along with the advantage and disadvantage of using each approach was done. Finally,
for performing each function, a specific approach was selected upon its merits. For
example:
a. Out of all the approaches possible, we zeroed in on using the IR sensors as the
proximity sensors due its concise structure as well as its flexibility.
c. From the Arduino family, from among the different boards, the Uno was finalised
for using, due to its simplicity, wide availability, and optimum number of pins.
d. The Atmega328 microcontroller was used due to its memory, which was enough
for our requirement.
7. The mechanical design for the robot was determined. According to the design what
are the basic mechanical components required were listed.
Page
25
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
a. Nascent technology: In the technology universe, drones are still a new concept. In
that, autonomous drones are still in their nascent stage. Thus it is still in the
research domain. It is a field where not much significant literature and references
can be found.
d. Financial problem: Also a significant problem was the economic feasibility. Cost
of the components for drones is high. Being students, our budget for the project
was limited having to pay for it ourselves. Our budget seemed to be inadequate for
the proper implementation of the drone.
We were also unable to get any kind of financial help from the department as well.
Thus the project was infeasible in our limited budget.
Thus as a solution we switched over to robotic vehicle. The robotic vehicle too has its own
share of problems. They are:
2. Determination of the path planning algorithm: A proper path planning algorithm has
not yet been decided due to time crunch, complexity of the programming and actual
hardware implementation.
3. Actual optimum programming: While programs for obstacle avoidance and edge
detection are available individually, but out real challenge lies in integration of the
two programs along with the very complex program of path planning.
4. Actual hardware implementation: Most our work has been the theoretical research
and concept building. Now the main challenge is to actually implement them in
hardware and get the actual result.
5. Optimization: Since no hardware implementation has been done yet, we haven’t been
able to conduct any test runs of our robot. Until any test runs are being conducted we
will not be able to understand the affectivity of our robot as well as any practical
hurdles arising. Thus the optimization of the program is not possible and thus our
desired results are not been achieved.
Page
26
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
6. Time limitation: Since our initial plan of making the drone failed, with the robot
vehicle, we are way behind schedule. Thus it is a very big challenge for us to
complete the mammoth task of programming and hardware implementation of the
project and completing the task on time.
2. Programming: We need to finally write the program for the robot taking all its
functions into account.
3. Hardware implementation: We need to actually make the robot prototype and conduct
test runs on it.
4. Optimize: After the building of the prototype and conducting test runs, we need to
tweak the programs wherever needed (if required).
5. Completing the project on time: Since we are already way behind schedule, we need
to overcome the challenge of completing the project on time.
Page
27
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Page
28
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Features:
Specifications:
Working voltage: 3 - 5V DC
Output type: Digital switching output (0 and 1)
3mm screw holes for easy mounting
Board size: 3.2 x 1.4cm
Page
29
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
11.2 Procedure:
1. We moved our hand towards the IR module.
2. As soon as we reach within the maximum range of the IR module, the Output LED
on the module and the LED for pin 13 on your Arduino will illuminate.
3. We will open the serial monitor and vary the distance of your hand while viewing the
serial monitor. The output should show "Clear" to "OBSTACLE!!, OBSTACLE!!".
4. To increase the range of the IR module according to our needs we turn the
potentiometer or the calibration pin (the pin in the small blue box) clockwise. To
decrease the range, we turn the calibration pin counter clockwise. It is to be kept in
mind that the sensor should not get short circuited.
void setup() {
pinMode(LED, OUTPUT);
pinMode(isObstaclePin, INPUT);
Serial.begin(9600);
}
void loop() {
isObstacle = digitalRead(isObstaclePin);
if (isObstacle == LOW) {
Serial.println("OBSTACLE!!, OBSTACLE!!");
Page
30
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
digitalWrite(LED, HIGH);
}
else {
Serial.println("clear");
digitalWrite(LED, LOW);
}
}
Page
31
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Calibration Process:
Page
32
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Brief overview:
The RFID reader that we are using is the model IND8002 by Shenzhen Innod Technology
Co. Ltd., Shenzhen, China. It is a long range integrated UHF RFID Reader having a read
range of 1-10 metres with 9.2 dbi circular polarised antenna.
Fig 28: RFID Reader (IND8002) Fig 29: RFID Reader (IND8002)
Front side Rear side
Specification:
Model IND8002
Dimension 260mm*260mm*40mm
Frequency 902MHz – 928 MHz; 865MHz – 868MHz (Optional)
Reading Distance 1-10 meter (depend on application and tag)
Weight 1.25kg
Connector RS-232 /Wiegand 26 /Wiegand 34
Baud rate 115200 bps (default and recommended) 38400bps
Supply Voltage DC 9V
Air Interface Protocol EPC global UHF Class 1 Gen 2 / ISO 18000-6C
Output Power 0-26 dBm
Read multi-tag 1- 50 Tag/Second
Tag cache 200 Tags@ 96 bit EPC
Page
33
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Interface Description:
Page
34
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Manufacturer Details:
Page
35
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Testing of RFID reader writer module with passive tags consists of three parts:
1. Testing of the reader and tag using the demo software provided by the company
(Shenzhen Innod Technology Co. Ltd)
A demo software was provided by the company in order to use the RFID reader. We used the
software to check whether the reader was in working condition or not.
We adjusted the settings as per the user manual of the software and set the rates required
according to our requirement. For example, we set the Baud rate at 38400 and the frequency
range of the RF Spectrum from 856MHz to 857MHz.
Page
36
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
After all the setting is done, we bring the given sample tags near to the RFID reader and get
the tag detected by it. Since the reader is a long range reader having a read range of 1-10
meters (depending upon the application and tag), the tag is kept at a distance from the reader.
This also helps us in checking the read range of the tag.
The tag chosen for this testing is at random from the sample tags provided by the company.
Page
37
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
The tag numbers (EPC number) as detected by the demo software are shown in the window
below:
Page
38
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Fig 35: Inventory when no tags detected
Page
39
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Program 1:
// Program to check whether RFID reader successfully interfaced with Arduino or not.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9);
void setup()
{
mySerial.begin(38400); // Setting the baud rate of Software Serial Library
Serial.begin(38400); //Setting the baud rate of Serial Monitor
}
void loop()
{
if(mySerial.available()>0)
{
Serial.write(mySerial.read());
}
}
Page
40
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Program 2:
//Program to read and write tags
#include <SoftwareSerial.h>
#include <SeeedRFID.h>
SoftwareSerial mySerial(10, 11);
void setup()
{
mySerial.begin(38400); // Setting the baud rate of Software Serial Library
Serial.begin(38400); //Setting the baud rate of Serial Monitor
}
void loop()
{
if(mySerial.available()>0)
{
Serial.print("RFID card number: ");
Serial.println(RFID.cardnumber());
Serial.println("Input 1 to read data and 2 to write data");
int count=mySerial.read();
if (count==1)
{
Serial.println("RFID data: ");
Serial.println(RFID.readData());
for(int i=0; i<tag.dataLen; i++)
{
Serial.print(tag.raw[i], HEX);
Serial.print('\t')
}
}
if (count==2)
{
Serial.println("Enter the data to write: ");
mySerial.write(Serial.read());
RFID.writeData():
Serial.println("Data entered: ");
Serial.println(RFID.readData());
for(int i=0; i<tag.dataLen; i++)
{
Serial.print(tag.raw[i], HEX);
Serial.print('\t')
}
}
}
Page
41
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Page
42
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
1. Infrared sensor :
2 sensors are used for obstacle detection while 3 sensors are used for edge detection.
Among the edge detection sensors, 2 i.e. the left and right sensors are allotted to
detect the edge of the obstacles, while 1 sensor is allotted to sense the ground
underneath to prevent falling off the ground surface.
2. Arduino Uno:
It is the microcontroller which controls the majority of the logical decisions taken for
the working of the Autonomous Robot.
3. Breadboard:
It is used to ease the electrical connections by providing a common node from where
connections can be easily be connected for prototyping. It is very useful when
multiple numbers of connections are to be done to a singular point.
4. L 293D Motor driver module:
The L293D motor driver module is used to supply the required power for the proper
functioning of the DC gear motors. It does not perform any control action by itself but
carries forward the control action of the Arduino.
5. Dc gear motors:
We are using DC gear motors to rotate the wheels. We are using DC gear motors
because of its gear ratio, it provides much more torque in comparison to the power
consumed by it. Also since Dc gear motor is used, we can obtain higher torque by
reducing the speed of the motor. This is because for DC motor Torque is inversely
proportional to the Speed.
6. Wheels and bovine wheel:
The wheels are used for the movement for the robotic car. A rotatory bovine wheel is
also used to provide both mechanical support as well as to ease the rotation of the
robot.
7. RFID Reader and Tag:
To read and mark destination.
Page
43
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
module
L293D motor driver module Dc gear motor and wheels
Page
44
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Fig 45: Circuit diagram of Obstacle avoidance and edge detecting robot
Page
45
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
void setup() {
pinMode (LM_1, OUTPUT); // declaring input output pins
pinMode (LM_2, OUTPUT);
pinMode (RM_1, OUTPUT);
pinMode (RM_2, OUTPUT);
pinMode (LS, INPUT);
pinMode (FLS, INPUT);
pinMode (FES, INPUT);
pinMode (FRS, INPUT);
pinMode (RS, INPUT);
Serial.begin (9600);
Serial.println("Car ready to operate"); // Initializing car
}
void loop() {
int LS_val = digitalRead(LS);
int FLS_val = digitalRead(FLS);
int FES_val = digitalRead(FES);
int FRS_val = digitalRead(FRS);
int RS_val = digitalRead(RS);
Page
46
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
digitalWrite(LM_1, HIGH);
digitalWrite(LM_2, LOW);
digitalWrite(RM_1, HIGH);
digitalWrite(RM_2, LOW);
}
void reverse() {
digitalWrite(LM_1, LOW);
digitalWrite(LM_2, HIGH); // Reverse
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH);
}
void right() {
digitalWrite(LM_1, LOW); // Right
digitalWrite(LM_2, HIGH);
digitalWrite(RM_1, HIGH);
digitalWrite(RM_2, LOW);
}
void left() {
digitalWrite(LM_1, HIGH); // Left
digitalWrite(LM_2, LOW);
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH);
}
Testing Prototype:
Page
47
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Fig 46: Circuit diagram for Obstacle avoidance and edge detection robot using RFID reader
Page
48
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
void loop()
{
int LS_val = digitalRead(LS);
int FLS_val = digitalRead(FLS);
int FES_val = digitalRead(FES);
int FRS_val = digitalRead(FRS);
int RS_val = digitalRead(RS);
Page
49
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
void reverse() {
digitalWrite(LM_1, LOW);
digitalWrite(LM_2, HIGH); // Reverse
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH);
}
void right() {
digitalWrite(LM_1, LOW); // Right
digitalWrite(LM_2, HIGH);
digitalWrite(RM_1, HIGH);
digitalWrite(RM_2, LOW);
}
void left() {
digitalWrite(LM_1, HIGH); // Left
digitalWrite(LM_2, LOW);
digitalWrite(RM_1, LOW);
digitalWrite(RM_2, HIGH); }
Page
50
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Page
51
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
2. Programming: We wrote the program for the robot in phases, taking all its
functions into account. First we wrote the program for only obstacle avoidance. Then,
we wrote the program for edge detection. Then we wrote the program for interfacing
the RFID. Finally we combined all the three to get our desired program.
3. Hardware implementation: We made 2 robot prototypes and conducted test runs on it.
4. Optimization: After the building of the prototype and conducting test runs, we
tweaked the programs wherever needed.
2. Business-to-business:
Of the couple of companies those who do manufacture RFID readers in India were
unwilling to sale to us students. They only deal between business-to-business.
Page
52
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
6. Financial Problem:
One of the most significant problem faced by us was that RFID readers of long range
capacity are very expensive. Since our project was self –funded and was very low, we
had to pass many RFID readers which were Arduino compatible as well as were
having long read ranges.
No funding was received from the department.
9. Programming difficulty:
Programming for the path planning was very difficult.
1. We were finally able to find a RFID reader with was long range, having a read range
of 1-10 metres and yet was still affordable for us (although it was out of budget). It
was very expensive, but we had no choice.
3. Finally we were able to build the prototype in hardware and was able to conduct tests
with it.
Page
53
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
4. References:
Papers:
1. B. Olszewski, S. Fenton, B. Tworek, J. Liang and K. Yelamarthi, "RFID positioning
robot: An indoor navigation system," IEEE International Conference on Electro-
Information Technology , EIT 2013, Rapid City, SD, 2013, pp. 1-6.
4. Rakesh Chandra Kumar, Md. Saddam Khan, Dinesh Kumar, Rajesh Birua, Sarmistha
Mondal, ManasKr. Parai, “OBSTACLE AVOIDING ROBOT – A PROMISING
ONE” , International Journal of Advanced Research in Electrical, Electronics and
Instrumentation Engineering Vol. 2, Issue 4, April 2013
5. Travis Deyle, Matt Reynolds and Charles C. Kemp, “Finding and Navigating to
Household Objects with UHF RFID Tags by Optimizing RF Signal Strength.”
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2014.
7. Takashi Gomi and Koh-ichi Ide, “Vision Based Navigation for an Office Messenger
Robot”, Intelligent Robots and Systems '94. 'Advanced Robotic Systems and the Real
World', IROS '94. Proceedings of the IEEE/RSJ/GI International Conference on,Date
of Conference: 12-16 Sept. 1994
8. Moon B.H., Kim S.R., Ryu J.T. (2011), “Tag Recognition Distance for a Medical
Service Robot Using RFID.”,In: Kim T., Adeli H., Robles R.J., Balitanas M. (eds)
Advanced Computer Science and Information Technology. Communications in
Computer and Information Science, vol 195. Springer, Berlin, Heidelberg
10. W. Gueaieb and M. S. Miah, "An Intelligent Mobile Robot Navigation Technique
Using RFID Technology," in IEEE Transactions on Instrumentation and
Measurement, vol. 57, no. 9, pp. 1908-1917, Sept. 2008.
11. P. Mandal, R. K. Barai, M. Maitra and S. Roy, "Path planning of autonomous mobile
robot: A new approach," 2013 7th International Conference on Intelligent Systems
Page
54
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
and Control (ISCO), Coimbatore, Tamil Nadu, India, 2013, pp. 238-243.
13. Vikas Bakshi, Rajnish Katarne, Dr. Sanjay Purkar, “Navigation Technique for
industrial robot with the help of RFID TAG”, International Journal of Latest Trends
in Engineering and Technology (IJLTET)
14. O. Khatib, “Real time obstacle avoidance for manipulators and mobile robots”,
Robotics and Automation. Proceedings. 1985 IEEE International Conference on In
Robotics and Automation. Proceedings. 1985 IEEE International Conference on, Vol.
2 (1985), pp. 500-505
15. Sunhong Park and Shuji Hashimoto, "An approach for mobile robot navigation under
randomly distributed passive RFID environment," 2009 IEEE International
Conference on Mechatronics, Malaga, 2009, pp. 1-6.
Page
55
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Pin Diagram:
Pin
Pin Name Description
Number
1 Enable 1,2 This pin enables the input pin Input 1(2) and Input 2(7)
2 Input 1 Directly controls the Output 1 pin. Controlled by digital circuits
3 Output 1 Connected to one end of Motor 1
4 Ground Ground pins are connected to ground of circuit (0V)
5 Ground Ground pins are connected to ground of circuit (0V)
6 Output 2 Connected to another end of Motor 1
7 Input 2 Directly controls the Output 2 pin. Controlled by digital circuits
8 Vcc2 (Vs) Connected to Voltage pin for running motors (4.5V to 36V)
9 Enable 3,4 This pin enables the input pin Input 3(10) and Input 4(15)
10 Input 3 Directly controls the Output 3 pin. Controlled by digital circuits
11 Output 3 Connected to one end of Motor 2
12 Ground Ground pins are connected to ground of circuit (0V)
13 Ground Ground pins are connected to ground of circuit (0V)
14 Output 4 Connected to another end of Motor 2
15 Input 4 Directly controls the Output 4 pin. Controlled by digital circuits
16 Vcc2 (Vss) Connected to +5V to enable IC function
Page
56
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Configuration Summary:
Pin Dagram:
Page
57
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
Power
The Arduino Uno board can be powered via the USB connection or with an external
power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or
battery. The adapter can be connected by plugging a 2.1mm center-positive plug into
the board's power jack. Leads from a battery can be inserted in the GND and Vin pin
headers of the POWER connector.
Vin . The input voltage to the Arduino/Genuino board when it's using an external
power source (as opposed to 5 volts from the USB connection or other regulated
power source). You can supply voltage through this pin, or, if supplying voltage via
the power jack, access it through this pin.
5V .This pin outputs a regulated 5V from the regulator on the board. The board can
be supplied with power either from the DC power jack (7 - 12V), the USB connector
(5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins
bypasses the regulator, and can damage your board. We don't advise it.
Page
58
EE471: Design and development of robotic officemate “Ally”
[Pick the date]
3V3 . A 3.3 volt supply generated by the on-board regulator. Maximum current
draw is 50 mA.
GND . Ground pins.
IOREF . This pin on the Arduino/Genuino board provides the voltage reference with
which the microcontroller operates. A properly configured shield can read the IOREF
pin voltage and select the appropriate power source or enable voltage translators on
the outputs to work with the 5V or 3.3V.
Memory
The ATmega328 has 32 KB (with 0.5 KB occupied by the bootloader). It also has 2 KB
of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM
library ).
Each of the 14 digital pins on the Uno can be used as an input or output,
using pinMode() ,digitalWrite() , and digitalRead() functions.
AREF . Reference voltage for the analog inputs. Used with analogReference().
Reset . Bring this line LOW to reset the microcontroller. Typically used to add a
reset button to shields which block the one on the board.
Page
59