CLIMBOT
WINDOW CLIMBING ROBOT
LEE WEI SIANG
UNIVERSITI TEKNOLOGI MALAYSIA
PSZ 19:16 (Pind. 1/07)
DECLARATION OF THESIS / UNDERGRADUATE PROJECT PAPER AND
COPYRIGHT
Author’s full name : LEE WEI SIANG Date of birth : 15 JULY 1986 Title : CLIMBOT-A WINDOW CLIMBING ROBOT Academic Session : 2008/2009 I declare that this thesis is classified as:
I acknowledged that Universiti Teknologi Malaysia reserves the right as follows :
1. The thesis is the property of Universiti Teknologi Malaysia. 2. The Library of Universiti Teknologi Malaysia has the right to make copies
for the purpose of research only. 3. The Library has the right to make copies of the thesis for academic
exchange.
SIGNATURE SIGNATURE OF SUPERVISOR
860715-23-6675 MOHAMED SULTAN BIN MHD ALI (NEW IC NO. /PASSPORT NO.) NAME OF SUPERVISOR
Date: 01 MAY 2009 Date: 01 MAY 2009
NOTES : * If the thesis is CONFIDENTIAL or RESTRICTED, please attach with the letter from the organisation with period and reasons for confidentiality or restriction.
UNIVERSITI TEKNOLOGI MALAYSIA
CONFIDENTIAL (Contains confidential information under the Official Secret Act 1972)*
RESTRICTED (Contains restricted information as specified by the organisation where research was done)*
OPEN ACCESS I agree that my thesis to be published as online open access (full text)
UNIVERSITI TEKNOLOGI MALAYSIA
BORANG PENGESAHAN STATUS TESIS♦
JUDUL: CLIMBOT-WINDOW CLIMBING ROBOT
(BIOBOT-ROBOT HAIWAN PELIHARAAN INSPIRASI BIOLOGI)
SESI PENGAJIAN: 2008/2009
Saya LEE WEI SIANG __ (HURUF BESAR) mengaku membenarkan tesis (PSM/Sarjana/Doktor Falsafah)* ini disimpan di Perpustakaan
Universiti Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut :
1. Tesis ini adalah hakmilik Universiti Teknologi Malaysia. 2. Perpustakaan Universiti Teknologi Malaysia dibenarkan membuat salinan untuk tujuan
pengajian sahaja 3. Perpustakaan dibenarkan membuat salinan tesis ini sebagai bahan pertukaran antara
institusi pengajian tinggi. 4. **Sila tandakan (a)
SULIT (Mengandungi maklumat yang berdarjah keselamatan atau kepentingan Malaysia seperti yang termaktub di dalam AKTA RAHSIA RASMI 1972).
TERHAD (Mengandungi maklumat TERHAD yang telah ditentukan oleh organisasi/badan di mana penyelidikan dijalankan).
TIDAK TERHAD Disahkan oleh
________________________________ ____________________________________ (TANDATANGAN PENULIS) (TANDATANGAN PENYELIA)
Alamat Tetap : 26, JALAN BEREMBANG, EN. MOHAMED SULTAN B. MUHAMED ALI 81550, GELANG PATAH, Nama Penyelia JOHOR. Tarikh : 01 MAY 2009 Tarikh : 01 MAY 2009 CATATAN : * Potong yang tidak berkenaan ** Jika tesis ini SULIT atau TERHAD, sila lampirkan surat daripada pihak berkuasa/organisasi
berkenaan dengan menyatakan sekali sebab dan tempoh tesis ini perlu dikelaskan sebagai SULIT atau TERHAD.
♦ Tesis dimaksudkan sebagai tesis bagi Ijazah Doktor Falsafah dan Sarjana secara penyelidikan atau disertasi bagi pengajian secara kerja kursus dan penyelidikan atau Laporan Projek Sarjana Muda (PSM).
PSZ 19:16 (Pind. 1/97)
“I hereby declare that I had read this thesis and in my opinion, this thesis is
sufficient in term of quality and scope for the purpose of awarding a Bachelor
Degree in Electrical (Mechatronics) Engineering”.
Signature : ______________________________________
Supervisor : EN MOHAMED SULTAN B. MUHAMED ALI
Date : 01 MAY 2009
CLIMBOT
WINDOW CLIMBING ROBOT
LEE WEI SIANG
A thesis submitted in partial fulfillment of the requirements for the award of the degree of
Bachelor of Electrical Engineering in Mechatronics
Faculty of Electrical Engineering
Universiti Teknologi Malaysia
MAY 2009
ii
DECLARATION
“I declare that this thesis entitled “Climbot – Window Climbing Robot”,
is the result of my own research except as cited in the references. The thesis
has not been accepted for any degree and is not concurrently submitted in
candidature of any other degree.”
Signature : ______________
Name of Candidate : LEE WEI SIANG
Date : 01 MAY 2009
iii
DEDICATION
Specially to my beloved
parents, siblings and friends
for their eternal support, encouragement
and inspiration throughout
my journey of education.
iv
ACKNOWLEDGEMENT
I would like to express my deepest gratitude to my project supervisor, Encik
Mohamed Sultan Bin Mohamed Ali who had presently giving me guidance and
support throughout the entire project. It would be difficult to complete this project
without his guidance and support especially in the project resources, references and
material.
My outmost thanks to my family who have given me support throughout my
academic years. Not forgetting their eternally moral support and understanding of my
academic responsibilities.
I would like to express my gratitude to my friends, especially to all my
coursemates who had given me help technically and mentally during the journey to
accomplish this project. Thank you all for giving me technical advice, moral support
and idea to enhance my project. Thank you.
v
ABSTRACT
In this paper, we propose a lightweight small robot for window climbing,
which is developed for practical use in life environment. The concept of window
climbing robot will apply at window cleaning robot. The moving mechanism is made
up of 2 drive wheels and passive suction cups. By this mechanism the robot moves to
any directions along the vertical window.
The prototype of window climbing robot has been developed. The dimensions
of prototyped robot are approximately 100mm x 200mm x100mm and its weight is
approximately less than 2 kg. The prototyped robot consists of two independently
driven wheels attached with passive suction cup. This paper includes background and
objectives of this research, prototyped mechanical systems, moving control system,
experimental result, some discussions in each experiment and a conclusion.
vi
ABSTRAK
Dalam kertas ini, kita akan mengkaji tentang satu robot memanjat kaca yang
kecil dan ringan. Ia akan digunakan dalam kehidupan kita. Konsep ini akan
digunakan dalam robot mencuci tingkap. Mekanisme bergerak adalah dua roda
dengan pasif cangkuk sedutan. Dengan menggunakan mekanisme ini, robot akan
boleh bergerak semua arah.
Prototaip robot memanjat kaca akan dibina. Dimensi robot adalah kira-kira
100mm x 200mm x 100mm dan beratnya kira-kira kurang daripada 2 kg. Prototaip
robot akan mengandungi dua roda yang bersendirian dan pasang dengan cangkuk
sedutan. Kertas ini mengandungi latar belakang dan objektif penyelidikan ini, sistem
prototaip mekanikal, sistem kawalan gerakan, keputusan eksperimen, bincangan
eksperimen dan kesimpulan.
vii
TABLE OF CONTENT
CHAPTER TITLE PAGE
DECLARATION ii
DEDICATION iii
ACKNOWLEDGEMENT iv
ABSTRACT v
TABLE OF CONTENTS vi
LIST OF TABLES vii
LIST OF FIGURES ix
LIST OF SYMBOLS AND ABBREVIATIONS xi
LIST OF APPENDICES xii
1 INTRODUCTION 1
1.0 Project Background and Inspiration 1
1.1 Window Climbing Robot 2
1.2 Problem Statement 3
1.3 Project Scope And Objective 4
2 LITERATURE REVIEW 6
2.0 Preview 6
2.1 Window Climbing Robot 6
2.1.1 Window Climbing Robot With Vacuum Pump 8
2.1.2 Window Climbing Robot Without Vacuum
Pump
11
3 PROJECT OVERVIEW 14
3.0 Introduction 14
viii
3.1 Concept 16
3.1.1 Behavior of Passive Suction Cup 18
3.1.2 Height Change 20
4 METHODOLOGY 21
4.0 General Resources 21
4.1 Preview of Structure And Mechanism 22
4.2 Preview of Electronic System And Devices 24
4.3 Preview of Peripherals Interfacing And
Programming
32
5 EXPERIMENT AND RESULT 35
5.0 Program Debugging 35
5.1 Sensor 35
5.2 Climbot Working Path 36
6 DISCUSSION AND CONCLUSION 40
6.0 Discussion 40
6.1 Suggestions And Future Development 41
6.2 Conclusion 42
REFERENCES 44
APPENDICES 45
Appendix A Gantt Chart 45
Appendix B Climbot Source Code 47
ix
LIST OF TABLES
TABLE NO. TITLE PAGE
1 Locomotion Mechanism of Wall Climbing Robot
Using Suction Cups as a Hold Principle
18
4.0 The Dynamixel AX-12 characteristic specification 29
x
LIST OF FIGURES
FIGURE
NO.
TITLE PAGE
2.0 Mechanism of small-size window cleaning robot 9
2.1 Prototype window cleaning robot 10
2.2 Prototype of biped climbing robot 11
2.3 Stickybot, a new bio-inspired robot capable of
climbing smooth surfaces.
12
2.4 Directional stalks comprised of 20 Shore-A
polyurethane
12
2.5 Prototype of climbing robot 13
2.6 The mechanism of leg of climbing robot 13
3.0 Tear-off force versus pressing force 19
3.1 Height changes of the suction cup versus the pulling
force
20
4.0 Methodology of climbot design and construction
flowchart
22
4.1 The mechanism of climbot 23
4.2 The methodology of climbot structure and mechanism
design
24
4.3 The PIC 18F4550 characteristic specification 25
4.4 Main circuit of Climbot 26
4.5 The general preview of the electronic interfacing part
of climbot.
27
4.6 Schematic for Voltage Regulator Circuit 27
4.7 Schematic for RESET circuit 28
4.8 Dynamixel AX-12 servo actuators. 30
4.9 Nickel cadmium AA 700mAh with 9.6V battery 31
xi
4.10 One packet of Infrared sensor 31
4.11 Infrared sensor circuit board with comparator LM324 31
4.12 Flowchart of program 33
4.13 Main circuit 33
4.14 Infrared sensor circuit 34
5.0 Working path of window climbing robot 36
5.1 Moving Path of Climbot when horizontal direction
testing
37
5.2 Moving path of climbot when moving up with
direction 45 degree
38
5.3 Moving path of climbot when in direction moving up 38
5.4 Moving path of climbot when moving down direction 39
xii
LIST OF SYMBOLS AND ABBREVIATIONS
Cm -Centimeter
DC -Direct Current
ESC - Electrostatic Chuck
IB - Internally Balanced
IR -Infrared Sensor
NDE -Reliable Nondestructive Evaluation
PTFE - Polytetrafluoroethylene
SRF - Smart Robot Foot
xiii
LIST OF APPENDICES
APPENDIX TITLE PAGE
A Gantt Chart Semester 1 and 2 44
B Source Code of Climbot 47
1
CHAPTER 1
INTRODUCTION
1.0 Project Background and Inspiration
Changes of social and living environments require supporting works and lives
in our lives. Electronics, mechatronics and informatics are key technologies to
achieve the support system. Especially, a robot, which is made by their integration, is
expected as the main equipment. To realize the practical robot in our lives, the robots
are required to meet four conditions at the minimum: compact, lightweight, safety
and inexpensive. However, it is difficult to resolve all conditions, and a lot of studies
of the working robots reported have not achieved them.
In many practical, autonomy of a mobile robot means that the robot not only
acts autonomously, i.e. it navigates and fulfils its task without any human
intervention. But the robot should also carry its own power supply in order to operate
without an umbilical cable. While this energy-autarky is not a severe problem for
wheeled mobile robots, it is a real challenge for climbing robots because the weight
of a climbing robot is of tremendous importance, and hence also the weight of the
weight of the power supply. For energy-autarkic climbing robot it is thus essential to
keep the weight and the energy consumption as low as possible.
Note that a great amount of high rise buildings are emerging in modern cities
today. Every architect prefers to present the new buildings to the world with his own
characteristics. That is why the number of high-rise buildings with complicated
shapes is increasing worldwide. However these external cladding walls require
constant cleaning. As a result, even skilled workers with safety ropes have
2
difficulties in climbing those buildings and currently almost of them are still cleaned
manually. The development of walking and climbing robots offers a novel solution to
the above-mentioned problems. Because of the current lack of uniform building
structures, window cleaning and maintenance of high-rise buildings is becoming one
of the most appropriate fields for robotization. A cleaning robotic system can make
the automatic cleaning of high-rise buildings possible and relieve cleaning workers of
their hazardous work.
1.1 Window Climbing Robot
Till recent years, many types of adhesion mechanisms have been used. There
include suction cups, electrostatic chuck, effective adhesion and surface adaptability.
One substantial part of energy consumption is required for holding a climbing
robot at the surface, e.g. a wall. Besides magnetic adhesion and van-der-walls forces,
suction cups are most commonly used which are evacuated actively by a vacuum
pump. Most machines use either a single large suction cup or multiple small suction
cups on each foot. Alternatively, the body of a climbing robot is used as a large
suction cup with a wheeled drive-system underneath. In general, these suction cups
are evacuated actively by at least one vacuum pump which is mounted on the robot.
This is called “active suction” or “active suction cups”, respectively, hereinafter.
Magnetic adhesion is limited to situations where the surface is magnetic.
Then “Suction Adhesion”, this involves the use of cups and small pumps to create
vacuum inside the cup. This method is disadvantageous. Firstly, it takes time to
generate pressure inside the cups. Secondly, it cans locomotive only on smooth
surfaces. If the cups cannot stick to a completely flat surface, then the cups cannot
generate sufficient pressure inside them and would fall off the wall.
Climbing robots feature the special working environment and mobility
against gravity. They are useful devices adopted in a variety of applications such as
reliable nondestructive evaluation (NDE) and diagnosis in some hazardous
3
environments, welding and manipulation in the construction industry especially of
metallic structures, cleaning and maintenance of high-rise buildings.
As the results of surveying the requirements for the window cleaning robot,
the following points are necessary for providing the window cleaning robot for
practical use is it should be small size and lightweight for Portability, clean the
corner of window because fouling is left there often, sweep the windowpane
continuously to prevent from making striped pattern on a windowpane, automatic
operation during moving on the window.
For sufficiently flat surfaces like windows, a few number of climbing robots
use “passive suction cups” made of elastic material, i.e. vacuum cups which are
evacuated simply by pressing them to the surface. In this way, the vacuum is
generated indirectly by utilizing the robot’s locomotion system without a specific
vacuum pump, and no energy is consumed for adhesion. On more or less clean
surfaces, the vacuum is kept for a longer period of time. Freeing a passive suction
cup by tearing it off the surface needs large forces which cause mechanical stress and
thus finally a rigid and heavy mechanical construction. A better solution is to release
the suction cups in a controlled manner by a specific mechanical construction which
opens small (passive) valves to inflate the cups. But this construction and not only
increases the weight of the climbing robot. It also leads to severe kinematic
restrictions.
1.2 Problem Statement
Today, window climbing robot industrial face the constraints and challenges
of the complexity of technology, time to market and limited market interest due to
the high cost of products. The limited resources of highly talented and passion robot
designer and engineers, high cost of the R&D and low market revenue had somehow
contribute to the factor of flat growth in the robot entertainment industrial.
4
Market demands many automatic windows cleaning system. However, almost
of them in market now are mounted on the building from the beginning and they
needs very expensive costs. Besides that, many of them need to service every time.
From the survey, the requirement of window cleaning robot is small, light weight,
low cost, and automatic operation during moving on window.
The climbot project will basically apply the fundamental concept of industrial
that promises the concern issue of competitive cost, quality material and user friendly
technology and approaches. A basic microcontroller of 18F4550 PIC and general
Infra-Red sensor had been applying to the robot.
The purpose of climbot is design a window climbing robot without vacuum
pump. This is because vacuum pump will bring many defect includes make the robot
noisy, complex, expensive and consume much power. But climbing robot using
passive suction cup will meet many problem likes what structure is most suitable,
how many suction cups are need, what type of suction cups suitable and so on. The
structure of robot also need to design so can minimize the weight of robot.
1.3 Project Scope and Objective
In order to achieve the objective of the project, there are several scope had
been outlined. The scope of this project includes using MPLAB IDE to program
microcontroller, build hardware for the robot, and interface the hardware to computer
by using RS232 serial port communication. The robot will test until it able move
vertically on the window, not fell down and able to avoid obstacles.
The main core of this project is to design and build a window climbing robot
which can adhesive on the window and move vertically on the surface of window. It
also has the ability to avoid the obstacles and automatic operation during moving on
the window. Then, apply the concept of window climbing on window cleaning robot.
Then, the robot also is a window climbing robot without using vacuum pump.
This is a challenge to make the robot stick on the smooth surface without any
5
vacuum machines. Without using vacuum pump also can make the cost of robot
decrease. The concept of window climbing robot will apply to window cleaning
robot by adding cleaning system on the robot.
6
CHAPTER 2
LITERATURE REVIEW
2.0 Preview
Numerous robots exist for climbing inclined surfaces. Motivations are
typically inspection or maintenance in dangerous environments like the exterior of a
tall building, airplane, or ship, or in nuclear facilities or pipelines. More limbs
typically provide redundant support and often increase load capacity and safety.
These benefits are achieved at the cost of increased complexity, size, and weight.
Thus, when compactness and efficiency are critical, a structure with minimal weight
and complexity is best applied.
2.1 Window Climbing Robot
Cheap, efficient adhesion remains a seemingly unsolved engineering problem.
In window climbing applications, reliable adhesion is a precondition for the
development of autonomous robots. On the other hand, in factory automation (and
particularly where mechanical gripping is not suitable) adhesion mechanisms such as
suction cups and electrostatic chuck are used. However, in terms of maintenance and
capital investment such systems come not cheap. In this text we propose an
alternative system that combines reliability with cost performance. Such a system,
not only would be useful for window climbing but it might be a potential
replacement for suction cups in object handling applications. In the following
sections we review how and why suction cups and electrostatic chuck are used in
7
industry. We introduce the concept of distributed adhesion and finally we evaluate an
implementation of the same based on magnets.
a. Suction Cups
In factory automation, a widely used adhesion mechanism is the suction cup.
Suction cups are used for a wide range of purposes: from handling glass windows in
car assembly line to the handling of cartoon boxes in packaging lines. The popularity
of suction cups is rooted in industrial-strength reliability, excellent grip (up to 1 atm),
ease of use: the grip can be controlled at will by just closing/opening a valve, and in
delicate applications, such as glass handling, the soft cups are better suited than
mechanical gripping. However, suction cups have three main drawbacks that limit
their versatility as an adhesion device. There are they require of a vacuum pump that
needs periodic maintenance (operating overhead), and suction cups need a smooth
surface because a suction cup won’t work on a cylindrical object, or a rough surface
like tree bark. Suction cups are low Efficiency. The size, weight, bulkiness and
power consumption of the vacuum pump seems not suited for applications where
available power is limited such as in autonomous robots.
b. Electrostatic Chuck
Electrostatic Chuck (ESC) is a device (usually custom made) that achieves
controlled adhesion by means of electrostatic forces. It is usually used in
semiconductor industry to manipulate, in vacuum, delicate thin silicon wafers that
risk damage and/or contamination if gripped by means of mechanical devices. A
typical ESC has a shape of disc and has electrodes insulated by a dielectric material
(ceramic, polymer). Characteristics of ESC are: a) It can be used in vacuum. b) Its
rigidity combined with an uniformly distributed adhesion force do not deform thin
delicate wafers, c) The high sensitivity to the surface roughness (due to the short
range of the generated adhesion force) renders them ineffective in “normal”
roughness surfaces (Ra>100um). Both, suction cups and ESC are active devices:
adhesion can be switched on/off at will.
8
C. Effective Adhesion & Surface Adaptability
In suction cups, electrostatic chuck, (and other noncompliant adhesion
mechanisms such as magnets, the Internally Balanced (IB) magnet , and
electromagnets), the usual poor adaptability of the device to the substrate’s surface
roughness precludes effective grip on curved and/or rough surfaces. As me
mentioned ESC’s effectiveness, for instance, is limited to ultra flat surfaces. On the
other hand, gecko foot-hair adhesion which is based on short-range forces such as
Van der Waals and capillary force is effective in many kinds of rough surfaces. This
seems due to the compliance provided by its cantilever-shaped foot-hairs. From a
contact mechanics point of view, a relation between effective adhesion and
compliance seems to exist. This suggests that if a given adhesion mechanism (ESC,
magnet) can be made (more) surface roughness compliant their effectiveness range
might be expanded to more kinds of surfaces. One way to do this is by mimicking the
same structure of gecko-foot hair. However, producing gecko foot-hair micro-
structures (even at mm scales) might be expensive. Thus, one way to achieve a low
cost but still reasonably compliant device might be to adopt a “striped down” version
of the (compliant) gecko foot structure where compliance is traded for manufacturing
cost.
2.1.1 Window Climbing Robot with Vacuum Pump
Window climbing robot with vacuum pump means that the robot uses the
active suction cups as locomotion mechanism of robot. But vacuum pumps make
climbing robots noisy. They also increase the weight and the costs of a robot.
Additionally, the design complexity and the weight are increased due to additional
vacuum tubes, muffles, valves and so forth. Hence, it is desirable to avoid a separate
installation for vacuum generation and transportation.
9
2.1.1.1 Small Size Window Cleaning Robot
This robot is design by Tohru MIYAKE and Hidenori ISHIHARA from
Kagawa University, Japan. Small size window cleaning robot’s weight is less than
5kg, including the weight of battery and washing water. The robot size 300mm x
300mm x 100mm. The robot mechanism as shown in Figure 2.0 was designed under
focusing on the window cleaning robot for just a single windowpane. The robot
moves on windowpane by two-wheel locomotion mechanism with holing the body
on the surface using a suction cup vacuumed by a pump.
Figure 2.0 Mechanism of small-size window cleaning robot.
The most important point in the mechanism is the friction coefficient of
suction cup and tire against the adhering surface, e.g. high friction between the tire
and the surface of window can transmits the torque, and low friction between the
suction cup and the surface of window can achieves to move the robot with holding
the body on the window. PTFE (Polytetrafluoroethylene) was selected for the
materials of surface of a suction cup, and silicon rubber for the material of tires.
Vacuum pump Pressure is maximum -33.3 kPa with flow volume 2.5 l/min.
10
Figure 2.1 Prototype window cleaning robot
2.1.1.2 Biped Climbing Robot
This robot is design by Mark Minor, Hans Dulimarta, Girish Dang, Ranjan
Mukherjee1, R.Lal Tummala, and Dean Aslam from Mechanical and Electrical
Engineering Department, Michigan State University. These robots must be
sufficiently small to travel through confined spaces, such as ventilation ducts, and to
avoid detection while traveling along the outside of a building. It is assumed that the
robot will travel on smooth surfaces with varying inclinations, such as floors, walls,
and ceilings, and walk between such surfaces. Thus, the robot must be capable of
adapting and reconfiguring for various environmental conditions, be self-contained,
and be capable of carrying wireless sensors, such as a camera or microphone and
their transmitters. The purpose of deploying such a robot would be for inspection,
isolating the source of a biological hazard, or for gathering information about a
hostile situation within a building.
The Smart Robot Foot (SRF) grips the climbing surface and supports the
weight of the robot as shown in Figure 2.2. The SRF measures 40 X 40 X 25 mm3
and weighs 35g with a 40mm diameter suction cup. The total power consumption is
0.5 watts. Its main components are a diaphragm-type motor-operated vacuum pump,
a suction cup, a pressure sensor and a micro machined shape memory alloy valve.
The pump is connected to the suction cup through a custom designed miniature
11
aluminum connector. The connector integrates the SRF components and serves as a
mounting platform for the robot body. The suction cup features cleats that increase
the rigidity of the grip. The signal from the pressure sensor indicates whether the
SRF is firmly attached to the surface. The SRF is released through actuation of the
valve by a signal from the control unit. The weight that is supported by the SRF is
determined by testing it on different surfaces with loads applied parallel and
perpendicular to the surface. In parallel configuration, the load is applied at a
distance D from the clean glass surface. Results indicate that a 40mm diameter
suction cup on a glass surface can support a parallel load of approximately 590gr
80mm from the surface and 365gr 120mm from the surface.
Figure 2.2 Prototype of biped climbing robot
2.1.2 Window Climbing Robot Without Vacuum Pump Window climbing robot without vacuum pump means that the robot uses the
passive suction cups, magnet or directional adhesive material as locomotion
mechanism of robot. Window climbing robot without vacuum pump includes
Stickybot, Climbing robot and Climbatron.
12
2.1.2.1 Stickybot The robot design by Stanford University, called Stickybot as shown in Figure
2.3, draws its inspiration from geckos and other climbing lizards and employs similar
compliance and force control strategies to climb smooth vertical surfaces including
glass, tile and plastic panels. Stickybot use microspines to climb rough surfaces such
a brick and concrete.
To enable Stickybot to climb a variety of surfaces an analogous, albeit much
less sophisticated, hierarchy of compliances has been employed. The body of
Stickybot is a highly compliant under-actuated system comprised of 12 servos and 38
degrees of freedom. The torso and limbs are created via Shape Deposition
Manufacturing, using two different grades of polyurethane. The stiffest and strongest
components of Stickybot are the upper and lower torso and the forelimbs, which are
reinforced with carbon fiber as shown in Figure 2.4. The central part of the body
represents a compromise between sufficient compliance to conform to gently curved
surfaces and sufficient stiffness so that maximum normal forces of approximately +/-
1N can be applied at the feet without producing excessive body torsion.
Figure 2.3 Stickybot, a new bio-inspired robot capable of climbing smooth surfaces.
Figure 2.4 Directional stalks comprised of 20 Shore-A polyurethane
13
2.1.2.2 Climbing Robot
The objective of this design was to keep the weight of the climbing robot as
shown in Figure 2.5 as low as possible, so that this is in a position to move on
smooth surfaces like window panes with suction cups.
So a suction system likes Figure 2.6 was developed by which the climbing
robot can be stopped on the disk completely passively, which means without using
energy. For this purpose, simple "passive" suction cups are pressed with the normal
locomotor system on the disk and thereby evacuated.
For the movements of the individual legs difficult to coordinate, the low-
weight lubricant-free igubal® pillow block bearing is used, the individual piece
weighing not more than two grams.
Figure 2.5 Prototype of climbing robot.
Figure 2.6 The mechanism of leg of climbing robot
14
CHAPTER 3
PROJECT OVERVIEW
3.0 Introduction
Recently, there have been many demands for automatic cleaning system on
outside surface of buildings such as window glass by increasing of modern
architecture. Some customized window cleaning machines have already been
installed into the practical use in the field of building maintenance. However, almost
of them are mounted on the building from the beginning and they needs very
expensive costs. Therefore, requirements for small, lightweight and portable window
cleaning robot are also growing in the field of building maintenance. As the results of
surveying the requirements for the window cleaning robot, the following points are
necessary for providing the window cleaning robot for practical use:
1) It should be small size and lightweight for portability.
2) clean the corner of window because fouling is left there often.
3) Sweep the windowpane continuously to prevent from making striped
pattern on a windowpane
4) Automatic operation during moving on the window.
The locomotion mechanism must be chosen to satisfy these demands,
especially later two subjects. Here locomotion mechanism means the combination of
adhering mechanism, traveling mechanism and a mechanism for changing a traveling
direction. First requirement brought the following specifications for designing the
window cleaning robot.
15
In previous researches, we have proposed outline of mechanical system for
window cleaning robot for filling above mentioned demands. And we confirmed
basic properties and its possibility by the experiments. That mechanical system
consists of two-wheel which attach to passive suction cups. By this mechanical
system, window cleaning robot can move on vertical window with adhering
smoothly. This robot adheres on a windowpane with cleaning as moving on large
windows.
This paper deals with traveling control system in order that above mentioned
mechanical system of window cleaning robot can be operated automatically. We
know a lot of studies on window climbing robot by various research groups, but there
are few researches and development of motion control of window climbing robot.
However the environment of robot which moves on vertical or inclined plane is quite
different from the robot moves on horizontal plane at conditions of motion control.
This is due to difference of direction of gravity works on the robot.
On the other hand, the climbot, window robot project do faced some
challenges and constraints in both the technical part and project implementation.
On the technical part, initially the projects face the constraint of choosing the
best motor for the robot. At first the Cytron servo motor C55 was chosen to be
implemented on the robot, but since torque were no enough to move the wheel as a
reason to shift to the AX-12 Dynamixel servo actuator. Although it is clear that the
price of AX-12 is higher than C55, but the AX-12 has the very high torque and good
in quality. Then, because of change the servo motors, the main circuit of the robot
also change.
On another part, the hardware and structure of the climbot mechanism which
had been design on the early first semester had to be redesign when its fail to match
the program and the desired locomotion. The problem mainly contributed by the
unstable movement when the robot climbs on the window. The size of base robot
form 10cm x 10cm increase to 20cm x 10cm.
16
3.1 Concept
A mobile robot with the capability of climbing walls or other inclined
surfaces and carrying out various tasks must be light enough so that its weight does
not strain the structure, yet rugged enough to work in an exterior environment and
powerful enough to carry the necessary payload. It must also have the ability to climb
over obstacles since the various surfaces like building walls, etc. will normally have
protrusion such as pipelines, window frames, etc and to maneuver reliably within an
undefined environment. Clearly, climbing robots need not be able to undertake all of
these tasks and some applications may require only one or two such capabilities. In
this paper, a design of window climbing robot is presented in order to solve these
problems.
Based on the introduction and literature review, it is fairly understand that the
climbot project is one of the kinds to create a window climbing robot based on the
study and implementation of the climbing robot. Thus in order to design and produce
a complete project which concern on the elements of technology market values, a lot
of concepts and inspiration either from the nature, science knowledge, art, economy
and user psychology had been concern in the preliminary stage of the project design
and planning.
The window climbing robot requires following functions. First is mobility,
which the robot can move continuously on a vertical smooth surface with velocity
enough. The system is handy and can be used in any place. Robot moves along the
surface of window with suctioning. Holding equipments and loco-mechanism must
be considered to design the robot with abilities to achieve the above performance.
There are four types of hold principle for climbing window surface; magnetic
force, counter weight, sticky material and vacuum system. A system using magnetic
force is useful on a steel wall, but on a window glass this is inconvenient since it
needs that a window glass is wedged between two magnetic bodies, therefore at
never be closed window the hold system does not work. In addition, thick window
glass as a double glass window needs so much magnetism, It means necessity of
control of magnetic force, but it is complicating factor Counter weight can keep the
17
robot on the vertical wall and also help the motion opposing gravity. But in the
system, the robot must be towed using string-like thing as ropes or wires. It is not
suitable for the concept of handy.
Vacuum suction principle also can keep the robot on the window surface.
Window climbing robot with vacuum pump means that the robot uses the active
suction cups as locomotion mechanism of robot. But vacuum pumps make climbing
robots noisy. They also increase the weight and the costs of a robot. Additionally, the
design complexity and the weight are increased due to additional vacuum tubes,
muffles, valves and so forth.
Sticky material is one of the ways to keep the robot on the window surface.
There are same stick material like passive suction cups and directional adhesive
material. With the objective of window climbing robot, sticky material with passive
suction cups is most suitable for window cleaning robot. Hence it makes enough hold
force with lightweight and small size equipments.
Stick material has been selected for the hold principle. It allows handy design
and enough performance. Loco-mechanism in order to move freely on the window
surface the robot is required linearity and rotatability. Table 1 compares
characteristics of five types of locomotion mechanisms in points of mobility and
complexity of mechanisms. Table 1 says that a crawler mechanism allows good
linearity but rotatability is not good, that this mechanism needs many suction cups at
the minimum which are attached on outer of a crawler, and that it makes the
mechanism complexity and leads increase of mass.
The mechanism of 2 drive wheels has linearity and rotatability and it only
requires one suction cup at the minimum Locomotion mechanisms of the walking,
parallel link and inch worm are suitable solutions of the window cleaning robot since
it is easily able to ride over the frames on wall like a window frame. However, there
are several problems such as the achievement of the fast and continuous movement
and simplification of the complex mechanisms. In this research, we choose 2 drive
wheels as a locomotion mechanism of window cleaning robot according to the
evaluation of above-mentioned various locomotion methods.
18
3.1.1 Behavior of Passive Suction Cup The passive suction cup of outer diameter with 75 mm and a weight of 23 g
will be discussed. It is mounted simply by a threaded pin. The achievable holding
force (measured perpendicular to the surface) is given by the vacuum and the
effective area underneath the suction cup. In theory it is 433 N at maximum. In
practice it depends on how strong a cup has been pressed to the surface, i.e. the
pressing force, and hence on the remaining amount of air underneath the cup. Figure
3.0 shows this dependency and gives the maximal pulling force, called the tear-off
force hereinafter, with respect to the pressing force.
19
Figure 3.0 Tear-off forces versus pressing force
These measurements were taken for a clean glass surface which is the best
case, in order to figure out the potential of passive suction cups. A pressing force of 5
N is needed to bend the rubber material of the suction cup such that it sucks to the
surface. But even with this small pressing force, the cup is able to hold up to 200 N.
increasing the pressing force increase also the tear-off force. A limit of 270 N is
reached when the pressing force is about 30 N because the top of the cup touches the
surface and the remaining air underneath it cannot be evacuated further. Overall a
strong amplification of the pressing force is achieved in this way and no energy is
used to push a foot to the surface. Such a pushing movement is dampened by the
elasticity of the cup itself.
Adhesion also leads to a friction force which prevents the robot from slipping
(down). It depends primarily on the vacuum underneath the cup, but also on the
ground material, especially its friction coefficient. But more importantly, the vacuum
is also depending on the pulling force. A pulling force results in an increased volume
and consequently in an increased vacuum. Thus the adhesive force is increased also.
It further seems as if there is a larger indenting of the cups material with the ground
due to an increased vacuum. This enlarges the friction forces additionally. In practice,
this effect depends on the initial volume and thus also on the pressing force.
Nevertheless, the robot may slip, although a suction cup is not torn off. The safety
20
factor, i.e. the number of suction cups, should hence be designed such that slippage
does not occur even in the worst case.
3.1.2 Height Change
The volume underneath a suction cup depends on the acting forces as
discussed before. The height of the cup thus varies, especially depending on the
pulling force on the height change outweighs the effect of the pressing force as
Figure 3.1 shows. While the height of the suction cup is about 10 mm for any
pressing force without load, it goes up to more than 25 mm by an increasing puling
force, until the cup is torn off. This load dependant height change introduces
elasticity into the system which is relevant for position and posture control. But a
proper design of a climbing robot itself may reduce the impact of this elasticity.
Figure 3.1 Height changes of the suction cup versus the pulling force
21
CHAPTER 4
METHODOLOGY
4.0 General Resources
Generally, before starting the design and planning stage for the climbot
project, an intensive study and observation on the window climbing robot, such as
small-size window cleaning robot, stickybot, climbing robot and climbatron had been
carried out to get the general idea and a preliminary background on the process or
methodology which had to carried out in order to complete the project. Those
window climbing robots had been studied and observe their performance through
online websites, online video, E-journals and toys shops. This task is perform in
order to study the concepts, creativity and structural design of the climbing robot, it
the terms to perform reverse engineering stage on those successful products.
Then the preview and references process is conducted on previous student
projects to study their project and report, in order to get a clearer view on what had to
expected, their constraints and results. Several other related thesis and projects
produced by FKE student also had been view, especially on the electronic-circuit part
and peripheral interfacing, all those make available on the faculty thesis library.
The next stage which is more technical is the stage to collect relevant
resources for the project such as the data sheet for the microcontroller, sensor,
electronic components, and servos actuator. From those information obtain, the most
suitable devices is chose. Next for the hardware design, the mechanism structure is
designed based on kinematics and stability of knowledge and technology. Finally all
22
the elements are combine and mount together to test run and complete the project as
shown in Figure 4.0 below.
Figure 4.0 Methodology of climbot design and construction flowchart.
4.1 Preview of Structure and Mechanism
The structure of the robot is made by two wheels and each wheel attach to
suction cups. The wheels will locomote by two motors. The base of robot is made by
acrylic. Figure 4.1 below are the robot look likes:
Hardware Construction Mechanism Testing Hardware Modification
Mechanism Retest Circuit Development Circuit Troubleshooting
Circuit Modification Circuit Testing Circuit Interfacing
Software Development Software Debugging
Program Modification
Program testing
Trail Run Overall Modification
Project Complete Project Presentation Documentation
23
Top view side view
Front view 3D view
Figure 4.1 The mechanism of climbot
The climbot structure and mechanism is basically design by observing the
how the robot can move vertically on the smooth surface. The most important part is
the wheel of robot. The passive suction cups were attached on the wheel. The
diameters of wheels used were 6 cm and about 10 passive suction cups were used to
attach on the wheel. At the initial prototype, the robot base is 10 cm x 10 cm. After
testing the robot, modification of robot was done. The robot base size was change to
20 cm x 10 cm. The robot became more stable. Mechanism design as shown in
Figure 4.2.
24
Figure 4.2 The methodology of climbot structure and mechanism design.
4.2 Preview of Electronic System and Devices
On the circuit and electronics parts, the first stage of the design methodology
is to understand the requirements of the project and the limitation of various
constraints such as the level of technology, microcontroller reliability and the
complexity of programming and interfacing. First, an intensive studies is conducted
to learn and observe the others circuit and devices used by previous year projects and
research projects conducted worldwide. From those technical studies of the circuit,
schematic layout and components used, the suitable and most reliable circuits,
components and peripheral interfacing method are modified and applied to the
climbot electronics stage.
25
The first stage is to choose the suitable microcontroller for the climbot project
and the PIC18F4550 microcontroller as shown in Figure 4.3 had been selected due to
its reliable performance and availability to program in C-language. Below
characteristic specification show the advancement of the microchip.
The most important part of the circuit is the central processing unit,
microcontroller. Microcontroller PIC18F4550 which is 40 pins 8-bit CMOS FLASH.
The microcontroller has 5 difference ports that are port A, B, C, D and E. the core
features of this microcontroller are high performance RISC CPU, only 35 single
word instructions to learn, all single cycle instructions except for program branches
which are two cycle, operating speed: DC - 20 MHz clock, up to 8K x 14 words of
FLASH Program Memory, up to 368 x 8 bytes of Data Memory (RAM), up to 256 x
8 bytes of EEPROM Data Memory, low power, high speed CMOS
FLASH/EEPROM technology, fully static design and in-Circuit Serial Programming
(ICSP) via two pins.
Figure 4.3 The PIC 18F4550 characteristic specification.
PIC18F4550
26
Figure 4.4 Main circuit of Climbot.
After chosen the microcontroller of the climbot, the next step is to choose the
peripherals for the window climbing robot. The basic components will be servo
motors as actuators, Intra-red sensors for obstacle and object detection, and LED in
various interactive formations for modes expression of the climbot. Main circuit
showed in Figure 4.4.
Two servo motor will be used in the climbot project, there are Dynamixel
AX-12 actuator standard torque servo motors. Meanwhile, on the Infra red sensors
part, four units of infrared sensors will be placed on the front left and right of the
climbot to interface with obstacles and one unit will be placed on the middle to
interface with objects.
The power supply part is the most critical unit in an electronic project. All the
microcontroller, servomotors and InfraRed sensors require for 5V respectively, and it
is obtain from the power supply. Rechargeable Ni-Cd AA 9.6V, 700mah, batteries
will be used to power climbot. The Ni-Cd battery is quite small, light and has longer
life spending and can be recharge to many cycles. The electronic interfacing part
showed in Figure 4.5.
27
Figure 4.5 The general preview of the electronic interfacing part of climbot.
4.2.1 Voltage Regulator Circuit The voltage regulator circuit is used to provide a constant 5 Volt to the circuit.
Voltage regulator 7805 was implemented in the voltage regulator circuit. The voltage
regulator 7805 has 3 terminal pin for connection which are input, ground and output
pin. The maximum voltage for input pin of the voltage regulator 7805 is 35 Volt. The
voltage of output pin is 5 Volt with output current 500 mA.
Figure 4.6 Schematic for Voltage Regulator Circuit
28
For this project, the power supply for the circuit is 9.6 Volt from battery.
Diode IN 4001 was used to protect the voltage regulator 7805 when the power supply
was connected in wrong terminal condition. The 1.0 ohm resistor was connected to
the input pin of voltage regulator for the purpose to filter out the noise come from
DC motor. Adding capacitors into the voltage regulator circuit can minimize the
noise to produce more stable and constant output voltage, 5 Volt. A LED was used as
indicator of 5 Volt output. The schematic for voltage regulator circuit showed in
Figure 4.6.
4.2.2 Reset Circuit
The reset circuit as shown in Figure 4.7 is to control the RESET pin on the
microcontroller. The RESET pin of PIC microcontroller is active low. It is used as an
input to initialize the microcontroller in a known start up state.
Figure 4.7 Schematic for RESET circuit
When the button is not press, the signal for MCLR is 5 Volt. Then the
microcontroller will not reset. When the button is press, the signal for MCLR is 0
Volt. The microcontroller will in RESET condition.
PI
C 1
6F 8
77A
______ MCLR
29
4.2.3 Actuator The movement mechanism of a mobile robot is known as its drive train. The
motors and motor controllers constitute the most important part of the robot drive
train. The process of choosing a motor is a significant undertaking because the motor
ultimately selected has an impact on many aspects of the robot.
There are three basic types of electric motors commonly found in robots,
which are continuous DC motor, servo motor, and stepper motor. The robot in this
project will build by using 2 servo motors. The model of servo motor is Dynamixel
AX-12. The Dynamixel series robot actuator is a smart, modular actuator that
incorporates a gear reducer, a precision DC motor and a control circuitry with
networking functionality, all in a single package. Despite its compact size, it can
produce high torque and is made with high quality materials to provide the necessary
strength and structural resilience to withstand large external forces. It also has the
ability to detect and act upon internal conditions such as changes in internal
temperature or supply voltage. The Dynamixel series robot actuator has many
advantages over similar products.
Table 4.0 The Dynamixel AX-12 characteristic specification.
The main controller communicates with the Dynamixel units by sending and
receiving data packets. There are two types of packets; the “Instruction Packet” (sent
from the main controller to the Dynamixel actuators) and the “Status Packet” (sent
from the Dynamixel actuators to the main controller.)
30
Figure 4.8 Dynamixel AX-12 servo actuators.
4.2.4 Power Supply
The power system of a robot is a critical part of its overall design. Simply
stated, a robot needs power to run. Therefore, the power source should be able to
stores enough energy for the robot to run for a predetermined time period without
having to be replaced or recharged. Additionally, power must be provided at a
constant voltage through a particular voltage regulation scheme in order to ensure the
proper operation of all circuitry and components. Most of the power consumption in
window climbing robot results from the motors. As such, a battery that meets the
power needs of the motors, and include an additionally margin of error for safety,
need to be chose.
Nickel cadmium batteries are ideal for many robotics applications because
there are among the least expensive and most readily available, have a high capacity,
and can be recharged up to 500 or more times. They exist in all standard size as well
as special purpose sub-sizes. The Nickel cadmium batteries as shown in Figure 4.9
used is AA with 700mAh 9.6V.
31
Figure 4.9 Nickel cadmium AA 700mAh with 9.6V battery.
4.2.5 Sensors Sensors give a robot means to perceive its environment. The robot processes
the information received from its sensors and reacts in predetermined manner
according to the design of the control system. For window climbing robot, the robot
needs to sense the surrounding and to avoid the obstacles. Infrared sensors consist of
an infrared transmitter that sends out an invisible beam of light into the environment
and an infrared receiver that absorbs the beam of the light that is reflected back.
■ 4 IR Sensors as shown in Figure 4.10 attached for collision avoidance
purpose.
■ Front, back, down front and down back position.
■ Using comparator (LM324) as shown in Figure 4.11, output voltage from IR
receiver will compare to an input voltage through a variable resistor.
Figure 4.10 one packet of
Infrared sensor. Figure 4.11 Infrared sensor circuit board with comparator LM324.
32
4.3 Preview of Peripherals Interfacing and Programming
The PIC18F4550 series which may support C programming language will be
fully utilize to operate based on the C-language in the programming mode. The
microchip compiler software itself, MPLAB will be used as the programming
platform to write the program, simulate and compile to the hex file before be loader
into the microcontroller. The program for the climbot will be written based on the
movement of the window climbing robot.
The program written in C++ language is set to perform a solely autonomous
window climbing robot that will be programmed to move vertically on the window
and move on the routine path for motive to clean the window. The climbot robot is
autonomous in the sense that it will respond to its surrounding and perform
unstructured task based on the respond signal on the sensors of the robot and thus
activated its modes selection automatically. Via the four Infra-Red sensor, the robot
is able to perform such as obstacle avoidance and sense the below of robot, to detect
either the surface is empty or not.
PIC MPLAB microcontroller programming software will be use as the
platform to write the program, simulate, debug, verified and burn the hex file into the
microcontroller via self made program board of the JDM. In order to perform in-
circuit debugger programming during real time operation (RTO) fine-tuning of the
robot, In-Circuit Debugger ICD2 schematic had been added to the main circuit to
support the in-circuit debugger function. The programming flow chart as shown in
Figure 4.12 will be discussed on Chapter 5.
33
Figure 4.12 Flowchart of program.
Figure 4.13 Main circuit.
34
Figure 4.14 Infrared sensor circuit.
35
CHAPTER 5
EXPERIMENT AND RESULT
5.0 Program Debugging
After the climbot hardware, structure, and electronic system are tested, the
next stage will proceed to the programming enhancement of the robot where more
dynamic and interesting gait pattern and movement to fully optimize the 10 degree of
freedom of the robot will be tested. In this stage, creativity and observation of real cat
movement and characteristic play an important role to enhance the climbot
movement and body flexibilities. The aid of support circuit of In-Circuit Debugger
tool (ICD2) from MicroChip free share programmer plays an importance role to
debug the program. The MPLAB IDE software which is able to support the
debugging process is fully utilized.
5.1 Sensor
Basically four pair of infrared sensor had been used in climbot. These are use
to detect the existence of obstacle where 2 unit is places on the front panel and
another 2 unit was places on the back panel of the robot. In order to create a
autonomous program that have many modes but only activated through the IR sensor.
A comparator chip of LM 324 was attached to the receiver LED sensor to
enhance the signal before it when to the microcontroller. Variable resistor was also
attached so that the sensors are adjustable of its sensitivity to light, and can operate
36
on day time or under bright light. However it will effected its sensitivity when it is
too bright where under the florescence light without sun light, it can operate on the
distance of maximum 5cm, but under day light, it only exceed to 1.5cm.
5.2 Climbot Working Path Meanwhile, a push button is attached to the microcontroller pin-1 to activated
the master clear function of the microcontroller and reset it. Another one push button
is attached on pin-2 (portA0) as load into the autonomous program. When the robot
power supply is on, the program will run and wait for pin-2 ‘ON’. When pin-2 is
‘ON’, the robot will start to run.
Figure 5.0 Working path of window climbing robot
This chapter reports experimental result of motion control of prototyped
window climbing robot. At the initial stage of climbot, the servo motors used are
Cytron C55 servo. But after testing, the C55 is not suitable use in climbot. It is
because the C55 servo motors have not enough torque to move the wheel when the
wheel was stick on the window. After changing the actuators to Dynamixel AX-12,
main circuit needs change to a new one. Way of write programming also different.
Hence, I need to study the datasheet of AX-12 before write a new program.
37
This experiment consists of four kinds of experiments. There were
measurements of performance of attitude control when the robot moves to horizontal
direction, elevation angle of 45 degrees, moving down and moving up.
The robot was examined on the window stood vertically. The glass of the
window is flat, clear and the thick. The glass is held by window frame made of
aluminum. In all the experiment, the motions of robot is measured and observed. In
this experiment, electric power is supplied form batteries placed in the robot, i.e. the
robot is operated without any cables.
Test 1: Horizontal direction
Moving of horizontal direction was measured in same position on the window,
and same moving distance of 0.5 meters. At the starting point, the robot is attached
on the window direct to horizontal direction. Figure 5.1show the moving path of
robot. The robot will starting at one end and go to another end. Climbot will move on
the reverse direction when in front have obstacles or below surface is empty. The
average moving velocities is 0.06 m/s. Climbot also testing on high speed mode. The
robot will direct move horizontal without delay. The average moving velocities is
0.167 m/s. But high speed mode will cause the robot unstable.
Figure 5.1 Moving Path of Climbot when horizontal direction testing
38
Test 2: Direction of elevation angle of 45 degrees
In this experiment, moving direction of elevation angle of 45 degrees was
measured as test 1. Figure 5.2 shows motion trajectory of climbing to direction of
elevation angle of 45 degrees. The average moving velocity is 0.06 m/s.
Figure 5.2 Moving path of climbot when moving up with direction 45 degree
Test 3: Moving up direction
Figure 5.3 indicates moving trajectory of the robot moved on the window
toward a path. The robot was started from the corner of lower left and climbed up
toward window frame of left side. The average moving velocities is 0.06 m/s.
Figure 5.3 Moving path of climbot when in direction moving up.
39
Test 4: moving down direction
Figure 5.4 indicates moving trajectory of the robot moved on the window
toward a path. The robot was started from the corner of higher left and climbed down
toward window frame of left side. The average moving velocities is 0.06 m/s.
Figure 5.4 Moving path of climbot when moving down direction
40
CHAPTER 6
DISCUSSION AND CONCLUSION 6.0 Discussion
Based on the achievement and respond from the lecturer and student, the
climbot project is seen successfully achieve its project scope and objectives as
discussed in chapter one. The earlier constrains that exist such as choosing the best
servo actuators to develop the robot. Because of climbot need a very high torque and
light weight servo actuator to run it. After testing and analysis, AX-12 Dynamixel
servo actuators is choose.
On the electronic parts, the decision to use intermediate advance
microcontroller of PIC18F4550 which support C-language had speed up the
interfacing and programming process. Previously the trial of using the Philips ARM7
LPC2119 microcontroller was too advance and complex, but the microcontroller was
very powerful and high-end. Since the PIC18F4550 microcontroller can support the
needs and requirements of the climbot internal and external peripherals electronic
devices such as the servomotors, LED, and IR sensor, the whole electronic part of the
project had been redesign to support the interfacing system with the PIC
microcontroller which play a role as the brain of the robot.
On next stage, as expected the project face much more challenge on the phase
of programming the microcontroller to perform all the task and specification of the
window climbing robot. The style and technique of C-language in microcontroller
programming is quite advance and required a lot of time to master and get familiar
with the interfacing part. The programming part will not only focus on the
41
microcontroller but will have to consider the interfacing with the external peripherals
such as the servo motors and LED. It consist of 70% of the second semester schedule
to debug and trail the program
In-circuit debugger platform via the ICD2 module which had been readied on
the main PIC circuit play an important role on the later part when the process of fine-
tuning the program to match the requirement climbot locomotion, movement and
positioning. This phase had also consumed a lot of time and effort. However, with a
well planning and systematic strategic approach to tackle all the problem and
constraints, the project had been completed as plan and achieve more than the
minimum requirements.
The project limitations are mostly on the unstable of climbot. The robot
sometimes can move vertically on the window for a long time but sometimes cannot.
It’s because of the passive suction cups maybe cannot stick on the window very well.
So, the robot will fell down.
6.1 Suggestion and Future Development
There is still a lot of space for improvement and enhancement for this climbot
project. Window climbing field is very large fields wish needed creativity, talent and
dynamic mentality to fully optimize the technology, knowledge and inspiration of the
nature. Thus the climbot project is begin develop and design based on dynamic and
organic platform where changes are flexible to be applied and inspiration from any
fields that are relevant may be absorb and adapt in the climbot project.
42
6.2 Conclusion
The window climbing platform brings a great significant to the robotic and
artificial intelligent field. The market value for this segment is large and beyond the
ordinary conventional field. The window climbing concept can be widely applied
into window cleaning application and fields of research. Based on the extract of a
journal, “The world has found out that the market potential on domestic and service
robots is far bigger than on industrial robots”. (DesignBoom, 2003), we can
conclude that climbot, a window climbing robot project is a right on time project with
a wide opportunity scope in the field of economy, scientific research and design. The
knowledge and skill obtain through this project will bring in a lot of benefit and
opportunity.
Based on the achievement and respond from the lecturer and student, the
climbot project is seen successfully achieve its project scope and objectives as
discussed in chapter one.
Climbing with passive suction cups reduces the energy consumption of a
climbing robot as far as possible in order to achieve an energy autarkic robot. The
proposed passive suction cups are robust, low weight, and low cost. This allow to
build low cost climbing robots having the same dexterity s robots using active
suction cups, but with reduced weight, complexity, and costs. Furthermore, nearly no
energy is needed for keeping the vacuum, and the robot moves with low noise. Hence,
passive suction cups seem to be an important approach to build fully autonomous,
energy-autarkic climbing robots for lots of potential fields of application.
On the other hand, even a very small gap underneath a passive suction cup
will cause the vacuum to break down by the time. The robots are thus not applicable
to any area and not allowed to stand still for a longer period of time. Additionally,
requirements concerning flatness and cleanness of the surface, on which the robot is
climbing, may be a bit harder than for active suction. Possible applications hence
range from cleaning and inspection of windows and facades or even of whole
greenhouses to climbing robots for education, entertainment, and hobby, probably
43
with a focus on the latter ones. Nevertheless, investigations have to be done
concerning how to deal with elasticity and different surface conditions.
44
REFERENCES [1] Manuel A.Armada Pablo Gonzalez de Santos(Eds): Climbing and walking
robot, Springer Berlin Heidelberg, 2005, 935-942.
[2] Dirk Spenneberg, Andreas Strack, Frank Kirchner, Aramies: A four-legged
climbing and walking robot, University of Bremen, Germany, 2006.
[3] PIC 18F452 Microcontroller User Manual, 2005.
[4] MPLAB C-18, C-Compiler Getting started, 2005.
[5] http://www.microchip.com
[6] http://www.cytron.com.my
[7] http://www.youtube.com
[8] http://www.stanford.edu/%7Esangbae/Stickybot.htm
45
APPENDIX A
Gantt Chart For First Semester
46
Gantt Chart For Second Semester
50
APPENDIX B
Source code /************************************************************************** * INTERFACING OF AX‐12 DYNAMIXELS WITH PIC18F4550 *PROJECT WINDOW CLIMBING ROBOT‐CLIMBOT *CREATED BY LEE WEI SIANG **************************************************************************/ #include "p18f4550.h" #include "delays.h" #include "timers.h" /************************************************************************** * CONFIGURATION **************************************************************************/ #pragma config PLLDIV = 1 // (4 MHz input) #pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 2 // Clock source from 96MHz PLL/2 #pragma config FOSC = HSPLL_HS #pragma config FCMEN = OFF #pragma config IESO = OFF #pragma config PWRT = OFF #pragma config BOR = ON #pragma config VREGEN = ON #pragma config WDT = OFF #pragma config WDTPS = 32768 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config STVREN = ON #pragma config LVP = OFF #pragma config XINST = OFF // Extended Instruction Set #pragma config CP0 = OFF #pragma config CP1 = OFF #pragma config CPB = OFF #pragma config WRT0 = OFF #pragma config WRT1 = OFF #pragma config WRTB = ON // Boot Block Write Protection #pragma config WRTC = OFF #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF #pragma config EBTRB = OFF
51
/************************************************************************** * FUNCTION PROTOTYPES **************************************************************************/ void uart_send(unsigned char data); char AX_TxPacket(char id, char instruction, char *parameter, char paramLength); char AX_TxPacket1(char id, char instruction, char *parameter, char paramLength); char sync_write(char id,char *parameter); char read_data(char id,char *param_read); void delay1(void); void delay(void); void moveforward(void); void movebackward(void); void stop(void); /************************************************************************** * SERVO MOTOR INSTRUCTION SET **************************************************************************/ #define I_WRITE_DATA 0x03 #define I_READ_DATA 0x02 #define I_SYNC_WRITE 0x83 /************************************************************************** * GLOBAL VARIABLE **************************************************************************/ char data[10] = {0} ; //char data_read[10]={0}; char length,i,k,j,checksum, checksum1; unsigned char value,value1; int L,N,a,turning; char hundred,tenth; unsigned int r=1; unsigned int select=1; char sync_move[4]={0x00,0x00,0xff,0x03}; char sync_move1[4]={0x00,0x00,0xff,0x07}; char sync_move2[4]={0x00,0x00,0x00,0x00}; char move[5]={0x06,0x00,0x00,0x00,0x00}; /************************************************************************** * BEGIN MAIN PROGRAM CODE **************************************************************************/ void main() { //set I/O input output TRISC = 0; //configure PORTC I/O direction TRISA = 0b00000010; //configure PORTA I/O direction
52
TRISB = 0b00011110; TRISD = 0; TRISE = 0; //setup USART SPBRG = 2; //set baud rate to 1M for 48MHz TXSTAbits.BRGH = 1; //baud rate high speed option TXSTAbits.TXEN = 1; //enable transmission RCSTAbits.CREN = 1; //enable reception RCSTAbits.SPEN = 1; //enable serial port //setup ADC ADCON1 = 0b00001110; //set ADx pin digital I/O //downfront sensor = RB4 //downback sensor = RB3 //front sensor = RB1 //back sensor = RB2 if(!PORTAbits.RA1) { while(1) { while(AX_TxPacket1(0x01,I_WRITE_DATA, move, 5) ); while(AX_TxPacket1(0x02,I_WRITE_DATA, move, 5) ); switch(select) { case 1: { if(PORTBbits.RB1 && PORTBbits.RB2 && !PORTBbits.RB3 && PORTBbits.RB4) { select=3; break; } else if (!PORTBbits.RB1 && PORTBbits.RB2 && !PORTBbits.RB3 && !PORTBbits.RB4) { select=4; break; } else { select=2; break; } } break; case 2:
53
moveforward(); delay(); stop(); delay1(); select=1; break; case 3: while(1) { if(PORTBbits.RB1 && PORTBbits.RB2 && !PORTBbits.RB3 && PORTBbits.RB4) { movebackward(); delay(); stop(); delay1(); select=3; break; } else if (PORTBbits.RB1 && PORTBbits.RB2 && !PORTBbits.RB3 && !PORTBbits.RB4) { movebackward(); delay(); stop(); delay1(); select=3; break; } else if(PORTBbits.RB1 && PORTBbits.RB2 && PORTBbits.RB3 && !PORTBbits.RB4) { moveforward(); delay(); stop(); delay1(); select=2; break; } else if(PORTBbits.RB1 && !PORTBbits.RB2 && !PORTBbits.RB3 && !PORTBbits.RB4) { moveforward(); delay(); stop(); delay1(); select=2; break; }
54
} break; case 4: while(1) { if(!PORTBbits.RB1 && PORTBbits.RB2 && !PORTBbits.RB3 && !PORTBbits.RB4) { movebackward(); delay(); stop(); delay1(); select=4; break; } else if(PORTBbits.RB1 && PORTBbits.RB2 && !PORTBbits.RB3 && !PORTBbits.RB4) { movebackward(); delay(); stop(); delay1(); select=4; break; } else if(PORTBbits.RB1 && PORTBbits.RB2 && PORTBbits.RB3 && !PORTBbits.RB4) { moveforward(); delay(); stop(); delay1(); select=2; break; } else if(PORTBbits.RB1 && !PORTBbits.RB2 && !PORTBbits.RB3 && !PORTBbits.RB4) { moveforward(); delay(); stop(); delay1(); select=2; break; } } }
55
} } else {}; } char sync_write(char id,char *parameter) { checksum1 = 0; uart_send(id); checksum1 = checksum1 + id; for(i=0;i<4;i++) { uart_send(parameter[i]); checksum1 = checksum1 + parameter[i]; } return(checksum1); } char AX_TxPacket(char id, char instruction, char *parameter, char paramLength) { LATCbits.LATC0= 0; length = 2 + paramLength; checksum = 0; uart_send(0xff); uart_send(0xff); uart_send(id); checksum = checksum + id; uart_send(length); checksum = checksum + length; uart_send(instruction); checksum = checksum + instruction; for(i=0;i<paramLength;i++) { uart_send(parameter[i]); checksum = checksum + parameter[i]; } checksum = ~checksum; uart_send(checksum); while(TXSTAbits.TRMT==0); LATCbits.LATC0 = 1; } char AX_TxPacket1(char id, char instruction, char *parameter, char paramLength) { unsigned char data[10] = {0}; unsigned char header[3] = {0xff,0xff, id};
56
unsigned char i = 0, j = 4; LATCbits.LATC0= 0; length = 2 + paramLength; checksum = 0; uart_send(0xff); uart_send(0xff); uart_send(id); checksum = checksum + id; uart_send(length); checksum = checksum + length; uart_send(instruction); checksum = checksum + instruction; for(i=0;i<paramLength;i++) { uart_send(parameter[i]); checksum = checksum + parameter[i]; } checksum = ~checksum; uart_send(checksum); while(TXSTAbits.TRMT==0); LATCbits.LATC0 = 1; checksum = 0; for (i=0 ; i < j ; i++) { while(!PIR1bits.RCIF); data[i] = RCREG; PIR1bits.RCIF = 0; if ( i < 3 ) { if (data[i] != header [i]) { if (data[i] == header[0]) i=1; else i = 0; } } else if (i == 3)j = data [i] + 4; else if (i < (j‐1))checksum += data[i]; } checksum += id + data[3]; checksum = ~checksum; if (checksum == data[j‐1]) return data[4];
57
else return 1; } void delay() { T0CON=0x07; TMR0H=0xCC; TMR0L=0x28; T0CONbits.TMR0ON=1; while(INTCONbits.TMR0IF==0); T0CONbits.TMR0ON=0; INTCONbits.TMR0IF=0; } void delay1() { T0CON=0x07; TMR0H=0x24; TMR0L=0x14; T0CONbits.TMR0ON=1; while(INTCONbits.TMR0IF==0); T0CONbits.TMR0ON=0; INTCONbits.TMR0IF=0; } void uart_send(unsigned char data) { while(TXSTAbits.TRMT==0); //only send the new data after TXREG=data; //the previous data finish sent } void moveforward() { LATCbits.LATC0= 0; checksum = 0; L = 4; //data length for each dynamixel actuator N = 2; //the number of dynamixel actuator length = (L+1)*N+4; uart_send(0xff); uart_send(0xff); uart_send(0xfe); checksum = checksum + 0xfe; uart_send(length); checksum = checksum + length; uart_send(I_SYNC_WRITE); checksum = checksum + I_SYNC_WRITE; uart_send(0x1e); checksum = checksum + 0x1e; uart_send(L); checksum = checksum + L;
58
sync_write(0x01,sync_move); checksum = checksum + checksum1; sync_write(0x02,sync_move1); checksum = checksum + checksum1; checksum = ~checksum; uart_send(checksum); while(TXSTAbits.TRMT==0); LATCbits.LATC0 = 1; } void movebackward() { LATCbits.LATC0= 0; checksum = 0; L = 4; //data length for each dynamixel actuator N = 2; //the number of dynamixel actuator length = (L+1)*N+4; uart_send(0xff); uart_send(0xff); uart_send(0xfe); checksum = checksum + 0xfe; uart_send(length); checksum = checksum + length; uart_send(I_SYNC_WRITE); checksum = checksum + I_SYNC_WRITE; uart_send(0x1e); checksum = checksum + 0x1e; uart_send(L); checksum = checksum + L; sync_write(0x01,sync_move1); checksum = checksum + checksum1; sync_write(0x02,sync_move); checksum = checksum + checksum1; checksum = ~checksum; uart_send(checksum); while(TXSTAbits.TRMT==0); LATCbits.LATC0 = 1; } void stop() { LATCbits.LATC0= 0; checksum = 0; L = 4; //data length for each dynamixel actuator N = 2; //the number of dynamixel actuator length = (L+1)*N+4; uart_send(0xff); uart_send(0xff);
59
uart_send(0xfe); checksum = checksum + 0xfe; uart_send(length); checksum = checksum + length; uart_send(I_SYNC_WRITE); checksum = checksum + I_SYNC_WRITE; uart_send(0x1e); checksum = checksum + 0x1e; uart_send(L); checksum = checksum + L; sync_write(0x01,sync_move2); checksum = checksum + checksum1; sync_write(0x02,sync_move2); checksum = checksum + checksum1; checksum = ~checksum; uart_send(checksum); while(TXSTAbits.TRMT==0); LATCbits.LATC0 = 1; }