1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng robot đa hướng tự hành theo quỹ đạo từ bản đồ Google và tự né tránh vật cản

74 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng robot đa hướng tự hành theo quỹ đạo từ bản đồ Google và tự né tránh vật cản
Tác giả Lê Hoàng Phúc, Phạm Cao Thắng
Người hướng dẫn ThS. Nguyễn Duy Xuân Bách
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 74
Dung lượng 38,23 MB

Nội dung

Mục tiêuMục tiêu của dé tài là phát triển robot có thé điều khiển từ xa thông qua điện thoại di động, di chuyển từ nơi này sang nơi khác trên bản dé thực tế sử dụng cho không gian, phạm

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

LÊ HOÀNG PHÚC

PHẠM CAO THĂNG

KHÓA LUẬN TÓT NGHIỆP

XÂY DỰNG ROBOT ĐA HƯỚNG TỰ HÀNH THEO

QUY ĐẠO TỪ BẢN DO GOOGLE VÀ TỰ NE TRÁNH

VẬT CÁN

IMPLEMENT AUTONOMOUS MECANUM ROBOT RUNNING

FOLLOWING SELECTED PATH ON GOOGLE MAP AND

OBJECT AVOIDANCE

KY SU KY THUAT MAY TINH

TP HO CHÍ MINH, 2021

Trang 2

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

LÊ HOÀNG PHÚC - 16520946

PHẠM CAO THÁNG - 16521106

KHÓA LUẬN TÓT NGHIỆP

XÂY DỰNG ROBOT ĐA HƯỚNG TỰ HÀNH THEO

QUY ĐẠO TỪ BAN DO GOOGLE VÀ TỰ NE TRÁNH

VẬT CÁN

IMPLEMENT AUTONOMOUS MECANUM ROBOT RUNNING

FOLLOWING SELECTED PATH ON GOOGLE MAP AND

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

Ti8ầY của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

LỜI CẢM ƠN

Được sự phân công của quý thầy cô khoa Kỹ Thuật Máy Tính, Trường Đại

Học Công Nghệ Thông Tin, sau hơn bốn năm chúng em cũng đã hoàn thành Khóa

luận tốt nghiệp Đề hoàn thành khóa luận, ngoài sự nỗ lực học hỏi của bản thân còn

có sự hướng dẫn tận tình của thầy cô, bạn bè Chúng em chân thành cảm ơn thầy giáo

~— ThS Nguyễn Duy Xuân Bách, người đã hướng dẫn cho chúng em trong suốt thời gian làm khóa luận Mặc dù thầy bận đi công tác nhưng không ngần ngại chỉ dẫn,

định hướng, để chúng em hoàn thành tốt khóa luận này Một lần nữa chúng em chân thành cảm ơn thầy và chúc thầy dồi dao sức khoẻ.

Tuy nhiên vì kiến thức chuyên môn còn hạn chế và bản thân còn thiếu nhiều kinh nghiệm thực tiễn nên nội dung của báo cáo không tránh khỏi những thiếu xót,

chúng em rất mong nhận sự góp ý, chỉ bảo thêm của quý thầy cô cùng toàn thé các bạn đề báo cáo này được hoàn thiện hơn.

Một lần nữa xin gửi đến thầy cô, bạn bè lời cảm ơn chân thành và tốt đẹp nhất!

Trang 5

Chương 1 TONG QUAN

"no 3 12

1.2 Mục tiêu

1.3 Phương pháp thực hiỆn - - + 1t vn ng ghi 14

1.3.1 Phương pháp thực hiện ứng dụng điều khiến

1.3.2 Phương pháo thực hiện robot -+-+5++c+<+c+csrseecexex 14

1.4 Các nội dung chính và giới han

Chương2 CƠ SỞ LÝ THUYÉT 2 ¿222222++22E+t2ESetzrxesrrsrsrk 18

2.1 Cơ sở lý thuyết ứng dụng điều khién

2.1.1 Xây dựng bản đồ thực tế với Google Map Platform 18

2.1.2 Lưu trữ dit liệu với Firebase SerVeT- 5+5 s++xssxs+vsssss 20

2.1.3 Phát triển ứng dụng với Android Studio và ngôn ngữ Java 22 2.1.4 Cơ sở lý thuyết quy trình phát triển ứng dụng -. -: 25 2.2 Cơ sở lý thuyết RObot 2252c222222 2222122222112 ce 28

2.2.1 Sensor FUSIOIN - óc 1111 TT Hà TT HT TH HH 28

2.2.2, ( 29

2.2.3 Từ Kế Hee 32 2.2.4 Con quay hồi chuyên 2¿-©22222+v22++22SEeESErerxrrrrrrerrrrrrs 33

2.2.5 Dafa Íusion Sàn HH HH in 33

2.2.6 Hệ thống định vị toàn cầu (GPS) -¿©++2c++vcvxrscrresrs 35

2.2.7 Cảm biên siêu âm + 5+ S+ St tre 36

2.2.8 Bộ điều khiển PID ii 37

2.2.9 Encoder -ẶSĂSĂ SH rưưn 38

Trang 6

2.2.10 Banh xe đa hướng mecanuim -«- «+ «+ +++£+vx+keeezeeseexr+ 40

Chương 3 | PHAN TÍCH VÀ THIET KE HE THONG

3.1 Phân tích và thiết kế ứng dụng điều khiển -. -:-+c cc+2 42 3.1.1 Lấy Google Map API key

3.1.2 _ Tìm kiếm địa điểm + 2k E222 EEEEEEEECEEEerrkrrkrrrrre 43

3.1.3 Tìm kiếm lộ trình và đề xuất đường di

3.1.4 Gửi dữ liệu về server cccccsertrrrrrrirrrrrrree 46

3.1.5 Phân tích dữ liệu và sử dụng thuật toán Decode 49

3.2 Phân tích và thiết kế robotL c::¿-2222+++t222EEEvrrtttrEkrtrrrrrrtrrrrrerrkir 52

3.2.1 Phần cứng robot .-22-ccscccvrserrrvrerrrrrserrree 52

3.2/2 — Giải thuật 222222 55

3.2.2.1 Giải thuật xử lý dữ liệu từ gia tốc kế ¿ cc5c.cc+c+ 55

3.2.2.2 Giải thuật xử lý dữ liệu từ từ kế -c+ccccccecsssrrrrevee 57 3.2.2.3 Giải thuật tích hợp dữ liệu của gia tốc kế và từ kế 59 3.2.2.4 Giải thuật xử lý dữ liệu từ con quay hồi chuyển - 61 3.2.2.5 Giải thuật tích hợp gia tốc kế va từ kế vào con quay hồi chuyên 63

3.2.2.6 Giải thuật xử lý chính -2:¿©222+c222xvcstrrrrrrrrrrrrrrrrrcee 66

Chương 4 KET QUA THỰC NGHIỆM - -2:©2225++22+z+2zszszx 68

4.1 Kết quả thực nghiệm ứng dụng điều khiển -2 2¿©sz+c5sz+z+ 68

4.2 Kết quả thực nghiệm Robot .cccccssessssessssessseessseesssessssessseessseesssecsseeeeseees 70

Chương 5 HƯỚNG PHÁT TRIEỂN -2:-©2+z222++zeccvxesrrs 71

5.1 Ứng dụng điều khiển -2-©22¿©22+t2E++t2EE+eEEEEEExrtrkrerkrrerkrrrrkree 71

5.2 Robot 0n 71

Trang 7

4: Tổng quan cơ sở lý thuyết của đề tài -:-22cxcccrkrrerrtrrrrrrrrerrrree 18

5: Google Map Platform và các APÏs ¿525cc sxsxseereee 20

h 6: Realtime Database Firebase 22

h 7: Tao Key Google Map API 25

8: Dữ liệu dang JSON 26

9: Bố cục giao diện ứng dụng 27

h 10: Cách xác định gĩc yaw, pitch, roÏÏ - ¿5 2 + +++5++s£+£+xzezxecsezez+e 28

11: Gia tốc kế trong mơi trường chân khơng -¿-++++cvx++ 29 12: Gia tốc kế trong mơi trường trọng lực -:+++cvxv+s+rvxee 30

h 13: Gia tốc kế ở gĩc nghiêng bất kỳ : -¿-+©2++2v+z+cv+rzrxrrzrxrerree 31

h 14: Từ trường của trái đất :-22:22+¿222+2222xt2EEEt2EEEEEEreErtrrrkrrrrrrerrer 32

15: Cầu tạo của con quay hồi chuyển : +£©2+++22v++++tvxvrstrvxee 33

16: Hệ thống định vị tồn cầu GPS, ¿-2¿©2+¿222++22x+222x+tzExesrrrcsrk 35

h 17: Hệ thống định vị tồn cầu GPS (2) ¿-2:©5¿222+z2cvz+2zxrszrxrersez 36

h 18: Nguyên lý hoạt động cảm biến siêu âm -2¿©222z222zcczxzcrxez 37

h 19: Sơ đồ khối bộ điều khiển PID cccccccccccccccce 38

h 21: Nguyên lý hoạt động enCOdeT ¿-¿- ¿+ +55 E‡k*t‡*EsEekekrrersrekree 40

22: Cấu tao bamh Xe MECANUM 0 Al

h 23: Nguyên lý chuyên động của robot sử dung bánh xe mecanum 41

h 24: Get Google Map API key

h 25: Tiến hành đăng kí Key với các API cần thiết

h 26: Get Key thành cơng ¿+ 6+1 SE nnHn nhnHnHg iưy 4

h 27: Hình ảnh tìm kiếm địa điểm trên ứng dụng (Chế độ nhập trực tiếp) ty 44

Trang 8

30: Dữ liệu thô dưới dạng JsOn ¿+ 6 1S ưy 4

31: Sơ đồ quá trình gửi dữ liệu lên SerVer -2¿-©2c+csccvxvrstrrerrrrrr 48

h 32: Hình ảnh trước và sau khi sử dụng thuật toán Decode - 49

h 33: Tuận toán €CO(e óc 2c 3132113211213 21 5111151 11171111 re 51

34: Hệ thống phần cứng robot -:¿22+£2+++22E+++22EEvtstrErvrrtrrrrrrrrr 52

h 35: Bánh xe mecanum eccecceceecsescseesescseseseesesesesesessescseseseseeesseseseneseeaeee 53

h 36: Sơ đồ nguyên lý mạch kết nối -2-+2+++222++++tzxxrrrrrsrcee 5

37: Sơ đồ bố trí linh kiện mạch kết nối - 2 +22+++22+++2+z+zszez 54 41: Giá trị trả về khi gia tốc kế ổn định -¿- +¿22+22x++cvxesrvresrx 56

h 42: Giá trị trả về khi gia tốc kế chuyền động - ©z++cscc+¿ 57

h 43: giá tri yaw khi quay từ kế trên mặt phăng ngang - - 58

44: Giá trị yaw khi quay từ kế trên mặt phẳng nghiêng - 59

h 45: Giá tri yaw khi kết hợp gia tốc kế va từ kế trên mặt phẳng ngang

h 46: Giá trị yaw kkhi kết hợp gia tốc kế và từ kế trên mặt phăng nghiéng

47: Giá trị yaw khi quay con quay hồi chuyền 1 góc và ngược lại 62 50: Giá tri yaw đã xử lý khi để yên cảm biến sau khi quay 1 góc bất kỳ 65

h 51: Giải thuật xử lý robot eee cece 5S S2 12121 * 2 E2 1 rườn 66

h 52: Cách xác định độ sai số cho phép ¿-2:©25z+22+2cv+verxrrzrxrsrxer 67 53: Hình ảnh thử nghiệm tìm kiếm lộ trình :¿-zc2+ccczxe+ 68

h 54: Hình ảnh dữ liệu được gửi VỀ Ÿ€TVT 0 Sn TT E11211211211211211 21x xe 69

h 55: Kết quả sau khi thực nghiệm -¿- 2+ 2222+++22xzecvxrerxrrrrxrrrrer 70

Trang 9

DANH MỤC BANG

Bang 1: Ưu, nhược điểm của các loại cảm biẾn - - :+cSc+tseztsrevsreree

Trang 10

DANH MỤC TỪ VIET TAT

API Application Programming Interface

ATM Automated Teller Machine

APK Android Package Kit

PID Proportional, Integral, Derivative

GPS Global Positioning System

URL Uniform Resource Locator

I2C Inter-Integrated Circuit

UART Universal Asynchronous Receiver Transmitter

SDK Software Development Kit

IDE Integrated Development Environment

FreeRTOS Free Real Time Operating System

GLCD Graphical Liquid Crystal Display

Trang 11

TÓM TÁT KHÓA LUẬN Robot thay thế cho con người làm việc ngày phổ biến, việc này giúp các doanh nghiệp tiết kiệm được chỉ phí nhân công, đồng thời mang lại tính chuyên nghiệp và

hiệu quả cao Trong đó, Robot tự hành di chuyển trên bản đồ thực tế được ứng dụng rất rộng rãi cho ngành nghề như : Công nghiệp ô tô, tiêu biểu là ô tô không người lái của Tesla, Robot giao hàng tự trị Scout của Amazon và rất nhiều ứng dụng khác Nhìn

thấy vào thực tế, nhóm đã quyết định nghiên cứu Robot đa hướng tự hành theo quỹ

đạo từ bản đồ Google và tự tránh né vật cản Với sự tiện ích mang lại như giá thành

rẻ hơn, dễ dàng điều khiển thông qua một chiếc điện thoại di động.

Xây dựng Robot đa hướng tự hành với các mục tiêu sau:

e Xây ddựng Robot đa hướng tự hành.

e Chay theo lộ trình được cài đặt dựa trên ban đồ Google thông qua ứng dụng

đi động.

¢ Str dụng module GPS dé xác định vi trí và di chuyển theo lộ trình.

¢ Sử dụng “Sensor fusion” dé tang độ chính xác khi di chuyên.

Trang 12

Chương 1 TONG QUAN

ra, nhóm cải tiến Robot có thé điều khiển thông qua một chiếc Smartphone, vừa tiết

kiệm chi phí sản xuất vừa có thé dé dàng sử dụng robot hơn

12

Trang 13

1.2 Mục tiêu

Mục tiêu của dé tài là phát triển robot có thé điều khiển từ xa thông qua điện thoại di

động, di chuyển từ nơi này sang nơi khác trên bản dé thực tế (sử dụng cho không

gian, phạm vi rộng) Mặc khác, Robot còn được tích hợp nhiều cảm biến, giúp robot

13

Trang 14

có thé di chuyền tốt trên địa hình phức tạp (hạn chế sai lệch lộ trình) Đồng thời,

Robot có thé phát hiện và tránh né được vật cản trong quá trình di chuyền, trong quátrình này lộ trình liên tục cập nhật dé robot có thé di chuyên chính xác nhất có thê

Phương pháp thực hiện ứng dụng điều khiến

Phát triển ứng dụng với Google Map API, các API bao gồm : Geocoding

API, Directions API, Geolocation API, Map SDK for Android, Distance

API.

Su dung Firebase server dé lưu trữ dữ liệu

Sử dụng Java va IDE Android Studio dé phát triển ứng dụng

Sử dung Geocoding API và Place API dé tìm đường đi của hai vị trí trênbản đồ thực tế

Sử dụng Distance API tính khoảng cách, và thời gian ước tính cho lộ trình.

Áp dụng thuật toán Decode lộ trình để có thêm nhiều waypoint, loại bỏđường cong giúp Robot có thé di chuyển chính xác hon

Phương pháo thực hiện robot

Xây dựng khung xe kim loại sử dụng bánh xe đa hướng mecanum

Sử dung kit STM32F407 Disc làm bộ điều khién trung tâm chính cho robot

Sử dụng bo mạch NodeMCU dé nhận va gửi dữ liệu lên server

Sử dụng module GPS NEO M8N dé xác định tọa độ hiện tại của robot

Sử dụng module cảm biến 10 bậc tự do GY-86 (MPU6050 + HMC5883L

+ MS5611) dé xử lý, xác định phương hướng cho robot.

14

Trang 15

e Sử dụng module cảm biến siêu âm US-015 dé xác định vật cản.

e Sử dụng động cơ giảm tốc encoder JGB37-520 đề truyền động cho robot

e _ Sử dụng một số thiết bị output như graphic LCD, LED, Loa dé debug trong

quá trình thực hiện.

1.4 Các nội dung chính và giới hạn

Các nội dung chính của đê tài:

Phát triển ứng di động điều khiển robot (Tìm kiếm địa chỉ, tính toán

khoảng cách, thời gian, phân tích lộ trình di chuyền )

Thiết kế schematic và gia công PCBLên ý tưởng, thiết kế và hiện thực khung xe robotĐiều khiển động cơ bằng giải thuật PID

Giao tiếp với GPS dé đọc giá trị tọa độGiao tiếp với module cảm biến 10 bậc tự do để xác định được phương

hướng hiện tại và góc cua của robot.

Giao tiếp cảm biến siêu âm để xác định vật cản

Giao tiếp GLCD dé phục vụ cho quá trình debug

Điều khiển robot theo các quỹ dao đơn giản như di tiến, lùi, dịch trái,

dịch phải, xoay

Giao tiếp với server bằng NodeMCU

Giao tiếp giữa kit STM32F407 DISC và NodeMCU thông qua chuẩngiao tiếp UART

Triển khai giải thuật trên hệ điều hành thời gian thực FreeRTOS

Thử nghiệm hoạt động của robot

Việt báo cáo và báo cáo đê tài

Chỉ tiết công việc

Phát triển ứng dung di động :

e Sử dụng Android Studio IDE và ngôn ngữ Java

15

Trang 16

e Sử dụng Google Map API dé phát triển ban đồ.

e Sử dung Firebase dé truyền nhận dữ liệu giữa ứng dụng và server

e Str dụng thuật toán dé phân tích lộ trình, loại bỏ đường cong và thêm

nhiều waypoint cho lộ trình

e Tối ưu giao diện cho người dùng.

Phát triển Robot:

Thiết kế Schematic và gia công PCB: Được thực hiện trên phần mềm proteus

Lên ý tưởng, thiết kế và hiện thực khung xe robot : Được thực hiện trên phanmềm Solidworks

Công cụ lập trình :

o STM32CubeIDE

o Arduino IDE

o Terminal Hercules

Giao tiếp với GPS dé đọc giá trị tọa độ : Sử dụng chuẩn giao tiếp UART

Giao tiếp với module cảm biến 10 bậc tự do : Sử dụng chuân giao tiếp I2C

Giao tiếp GLCD : Sử dụng giao tiếp SPI

Giao tiếp với server bằng NodeMCU :

o Sử dụng dịch vụ cơ sở dt liệu va server của Firebase

o Dữ liệu điều khiển được lấy về từ firebase bang NodeMCU va được

truyền qua cho STM32F407 xử lý bằng chuẩn UART

o Dữ liệu hồi đáp — dùng cho việc giám sát robot được gửi từ STM32F407

đến NodeMCU thông qua UART và NodeMCU sẽ gửi lên server ngay

khi nhận được dữ liệu

Giới hạn của đề tài

e Khoảng cách di chuyên Robot sé bị hạn chế bởi yêu tố sau: Về phía ứng

dụng sẽ lấy dữ liệu thông qua URL (dưới dạng json) của Google là

https://maps.googleapis.com/ , URL này sẽ bị giới hạn bởi 8000 kí tự

và Firebase server hỗ trợ sử dụng miễn phí tối đa 1Gb dữ liệu, nên nếu

khoảng cách giữa hai vị trí quá xa (khoảng trên 30 km) sẽ có nhiều dữ

16

Trang 17

liệu và không thé tai được URL Yếu tố thứ hai, về năng lượng củaRobot sẽ bị hạn chế khi di chuyền ở lộ trình xa.

Sai số của Google Map ở khoảng 5 mét, thêm sai số của GPS và cũng

như một số linh kiện khác sẽ khiến Robot di chuyên không được chính

xác.

17

Trang 18

Chương 2 CƠ SỞ LÝ THUYET

URL của Google

Chứa dữ liệu bao gồm :

Lộ trình, Tracking vị trí,

Hình 4: Tổng quan cơ sở lý thuyết của đề tài

2.1 Cơ sở lý thuyết ứng dụng điều khiển

2.1.1. Xây dựng bản đồ thực tế với Google Map Platform

Tổng quan về Google Map API:

e Google Map là một dịch vụ ứng dụng vào công nghệ ban đồ trực tuyến trên

web miễn phí được cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác của

Google đặc biệt là dò đường và chỉ đường: hiền thị bản đồ đường sa, cáctuyến đường tối ưu cho từng loại phương tiện, cách bắt xe và chuyền tuyến

cho các loại phương tiện công cộng (xe bus, xe khách ), và những địa

điểm (kinh doanh, trường học, bệnh viện, cây ATM ) trong khu vực cũngnhư khắp nơi trên thế giới

Map API là gi? Là một phương thức cho phép 1 website B sử dụng dịch

vụ bản đồ của website A (gọi là Map API) và nhúng vào website của mình

(site B) Site A ở đây là google map, site B là các website cá nhân hoặc tổchức muốn sử dụng dịch vụ của google (di chuột, room, đánh dấu trên bản

đồ ) Các ứng dụng xây dựng trên maps được nhúng vào trang web cá

18

Trang 19

nhân thông qua các thẻ javascripts do vậy việc sử dụng API google rất dễ

dàng Google Map API đã được nâng cấp lên phiên bản v3 không chỉ hỗtrợ cho các máy dé bàn truyền thống mà cho cả các thiết bị di động; cácứng dụng nhanh hơn và nhiều hơn Các dịch vụ hoàn toàn miễn phí vớiviệc xây dựng một ứng dụng nhỏ Trả phí nếu đó là việc sử dụng cho mục

đích kinh doanh, doanh nghiệp.

Một số ứng dụng của Google Map API:

Đánh dấu các địa điểm trên bản đồ kèm theo thông tin cho địa điểm đó : khuvui chơi giải trí, nhà hàng khách sạn, cây ATM, bệnh viện, trường học, bắt

cứ địa điểm nào bạn muốnChỉ dẫn đường đến các địa điểm cần tìm(đường tối ưu và nhiều optionkhác),chỉ dẫn đường giao thông công cộng, có thé là các địa điểm cung cấpnhư trên Ở đây sử dụng các service google cung cấp

Khoanh vùng khu vực: các trung tâm kinh tế, khu đô thị, khu ô nhiễm

Tình trạng giao thông các khu vực từ đó đưa ra các giải pháp

Sơ lược cách sử dụng Google Map Platform trong đề tài:

Tạo API key, hiện tại Google Map API đã chính thức tính phí, chúng ta đăng

kí sẽ được sử dụng miễn phí 200 $ có sẵn trong tài khoản đăng kí, sau khi đăng

kí chúng ta cần Billing account đề sử dụng được các API

Sử dung Key dé xem dữ liệu thông qua URL : https://maps.googleapis.com/

Trang 20

Google Maps Platform

Family of APIs

Maps | Routes Places

Sead Javascript Maps 4 = Directions API $ Places API

2 (points of interest)

„ Static Maps & Distance Matrix $9 Geocoding

\ & StreetView API / +> Elevation API

Hình 5: Google Map Platform và các APIs

2.1.2 Lưu trữ dữ liệu với Firebase Server

Tông quan vệ Firebase:

e Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây — cloud

Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năngchính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao

tác với cơ sở đữ liệu.

e_ Cụ thể là những giao diện lập trình ứng dụng API đơn giản Mục đích nhằm

tăng số lượng người dùng và thu lại nhiều lợi nhuận hơn

e Đặc biệt, còn là dich vụ da năng và bảo mật cực tốt Firebase hỗ trợ cả hai nền

tảng Android và IOS Không có gì khó hiểu khi nhiều lập trình viên chọnFirebase làm nên tảng đầu tiên để xây dựng ứng dụng cho hàng triệu ngườidùng trên toàn thé giới

Cách thức hoạt đông:

Firebase có 2 cách thức hoạt động chính là Firebase Realtime Database và Firebase

Cloud Firestore, ở đây chúng ta chi sử dụng Firebase Realtime Database nên chúng

ta chỉ đề cách thức hoạt động của nó và bỏ qua Firebase Cloud Store

20

Trang 21

Như vậy, Firebase Realtime Databasse là gì?

e Khi đăng ký một tài khoản trên Firebase dé tạo ứng dụng, bạn đã có một cơ sở

dt liệu thời gian thực Dữ liệu bạn nhận được dưới dạng JSON Đồng thời nó

cũng luôn được đồng bộ thời gian thực đến mọi kết nối client

e_ Đối với các ứng dung đa nền tảng, tất cả các client đều sử dụng cùng một co

sở dữ liệu Nó được tự động cập nhật dữ liệu mới nhất bat cứ khi nào các lập

trình viên phát triển ứng dụng Cuối cùng, tất cả các dữ liệu này được truyềnqua kết nối an toàn SSL có bảo mật với chứng nhận 2048 bit

e Trong trường hợp bị mất mạng, dữ liệu được lưu lại ở local, vì thế khi có mọi

sự thay đổi nào đều được tự động cập nhật lên Server của Firebase Bên cạnh

đó, đối với các dữ liệu ở local cũ hơn với Server thì cũng tự động cập nhật dé

được dữ liệu mới nhất

Những ưu điểm khi sử dụng Firebase:

e_ Triển khai ứng dụng nhanh chóng: Bởi không phải quan tâm đến phan backend

cùng các API tốt, hỗ trợ đa nền tảng, Firebase tiết kiệm rất nhiều thời gianquản lý và đồng bộ tất cả dữ liệu cho người dùng Song song đó, nó còn cung

cấp hosting và hỗ trợ xác thực thông tin khách hàng khiến việc triển khai ứng

dụng nhanh chóng hơn.

e Bảo mật: Hoạt động trên nền tảng đám mây cloud, sử dụng kết nối thông qua

giao thức bao mật SSL và cho phép phân quyền người dùng cơ sở dữ liệu bằng

Javascript, các đặc điểm này của Firebase giúp nâng cao độ bảo mật cho các

ứng dụng.

e©_ Sự 6n định: Hau hết các ứng dụng trên nên tảng Firebase luôn hoạt động ổn

định vì chúng được viết dựa trên nền tảng cloud cung cấp bởi Google Hơnnữa, nhờ Firebase mà việc nâng cấp hay bảo trì Server cũng diễn ra khá đơngiản mà không cần phải dừng lại

Nhược diém của Firebase:

21

Trang 22

e “Firebase” chính là phan Realtime Database, đúng hơn chi là phan Database.

Cơ sở dit liệu của ho được tổ chức theo kiểu trees, parent-children, không phải

là kiểu Table nên những ai đang quen với SQL có thể sẽ gặp khó khăn từ mức

đôi chút tới khá nhiều

Sơ lược cách sử dung Firebase trong đề tài:

e Lưu dữ liệu dưới dạng Json, dưới dạng chuỗi.

e_ Chuỗi được định dang theo chuẩn mà Robot có thé xử lý dễ dàng

Firebase Realtime

Databse

Hình 6: Realtime Database Firebase

2.1.3 Phát triển ứng dụng với Android Studio và ngôn ngữ Java

Tổng quan về IDE Android Studio và Java:

Android Studio là một môi trường phát triển ứng dụng tích hợp (IDE) dành riêng

cho Android, mã nguồn mở, dựa trên IDE Java IntelliJ của hãng JetBrains (đối thủ

với Eclipse và Netbeans, vốn khá quen thuộc với dân lập trình Java) Android

Studio còn cung cấp :

e Hệ thống Gradle-based linh hoạt

e Xây dựng các biến thé và tạo nhiều tệp APK

e_ Code các mẫu template dé hỗ trợ các tính năng app thông thường

e Chỉnh sửa bố cục da dang với kha năng kéo và thả themee_ Công cụ lint giúp năm bắt hiệu suất, kha năng sử dụng, phiên bản tương

thích và các vân đê khác.

22

Trang 23

e ProGuard và ứng dung ký app-signing

e H6 trợ tích hợp trên Google Cloud Platform, cho phép dé dàng tích hợp

Google Cloud Messaging và App Engine.

e Và nhiều tính năng khác nữa.

Tông quan vệ ngôn ngữ Java:

e Java là một ngôn ngữ lập trình cao cấp, ban đầu được phát triển bởi Sun

Microsystems và được phát hành vào năm 1995 Java chạy trên nhiều nên tang,

chăng hạn như Windows, Mac OS và các phiên bản khác nhau của UNIX.

e Phiên bản mới nhất của Java Standard Edition là Java SE 8 Với sự tiễn bộ của

Java và sự phô biên rộng rãi của nó, nhiêu câu hình đã được xây dựng đê phù

hợp với nhiều loại nền tảng khác nhau Ví dụ: J2EE cho các ứng dụng doanh

nghiệp, J2ME cho các ứng dụng di động:

e Cac đặc trưng của Java:

© Hướng đối tượng — Trong Java, mọi thứ đều là một Object Java có thé dễ

dang mở rộng vì nó được dựa trên mô hình Object.

Nền tảng độc lập — Không giống nhiều ngôn ngữ lập trình khác như C và

C ++, khi Java được biên dịch, nó không được biên dịch vào nền tảng máytính cụ thé, thay vào đó là mã byte nền tảng độc lập Mã byte này được

phan phát trên web va được thông dịch bởi Virtual Machine (JVM) trên

nền tảng nào đó mà nó đang chạy

Don giản — Java được thiết kế rất dễ học Nếu bạn hiểu khái niệm cơ bảncủa OOP Java, bạn sẽ rất dễ làm chủ nó

Đảm bảo — Với tính năng an toàn của Java, nó cho phép phát triển các hệthống không có virus Các kỹ thuật xác thực dựa trên key mã hoá khóa

công khai.

Kiến trúc trung lập — Trình biên dịch Java tạo ra một định dạng tệp đối

tượng kiến trúc trung lập, làm cho mã biên dịch được thực thi trên nhiều

bộ vi xử lý, với sự hiện diện của hệ điêu hành Java.

23

Trang 24

Có thé mang di — Là kiến trúc trung lập và không bị phụ thuộc làm cho

Java có thé mang đi dé dàng Trình biên dịch trong Java được viết bằngANSI C với khả năng di chuyền sạch, đó là một tập hợp con POSIX

Mạnh mẽ - Java nỗ lực dé loại trừ các tình huống dễ bị lỗi bằng cách nhấnmạnh việc kiểm tra lỗi thời gian biên dịch và kiểm tra thời gian chạy

Đa luồng — Với tính năng đa luồng của Java, có thể viết các chương trình

có thé thực hiện nhiều tác vụ đồng thời Tinh năng thiết kế này cho phépcác nhà phát triển xây dựng các ứng dụng tương tác có thé chạy trơn tru

Phiên dịch — Mã byte Java được dịch trực tiếp tới các hướng dẫn máy tính

và không được lưu trữ ở bat cứ đâu Quá trình phát triển nhanh hơn và phân

tích hơn.

Hiệu năng cao — Với việc sử dụng trình biên dịch Just-In- Time, Java cho phép thực hiện chương trình với hiệu năng cao.

Phân phối — Java được thiết kế cho môi trường phân tán của internet

Năng động — Java được xem là năng động hon C hoặc C ++ vì nó được

thiết kế dé thích nghi với môi trường đang phát triển Các chương trình

Java có thể mang một lượng lớn thông tin run-time, có thể được sử dụng

dé xác minh và giải quyết các truy cập vào các đối tượng trong thời gian

chạy.

Ap dụng Android Studio/Java :

e Su dụng Android Studio lam IDE và Java xử ly back end cho ứng dung.

e Phát triển trên các thiết bị Android có hệ điều hành trên 5.0 (Android

24

Trang 25

2.1.4 Cơ sở lý thuyết quy trình phát triển ứng dụng

¢ Bước | : Tạo tài khoản Google Cloud Platform va Billing Account dé sử dung

được các API Sau tao Key với các API cần thiết cho dé tài, bao gồm :

Geocoding API, Directions API, Geolocation API, Maps SDK for Android,

Google Cloud Platform $* Google map API demo ~ Q Search products and resources

API APIs & Services Credentials + CREATECREDENTIALS T§ DELETE

‘Select atleast one credential

Dashboard Create credentials to access your enabled APIs Learn more.

Library

A. Remember to configure the OAuth consent screen with information about your application CONFIGURE CONSENT SCREEN

© Credentials

OAuth consent screen API Keys

Domain vertfication ñd Me Creation date {+ Restrictions Key

Fe Page usage agreements OO pPikeys Jun 27,2020 Android apps, 4 APIs TzaSyBoJZ .9-cgvESVFY Ls} + 8

O Aris Jun 26, 2020 None Li hn .FEaQNgkb34 1ñ + 8

H_ @ Maps ari key Jun 23, 2020 SAPIs 1zaSyBTSM JF6nzBv0: a “8

H ®ztz: Jun 16, 2020 ‘Android apps, 9 APIs 1zaSyD8Vm k04R_AhAjs =A cae

Hinh 7: Tao Key Google Map API

e Bước 2: Tao URL dé có thé lay dit liệu thông qua đó, dựa theo tài liệu mà

Google cung cấp chung ta có thé dé dang tao URL như ý muốn

Thông qua URL : https://maps.googleapis.com/maps/api/service/output?parameters

Chúng ta có thé truyền các thông sé dé lay dữ liệu thông qua dang json

Các thông số bao gồm :

le) Output : Đây là kiểu dữ liệu trả về, chúng ta sẽ áp dụng json trong

trường hợp này.

Origin : Dia chỉ hoặc tọa độ điểm bắt đầu

Destination : Địa chỉ hoặc tọa độ điểm kết thức

Key : là key gồm một chuỗi kí tự đài, Key này được lấy thông qua mụcquản lý project va key chỉ chạy trên một thiết bị, các thiết bị khác sẽ

không chạy song song được.

Mode : chê độ di chuyên , có các chê độ như : đi bộ, xe ô tô, xe đạp

25

Trang 26

o Waypoints : các điểm trung gian trên lộ trình, dé giúp chúng ta có thé

bám sát di chuyên theo lộ trình chính xác hơn

o_ Sẽ có nhiều thông số phụ khác như : units, language, region, chúng

ta chỉ đề cập tới các thông số chính

Chúng ta sẽ ví dụ lấy dữ liệu thông qua URL như sau:

https://maps.googleapis.com/maps/api/directions/json?origin=Dai%20hoc%2 0Cong%20Nghe%20Thong%20 Tin&destination=KI%20tuc%20xa%20khu

%20A%20Dai%20hoc%20Quoc%20GIia&key=AlIzaSyBISMC3CWXusaqM

oKvdc2trVjF6nzBvOz8

Các thông số:

o Orgin là Đại học Công Nghệ Thông Tin

o Destination là Kí túc xá khu A Đại học quốc gia thành phố Hồ Chí

Trang 27

Bước 3: Xây dựng ứng dụng

o Xây dựng giao diện tối ưu, đơn giản dành cho người dùng Ứng dụng

sẽ gồm giao diện chính sẽ được thiết kế như sau :

L:- DD

L-_ ]LE_]I:]

Hình 9: Bồ cục giao diện ứng dụng Textbox (Origin address) : Nhập dia chỉ bat đầu hoặc là toa độ của

Robot hiện tại ( Tự động chuyền qua khi bắt đầu lộ trình)

Textbox (Destination address) : Nhập vào dia chi kết thúc

Button Start : Khi ấn Start — xác định vị trí của Robot hiện tại, sau đó

đưa tọa độ của Robot vào Textbon (Origin address).

Button Find path : Sau khi người dùng xác định được tọa độ (tên dia

điểm) của điểm bắt đầu và kết thúc, ấn button này ứng dụng sẽ vẽ lên

bản độ lộ trình đi (theo đường, địa hình thực tế) Ngoài ra, ứng dụng sẽ

đề xuất cho người dùng lộ trình tốt nhất

Button Send data : Hoan tất cả các bước trên, nhiệm vu của button này

sẽ gửi dữ liệu về server — dưới dạng chuỗi lộ trình, đề Robot có thể dựa

vào lộ trình đó di chuyền chính xác nhất có thể

Fragment chứa bản đồ : Ban đồ thực tế chứa các thông tin chính sau khi

xử lý các bước ở trên bao gồm : địa chỉ hoặc tọa độ của Robot (địa chỉ

bắt đầu), địa chỉ kết thúc, polyline (lộ trình đường đi)

27

Trang 28

2.2 Cơ sở lý thuyết Robot

2.2.1 Sensor Fusion

Sensor fusion hoặc data fusion là sự tông hop các dữ liệu khác nhau từ nhiêu cam biên, đê có được sô liệu đáng tin cậy hơn về về 1 đôi tượng, hoặc là môi trường cua

cảm biến hơn là chỉ dùng 1 cảm biến nhất định để đo dữ liệu tương ứng

Ngày nay data fusion có thé được tìm thay trong nhiều dự án, ứng dụng như hệ thống

theo dõi, giám sát cũng như trên các ứng dụng di động.

Trong phạm vi dé tài này, chúng em sử dung cảm biến 9 bậc tự do (GY86) gồm 3trục từ kế, 3 trục gia tốc kế và 3 trục con quay hồi chuyển đề xác định các góc quaytrong không gian 3 chiều (pitch, roll, yaw), từ đó hỗ trợ robot ở những khúc xử lý có

liên quan tới góc quay.

Hình 10: Cách xác định góc yaw, pitch, roll

Từ kế được sử dụng để xác định heading angle, gia tốc kế được sử dụng dé xác địnhgóc nghiêng và con quay hồi chuyên dùng dé xác định vận tốc quay theo 3 trục Trong

mỗi trường hợp khác nhau, các cảm biến sẽ có ưu, nhược điểm riêng của mình Bằngcác kỹ thuật phân tích, tính toán, dữ liệu lấy từ các cảm biến sẽ được hợp nhất bang

28

Trang 29

các thuật toán lọc Dé hợp nhất dir liệu, trong dé tài này sử dụng 2 bộ lọc là Extend

Kalman filter và Complementary filter

29

Trang 30

FORCE

1g

X=0g Y=0g

Z=-1q

Hình 12: Gia tốc kế trong môi trường trọng lựcTương tự nếu có nhiều hơn 1 lực tác động lên vật thì ở các mặt sẽ xuất hiện các lực

tương ứng, bằng quy tắc tông hợp lực, nếu tính toán ngược lại ta sẽ tính được góc

quay tương ứng là pitch va roll.

30

Trang 31

GRAVITATION FORCE

Nếu chỉ sử dụng cảm biến gia tốc, sẽ không thé xác định được góc yaw, điều này là

do với bat kỳ góc quay nào thì vật luôn luôn chịu tác dụng của lực hap dẫn Vì vậy tacần cảm biến khác dé xác định góc yaw

Ngoài ra, gia tốc kế rất chính xác nếu xét trong khoảng “long term” Góc pitch và roll

có thê được tính toán chính xác khi vật thê đứng yên trên trái đất Tuy nhiên khi vậtthê chuyền động, sẽ có nhiễu xảy ra, nhưng có thé loại bỏ bằng 1 bộ lọc thông thấp

31

Trang 32

2.2.3 Từ kế

Từ kế có tác dụng như 1 la bàn cơ học, có tác dụng đo cường độ từ trường ở 1 vi trí

cụ thé Khi từ kế năm trên mặt phăng, không có từ trường hoặc kim loại ở gần, góc

yaw sẽ được tính như sau:

Trang 33

2.2.4 Con quay hồi chuyển

Con quay hồi chuyển phát hiện vận tốc góc dựa trên hệ thống vi cơ điện tử Khi có

chuyền động theo các trục, chuyên động cơ sẽ được chuyên đối thành tín hiệu điện,

sau đó được khuêch đại và xuât ra dữ liệu cho người dùng.

ATIOW “toy

OF ROT:

us

Hình 15: Cấu tao của con quay hồi chuyên

Sử dụng con quay hồi chuyên cho phép ta xác định được vận tốc góc theo cả 3 trục

như công thức sau:

Toll = @;¿¡¡ * At pitch = @pitcn * At YAW = Wyay * At

Nhược điểm duy nhất của con quay hồi chuyên là quán tính, dan đến hiện tượng giátrị bị trôi (drift), do đó sẽ xảy ra sai lệch kết quả khi vật thê đứng yên Dù vậy conquay hồi chuyền rất chính xác nếu xét trong khoảng “short term” Vì vậy, muốn cảithiện độ chính xác, thường phải thêm bộ lọc thông cao hoặc các bộ lọc khác dé xử lý

tín hiệu.

2.2.5 Data fusion

Qua các ly thuyết đã nêu trên, chúng ta tam rút ra ưu nhược điểm của từng loại cảm

biên như sau:

33

Trang 34

Không thể đo góc yaw

Khi cảm biến chuyển

động, sinh ra nhiễu lớn

Kết quả sẽ bị sai lệchnếu cảm biến bị nghiêngKết quả sẽ bị sai lệch

néu ở trong môi trường

từ trường lớn, hoặc có kim loại

Đo được cả 3 góc pitch, Giá trị sẽ bị trôi khi cảm

roll, yaw biến đứng yên

Con quay _ ey

x 5 _Ì Chính xác trong khoản LÌ Chỉ đo được góc “tươn

hồi chuyên ẽ ẽ l “- ¿

“short term” đôi” so với lúc khởi

động cảm biên ban đâu

Bảng 1: Ưu, nhược điểm của các loại cảm biên

Từ các ưu, nhược điêm như trong bảng, hướng tiêp cận đê hợp nhât các dữ liệu là như sau:

1 Kết hợp dữ liệu từ gia tốc kế dé tính toán góc nghiêng, sau đó bù trừ góc

nghiêng cho từ kế dé từ kế có thé đo được góc yaw ngay cả khi từ kế bị nghiêng

* Sau bước này sẽ hạn chế được nhược điểm khi bị nghiêng của từ kế và

nhược điểm không đo được góc yaw của gia tốc kế

2 Sau đó giá trị do của 3 trục sẽ được tích hợp với giá trị 3 trục của con quay hồi

chuyền qua 2 bộ lọc là Extend Kalman filter và Complimentary

Y Sau bước này nhược điểm bị trôi giá trị của con quay hồi chuyên, nhược

điểm còn lại của gia tốc kế và từ kế sẽ được hạn chế

3 Khi góc yaw duoc tính chính xác từ con quay hồi chuyên qua các bộ lọc, tiếp

đến sẽ được quy chiếu với góc đo được từ từ kế dé giá tri yaw từ con quay hồi

34

Trang 35

chuyền lúc này chính là giá trị góc tương đối của cảm biến so với từ trườngtrái đất

* Sau bước này góc yaw đo được từ con quay hồi chuyền sẽ là góc tuyệt

đối và sẽ được dùng dé xác định phương hướng tuyết đối hiện tai của

robot

2.2.6 Hệ thống định vị toàn cầu (GPS)

Hệ thong dinh vi toan cau 1a hé thống xác định vi trí dựa trên vi trí của 24 vệ tinhnhân tạo được Bộ Quốc phòng Hoa Kỳ đặt trên quỹ đạo trong không gian

GPS hoạt động trong mọi điều kiện thời tiết, mọi nơi trên Trái Dat, 24 giờ một ngày

và hoàn toàn miễn phí đôi với một sô dịch vụ.

rất chính xác và phát tín hiệu có thông tin xuống Trái Đất Các máy thu GPS nhậnthông tin này và băng phép tính lượng giác tính được chính xác vị trí của người dùng

Đề tính ra được vị trí 2 chiều (kinh độ và vĩ độ) thì máy thu phải nhận được tín hiệu

ít nhất là 3 vệ tinh, với ít nhất 4 vệ tinh thì có thé tính được vị trí 3 chiều (kinh độ, vi

độ và độ cao) Một khi vi trí người dùng đã tính được thì máy thu GPS có thể tính các

35

Trang 36

thông tin khác như tốc độ, hướng chuyên động, bám sát di chuyên, khoảng hành

trinh,

Cảm biến siêu âm là một thiết bị cảm biến hoạt động dựa trên sóng siêu âm Cũnggiống như các loại cảm biến áp suất hay cảm biến nhiệt độ, cảm biến siêu âm đượcdùng chủ yếu là để đo khoảng cách hoặc vận tốc Ngoài ra thì còn được sử dụng trong

các ứng dụng như làm sạch bằng sóng siêu âm hoặc dùng trong siêu âm y khoa (siêu

âm chuân đoán hình ảnh).

Siêu âm là một loại âm thanh có tân sô cao hơn tân sô mà tai người có thê nghe được.

Trung bình tan số của siêu âm rơi vào khoảng 20kHz trở lên

Nguyên lý hoạt động:

e Đầu tiên, đầu cảm biến sẽ phát ra 1 chùm sóng siêu âm Khi sóng siêu âm gặp

bề mặt vật cản sẽ phản xạ ngược lại Khi đó cảm biến sẽ thu lại các chùm sóng

siêu âm này.

e Dựa vào thời gian phản xạ và vận tốc của sóng, cảm biến sẽ tính ra được

khoảng cách từ cảm biên tới bê mặt vật cản.

36

Trang 37

Con được gọi là bộ điều khiến vi tích phân tỷ lệ, là một co chế phản hồi vòng điềukhiến tổng quát được sử dụng rộng rãi trong các hệ thống điều khiển công nghiệp.

Được sử dụng nhiều nhất trong các bộ điều khiến hôi tiếp

Bộ điều khiển PID sẽ tính toán sai số giữa giá tri đặt ra va giá tri hồi tiếp, sau đó sẽ

giảm tối đa sai số bằng cách điều chỉnh đầu vào ứng với mỗi sai số nhất định bằng 3

khâu: tỷ lệ, tích phân và vi phân.

37

Ngày đăng: 22/10/2024, 23:58

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN