SlideShare a Scribd company logo
VISVESVARAYA TECHNOLOGICAL UNIVERSITY
BELGAUM
A
PROJECT REPORT
ON
OPEN SOURCE SERVICE ROBOT
Submitted in partial fulfillment of the requirements of the degree of
BACHELOR OF ENGINEERING
In
MECHANICAL ENGINEERING
For the academic year
2014-2015
By
KADRI FUZAIL ANIL PAWAR
(1HK10ME038) (1HK10ME009)
JUNANI HANNAN ATIF NABEEL
(1HK10ME036) (1HK09ME101)
Under the guidance of
Asso. Prof. K.S. ABDUL ALEEM (ME,MISTE)
Prof , Dept. of ME
H.K.B.K.C.E, Bangalore
DEPARTMENT OF
MECHANICAL ENGINEERING
H.K.B.K COLLEGE OF ENGINEERING
S.NO.22/1, NAGAWARA, BANGALORE -560045
H.K.B.K COLLEGE OF ENGINEERING
S.No.22/1, Nagawara, Bangalore -560045
Department of Mechanical Engineering
Certificate
Certified that the project work entitled ‘Open Source Service Robot’ is a bonafide work carried out by
Kadri Fuzail, Junani Hannan, Anil Pawar, Atif Nabeel in partial fulfillment for the award of the
degree of Bachelor of Engineering in Mechanical Engineering of the Visvesvaraya Technological
University, Belgaum during the year 2015. It is certified that all corrections/suggestions indicated for
the Internal Assessment have been incorporated in the report deposited in the departmental library. The
project report has been approved as it satisfies the academic requirements in respect of project work
prescribed for Bachelor of Engineering Degree.
Signature of the Guide Signature of the HOD Signature of the Principal
Kadri Fuzail (1HK10ME038)
Junani Hannan (1HK10ME036)
Anil Pawar (1HK10ME009)
Atif Nabeel (1HK09ME101)
External Viva
Name of the Examiners Signature with date
1.
2.
ACKNOWLEDGEMENT
We are grateful to the Chairman, Mr. C. M. Ibrahim, for having provided us an opportunity to
emerge as responsible citizens with Professional Engineering Skills and moral ethics.
We are thankful to our beloved Administrator, Mr. Abdul Hameed S. A, who with single-
minded devotion and missionary zeal always motivated us to reach greater heights.
We are grateful to our Director, Mr. C. M. Faiz Mohammed, for having provided us with
excellent facilities in the college during our course.
We are indebted to our Principal, Dr. T. C Manjunath, for facilitating a congenial academic
environment in the College.
We are grateful to our HOD, Dr. Muzzamil Ahmed, for his kind support, guidance and
motivation during the B.E Degree Course and especially during the Course of our Project Work.
We thank our Guide Mr. K.S. Abdul Aleem, for his valuable guidance, Suggestions and
Encouragement throughout our Project Work.
We thank our parents, for there valuable support, Suggestions and Encouragement throughout
our Project Work.
We also thank Prof Md.Irfan and all the staff members of the Department of Mechanical
Engineering and all those who have directly or indirectly helped us with their valuable suggestions in
the successful completion of this Project.
Kadri Fuzail (1HK10ME038)
Junani Hannan (1HK10ME036)
Anil Pawar (1HK10ME009)
Atif Nabeel (1HK09ME101)
Open_Source_Service Robot_Paper
1
TABLE OF CONTENTS
Title ----------------------------------------------------------------------------i
Approval ---------------------------------------------------------------------ii
Acknowledgement----------------------------------------------------------iii
Abstract----------------------------------------------------------------------iv
Index---------------------------------------------------------------------------v
Chapter-1-------------------------------------------------------------------1-2
Introduction -----------------------------------------------------------------4
Chapter -2-----------------------------------------------------------------3-13
2.1 Author------------------------------------------------------------------3
2.2 Service Robot---------------------------------------------------------4
2.3 Gears-------------------------------------------------------------------5
2.4 Pulley-------------------------------------------------------------------6
2.5 Linear Actuator------------------------------------------------------7
2.6 Gripper----------------------------------------------------------------11
2
2.7 Current solutions and their limitations-------------------------12
2.8 Proposed solution ---------------------------------------------------13
Chapter-3 ---------------------------------------------------------------14-17
3.1 Mechanical Specifications -----------------------------------------14
3.2 Electrical Specifications--------------------------------------------14
3.3Block diagram ---------------------------------------------------15
3.4 Power Supply --------------------------------------------------------17
3.5Working of the project ---------------------------------------------17
Chapter-4----------------------------------------------------------------18-26
4.1 Bolted joints----------------------------------------------------------18
4.2 Screw Thread--------------------------------------------------------20
4.3 Ball Bearing----------------------------------------------------------21
4.4 Clamp-----------------------------------------------------------------23
4.5 Gripper---------------------------------------------------------------23
3
Chapter-5----------------------------------------------------------------27-44
5.1 Feasibility of Robot---------------------------------------------------27
5.2 First Stage---------------------------------------------------------------28
5.3 Second Stage------------------------------------------------------------33
5.4 Working ----------------------------------------------------------------40
5.5 Motor Specifications--------------------------------------------------41
5.6 Hc 05 Bluetooth Module---------------------------------------------43
Chapter-6 ---------------------------------------------------------------45-56
6.1 Software Program for Control Function-------------------------45
6.2 Software Program for Voice Control-----------------------------50
6.3 Software Program for Motor Driver------------------------------54
Chapter-7 -------------------------------------------------------------------57
7.1Advantages -------------------------------------------------------------57
7.2Applications-------------------------------------------------------------57
7.3Disadvantages-----------------------------------------------------------57
4
7.4Precautions-------------------------------------------------------------57
Chapter-8----------------------------------------------------------------58-62
8.1Circuit diagram--------------------------------------------------------58
8.2 Flow chart---------------------------------------------------------------59
8.3 Photographs of project ----------------------------------------------60
Chapter-9 ---------------------------------------------------------------63-71
9.1 Cost Estimation--------------------------------------------------------63
9.2 Service Robot Lifetime-----------------------------------------------64
9.3Power consumption of each motor---------------------------------65
9.4 Results and discussions-----------------------------------------------66
9.5 Future scope------------------------------------------------------------70
9.6 Conclusion -------------------------------------------------------------71
Chapter-10------------------------------------------------------------------72
10.1 Bibliography----------------------------------------------------------72
ABSTRACT
Service robots assist human beings, typically by performing a job that is dirty, dull,
dangerous or repetitive, including household chores. Typically human-machine interfaces are
manual/remote/speech control based system.
For millions of people on a daily basis, motor impairments diminish quality of life, reduce
independence and increase healthcare costs. Assistive mobile robots that autonomously
manipulate objects within everyday settings have the potential to improve the lives of the
elderly, injured, and disabled by augmenting their abilities with those of a cooperative robot.
People with motor impairments have consistently placed a high priority on retrieving objects
from the floor and shelves, so a robot capable of performing pick and place operations within
human environments would be valuable. We can use this to serve elderly who are unable to
move or bed ridden it acts like a servant.
Assistive mobile robots that autonomously manipulate objects within everyday settings have
the potential to improve the lives of the elderly, injured, and disabled. The focus is on the
subsystem that enables the robot to retrieve objects from and deliver objects to flat surfaces.
Once provided with voice recognition capability the robot is guided to the location and then
either grasps the nearest object or places an object. We will be developing a very simple
functionally resembling model as part of our project.
Power supply: This project uses either mains derived supply or battery depending on the
requirements.
Open Source Service Robot Introduction
ME@HKBKCE 1 2014-15
CHAPTER-01
INTRODUCTION
1.1 Introduction
Service robots assist human beings, typically by performing a job that is dirty, dull,
distant, dangerous or repetitive, including house hold chores. They typically
are autonomous and/or operated by a built-in control system, with manual over ride
options. The term "service robot" is less well-defined. The International Federation of
Robotics (IFR) has proposed a tentative definition, "A service robot is a robot which
semi-or fully autonomously to perform services useful to the well-being of humans and
equipment, excluding manufacturing operations.
Service robotics is an area of research that is rapidly expanding. We strongly believe that
we will have small robots roaming around in our houses in the near future. An excellent
example of such a device is the autonomous Electrolux Tri-Lobote vacuum-cleaner that
was revealed to the public during spring 1998.The application potential of robots is
enormous, ranging from boring tasks like vacuuming, to advanced household tasks such
as cleaning up after a dinner party. Recent progress, particularly in sensor-based
intelligent robotics, has paved the way for such domestic robots. It is however
characteristic that relatively few robots are in daily use anywhere and very few mobile
robot systems are being mass produced. Examples of mass produced mobile systems
include the Help-Mate Robotics platform for delivery of food and x-ray plates at
hospitals, and the Robot Kent floor sweeper produced by the Kent Corporation. Both
have only been produced in relatively small series (in the order of hundreds).
The primary obstacles to the deployment of robots in domestic and commercial settings
are flexibility and robustness. The robots must be flexible so that they are relatively easy
to deploy under different conditions, and so that they can be used by non-experts. This
requires a rich set of control functions, combined with an intuitive user interface and
automatic task acquisition functions (like automatic learning). Robustness, in terms of
sensory perception, is needed to allow for operation 365 days a year under different
environmental conditions.
To pursue research on robust, flexible, and easy-to-use robot systems for everyday
environments, an intelligent service robot project has been initiated at the Centre for
autonomous Systems at KTH. The long-term goal of the project is deployment of an
intelligent robotic assistant in a regular home. The system must be able to perform
Open Source Service Robot Introduction
ME@HKBKCE 2 2014-15
fetch-and-carry operations for the human operator. To accommodate such tasks, it must
be able to understand commands from a non-expert in robotics. This requires an
intelligent dialogue with the user. Having received an instruction, the robot must be able
to plan a sequence of actions and subsequently execute these actions to carry out the task.
In a realistic scenario, the robot will encounter unexpected events such as closed doors
and obstacles. To be perceived as a useful appliance, the robot must cope with such
ambiguities in an ’intelligent’ manner. To perform fetch and carry missions, which
include opening of doors, picking up and delivery of objects, etc., the robot must be
equipped with actuators that allow for manipulation. A basic functionality for such a
robotic system is the ability to perform robust navigation in a realistic in-door
environment.
In this paper we describe the results of this initial phase of the project. The robot is
equipped with a speech and gesture interface for human computer interaction. Human-
Robot Communication A service robot working in a house or office environment will
need a user-friendly, safe, simple-to-use and simple-to-learn human-robot interface
(HRI). The most important reason is that the robot is going to work together with non-
experts as opposed to most industrial robots of today. Possible ways of communicating
with the robot include keyboards, touch-screens, joy-sticks, voice, and gesture
commands. The preferred modes depend upon a combination of environment, user skill,
task, and cost. In a noisy environment keyboard input is probably preferred over voice
input, while in a situation where the operator needs to use his/her hands for other tasks,
voice input is a better choice. However, for the environments and applications discussed
within the intelligent service robot project, we are focusing our research efforts on a user
interface combining both speech and gesture recognition. These modes of communication
are natural for humans and complement each other well.
An overview of the current system: The input is provided through a camera and a wireless
microphone. The camera is connected to the gesture recognition module, which will
search the images for gestures. We are using Hc05 Bluetooth module for speech
recognition which is connected to the RS232 and recognizes commands via data sent
through an android application via Bluetooth connection. In the future, the speech
capabilities will be used in a more dialogue based communication with the end-user.
Open Source Service Robot Literature Review
ME@HKBKCE 3 2014-15
LITERATURE REVIEW
2.1 AUTHOR
Jordan Pollack says “today, approximately 10 percent of the world’s population is over
60; by 2050 this proportion will have more than doubled” and “the greatest rate of
increase is amongst the oldest old, people aged 85 and older.” [Pollack, 2004] She
follows by adding that this group is therefore subject to both physical and cognitive
impairments more than younger people. These facts have a profound impact on how the
world will keep the elderly independent as long as possible from caregivers. Both
physical and cognitive diminishing abilities address the body and the mental process of
knowing, including aspects such as awareness, perception, reasoning, intuition and
judgment. Assistive technology for the mobility impaired includes the wheelchair, lift
aids and other devices, all of which have been around for centuries. However, the patient
typically or eventually requires assistance to use the device - whether to: push the
wheelchair, to lift themselves from the bed to a chair or to the toilet, or guide the patient
through cluttered areas. With fewer caregivers and more elderly in the near future, there is
a need for improving these devices to provide them independent assistance. As further
background, the authors have included sections on wheelchairs and lift devices.
Gripper is an end-of-arm device often used in material handling applications. Generally,
the gripper is a device that is capable of generating enough grip force to retain an object
while the robot performs a task on the part such a pick-and-place operation. Any gripper
must be capable of performing the task of opening and closing with a prescribed amount
of force over many years of daily operation the most commonly used grippers are finger
grippers. These grippers generally have two opposing fingers or three fingers like a lathe
chuck. The fingers are driven together such that once gripped any part is centered in the
gripper. This gives some flexibility to the location of components at the pick-up point.
Two finger grippers can be further split into parallel motion or angular motion fingers.
Angular jaw gripper open and close around a central pivot point, moving in an arcing
motion.
An angular gripper is used when there is a need to get the tooling out of the way. The
advantage for an angular gripper falls on its simple design and only requires one power
source for activation. However, it has several disadvantages including jaws that are not
parallel and a changing centre of grasp while closing. Meanwhile, parallel jaw gripper
moves in a motion parallel in relation to the gripper’s body.
Open Source Service Robot Literature Review
ME@HKBKCE 4 2014-15
A parallel gripper is used for pulling a part down inside a machine because the fingers fit
into small areas better. An advantage of parallel type gripper is that the centre of the jaws
does not move perpendicular to the axis of motion. Thus, once the gripper is centered on
the object, it remains centered while the jaws close. Space constraints might lead to the
use of parallel over angular.
For some tasks however where flexible or fragile objects are being handled, the use of
either vacuum or magnetic grippers is preferable. With these, the surface of the gripper is
placed in contact with the object and either a magnetic field or a vacuum is applied to
hold them in contact.
2.2 Service robots:
Service robots assist human beings, typically by performing a job that is dirty, dull,
distant, dangerous or repetitive, including household chores. They typically are
autonomous and/or operated by a built-in control system, with manual override options.
The term "service robot" is less well-defined. The International Federation of Robotics
(IFR) has proposed a tentative definition, "A service robot is a robot which operates semi-
or fully autonomously to perform services useful to the well-being of humans and
equipment, excluding manufacturing operations
2.2.1 Restaurant and bar
Many bars are starting to become automated through the use of robots, even producing
complex cocktails. There are also robots used for waiting.
2.2.2 Domestic
The roomba vacuum cleaner is one of the most popular domestic service robots.
Domestic robots perform tasks that humans regularly perform around their homes such as
cleaning floors, mowing the lawn and pool maintenance. They can also provide assistance
to the disabled and infirm as well as becoming robot butlers.
Open Source Service Robot Literature Review
ME@HKBKCE 5 2014-15
2.2.3 Scientific:
Robotic systems perform many functions such as repetitive tasks performed in research.
These range from the multiple repetitive tasks made by gene samplers and sequencers, to
systems which can almost replace the scientist in designing and running experiments,
analyzing data and even forming hypotheses. The ADAM at the University of
Aberystwyth in Wales can "[make] logical assumptions based on information
programmed into it about yeast metabolism and the way proteins and genes work in other
species. It then set about proving that its predictions were correct. The possible
applications of robots to assist in human chores are widespread. At present there are a
number of main categories that these robots fall into.
2.3 Gears:
A gear is a rotating machine part having cut teeth, or cogs, which mesh with another
toothed part in order to transmit torque. Two or more gears working in tandem are called
a transmission and can produce a mechanical advantage through a gear ratio and thus may
be considered a simple machine. Geared devices can change the speed, torque, and
direction of a power source.
When two gears of unequal number of teeth are combined, a mechanical advantage is
produced, with both the rotational speeds and the torques of the two gears differing in a
simple relationship.
Types of gears:
1. An external gear is one with the teeth formed on the outer surface of a cylinder or cone.
2. Spur gears or straight-cut gears are the simplest type of gear.
3. Helical or "dry fixed" gears offer a refinement over spur gears.
4. Skew gears
5. Double helical gears overcome the problem of axial thrust presented by "single" helical
gears, by having two sets of teeth that are set in a V shape.
6. A bevel gear is shaped like a right circular cone with most of its tip cut off.
7. Spiral bevel gear the teeth of a bevel gear may be straight-cut as with spur gears
Open Source Service Robot Literature Review
ME@HKBKCE 6 2014-15
Fig 2.1: Spur Gear
Advantages of gears: An advantage of gears is that the teeth of a gear prevent slipping.
2.4 Pulleys:
A pulley is a wheel on an axle that is designed to support movement of a cable or belt
along its circumference. Pulleys are used in a variety of ways to lift loads, apply forces,
and to transmit power. A pulley is also called a sheave or drums and may have a groove
between two flanges around its circumference. The drive element of a pulley system can
be a rope, cable, belt, or chain that runs over the pulley inside the groove.
2.4.1 Types of pulleys:
These are different types of pulley systems
 Fixed: A fixed pulley has an axle mounted in bearings attached to a supporting
structure. A fixed pulley changes the direction of the force on a rope or belt that
moves along its circumference. Mechanical advantage is gained by combining a
fixed pulley with a movable pulley or another fixed pulley of a different diameter.
 Movable: A movable pulley has an axle in a movable block. A single movable
pulley is supported by two parts of the same rope and has a mechanical advantage
of two.
 Compound: A combination of fixed and movable pulleys forms a block and
tackle. A block and tackle can have several pulleys mounted on the fixed and
moving axles, further increasing the mechanical advantage.
Open Source Service Robot Literature Review
ME@HKBKCE 7 2014-15
2.5LinearActuator:
A linear actuator is an actuator that creates motion in a straight line, in contrast to the
circular motion of a conventional electric motor. Linear actuators are used in machine
tools and industrial machinery, in computer peripherals such as disk drives and printers,
in valves and dampers, and in many other places where linear motion is required.
Hydraulic or pneumatic cylinders inherently produce linear motion. Many other
mechanisms are used to generate linear motion from a rotating motor.
Fig 2.2(a): Linear Actuator
Open Source Service Robot Literature Review
ME@HKBKCE 8 2014-15
Fig2.2(b): linear actuator
2.5.1 Mechanical actuators
Fig2.3: Roller screw actuation with traveling screw (rotating nut).
Mechanical linear actuators typically operate by conversion of rotary motion into linear
motion. Conversion is commonly made via a few simple types of mechanism:
Open Source Service Robot Literature Review
ME@HKBKCE 9 2014-15
 Screw: lead screw, screw jack, ball screw and roller screw actuators all operate on
the principle of the simple machine known as the screw. By rotating the actuator's
nut, the screw shaft moves in a line.
 Wheel and axle: Hoist, winch, rack and pinion, chain drive, belt drive, rigid chain
and rigid belt actuators operate on the principle of the wheel and axle. A rotating
wheel moves a cable, rack, chain or belt to produce linear motion.
 Cam: Cam actuators function on a principle similar to that of the wedge, but
provide relatively limited travel. As a wheel-like cam rotates, its eccentric shape
provides thrust at the base of a shaft.
Some mechanical linear actuators only pull, such as hoists, chain drive and belt drives.
Others only push (such as a cam actuator). Pneumatic and hydraulic cylinders, or lead
screws can be designed to generate force in both directions.
Mechanical actuators typically convert rotary motion of a control knob or handle into
linear displacement via screws and/or gears to which the knob or handle is attached. A
jackscrew or car jack is a familiar mechanical actuator. Another family of actuators are
based on the segmented spindle. Rotation of the jack handle is converted mechanically
into the linear motion of the jack head. Mechanical actuators are also frequently used in
the field of lasers and optics to manipulate the position of linear stages, rotary stages,
mirror mounts, goniometers and other positioning instruments. For accurate and
repeatable positioning, index marks may be used on control knobs. Some actuators
include an encoder and digital position readout. These are similar to the adjustment knobs
used on micrometers except their purpose is position adjustment rather than position
measurement.
Open Source Service Robot Literature Review
ME@HKBKCE 10 2014-15
2.5.2 Hydraulic actuators
Hydraulic actuators or hydraulic cylinders typically involve a hollow cylinder having a
piston inserted in it. An unbalanced pressure applied to the piston generates force that can
move an external object. Since liquids are nearly incompressible, a hydraulic cylinder can
provide controlled precise linear displacement of the piston. The displacement is only
along the axis of the piston. A familiar example of a manually operated hydraulic actuator
is a hydraulic carjack. Typically though, the term "hydraulic actuator" refers to a device
controlled by a hydraulic pump.
2.5.3 Pneumatic actuators
Pneumatic actuators, or pneumatic cylinders, are similar to hydraulic actuators except
they use compressed gas to generate force instead of a liquid. They work similarly to a
piston in which air is pumped inside a chamber and pushed out of the other side of the
chamber. Air actuators are not necessarily used for heavy duty machinery and instances
where large amounts of weight are present. One of the reasons pneumatic linear actuators
are preferred to other types is the fact that the power source is simply an air compressor.
Because air is the input source, pneumatic actuators are able to be used in many places of
mechanical activity. The downside is, most air compressors are large, bulky, and loud.
They are hard to transport to other areas once installed. Pneumatic linear actuators are
likely to leak and this makes them less efficient than mechanical linear actuators.
2.5.4 Piezoelectric actuators
The piezoelectric effect is a property of certain materials in which application of a voltage
to the material causes it to expand. Very high voltages correspond to only tiny
expansions. As a result, piezoelectric actuators can achieve extremely fine positioning
resolution, but also have a very short range of motion. In addition, piezoelectric materials
exhibit hysteresis which makes it difficult to control their expansion in a repeatable
manner. These are widely used in cameras for zooming purpose.
2.5.5 Electro-mechanical actuators
Electro-mechanical actuators are similar to mechanical actuators except that the control
knob or handle is replaced with an electric motor. Rotary motion of the motor is
converted to linear displacement. There are many designs of modern linear actuators and
every company that manufactures them tends to have a proprietary method. The
following is a generalized description of a very simple electro-mechanical linear actuator.
Open Source Service Robot Literature Review
ME@HKBKCE 11 2014-15
2.6GRIPPER:
In robotics, an end effector is the device at the end of a robotic arm, designed to interact
with the environment. The exact nature of this device depends on the application of the
robot.
In the strict definition, which originates from serial robotic manipulators, the end effector
means the last link (or end) of the robot. At this endpoint the tools are attached. In a wider
sense, an end effector can be seen as the part of a robot that interacts with the work
environment. This does not refer to the wheels of a mobile robot or the feet of a humanoid
robot which are also not end effectors—they are part of the robot's mobility.
End effectors may consist of a gripper or a tool. The gripper can be of two, three or even
five fingers.
The end effectors that can be used as tools serve various purposes, such as spot welding
in an assembly, spray painting where uniformity of painting is necessary, and for other
purposes where the working conditions are dangerous for human beings. Surgical robots
have end effectors that are specifically manufactured for the purpose.
Generally, the gripping mechanism is done by the grippers or mechanical fingers.
Generally only two-finger grippers are used for industrial robots as they tend to be built
for specific tasks and can therefore be less complex.
The fingers are also replaceable whether or not the gripper itself is replaced. There are
two mechanisms of gripping the object in between the fingers (for the sake of simplicity,
the following explanations consider only two finger grippers).
The end effector of an assembly line robot would typically be a type of welding head, or a
sort of paint spray gun. A surgical robot’s end effector could be a scalpel or others tools
used in surgery. Other possible end effectors are machine tools, like a drill or milling
cutters. The end effector on the space shuttles robotic arm uses a pattern of wires which
close like the aperture of a camera around a handle or other grasping point.
When referring to robotic pretension there are four general categories of robot grippers,
these are:
Open Source Service Robot Literature Review
ME@HKBKCE 12 2014-15
1. Impactive – jaws or claws which physically grasp by direct impact upon the
object.
2. Ingressive – pins, needles or hackles which physically penetrate the surface of the
object (used in textile, carbon and glass fiber handling).
3. Astrictive – suction forces applied to the objects surface (whether by vacuum,
magneto- or electro-adhesion).
4. Conjugative – requiring direct contact for adhesion to take place (such as glue,
surface tension or freezing).
Fig 2.4: A highly sophisticated attempt at reproducing the human end effector
2.7 Current Solutions & Their Limitations:
The service robots which are currently used have high cost and it can’t be affordable by
everyone.
We have designed a linear actuator using screw thread mechanism. The transmission is
through direct motor drive without using any pulley or belt mechanism.
A gripper with open close mechanism is fabricated that is capable of lifting a water bottle
from
1) Floor.
2) Shelf or elevated surface.
The above mechanism is tested on planar surface.
Open Source Service Robot Literature Review
ME@HKBKCE 13 2014-15
2.8 Proposed Solution:
We propose to design and develop
1) A service robot with 4 DOF arm that is capable of lifting objects from floor and
the shelf.
2) The manipulator is mounted on mobile platform so as to increase its service area.
3) The robot is equipped with microcontroller to provide control system to the robot.
4) It has motor drivers to drive DC geared motors using high power 12V supply,
although the control signals are in the arrangement of 0-5v DC signals.
Open Source Service Robot System Requirement
ME@HKBKCE 14 2014-15
CHAPTER – 3
SYSTEM REQUIRMENT
3.1MECHANICAL SPECIFICATIONS:
Motor/Actuator : Linear Actuator, Rotational joints
Body construction material : Wood/Aluminium/MS/Plastic etc.
Dimensions : 400 X410 X 1000 mm
Weight : Approx 8kg including battery and load
Transmission : Gear/Screw thread/String
Payload : Approx 150-500 grams
3.2ELECTRICAL SPECIFICATIONS:
Domain : Mechatronics Systems Design
IDE : AVR studio 4 (Integrated Development Environment)
Programmer/Boot loader : Stk500
Microcontroller : 8 bit
Sensors : Switch sensor etc
Power Supply : 230VAC
Display : LED and Audio
Crystal : 11.0592MHz
Reset : RC based integrator circuit.
Printed circuit board : General Purpose Microcontroller Development Board
Applications : Helping elderly at home
Helping patients in hospitals
Helping mentally retarded children
Open Source Service Robot System Requirement
ME@HKBKCE 15 2014-15
3.3BLOCK DIAGRAM
230V AC
Supply
Step Down
Transformer
Bridge
rectifier
Filter
Regulator
Mains/battery
Power Indicator
Block Diagram Power supply
Bridge rectifier
+5V
Gnd
+12V
16 X 2 Character LCD DISPLAY
Micro Controller
ATMEGA 16
Micro Controller
Atmega16
Crystal Oscillator
Block diagram of Micro Controller and sensors
Reset circuit
Laptop
Camera
Motor
Driver
Motor1
Motor2
Motor
Driver
Motor3
Motor4
Motor
Driver Motor5
RS232
Microphone
Open Source Service Robot System Requirement
ME@HKBKCE 16 2014-15
3.3.1Block diagram explanation:
Microcontroller is the brain of the entire project. ATMEGA16 microcontroller is used in our
project. It controls all the peripherals. The system basically consists of Microcontroller and
various peripherals connected to it. The ATMEGA Microcontroller block does the control
functions based on the sensory inputs received by it. It has switches and microphone, rs232
as input and motor driver as the output.
3.3.2Reset Circuit:
A RC circuit is connected to pin-9 of Microcontroller to provide power-on Reset function. A
tact switch is connected to the same pin for manual reset in case the program hangs. A tact
switch is a push to on Switch, when the switch is pressed pin-9 of microcontroller is shorted
to ground. This is known as manual reset its function is to reset the circuit and variables to
defaults. Resistor capacitor provides automatic power on reset.
A crystal oscillator provides clock to the microcontroller Oscillator circuit. The most
common type quartz crystal, so oscillator circuits incorporating them became known as
crystal oscillators. Quartz crystals are also found inside test and measurement equipment,
such as counters, signal generators, and oscilloscopes.
There are eight switches connected at port-0
Switch 1: Forward
Switch 2: Backward
Switch 3: Right
Switch 4: Left
Switch 5: Up
Switch 6: Down
Switch 7: Open
Switch 8: Close
L293 motor driver is used to provide motion control. It can drive 2 individual motors of
200ma each. It has thermal shutdown and back EMF suppression.
Open Source Service Robot System Requirement
ME@HKBKCE 17 2014-15
3.4POWER SUPPLY:
This project uses regulated 5v to power the microcontroller circuit and also has 12v power
supply for motor supply and relay driving. The circuit derives it supply from battery.
3.5WORKING OF THE PROJECT:
When power is applied to the circuit for the first time, all the motors are switched off and
sensors/switches inputs are read. If any switch is pressed the program enters into menu
routine. It accepts user input like forward, backward, right, and left and many more
commands using keyboard connected on the circuit. It is interfaced with speech commands
for speech recognition. We are using hc05 Bluetooth module for speech recognition.The
Module is connected to the Arduino Uno (RS232).
Example: to move the robot forward: We speak “forward” speech command the command is
sent to the microcontroller via an android application which makes the microcontroller to
sense the input. The recognized work activates a file that transmits character ‘f’ to the serial
communication port of the microcontroller. These are transmitted to the microcontroller
board using RS232 protocol. It moves the robot motors in the forward direction. Similarly all
other commands are interpreted by the microcontroller and appropriate actions are
performed.
Open Source Service Robot Components
ME@HKBKCE 18 2014-15
CHAPTER- 4
COMPONENTS
4.1 BOLTED JOINT:
Bolted joints are one of the most common elements in construction and machine design.
They consist of fasteners that capture and join other parts, and are secured with the
mating of screw threads.
There are two main types of bolted joint designs: tension joints and shear joints.
In the tension joint, the bolt and clamped components of the joint are designed to transfer
the external tension load through the joint by way of the clamped components through the
design of a proper balance of joint and bolt stiffness. The joint should be designed such
that the clamp load is never overcome by the external tension forces acting to separate the
joint (and therefore the joined parts see no relative motion).
The second type of bolted joint transfers the applied load in shear on the bolt shank and
relies on the shear strength of the bolt. Tension loads on such a joint are only incidental.
A preload is still applied but is not as critical as in the case where loads are transmitted
through the joint in tension. Other such shear joints do not employ a preload on the bolt as
they allow rotation of the joint about the bolt, but use other methods of maintaining
bolt/joint integrity. This may include clevis linkages, joints that can move, and joints that
rely on a locking mechanism (like lock washers, thread adhesives, and lock nuts).
4.1.2Proper joint design and bolt preload provides useful properties:
 For cyclic tension loads, the fastener is not subjected to the full amplitude of the
load; as a result, the fastener's fatigue life is increased or—if the material exhibits
an endurance limit its life extends indefinitely.
 As long as the external tension loads on a joint do not exceed the clamp load, the
fastener is not subjected to motion that would loosen it, obviating the need for
locking mechanisms. (Questionable under Vibration Inputs.)
 For the shear joint, a proper clamping force on the joint components prevents
relative motion of those components and the fretting wear of those that would
result in fatigue cracks.
In both the tension and shear joint design cases, some level of tension preload in the bolt
and resulting compression preload in the clamped components is essential to the joint
Open Source Service Robot Components
ME@HKBKCE 19 2014-15
integrity. The preload target can be achieved by applying a measured torque to the bolt,
measuring bolt extension, heating to expand the bolt then turning the nut down, torquing
the bolt to the yield point, testing ultrasonically or by a certain number of degrees of
relative rotation of the threaded components. Each method has a range of uncertainties
associated with it, some of which are very substantial.
.
Fig 4.1: Preload redirects Fig 4.2: Bolted joint in vertical
Screw joint
Fig 4.3: screw joint
Open Source Service Robot Components
ME@HKBKCE 20 2014-15
4.2 Screw thread:
Fig 4.4: Screw Thread
Internal and external threads illustrated using a common nut and bolt. The screw and nut
pair can be used to convert torque into linear force. As the screw (or bolt) is rotated, the
screw moves along its axis through the fixed nut, or the non-rotating nut moves along the
lead-screw.
Fig 4.5 Screw thread under operation
Screw thread, used to convert torque into the linear force in the flood gate. The operator
rotates the two vertical bevel gears that have threaded holes, thereby raising or lowering
the two long vertical threaded shafts which are not free to rotate (via bevel gear).
A screw thread, often shortened to thread, is a helical structure used to convert between
rotational and linear movement and force. A screw thread is a ridge wrapped around
a cylinder or cone in the form of a helix, with the former being called a straight thread
and the latter called a tapered thread. A screw thread is the essential feature of the screw
as a simple machine and also as a fastener. More screw threads are produced each year
than any other machine element.
Open Source Service Robot Components
ME@HKBKCE 21 2014-15
The mechanical advantage of a screw thread depends on its lead, which is the linear
distance the screw travels in one revolution. In most applications, the lead of a screw
thread is chosen so that friction is sufficient to prevent linear motion being converted to
rotary that is so the screw does not slip even when linear force is applied so long as no
external rotational force is present. This characteristic is essential to the vast majority of
its uses. The tightening of a fastener's screw thread is comparable to driving a wedge into
a gap until it sticks fast through friction and slight plastic deformation.
4.3 Ball Bearing:
A ball bearing is a type of rolling-element bearing that uses balls to maintain the
separation between the bearing races.
The purpose of bearing is to reduce rotational force and support radial and axial loads. It
achieves this by using at least two races to contain the balls and transmit the loads
through the balls. In most applications, one race is stationary and the other is attached to
the rotating assembly (e.g., a hub or shaft). As one of the bearing races rotates it causes
the balls to rotate as well. Because the balls are rolling they have a much
lower coefficient of friction than if two flat surfaces were sliding against each other.
Ball bearings tend to have lower load capacity for their size than other kinds of rolling-
element bearings due to the smaller contact area between the balls and races. However,
they can tolerate some misalignment of the inner and outer races.
Fig 4.6 Ball bearing
Open Source Service Robot Components
ME@HKBKCE 22 2014-15
4.3.1Working principle for a ball bearing :
Fig 4.7
A 4 point angular contact ball bearing
Fig 4.8
A ball bearing with a semi transparent cage
Fig 4.9
Bearing under action
Open Source Service Robot Components
ME@HKBKCE 23 2014-15
4.4 Clamp:
A clamp is a fastening device to hold or secure objects tightly together to prevent
movement or separation through the application of inward pressure. In the United
Kingdom and Australia, the term cramp is often used instead when the tool is for
temporary use for positioning components during construction and woodworking; thus
a G cramp or a sash cramp but a wheel clamp or a surgical clamp.
There are many types of clamps available for many different purposes. Some are
temporary, as used to position components while fixing them together, others are intended
to be permanent. In the field of animal husbandry, using a clamp to attach an animal to a
stationary object is known as "rounded clamping." A physical clamp of this type is also
used to refer to an obscure investment banking term; notably "fund clamps." Anything
that performs the action of clamping may be called a clamp, so this gives rise to a wide
variety of terms across many fields.
Fig 4.10 Types of Clamps
4.5 Grippers:
The end of the manipulator is the part the user or robot uses to affect something in the
environment. For this reason it is commonly called an end-effector, but it is also called a
gripper since that is a very common task for it to perform when mounted on a robot. It is
often used to pick up dangerous or suspicious items for the robot to carry, some can turn
doorknobs, and others are designed to carry only very specific things like beer cans.
Closing too tightly on an object and crushing it is a major problem with autonomous
grippers. There must be some way to tell how hard is enough to hold the object without
Open Source Service Robot Components
ME@HKBKCE 24 2014-15
dropping it or crushing it. Even for semi-autonomous robots where a human controls the
manipulator, using the gripper effectively is often difficult. For these reasons, gripper
design requires as much knowledge as possible of the range of items the gripper will be
expected to handle. Their mass, size, shape, and strength, etc. all must be taken into
account. Some objects require grippers that have many jaws, but in most cases, grippers
have only two jaws and those will be shown here.
There are several basic types of gripper geometries. The most basic type has two simple
jaws geared together so that turning the base of one turns the other. This pulls the two
jaws together. The jaws can be moved through a linear actuator or can be directly
mounted on a motor gearbox’s output shaft, or driven through a right angle drive which
places the drive motor further out of the way of the gripper. This and similar designs have
the drawback that the jaws are always at an angle to each other which tends to push the
thing being grabbed out of the jaws.
Fig 4.11 Parallel Gripper
4.5.1 PASSIVE PARALLEL JAW USING CROSS TIE:
Twin four-bar linkages are the key components in this long mechanism that can grip with
a constant weight-to-grip force ratio any object that fits within its grip range. The long
mechanism relies on a cross-tie between the two sets of linkages to produce equal and
opposite linkage movement. The vertical links have extensions with grip pads mounted at
their ends, while the horizontal links are so proportioned that their pads move in an
inclined straight-line path. The weight of the load being lifted, therefore, wedges the pads
against the load with a force that is proportional to the object’s weight and independent of
its size.
Some robots are designed to do one specific task, to carry one specific object, or
even to latch onto some specific thing. Installing a dedicated knob or ball end on the
object simplifies the gripping task using this mating one-way connector. In many cases, a
joint like this can be used independently of any manipulator.
Open Source Service Robot Components
ME@HKBKCE 25 2014-15
Fig 4.12(a) Parallel Servo Gripper:
Fig 4.12(b) Parallel Servo Gripper:
A mechanical gripper is used as end effectors in a robot for grasping the objects with
its mechanically operated fingers. In industries, two fingers are enough for holding
purposes. More than three fingers can also be used based on the application. As most of
the fingers are of replaceable type, it can be easily removed and replaced.
A robot requires either hydraulic, electric, or pneumatic drive system to create the input
power. The power produced is sent to the gripper for making the fingers react. It also
allows the fingers to perform open and close actions. Most importantly, a sufficient
force must be given to hold the object.
In a mechanical gripper, the holding of an object can be done by two different
methods such as:
 Using the finger pads as like the shape of the work part.
Open Source Service Robot Components
ME@HKBKCE 26 2014-15
 Using soft material finger pads.
In the first method, the contact surfaces of the fingers are designed according to the work
part for achieving the estimated shape. It will help the fingers to hold the work part for
some extent.
In the second method, the fingers must be capable of supplying sufficient force to hold
the work part. To avoid scratches on the work part, soft type pads are fabricated on the
fingers. As a result, the contact surface of the finger and co – efficient of friction are
improved.
This method is very simple and as well as less expensive. It may cause slippage if the
force applied against the work part is in the parallel direction. The slippage can be
avoided by designing the gripper based on the force exerted.
µ nf Fg = w ………………… 1
µ = co – efficient of friction between the work part and fingers
nf = no. of fingers contacting
Fg = Force of the gripper
w = weight of the grasped object
The equation 1 must be changed if the weight of a work part is more than the force
applied to cause the slippage.
µ nf Fg = w g …..……………. 2
g = g factor
During rapid grasping operation, the work part will get twice the weight. To get rid out of
it, the modified equation 1 is put forward by Engel Berger. The g factor in the equation 2
is used to calculate the acceleration and gravity.
The values of g factor for several operations are given below:
 g = 1 – acceleration supplied in the opposite direction.
 g = 2 – acceleration supplied in the horizontal direction.
 g = 3 – acceleration and gravity supplied in the same direction.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 27 2014-15
CHAPTER-5
FEASIBILITY OF ROBOT
The whole Feasibility of the robot is divided into three different stages. They are
1. Feasibility of the robot structure and body.
2. Feasibility of Robot Gripper.
3. Feasibility of base part of the robot arm and other equipment that are to be placed on
the base.
5.1 Feasibility of Robot Structure and Body:
5.1.1 Raw material used:
 Wooden sheet (400x350 mm)
 Screw threaded rod one piece (100 mm in length and 8 mm diameter)
 Aluminum angular two pieces ( each 40 mm in length)
 Bolts having 8mm internal diameter
 Rubber tires(4)
 Motors
MOTOR RPM NO. PURPOSE
100 4 ROBOT MOVEMENT
3.5 1 GRIPPER ROTATION
200 1 SLIDING
30 1 GRIPPER MOVEMENT
5.1.2 Tools used:
 Wooden saw
 Hack saw
 Bench vice
 Hand drill
 Drill bits of 8mm and 3mm
 Different types of files according to requirement.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 28 2014-15
5.1.3 Feasibility Procedure:
5.1.3.1 Step by step procedure our project:
The project has divided into three stages:
 First stage: Designing of robot structure. I.e., mechanical parts, and mechanism.
 Second stage: Testing of robot structure and robot movements and giving desired
codes to write program.
 Third stage: Designing of electronic circuit board, and writing program in to micro
controller.
5.2 First stage:
5.2.1 Robot Chassis:
 Marking 400x350mm on wooden sheet and cutting it by hacksaw.
 Finishing its edges by smooth file.
 Now cutting of Aluminium L-shape piece of dimensions 40mm.
 Marking centre on one side of Aluminium piece and marking 3mm holes on other side
to fix it to the base of the robot by means of screw and nut.
 To fix motor, hole a 8mm drill in marked centre of Aluminium clamp.
 Fix 100rpm motor (4 pieces, 4motors).
Fig 5.1 Design of Chassis
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 29 2014-15
5.2.2 Design of Linear Actuator (Torso):
 The actuator consists of parts that include a bearing, rod, motor for actuation, a tube
for connecting the rod and the shaft of the motor, plastic plate for mounting the arm
which will guide it up and down and clamps on the plate to insert the rod for actuation
 Bearing: A rectangular wooden block with the dimensions matching the width of the
torso was cut using a hacksaw blade.
 A bearing which was able to accommodate the rotation of the linear actuator rod was
selected. A circular hole was drilled to insert the bearing. With the help of a bench
vise the bearing was leveled into the hole.
Fig 5.2 Design of Torso
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 30 2014-15
5.2.3 Design of plate:
 A plastic rectangular plate was cut using the blade cutter machine with dimensions
6x10.We filed the edges using a grinder machine and also a filing tool.
 Clamps were made from thin aluminium sheets that support the rotating hollow
screws where the rods rotate. Holes were drilled on the clamps as well as on the
rectangular sheet in such a way that the sheet has tapered holes
 Screws were inserted into the clamps that support the rod during its rotation and also
to hold the end effector and arm in the further stage.
 The plastic plate was found to be moving smoothly up and down the length of the
torso without any contact areas that will obstruct its motion.
 A rod having similar length as that of the torso was filed at the bottom end which
helps it to be supported on the bearing.
 A pipe was cut to match the distance between the motor shaft and the rotating rod in
order to transmit the motion from the motor to the road that will actuate the torso.
 Screws were drilled at the bottom of the torso in order to support it on the aluminium
clamp that will hold the torso fit in place.
 A dc motor is to be used to rotate the shaft on which the arm has to be mounted. The
sides of the motor were machined enabling a smooth fit on the torso.
 The motor was then tested and found to be in working condition.
 A wooden plate was cut using a hacksaw blade to be able to clamp the motor on top
of it. It was supported on the torso using a thin wooden plate.
 The motor has to be aligned perfectly in order to enable the rotation of the shaft
without any obstruction.
 The motor is drilled into the block and the block is supported on the torso by drilling
a screw through the wooden plate into the torso.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 31 2014-15
Fig 5.3 Design of Plastic plate
5.2.4 Designing of gripper:
We decided to opt a simpler design of the arm and gripper so as to match the time
constraints and minimize the cost of construction.
 The arm and gripper are both fabricated using Aluminium plates that have been fixed
on plastic plates.
 The gripper has an arrangement of links to facilitate opening and closing of the
fingers.
 The arm has raising and lowering action that helps the gripper to reach objects in an
inclined direction with the help of servo motors.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 32 2014-15
 The arm and the gripper both are actuated using servo motors.
Fig 5.4 Design of Arm
Fig 5.5 Design of Gripper
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 33 2014-15
5.3 Second stage:
In second stage all the electronic components and testing of all mechanism manual by
giving power from 12V battery.
 Analysis the movements of robot and have to give desired command and have to
give program for the code. And by giving the code the robot have motion according
to program.
 In this project total 20 commands are used for robot.
The following table gives information regarding the command used and the action
performed by robot
Command Code Action by robot
Forward f Robot moves forward for
500miliseconds.
Backward b Robot moves backward
for 500miliseconds.
Left l Robot moves left for
500miliseconds.
Right r Robot moves right for
500miliseconds.
Raiser x Gripper rotates upwards.
Lower y Gripper rotates
downwards.
Close c Gripper fingers comes
closer to grasp.
Open o Gripper fingers opens to
leave the object.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 34 2014-15
Stop S Stops any command
Continuous forward F Robot moves forward
continuously until
command stop used.
Continuous backward B Robot moves backward
continuously until
command stop used.
Continuous up U Arm moves vertically
upwards continuously
until command stop used.
Continuous down D Arm moves vertically
downwards continuously
until command stop used.
Continuous left L Robot moves
continuously left until
command stop used.
Continuous right R Robot moves
continuously right until
command stop used.
5.3.1 Electronic specifications:
We have used,
 Arduino Uno
 L293D
 Atmega16 microcontroller
Arduino board is used for serial communication. The microcontroller we are using is
called 89s52; in which 89 indicates it is flash programmable series, ‘S ‘indicates static
meaning that it can be operated from 0 Hz to 32 MHz crystal. Microcontroller is the brain
of the entire project. ATMEGA16 controls all the peripherals. The system basically
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 35 2014-15
consists of Microcontroller and various peripherals connected to it. The ATMEGA
Microcontroller block does the control functions based on the sensory inputs received by
it. It has switches and microphone, rs232 as input and motor driver as the output. We
send the code to the Microcontroller using stk500 programmer using parallel port
communication.Stk500 is a circuit with hardware after converting the human readable
code to machine understandable format we need to dump the binary file to
microcontroller. Stk500 is used to dump the program into the chip.The L293D motor
driver is used to power the linear actuator to aid the arm to be raised and lowered and also
to actuate the other servos.L293 motor driver is used to provide motion control. It can
drive 2 individual motors of 200ma each. It has thermal shutdown and back EMF
suppression. This project uses regulated 5v to power the microcontroller circuit and also
has 12v power supply for motor supply and relay driving. The circuit derives it supply
from battery. Whenever distance is involved in data transfer the voltage levels change due
to attenuation which results in misrepresentation of logic levels that is a high logic level
may appear to be low when it reached the destination due to attenuation. To overcome the
problem RS232 is proposed for communication between data communication equipment
(DCE) and data terminal equipment (DTE).
The question arises why we use Atmega 16 only and why not any other microcontroller.
 It is oldest and still most widely used in the world.
 Low cost controller.
 Produced by several manufacturers.
 Good support available on the net from several forums.
 Industries built several solutions based on this architecture hence proven
technology.
 Continuously being upgraded and several features are added rapidly.
 Application development is faster.
 Integrated development environment is free.
Traditionally microprocessors are used for general purpose computing, which can be
expanded as per the requirement. But the cost becomes prohibitive when it comes to
small applications like ours; hence we are using a MCS-52 micro controller in our
project. The Microcontroller is special purpose computer with all the resources optimized
for specific applications, and due to mass production the cost is low.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 36 2014-15
Microcontroller are found everywhere in our day to day life be it computer keyboard,
washing machine, car, printer or in our calculators. They have become immensely
popular. One of the advantages of Microcontroller is its ability to reconfigure the
hardware by merely change in the program. Unlike traditional analog circuit wired for a
function cannot be used for some other function without dismantling. Microprocessors
essentially consists of ALU, Control Unit and Memory.
In addition to the above the Microcontroller consists of limited amount of RAM, ROM,
multi-mode Timers (8 bit, 16bit, with prescaler etc). MCS-52 was developed by Intel and
is most popular for the past 30 years and is the most widely used processor in the world.
It uses CISC (Complicated Instruction Set Computer) architecture. Due to mass
production by several manufacturers the cost is low. Hence we have selected MCS-51
Architecture Microcontroller for our project.
Fig 5.6 ATMEGA 16 Microcontroller
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 37 2014-15
5.3.2 Description:
The ATmega16 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced
RISC architecture. By executing powerful instructions in a single clock cycle, the
ATnega16 actives throughputs approaching 1MIPS per MHz allowing the system
designed to optimize power consumption versus preceding speed.
The AVR core combines a rich instruction set with 32 general purpose working registers.
All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU), allowing
two independent registers to be accessed in one single instruction executed in one clock
cycle. The resulting architecture is more code efficient while achieving throughputs up to
ten times faster than conventional CISC microcontrollers.
The ATmega16 provides the following features: 16 Kbytes of In-System Programmable
Flash Program memory with Read-While-Write capabilities 512 bytes EEPROM,1Kbyte
SRAM,32 general purpose I/O lines,32 general purpose working registers, a JTAG
interface for Boundary-Scan, On-chip Debugging support and programming, three
flexible Timer/Counters with compare modes, Internal and External Interrupts, a serial
programmable USART, a byte oriented Two-wire Serial Interface, an 8-channel,10-bit
ADC with optional differential input stage with programmable gain( TQFP package
only), a programmable Watchdog Timer with internal Oscillator, an SPI serial port, and
six software selectable power saving modes. The Idle mode stops the CPU while allowing
the USART, Two wire interface, A/D converter, SRAM, Timer/Counters, SPI port, and
interrupt system to continue functioning. The Power-down mode saves the register
contents but freezes the oscillator, disabling all other chip functions until the next
External Interrupt or Hardware Reset. In power-save mode, the Asynchronous Timer
continues to run, allowing the user to maintain a timer base while the rest of the device is
sleeping. The ADC Noise Reduction mode stops the CPU and all I/O modules except
Asynchronous Timer and ADC, to minimize switching noise during ADC conversions. In
Standby mode, the crystal/resonator Oscillator is running while the rest of the device is
sleeping. This allows very fast start-up combined with low-power consumption, in
extended standby mode, both the main oscillator and the Asynchronous Timer to run.
5.3.3 Power supply:
The house electrical power supply is rated at 230v Ac. Which is not suitable for driving
most of electronic devices, which operate at much lower voltages like, 12V, 5V and 3V
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 38 2014-15
etc. hence 230V AC is converted to 12V ac using step-down transformer. The o/p of the
step down transformer is rectified using bridge rectifier for max efficiency
5.3.4 Bridge Rectifier:
A bridge rectifier makes use of four diodes in a bridge arrangement to achieve full-wave
rectification. This is a widely used configuration, both with individual diodes wired as
shown and with single component bridges where the diode bridge is wired internally.
Fig 5.7: Bridge Rectifier
Diodes 1N4007 are used as rectifiers. Which are rated at 1Amp. The output of rectifier is
pulsating DC which is filtered using a filter capacitor to smoothen out the ripples.
5.3.5 RC Filter:
A bridge rectifier makes use of four diodes in a bridge arrangement to achieve full-wave
rectification. This is a widely used configuration, both with individual diodes wired as
shown and with single component bridges where the diode bridge is wired internally.
Fig5.8: Current Flow in the Bridge Rectifier
For both positive and negative swings of the transformer, there is a forward path through
the diode bride. Both conduction paths cause current to flow in the same direction
through the load resistor, accomplishing full wave rectification.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 39 2014-15
Fig 5.9(a) Bridge rectifier
While one set of diodes is forward biased, the other set is reverse biased and effectively
eliminated from the circuit.
Fig 5.9(b) Bridge rectifier
5.3.6 DC Motor:
Fig 5.10 internal construction of DC motor Fig 5.11 DC motor
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 40 2014-15
Due to variations at the input the output may also vary hence we need a regulator
maintain constant output voltage and better line regulation and load regulation
irrespective of variations at the input. The regulator used is 7805 which is a positive
voltage regulator. The first two digits “78” indicates fixed positive regulator and last two
digits indicate output voltage in our case “05” stands for 5V constant output. It is used as
Simple 5V power supply for digital circuits. DC Motors convert electrical energy (voltage
or power source) to mechanical energy (produce rotational motion). They run on direct
current. The Dc motor works on the principle of Lorentz force which states that when a
wire carrying current is placed in a region having magnetic field, than the wire
experiences a force. This Lorentz force provides a torque to the coil to rotate.
The image shows the brushes of the DC motor which helps the motor to take input current
to the coil. The brushes always remain connected with any two commutators and
supplying the input current to the coil while it is rotating.
Fig 5.12: internal coil arrangement Fig 5.13: commuter arrangement
There are three commutations shown in the image. Each one is directly connected with
the coil to supply the current in the permanent magnet is cascaded in the body of the
motor. The coil working as electromagnet moves in the magnetic field of this magnet.
5.4 Working:
As we have discussed, DC motor work on Lorentz force concept. When we pass the input
DC current to the coil through the brushes, it directly goes to the coil inside the motor
body. This makes coil to work as an electromagnet. Magnetic fields of both magnets
interact with each other that results in a force which in turn produces the necessary torque
required to move the coil. This torque drives the coil to move round and a shaft attached
with the coil moves too.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 41 2014-15
5.5 Motor specifications:
Motor voltage 12V
AC/DC DC
Motor basic speed 2400 RPM
Reduction ratio: 1:160
Motor type Permanent magnet
Supply to coils Through commutate
5.5.1 L293 Motor Driver:
The L293 is an integrated circuit motor driver that can be used for simultaneous, bi-
directional control of two small motors. The L293 is limited to 600 mA, but in reality can
only handle much small currents unless you have done some serious heat sinking to keep
the case temperature down. Hook up the circuit and run your motor while keeping your
finger on the chip. If it gets too hot to touch, you can't use it with your motor.
The pinout for the L293 in the 16-pin package is shown below in top view. Pin 1 is at the
top left when the notch in the package faces up. Note that the names for pin functions
may be slightly different than what is shown in the following diagrams. Different than
what is shown in the following diagrams.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 42 2014-15
Fig 5.14 L293D and RS232
Assume you have only one motor connected with the enable tied to Stamp Pin 0, and the
two direction controls tied to Stamp Pins 1 and 2.
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 43 2014-15
ENABLE DIRA DIRB Function
H H L Turn right
H L H Turn left
H L/H L/H Fast stop
L either either Slow stop
Table: describing the control pin functions.
5.5.2 Switches:
Tact switches are used in the project. They are Printed circuit mounted type. The switch
function is push to on meaning that it will close the circuit as long as it is depressed
against the PCB and opens the circuit as soon as the switch is released.
5.5.3 Pulse width modulation:
The speed is controlled using a technique called pulse width modulation. In pulse width
modulation the on off period of the motor is controlled. In our project we have selected
50% on and 50% off for half motor speed.
5.5.4 The purpose of using pc in our project:
We need higher processing power for large data base management real time modem
based communication, graphical user interface video conference with built in web cam
interface driver. In olden days when pc’s were costly it was difficult, tedious and time
consuming to write and debug programs which resulted in slow projects development
cycle spanning to several weeks or months. The pc’s with enormous processing capability
make the programming for development. All mechanical switches bounce several times
before they settle, since microprocessors are fast they sense these bounces as key press
several times. Using software delays we can avoid debounce.
5.6 HC 05 Bluetooth Module:
We are using HC 05 Bluetooth Module for vocal control or voice control. The setup
includes a module that acts as an RF receiver. It is connected to the arduino board using
male and female wires and the circuit setup is explained in the fig. Since the operating
voltage of the module is 3.2v we have used 2k2 and 1k resistors to limit the voltage
passing through the circuit. We are using our android mobile as we have learned how to
Open Source Service Robot Feasibility of Robot
ME@HKBKCE 44 2014-15
develop an app on an android platform using MIT app inventor. The app is used to
connect the mobile phone to the Hc 05 Bluetooth module. It is used to send the voice
commands from the mobile to the module which then helps in actuation. Thus we can
write an arduino code for the module and make it act as a slave receiving the commands
from the mobile which acts as a master transmitting the voice commands. Thus the same
control features previously achieved using the joystick can be also replaced using voice
command. This was an easy and cost effective way to install voice command on the
existing robot. Our initial idea of using visual studio that uses .net framework was time
consuming and complex. The coding in visual studio is of vb script which makes it a little
complex while writing the program. Also since time is a constraint we are using the
Bluetooth module.
Fig 5.15(a) Hc -05 bluetooth module
Fig 5.15(b) Hc -05 bluetooth module
Open Source Service Robot Software Program
ME@HKBKCE 45 2014-15
CHAPTER – 6
Software Program (CODE)
6.1 CODE FOR FUNCTIONING
/* name: ServiceRobot1 V1.0 150420 5pm
h/w: arduino,Atmega16GPB L293 controlling 4 motors; the H bridge takes two outputs
from the Arduino to control the motor.
remarks: 5 motor control
*/
/* Port
Assignmemnt*************************************************************
**************************/
//MotorPin-arduino -Atmega16GPB pin connections
int M1Pls = 2; //PD7
int M1Min = 3; //PD6
int M2Pls = 4; //PC4 /PD0
int M2Min = 5; //PC7 /PD1
int M3Pls = 6; //PD5
int M3Min = 7; //PD3
int M4Pls = 8; //PD4
int M4Min = 9; //PD2
int M5Pls = 10; //PD2
int M5Min = 11; //PD2
int M6Pls = 12; //PD2
int M6Min = 13; //PD2
int incomingByte = 0; // for incoming serial data
int x;
/* run once
code********************************************************************
**********************/
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
//the motor control wires are outputs
Open Source Service Robot Software Program
ME@HKBKCE 46 2014-15
pinMode(M1Pls, OUTPUT);
pinMode(M1Min, OUTPUT);
pinMode(M2Pls, OUTPUT);
pinMode(M2Min, OUTPUT);
pinMode(M3Pls, OUTPUT);
pinMode(M3Min, OUTPUT);
pinMode(M4Pls, OUTPUT);
pinMode(M4Min, OUTPUT);
pinMode(M5Pls, OUTPUT);
pinMode(M5Min, OUTPUT);
pinMode(M6Pls, OUTPUT);
pinMode(M6Min, OUTPUT);
Serial.println("Service Robot V1.0 Initilization Done");
}
/* code that runs
forever******************************************************************
*****************/
void loop() {
incomingByte = Serial.read();
if (incomingByte == 'f'){Serial.print("f-");Forward(100);}
if (incomingByte == 'F'){Serial.print("F-");CForward();}
if (incomingByte == 'b'){Serial.print("b-");Backward(100);}
if (incomingByte == 'B'){Serial.print("B-");CBackward();}
if (incomingByte == 'r'){Serial.print("r-");Right(100);}
if (incomingByte == 'R'){Serial.print("R-");CRight();}
if (incomingByte == 'l'){Serial.print("l-");Left(100);}
if (incomingByte == 'L'){Serial.print("L-");CLeft();}
if (incomingByte == 's'){Serial.print("s-");StopAll();}
if (incomingByte == 'S'){Serial.print("S-");StopAll();}
if (incomingByte == 'x'){Serial.print("x-");Raise(100);}
if (incomingByte == 'X'){Serial.print("X-");CRaise();}
if (incomingByte == 'y'){Serial.print("y-");Lower(100);}
if (incomingByte == 'Y'){Serial.print("Y-");CLower();}
if (incomingByte == 'o'){Serial.print("o-");Open(100);}
Open Source Service Robot Software Program
ME@HKBKCE 47 2014-15
if (incomingByte == 'O'){Serial.print("O-");COpen();}
if (incomingByte == 'c'){Serial.print("c-");Close(100);}
if (incomingByte == 'C'){Serial.print("C-");CClose();}
if (incomingByte == 'u'){Serial.print("u-");Up(100);} //linear actuator
if (incomingByte == 'U'){Serial.print("U-");CUp();} //linear actuator
if (incomingByte == 'd'){Serial.print("d-");Down(100);} //linear actuator
if (incomingByte == 'D'){Serial.print("D-");CDown();} //linear actuator
if (incomingByte == 'p'){Serial.print("p-");Custom1();}
if (incomingByte == 'q'){Serial.print("q-");Custom2();}
if (incomingByte == 'w'){Serial.print("w-");Custom3();}
if (incomingByte == 'z'){Serial.print("z-");Custom4();}
}
void Forward(int x){M1Cw();
M2Ccw();delay(x);StopM1();StopM2();Serial.println("Forward");}
void CForward(){CM1Cw();CM2Ccw();Serial.println("Cont Forward");}
void Backward(int
x){M1Ccw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Backward");}
void CBackward(){CM1Ccw();CM2Cw();Serial.println("Cont Backward");}
void Right(int
x){M1Ccw();M2Ccw();delay(x);StopM1();StopM2();Serial.println("Right");}
void CRight(){CM1Ccw();CM2Ccw();Serial.println("Cont Right");}
void Left(int x){M1Cw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Left");}
void CLeft(){CM1Cw();CM2Cw();Serial.println("Cont Left");}
void Raise(int x){M3Ccw();delay(x);StopM3();Serial.println("Raise");}
void CRaise(){CM3Ccw();Serial.println("Cont Raise");}
void Lower(int x){M3Cw();delay(x); StopM3();Serial.println("Lower");}
void CLower(){CM3Cw();;Serial.println("Cont Lower");}
void Open(int x){M4Ccw() ;delay(x);StopM4();Serial.println("Open");}
void COpen(){CM4Ccw();;Serial.println("Cont Open");}
void Close(int x){M4Cw();delay(x);StopM4();Serial.println("Close");}
void CClose(){CM4Cw();;Serial.println("Cont Close");}
void Up(int x){M5Cw();delay(x);StopM5();Serial.println("Up");}
void CUp(){CM5Cw();Serial.println("Cont CUp");}
Open Source Service Robot Software Program
ME@HKBKCE 48 2014-15
void Down(int x){M5Ccw();delay(x); StopM5();Serial.println("Down");}
void CDown(){CM5Ccw();Serial.println("Cont Down");}
void Custom1(){Serial.println("Custom1");}
void Custom2(){Serial.println("Custom2");}
void Custom3(){Serial.println("Custom3");}
void Custom4(){Serial.println("Custom4");}
void M1Cw() {digitalWrite(M1Pls, LOW) ;digitalWrite(M1Min,
HIGH);delay(100);StopM1();}
void M1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW)
;delay(100);StopM1();}
void M2Cw() {digitalWrite(M2Pls, LOW) ;digitalWrite(M2Min,
HIGH);delay(100);StopM2();}
void M2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW)
;delay(100);StopM2();}
void M3Cw() {digitalWrite(M3Pls, LOW) ;digitalWrite(M3Min,
HIGH);delay(100);StopM3();}
void M3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW)
;delay(100);StopM3();}
void M4Cw() {digitalWrite(M4Pls, LOW) ;digitalWrite(M4Min,
HIGH);delay(100);StopM4();}
void M4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW)
;delay(100);StopM4();}
void M5Cw() {digitalWrite(M5Pls, LOW) ;digitalWrite(M5Min,
HIGH);delay(100);StopM5();}
void M5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW)
;delay(100);StopM5();}
void M6Cw() {digitalWrite(M6Pls, LOW) ;digitalWrite(M6Min,
HIGH);delay(100);StopM6();}
void M6Ccw(){digitalWrite(M6Pls, HIGH);digitalWrite(M6Min, LOW)
;delay(100);StopM6();}
void CM1Cw() {digitalWrite(M1Pls, LOW);digitalWrite (M1Min, HIGH);}
Open Source Service Robot Software Program
ME@HKBKCE 49 2014-15
void CM1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW);}
void CM2Cw() {digitalWrite(M2Pls, LOW);digitalWrite (M2Min, HIGH);}
void CM2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW);}
void CM3Cw() {digitalWrite(M3Pls, LOW);digitalWrite (M3Min, HIGH);}
void CM3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW);}
void CM4Cw() {digitalWrite(M4Pls, LOW);digitalWrite (M4Min, HIGH);}
void CM4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW);}
void CM5Cw() {digitalWrite(M5Pls, LOW);digitalWrite (M5Min, HIGH);}
void CM5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW);}
void CM6Cw() {digitalWrite(M6Pls, LOW);digitalWrite (M6Min, HIGH);}
void CM6Ccw(){digitalWrite(M6Pls, HIGH);digitalWrite(M6Min, LOW);}
void StopM1(){digitalWrite(M1Pls, LOW);digitalWrite(M1Min,
LOW);Serial.println("StopM1");}
void StopM2(){digitalWrite(M2Pls, LOW);digitalWrite(M2Min,
LOW);Serial.println("StopM2");}
void StopM3(){digitalWrite(M3Pls, LOW);digitalWrite(M3Min,
LOW);Serial.println("StopM3");}
void StopM4(){digitalWrite(M4Pls, LOW);digitalWrite(M4Min,
LOW);Serial.println("StopM4");}
void StopM5(){digitalWrite(M5Pls, LOW);digitalWrite(M5Min,
LOW);Serial.println("StopM5");}
void StopM6(){digitalWrite(M6Pls, LOW);digitalWrite(M6Min,
LOW);Serial.println("StopM6");}
void StopAll(){digitalWrite(M1Pls, LOW);digitalWrite(M1Min, LOW);
digitalWrite(M2Pls, LOW);digitalWrite(M2Min, LOW);
digitalWrite(M3Pls, LOW);digitalWrite(M3Min, LOW);
digitalWrite(M4Pls, LOW);digitalWrite(M4Min, LOW);
digitalWrite(M5Pls, LOW);digitalWrite(M5Min, LOW);
digitalWrite(M6Pls, LOW);digitalWrite(M6Min,
LOW);Serial.println("StopM1,M2,M3,M4,M5,M6");}
void ZeroTurning(){M1Cw();M2Cw();M3Cw();M4Cw();delay(10000);StopAll(); }
Open Source Service Robot Software Program
ME@HKBKCE 50 2014-15
void Test4Motors(){M1Cw();M2Cw();M3Cw();M4Cw();delay(1000);
M1Ccw();M2Ccw();M3Ccw();M4Ccw();delay(1000);}
6.2 SOFTWARE PROGRAM CODE FOR VOICE CONTROL
/* name: ServiceRobot5 V1.5 150511
h/w: arduino,Atmega16GPB L293 controlling 5 motors optional one more motor total 6 ;
the H bridge takes two outputs from the Arduino to control the motor.
install voice control bot from google paystore
control from bluetooth terminal app for character typing
remarks: $Bluetooth and pc control;
*/
#include <SoftwareSerial.h>
/* Port
Assignmemnt*************************************************************
**************************/
//MotorPin-arduino -Atmega16GPB pin connections
int M1Pls = 2; //PD7
int M1Min = 3; //PD6
int M2Pls = 4; //PC4 /PD0
int M2Min = 5; //PC7 /PD1
int M3Pls = 6; //PD5
int M3Min = 7; //PD3
int M4Pls = 8; //PD4
int M4Min = 9; //PD2
int M5Pls = 10; //PD2
int M5Min = 11; //PD2
int M6Pls = 12; //PD2
int M6Min = 13; //PD2
/* Variable
Declaration**************************************************************
************************/
int incomingByte = 0; // for incoming serial data
int x;
Open Source Service Robot Software Program
ME@HKBKCE 51 2014-15
String BtData;
int ledpin=13; // led on D13 will show blink on / off
SoftwareSerial BT(14, 15);//arduino 14-RX conncted to BT Tx; arduino 15-TX connected
to BT Rx
/* run once
code********************************************************************
**********************/
void setup() {
Serial.begin(9600); // arduino serial port view using serial monitor baud 9600
BT.begin(9600); // Bluetooth Serial port view using TerminalBt baud 9600
//the motor control wires are outputs
pinMode(M1Pls, OUTPUT);
pinMode(M1Min, OUTPUT);
pinMode(M2Pls, OUTPUT);
pinMode(M2Min, OUTPUT);
pinMode(M3Pls, OUTPUT);
pinMode(M3Min, OUTPUT);
pinMode(M4Pls, OUTPUT);
pinMode(M4Min, OUTPUT);
pinMode(M5Pls, OUTPUT);
pinMode(M5Min, OUTPUT);
pinMode(M6Pls, OUTPUT);
pinMode(M6Min, OUTPUT);
Serial.println("Service Robot V1.5 Initilization Done");
}
/* code that runs
forever******************************************************************
*****************/
void loop() {
/* check Bt data
************************************************************************
*******************/
while (BT.available()){ //Check if there is an available byte to read
Open Source Service Robot Software Program
ME@HKBKCE 52 2014-15
delay(10); /*Delay added to make thing stable*/ char c = BT.read(); /*Conduct a serial
read*/ BtData += c; /*build the string- "forward", "reverse", "left" and "right"*/}
if (BtData.length() > 0) {Serial.println(BtData); // print Bt data if char is atleast one
character
if(BtData=="forward"){CForward();}
if(BtData=="backward"){CBackward();}
if(BtData=="right"){CRight();}
if(BtData=="left"){CLeft();}
if(BtData=="stop"){StopAll();}
if(BtData=="of"){StopAll();}
if(BtData=="up"){CUp();}
if(BtData=="down"){CDown();}
if(BtData=="open"){COpen();}
if(BtData=="close"){CClose();}
if(BtData=="hi"){CHigh();}
if(BtData=="ground"){CGround();}
if(BtData=="charge"){StopAll();}
BtData=""; //Clear/Reset the variable
}
/* PC control characters
************************************************************************
*******************/
while (Serial.available()){ /*Check if there is an available byte to read*/ incomingByte =
Serial.read();
if (incomingByte == 'f'){Serial.print("f-");Forward(100);}
if (incomingByte == 'F'){Serial.print("F-");CForward();}
if (incomingByte == 'b'){Serial.print("b-");Backward(100);}
if (incomingByte == 'B'){Serial.print("B-");CBackward();}
if (incomingByte == 'r'){Serial.print("r-");Right(100);}
if (incomingByte == 'R'){Serial.print("R-");CRight();}
if (incomingByte == 'l'){Serial.print("l-");Left(100);}
if (incomingByte == 'L'){Serial.print("L-");CLeft();}
if (incomingByte == 's'){Serial.print("s-");StopAll();}
Open Source Service Robot Software Program
ME@HKBKCE 53 2014-15
if (incomingByte == 'S'){Serial.print("S-");StopAll();}
if (incomingByte == 'u'){Serial.print("u-");Up(100);}
if (incomingByte == 'U'){Serial.print("U-");CUp();}
if (incomingByte == 'd'){Serial.print("d-");Down(100);}
if (incomingByte == 'D'){Serial.print("D-");CDown();}
if (incomingByte == 'o'){Serial.print("o-");Open(100);}
if (incomingByte == 'O'){Serial.print("O-");COpen();}
if (incomingByte == 'c'){Serial.print("c-");Close(100);}
if (incomingByte == 'C'){Serial.print("C-");CClose();}
if (incomingByte == 'h'){Serial.print("h-");High(100);} //linear actuator
if (incomingByte == 'H'){Serial.print("H-");CHigh();} //linear actuator
if (incomingByte == 'g'){Serial.print("g-");Ground(100);} //linear actuator
if (incomingByte == 'G'){Serial.print("G-");CGround();} //linear actuator
if (incomingByte == 'i'){Serial.print("i-");Custom1();}
if (incomingByte == 'j'){Serial.print("j-");Custom2();}
if (incomingByte == 'k'){Serial.print("k-");Custom3();}
if (incomingByte == 'm'){Serial.print("m-");Custom4();}
if (incomingByte == '0'){Serial.println("CM1Cw");CM1Cw();} // diagnostic routines
to test individual motors
if (incomingByte == '1'){Serial.println("CM1Ccw");CM1Ccw();}
if (incomingByte == '2'){Serial.println("CM2Cw");CM2Cw();}
if (incomingByte == '3'){Serial.println("CM2Ccw");CM2Ccw();}
if (incomingByte == '4'){Serial.println("CM3Cw");CM3Cw();}
if (incomingByte == '5'){Serial.println("CM3Ccw");CM3Ccw();}
if (incomingByte == '6'){Serial.println("CM4Cw");CM4Cw();}
if (incomingByte == '7'){Serial.println("CM4Ccw");CM4Ccw();}
if (incomingByte == '8'){Serial.println("CM5Cw");CM5Cw();}
if (incomingByte == '9'){Serial.println("CM5Ccw");CM5Ccw();}
incomingByte=' ';
}
}
Open Source Service Robot Software Program
ME@HKBKCE 54 2014-15
6.3 PROGRAM CODE FOR MOTOR DRIVER
void Forward(int x){M1Cw();
M2Ccw();delay(x);StopM1();StopM2();Serial.println("Forward");}
void CForward(){CM1Cw();CM2Ccw();Serial.println("Cont Forward");}
void Backward(int
x){M1Ccw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Backward");}
void CBackward(){CM1Ccw();CM2Cw();Serial.println("Cont Backward");}
void Right(int
x){M1Ccw();M2Ccw();delay(x);StopM1();StopM2();Serial.println("Right");}
void CRight(){CM1Ccw();CM2Ccw();Serial.println("Cont Right");}
void Left(int x){M1Cw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Left");}
void CLeft(){CM1Cw();CM2Cw();Serial.println("Cont Left");}
void Up(int x){M3Ccw();delay(x);StopM3();Serial.println("Raise");}
void CUp() {CM3Ccw();Serial.println("Cont Raise");}
void Down(int x){M3Cw();delay(x); StopM3();Serial.println("Lower");}
void CDown() {CM3Cw();Serial.println("Cont Lower");}
void Open(int x) {M4Ccw();delay(x);StopM4();Serial.println("Open");}
void COpen() {CM4Ccw();Serial.println("Cont Open");}
void Close(int x){M4Cw();delay(x);StopM4();Serial.println("Close");}
void CClose() {CM4Cw();Serial.println("Cont Close");}
void High(int x) {M5Cw();delay(x);StopM5();Serial.println("Up");}
void CHigh() {CM5Cw();Serial.println("Cont CUp");}
void Ground(int x) {M5Ccw();delay(x); StopM5();Serial.println("Down");}
void CGround() {CM5Ccw();Serial.println("Cont Down");}
void Custom1(){Serial.println("Custom1");}
void Custom2(){Serial.println("Custom2");}
void Custom3(){Serial.println("Custom3");}
void Custom4(){Serial.println("Custom4");}
Open Source Service Robot Software Program
ME@HKBKCE 55 2014-15
void M1Cw() {digitalWrite(M1Pls, LOW) ;digitalWrite(M1Min,
HIGH);delay(100);StopM1();Serial.print("M1Cw "); }
void M1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW)
;delay(100);StopM1();Serial.print("M1Ccw ");}
void M2Cw() {digitalWrite(M2Pls, LOW) ;digitalWrite(M2Min,
HIGH);delay(100);StopM2();Serial.print("M2Cw "); }
void M2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW)
;delay(100);StopM2();Serial.print("M2Ccw ");}
void M3Cw() {digitalWrite(M3Pls, LOW) ;digitalWrite(M3Min,
HIGH);delay(100);StopM3();Serial.print("M3Cw "); }
void M3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW)
;delay(100);StopM3();Serial.print("M3Ccw ");}
void M4Cw() {digitalWrite(M4Pls, LOW) ;digitalWrite(M4Min,
HIGH);delay(100);StopM4();Serial.print("M4Cw "); }
void M4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW)
;delay(100);StopM4();Serial.print("M4Ccw ");}
void M5Cw() {digitalWrite(M5Pls, LOW) ;digitalWrite(M5Min,
HIGH);delay(100);StopM5();Serial.print("M5Cw "); }
void M5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW)
;delay(100);StopM5();Serial.print("M5Ccw ");}
void M6Cw() {digitalWrite(M6Pls, LOW) ;digitalWrite(M6Min,
HIGH);delay(100);StopM6();Serial.print("M6Cw "); }
void M6Ccw(){digitalWrite(M6Pls, HIGH);digitalWrite(M6Min, LOW)
;delay(100);StopM6();Serial.print("M6Ccw ");}
void CM1Cw() {digitalWrite(M1Pls, LOW);digitalWrite (M1Min,
HIGH);Serial.print("CM1Cw "); }
void CM1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW)
;Serial.print("CM1Ccw ");}
void CM2Cw() {digitalWrite(M2Pls, LOW);digitalWrite (M2Min,
HIGH);Serial.print("CM2Cw "); }
void CM2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW)
;Serial.print("CM2Ccw ");}
Open Source Service Robot Software Program
ME@HKBKCE 56 2014-15
void CM3Cw() {digitalWrite(M3Pls, LOW);digitalWrite (M3Min,
HIGH);Serial.print("CM3Cw "); }
void CM3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW)
;Serial.print("CM3Ccw ");}
void CM4Cw() {digitalWrite(M4Pls, LOW);digitalWrite (M4Min,
HIGH);Serial.print("CM4Cw "); }
void CM4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW)
;Serial.print("CM4Ccw ");}
void CM5Cw() {digitalWrite(M5Pls, LOW);digitalWrite (M5Min,
HIGH);Serial.print("CM5Cw "); }
void CM5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW)
;Serial.print("CM5Ccw ");}
void CM6Cw() {digitalWrite(M6Pls, LOW);digitalWrite (M6Min,
HIGH);Serial.print("CM6Cw "); }
void StopM1() {digitalWrite(M1Pls,LOW);digitalWrite(M1Min,LOW);}
void StopM2() {digitalWrite(M2Pls,LOW);digitalWrite(M2Min,LOW);}
void StopM3() {digitalWrite(M3Pls,LOW);digitalWrite(M3Min,LOW);}
void StopM4() {digitalWrite(M4Pls,LOW);digitalWrite(M4Min,LOW);}
void StopM5() {digitalWrite(M5Pls,LOW);digitalWrite(M5Min,LOW);}
void StopM6() {digitalWrite(M6Pls,LOW);digitalWrite(M6Min,LOW);}
void StopAll(){digitalWrite(M1Pls,LOW);digitalWrite(M1Min,LOW);
digitalWrite(M2Pls,LOW);digitalWrite(M2Min,LOW);
digitalWrite(M3Pls,LOW);digitalWrite(M3Min,LOW);
digitalWrite(M4Pls,LOW);digitalWrite(M4Min,LOW);
digitalWrite(M5Pls,LOW);digitalWrite(M5Min,LOW);
digitalWrite(M6Pls,LOW);digitalWrite(M6Min,LOW);Serial.print("
StopM1,M2,M3,M4,M5,M6 ");}
void ZeroTurning(){M1Cw();M2Cw();M3Cw();M4Cw();delay(10000);StopAll(); }
void Test4Motors(){M1Cw();M2Cw();M3Cw();M4Cw();delay(1000);
M1Ccw();M2Ccw();M3Ccw();M4Ccw();delay(1000);}
Open Source Service Robot Advantages & Disadvantages
ME@HKBKCE 57 2014-15
CHAPTER – 7
MERITS DIMERITS
7.1 ADVANTAGES:
The advantages of the robot
1. Domestic worker: The robot can do some tasks, particularly domestic activities. (E.g.
transport things from one place to another, etc.)
2. Vigilance: The robot can act as a guard; detecting intruders, fires, water leakages, etc.
3. Control of domestic systems: The robot can act as a universal interface to control other
domestic devices (e.g. heating system, lights, etc.)
7.2 DISADVANTAGES:
The robot is light weight so it may break easily.
It cannot lift heavy objects.
It needs several sensors to do more tasks
The robot cannot do tasks independently
7.3APPLICATIONS:
Helping elderly at home
Helping patients in hospitals
Helping mentally retarded children
Helping handicapped people etc.
7.4 Precautions in use of the system:
1) Do not operate under wet conditions.
2) Possibility of electric shock if all the connections are not properly taped and insulated.
3) The system produces noise while it is being operated.
4) The system should not be subjected to heavy vibrations
5) Do not attempt to lift heavy objects
6) Operate the robot carefully while humans are moving around since it do not have sensors
to detect passing human and may collide with him
Open Source Service Robot Advantages & Disadvantages
ME@HKBKCE 57 2014-15
Open Source Service Robot flow chart
ME@HKBKCE 58 2014-15
CHAPTER – 8
8.1 CIRCUIT DIAGRAM
Fig 8.1: Circuit Diagram of system
Open Source Service Robot flow chart
ME@HKBKCE 59 2014-15
8.2 Flow chart:
Fig 8.2 flow chart for software development
Initialize all ports and peripherals
Switch off All motors
Configure switches as input, motor
ports as outputs
Display initial massage on
Liquid Crystal Display
Is forward
command
received
N
n
t
Set motors to
forward
Y
Check next command
Is backward
command
received
N
n
t
Set motors to
backward
Y
STOP ROBOT
Check next sensor
Any other
command
received
N
n
t
Y Command to
action
Open Source Service Robot flow chart
ME@HKBKCE 60 2014-15
8.3 Photographs of the System:
Fig 8.3 Service robot
Open Source Service Robot flow chart
ME@HKBKCE 61 2014-15
Fig 8.4 Gripper attached with the system
Open Source Service Robot flow chart
ME@HKBKCE 62 2014-15
Fig 8.5 Layout of system with Pc
Open Source Service Robot Results and conclusion
ME@HKBKCE 63 2014-15
CHAPTER – 9
RESULTS AND DISCUSSION
Test1: lift object from floor.
Test2: lift object from the table
9.1 COST ESTIMATION:
SL.No Item Qty Rate Amount
MOTORS AND ACTUATORS
1 DC motors with heavy gear ratio 7 500 3500
ELECTRONICS
1 Microcontroller 3 200 600
2 Printed circuit board design and processing 1 500 500
3 Micro controller and interfacing components 1 1000 1000
4 Resistors 20 2.5 50
5 Presets 2 20 40
6 Capacitors 10 20 200
7 5V regulator 1 50 50
8 12V regulator 1 50 50
9 Liquid crystal Display 1 300 300
10 Glue 1 200 200
11 Berg connectors male and female 1 100 100
12 Relimate connectors 1 50 50
13 Toggle switch 1 50 50
Open Source Service Robot Results and conclusion
ME@HKBKCE 64 2014-15
14 Tact switches 4 25 100
15 Electronics fabrication Expenses and testing - - 3000
PLATFORM
1 Particle board 1 100 100
2 Hard wood - - 1000
3 Aluminum fabrication charges 1 500 500
4 Nylon material for coupling - - 2000
5 Losses due to faulty material, unsuitable material and
replacement
- - 1000
WOOD, METAL , PLASTIC AND MISLANIOUS RAW MATERIAL
1 Screws, nuts and washers - - 300
2 Mechanical fabrication expenses - - 3000
3 Battery 12v sealed lead acid 1 1000 1000
4 Battery terminals and wiring 1 100 100
5 Initial battery charging 1 100 100
Total 18890
9.2 Service Robot life time:
Service robot life time is calculated based on critical components life time
Dc motors are rated at 10000 hours of operation beyond which commutator brushes need
to be replaced. Based on the following assumption the life time is approximately 4 years
8hours per day X 30 days per month X48 months= 11520 hours
Thread life time is 10,000 hours. It calculated based on following assumption. Threads
need to be replaced after every 10,000 hours of operation.
Open Source Service Robot Results and conclusion
ME@HKBKCE 65 2014-15
1) Material loading is 80% of the rated value. The rated load carrying for the gripper is
0.25kg
2) Material weight should be kept minimum
3) Iron scrap or material with sharp edges is not loaded.
Electronics circuit board has a life time of 10 years of continuous operation.
Based on the above we can conclude that the minimum life time for the entire system is 4
years.
9.3 Power consumption of each motor:
Power consumption of the robot directly depends on the load carried by it.
Typical power consumption is calculated at 80% of the rated load.
Formula: Voltage (V) X current (I) X hour
Power consumption for bucket conveyor per hour = 12V X 200 X 10^-3 X 1
=24mWh
Power consumption for Flat conveyor per hour = 12V X 200 X 10^-3 X 1
=24mWh
Power consumption of electronic board per hour = 12V X 100 X10^-3 X1
= 10mWh
Total power consumption of the system = (24+24+10)mWh
=58mWh
For a standard fully charged battery the system will run for 150 hours
Rated battery voltage = 7.2Ah
No of hours battery can supply power = Rated Ah/power consumption per hr
=7.2/(48 ^10^-3)
=150 hours
Open Source Service Robot Results and conclusion
ME@HKBKCE 66 2014-15
9.4 Results & Discussion:
The system presented above has been evaluated in our laboratory, including the living
room. The evaluation has included experiments on Voice Recognition and material
handling.
For evaluation of the fully integrated system, speech commands has been defined. The
robot receives the command in room from the speech interface. The robot moves
according to the given commands and picks the objects and deliver them to the user.
The ability and performance of the service robot mainly depends upon the following
parameters
1.Linear Displacement of the arm
2.Load carrying capacity of the robot base
3.Speed of the robot
4.Load on the gripper
9.4.1 Linear Displacement of the arm:
Length of Screw rod = 1000mm
Diameter of screw rod = 8mm
pitch of the screw thread(p) = Length/Number of threads
=10/8
=1.25mm
Angular speed(N) = 200 rpm
Linear displacement of coupled arm =N*p
=200*1.25
=250mm/min
9.4.2 Stress on Coupler:
Number of couplers used = 02
Total number of turns in a coupler = 06
Weight of the arm =mass*gravity
=0.75*9.81
Open Source Service Robot Results and conclusion
ME@HKBKCE 67 2014-15
= 7.35 N
Weight per turn = 0.613N
Area of each turn =11.775 mm2
Stress on the coupler = 0.052 MPa.
Open Source Service Robot Results and conclusion
ME@HKBKCE 68 2014-15
9.4.3 Speed of the Robot:
Radius of the Wheel = 30 Mm
Rotation of the Wheel = 2 r
=2*3.14*30
=188.4mm
For 1 Minute we have 100 Rotations
Speed of the Robot =18.84m/Min
9.4.4 Load on Motor Rotating the Gripper:
Approx. Weight Of The Gripper =0.6 Kg
Power of the Motor =Voltage*Current
=12*0.015
=0.6 Watts
Moment Required For Rotating the Arm=Force*Distance
=0.6*9.8*0.1
=0.588nm
We Know that
Power =Torque*Angular Velocity,
We Get The Required Maximum Rpm Of The Motor As 9.7 Rpm. But We Have
Incorporated A Motor Of 3.5rpm.
9.4.5 Gripper Load Analysis:
Case I:
We Know that
µ nf Fg = w
Weight of the object (w) = 100gms
coefficient of friction (µ) = 0.8
Open Source Service Robot Results and conclusion
ME@HKBKCE 69 2014-15
Number of fingers contacting = 02
0.8*2* Fg =100
Fg =100/(0.8*2)
=0.0625
case II :
When
w = 200gms
nf = 2
µ = 0.8
Fg = 200/(0.8*2)
= 1.25N
Open Source Service Robot Results and conclusion
ME@HKBKCE 70 2014-15
9.5 FUTURE SCOPE
In future design of our system, we wish to improve upon several areas.
1) Update the user interface so that it could be more users friendly, accessible and
understandable to end user.
2) Add Rs232 interface so that material movement and quantity is displayed on PC for
stock estimation and Power consumption etc.
3) A simplified uncluttered PCB is to be designed and circuit be enclosed in appropriate
metal enclosure for protection from harsh field environment.
4) Use Roborealm to provide vision for object tracking and obstacle avoidance.
Open Source Service Robot Results and conclusion
ME@HKBKCE 71 2014-15
9.6 CONCLUSION:
Service robots are very important area of research worldwide. Due to ageing population,
finding servants for everyone is very difficult. Servants are costly to maintain. They are
not available 24 hours. In their absence service robots can assist elderly and others as
well.
They can do several tasks like reminding them of medicines etc. hence we conclude that
our project is very useful to several people and it needs further improvements to make it
more suitable for deployment in real life.
Open Source Service Robot Results and conclusion
ME@HKBKCE 72 2014-15
Open Source Service Robot Bibliography
ME@HKBKCE 72 2014-15
BIBLIOGRAPHY
Provisional definition of Service Robots English, 27th of October 2012
http://www.ifr.org/industrial-robots/
http://inventors.about.com/od/robotart/ig/Robots-and-Robotics/Rollin-Justin-Robot.htm
http://techcrunch.com/2010/03/12/wheelie-toshibas-new-robot-is-cute-autonomous-and-
maybe-even-useful-video/
"Adam becomes first robot to make a scientific discovery after conducting its OWN
experiments". Dail Mail. 3 April 2009. Retrieved 31 January 2011.
"AUV Sentry". Woods Hole Oceanographic Institution. Retrieved 31 January 2011.
Machine design by RS khurmi and JK gupta published by Schand cost: 550

More Related Content

PDF
Final Year Project Report
PDF
Industrial training report
PDF
Hafriz Bin Samad Resume
PDF
PDF
training report
PDF
Whole Report (2)
DOCX
Training report on railway structure at tata aldesa
PDF
My internship report at esm
Final Year Project Report
Industrial training report
Hafriz Bin Samad Resume
training report
Whole Report (2)
Training report on railway structure at tata aldesa
My internship report at esm

What's hot (11)

PDF
DLW Electrical Engineering industrial training Report
PDF
DESIGN OF BUCKET ELEVATOR WITH AUTO BELT TENSIONER UNIT
DOCX
PRACTICUM REPORT ON Monitoring the Construction Process of Superstructure ...
PDF
Training report 2
PDF
most final report of industrial training for college
PPTX
Techno India Ramgarh
DOCX
7th sem project report revised
PDF
Syed ibrahim dilawer portfolio.
PDF
PROJECT 7TH SEM REPORT
PDF
Final training report PDF
PDF
Industrial report for civil engg. training
DLW Electrical Engineering industrial training Report
DESIGN OF BUCKET ELEVATOR WITH AUTO BELT TENSIONER UNIT
PRACTICUM REPORT ON Monitoring the Construction Process of Superstructure ...
Training report 2
most final report of industrial training for college
Techno India Ramgarh
7th sem project report revised
Syed ibrahim dilawer portfolio.
PROJECT 7TH SEM REPORT
Final training report PDF
Industrial report for civil engg. training
Ad

Viewers also liked (15)

PDF
FIANL REPORT
PDF
minor project report
PDF
Ata2508 Users Manual V1
PDF
WHO-FIC newsletter 2015-2
PPT
Robot and HR: the future is now
PDF
Concept of service robots
DOC
WIRELESS ROBOT
PDF
Bi-Directional Visitor Counter & Home Automation revised strictly to pattern ...
DOCX
30092013115728 agricultural-robotics
PDF
Road cleaning robot create the future design contest
PDF
MakeBlock 超萌機器人 mBot 簡介 - 探奇工作室
PDF
Scenario Design Process
PDF
Gsm based control system
DOCX
Fire Detector And Extinguisher Robot- Project Report
PDF
Touch screen home automation
FIANL REPORT
minor project report
Ata2508 Users Manual V1
WHO-FIC newsletter 2015-2
Robot and HR: the future is now
Concept of service robots
WIRELESS ROBOT
Bi-Directional Visitor Counter & Home Automation revised strictly to pattern ...
30092013115728 agricultural-robotics
Road cleaning robot create the future design contest
MakeBlock 超萌機器人 mBot 簡介 - 探奇工作室
Scenario Design Process
Gsm based control system
Fire Detector And Extinguisher Robot- Project Report
Touch screen home automation
Ad

Similar to Open_Source_Service Robot_Paper (20)

PDF
driverless Robot car controlled using GSM
PDF
online test system project report
PDF
Final_Semester_Project _Report
PDF
Report star topology using noc router
PDF
VOICE OPERATED ROBOT DOCUMENTATION
PDF
PDF
Project report on Adaptive Tuned Dynamic Vibration Absorber
DOCX
Muhammad Awais mechanical
DOCX
Pick and place Line following robot report
DOCX
Report on Pick and Place Line following Robot
DOCX
Start pages of report FOT TPM TRACKING
PDF
Pgfs index
PDF
renew the project
PPTX
INTERNSHIP.pptx industrial internshipsss
PDF
Effective Staircase Sliding Lift for Existing Building
PDF
Automatic power hacksaw
DOCX
Project Report for Automated Guided Vehicle
PDF
LekhrajMajor ProjectII.pdf
PDF
Final report
driverless Robot car controlled using GSM
online test system project report
Final_Semester_Project _Report
Report star topology using noc router
VOICE OPERATED ROBOT DOCUMENTATION
Project report on Adaptive Tuned Dynamic Vibration Absorber
Muhammad Awais mechanical
Pick and place Line following robot report
Report on Pick and Place Line following Robot
Start pages of report FOT TPM TRACKING
Pgfs index
renew the project
INTERNSHIP.pptx industrial internshipsss
Effective Staircase Sliding Lift for Existing Building
Automatic power hacksaw
Project Report for Automated Guided Vehicle
LekhrajMajor ProjectII.pdf
Final report

Recently uploaded (20)

PDF
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Construction Project Organization Group 2.pptx
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Artificial Intelligence
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPTX
Safety Seminar civil to be ensured for safe working.
PDF
PPT on Performance Review to get promotions
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
III.4.1.2_The_Space_Environment.p pdffdf
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
UNIT 4 Total Quality Management .pptx
DOCX
573137875-Attendance-Management-System-original
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Construction Project Organization Group 2.pptx
Foundation to blockchain - A guide to Blockchain Tech
Fundamentals of safety and accident prevention -final (1).pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Internet of Things (IOT) - A guide to understanding
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Embodied AI: Ushering in the Next Era of Intelligent Systems
Artificial Intelligence
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
R24 SURVEYING LAB MANUAL for civil enggi
Safety Seminar civil to be ensured for safe working.
PPT on Performance Review to get promotions
UNIT-1 - COAL BASED THERMAL POWER PLANTS
III.4.1.2_The_Space_Environment.p pdffdf
Automation-in-Manufacturing-Chapter-Introduction.pdf
OOP with Java - Java Introduction (Basics)
UNIT 4 Total Quality Management .pptx
573137875-Attendance-Management-System-original

Open_Source_Service Robot_Paper

  • 1. VISVESVARAYA TECHNOLOGICAL UNIVERSITY BELGAUM A PROJECT REPORT ON OPEN SOURCE SERVICE ROBOT Submitted in partial fulfillment of the requirements of the degree of BACHELOR OF ENGINEERING In MECHANICAL ENGINEERING For the academic year 2014-2015 By KADRI FUZAIL ANIL PAWAR (1HK10ME038) (1HK10ME009) JUNANI HANNAN ATIF NABEEL (1HK10ME036) (1HK09ME101) Under the guidance of Asso. Prof. K.S. ABDUL ALEEM (ME,MISTE) Prof , Dept. of ME H.K.B.K.C.E, Bangalore DEPARTMENT OF MECHANICAL ENGINEERING H.K.B.K COLLEGE OF ENGINEERING S.NO.22/1, NAGAWARA, BANGALORE -560045
  • 2. H.K.B.K COLLEGE OF ENGINEERING S.No.22/1, Nagawara, Bangalore -560045 Department of Mechanical Engineering Certificate Certified that the project work entitled ‘Open Source Service Robot’ is a bonafide work carried out by Kadri Fuzail, Junani Hannan, Anil Pawar, Atif Nabeel in partial fulfillment for the award of the degree of Bachelor of Engineering in Mechanical Engineering of the Visvesvaraya Technological University, Belgaum during the year 2015. It is certified that all corrections/suggestions indicated for the Internal Assessment have been incorporated in the report deposited in the departmental library. The project report has been approved as it satisfies the academic requirements in respect of project work prescribed for Bachelor of Engineering Degree. Signature of the Guide Signature of the HOD Signature of the Principal Kadri Fuzail (1HK10ME038) Junani Hannan (1HK10ME036) Anil Pawar (1HK10ME009) Atif Nabeel (1HK09ME101) External Viva Name of the Examiners Signature with date 1. 2.
  • 3. ACKNOWLEDGEMENT We are grateful to the Chairman, Mr. C. M. Ibrahim, for having provided us an opportunity to emerge as responsible citizens with Professional Engineering Skills and moral ethics. We are thankful to our beloved Administrator, Mr. Abdul Hameed S. A, who with single- minded devotion and missionary zeal always motivated us to reach greater heights. We are grateful to our Director, Mr. C. M. Faiz Mohammed, for having provided us with excellent facilities in the college during our course. We are indebted to our Principal, Dr. T. C Manjunath, for facilitating a congenial academic environment in the College. We are grateful to our HOD, Dr. Muzzamil Ahmed, for his kind support, guidance and motivation during the B.E Degree Course and especially during the Course of our Project Work. We thank our Guide Mr. K.S. Abdul Aleem, for his valuable guidance, Suggestions and Encouragement throughout our Project Work. We thank our parents, for there valuable support, Suggestions and Encouragement throughout our Project Work. We also thank Prof Md.Irfan and all the staff members of the Department of Mechanical Engineering and all those who have directly or indirectly helped us with their valuable suggestions in the successful completion of this Project. Kadri Fuzail (1HK10ME038) Junani Hannan (1HK10ME036) Anil Pawar (1HK10ME009) Atif Nabeel (1HK09ME101)
  • 5. 1 TABLE OF CONTENTS Title ----------------------------------------------------------------------------i Approval ---------------------------------------------------------------------ii Acknowledgement----------------------------------------------------------iii Abstract----------------------------------------------------------------------iv Index---------------------------------------------------------------------------v Chapter-1-------------------------------------------------------------------1-2 Introduction -----------------------------------------------------------------4 Chapter -2-----------------------------------------------------------------3-13 2.1 Author------------------------------------------------------------------3 2.2 Service Robot---------------------------------------------------------4 2.3 Gears-------------------------------------------------------------------5 2.4 Pulley-------------------------------------------------------------------6 2.5 Linear Actuator------------------------------------------------------7 2.6 Gripper----------------------------------------------------------------11
  • 6. 2 2.7 Current solutions and their limitations-------------------------12 2.8 Proposed solution ---------------------------------------------------13 Chapter-3 ---------------------------------------------------------------14-17 3.1 Mechanical Specifications -----------------------------------------14 3.2 Electrical Specifications--------------------------------------------14 3.3Block diagram ---------------------------------------------------15 3.4 Power Supply --------------------------------------------------------17 3.5Working of the project ---------------------------------------------17 Chapter-4----------------------------------------------------------------18-26 4.1 Bolted joints----------------------------------------------------------18 4.2 Screw Thread--------------------------------------------------------20 4.3 Ball Bearing----------------------------------------------------------21 4.4 Clamp-----------------------------------------------------------------23 4.5 Gripper---------------------------------------------------------------23
  • 7. 3 Chapter-5----------------------------------------------------------------27-44 5.1 Feasibility of Robot---------------------------------------------------27 5.2 First Stage---------------------------------------------------------------28 5.3 Second Stage------------------------------------------------------------33 5.4 Working ----------------------------------------------------------------40 5.5 Motor Specifications--------------------------------------------------41 5.6 Hc 05 Bluetooth Module---------------------------------------------43 Chapter-6 ---------------------------------------------------------------45-56 6.1 Software Program for Control Function-------------------------45 6.2 Software Program for Voice Control-----------------------------50 6.3 Software Program for Motor Driver------------------------------54 Chapter-7 -------------------------------------------------------------------57 7.1Advantages -------------------------------------------------------------57 7.2Applications-------------------------------------------------------------57 7.3Disadvantages-----------------------------------------------------------57
  • 8. 4 7.4Precautions-------------------------------------------------------------57 Chapter-8----------------------------------------------------------------58-62 8.1Circuit diagram--------------------------------------------------------58 8.2 Flow chart---------------------------------------------------------------59 8.3 Photographs of project ----------------------------------------------60 Chapter-9 ---------------------------------------------------------------63-71 9.1 Cost Estimation--------------------------------------------------------63 9.2 Service Robot Lifetime-----------------------------------------------64 9.3Power consumption of each motor---------------------------------65 9.4 Results and discussions-----------------------------------------------66 9.5 Future scope------------------------------------------------------------70 9.6 Conclusion -------------------------------------------------------------71 Chapter-10------------------------------------------------------------------72 10.1 Bibliography----------------------------------------------------------72
  • 9. ABSTRACT Service robots assist human beings, typically by performing a job that is dirty, dull, dangerous or repetitive, including household chores. Typically human-machine interfaces are manual/remote/speech control based system. For millions of people on a daily basis, motor impairments diminish quality of life, reduce independence and increase healthcare costs. Assistive mobile robots that autonomously manipulate objects within everyday settings have the potential to improve the lives of the elderly, injured, and disabled by augmenting their abilities with those of a cooperative robot. People with motor impairments have consistently placed a high priority on retrieving objects from the floor and shelves, so a robot capable of performing pick and place operations within human environments would be valuable. We can use this to serve elderly who are unable to move or bed ridden it acts like a servant. Assistive mobile robots that autonomously manipulate objects within everyday settings have the potential to improve the lives of the elderly, injured, and disabled. The focus is on the subsystem that enables the robot to retrieve objects from and deliver objects to flat surfaces. Once provided with voice recognition capability the robot is guided to the location and then either grasps the nearest object or places an object. We will be developing a very simple functionally resembling model as part of our project. Power supply: This project uses either mains derived supply or battery depending on the requirements.
  • 10. Open Source Service Robot Introduction ME@HKBKCE 1 2014-15 CHAPTER-01 INTRODUCTION 1.1 Introduction Service robots assist human beings, typically by performing a job that is dirty, dull, distant, dangerous or repetitive, including house hold chores. They typically are autonomous and/or operated by a built-in control system, with manual over ride options. The term "service robot" is less well-defined. The International Federation of Robotics (IFR) has proposed a tentative definition, "A service robot is a robot which semi-or fully autonomously to perform services useful to the well-being of humans and equipment, excluding manufacturing operations. Service robotics is an area of research that is rapidly expanding. We strongly believe that we will have small robots roaming around in our houses in the near future. An excellent example of such a device is the autonomous Electrolux Tri-Lobote vacuum-cleaner that was revealed to the public during spring 1998.The application potential of robots is enormous, ranging from boring tasks like vacuuming, to advanced household tasks such as cleaning up after a dinner party. Recent progress, particularly in sensor-based intelligent robotics, has paved the way for such domestic robots. It is however characteristic that relatively few robots are in daily use anywhere and very few mobile robot systems are being mass produced. Examples of mass produced mobile systems include the Help-Mate Robotics platform for delivery of food and x-ray plates at hospitals, and the Robot Kent floor sweeper produced by the Kent Corporation. Both have only been produced in relatively small series (in the order of hundreds). The primary obstacles to the deployment of robots in domestic and commercial settings are flexibility and robustness. The robots must be flexible so that they are relatively easy to deploy under different conditions, and so that they can be used by non-experts. This requires a rich set of control functions, combined with an intuitive user interface and automatic task acquisition functions (like automatic learning). Robustness, in terms of sensory perception, is needed to allow for operation 365 days a year under different environmental conditions. To pursue research on robust, flexible, and easy-to-use robot systems for everyday environments, an intelligent service robot project has been initiated at the Centre for autonomous Systems at KTH. The long-term goal of the project is deployment of an intelligent robotic assistant in a regular home. The system must be able to perform
  • 11. Open Source Service Robot Introduction ME@HKBKCE 2 2014-15 fetch-and-carry operations for the human operator. To accommodate such tasks, it must be able to understand commands from a non-expert in robotics. This requires an intelligent dialogue with the user. Having received an instruction, the robot must be able to plan a sequence of actions and subsequently execute these actions to carry out the task. In a realistic scenario, the robot will encounter unexpected events such as closed doors and obstacles. To be perceived as a useful appliance, the robot must cope with such ambiguities in an ’intelligent’ manner. To perform fetch and carry missions, which include opening of doors, picking up and delivery of objects, etc., the robot must be equipped with actuators that allow for manipulation. A basic functionality for such a robotic system is the ability to perform robust navigation in a realistic in-door environment. In this paper we describe the results of this initial phase of the project. The robot is equipped with a speech and gesture interface for human computer interaction. Human- Robot Communication A service robot working in a house or office environment will need a user-friendly, safe, simple-to-use and simple-to-learn human-robot interface (HRI). The most important reason is that the robot is going to work together with non- experts as opposed to most industrial robots of today. Possible ways of communicating with the robot include keyboards, touch-screens, joy-sticks, voice, and gesture commands. The preferred modes depend upon a combination of environment, user skill, task, and cost. In a noisy environment keyboard input is probably preferred over voice input, while in a situation where the operator needs to use his/her hands for other tasks, voice input is a better choice. However, for the environments and applications discussed within the intelligent service robot project, we are focusing our research efforts on a user interface combining both speech and gesture recognition. These modes of communication are natural for humans and complement each other well. An overview of the current system: The input is provided through a camera and a wireless microphone. The camera is connected to the gesture recognition module, which will search the images for gestures. We are using Hc05 Bluetooth module for speech recognition which is connected to the RS232 and recognizes commands via data sent through an android application via Bluetooth connection. In the future, the speech capabilities will be used in a more dialogue based communication with the end-user.
  • 12. Open Source Service Robot Literature Review ME@HKBKCE 3 2014-15 LITERATURE REVIEW 2.1 AUTHOR Jordan Pollack says “today, approximately 10 percent of the world’s population is over 60; by 2050 this proportion will have more than doubled” and “the greatest rate of increase is amongst the oldest old, people aged 85 and older.” [Pollack, 2004] She follows by adding that this group is therefore subject to both physical and cognitive impairments more than younger people. These facts have a profound impact on how the world will keep the elderly independent as long as possible from caregivers. Both physical and cognitive diminishing abilities address the body and the mental process of knowing, including aspects such as awareness, perception, reasoning, intuition and judgment. Assistive technology for the mobility impaired includes the wheelchair, lift aids and other devices, all of which have been around for centuries. However, the patient typically or eventually requires assistance to use the device - whether to: push the wheelchair, to lift themselves from the bed to a chair or to the toilet, or guide the patient through cluttered areas. With fewer caregivers and more elderly in the near future, there is a need for improving these devices to provide them independent assistance. As further background, the authors have included sections on wheelchairs and lift devices. Gripper is an end-of-arm device often used in material handling applications. Generally, the gripper is a device that is capable of generating enough grip force to retain an object while the robot performs a task on the part such a pick-and-place operation. Any gripper must be capable of performing the task of opening and closing with a prescribed amount of force over many years of daily operation the most commonly used grippers are finger grippers. These grippers generally have two opposing fingers or three fingers like a lathe chuck. The fingers are driven together such that once gripped any part is centered in the gripper. This gives some flexibility to the location of components at the pick-up point. Two finger grippers can be further split into parallel motion or angular motion fingers. Angular jaw gripper open and close around a central pivot point, moving in an arcing motion. An angular gripper is used when there is a need to get the tooling out of the way. The advantage for an angular gripper falls on its simple design and only requires one power source for activation. However, it has several disadvantages including jaws that are not parallel and a changing centre of grasp while closing. Meanwhile, parallel jaw gripper moves in a motion parallel in relation to the gripper’s body.
  • 13. Open Source Service Robot Literature Review ME@HKBKCE 4 2014-15 A parallel gripper is used for pulling a part down inside a machine because the fingers fit into small areas better. An advantage of parallel type gripper is that the centre of the jaws does not move perpendicular to the axis of motion. Thus, once the gripper is centered on the object, it remains centered while the jaws close. Space constraints might lead to the use of parallel over angular. For some tasks however where flexible or fragile objects are being handled, the use of either vacuum or magnetic grippers is preferable. With these, the surface of the gripper is placed in contact with the object and either a magnetic field or a vacuum is applied to hold them in contact. 2.2 Service robots: Service robots assist human beings, typically by performing a job that is dirty, dull, distant, dangerous or repetitive, including household chores. They typically are autonomous and/or operated by a built-in control system, with manual override options. The term "service robot" is less well-defined. The International Federation of Robotics (IFR) has proposed a tentative definition, "A service robot is a robot which operates semi- or fully autonomously to perform services useful to the well-being of humans and equipment, excluding manufacturing operations 2.2.1 Restaurant and bar Many bars are starting to become automated through the use of robots, even producing complex cocktails. There are also robots used for waiting. 2.2.2 Domestic The roomba vacuum cleaner is one of the most popular domestic service robots. Domestic robots perform tasks that humans regularly perform around their homes such as cleaning floors, mowing the lawn and pool maintenance. They can also provide assistance to the disabled and infirm as well as becoming robot butlers.
  • 14. Open Source Service Robot Literature Review ME@HKBKCE 5 2014-15 2.2.3 Scientific: Robotic systems perform many functions such as repetitive tasks performed in research. These range from the multiple repetitive tasks made by gene samplers and sequencers, to systems which can almost replace the scientist in designing and running experiments, analyzing data and even forming hypotheses. The ADAM at the University of Aberystwyth in Wales can "[make] logical assumptions based on information programmed into it about yeast metabolism and the way proteins and genes work in other species. It then set about proving that its predictions were correct. The possible applications of robots to assist in human chores are widespread. At present there are a number of main categories that these robots fall into. 2.3 Gears: A gear is a rotating machine part having cut teeth, or cogs, which mesh with another toothed part in order to transmit torque. Two or more gears working in tandem are called a transmission and can produce a mechanical advantage through a gear ratio and thus may be considered a simple machine. Geared devices can change the speed, torque, and direction of a power source. When two gears of unequal number of teeth are combined, a mechanical advantage is produced, with both the rotational speeds and the torques of the two gears differing in a simple relationship. Types of gears: 1. An external gear is one with the teeth formed on the outer surface of a cylinder or cone. 2. Spur gears or straight-cut gears are the simplest type of gear. 3. Helical or "dry fixed" gears offer a refinement over spur gears. 4. Skew gears 5. Double helical gears overcome the problem of axial thrust presented by "single" helical gears, by having two sets of teeth that are set in a V shape. 6. A bevel gear is shaped like a right circular cone with most of its tip cut off. 7. Spiral bevel gear the teeth of a bevel gear may be straight-cut as with spur gears
  • 15. Open Source Service Robot Literature Review ME@HKBKCE 6 2014-15 Fig 2.1: Spur Gear Advantages of gears: An advantage of gears is that the teeth of a gear prevent slipping. 2.4 Pulleys: A pulley is a wheel on an axle that is designed to support movement of a cable or belt along its circumference. Pulleys are used in a variety of ways to lift loads, apply forces, and to transmit power. A pulley is also called a sheave or drums and may have a groove between two flanges around its circumference. The drive element of a pulley system can be a rope, cable, belt, or chain that runs over the pulley inside the groove. 2.4.1 Types of pulleys: These are different types of pulley systems  Fixed: A fixed pulley has an axle mounted in bearings attached to a supporting structure. A fixed pulley changes the direction of the force on a rope or belt that moves along its circumference. Mechanical advantage is gained by combining a fixed pulley with a movable pulley or another fixed pulley of a different diameter.  Movable: A movable pulley has an axle in a movable block. A single movable pulley is supported by two parts of the same rope and has a mechanical advantage of two.  Compound: A combination of fixed and movable pulleys forms a block and tackle. A block and tackle can have several pulleys mounted on the fixed and moving axles, further increasing the mechanical advantage.
  • 16. Open Source Service Robot Literature Review ME@HKBKCE 7 2014-15 2.5LinearActuator: A linear actuator is an actuator that creates motion in a straight line, in contrast to the circular motion of a conventional electric motor. Linear actuators are used in machine tools and industrial machinery, in computer peripherals such as disk drives and printers, in valves and dampers, and in many other places where linear motion is required. Hydraulic or pneumatic cylinders inherently produce linear motion. Many other mechanisms are used to generate linear motion from a rotating motor. Fig 2.2(a): Linear Actuator
  • 17. Open Source Service Robot Literature Review ME@HKBKCE 8 2014-15 Fig2.2(b): linear actuator 2.5.1 Mechanical actuators Fig2.3: Roller screw actuation with traveling screw (rotating nut). Mechanical linear actuators typically operate by conversion of rotary motion into linear motion. Conversion is commonly made via a few simple types of mechanism:
  • 18. Open Source Service Robot Literature Review ME@HKBKCE 9 2014-15  Screw: lead screw, screw jack, ball screw and roller screw actuators all operate on the principle of the simple machine known as the screw. By rotating the actuator's nut, the screw shaft moves in a line.  Wheel and axle: Hoist, winch, rack and pinion, chain drive, belt drive, rigid chain and rigid belt actuators operate on the principle of the wheel and axle. A rotating wheel moves a cable, rack, chain or belt to produce linear motion.  Cam: Cam actuators function on a principle similar to that of the wedge, but provide relatively limited travel. As a wheel-like cam rotates, its eccentric shape provides thrust at the base of a shaft. Some mechanical linear actuators only pull, such as hoists, chain drive and belt drives. Others only push (such as a cam actuator). Pneumatic and hydraulic cylinders, or lead screws can be designed to generate force in both directions. Mechanical actuators typically convert rotary motion of a control knob or handle into linear displacement via screws and/or gears to which the knob or handle is attached. A jackscrew or car jack is a familiar mechanical actuator. Another family of actuators are based on the segmented spindle. Rotation of the jack handle is converted mechanically into the linear motion of the jack head. Mechanical actuators are also frequently used in the field of lasers and optics to manipulate the position of linear stages, rotary stages, mirror mounts, goniometers and other positioning instruments. For accurate and repeatable positioning, index marks may be used on control knobs. Some actuators include an encoder and digital position readout. These are similar to the adjustment knobs used on micrometers except their purpose is position adjustment rather than position measurement.
  • 19. Open Source Service Robot Literature Review ME@HKBKCE 10 2014-15 2.5.2 Hydraulic actuators Hydraulic actuators or hydraulic cylinders typically involve a hollow cylinder having a piston inserted in it. An unbalanced pressure applied to the piston generates force that can move an external object. Since liquids are nearly incompressible, a hydraulic cylinder can provide controlled precise linear displacement of the piston. The displacement is only along the axis of the piston. A familiar example of a manually operated hydraulic actuator is a hydraulic carjack. Typically though, the term "hydraulic actuator" refers to a device controlled by a hydraulic pump. 2.5.3 Pneumatic actuators Pneumatic actuators, or pneumatic cylinders, are similar to hydraulic actuators except they use compressed gas to generate force instead of a liquid. They work similarly to a piston in which air is pumped inside a chamber and pushed out of the other side of the chamber. Air actuators are not necessarily used for heavy duty machinery and instances where large amounts of weight are present. One of the reasons pneumatic linear actuators are preferred to other types is the fact that the power source is simply an air compressor. Because air is the input source, pneumatic actuators are able to be used in many places of mechanical activity. The downside is, most air compressors are large, bulky, and loud. They are hard to transport to other areas once installed. Pneumatic linear actuators are likely to leak and this makes them less efficient than mechanical linear actuators. 2.5.4 Piezoelectric actuators The piezoelectric effect is a property of certain materials in which application of a voltage to the material causes it to expand. Very high voltages correspond to only tiny expansions. As a result, piezoelectric actuators can achieve extremely fine positioning resolution, but also have a very short range of motion. In addition, piezoelectric materials exhibit hysteresis which makes it difficult to control their expansion in a repeatable manner. These are widely used in cameras for zooming purpose. 2.5.5 Electro-mechanical actuators Electro-mechanical actuators are similar to mechanical actuators except that the control knob or handle is replaced with an electric motor. Rotary motion of the motor is converted to linear displacement. There are many designs of modern linear actuators and every company that manufactures them tends to have a proprietary method. The following is a generalized description of a very simple electro-mechanical linear actuator.
  • 20. Open Source Service Robot Literature Review ME@HKBKCE 11 2014-15 2.6GRIPPER: In robotics, an end effector is the device at the end of a robotic arm, designed to interact with the environment. The exact nature of this device depends on the application of the robot. In the strict definition, which originates from serial robotic manipulators, the end effector means the last link (or end) of the robot. At this endpoint the tools are attached. In a wider sense, an end effector can be seen as the part of a robot that interacts with the work environment. This does not refer to the wheels of a mobile robot or the feet of a humanoid robot which are also not end effectors—they are part of the robot's mobility. End effectors may consist of a gripper or a tool. The gripper can be of two, three or even five fingers. The end effectors that can be used as tools serve various purposes, such as spot welding in an assembly, spray painting where uniformity of painting is necessary, and for other purposes where the working conditions are dangerous for human beings. Surgical robots have end effectors that are specifically manufactured for the purpose. Generally, the gripping mechanism is done by the grippers or mechanical fingers. Generally only two-finger grippers are used for industrial robots as they tend to be built for specific tasks and can therefore be less complex. The fingers are also replaceable whether or not the gripper itself is replaced. There are two mechanisms of gripping the object in between the fingers (for the sake of simplicity, the following explanations consider only two finger grippers). The end effector of an assembly line robot would typically be a type of welding head, or a sort of paint spray gun. A surgical robot’s end effector could be a scalpel or others tools used in surgery. Other possible end effectors are machine tools, like a drill or milling cutters. The end effector on the space shuttles robotic arm uses a pattern of wires which close like the aperture of a camera around a handle or other grasping point. When referring to robotic pretension there are four general categories of robot grippers, these are:
  • 21. Open Source Service Robot Literature Review ME@HKBKCE 12 2014-15 1. Impactive – jaws or claws which physically grasp by direct impact upon the object. 2. Ingressive – pins, needles or hackles which physically penetrate the surface of the object (used in textile, carbon and glass fiber handling). 3. Astrictive – suction forces applied to the objects surface (whether by vacuum, magneto- or electro-adhesion). 4. Conjugative – requiring direct contact for adhesion to take place (such as glue, surface tension or freezing). Fig 2.4: A highly sophisticated attempt at reproducing the human end effector 2.7 Current Solutions & Their Limitations: The service robots which are currently used have high cost and it can’t be affordable by everyone. We have designed a linear actuator using screw thread mechanism. The transmission is through direct motor drive without using any pulley or belt mechanism. A gripper with open close mechanism is fabricated that is capable of lifting a water bottle from 1) Floor. 2) Shelf or elevated surface. The above mechanism is tested on planar surface.
  • 22. Open Source Service Robot Literature Review ME@HKBKCE 13 2014-15 2.8 Proposed Solution: We propose to design and develop 1) A service robot with 4 DOF arm that is capable of lifting objects from floor and the shelf. 2) The manipulator is mounted on mobile platform so as to increase its service area. 3) The robot is equipped with microcontroller to provide control system to the robot. 4) It has motor drivers to drive DC geared motors using high power 12V supply, although the control signals are in the arrangement of 0-5v DC signals.
  • 23. Open Source Service Robot System Requirement ME@HKBKCE 14 2014-15 CHAPTER – 3 SYSTEM REQUIRMENT 3.1MECHANICAL SPECIFICATIONS: Motor/Actuator : Linear Actuator, Rotational joints Body construction material : Wood/Aluminium/MS/Plastic etc. Dimensions : 400 X410 X 1000 mm Weight : Approx 8kg including battery and load Transmission : Gear/Screw thread/String Payload : Approx 150-500 grams 3.2ELECTRICAL SPECIFICATIONS: Domain : Mechatronics Systems Design IDE : AVR studio 4 (Integrated Development Environment) Programmer/Boot loader : Stk500 Microcontroller : 8 bit Sensors : Switch sensor etc Power Supply : 230VAC Display : LED and Audio Crystal : 11.0592MHz Reset : RC based integrator circuit. Printed circuit board : General Purpose Microcontroller Development Board Applications : Helping elderly at home Helping patients in hospitals Helping mentally retarded children
  • 24. Open Source Service Robot System Requirement ME@HKBKCE 15 2014-15 3.3BLOCK DIAGRAM 230V AC Supply Step Down Transformer Bridge rectifier Filter Regulator Mains/battery Power Indicator Block Diagram Power supply Bridge rectifier +5V Gnd +12V 16 X 2 Character LCD DISPLAY Micro Controller ATMEGA 16 Micro Controller Atmega16 Crystal Oscillator Block diagram of Micro Controller and sensors Reset circuit Laptop Camera Motor Driver Motor1 Motor2 Motor Driver Motor3 Motor4 Motor Driver Motor5 RS232 Microphone
  • 25. Open Source Service Robot System Requirement ME@HKBKCE 16 2014-15 3.3.1Block diagram explanation: Microcontroller is the brain of the entire project. ATMEGA16 microcontroller is used in our project. It controls all the peripherals. The system basically consists of Microcontroller and various peripherals connected to it. The ATMEGA Microcontroller block does the control functions based on the sensory inputs received by it. It has switches and microphone, rs232 as input and motor driver as the output. 3.3.2Reset Circuit: A RC circuit is connected to pin-9 of Microcontroller to provide power-on Reset function. A tact switch is connected to the same pin for manual reset in case the program hangs. A tact switch is a push to on Switch, when the switch is pressed pin-9 of microcontroller is shorted to ground. This is known as manual reset its function is to reset the circuit and variables to defaults. Resistor capacitor provides automatic power on reset. A crystal oscillator provides clock to the microcontroller Oscillator circuit. The most common type quartz crystal, so oscillator circuits incorporating them became known as crystal oscillators. Quartz crystals are also found inside test and measurement equipment, such as counters, signal generators, and oscilloscopes. There are eight switches connected at port-0 Switch 1: Forward Switch 2: Backward Switch 3: Right Switch 4: Left Switch 5: Up Switch 6: Down Switch 7: Open Switch 8: Close L293 motor driver is used to provide motion control. It can drive 2 individual motors of 200ma each. It has thermal shutdown and back EMF suppression.
  • 26. Open Source Service Robot System Requirement ME@HKBKCE 17 2014-15 3.4POWER SUPPLY: This project uses regulated 5v to power the microcontroller circuit and also has 12v power supply for motor supply and relay driving. The circuit derives it supply from battery. 3.5WORKING OF THE PROJECT: When power is applied to the circuit for the first time, all the motors are switched off and sensors/switches inputs are read. If any switch is pressed the program enters into menu routine. It accepts user input like forward, backward, right, and left and many more commands using keyboard connected on the circuit. It is interfaced with speech commands for speech recognition. We are using hc05 Bluetooth module for speech recognition.The Module is connected to the Arduino Uno (RS232). Example: to move the robot forward: We speak “forward” speech command the command is sent to the microcontroller via an android application which makes the microcontroller to sense the input. The recognized work activates a file that transmits character ‘f’ to the serial communication port of the microcontroller. These are transmitted to the microcontroller board using RS232 protocol. It moves the robot motors in the forward direction. Similarly all other commands are interpreted by the microcontroller and appropriate actions are performed.
  • 27. Open Source Service Robot Components ME@HKBKCE 18 2014-15 CHAPTER- 4 COMPONENTS 4.1 BOLTED JOINT: Bolted joints are one of the most common elements in construction and machine design. They consist of fasteners that capture and join other parts, and are secured with the mating of screw threads. There are two main types of bolted joint designs: tension joints and shear joints. In the tension joint, the bolt and clamped components of the joint are designed to transfer the external tension load through the joint by way of the clamped components through the design of a proper balance of joint and bolt stiffness. The joint should be designed such that the clamp load is never overcome by the external tension forces acting to separate the joint (and therefore the joined parts see no relative motion). The second type of bolted joint transfers the applied load in shear on the bolt shank and relies on the shear strength of the bolt. Tension loads on such a joint are only incidental. A preload is still applied but is not as critical as in the case where loads are transmitted through the joint in tension. Other such shear joints do not employ a preload on the bolt as they allow rotation of the joint about the bolt, but use other methods of maintaining bolt/joint integrity. This may include clevis linkages, joints that can move, and joints that rely on a locking mechanism (like lock washers, thread adhesives, and lock nuts). 4.1.2Proper joint design and bolt preload provides useful properties:  For cyclic tension loads, the fastener is not subjected to the full amplitude of the load; as a result, the fastener's fatigue life is increased or—if the material exhibits an endurance limit its life extends indefinitely.  As long as the external tension loads on a joint do not exceed the clamp load, the fastener is not subjected to motion that would loosen it, obviating the need for locking mechanisms. (Questionable under Vibration Inputs.)  For the shear joint, a proper clamping force on the joint components prevents relative motion of those components and the fretting wear of those that would result in fatigue cracks. In both the tension and shear joint design cases, some level of tension preload in the bolt and resulting compression preload in the clamped components is essential to the joint
  • 28. Open Source Service Robot Components ME@HKBKCE 19 2014-15 integrity. The preload target can be achieved by applying a measured torque to the bolt, measuring bolt extension, heating to expand the bolt then turning the nut down, torquing the bolt to the yield point, testing ultrasonically or by a certain number of degrees of relative rotation of the threaded components. Each method has a range of uncertainties associated with it, some of which are very substantial. . Fig 4.1: Preload redirects Fig 4.2: Bolted joint in vertical Screw joint Fig 4.3: screw joint
  • 29. Open Source Service Robot Components ME@HKBKCE 20 2014-15 4.2 Screw thread: Fig 4.4: Screw Thread Internal and external threads illustrated using a common nut and bolt. The screw and nut pair can be used to convert torque into linear force. As the screw (or bolt) is rotated, the screw moves along its axis through the fixed nut, or the non-rotating nut moves along the lead-screw. Fig 4.5 Screw thread under operation Screw thread, used to convert torque into the linear force in the flood gate. The operator rotates the two vertical bevel gears that have threaded holes, thereby raising or lowering the two long vertical threaded shafts which are not free to rotate (via bevel gear). A screw thread, often shortened to thread, is a helical structure used to convert between rotational and linear movement and force. A screw thread is a ridge wrapped around a cylinder or cone in the form of a helix, with the former being called a straight thread and the latter called a tapered thread. A screw thread is the essential feature of the screw as a simple machine and also as a fastener. More screw threads are produced each year than any other machine element.
  • 30. Open Source Service Robot Components ME@HKBKCE 21 2014-15 The mechanical advantage of a screw thread depends on its lead, which is the linear distance the screw travels in one revolution. In most applications, the lead of a screw thread is chosen so that friction is sufficient to prevent linear motion being converted to rotary that is so the screw does not slip even when linear force is applied so long as no external rotational force is present. This characteristic is essential to the vast majority of its uses. The tightening of a fastener's screw thread is comparable to driving a wedge into a gap until it sticks fast through friction and slight plastic deformation. 4.3 Ball Bearing: A ball bearing is a type of rolling-element bearing that uses balls to maintain the separation between the bearing races. The purpose of bearing is to reduce rotational force and support radial and axial loads. It achieves this by using at least two races to contain the balls and transmit the loads through the balls. In most applications, one race is stationary and the other is attached to the rotating assembly (e.g., a hub or shaft). As one of the bearing races rotates it causes the balls to rotate as well. Because the balls are rolling they have a much lower coefficient of friction than if two flat surfaces were sliding against each other. Ball bearings tend to have lower load capacity for their size than other kinds of rolling- element bearings due to the smaller contact area between the balls and races. However, they can tolerate some misalignment of the inner and outer races. Fig 4.6 Ball bearing
  • 31. Open Source Service Robot Components ME@HKBKCE 22 2014-15 4.3.1Working principle for a ball bearing : Fig 4.7 A 4 point angular contact ball bearing Fig 4.8 A ball bearing with a semi transparent cage Fig 4.9 Bearing under action
  • 32. Open Source Service Robot Components ME@HKBKCE 23 2014-15 4.4 Clamp: A clamp is a fastening device to hold or secure objects tightly together to prevent movement or separation through the application of inward pressure. In the United Kingdom and Australia, the term cramp is often used instead when the tool is for temporary use for positioning components during construction and woodworking; thus a G cramp or a sash cramp but a wheel clamp or a surgical clamp. There are many types of clamps available for many different purposes. Some are temporary, as used to position components while fixing them together, others are intended to be permanent. In the field of animal husbandry, using a clamp to attach an animal to a stationary object is known as "rounded clamping." A physical clamp of this type is also used to refer to an obscure investment banking term; notably "fund clamps." Anything that performs the action of clamping may be called a clamp, so this gives rise to a wide variety of terms across many fields. Fig 4.10 Types of Clamps 4.5 Grippers: The end of the manipulator is the part the user or robot uses to affect something in the environment. For this reason it is commonly called an end-effector, but it is also called a gripper since that is a very common task for it to perform when mounted on a robot. It is often used to pick up dangerous or suspicious items for the robot to carry, some can turn doorknobs, and others are designed to carry only very specific things like beer cans. Closing too tightly on an object and crushing it is a major problem with autonomous grippers. There must be some way to tell how hard is enough to hold the object without
  • 33. Open Source Service Robot Components ME@HKBKCE 24 2014-15 dropping it or crushing it. Even for semi-autonomous robots where a human controls the manipulator, using the gripper effectively is often difficult. For these reasons, gripper design requires as much knowledge as possible of the range of items the gripper will be expected to handle. Their mass, size, shape, and strength, etc. all must be taken into account. Some objects require grippers that have many jaws, but in most cases, grippers have only two jaws and those will be shown here. There are several basic types of gripper geometries. The most basic type has two simple jaws geared together so that turning the base of one turns the other. This pulls the two jaws together. The jaws can be moved through a linear actuator or can be directly mounted on a motor gearbox’s output shaft, or driven through a right angle drive which places the drive motor further out of the way of the gripper. This and similar designs have the drawback that the jaws are always at an angle to each other which tends to push the thing being grabbed out of the jaws. Fig 4.11 Parallel Gripper 4.5.1 PASSIVE PARALLEL JAW USING CROSS TIE: Twin four-bar linkages are the key components in this long mechanism that can grip with a constant weight-to-grip force ratio any object that fits within its grip range. The long mechanism relies on a cross-tie between the two sets of linkages to produce equal and opposite linkage movement. The vertical links have extensions with grip pads mounted at their ends, while the horizontal links are so proportioned that their pads move in an inclined straight-line path. The weight of the load being lifted, therefore, wedges the pads against the load with a force that is proportional to the object’s weight and independent of its size. Some robots are designed to do one specific task, to carry one specific object, or even to latch onto some specific thing. Installing a dedicated knob or ball end on the object simplifies the gripping task using this mating one-way connector. In many cases, a joint like this can be used independently of any manipulator.
  • 34. Open Source Service Robot Components ME@HKBKCE 25 2014-15 Fig 4.12(a) Parallel Servo Gripper: Fig 4.12(b) Parallel Servo Gripper: A mechanical gripper is used as end effectors in a robot for grasping the objects with its mechanically operated fingers. In industries, two fingers are enough for holding purposes. More than three fingers can also be used based on the application. As most of the fingers are of replaceable type, it can be easily removed and replaced. A robot requires either hydraulic, electric, or pneumatic drive system to create the input power. The power produced is sent to the gripper for making the fingers react. It also allows the fingers to perform open and close actions. Most importantly, a sufficient force must be given to hold the object. In a mechanical gripper, the holding of an object can be done by two different methods such as:  Using the finger pads as like the shape of the work part.
  • 35. Open Source Service Robot Components ME@HKBKCE 26 2014-15  Using soft material finger pads. In the first method, the contact surfaces of the fingers are designed according to the work part for achieving the estimated shape. It will help the fingers to hold the work part for some extent. In the second method, the fingers must be capable of supplying sufficient force to hold the work part. To avoid scratches on the work part, soft type pads are fabricated on the fingers. As a result, the contact surface of the finger and co – efficient of friction are improved. This method is very simple and as well as less expensive. It may cause slippage if the force applied against the work part is in the parallel direction. The slippage can be avoided by designing the gripper based on the force exerted. µ nf Fg = w ………………… 1 µ = co – efficient of friction between the work part and fingers nf = no. of fingers contacting Fg = Force of the gripper w = weight of the grasped object The equation 1 must be changed if the weight of a work part is more than the force applied to cause the slippage. µ nf Fg = w g …..……………. 2 g = g factor During rapid grasping operation, the work part will get twice the weight. To get rid out of it, the modified equation 1 is put forward by Engel Berger. The g factor in the equation 2 is used to calculate the acceleration and gravity. The values of g factor for several operations are given below:  g = 1 – acceleration supplied in the opposite direction.  g = 2 – acceleration supplied in the horizontal direction.  g = 3 – acceleration and gravity supplied in the same direction.
  • 36. Open Source Service Robot Feasibility of Robot ME@HKBKCE 27 2014-15 CHAPTER-5 FEASIBILITY OF ROBOT The whole Feasibility of the robot is divided into three different stages. They are 1. Feasibility of the robot structure and body. 2. Feasibility of Robot Gripper. 3. Feasibility of base part of the robot arm and other equipment that are to be placed on the base. 5.1 Feasibility of Robot Structure and Body: 5.1.1 Raw material used:  Wooden sheet (400x350 mm)  Screw threaded rod one piece (100 mm in length and 8 mm diameter)  Aluminum angular two pieces ( each 40 mm in length)  Bolts having 8mm internal diameter  Rubber tires(4)  Motors MOTOR RPM NO. PURPOSE 100 4 ROBOT MOVEMENT 3.5 1 GRIPPER ROTATION 200 1 SLIDING 30 1 GRIPPER MOVEMENT 5.1.2 Tools used:  Wooden saw  Hack saw  Bench vice  Hand drill  Drill bits of 8mm and 3mm  Different types of files according to requirement.
  • 37. Open Source Service Robot Feasibility of Robot ME@HKBKCE 28 2014-15 5.1.3 Feasibility Procedure: 5.1.3.1 Step by step procedure our project: The project has divided into three stages:  First stage: Designing of robot structure. I.e., mechanical parts, and mechanism.  Second stage: Testing of robot structure and robot movements and giving desired codes to write program.  Third stage: Designing of electronic circuit board, and writing program in to micro controller. 5.2 First stage: 5.2.1 Robot Chassis:  Marking 400x350mm on wooden sheet and cutting it by hacksaw.  Finishing its edges by smooth file.  Now cutting of Aluminium L-shape piece of dimensions 40mm.  Marking centre on one side of Aluminium piece and marking 3mm holes on other side to fix it to the base of the robot by means of screw and nut.  To fix motor, hole a 8mm drill in marked centre of Aluminium clamp.  Fix 100rpm motor (4 pieces, 4motors). Fig 5.1 Design of Chassis
  • 38. Open Source Service Robot Feasibility of Robot ME@HKBKCE 29 2014-15 5.2.2 Design of Linear Actuator (Torso):  The actuator consists of parts that include a bearing, rod, motor for actuation, a tube for connecting the rod and the shaft of the motor, plastic plate for mounting the arm which will guide it up and down and clamps on the plate to insert the rod for actuation  Bearing: A rectangular wooden block with the dimensions matching the width of the torso was cut using a hacksaw blade.  A bearing which was able to accommodate the rotation of the linear actuator rod was selected. A circular hole was drilled to insert the bearing. With the help of a bench vise the bearing was leveled into the hole. Fig 5.2 Design of Torso
  • 39. Open Source Service Robot Feasibility of Robot ME@HKBKCE 30 2014-15 5.2.3 Design of plate:  A plastic rectangular plate was cut using the blade cutter machine with dimensions 6x10.We filed the edges using a grinder machine and also a filing tool.  Clamps were made from thin aluminium sheets that support the rotating hollow screws where the rods rotate. Holes were drilled on the clamps as well as on the rectangular sheet in such a way that the sheet has tapered holes  Screws were inserted into the clamps that support the rod during its rotation and also to hold the end effector and arm in the further stage.  The plastic plate was found to be moving smoothly up and down the length of the torso without any contact areas that will obstruct its motion.  A rod having similar length as that of the torso was filed at the bottom end which helps it to be supported on the bearing.  A pipe was cut to match the distance between the motor shaft and the rotating rod in order to transmit the motion from the motor to the road that will actuate the torso.  Screws were drilled at the bottom of the torso in order to support it on the aluminium clamp that will hold the torso fit in place.  A dc motor is to be used to rotate the shaft on which the arm has to be mounted. The sides of the motor were machined enabling a smooth fit on the torso.  The motor was then tested and found to be in working condition.  A wooden plate was cut using a hacksaw blade to be able to clamp the motor on top of it. It was supported on the torso using a thin wooden plate.  The motor has to be aligned perfectly in order to enable the rotation of the shaft without any obstruction.  The motor is drilled into the block and the block is supported on the torso by drilling a screw through the wooden plate into the torso.
  • 40. Open Source Service Robot Feasibility of Robot ME@HKBKCE 31 2014-15 Fig 5.3 Design of Plastic plate 5.2.4 Designing of gripper: We decided to opt a simpler design of the arm and gripper so as to match the time constraints and minimize the cost of construction.  The arm and gripper are both fabricated using Aluminium plates that have been fixed on plastic plates.  The gripper has an arrangement of links to facilitate opening and closing of the fingers.  The arm has raising and lowering action that helps the gripper to reach objects in an inclined direction with the help of servo motors.
  • 41. Open Source Service Robot Feasibility of Robot ME@HKBKCE 32 2014-15  The arm and the gripper both are actuated using servo motors. Fig 5.4 Design of Arm Fig 5.5 Design of Gripper
  • 42. Open Source Service Robot Feasibility of Robot ME@HKBKCE 33 2014-15 5.3 Second stage: In second stage all the electronic components and testing of all mechanism manual by giving power from 12V battery.  Analysis the movements of robot and have to give desired command and have to give program for the code. And by giving the code the robot have motion according to program.  In this project total 20 commands are used for robot. The following table gives information regarding the command used and the action performed by robot Command Code Action by robot Forward f Robot moves forward for 500miliseconds. Backward b Robot moves backward for 500miliseconds. Left l Robot moves left for 500miliseconds. Right r Robot moves right for 500miliseconds. Raiser x Gripper rotates upwards. Lower y Gripper rotates downwards. Close c Gripper fingers comes closer to grasp. Open o Gripper fingers opens to leave the object.
  • 43. Open Source Service Robot Feasibility of Robot ME@HKBKCE 34 2014-15 Stop S Stops any command Continuous forward F Robot moves forward continuously until command stop used. Continuous backward B Robot moves backward continuously until command stop used. Continuous up U Arm moves vertically upwards continuously until command stop used. Continuous down D Arm moves vertically downwards continuously until command stop used. Continuous left L Robot moves continuously left until command stop used. Continuous right R Robot moves continuously right until command stop used. 5.3.1 Electronic specifications: We have used,  Arduino Uno  L293D  Atmega16 microcontroller Arduino board is used for serial communication. The microcontroller we are using is called 89s52; in which 89 indicates it is flash programmable series, ‘S ‘indicates static meaning that it can be operated from 0 Hz to 32 MHz crystal. Microcontroller is the brain of the entire project. ATMEGA16 controls all the peripherals. The system basically
  • 44. Open Source Service Robot Feasibility of Robot ME@HKBKCE 35 2014-15 consists of Microcontroller and various peripherals connected to it. The ATMEGA Microcontroller block does the control functions based on the sensory inputs received by it. It has switches and microphone, rs232 as input and motor driver as the output. We send the code to the Microcontroller using stk500 programmer using parallel port communication.Stk500 is a circuit with hardware after converting the human readable code to machine understandable format we need to dump the binary file to microcontroller. Stk500 is used to dump the program into the chip.The L293D motor driver is used to power the linear actuator to aid the arm to be raised and lowered and also to actuate the other servos.L293 motor driver is used to provide motion control. It can drive 2 individual motors of 200ma each. It has thermal shutdown and back EMF suppression. This project uses regulated 5v to power the microcontroller circuit and also has 12v power supply for motor supply and relay driving. The circuit derives it supply from battery. Whenever distance is involved in data transfer the voltage levels change due to attenuation which results in misrepresentation of logic levels that is a high logic level may appear to be low when it reached the destination due to attenuation. To overcome the problem RS232 is proposed for communication between data communication equipment (DCE) and data terminal equipment (DTE). The question arises why we use Atmega 16 only and why not any other microcontroller.  It is oldest and still most widely used in the world.  Low cost controller.  Produced by several manufacturers.  Good support available on the net from several forums.  Industries built several solutions based on this architecture hence proven technology.  Continuously being upgraded and several features are added rapidly.  Application development is faster.  Integrated development environment is free. Traditionally microprocessors are used for general purpose computing, which can be expanded as per the requirement. But the cost becomes prohibitive when it comes to small applications like ours; hence we are using a MCS-52 micro controller in our project. The Microcontroller is special purpose computer with all the resources optimized for specific applications, and due to mass production the cost is low.
  • 45. Open Source Service Robot Feasibility of Robot ME@HKBKCE 36 2014-15 Microcontroller are found everywhere in our day to day life be it computer keyboard, washing machine, car, printer or in our calculators. They have become immensely popular. One of the advantages of Microcontroller is its ability to reconfigure the hardware by merely change in the program. Unlike traditional analog circuit wired for a function cannot be used for some other function without dismantling. Microprocessors essentially consists of ALU, Control Unit and Memory. In addition to the above the Microcontroller consists of limited amount of RAM, ROM, multi-mode Timers (8 bit, 16bit, with prescaler etc). MCS-52 was developed by Intel and is most popular for the past 30 years and is the most widely used processor in the world. It uses CISC (Complicated Instruction Set Computer) architecture. Due to mass production by several manufacturers the cost is low. Hence we have selected MCS-51 Architecture Microcontroller for our project. Fig 5.6 ATMEGA 16 Microcontroller
  • 46. Open Source Service Robot Feasibility of Robot ME@HKBKCE 37 2014-15 5.3.2 Description: The ATmega16 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATnega16 actives throughputs approaching 1MIPS per MHz allowing the system designed to optimize power consumption versus preceding speed. The AVR core combines a rich instruction set with 32 general purpose working registers. All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU), allowing two independent registers to be accessed in one single instruction executed in one clock cycle. The resulting architecture is more code efficient while achieving throughputs up to ten times faster than conventional CISC microcontrollers. The ATmega16 provides the following features: 16 Kbytes of In-System Programmable Flash Program memory with Read-While-Write capabilities 512 bytes EEPROM,1Kbyte SRAM,32 general purpose I/O lines,32 general purpose working registers, a JTAG interface for Boundary-Scan, On-chip Debugging support and programming, three flexible Timer/Counters with compare modes, Internal and External Interrupts, a serial programmable USART, a byte oriented Two-wire Serial Interface, an 8-channel,10-bit ADC with optional differential input stage with programmable gain( TQFP package only), a programmable Watchdog Timer with internal Oscillator, an SPI serial port, and six software selectable power saving modes. The Idle mode stops the CPU while allowing the USART, Two wire interface, A/D converter, SRAM, Timer/Counters, SPI port, and interrupt system to continue functioning. The Power-down mode saves the register contents but freezes the oscillator, disabling all other chip functions until the next External Interrupt or Hardware Reset. In power-save mode, the Asynchronous Timer continues to run, allowing the user to maintain a timer base while the rest of the device is sleeping. The ADC Noise Reduction mode stops the CPU and all I/O modules except Asynchronous Timer and ADC, to minimize switching noise during ADC conversions. In Standby mode, the crystal/resonator Oscillator is running while the rest of the device is sleeping. This allows very fast start-up combined with low-power consumption, in extended standby mode, both the main oscillator and the Asynchronous Timer to run. 5.3.3 Power supply: The house electrical power supply is rated at 230v Ac. Which is not suitable for driving most of electronic devices, which operate at much lower voltages like, 12V, 5V and 3V
  • 47. Open Source Service Robot Feasibility of Robot ME@HKBKCE 38 2014-15 etc. hence 230V AC is converted to 12V ac using step-down transformer. The o/p of the step down transformer is rectified using bridge rectifier for max efficiency 5.3.4 Bridge Rectifier: A bridge rectifier makes use of four diodes in a bridge arrangement to achieve full-wave rectification. This is a widely used configuration, both with individual diodes wired as shown and with single component bridges where the diode bridge is wired internally. Fig 5.7: Bridge Rectifier Diodes 1N4007 are used as rectifiers. Which are rated at 1Amp. The output of rectifier is pulsating DC which is filtered using a filter capacitor to smoothen out the ripples. 5.3.5 RC Filter: A bridge rectifier makes use of four diodes in a bridge arrangement to achieve full-wave rectification. This is a widely used configuration, both with individual diodes wired as shown and with single component bridges where the diode bridge is wired internally. Fig5.8: Current Flow in the Bridge Rectifier For both positive and negative swings of the transformer, there is a forward path through the diode bride. Both conduction paths cause current to flow in the same direction through the load resistor, accomplishing full wave rectification.
  • 48. Open Source Service Robot Feasibility of Robot ME@HKBKCE 39 2014-15 Fig 5.9(a) Bridge rectifier While one set of diodes is forward biased, the other set is reverse biased and effectively eliminated from the circuit. Fig 5.9(b) Bridge rectifier 5.3.6 DC Motor: Fig 5.10 internal construction of DC motor Fig 5.11 DC motor
  • 49. Open Source Service Robot Feasibility of Robot ME@HKBKCE 40 2014-15 Due to variations at the input the output may also vary hence we need a regulator maintain constant output voltage and better line regulation and load regulation irrespective of variations at the input. The regulator used is 7805 which is a positive voltage regulator. The first two digits “78” indicates fixed positive regulator and last two digits indicate output voltage in our case “05” stands for 5V constant output. It is used as Simple 5V power supply for digital circuits. DC Motors convert electrical energy (voltage or power source) to mechanical energy (produce rotational motion). They run on direct current. The Dc motor works on the principle of Lorentz force which states that when a wire carrying current is placed in a region having magnetic field, than the wire experiences a force. This Lorentz force provides a torque to the coil to rotate. The image shows the brushes of the DC motor which helps the motor to take input current to the coil. The brushes always remain connected with any two commutators and supplying the input current to the coil while it is rotating. Fig 5.12: internal coil arrangement Fig 5.13: commuter arrangement There are three commutations shown in the image. Each one is directly connected with the coil to supply the current in the permanent magnet is cascaded in the body of the motor. The coil working as electromagnet moves in the magnetic field of this magnet. 5.4 Working: As we have discussed, DC motor work on Lorentz force concept. When we pass the input DC current to the coil through the brushes, it directly goes to the coil inside the motor body. This makes coil to work as an electromagnet. Magnetic fields of both magnets interact with each other that results in a force which in turn produces the necessary torque required to move the coil. This torque drives the coil to move round and a shaft attached with the coil moves too.
  • 50. Open Source Service Robot Feasibility of Robot ME@HKBKCE 41 2014-15 5.5 Motor specifications: Motor voltage 12V AC/DC DC Motor basic speed 2400 RPM Reduction ratio: 1:160 Motor type Permanent magnet Supply to coils Through commutate 5.5.1 L293 Motor Driver: The L293 is an integrated circuit motor driver that can be used for simultaneous, bi- directional control of two small motors. The L293 is limited to 600 mA, but in reality can only handle much small currents unless you have done some serious heat sinking to keep the case temperature down. Hook up the circuit and run your motor while keeping your finger on the chip. If it gets too hot to touch, you can't use it with your motor. The pinout for the L293 in the 16-pin package is shown below in top view. Pin 1 is at the top left when the notch in the package faces up. Note that the names for pin functions may be slightly different than what is shown in the following diagrams. Different than what is shown in the following diagrams.
  • 51. Open Source Service Robot Feasibility of Robot ME@HKBKCE 42 2014-15 Fig 5.14 L293D and RS232 Assume you have only one motor connected with the enable tied to Stamp Pin 0, and the two direction controls tied to Stamp Pins 1 and 2.
  • 52. Open Source Service Robot Feasibility of Robot ME@HKBKCE 43 2014-15 ENABLE DIRA DIRB Function H H L Turn right H L H Turn left H L/H L/H Fast stop L either either Slow stop Table: describing the control pin functions. 5.5.2 Switches: Tact switches are used in the project. They are Printed circuit mounted type. The switch function is push to on meaning that it will close the circuit as long as it is depressed against the PCB and opens the circuit as soon as the switch is released. 5.5.3 Pulse width modulation: The speed is controlled using a technique called pulse width modulation. In pulse width modulation the on off period of the motor is controlled. In our project we have selected 50% on and 50% off for half motor speed. 5.5.4 The purpose of using pc in our project: We need higher processing power for large data base management real time modem based communication, graphical user interface video conference with built in web cam interface driver. In olden days when pc’s were costly it was difficult, tedious and time consuming to write and debug programs which resulted in slow projects development cycle spanning to several weeks or months. The pc’s with enormous processing capability make the programming for development. All mechanical switches bounce several times before they settle, since microprocessors are fast they sense these bounces as key press several times. Using software delays we can avoid debounce. 5.6 HC 05 Bluetooth Module: We are using HC 05 Bluetooth Module for vocal control or voice control. The setup includes a module that acts as an RF receiver. It is connected to the arduino board using male and female wires and the circuit setup is explained in the fig. Since the operating voltage of the module is 3.2v we have used 2k2 and 1k resistors to limit the voltage passing through the circuit. We are using our android mobile as we have learned how to
  • 53. Open Source Service Robot Feasibility of Robot ME@HKBKCE 44 2014-15 develop an app on an android platform using MIT app inventor. The app is used to connect the mobile phone to the Hc 05 Bluetooth module. It is used to send the voice commands from the mobile to the module which then helps in actuation. Thus we can write an arduino code for the module and make it act as a slave receiving the commands from the mobile which acts as a master transmitting the voice commands. Thus the same control features previously achieved using the joystick can be also replaced using voice command. This was an easy and cost effective way to install voice command on the existing robot. Our initial idea of using visual studio that uses .net framework was time consuming and complex. The coding in visual studio is of vb script which makes it a little complex while writing the program. Also since time is a constraint we are using the Bluetooth module. Fig 5.15(a) Hc -05 bluetooth module Fig 5.15(b) Hc -05 bluetooth module
  • 54. Open Source Service Robot Software Program ME@HKBKCE 45 2014-15 CHAPTER – 6 Software Program (CODE) 6.1 CODE FOR FUNCTIONING /* name: ServiceRobot1 V1.0 150420 5pm h/w: arduino,Atmega16GPB L293 controlling 4 motors; the H bridge takes two outputs from the Arduino to control the motor. remarks: 5 motor control */ /* Port Assignmemnt************************************************************* **************************/ //MotorPin-arduino -Atmega16GPB pin connections int M1Pls = 2; //PD7 int M1Min = 3; //PD6 int M2Pls = 4; //PC4 /PD0 int M2Min = 5; //PC7 /PD1 int M3Pls = 6; //PD5 int M3Min = 7; //PD3 int M4Pls = 8; //PD4 int M4Min = 9; //PD2 int M5Pls = 10; //PD2 int M5Min = 11; //PD2 int M6Pls = 12; //PD2 int M6Min = 13; //PD2 int incomingByte = 0; // for incoming serial data int x; /* run once code******************************************************************** **********************/ void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps //the motor control wires are outputs
  • 55. Open Source Service Robot Software Program ME@HKBKCE 46 2014-15 pinMode(M1Pls, OUTPUT); pinMode(M1Min, OUTPUT); pinMode(M2Pls, OUTPUT); pinMode(M2Min, OUTPUT); pinMode(M3Pls, OUTPUT); pinMode(M3Min, OUTPUT); pinMode(M4Pls, OUTPUT); pinMode(M4Min, OUTPUT); pinMode(M5Pls, OUTPUT); pinMode(M5Min, OUTPUT); pinMode(M6Pls, OUTPUT); pinMode(M6Min, OUTPUT); Serial.println("Service Robot V1.0 Initilization Done"); } /* code that runs forever****************************************************************** *****************/ void loop() { incomingByte = Serial.read(); if (incomingByte == 'f'){Serial.print("f-");Forward(100);} if (incomingByte == 'F'){Serial.print("F-");CForward();} if (incomingByte == 'b'){Serial.print("b-");Backward(100);} if (incomingByte == 'B'){Serial.print("B-");CBackward();} if (incomingByte == 'r'){Serial.print("r-");Right(100);} if (incomingByte == 'R'){Serial.print("R-");CRight();} if (incomingByte == 'l'){Serial.print("l-");Left(100);} if (incomingByte == 'L'){Serial.print("L-");CLeft();} if (incomingByte == 's'){Serial.print("s-");StopAll();} if (incomingByte == 'S'){Serial.print("S-");StopAll();} if (incomingByte == 'x'){Serial.print("x-");Raise(100);} if (incomingByte == 'X'){Serial.print("X-");CRaise();} if (incomingByte == 'y'){Serial.print("y-");Lower(100);} if (incomingByte == 'Y'){Serial.print("Y-");CLower();} if (incomingByte == 'o'){Serial.print("o-");Open(100);}
  • 56. Open Source Service Robot Software Program ME@HKBKCE 47 2014-15 if (incomingByte == 'O'){Serial.print("O-");COpen();} if (incomingByte == 'c'){Serial.print("c-");Close(100);} if (incomingByte == 'C'){Serial.print("C-");CClose();} if (incomingByte == 'u'){Serial.print("u-");Up(100);} //linear actuator if (incomingByte == 'U'){Serial.print("U-");CUp();} //linear actuator if (incomingByte == 'd'){Serial.print("d-");Down(100);} //linear actuator if (incomingByte == 'D'){Serial.print("D-");CDown();} //linear actuator if (incomingByte == 'p'){Serial.print("p-");Custom1();} if (incomingByte == 'q'){Serial.print("q-");Custom2();} if (incomingByte == 'w'){Serial.print("w-");Custom3();} if (incomingByte == 'z'){Serial.print("z-");Custom4();} } void Forward(int x){M1Cw(); M2Ccw();delay(x);StopM1();StopM2();Serial.println("Forward");} void CForward(){CM1Cw();CM2Ccw();Serial.println("Cont Forward");} void Backward(int x){M1Ccw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Backward");} void CBackward(){CM1Ccw();CM2Cw();Serial.println("Cont Backward");} void Right(int x){M1Ccw();M2Ccw();delay(x);StopM1();StopM2();Serial.println("Right");} void CRight(){CM1Ccw();CM2Ccw();Serial.println("Cont Right");} void Left(int x){M1Cw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Left");} void CLeft(){CM1Cw();CM2Cw();Serial.println("Cont Left");} void Raise(int x){M3Ccw();delay(x);StopM3();Serial.println("Raise");} void CRaise(){CM3Ccw();Serial.println("Cont Raise");} void Lower(int x){M3Cw();delay(x); StopM3();Serial.println("Lower");} void CLower(){CM3Cw();;Serial.println("Cont Lower");} void Open(int x){M4Ccw() ;delay(x);StopM4();Serial.println("Open");} void COpen(){CM4Ccw();;Serial.println("Cont Open");} void Close(int x){M4Cw();delay(x);StopM4();Serial.println("Close");} void CClose(){CM4Cw();;Serial.println("Cont Close");} void Up(int x){M5Cw();delay(x);StopM5();Serial.println("Up");} void CUp(){CM5Cw();Serial.println("Cont CUp");}
  • 57. Open Source Service Robot Software Program ME@HKBKCE 48 2014-15 void Down(int x){M5Ccw();delay(x); StopM5();Serial.println("Down");} void CDown(){CM5Ccw();Serial.println("Cont Down");} void Custom1(){Serial.println("Custom1");} void Custom2(){Serial.println("Custom2");} void Custom3(){Serial.println("Custom3");} void Custom4(){Serial.println("Custom4");} void M1Cw() {digitalWrite(M1Pls, LOW) ;digitalWrite(M1Min, HIGH);delay(100);StopM1();} void M1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW) ;delay(100);StopM1();} void M2Cw() {digitalWrite(M2Pls, LOW) ;digitalWrite(M2Min, HIGH);delay(100);StopM2();} void M2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW) ;delay(100);StopM2();} void M3Cw() {digitalWrite(M3Pls, LOW) ;digitalWrite(M3Min, HIGH);delay(100);StopM3();} void M3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW) ;delay(100);StopM3();} void M4Cw() {digitalWrite(M4Pls, LOW) ;digitalWrite(M4Min, HIGH);delay(100);StopM4();} void M4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW) ;delay(100);StopM4();} void M5Cw() {digitalWrite(M5Pls, LOW) ;digitalWrite(M5Min, HIGH);delay(100);StopM5();} void M5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW) ;delay(100);StopM5();} void M6Cw() {digitalWrite(M6Pls, LOW) ;digitalWrite(M6Min, HIGH);delay(100);StopM6();} void M6Ccw(){digitalWrite(M6Pls, HIGH);digitalWrite(M6Min, LOW) ;delay(100);StopM6();} void CM1Cw() {digitalWrite(M1Pls, LOW);digitalWrite (M1Min, HIGH);}
  • 58. Open Source Service Robot Software Program ME@HKBKCE 49 2014-15 void CM1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW);} void CM2Cw() {digitalWrite(M2Pls, LOW);digitalWrite (M2Min, HIGH);} void CM2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW);} void CM3Cw() {digitalWrite(M3Pls, LOW);digitalWrite (M3Min, HIGH);} void CM3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW);} void CM4Cw() {digitalWrite(M4Pls, LOW);digitalWrite (M4Min, HIGH);} void CM4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW);} void CM5Cw() {digitalWrite(M5Pls, LOW);digitalWrite (M5Min, HIGH);} void CM5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW);} void CM6Cw() {digitalWrite(M6Pls, LOW);digitalWrite (M6Min, HIGH);} void CM6Ccw(){digitalWrite(M6Pls, HIGH);digitalWrite(M6Min, LOW);} void StopM1(){digitalWrite(M1Pls, LOW);digitalWrite(M1Min, LOW);Serial.println("StopM1");} void StopM2(){digitalWrite(M2Pls, LOW);digitalWrite(M2Min, LOW);Serial.println("StopM2");} void StopM3(){digitalWrite(M3Pls, LOW);digitalWrite(M3Min, LOW);Serial.println("StopM3");} void StopM4(){digitalWrite(M4Pls, LOW);digitalWrite(M4Min, LOW);Serial.println("StopM4");} void StopM5(){digitalWrite(M5Pls, LOW);digitalWrite(M5Min, LOW);Serial.println("StopM5");} void StopM6(){digitalWrite(M6Pls, LOW);digitalWrite(M6Min, LOW);Serial.println("StopM6");} void StopAll(){digitalWrite(M1Pls, LOW);digitalWrite(M1Min, LOW); digitalWrite(M2Pls, LOW);digitalWrite(M2Min, LOW); digitalWrite(M3Pls, LOW);digitalWrite(M3Min, LOW); digitalWrite(M4Pls, LOW);digitalWrite(M4Min, LOW); digitalWrite(M5Pls, LOW);digitalWrite(M5Min, LOW); digitalWrite(M6Pls, LOW);digitalWrite(M6Min, LOW);Serial.println("StopM1,M2,M3,M4,M5,M6");} void ZeroTurning(){M1Cw();M2Cw();M3Cw();M4Cw();delay(10000);StopAll(); }
  • 59. Open Source Service Robot Software Program ME@HKBKCE 50 2014-15 void Test4Motors(){M1Cw();M2Cw();M3Cw();M4Cw();delay(1000); M1Ccw();M2Ccw();M3Ccw();M4Ccw();delay(1000);} 6.2 SOFTWARE PROGRAM CODE FOR VOICE CONTROL /* name: ServiceRobot5 V1.5 150511 h/w: arduino,Atmega16GPB L293 controlling 5 motors optional one more motor total 6 ; the H bridge takes two outputs from the Arduino to control the motor. install voice control bot from google paystore control from bluetooth terminal app for character typing remarks: $Bluetooth and pc control; */ #include <SoftwareSerial.h> /* Port Assignmemnt************************************************************* **************************/ //MotorPin-arduino -Atmega16GPB pin connections int M1Pls = 2; //PD7 int M1Min = 3; //PD6 int M2Pls = 4; //PC4 /PD0 int M2Min = 5; //PC7 /PD1 int M3Pls = 6; //PD5 int M3Min = 7; //PD3 int M4Pls = 8; //PD4 int M4Min = 9; //PD2 int M5Pls = 10; //PD2 int M5Min = 11; //PD2 int M6Pls = 12; //PD2 int M6Min = 13; //PD2 /* Variable Declaration************************************************************** ************************/ int incomingByte = 0; // for incoming serial data int x;
  • 60. Open Source Service Robot Software Program ME@HKBKCE 51 2014-15 String BtData; int ledpin=13; // led on D13 will show blink on / off SoftwareSerial BT(14, 15);//arduino 14-RX conncted to BT Tx; arduino 15-TX connected to BT Rx /* run once code******************************************************************** **********************/ void setup() { Serial.begin(9600); // arduino serial port view using serial monitor baud 9600 BT.begin(9600); // Bluetooth Serial port view using TerminalBt baud 9600 //the motor control wires are outputs pinMode(M1Pls, OUTPUT); pinMode(M1Min, OUTPUT); pinMode(M2Pls, OUTPUT); pinMode(M2Min, OUTPUT); pinMode(M3Pls, OUTPUT); pinMode(M3Min, OUTPUT); pinMode(M4Pls, OUTPUT); pinMode(M4Min, OUTPUT); pinMode(M5Pls, OUTPUT); pinMode(M5Min, OUTPUT); pinMode(M6Pls, OUTPUT); pinMode(M6Min, OUTPUT); Serial.println("Service Robot V1.5 Initilization Done"); } /* code that runs forever****************************************************************** *****************/ void loop() { /* check Bt data ************************************************************************ *******************/ while (BT.available()){ //Check if there is an available byte to read
  • 61. Open Source Service Robot Software Program ME@HKBKCE 52 2014-15 delay(10); /*Delay added to make thing stable*/ char c = BT.read(); /*Conduct a serial read*/ BtData += c; /*build the string- "forward", "reverse", "left" and "right"*/} if (BtData.length() > 0) {Serial.println(BtData); // print Bt data if char is atleast one character if(BtData=="forward"){CForward();} if(BtData=="backward"){CBackward();} if(BtData=="right"){CRight();} if(BtData=="left"){CLeft();} if(BtData=="stop"){StopAll();} if(BtData=="of"){StopAll();} if(BtData=="up"){CUp();} if(BtData=="down"){CDown();} if(BtData=="open"){COpen();} if(BtData=="close"){CClose();} if(BtData=="hi"){CHigh();} if(BtData=="ground"){CGround();} if(BtData=="charge"){StopAll();} BtData=""; //Clear/Reset the variable } /* PC control characters ************************************************************************ *******************/ while (Serial.available()){ /*Check if there is an available byte to read*/ incomingByte = Serial.read(); if (incomingByte == 'f'){Serial.print("f-");Forward(100);} if (incomingByte == 'F'){Serial.print("F-");CForward();} if (incomingByte == 'b'){Serial.print("b-");Backward(100);} if (incomingByte == 'B'){Serial.print("B-");CBackward();} if (incomingByte == 'r'){Serial.print("r-");Right(100);} if (incomingByte == 'R'){Serial.print("R-");CRight();} if (incomingByte == 'l'){Serial.print("l-");Left(100);} if (incomingByte == 'L'){Serial.print("L-");CLeft();} if (incomingByte == 's'){Serial.print("s-");StopAll();}
  • 62. Open Source Service Robot Software Program ME@HKBKCE 53 2014-15 if (incomingByte == 'S'){Serial.print("S-");StopAll();} if (incomingByte == 'u'){Serial.print("u-");Up(100);} if (incomingByte == 'U'){Serial.print("U-");CUp();} if (incomingByte == 'd'){Serial.print("d-");Down(100);} if (incomingByte == 'D'){Serial.print("D-");CDown();} if (incomingByte == 'o'){Serial.print("o-");Open(100);} if (incomingByte == 'O'){Serial.print("O-");COpen();} if (incomingByte == 'c'){Serial.print("c-");Close(100);} if (incomingByte == 'C'){Serial.print("C-");CClose();} if (incomingByte == 'h'){Serial.print("h-");High(100);} //linear actuator if (incomingByte == 'H'){Serial.print("H-");CHigh();} //linear actuator if (incomingByte == 'g'){Serial.print("g-");Ground(100);} //linear actuator if (incomingByte == 'G'){Serial.print("G-");CGround();} //linear actuator if (incomingByte == 'i'){Serial.print("i-");Custom1();} if (incomingByte == 'j'){Serial.print("j-");Custom2();} if (incomingByte == 'k'){Serial.print("k-");Custom3();} if (incomingByte == 'm'){Serial.print("m-");Custom4();} if (incomingByte == '0'){Serial.println("CM1Cw");CM1Cw();} // diagnostic routines to test individual motors if (incomingByte == '1'){Serial.println("CM1Ccw");CM1Ccw();} if (incomingByte == '2'){Serial.println("CM2Cw");CM2Cw();} if (incomingByte == '3'){Serial.println("CM2Ccw");CM2Ccw();} if (incomingByte == '4'){Serial.println("CM3Cw");CM3Cw();} if (incomingByte == '5'){Serial.println("CM3Ccw");CM3Ccw();} if (incomingByte == '6'){Serial.println("CM4Cw");CM4Cw();} if (incomingByte == '7'){Serial.println("CM4Ccw");CM4Ccw();} if (incomingByte == '8'){Serial.println("CM5Cw");CM5Cw();} if (incomingByte == '9'){Serial.println("CM5Ccw");CM5Ccw();} incomingByte=' '; } }
  • 63. Open Source Service Robot Software Program ME@HKBKCE 54 2014-15 6.3 PROGRAM CODE FOR MOTOR DRIVER void Forward(int x){M1Cw(); M2Ccw();delay(x);StopM1();StopM2();Serial.println("Forward");} void CForward(){CM1Cw();CM2Ccw();Serial.println("Cont Forward");} void Backward(int x){M1Ccw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Backward");} void CBackward(){CM1Ccw();CM2Cw();Serial.println("Cont Backward");} void Right(int x){M1Ccw();M2Ccw();delay(x);StopM1();StopM2();Serial.println("Right");} void CRight(){CM1Ccw();CM2Ccw();Serial.println("Cont Right");} void Left(int x){M1Cw();M2Cw();delay(x);StopM1();StopM2();Serial.println("Left");} void CLeft(){CM1Cw();CM2Cw();Serial.println("Cont Left");} void Up(int x){M3Ccw();delay(x);StopM3();Serial.println("Raise");} void CUp() {CM3Ccw();Serial.println("Cont Raise");} void Down(int x){M3Cw();delay(x); StopM3();Serial.println("Lower");} void CDown() {CM3Cw();Serial.println("Cont Lower");} void Open(int x) {M4Ccw();delay(x);StopM4();Serial.println("Open");} void COpen() {CM4Ccw();Serial.println("Cont Open");} void Close(int x){M4Cw();delay(x);StopM4();Serial.println("Close");} void CClose() {CM4Cw();Serial.println("Cont Close");} void High(int x) {M5Cw();delay(x);StopM5();Serial.println("Up");} void CHigh() {CM5Cw();Serial.println("Cont CUp");} void Ground(int x) {M5Ccw();delay(x); StopM5();Serial.println("Down");} void CGround() {CM5Ccw();Serial.println("Cont Down");} void Custom1(){Serial.println("Custom1");} void Custom2(){Serial.println("Custom2");} void Custom3(){Serial.println("Custom3");} void Custom4(){Serial.println("Custom4");}
  • 64. Open Source Service Robot Software Program ME@HKBKCE 55 2014-15 void M1Cw() {digitalWrite(M1Pls, LOW) ;digitalWrite(M1Min, HIGH);delay(100);StopM1();Serial.print("M1Cw "); } void M1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW) ;delay(100);StopM1();Serial.print("M1Ccw ");} void M2Cw() {digitalWrite(M2Pls, LOW) ;digitalWrite(M2Min, HIGH);delay(100);StopM2();Serial.print("M2Cw "); } void M2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW) ;delay(100);StopM2();Serial.print("M2Ccw ");} void M3Cw() {digitalWrite(M3Pls, LOW) ;digitalWrite(M3Min, HIGH);delay(100);StopM3();Serial.print("M3Cw "); } void M3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW) ;delay(100);StopM3();Serial.print("M3Ccw ");} void M4Cw() {digitalWrite(M4Pls, LOW) ;digitalWrite(M4Min, HIGH);delay(100);StopM4();Serial.print("M4Cw "); } void M4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW) ;delay(100);StopM4();Serial.print("M4Ccw ");} void M5Cw() {digitalWrite(M5Pls, LOW) ;digitalWrite(M5Min, HIGH);delay(100);StopM5();Serial.print("M5Cw "); } void M5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW) ;delay(100);StopM5();Serial.print("M5Ccw ");} void M6Cw() {digitalWrite(M6Pls, LOW) ;digitalWrite(M6Min, HIGH);delay(100);StopM6();Serial.print("M6Cw "); } void M6Ccw(){digitalWrite(M6Pls, HIGH);digitalWrite(M6Min, LOW) ;delay(100);StopM6();Serial.print("M6Ccw ");} void CM1Cw() {digitalWrite(M1Pls, LOW);digitalWrite (M1Min, HIGH);Serial.print("CM1Cw "); } void CM1Ccw(){digitalWrite(M1Pls, HIGH);digitalWrite(M1Min, LOW) ;Serial.print("CM1Ccw ");} void CM2Cw() {digitalWrite(M2Pls, LOW);digitalWrite (M2Min, HIGH);Serial.print("CM2Cw "); } void CM2Ccw(){digitalWrite(M2Pls, HIGH);digitalWrite(M2Min, LOW) ;Serial.print("CM2Ccw ");}
  • 65. Open Source Service Robot Software Program ME@HKBKCE 56 2014-15 void CM3Cw() {digitalWrite(M3Pls, LOW);digitalWrite (M3Min, HIGH);Serial.print("CM3Cw "); } void CM3Ccw(){digitalWrite(M3Pls, HIGH);digitalWrite(M3Min, LOW) ;Serial.print("CM3Ccw ");} void CM4Cw() {digitalWrite(M4Pls, LOW);digitalWrite (M4Min, HIGH);Serial.print("CM4Cw "); } void CM4Ccw(){digitalWrite(M4Pls, HIGH);digitalWrite(M4Min, LOW) ;Serial.print("CM4Ccw ");} void CM5Cw() {digitalWrite(M5Pls, LOW);digitalWrite (M5Min, HIGH);Serial.print("CM5Cw "); } void CM5Ccw(){digitalWrite(M5Pls, HIGH);digitalWrite(M5Min, LOW) ;Serial.print("CM5Ccw ");} void CM6Cw() {digitalWrite(M6Pls, LOW);digitalWrite (M6Min, HIGH);Serial.print("CM6Cw "); } void StopM1() {digitalWrite(M1Pls,LOW);digitalWrite(M1Min,LOW);} void StopM2() {digitalWrite(M2Pls,LOW);digitalWrite(M2Min,LOW);} void StopM3() {digitalWrite(M3Pls,LOW);digitalWrite(M3Min,LOW);} void StopM4() {digitalWrite(M4Pls,LOW);digitalWrite(M4Min,LOW);} void StopM5() {digitalWrite(M5Pls,LOW);digitalWrite(M5Min,LOW);} void StopM6() {digitalWrite(M6Pls,LOW);digitalWrite(M6Min,LOW);} void StopAll(){digitalWrite(M1Pls,LOW);digitalWrite(M1Min,LOW); digitalWrite(M2Pls,LOW);digitalWrite(M2Min,LOW); digitalWrite(M3Pls,LOW);digitalWrite(M3Min,LOW); digitalWrite(M4Pls,LOW);digitalWrite(M4Min,LOW); digitalWrite(M5Pls,LOW);digitalWrite(M5Min,LOW); digitalWrite(M6Pls,LOW);digitalWrite(M6Min,LOW);Serial.print(" StopM1,M2,M3,M4,M5,M6 ");} void ZeroTurning(){M1Cw();M2Cw();M3Cw();M4Cw();delay(10000);StopAll(); } void Test4Motors(){M1Cw();M2Cw();M3Cw();M4Cw();delay(1000); M1Ccw();M2Ccw();M3Ccw();M4Ccw();delay(1000);}
  • 66. Open Source Service Robot Advantages & Disadvantages ME@HKBKCE 57 2014-15 CHAPTER – 7 MERITS DIMERITS 7.1 ADVANTAGES: The advantages of the robot 1. Domestic worker: The robot can do some tasks, particularly domestic activities. (E.g. transport things from one place to another, etc.) 2. Vigilance: The robot can act as a guard; detecting intruders, fires, water leakages, etc. 3. Control of domestic systems: The robot can act as a universal interface to control other domestic devices (e.g. heating system, lights, etc.) 7.2 DISADVANTAGES: The robot is light weight so it may break easily. It cannot lift heavy objects. It needs several sensors to do more tasks The robot cannot do tasks independently 7.3APPLICATIONS: Helping elderly at home Helping patients in hospitals Helping mentally retarded children Helping handicapped people etc. 7.4 Precautions in use of the system: 1) Do not operate under wet conditions. 2) Possibility of electric shock if all the connections are not properly taped and insulated. 3) The system produces noise while it is being operated. 4) The system should not be subjected to heavy vibrations 5) Do not attempt to lift heavy objects 6) Operate the robot carefully while humans are moving around since it do not have sensors to detect passing human and may collide with him
  • 67. Open Source Service Robot Advantages & Disadvantages ME@HKBKCE 57 2014-15
  • 68. Open Source Service Robot flow chart ME@HKBKCE 58 2014-15 CHAPTER – 8 8.1 CIRCUIT DIAGRAM Fig 8.1: Circuit Diagram of system
  • 69. Open Source Service Robot flow chart ME@HKBKCE 59 2014-15 8.2 Flow chart: Fig 8.2 flow chart for software development Initialize all ports and peripherals Switch off All motors Configure switches as input, motor ports as outputs Display initial massage on Liquid Crystal Display Is forward command received N n t Set motors to forward Y Check next command Is backward command received N n t Set motors to backward Y STOP ROBOT Check next sensor Any other command received N n t Y Command to action
  • 70. Open Source Service Robot flow chart ME@HKBKCE 60 2014-15 8.3 Photographs of the System: Fig 8.3 Service robot
  • 71. Open Source Service Robot flow chart ME@HKBKCE 61 2014-15 Fig 8.4 Gripper attached with the system
  • 72. Open Source Service Robot flow chart ME@HKBKCE 62 2014-15 Fig 8.5 Layout of system with Pc
  • 73. Open Source Service Robot Results and conclusion ME@HKBKCE 63 2014-15 CHAPTER – 9 RESULTS AND DISCUSSION Test1: lift object from floor. Test2: lift object from the table 9.1 COST ESTIMATION: SL.No Item Qty Rate Amount MOTORS AND ACTUATORS 1 DC motors with heavy gear ratio 7 500 3500 ELECTRONICS 1 Microcontroller 3 200 600 2 Printed circuit board design and processing 1 500 500 3 Micro controller and interfacing components 1 1000 1000 4 Resistors 20 2.5 50 5 Presets 2 20 40 6 Capacitors 10 20 200 7 5V regulator 1 50 50 8 12V regulator 1 50 50 9 Liquid crystal Display 1 300 300 10 Glue 1 200 200 11 Berg connectors male and female 1 100 100 12 Relimate connectors 1 50 50 13 Toggle switch 1 50 50
  • 74. Open Source Service Robot Results and conclusion ME@HKBKCE 64 2014-15 14 Tact switches 4 25 100 15 Electronics fabrication Expenses and testing - - 3000 PLATFORM 1 Particle board 1 100 100 2 Hard wood - - 1000 3 Aluminum fabrication charges 1 500 500 4 Nylon material for coupling - - 2000 5 Losses due to faulty material, unsuitable material and replacement - - 1000 WOOD, METAL , PLASTIC AND MISLANIOUS RAW MATERIAL 1 Screws, nuts and washers - - 300 2 Mechanical fabrication expenses - - 3000 3 Battery 12v sealed lead acid 1 1000 1000 4 Battery terminals and wiring 1 100 100 5 Initial battery charging 1 100 100 Total 18890 9.2 Service Robot life time: Service robot life time is calculated based on critical components life time Dc motors are rated at 10000 hours of operation beyond which commutator brushes need to be replaced. Based on the following assumption the life time is approximately 4 years 8hours per day X 30 days per month X48 months= 11520 hours Thread life time is 10,000 hours. It calculated based on following assumption. Threads need to be replaced after every 10,000 hours of operation.
  • 75. Open Source Service Robot Results and conclusion ME@HKBKCE 65 2014-15 1) Material loading is 80% of the rated value. The rated load carrying for the gripper is 0.25kg 2) Material weight should be kept minimum 3) Iron scrap or material with sharp edges is not loaded. Electronics circuit board has a life time of 10 years of continuous operation. Based on the above we can conclude that the minimum life time for the entire system is 4 years. 9.3 Power consumption of each motor: Power consumption of the robot directly depends on the load carried by it. Typical power consumption is calculated at 80% of the rated load. Formula: Voltage (V) X current (I) X hour Power consumption for bucket conveyor per hour = 12V X 200 X 10^-3 X 1 =24mWh Power consumption for Flat conveyor per hour = 12V X 200 X 10^-3 X 1 =24mWh Power consumption of electronic board per hour = 12V X 100 X10^-3 X1 = 10mWh Total power consumption of the system = (24+24+10)mWh =58mWh For a standard fully charged battery the system will run for 150 hours Rated battery voltage = 7.2Ah No of hours battery can supply power = Rated Ah/power consumption per hr =7.2/(48 ^10^-3) =150 hours
  • 76. Open Source Service Robot Results and conclusion ME@HKBKCE 66 2014-15 9.4 Results & Discussion: The system presented above has been evaluated in our laboratory, including the living room. The evaluation has included experiments on Voice Recognition and material handling. For evaluation of the fully integrated system, speech commands has been defined. The robot receives the command in room from the speech interface. The robot moves according to the given commands and picks the objects and deliver them to the user. The ability and performance of the service robot mainly depends upon the following parameters 1.Linear Displacement of the arm 2.Load carrying capacity of the robot base 3.Speed of the robot 4.Load on the gripper 9.4.1 Linear Displacement of the arm: Length of Screw rod = 1000mm Diameter of screw rod = 8mm pitch of the screw thread(p) = Length/Number of threads =10/8 =1.25mm Angular speed(N) = 200 rpm Linear displacement of coupled arm =N*p =200*1.25 =250mm/min 9.4.2 Stress on Coupler: Number of couplers used = 02 Total number of turns in a coupler = 06 Weight of the arm =mass*gravity =0.75*9.81
  • 77. Open Source Service Robot Results and conclusion ME@HKBKCE 67 2014-15 = 7.35 N Weight per turn = 0.613N Area of each turn =11.775 mm2 Stress on the coupler = 0.052 MPa.
  • 78. Open Source Service Robot Results and conclusion ME@HKBKCE 68 2014-15 9.4.3 Speed of the Robot: Radius of the Wheel = 30 Mm Rotation of the Wheel = 2 r =2*3.14*30 =188.4mm For 1 Minute we have 100 Rotations Speed of the Robot =18.84m/Min 9.4.4 Load on Motor Rotating the Gripper: Approx. Weight Of The Gripper =0.6 Kg Power of the Motor =Voltage*Current =12*0.015 =0.6 Watts Moment Required For Rotating the Arm=Force*Distance =0.6*9.8*0.1 =0.588nm We Know that Power =Torque*Angular Velocity, We Get The Required Maximum Rpm Of The Motor As 9.7 Rpm. But We Have Incorporated A Motor Of 3.5rpm. 9.4.5 Gripper Load Analysis: Case I: We Know that µ nf Fg = w Weight of the object (w) = 100gms coefficient of friction (µ) = 0.8
  • 79. Open Source Service Robot Results and conclusion ME@HKBKCE 69 2014-15 Number of fingers contacting = 02 0.8*2* Fg =100 Fg =100/(0.8*2) =0.0625 case II : When w = 200gms nf = 2 µ = 0.8 Fg = 200/(0.8*2) = 1.25N
  • 80. Open Source Service Robot Results and conclusion ME@HKBKCE 70 2014-15 9.5 FUTURE SCOPE In future design of our system, we wish to improve upon several areas. 1) Update the user interface so that it could be more users friendly, accessible and understandable to end user. 2) Add Rs232 interface so that material movement and quantity is displayed on PC for stock estimation and Power consumption etc. 3) A simplified uncluttered PCB is to be designed and circuit be enclosed in appropriate metal enclosure for protection from harsh field environment. 4) Use Roborealm to provide vision for object tracking and obstacle avoidance.
  • 81. Open Source Service Robot Results and conclusion ME@HKBKCE 71 2014-15 9.6 CONCLUSION: Service robots are very important area of research worldwide. Due to ageing population, finding servants for everyone is very difficult. Servants are costly to maintain. They are not available 24 hours. In their absence service robots can assist elderly and others as well. They can do several tasks like reminding them of medicines etc. hence we conclude that our project is very useful to several people and it needs further improvements to make it more suitable for deployment in real life.
  • 82. Open Source Service Robot Results and conclusion ME@HKBKCE 72 2014-15
  • 83. Open Source Service Robot Bibliography ME@HKBKCE 72 2014-15 BIBLIOGRAPHY Provisional definition of Service Robots English, 27th of October 2012 http://www.ifr.org/industrial-robots/ http://inventors.about.com/od/robotart/ig/Robots-and-Robotics/Rollin-Justin-Robot.htm http://techcrunch.com/2010/03/12/wheelie-toshibas-new-robot-is-cute-autonomous-and- maybe-even-useful-video/ "Adam becomes first robot to make a scientific discovery after conducting its OWN experiments". Dail Mail. 3 April 2009. Retrieved 31 January 2011. "AUV Sentry". Woods Hole Oceanographic Institution. Retrieved 31 January 2011. Machine design by RS khurmi and JK gupta published by Schand cost: 550