28.01.2013 Views

development of omnidirectional mobile robot for robocon 2012 tey ...

development of omnidirectional mobile robot for robocon 2012 tey ...

development of omnidirectional mobile robot for robocon 2012 tey ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

DEVELOPMENT OF OMNIDIRECTIONAL MOBILE ROBOT<br />

FOR ROBOCON <strong>2012</strong><br />

TEY WEI KANG<br />

UNIVERSITI TEKNOLOGI MALAYSIA


UNIVERSITI TEKNOLOGI MATAYSIA<br />

PSZ I ?:16 {Pind. I IATI<br />

DECLARATION OF THESIS / UNDERGRADUATE PROJECT PAPER AND COPYRIGHT<br />

Author's full nsme :<br />

Date <strong>of</strong> birrh :<br />

-irv LIET Mwa<br />

g8lp lb -23 - F t /*<br />

Title : YEVfrLaVn f fuT, aF- ,pflry_f ,t?tRF e Trg.N,frL<br />

Acodemic Session :<br />

I declore thot this thesis is clossified os :<br />

tl<br />

tl m<br />

CONFIDENTIAL {Contoins confidentiol in<strong>for</strong>motion under the Officiol Secret<br />

AcI 19721*<br />

RESIRICIED (Contoins restricted in<strong>for</strong>motion os specified by the<br />

orgonizotion where reseorch wos done)*<br />

OPEN ACCESS logree thot mythesis to be published os online open occess<br />

(fulltext)<br />

I ocknowledged thot UniversitiTeknologi Moloysio reseryes the right os follows:<br />

l. The thesis is the property <strong>of</strong> UniversitiTeknologi Moloyaio.<br />

2- The Librory <strong>of</strong> UniversitiTeknologi Mololaio hos the dght to moke copies <strong>for</strong> the purpose<br />

<strong>of</strong> reseorch only.<br />

3. The Librory hos the right to moke copies <strong>of</strong> the thesis <strong>for</strong> qcodemic exchonge.<br />

,/M<br />

SIGNATURE<br />

pg loJ,$""zJ - s//F<br />

(NEW lC NO. IPASSPORT NO.)<br />

Dote: t"/V/fg<br />

Cerfified by :<br />

SIGNATURE OF SUPERVISOR<br />

D,r" Y*:Kg\ CJ^t W<br />

Dote : 9* P/tl b IX lL<br />

NOIES : * lf the thesis is CONFIDENTAL or RESTRICTFD, pleose ottoch with the letter from<br />

the orgonizotion with pedod ond reosons <strong>for</strong> confidentiolity or restriction.


'T hereby declare that I have read this report and in my opinion this report is zufficient<br />

in terms <strong>of</strong> scope and quality <strong>for</strong> the award <strong>of</strong> the degree <strong>of</strong> Bachelor <strong>of</strong> Engineering<br />

Signature :<br />

(Elecfrical - Mechatronics)"<br />

W<br />

Name : Dr. YEONG CHE FAI<br />

Date : June 26,<strong>2012</strong>


DEVELOPMENT OF OMNIDIRECTIONAL MOBILE ROBOT<br />

FOR ROBOCON <strong>2012</strong><br />

TEY WEI KANG<br />

A report submitted in partial fulfilment <strong>of</strong> the<br />

requirements <strong>for</strong> the award <strong>of</strong> the degree <strong>of</strong><br />

Bachelor <strong>of</strong> Engineering (Electrical - Mechatronics)<br />

Faculty <strong>of</strong> Electrical Engineering<br />

Universiti Teknologi Malaysia<br />

JUNE <strong>2012</strong>


I declare that this report entitled “DEVELOPMENT OF OMNIDIRECTIONAL<br />

MOBILE ROBOT FOR ROBOCON <strong>2012</strong>” is the result <strong>of</strong> my own research except<br />

as cited in the references. The report has not been accepted <strong>for</strong> any degree and is not<br />

concurrently submitted in candidature <strong>of</strong> any other degree.<br />

Signature :<br />

Name : TEY WEI KANG<br />

Date : June 30, <strong>2012</strong><br />

ii


To my dearest family and friends, especially to my parent <strong>for</strong> supporting every<br />

decision I had made. Thanks <strong>for</strong> trusting me all the while and sorry <strong>for</strong> not being by<br />

your side always.<br />

iii


ACKNOWLEDGEMENT<br />

This project would not have been possible without the support <strong>of</strong> various<br />

individuals. I can hardly deliver my appreciation to each <strong>of</strong> them. Nevertheless, I<br />

would like to take this opportunity to express my gratitude to them here.<br />

First <strong>of</strong> all, I would like to thank to my project supervisor, Dr. Yeong Che Fai<br />

who was abundantly helpful and <strong>of</strong>fered invaluable assistance, support and guidance.<br />

He had spent many times in guiding and helping me especially during the participation<br />

<strong>of</strong> this project in Dream Catcher Competition. His encouragement to me is the greatest<br />

motivation <strong>for</strong> me to continue this project.<br />

Deepest gratitude are also due to the UTM Robocon Team members, seniors<br />

and lecturers. Without the support <strong>of</strong> UTM Robocon Team in terms <strong>of</strong> materials and<br />

knowledges sharing, I will never had completed this project. And also not to <strong>for</strong>get<br />

about the Lab technician, Mr. Khalid bin Lipot who guiding me a lot in mechanical<br />

structure construction.<br />

Special thanks also to all my graduate friends, especially Fong Jiunn Shean <strong>for</strong><br />

sharing the knowledge and providing invaluable assistance.<br />

Last but not least, I wish to express my love and gratitude to my beloved<br />

families. Their understanding and endless love throughout the duration <strong>of</strong> my studies<br />

is invaluable. Without their support and encouragement, its impossible <strong>for</strong> me to<br />

complete this project. And also to those whom I failed to mention here, your help<br />

is much appreciated.<br />

iv


ABSTRACT<br />

Nowadays, autonomous <strong>mobile</strong> <strong>robot</strong> had been developed in order to reduce<br />

human work load in moving heavy load. However, most <strong>of</strong> the <strong>robot</strong>s are designed<br />

to use differential drive method. Its generally takes more steps and more complicated<br />

movement in order to navigate to certain position as compared to Omnidirectional<br />

<strong>mobile</strong> <strong>robot</strong>. In this project, an <strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong> is developed <strong>for</strong> 2D<br />

planar motion and capable <strong>of</strong> moving in translation (x, y) and rotation around their<br />

centre <strong>of</strong> gravity (φ). It consists <strong>of</strong> three actuators which each attached to an omniwheel<br />

alighting 120 degree apart and used gyroscope and distance sensors as feedback <strong>for</strong> the<br />

navigation system. By using NIsbRIO9632XT by National Instrument as the main<br />

controller, the navigation algorithm <strong>for</strong>mula and PID block can be processed with<br />

high speed to ensure fast response. Functional blocks such as PWM generator and<br />

Quadrature Encoder Interface(QEI) block is designed inside the onboard FPGA to<br />

interface with the encoders and motor drivers. By controlling the speed <strong>of</strong> each motor,<br />

navigation <strong>of</strong> this <strong>robot</strong> can be done and optimized.<br />

v


ABSTRAK<br />

Pada masa kini, <strong>robot</strong> mudah alih automatik telah direkakan untuk<br />

mengurangkan beban kerja manusia ketika menggerakkan beban yang berat.<br />

Walau bagaimanapun, kebanyakan <strong>robot</strong> yang direka adalah menggunakan kaedah<br />

bergerakan berbeza. Secara amnya, <strong>robot</strong> jenis ini mengambil lebih banyak langkah<br />

dan pergerakan yang lebih rumit untuk menavigasi ke kedudukan tertentu berbanding<br />

<strong>robot</strong> bergerakan Omnidirectional. Dalam projek ini, <strong>robot</strong> bergerakan <strong>omnidirectional</strong><br />

direkakan untuk pergerakan satah 2D dan ia mampu bergerak dalam satah (x, y) dan<br />

putaran di sekitar pusat graviti (φ) ia. Ia terdiri daripada tiga penggerak yang setiap<br />

satunya dipasang kepada omniwheel dan disusun dalam 120 darjah sesama sendiri<br />

dan pengesan-pengesan yang digunakan ialah giroskop dan pengesan jarak sebagai<br />

maklum balas kepada sistem navigasi. Dengan menggunakan NIsbRIO9632XT dari<br />

National Instrument sebagai pengawal utama, <strong>for</strong>mula navigasi algoritma dan blok-<br />

blok PID boleh diproses dengan kelajuan yang tinggi untuk memastikan tindak balas<br />

yang cepat. Blok fungsi seperti penjana PWM dan blok kuadratur Pengekod Antara<br />

Muka (QEI) direka dalam FPGA atas papan litar untuk berantara muka dengan<br />

pengesan jarak dan litar pemandu motor. Dengan mengawal kelajuan setiap motor,<br />

navigasi <strong>robot</strong> ini boleh dilakukan dan dioptimumkan.<br />

vi


TABLE OF CONTENTS<br />

CHAPTER TITLE PAGE<br />

DECLARATION ii<br />

DEDICATION iii<br />

ACKNOWLEDGEMENT iv<br />

ABSTRACT v<br />

ABSTRAK vi<br />

TABLE OF CONTENTS vii<br />

LIST OF TABLES ix<br />

LIST OF FIGURES x<br />

LIST OF ABBREVIATIONS xii<br />

LIST OF SYMBOLS xiii<br />

1 INTRODUCTION 1<br />

1.1 Project Background 1<br />

1.2 Problem Statement 4<br />

1.3 Objectives 5<br />

1.4 Scopes <strong>of</strong> Project 5<br />

2 LITERATURE REVIEW 6<br />

2.1 Implementation <strong>of</strong> Obstacle Avoidance and ZigBee<br />

Control Functions <strong>for</strong> Omni Directional Mobile<br />

Robot 6<br />

2.2 Omnidirectional Mobile Home Care Robot 7<br />

2.3 Design and Control <strong>of</strong> an Omnidirectional Mobile<br />

Robot with Steerable Omnidirectional Wheels 8<br />

2.4 Motion Control <strong>of</strong> an Omnidirectional Mobile<br />

Robot 9<br />

2.5 The Omni-directional Wheelchair <strong>for</strong> The Elderly 11<br />

2.6 Motion Control <strong>of</strong> An Omnidirectional Mobile<br />

vii<br />

<strong>robot</strong> 11


3 METHODOLOGY 12<br />

viii<br />

3.1 Project Flow 12<br />

3.2 System Overview 13<br />

3.2.1 Hardware 15<br />

3.2.2 S<strong>of</strong>tware 20<br />

3.3 Gantt Chart 25<br />

4 RESULTS AND DISCUSSION 26<br />

4.1 Results 26<br />

4.2 Discussion 29<br />

5 CONCLUSION 31<br />

REFERENCES 32<br />

Appendix A 33


LIST OF TABLES<br />

TABLE NO. TITLE PAGE<br />

ix


LIST OF FIGURES<br />

FIGURE NO. TITLE PAGE<br />

1.1 ABU Robocon 2006 Game Field Layout 2<br />

1.2 ABU Robocon 2007 Game Field Layout 2<br />

1.3 ABU Robocon 2009 Game Field Layout 3<br />

1.4 ABU Robocon <strong>2012</strong> Game Field Layout 3<br />

1.5 Basic function <strong>of</strong> line following sensor: (a) Both motors<br />

moving in same speed (b) Left motor moves faster (c)<br />

Right motor moves faster 4<br />

1.6 Comparison between CDDMR and ODMR 4<br />

2.1 Omnidirectional Chassis and FPGA Development Board 6<br />

2.2 Experimental Omnidirectional Mobile Service Robot 7<br />

2.3 Omnidirectional Mobile Robot with Steerable Omnidi-<br />

rectional Wheels 8<br />

2.4 Photo <strong>of</strong> <strong>robot</strong> inside working station 9<br />

2.5 Data flow <strong>of</strong> the system 9<br />

2.6 Kinematics Equation <strong>of</strong> the <strong>robot</strong> 10<br />

2.7 Omnidirectional Wheelchair 11<br />

3.1 Project Flow 12<br />

3.2 Mechanical hardware top and bottom view 13<br />

3.3 System OverView 14<br />

3.4 Solidworks Design 15<br />

3.5 Top View <strong>of</strong> the Robot 16<br />

3.6 Coupling between Motor and Omniwheel 16<br />

3.7 Bottom View <strong>of</strong> the Robot 17<br />

3.8 Encoder Attachment 17<br />

3.9 Snapshot <strong>of</strong> NIsbRIO9632xt 18<br />

3.10 Connector Board 19<br />

3.11 MD10C H-bridge Motor Driver 19<br />

3.12 Clock Generator 20<br />

3.13 QEI Functional Block Diagram 21<br />

3.14 QEI pattern 21<br />

x


3.15 PWM Functional Block Diagram 22<br />

3.16 APM2.0 Ardupilot 23<br />

3.17 MAX232 Schematics 23<br />

3.18 Navigation Equation [1] 24<br />

3.19 Gantt Chart <strong>for</strong> FYP1 25<br />

3.20 Gantt Chart <strong>for</strong> FYP2 25<br />

4.1 QEI Graphical User Interface 26<br />

4.2 PWM Output 27<br />

4.3 Navigate in X-direction 28<br />

4.4 Navigate in Y-direction 28<br />

4.5 Navigate in XY-direction 29<br />

A.1 Gantt Chart <strong>for</strong> FYP1 33<br />

A.2 Gantt Chart <strong>for</strong> FYP2 33<br />

xi


LIST OF ABBREVIATIONS<br />

ABU Robocon – Asia-Pacific Broadcasting Union Robot Contest<br />

UTM – Universiti Teknologi Malaysia<br />

CDDMR – Conventional Differential Driven Mobile Robot<br />

ODMR – Omnidirectional Mobile Robot<br />

FPGA – Field Programmable Gate Array<br />

DC – Direct current<br />

DOF – Degree <strong>of</strong> freedom<br />

PC – Personal computer<br />

PWM – Pulse width modulation<br />

3D – Three Dimensional<br />

NI – National Instrument<br />

GUI – Graphical User Interface<br />

I/O – Input and output<br />

VI – Virtual Instrument<br />

QEI – Quadrature Encoder Interface<br />

DFF – D Flip Flop<br />

UART – Universal Asynchronous Receiver and Transmitter<br />

PID – Proportional Integral Derivative<br />

PCI – Peripheral Component Interconnection<br />

WIFI – Wireless Fidelity<br />

–<br />

xii


LIST OF SYMBOLS<br />

˙Θ – Angular Velocity <strong>of</strong> wheel<br />

R – Radius <strong>of</strong> wheel<br />

δ – Angle <strong>of</strong> the wheel from references axis<br />

φ – Difference <strong>of</strong> desired angle to current angle<br />

L – Robot radius<br />

˙<br />

Xm – Derivative <strong>of</strong> coordinate X in Cartesian axis<br />

˙<br />

Ym – Derivative <strong>of</strong> coordinate Y in Cartesian axis<br />

˙φ – Derivative <strong>of</strong> approach angle <strong>of</strong> the <strong>robot</strong><br />

–<br />

xiii


1.1 Project Background<br />

CHAPTER 1<br />

INTRODUCTION<br />

ABU ROBOCON (Asia Broadcasting Union Robot-contest) is a <strong>robot</strong><br />

competition which is held by countries in Pacific Asia <strong>for</strong> undergraduate to participate<br />

in yearly. The main objective <strong>of</strong> the contest is to exploit undergraduate’s talents and<br />

to build up friendship among the undergraduates who are interested in <strong>robot</strong>ic field.<br />

In the year 2002, Malaysia had been invited to participate in ABU ROBOCON 2002<br />

contest which is held in Japan <strong>for</strong> the first time. In the year 2003, Thailand had become<br />

the host <strong>for</strong> ABU ROBOCON 2003, whereas Korea and China had been host <strong>for</strong> the<br />

game in the year 2004 and year 2005 respectively. Malaysia had been host <strong>for</strong> ABU<br />

ROBOCON 2006. In the year 2007, the game is held in Vietnam and after that the<br />

game is held in India in the year 2008 be<strong>for</strong>e the year 2009 where Japan has once<br />

again become host <strong>of</strong> the game. Egypt and Thailand had become the host <strong>of</strong> ABU<br />

ROBOCON 2010 and 2011 respectively. In the year <strong>2012</strong>, Hong Kong will be the host<br />

<strong>of</strong> ABU ROBOCON <strong>2012</strong>. Year after year, the game field design is becoming more<br />

complicated in terms <strong>of</strong> line alignment and the intersections. This has made the game<br />

becoming more challenging.


Figure 1.1: ABU Robocon 2006 Game Field Layout<br />

In year 2006 as illustrated in Figure 1.1, the lines are alighted in a 90 degrees<br />

cross with each other. The line following <strong>robot</strong> can easily detect the lines and the<br />

intersection which we called it junction.<br />

Figure 1.2: ABU Robocon 2007 Game Field Layout<br />

2


As in year 2007 as shown in Figure 1.2, the game field design was changed.<br />

The junction is not only 90 degrees; instead there are also some junctions which have<br />

the junction with 120 degrees. This made the <strong>robot</strong> hard to differentiate whether it is a<br />

junction or it is a noise.<br />

Figure 1.3: ABU Robocon 2009 Game Field Layout<br />

In year 2009 as shown in Figure 1.3, there are some sudden 90 degrees turning<br />

lines made the line following <strong>robot</strong> even harder to implement in the game.<br />

Figure 1.4: ABU Robocon <strong>2012</strong> Game Field Layout<br />

Figure1.4 shows the game field layout <strong>of</strong> ROBOCON <strong>2012</strong>. The game field is<br />

designed with the combination <strong>of</strong> the properties from the previous year game field.<br />

There are 90 degrees and 135 degrees lines intersection makes the line following<br />

becoming more challenging.<br />

3


1.2 Problem Statement<br />

Figure 1.5: Basic function <strong>of</strong> line following sensor: (a) Both motors moving in same<br />

speed (b) Left motor moves faster (c) Right motor moves faster<br />

Previously in Universiti Teknologi Malaysia (UTM) Robocon Team, we use<br />

Conventional Differential Driven Mobile Robot (CDDMR) to compete in the game.<br />

The main sensor we use to do navigation <strong>for</strong> the <strong>mobile</strong> <strong>robot</strong> is line following sensor.<br />

The basic function <strong>of</strong> a line following <strong>robot</strong> is as described in Figure1.5.<br />

As shown in the Figure 1.5, line following <strong>robot</strong>’s per<strong>for</strong>mance is greatly<br />

depends on line alignment and the cross section. If there is a task which requires a<br />

<strong>robot</strong> to move in a place such that there is no line alight on it, a line following <strong>robot</strong> is<br />

definitely inapplicable. In the sense that to optimize the navigation <strong>of</strong> a <strong>mobile</strong> <strong>robot</strong>,<br />

the lines follow method has its limitation across the other navigation method such as<br />

dead reckoning and odometry navigation due to it dependencies to the lines.<br />

Figure 1.6: Comparison between CDDMR and ODMR<br />

4


In terms <strong>of</strong> movement method, a CDDMR has its limitation. Firstly, a CDDMR<br />

has an inflexible mobility. In the other words, it might require combination <strong>of</strong> few<br />

movements in order to move from a specific location to another specific location.<br />

As shown in Figure 1.6, in order to navigate to the desired position (1.0m, 1.5m), a<br />

CDDMR need to make a straight movement <strong>for</strong> 1.5 meters, followed by a 90 degrees<br />

turning and finally a straight line movement <strong>for</strong> 1 meter to reach the desired position.<br />

As compared to an Omni Directional Mobile Robot (ODMR) which per<strong>for</strong>ms three<br />

degree-<strong>of</strong>-freedom (DOF), a CDDMR move relatively longer distance than an ODMR<br />

to reach the same destination. An ODMR can acheive both translation and rotation<br />

movement simultaneously [2]. Lets say both <strong>robot</strong> can move with the same velocity,<br />

the CDDMR will generally takes more times to navigate to a same location than an<br />

ODMR.<br />

Another disadvantage <strong>of</strong> CDDMR across ODMR is we cannot determine the<br />

direction <strong>of</strong> heading <strong>of</strong> the <strong>robot</strong> after a specific movement. For a CDDMR, in order to<br />

navigate to certain position, the direction from the <strong>robot</strong> itself towards the desired<br />

destination must be aligning parallel with the <strong>robot</strong> tires. In the other words, the<br />

direction <strong>of</strong> heading <strong>of</strong> the <strong>robot</strong> is also pointing to the direction <strong>of</strong> the destination.<br />

This has caused some limitations to the <strong>robot</strong> as the movement <strong>of</strong> the <strong>robot</strong> might<br />

not be able to per<strong>for</strong>m with the other mechanism in the same time. In this context,<br />

an ODMR <strong>of</strong>fered a more flexible movement and user definable direction <strong>of</strong> heading;<br />

both can be per<strong>for</strong>med in the same time.<br />

1.3 Objectives<br />

(a) To develop an <strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong> <strong>for</strong> Robocon <strong>2012</strong>.<br />

(b) To develop navigation <strong>of</strong> an Omni-directional <strong>mobile</strong> <strong>robot</strong> using the feedback<br />

<strong>of</strong> gyroscope and distance sensors.<br />

1.4 Scopes <strong>of</strong> Project<br />

(a) A multi purpose Omni-directional <strong>mobile</strong> <strong>robot</strong> base will be built.<br />

(b) A plat<strong>for</strong>m which can be adapted to any kind <strong>of</strong> mechanism on it.<br />

(c) Automatically navigate to a desired position on a pre-defined map with an end<br />

desired direction <strong>of</strong> heading.<br />

5


CHAPTER 2<br />

LITERATURE REVIEW<br />

In this chapter, some relevant works on <strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong> will be<br />

discussed.<br />

2.1 Implementation <strong>of</strong> Obstacle Avoidance and ZigBee Control Functions <strong>for</strong><br />

Omni Directional Mobile Robot<br />

Figure 2.1: Omnidirectional Chassis and FPGA Development Board<br />

The <strong>robot</strong> shown in Figure 2.1 is an <strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong> which can<br />

per<strong>for</strong>m obstacle avoiding. For the mechanical structure, the <strong>robot</strong> is basically built by<br />

three DC motors with aligning 120 degree with each other. Besides, it has a ZigBee<br />

wireless control function which built on a FPGA <strong>development</strong> board. The usage <strong>of</strong> the<br />

FPGA is to achieve a real-time control and provide high speed with an acceptable error.<br />

By using ultrasonic transducers which installed in front <strong>of</strong> the <strong>robot</strong>, the embedded<br />

controller receives the obstacle distance signals and calculates the control signals to<br />

drive the three <strong>omnidirectional</strong> wheels DC motors. [3]


2.2 Omnidirectional Mobile Home Care Robot<br />

Figure 2.2: Experimental Omnidirectional Mobile Service Robot<br />

Figure 2.2 shows Omnidirectional Mobile Home Care Robot designed by<br />

National Chung-Hsing University. This project is to develop a <strong>robot</strong> which provides<br />

home care <strong>for</strong> the disabled and improves their quality <strong>of</strong> life. The <strong>robot</strong> is basically<br />

consists <strong>of</strong> a plat<strong>for</strong>m which can move in any direction, a <strong>robot</strong> arm which installed on<br />

the top <strong>of</strong> the plat<strong>for</strong>m and a network camera which is installed on the front <strong>of</strong> the arm.<br />

In the controller part, FPGA with Altera Nios II embedded processor is used to control<br />

the system, motor position and speed <strong>of</strong> the <strong>robot</strong>. The reason why FPGA is used is to<br />

ensure a better per<strong>for</strong>mance to control the motors. [4] [5]<br />

7


2.3 Design and Control <strong>of</strong> an Omnidirectional Mobile Robot with Steerable<br />

Omnidirectional Wheels<br />

Figure 2.3: Omnidirectional Mobile Robot with Steerable Omnidirectional Wheels<br />

This <strong>robot</strong> is developed by Mokpo National University, Korea as shown in<br />

Figure 2.3. This <strong>robot</strong> can achieve 3 DOF motion on a 2-dimensional plane. As<br />

compared to the other <strong>mobile</strong> <strong>robot</strong>s which are equipped with two independent driving<br />

wheels, the advantage <strong>of</strong> this <strong>robot</strong> is it can per<strong>for</strong>m holonomic motion including<br />

sideways motion. Besides, it can move in an arbitrary direction without changing<br />

the direction <strong>of</strong> the wheels. [6]<br />

8


2.4 Motion Control <strong>of</strong> an Omnidirectional Mobile Robot<br />

Figure 2.4: Photo <strong>of</strong> <strong>robot</strong> inside working station<br />

This is a <strong>robot</strong> which built as experimental purpose. In order to develop,<br />

implement and test new algorithm and sensing technique, this <strong>robot</strong> is built as the<br />

test bed which is designed to be very flexible and easy to program. This <strong>robot</strong> used<br />

three omniwheels which are mounted at 120 degrees interval along the <strong>robot</strong>s center<br />

<strong>of</strong> gravity as shown in Figure 2.4. This arrangement ensures the wheels are always<br />

contacted with the floor regardless <strong>of</strong> its roughness. [7]<br />

Figure 2.5: Data flow <strong>of</strong> the system<br />

9


Figure 2.6: Kinematics Equation <strong>of</strong> the <strong>robot</strong><br />

Figure 2.5 shows the data flow from the distance sensor (encoders) to the main<br />

controller PC-104. After the signal been processed by the <strong>for</strong>mulae programmed inside<br />

the PC-104, a PWM output will pass to the PWM generator board to drive the motors.<br />

Figure 2.6 is the kinematics equation <strong>of</strong> the <strong>robot</strong>. By using this <strong>for</strong>mula, we can<br />

calculate the speed required in order to move the <strong>robot</strong> to a desired location in x-y<br />

coordinate plane.<br />

10


2.5 The Omni-directional Wheelchair <strong>for</strong> The Elderly<br />

Figure 2.7: Omnidirectional Wheelchair<br />

The <strong>robot</strong> has three <strong>omnidirectional</strong> wheels which driven by a DC servomotor<br />

respectively. The purpose <strong>of</strong> the project is to enable the disable person to move freely<br />

in a small area. A joystick is used to control the movement <strong>of</strong> the <strong>robot</strong> provided ease<br />

controlled by the user as illustrated in Figure 2.7. The <strong>robot</strong> is manually controlled by<br />

the user and didn’t provide a closed loop control in the <strong>robot</strong> navigation. [8]<br />

2.6 Motion Control <strong>of</strong> An Omnidirectional Mobile <strong>robot</strong><br />

In this article, the author has point out the advantages <strong>of</strong> <strong>omnidirectional</strong> <strong>mobile</strong><br />

<strong>robot</strong>. The <strong>robot</strong> has full mobility in the plane, which mean it can move in any direction<br />

without changing <strong>of</strong> orientation. [9]<br />

11


3.1 Project Flow<br />

CHAPTER 3<br />

METHODOLOGY<br />

Figure 3.1: Project Flow<br />

First <strong>of</strong> all, the project is starting with the idea inspiration. The idea is to<br />

create a <strong>robot</strong> that solves the problem <strong>of</strong> navigation and to achieve faster yet simple<br />

movement as compared to the Conventional Differential Driven Mobile Robot. After<br />

some findings and research, the concept <strong>of</strong> project which is to do an Omnidirectional<br />

Mobile Robot which can navigate to a desired location by using the feedback <strong>of</strong><br />

gyroscope and distance sensors was figured out. The project flow is developed as<br />

shown in Figure 3.1 and the completion time <strong>for</strong> each stage is estimated by using<br />

Gantt chart. Basically, <strong>development</strong> <strong>of</strong> the <strong>robot</strong> is divided into two parts, hardware<br />

and s<strong>of</strong>tware.


3.2 System Overview<br />

Figure 3.2: Mechanical hardware top and bottom view<br />

13


Figure 3.3: System OverView<br />

As shown in Figure 3.2, the mechanical hardware is constructed. There are<br />

three PD4266 DC motor aligning 120 degrees apart. [10] The APM gyroscope is placed<br />

at the centre <strong>of</strong> the <strong>robot</strong>. At the bottom <strong>of</strong> the <strong>robot</strong>, the are two encoders aligning in<br />

X and Y axis <strong>of</strong> the <strong>robot</strong>. Figure 3.3 shows the overall system.<br />

14


3.2.1 Hardware<br />

Figure 3.4: Solidworks Design<br />

In the hardware part, there are two major components which are mechanical<br />

structure and electrical controller circuit. The <strong>development</strong> is first started with the<br />

design <strong>of</strong> mechanical structure. The s<strong>of</strong>tware used is Solidworks. The purpose <strong>of</strong><br />

using this s<strong>of</strong>tware is to roughly estimate the size <strong>of</strong> the <strong>robot</strong> and the materials to<br />

build the <strong>robot</strong>. The 3D drawing view is shown in Figure 3.4. After getting the<br />

right measurement about the size <strong>of</strong> the <strong>robot</strong>, the structure is built based on the<br />

measurement.<br />

15


Figure 3.5: Top View <strong>of</strong> the Robot<br />

The mechanical structure is built as shown in Figure 3.5. The mechanical<br />

structure is special designed to withstand a load up to 30kg on it. The material used to<br />

build the structure is aluminium. There is a firm aluminium frame which designed to<br />

hold the wheels. This allowed the weight <strong>of</strong> the <strong>robot</strong> to be acting on the frame.<br />

Figure 3.6: Coupling between Motor and Omniwheel<br />

The wheel is attached to the motor by a mechanical coupling in Figure 3.6.<br />

The mechanical coupling acts as shock protection to the motor’s shaft. When there<br />

16


is vibration on the wheel, the coupling will absorb the vibration be<strong>for</strong>e affecting the<br />

motor’s shaft.<br />

Figure 3.7: Bottom View <strong>of</strong> the Robot<br />

Figure 3.8: Encoder Attachment<br />

The next step is to attach the gyroscope and the distance sensors. For better<br />

orientation sensing, the gyroscope is best placed at the center <strong>of</strong> the <strong>robot</strong>. The two<br />

distance sensors are aligning in X and Y direction respectively as shown in Figure 3.7.<br />

17


The attachment <strong>of</strong> the distance sensors is designed with a spring on the structure to<br />

make sure the wheels <strong>of</strong> the distance sensors is always touching the ground as shown<br />

in Figure 3.8.<br />

Figure 3.9: Snapshot <strong>of</strong> NIsbRIO9632xt<br />

For the electrical controller circuit design, NIsbRIO9632xt by National<br />

Instrument (NI) is used as the main controller as shown in Figure 3.9. There are<br />

few advantages upon using this board. Firstly, the board is built-in by an onboard<br />

processor and a Field Programmable Gate Array (FPGA). The usage <strong>of</strong> the FPGA<br />

provided high speed signal processing and fast computation time. This allowed the<br />

real-time control and well navigation <strong>of</strong> the <strong>robot</strong>. Secondly, the board is programmed<br />

using NI LabVIEW. The NI LabVIEW provides graphical programming which is<br />

more simple and easy to learn. Besides, it also provided user friendly Graphical User<br />

Interface (GUI) to the user <strong>for</strong> easy understanding and easy implementation. Thirdly,<br />

the graphical programming is based on Data Flow Programming which allowed few<br />

loops to be executed simultaneously. This allowed the parallel computation <strong>of</strong> the<br />

<strong>for</strong>mulae in navigation to be per<strong>for</strong>med with more efficient.<br />

18


Figure 3.10: Connector Board<br />

Figure 3.11: MD10C H-bridge Motor Driver<br />

The I/O pins from the main controller is connected to a pulled up circuit which<br />

is also the power supply <strong>for</strong> the sensors. The pulled up circuit is shown in Figure 3.10<br />

and it is also connected to the signal pins <strong>of</strong> MD10C H-bridge motor driver shown in<br />

Figure 3.11.<br />

19


3.2.2 S<strong>of</strong>tware<br />

In the s<strong>of</strong>tware part, s<strong>of</strong>tware been used to program the NIsbRIO9632xt main<br />

controller is NI LabVIEW. It is very powerful system design s<strong>of</strong>tware built specifically<br />

<strong>for</strong> tasks per<strong>for</strong>med by engineers and scientists. The processor on NIsbRIO9632xt<br />

board is a Freescale 32bits microprocessor. It is connected to the onboard FPGA via<br />

Peripheral Component Interconnection (PCI). The FPGA provides free I/O <strong>for</strong> user to<br />

customize it. In NI LabVIEW, the programming file is called Virtual Instrument (VI).<br />

Figure 3.12: Clock Generator<br />

In this project, there are two major VIs which are processor VI and FPGA VI.<br />

The FPGA VI is design to interface the controller I/O with the environment change<br />

which detected by sensors. In this VI, there are three components named clock pulses<br />

generator, Quadrature Encoder Interface (QEI) and Pulse Width Modulation (PWM).<br />

Inside the FPGA, a clock pulse generator is programmed to generate a 50 MHz clock<br />

pulses which trigger the other peripherals such as QEI and PWM as shown in Figure<br />

3.12.<br />

20


Figure 3.13: QEI Functional Block Diagram<br />

The QEI block is designed to interface with rotary encoders with are attached<br />

on the <strong>robot</strong>. Figure 3.13 shown the design <strong>of</strong> the VI. In the design, there are six D<br />

Flip-flop been used which are represented by the blocks labelled DFF in the figure.<br />

The first four D Flip-flop is to avoid introducing <strong>of</strong> metastability into the QEI blocks.<br />

Metastability is a condition where the output hovers in between logic ’0’ and logic<br />

’1’. It happens due to the input changes too close to the clock edge which trigger the<br />

flip-flop. Normally this happen in a fast system where the input is asynchronous with<br />

the system clock or the system clock is too fast. The four DFF in the first column are<br />

act as synchronizer. A synchronizer samples an asynchronous input and produces an<br />

output that meets the setup and hold times required in a synchronous system. But yet,<br />

the probability <strong>of</strong> failure can never be reduced to zero.<br />

Figure 3.14: QEI pattern<br />

21


By checking the input patterns from the inputs named QEA and QEB as shown<br />

in Figure 3.14, we can know the direction <strong>of</strong> rotation <strong>of</strong> the encoder. Since it is in<br />

grey code, some logics are applied to check the direction <strong>of</strong> rotation. If the sequences<br />

<strong>of</strong> QEA and QEB inputs follow 00, 01, 11 and 10, we can conclude the encoder is<br />

turning in clockwise direction and vice versa. If it is turning in clockwise direction,<br />

the counter named POSCOUNT will increase and vice versa. There are total <strong>of</strong> five<br />

QEI functional blocks been used, three <strong>for</strong> shaft encoders on the motors and another<br />

two <strong>for</strong> external rotary encoders which aligned in X and Y direction <strong>of</strong> the <strong>robot</strong>.<br />

Figure 3.15: PWM Functional Block Diagram<br />

In order to drive the motors, PWM blocks is design to interface the main<br />

controller with the H-bridge motor drivers. The design <strong>of</strong> the PWM block is shown in<br />

Figure 3.15. Upon receiving the triggered clock pulses from the clock pulses generator,<br />

the PWMCounter is increased by 1. The counter is then compared to a constant<br />

value <strong>of</strong> 10000. If it is greater than 10000, it will reset to zero. By doing this, a<br />

constant period <strong>of</strong> 0.2 millisecond which is equivalent <strong>of</strong> 5 kHz frequency is already<br />

been created. Also, the counter is compared to a variable named PWM1. This is to<br />

determine the duty cycle <strong>of</strong> the generated PWM pulses. For example, if 50 percents <strong>of</strong><br />

duty cycle is required, the user needs to set the value <strong>of</strong> 5000 into PWM1. Thus, when<br />

22


the counter is less than PWM1, the PWM output pin is triggered ON while in the case<br />

when the counter is greater than PWM1, the pin will triggered OFF. Hence, a simple<br />

PWM blocks is created. In this project, three PWM blocks are used to control the three<br />

actuators.<br />

Figure 3.16: APM2.0 Ardupilot<br />

Figure 3.17: MAX232 Schematics<br />

In the processor VI, there few important steps need to be done. First step is<br />

to interface the APM 2.0 Ardupilot to get the orientation <strong>of</strong> the <strong>robot</strong> by using serial<br />

communication port. APM 2.0 Ardupilot as shown in Figure 3.16, is a complete set<br />

<strong>of</strong> gyroscope, accelerometer and an ATMEGA microcontroller which acquires and<br />

processes data from the sensors. The onboard microcontroller is programmed to<br />

send out the digital yaw value after Kalman Filter with the accelerometer’s data via<br />

Universal Asynchronous Receiver and Transmitter (UART). The connection circuit<br />

from APM 2.0 Ardupilot to NIsbRIO9632xt serial communication port is shown in<br />

Figure 3.17. The signal from APM is first been passed through a MAX232 to convert<br />

23


the voltage level which is acceptable by the serial communication port.<br />

Second step is to get the X and Y coordinate <strong>of</strong> the <strong>robot</strong>. By referring to the<br />

QEI block’s counter value, the distance travelled by the <strong>robot</strong> can easily calculated by<br />

the following equation.<br />

Distance travelled in X = accumulatedpulses<strong>of</strong>encoderinX<br />

x(smallwheelradius)<br />

pulsesperrevolution<br />

2<br />

The small wheel radius is referred to the small omniwheel which attached on<br />

the rotary encoder.<br />

3.18.<br />

The third step is the navigation part based on the equation shown in Figure<br />

Figure 3.18: Navigation Equation [1]<br />

Θ1, ˙ Θ2<br />

˙ and ˙ Θ3 are the angular speed <strong>of</strong> the three motors. R is the radius <strong>of</strong> the<br />

Omni wheels. Ym, ˙ Xmand ˙ ˙ φ are the coordinate and the approach angle <strong>of</strong> the <strong>robot</strong>.<br />

δ and L are angle <strong>of</strong> the tires from references axis and the distance from centre <strong>of</strong> the<br />

<strong>robot</strong> to the centre <strong>of</strong> the wheel respectively.<br />

In this case, user can define the desired X and Y coordinate and the approach<br />

angle, φ <strong>of</strong> the <strong>robot</strong>. By comparing the actual coordinate and orientation with<br />

the desired coordinate and orientation, the differences is then fed to the equation to<br />

calculate the desired speed <strong>of</strong> the three motors respectively.<br />

The next step is to calculate the actual speed feedback from the shaft encoders<br />

by using the <strong>for</strong>mula below:<br />

Motor Spped1 = pulsesonshaftencoderin1milisec<br />

x(motorwheelradius)<br />

pulsesperrevolution<br />

2<br />

24


Finally, both the calculated actual speed and desired speed is fed into a PID<br />

controller. The PID controller will output the PWM value which will later on been<br />

feed to the PWM generator. The response <strong>of</strong> the PID controller can be adjusted by<br />

tuning the PID gains. Hence, a closed loop speed controller is completed.<br />

3.3 Gantt Chart<br />

Figure 3.19: Gantt Chart <strong>for</strong> FYP1<br />

Figure 3.20: Gantt Chart <strong>for</strong> FYP2<br />

25


4.1 Results<br />

CHAPTER 4<br />

RESULTS AND DISCUSSION<br />

Figure 4.1: QEI Graphical User Interface<br />

This chapter will discuss on the results and functionality <strong>of</strong> the developed<br />

<strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong>. In the previous chapter, the QEI and PWM block’s<br />

designs are discussed. Figure 4.1 showed the Graphical User Interface (GUI) <strong>of</strong> the<br />

QEI block. There are six QEI blocks been used and each has an indicator which<br />

displays accumulated pulses. The system clock is indicated as Sys clk. The Ex-QEA,<br />

Ex-QEB, QEA and QEB are representing the pin’s voltage level. The results were<br />

obtained by testing the QEI to interface with an rotary encoder. Since the input pattern<br />

is following grey code, there must be not any loses <strong>of</strong> pulse in order to accumulate the<br />

pulses. The result shown 500 pulses times 4 which is equal to 2000 pulse per revolution<br />

is obtained. Hence, we can conclude the reading is correct without any loses <strong>of</strong> pulse.


Figure 4.2: PWM Output<br />

As <strong>for</strong> PWM block, the results are as showed in Figure 4.2. The first window<br />

is the output <strong>of</strong> 10 percent duty cycle, followed by 50 percent duty cycle and lastly is<br />

the output <strong>of</strong> 90 percent duty cycle. The graphs showed that, within a fixed period, the<br />

PWM ON time is directly proportional to desired duty cycle sat.<br />

27


Figure 4.3: Navigate in X-direction<br />

Figure 4.4: Navigate in Y-direction<br />

28


Figure 4.5: Navigate in XY-direction<br />

For the navigation, the <strong>robot</strong> can travel to the correct desired coordinate<br />

with correct desired orientation. There is error 10 percent <strong>of</strong> error due to the<br />

mechanical structure is not perfectly made. Some input parameters such as <strong>robot</strong><br />

radius, omniwheels radius and distance from encoder’s wheel to centre <strong>of</strong> the <strong>robot</strong><br />

might differ from the actual mechanical structure. The result <strong>of</strong> the movement navigate<br />

to X-direction, to Y-direction and to XY-direction is shown in Figure 4.3, 4.4 and 4.5<br />

respectively.<br />

4.2 Discussion<br />

The <strong>robot</strong> can navigate in any direction and the movement is smooth as<br />

compared to differential driven <strong>mobile</strong> <strong>robot</strong>. Hence, in the navigation to a same<br />

desired location, the path and the time taken by this <strong>robot</strong> is generally shorter as<br />

compared to differential driven <strong>mobile</strong> <strong>robot</strong>.<br />

However, there are some disadvantages <strong>of</strong> this <strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong>.<br />

Firstly, there are some <strong>of</strong>fset <strong>of</strong> actual navigated location as compared to the desired<br />

location. It is due to the mechanical structure is not made precisely. The motor speed<br />

calculation is done based on the user defined parameters such as the <strong>robot</strong> radius, the<br />

29


Omniwheel radius and etc. Since there are some <strong>of</strong>fset <strong>of</strong> the real mechanical structure<br />

and the keyed in parameters, the calculation has some small error causing the <strong>of</strong>fset <strong>of</strong><br />

the navigated location and the actual desired location. Secondly, the PID parameters<br />

are not been tuned to the prefect value <strong>for</strong> this <strong>robot</strong>. The response <strong>of</strong> the motor is still<br />

not in a fine-tuned response. There are some overshoots <strong>of</strong> actual speed as compared<br />

to desired speed.<br />

30


CHAPTER 5<br />

CONCLUSION<br />

As conclusion, an <strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong> with navigation system is<br />

developed. It use three motors with three internal encoders, two external encoders<br />

and a gyroscope. NIsbRIO9632xt is used as the main controller <strong>of</strong> this <strong>robot</strong>. The<br />

basic peripherals such as, QEI block is developed to interface with the rotary encoders.<br />

By accumulating the pulses from the encoders, the distance travelled by the <strong>robot</strong><br />

and speed <strong>of</strong> the motor can be calculated. Besides, PWM block is also developed<br />

to interface with the H-bridge motor driver (MC10C). The generated PWM pulses will<br />

determine the amount <strong>of</strong> current which pass through the motor and hence control the<br />

motor speed. The navigation <strong>for</strong>mula is used to calculate the desired motor speed in a<br />

particular location which is different from the desired location. It has been tested on<br />

several routes which are to X-direction, Y-direction and XY-direction. It shows that<br />

the <strong>robot</strong> can move smoothly to the desired location with desired orientation which its<br />

error is less than ten percent. This <strong>robot</strong> can be used in Robocon <strong>2012</strong> competition<br />

as either an autonomous <strong>robot</strong> or a manual controlled <strong>robot</strong> in order to achieve the<br />

specific tasks in the game.<br />

As <strong>for</strong> future improvement, the PID motor speed controller’s parameters should<br />

be fine-tuned. The controller must have a fast response and less steady state error<br />

so that the navigation <strong>of</strong> the <strong>robot</strong> can be done more smoothly. Since, the main<br />

controller NIsbRIO9632xt required a connection to a PC or laptop via LAN cable,<br />

there is limitation which is the <strong>robot</strong> cannot move too far away from the PC or laptop.<br />

Hence, a router can be used to replace the LAN cable. The PC or laptop can connect<br />

to the <strong>robot</strong> via WIFI and the <strong>robot</strong> can move as far as the coverage <strong>of</strong> the wireless<br />

network. Also, the power supply can be replaced by DC battery. This allowed the<br />

<strong>robot</strong> to move in any place without other power supply or plug.


REFERENCES<br />

1. Ching-Chang Wong, Y.-H. L. S.-A. L. and Tsai, C.-H. GA-based Fuzzy<br />

System Design in FPGA <strong>for</strong> an Omni-directional Mobile Robot. Journal <strong>of</strong><br />

Intelligient and Robotic Systems. 2005, vol. 44. 327–347.<br />

2. Chuntao Leng, Q. C. and Huang, Y. A Motion Planning Method <strong>for</strong><br />

Omni-directional Mobile Robot Based on the Anisotropic Characteristic.<br />

International Journal <strong>of</strong> Advanced Robotic System. 2008, vol. 5.<br />

3. Kuo-Huang Lin, H.-S. L. and Chen, W.-T. Implementation <strong>of</strong> obstacle<br />

avoidance and ZigBee control functions <strong>for</strong> omni directional <strong>mobile</strong> <strong>robot</strong>.<br />

2008. 1–5.<br />

4. Ching-Chih Tsai, H.-C. H. and Wang, T.-S. Omnidirectional Mobile Home<br />

Care Robot. 2006.<br />

5. Huang, H.-C. and Tsai, C.-C. FPGA Implementation <strong>of</strong> an Embedded Robust<br />

Adaptive Controller <strong>for</strong> Autonomous Omnidirectional Mobile Plat<strong>for</strong>m. IEEE<br />

Transactions On Industrial Electronics. IEEE. 2009, vol. 56.<br />

6. Song, J.-B. and Byun, K.-S. Design and Control <strong>of</strong> an Omnidirectional Mobile<br />

Robot with Steerable Omnidirectional Wheels. 2006, ISBN: 3-86611-284-X.<br />

576.<br />

7. Baede, T. A. Motion control <strong>of</strong> an <strong>omnidirectional</strong> <strong>mobile</strong> <strong>robot</strong>. Review<br />

Literature And Arts Of The Americas. 2006. 21–23.<br />

8. Han-Tai Fan, T.-L. L. and Chien, C.-H. The Omni-directional Wheelchair <strong>for</strong><br />

The Elderly.<br />

9. Li, X. and Zell, A. Motion Control <strong>of</strong> An Omnidirectional Mobile Robot.<br />

10. Yong Liu, R. L. W. I., J.Jim Zhu and Wu, J. Omni-directional <strong>mobile</strong> <strong>robot</strong><br />

controller based on trajectory linearization. Robotics and Autonomous Systems<br />

56. 2008. 461–479.


A.1 Gantt Chart<br />

APPENDIX A<br />

APPENDIX A TITLE<br />

Figure A.1: Gantt Chart <strong>for</strong> FYP1<br />

Figure A.2: Gantt Chart <strong>for</strong> FYP2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!