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 3THONG 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 4LỜ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 5Chươ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 62.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 74: 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 830: 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 9DANH MỤC BANG
Bang 1: Ưu, nhược điểm của các loại cảm biẾn - - :+cSc+tseztsrevsreree
Trang 10DANH 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 11TÓ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 12Chươ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 131.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 14có 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 15e 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 16e 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 17liệ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 18Chươ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 19nhâ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 20Google 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 21Như 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 22e “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 23e 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 24Có 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 252.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 26o 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 27Bướ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 282.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 29cá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 30FORCE
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 31GRAVITATION 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 322.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 332.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 34Khô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 35chuyề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 36thô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 37Con đượ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