Trang 1 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ VÀ ĐIỀU KHIỂN MƠ HÌNH ROBOT PHỤC VỤ THƯ VIỆN GVHD: TS.. Tên đ
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI: THIẾT KẾ VÀ ĐIỀU KHIỂN MÔ HÌNH
ROBOT PHỤC VỤ THƯ VIỆN
GVHD: TS Đặng Xuân Ba Sinh viên thực hiện:
Huỳnh Trung Hiếu 19151125
Hồ Khải Minh 19151154
Lê Anh Huy 19151132
Tp Hồ Chí Minh, tháng 6 năm 2023
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI: THIẾT KẾ VÀ ĐIỀU KHIỂN MÔ HÌNH
ROBOT PHỤC VỤ THƯ VIỆN
GVHD: TS Đặng Xuân Ba Sinh viên thực hiện:
Huỳnh Trung Hiếu 19151125
Hồ Khải Minh 19151154
Lê Anh Huy 19151132
Trang 3CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự Do – Hạnh phúc
*******
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Huỳnh Trung Hiếu MSSV: 19151125
Họ và tên sinh viên: Hồ Khải Minh MSSV: 19151154
Họ và tên sinh viên: Lê Anh Huy MSSV: 19151132
Ngành: Công nghệ Kỹ thuật Điều khiển và Tự động hóa
Lớp: 19151CL1
Giảng viên hướng dẫn: TS Đặng Xuân Ba ĐT: 0945853990
Ngày nhận đề tài: 6/2/2023 Ngày nộp đề tài: 30/6/2023
1 Tên đề tài: Thiết kế và điều khiển mô hình robot phục vụ thư viện
2 Các số liệu, tài liệu ban đầu:
• Kích thước dự kiến: Đế tròn đường kính 70cm, chiều cao tổng 157cm
• Trọng lượng: 30kg
3 Nội dung thực hiện đề tài:
• Thiết kế phần cứng mô hình robot phục vụ thư viện trên phần mềm Solidworks
• Tính toán động học cho hệ 4 bánh xe Mecanum
• Mô phỏng, kiểm chứng kết quả động học
• Lựa chọn động cơ và các thiết bị cần thiết cho robot
• Thi công mô hình robot phục vụ thư viện
• Thiết kế sơ đồ đấu nối các thiết bị và vi điều khiển
• Thiết kế và xây dựng giao diện điều khiển và các chức năng chính của robot như
nhận diện bằng khuôn mặt và thẻ sinh viên, tra cứu, mượn sách, trả sách, điểm
danh sinh viên ra vào thư viện
• Thiết kế và xây dựng chức năng di chuyển thông minh cho robot Bao gồm tự tìm
đường đến điểm mục tiêu và tránh các vật cản tĩnh và động trên đường đi
• Thiết kế và xây dưng giao diện điều khiển và giám sát từ xa qua mạng internet
Đồng thời kết hợp thêm với chế độ di chuyển thông minh tạo thành các nút nhấn
di chuyển đến điểm cố định, ngoài ra có thể quay lại video sau đó lưu trữ vào
google Drive
• Kiểm chứng và chạy mô hình thực tế, đánh giá hoạt động của robot trên mô hình
thực tế
Trang 44 Sản phẩm:
• Mô hình thực nghiệp robot phục vụ thư viện
• Chương trình điều khiển
• Quyển báo cáo đồ án tốt nghiệp, video hoạt động tổng hợp và poster
5 Ngày giao đồ án: 6/2/2023
6 Ngày nộp đồ án: 30/6/2023
7 Ngôn ngữ trình bày: Bản báo cáo: Tiếng Anh ☐ Tiếng Việt ☒
Trình bày bảo vệ: Tiếng Anh ☐ Tiếng Việt ☒
Trang 5CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự Do – Hạnh phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên: Huỳnh Trung Hiếu MSSV: 19151125
Họ và tên Sinh viên: Hồ Khải Minh MSSV: 19151154
Ngành: Công nghệ Kỹ thuật Điều khiển và Tự động hóa
Tên đề tài: Thiết kế và điều khiển mô hình robot phục vụ thư viện
Họ và tên Giáo viên hướng dẫn: TS Đặng Xuân Ba
NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:………(Bằng chữ: )
Tp Hồ Chí Minh, ngày 30 tháng 06 năm 2023
Giáo viên hướng dẫn (Ký & ghi rõ họ tên)
Trang 6CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự Do – Hạnh phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Huỳnh Trung Hiếu MSSV: 19151125
Họ và tên Sinh viên: Hồ Khải Minh MSSV: 19151154
Ngành: Công nghệ Kỹ thuật Điều khiển và Tự động hóa
Tên đề tài: Thiết kế và điều khiển mô hình robot phục vụ thư viện
Họ và tên Giáo viên phản biện:……… NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:………(Bằng chữ: )
Tp Hồ Chí Minh, ngày 30 tháng 06 năm 2023
Giáo viên phản biện
Trang 7CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự Do – Hạnh phúc
*******
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên 1: Huỳnh Trung Hiếu MSSV:19151125
Họ và tên sinh viên 2: Hồ Khải Minh MSSV:19151154
Tên đề tài: Thiết kế và điều khiển mô hình Robot phục vụ thư viện
Xác nhận GVHD
20/2/2023
(2 tuần)
- Thiết kế phần cứng mô hình trên phần mềm Solidworks
- Tính toán động học cho hệ 4 bánh xe Mecanum
16/3/2023
(2 tuần)
- Mô phỏng, kiểm chứng kết quả động học
- Lựa chọn động cơ và các thiết bị cần thiết cho robot
13/3/2023
(3 tuần)
-Thi công mô hình robot phục vụ thư viện
- Thiết kế sơ đồ đấu nối các thiết bị và vi điều khiển
3/4/2023
( 2 tuần)
- Thiết kế và xây dựng giao diện điều khiển và các chức năng chính của robot như nhận diện bằng khuôn mặt và thẻ sinh viên, tra cứu, mượn sách, trả sách, điểm danh sinh viên ra vào thư viện
24/5/2023
(2 tuần)
- Thiết kế và xây dựng chức năng di chuyển thông minh cho robot Bao gồm tự tìm đường đến điểm mục tiêu và tránh các vật cản tĩnh và động trên đường đi
15/5/2023
(2 tuần)
- Thiết kế và xây dưng giao diện điều khiển và giám sát từ xa qua mạng internet Đồng thời kết hợp thêm với chế độ di
Trang 8chuyển thông minh tạo thành các nút nhấn di chuyển đến điểm
cố định, ngoài ra có thể quay lại video sau đó lưu trữ vào google Drive
- Hoàn thiện luận văn
- Hoàn thành Poster, video giới thiệu đồ án và PowerPoint trình bày
Trang 9LỜI CAM ĐOAN Nhóm sinh viên xin phép cam kết đề tài này là do nhóm tự hiện dựa vào những tài liệu tham khảo trước đó và không sao chép từ tài liệu hay công trình đã có trước đó
Thành phố Hồ Chí Minh, ngày 30 tháng 06 năm 2023 Nhóm sinh viên thực hiện
(Ký và ghi rõ họ tên) Huỳnh Trung Hiếu Hồ Khải Minh Lê Anh Huy
Trang 10LỜI CẢM ƠN Trong suốt khoảng thời gian học tập, nghiên cứu và thực hiện đồ án, nhóm sinh viên xin được phép gửi lời cảm ơn chân thành đến các quý thầy cô Khoa Đào tạo Chất lượng cao nói riêng và Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh vì
đã dành tâm huyết đối với nghề và truyền lại những kiến thức bổ ích để nhóm có thể vận dụng vào đồ án, công việc sau này và những lời động viên quý giá đến nhóm sinh viên
Đặc biệt, nhóm sinh viên xin gửi lời cảm ơn đến Thầy Đặng Xuân Ba, thầy đã gợi
ý đề tài cho nhóm sinh viên, chia sẽ những kinh nghiệm thực tế và trực tiếp hướng dẫn
và theo dõi tình hình của nhóm, tạo điều kiện tốt nhất để nhóm có thể thực hiện đồ án Thầy đã dành thời gian quý báu để truyền đạt vốn kiến thức cho nhóm sinh viên từ lúc mới nhận đề tài đến lúc hoàn thành Nhóm sinh viên cũng xin gửi lời cảm ơn đến gia đình và bạn bè đã luôn động viên, hỗ trợ, tạo điều kiện thuận lợi nhất để nhóm hoàn thành đề tài
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của nhóm, việc tiếp cận vào nghiên cứu những đề tài thực tế không thể tránh được những thiếu sót Nhóm rất mong nhận được sự chỉ bảo, đóng góp ý kiến của Thầy/Cô để nhóm bổ sung kiến thức và áp dụng vào thực tế tốt hơn Nhóm sinh viên xin kính chúc quý Thầy/Cô luôn dồi dào sức khỏe để có thể truyền cảm hứng cho thế hệ mai sau
Nhóm sinh viên xin chân thành cảm ơn
Thành phố Hồ Chí Minh, ngày 30 tháng 06 năm 2023 Nhóm sinh viên thực hiện
(Ký và ghi rõ họ tên) Huỳnh Trung Hiếu Hồ Khải Minh Lê Anh Huy
Trang 11TÓM TẮT Trong thời đại hiện nay, sự phát triển mạnh mẽ của nền khoa học kỹ thuật đã tạo
ra những tiến bộ đáng kể trong lĩnh vực robot và trí tuệ nhân tạo, nhằm phục vụ và nâng cao chất lượng cuộc sống của con người Một trong những ứng dụng đáng chú ý đó là việc thiết kế và phát triển các robot phục vụ đời sống, nhằm cung cấp sự hỗ trợ và tiện ích trong nhiều lĩnh vực, bao gồm cả phục vụ thư viện
Mục đích của đề tài này là thiết kế và điều khiển mô hình robot phục vụ thư viện, một đề tài nhằm đáp ứng nhu cầu và tạo ra trải nghiệm tốt hơn cho người sử dụng trong thư viện Robot của nhóm sinh viên không chỉ là một công cụ hữu ích trong quá trình quản lý và truy cập thông tin sách, mà còn là một người bạn đồng hành thông minh và thân thiện cho người dùng
Robot được trang bị khả năng nhận dạng khuôn mặt, giúp robot nhận biết và tương tác với từng người dùng Giao diện điều khiển của robot được thiết kế đơn giản và trực quan, giúp mọi người dễ dàng tương tác và tìm kiếm thông tin sách một cách nhanh chóng và thuận tiện Người sử dụng có thể sử dụng màn hình cảm ứng hoặc điều khiển giọng nói để nhập thông tin và gửi yêu cầu đến robot Người dùng có thể sử dụng robot
để mượn sách, trả sách mà không cần đến quầy phục vụ Bên cạnh đó, robot có thể xác định và tránh các vật thể, bàn ghế, và người đi lại trong thư viện, đảm bảo sự an toàn cho
cả người dùng và môi trường xung quanh Ngoài ra, robot còn có khả năng kết nối với mạng internet và điều khiển từ xa Người quản lý thư viện có thể theo dõi và điều khiển robot thông qua giao diện trực tuyến, giúp quản lý và giám sát hoạt động của robot một cách hiệu quả
Như mục đích đã nêu trên, nhóm đã chọn đề tài “Thiết kế và điều khiển mô hình robot phục vụ thư viện” Báo cáo đồ án này gồm sáu chương Chương 1 giới thiệu tổng quan về đề tài Chương 2 trình bày cơ sở lý thuyết về mô hình hóa và thuật toán điều khiển cho robot tự hành bốn bánh đa hướng, lý thuyết về xử lý ảnh và truyền tải dữ liệu Chương 3 thiết kế mô hình và lựa chọn thiết bị Chương 4 thiết kế các tính năng cho robot như: Chương trình ROS ứng dụng cho xe tự hành, ứng dụng xử lý ảnh, xây dựng tính năng giao tiếp giữa người và robot bằng giọng nói, xây dựng tính năng điều khiển robot qua internet và thiết kế giao diện cho người sử dụng Chương 5 trình bày kết quả thực tế Chương 6 trình bày kết luận và hướng phát triển
Trang 12The objective of this project is to design and control a model of a library service robot, which seeks to meet the needs and provide a better user experience in the library setting The student team's robot is not just a useful tool for managing and accessing book information but also an intelligent and friendly companion for users
The robot is equipped with facial recognition capabilities, enabling it to identify and interact with individual users The robot's control interface is designed to be simple and user-friendly, allowing for easy interaction and quick searches for book information Users can utilize the touchscreen or voice commands to input information and send requests to the robot The robot allows users to borrow and return books without the need
to visit the service counter Moreover, the robot is capable of detecting and avoiding objects, such as tables, chairs, and moving individuals within the library, ensuring safety for both users and the surrounding environment Additionally, the robot can connect to the internet and be remotely controlled Library administrators can effectively monitor and control the robot's activities through an online interface, facilitating efficient management and oversight
As previously mentioned, the team has selected the topic of "Design and Control
of a Library Service Robot" for this project The report consists of six chapters Chapter 1 provides an overview of the topic Chapter 2 presents the modeling and control algorithms for the four-wheeled omnidirectional autonomous robot, as well as the theory
of image processing and data transmission Chapter 3 focuses on the design of the robot model and device selection Chapter 4 covers the design of various features for the robot, including the ROS application for autonomous driving, image processing applications, voice-based human-robot interaction, internet-based robot control, and user interface design Chapter 5 presents the practical results obtained Finally, Chapter 6 concludes the report and discusses future development directions
Trang 13MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN iii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iv
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP v
LỜI CAM ĐOAN vii
LỜI CẢM ƠN viii
TÓM TẮT ix
ABSTRACT x
MỤC LỤC xi
DANH SÁCH HÌNH ẢNH xvi
DANH SÁCH BẢNG xxii
DANH SÁCH CÁC TỪ VIẾT TẮT xxiii
CHƯƠNG 1 TỔNG QUAN 1
1.1 Đặt vấn đề 1
1.1.1 Tình hình nghiên cứu ngoài nước 1
1.1.2 Tình hình nghiên cứu trong nước 3
1.2 Mục tiêu đề tài 5
1.2.1 Mục đích đề tài 5
1.2.2 Mục tiêu đề tài 5
1.3 Phương pháp nghiên cứu 5
1.4 Giới hạn đề tài 5
1.5 Nội dung nghiên cứu 6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 7
2.1 Xây dựng mô hình động học, động lực học cho bốn bánh đa hướng của robot thư viện 7
Trang 142.1.1 Giới thiệu bánh xe Mecanum 7
2.1.2 Mô hình động học của bốn bánh đa hướng của robot thư viện 8
2.1.3 Mô hình bánh xe tổng quát 10
2.1.4 Mô hình động học thuận của bốn bánh đa hướng của robot thư viện 12
2.1.5 Mô hình động học nghịch của bốn bánh đa hướng của robot thư viện 13
2.2 Giới thiệu về Robot Operating System 13
2.2.1 Tổng quan về hệ điều hành dành cho robot – ROS 13
2.2.2 Cấu trúc ROS 14
2.2.3 2D Navigation stack 17
2.2.4 Các gói hỗ trợ trên Ros 18
2.3 Tổng quan về Lidar Slamtec Mapper M1M1 19
2.3.1 Giới thiệu về Lidar 19
2.3.2 Thành phần và kết nối hệ thống 20
2.3.3 Nguyên lý hoạt động của lidar 21
2.4 Thuật toán điều hướng robot 21
2.4.1 Thuật toán Dijkstra 21
2.4.2 Thuật toán Dynamic Window Approach để tránh vật cản 26
2.4.3 Thuật toán PID 29
2.4.4 Kết luận 32
2.5 Lý thuyết về xử lý ảnh 33
2.5.1 Tổng quan về MTCNN (Multi-task Cascaded Convolutional Networks) 33
2.5.2 Tổng quan về phương pháp Facenet nhận dạng khuôn mặt 35
2.6 Lý thuyết truyền tải dữ liệu qua mạng 37
2.6.1 Phương thức truyền tải dữ liệu giữa Client-Server 37
2.6.2 Giao thức truyền thông HTTP/HTTPS 38
2.6.3 Lý thuyết RESTful API 43
Trang 152.6.4 Giao thức truyền thông MQTT 46
2.7 Các giao thức giao tiếp 54
2.7.1 Giao tiếp ROS Master 54
2.7.2 Giao tiếp Uart 55
2.7.3 Giao tiếp I2C 57
2.8 Hệ điều hành Ubuntu, ngôn ngữ lập trình và phần mềm hỗ trợ 58
2.8.1 Hệ điều hành Ubuntu 58
2.8.2 Ngôn ngữ Python 59
2.8.3 Phần mềm QT design 60
2.8.4 Phần mềm Arduino 61
2.8.5 Phần mềm Solidworks 62
2.8.6 Phần mềm Mysql Workbench và phpMyAdmin 63
2.8.7 Giới thiệu thư viện SpeechRecognition 64
2.8.8 Giới thiệu Opencv 65
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG VÀ LỰA CHỌN THIẾT BỊ 66
3.1 Lựa chọn thiết bị 66
3.1.1 Vi điều khiển 66
3.1.2 Mini PC 67
3.1.3 Động cơ 69
3.1.4 Mạch điều khiển động cơ 70
3.1.5 Nguồn 71
3.1.6 Inverter kích điện 71
3.1.7 Bo mạch ESP32 72
3.1.8 Mạch tăng áp Boost DC-DC 73
3.1.9 Mạch giảm áp Buck DC-DC 74
3.1.10 Cảm biến vật cản hồng ngoại 74
Trang 163.1.11 Động Cơ Servo Giảm Tốc 75
3.1.12 Cảm biến siêu âm 76
3.1.13 I2C UART SPI TTL Mạch Chuyển Mức Tín Hiệu 76
3.1.14 Màn hình cảm ứng 77
3.1.15 Máy quét barcode 77
3.1.16 Camera 78
3.2 Thiết kế phần điện 79
3.3 Thiết kế phần cơ khí 81
3.3.1 Yêu cầu phần cứng 81
3.3.2 Thiết kế trên phần mềm SolidWorks 81
CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH ĐIỀU KHIỂN 84
4.1 Mô tả hoạt động của robot thư viện 84
4.2 Chương trình mô phỏng simulink mô hình xe mecanum 85
4.3 Chương trình ROS ứng dụng cho xe tự hành 88
4.3.1 Lưu đồ chương trình 88
4.3.2 Xây dựng bản đồ 89
4.3.3 Điều hướng robot trên bản đồ đã dựng 94
4.3.4 Chương trình điều khiển động cơ (Mobile base) 101
4.3.5 Thiết lập serial giao tiếp với Mobile base 102
4.4 Ứng dụng xử lý ảnh 103
4.4.1 Nhận diện barcode 103
4.4.2 Nhận diện gương mặt 106
4.5 Xây dựng tính năng giao tiếp giữa người và robot bằng giọng nói 108
4.5.1 Chuyển giọng nói về dạng văn bản (Speech to text) 109
4.5.2 Đưa ra hành động (Take action) 109
4.5.3 Chuyển văn bản về giọng nói (Text to Speech) 110
Trang 174.6 Xây dựng tính năng điều khiển robot qua internet 110
4.6.1 Cấu hình ESP32 để điều khiển robot qua internet 110
4.6.2 Xây dựng tính năng xem camera và ghi hình từ xa qua internet 115
4.7 Thiết kế giao diện 122
4.7.1 Thiết kế giao diện QT design 122
4.7.2 Thiết kế giao diện web 126
CHƯƠNG 5 KẾT QUẢ VÀ ĐÁNH GIÁ 129
5.1 Kết quả mô phỏng 129
5.1.1 Kết quả mô phỏng trên matlab/simulink 129
5.1.2 Kết quả mô phỏng trên ROS 135
5.2 Kết quả xử lý ảnh 139
5.2.1 Nhận diện barcode 139
5.2.2 Nhận diện gương mặt 140
5.3 Kết quả thiết kế giao diện chạy trên phần mềm python 142
5.4 Kết quả điều khiển xe tự hành 145
5.5 Kết quả điều khiển qua Internet 150
5.6 Kết quả hoạt động của toàn bộ hệ thống 151
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 152
6.1 Kết luận 152
6.2 Hướng phát triển 153
TÀI LIỆU THAM KHẢO 154
PHỤ LỤC 156
Trang 18DANH SÁCH HÌNH ẢNH Hình 1.1 Robot Perseverance hoạt động tại miệng hố Jezero trên hành tinh đỏ NASA 2
Hình 1.2 Robot Pangolin của hãng Pangolin Robot Japan Co 2
Hình 1.3 Tiến sĩ Opfermann, người chủ trì công trình nghiên cứu robot phẫu thuật tự hành tại Đại học Johns Hopkins (Mỹ).s 3
Hình 1.4 Robot tự hành thông minh (NextAMR) 4
Hình 1.5 Công ty intelligent robot 4
Hình 1.6 Robot VIBOT do Việt Nam phát triển hỗ trợ đắc lực phòng, chống Covid-19 4 Hình 2.1 Bánh xe Mecanum được phát minh bởi nhà kỹ sư người Đức 7
Hình 2.2 Bánh xe Mecanum kim loại 7
Hình 2.3 Bánh xe Mecanum nhựa 8
Hình 2.4 Các hướng xe mecanum di chuyển 8
Hình 2.5 Mô hình xe đa hướng mecanum trong hệ trục tọa độ 9
Hình 2.6 Tọa độ tâm bánh xe 10
Hình 2.7 Tâm bánh xe trong hệ trục tọa độ B 10
Hình 2.8 Tâm bánh xe trong hệ trục tọa độ B khi vó vận tốc 11
Hình 2.9 Xe đa hướng mecanum trong hệ trục tọa độ I 12
Hình 2.10 Xe đa hướng Mecanum trong hệ trục tọa độ O 13
Hình 2.11 Các phiên bản của Ubuntu 14
Hình 2.12 Hệ thống ROS Computation Graph Level 15
Hình 2.13 Hệ thống Navigation 17
Hình 2.14 Lidar Slamtec Mapper M1M1 19
Hình 2.15 Sơ đồ trong Lidar 20
Hình 2.16 Laser quét trong môi trường 20
Hình 2.17 Nguyên lí hoạt động Lidar 21
Hình 2.18 Phần mềm hỗ trợ quan sát Lidar quét 21
Hình 2.19 Tóm tắt thuật toán 22
Hình 2.20 Sơ đồ các node 23
Hình 2.21 Bước 1 của Node a 23
Hình 2.22 Bước 2 của Node c 23
Hình 2.23 Bước 3 của Node d 24
Hình 2.24 Bước 4 của Node b 24
Hình 2.25 Bước 5 của Node f 24
Trang 19Hình 2.27 Hoạch đường đi sử dụng thuật toán Dijkstra 26
Hình 2.28 Vận tốc cho phép V_a trong DWA 27
Hình 2.29 Vận tốc trong cửa sổ động V_dtrong DWA 28
Hình 2.30 Lưu đồ giải thuật DWA 29
Hình 2.31 Sơ đồ khối bộ điều khiển PID 30
Hình 2.32 Sơ đồ hoạt động của MTCNN 33
Hình 2.33 Mạng đề xuất (P-Net) 34
Hình 2.34 Mạng lọc (R-net) 34
Hình 2.35 Mạng đầu ra (O-Net) 35
Hình 2.36 Minh họa về quá trình sau huấn luyện 36
Hình 2.37 Mô hình truyền tải dữ liệu giữa Client-Server 37
Hình 2.38 Quá tình của một phiên làm việc HTTP 39
Hình 2.39 Mô hình RESTful API 44
Hình 2.40 Cách thức hoạt động của RESTful API 45
Hình 2.41 Giao thức MQTT 47
Hình 2.42 Một phiên MQTT 48
Hình 2.43 Phần mềm ngrok 51
Hình 2.44 Giới thiệu cPanel 52
Hình 2.45 Giao diện cPanel 53
Hình 2.46 Giao diện E-Ra 54
Hình 2.47 Giao tiếp UART 55
Hình 2.48 Cách thức hoạt động của giao tiếp UART 56
Hình 2.49 Giao tiếp I2C 58
Hình 2.50 Giao diện hệ điều hành Ubuntu 58
Hình 2.51 Giới thiệu Python 60
Hình 2.52 Giao diện của phần mềm Qt Designer 61
Hình 2.53 Giao diện trong phần mềm Qt Designer 61
Hình 2.54 Phần mềm Arduino 62
Hình 2.55 Giao diện SolidWorks 63
Hình 2.56 Phần mềm MySQL Workbench 63
Hình 2.57 Phần mềm phpMyAdmin 64
Hình 2.58 Thư viện Speech to Text 65
Hình 2.59 Opencv 65
Hình 3.1 Arduino mega 66
Trang 20Hình 3.2 Raspberry Pi 4 67
Hình 3.3 Mini pc LongVu 68
Hình 3.4 Động cơ DC servo JGB37-545 69
Hình 3.5 Mạch cầu HI216 70
Hình 3.6 Pin Lithium 71
Hình 3.7 Inverter kích điện 72
Hình 3.8 ESP32 72
Hình 3.9 Mạch tăng áp DC-DC 73
Hình 3.10 Mạch giảm áp DC-DC 74
Hình 3.11 Cảm biến hồng ngoại 75
Hình 3.12 Động cơ servo 75
Hình 3.13 Cảm biến siêu âm 76
Hình 3.14 Mạch chuyển mức tín hiệu 76
Hình 3.15 Màn hình cảm ứng Viewsonic 77
Hình 3.16 Máy quét barcode 78
Hình 3.17 Camera logitech 79
Hình 3.18 Sơ đồ khối mô tả cách hoạt động của các khối xử lí tín hiệu 79
Hình 3.19 Sơ đồ kết nối mạch điều khiển các thiết bị của robot thư viện 80
Hình 3.20 Bảng điều khiển nguồn cho robot thư viện 80
Hình 3.21 Tổng quan mô hình Robot phục vụ thư viện 81
Hình 3.22 Phần đế và các vật liệu, linh kiện được sử dụng 82
Hình 3.23 Phần thân và các vật liệu, linh kiện được sử dụng 82
Hình 3.24 Phần đầu và các vật liệu, linh kiện được sử dụng 83
Hình 3.25 Mô hình robot phục vụ thư viện 83
Hình 4.1 Mô phỏng xe đa hướng mecanum tổng quát 86
Hình 4.2 Mô phỏng động học thuận xe đa hướng mecanum 86
Hình 4.3 Mô phỏng động học nghịch xe đa hướng mecanum 87
Hình 4.4 Lưu đồ điều khiển xe tự hành 88
Hình 4.5 Bản đồ sau khi lưu 91
Hình 4.6 Sơ đồ các Node trong tạo bản đồ 92
Hình 4.7 Cấu trúc frame trong tạo bản đồ 93
Hình 4.8 Thông tin vị trí và hướng của Lidar 94
Hình 4.9 Các node liên kết trong move_base 101
Trang 21Hình 4.11 Làm mờ ảnh 104
Hình 4.12 Cân bằng sáng 104
Hình 4.13 Phân ngưỡng 105
Hình 4.14 30 ảnh chứa khuôn mặt được chụp để làm dữ liệu huấn luyện 106
Hình 4.15 Các thư mục chứa ảnh được lưu bằng mssv 106
Hình 4.16 Các ảnh sau khi được cắt riêng khuôn mặt 107
Hình 4.17 Các ảnh đều được resize về kích thước chung 160x160 107
Hình 4.18 Các ảnh sau khi được chuẩn hóa về mức sáng 107
Hình 4.19 Các dữ liệu được quét 108
Hình 4.20 Kết quả sau khi truyền qua model facenet 108
Hình 4.21 Sơ đồ tính năng giọng nói 109
Hình 4.22 Lưu đồ tính năng giao tiếp giữa người và robot bằng giọng nói 110
Hình 4.23 Chương trình ESP32 111
Hình 4.24 chương trình ESP32 111
Hình 4.25 Kết nối uart 112
Hình 4.26 Lưu đồ điều khiển xe từ xa 113
Hình 4.27 Cấu hình wifi 113
Hình 4.28 Cấu hình tên đăng nhập và mật khẩi cố định 114
Hình 4.29 Giao diện nhập thông tin wifi 114
Hình 4.30 Lưu đồ giải thuật kết nối với Wifi của ESP32 114
Hình 4.31 Nút nhấn lưu video 115
Hình 4.32 Template hiển thị giao diện chứa video streaming từ camera 115
Hình 4.33 Chuyển đổi khung hình thành dạng bytes 115
Hình 4.34 Hình ảnh hiển thị trên web localhost khi chạy file python 116
Hình 4.35 Chạy ngrok và in ra địa chỉ forwarding url và độ trễ mạng 116
Hình 4.36 Dữ liệu người sử dụng được lưu trong bảng dữ liệu 116
Hình 4.37 Giao diện đăng nhập và đăng ký dành cho người điều khiển 117
Hình 4.38 Thông báo khi người dùng nhập sai tài khoản/mật khẩu 117
Hình 4.39 Bảng dữ liệu về người điều khiển 117
Hình 4.40 Trang thông báo rằng có người đang sử dụng trang web điều khiển 118
Hình 4.41 Trang hiển thị mã Auth Token của nền tảng E-Ra 118
Hình 4.42 Truy vấn đến nền tảng E-Ra với phương thức “GET” 118
Hình 4.43 Kết quả của truy vấn là đoạn mã chứa ID của nút nhấn 118
Trang 22Hình 4.44 Hình 4.46 Thực hiện truy vấn để lấy action_key on và action_key off của nút nhấn 119Hình 4.45 Giá trị action_on và action_off 119Hình 4.46 Cấu hình cho 1 yêu cầu POST HTTP 119Hình 4.47 Hình ảnh khi chưa nhấn nút (trái), và đã nhấn nút (phải) 120Hình 4.48 Nút nhấn bật điều khiển robot di chuyển đa hướng 120Hình 4.49 Trạng thái đã được điều khiển và lưu vào cơ sở dữ liệu phpMyAdmin 120Hình 4.50 Hiển thị dữ liệu đã điều khiển ra bảng dữ liệu 121Hình 4.51 Nút nhấn tắt điều khiển robot di chuyển tự động 121Hình 4.52 Các nút nhấn di chuyển đến từng vị trí khác nhau để giám sát 121Hình 4.53 Lưu đồ chương trình giao diện 122Hình 4.54 Giao diện bắt đầu 123Hình 4.55 Giao diện nhận diện gương mặt 123Hình 4.56 Giao diện đăng kí thông tin 124Hình 4.57 Giao diện chính 124Hình 4.58 Giao diện mượn sách 125Hình 4.59 Giao diện trả sách 125Hình 4.60 Tra cứu theo khoa 126Hình 4.61 Tra cứu theo tên 126Hình 4.62 Giao diện đăng nhập 127Hình 4.63 Giao diện đăng kí 127Hình 4.64 Giao diện điều khiển 128Hình 5.1 Đáp ứng động học của xe đa hướng Mecanum tổng quát trường hợp 1 129Hình 5.2 Đáp ứng động học của xe đa hướng Mecanum tổng quát trường hợp 2 130Hình 5.3 Đáp ứng động học của xe đa hướng Mecanum tổng quát trường hợp 3 130Hình 5.4 Đáp ứng động học của xe đa hướng Mecanum tổng quát trường hợp 4 131Hình 5.5 Đáp ứng động học thuận của xe đa hướng Mecanum trường hợp 1 131Hình 5.6 Đáp ứng động học thuận của xe đa hướng Mecanum trường hợp 2 132Hình 5.7 Đáp ứng động học thuận của xe đa hướng Mecanum trường hợp 2 132Hình 5.8 Đáp ứng động học thuận của xe đa hướng Mecanum trường hợp 4 133Hình 5.9 Đáp ứng động học nghịch của xe đa hướng Mecanum trường hợp 1 134Hình 5.10 Đáp ứng động học nghịch của xe đa hướng Mecanum trường hợp 2 134Hình 5.11 Đáp ứng động học nghịch của xe đa hướng Mecanum trường hợp 3 135
Trang 23Hình 5.13 Quét bản đồ 136Hình 5.14 Bản đồ quét xong 137Hình 5.15 Map đã lưu 137Hình 5.16 Điều hướng robot bot 138Hình 5.17 Thông báo đã tới nơi 138Hình 5.18 Kết quả nhận diện barcode 1 139Hình 5.19 Kết quả nhận diện barcode 2 139Hình 5.20 Kết quả nhận diện barcode 3 140Hình 5.21 Kết quả nhận diện gương mặt 1 140Hình 5.22 Kết quả nhận diên gương mặt 2 141Hình 5.23 Kết quả nhận diện gương măt 3 141Hình 5.24 Kết quả giao diện bắt đầu 142Hình 5.25 Kết quả giao diện nhận diện gương mặt 142Hình 5.26 Kết quả giao diện đăng kí thông tin 143Hình 5.27 Kết quả giao diện các tính năng 143Hình 5.28 Kết quả giao diện tra cứu sách theo tên 144Hình 5.29 Kết quả giao diện trả sách 144Hình 5.30 Kết quả giao diện tra cứu sách khoa 145Hình 5.31 Vị trí ban đầu của robot (kết quả 1) 145Hình 5.32 Đặt vị trí đến cho robot (kết quả 1) 145Hình 5.33 Vị trí đã đến của robot (kết quả 1) 146Hình 5.34 Vị trí hiện tại của robot (kết quả 2) 146Hình 5.35 Vị trí hiện tại của robot (kết quả 2) 147Hình 5.36 Vị trí hiện tại của robot 148Hình 5.37 Đặt điểm đến cho robot 148Hình 5.38 Vị trí hiện tại của robot 148Hình 5.39 Đặt 3 điểm cố định cho robot 149Hình 5.40 Robot tránh người trên đường di chuyển 149Hình 5.41 Robot tránh vật trên đường di chuyển 150Hình 5.42 Kết quả giao diện điều khiển robot hoạt động thực tế 150Hình 5.43 Quay và lưa video giám sát trong quá trình di chuyển 151
Trang 24DANH SÁCH BẢNG Bảng 2-1 Tính toán đường ngắn nhất 25Bảng 2-2 So sánh ưu nhược điểm của giao tiếp UART 57Bảng 4-1 Các nhãn tương ứng khi có các từ xuất hiện khi nói 110
Trang 25DANH SÁCH CÁC TỪ VIẾT TẮT
WMR Wheeled Mobile Robot Robot di động có bánh xe APT Advanced Package Tool Phần mềm quản lí cài đặt trên Linux IOT Internet of Things Vạn vật kết nối Internet ROS Robot Operating System Hệ điều hành dành cho
Robot GUI Graphical User Interface Giao diện đồ họa người dùng
AMCL Localization Adaptive Monte Carlo Thuật toán xác định vị trí của Robot SLAM and Mapping Simultaneous Localization Thuật toán xây dựng, cập nhật bản đồ
Tree
Thuật toán tìm đường đi
PID Derivative Proportional-Integral- khiển chuyển động Thuật toán điều
SDK Software Development Kit phần mềm Bộ công cụ phát triển LIDAR Light Detection and
Ranging)
Cảm biến đo khoảng cách
DWA Dynamic Window Approach cản Thuật toán tránh vật
MTCNN Convolutional Neural Networks Multi-task Cascaded
Mô hình mạng nơ rơn tích chập dùng để nhận dạng khuôn mặt
Trang 26HTTP Hyper Text Transfer Protocol Giao thức truyền tải
HTTPS Hypertext Transfer Protocol
Secure
Giao thức truyền tải siêu văn bản an toàn
TCP/IP Transmission Control Protocol / Internet Protocol Giao thức mạng
HTML Hypertext Markup Language Ngôn ngữ xây dựng, địng dạng web
TLS Transport Layer Security ảo mật truyền tải
WebRTC Web Real-Time Communication Truyền tải dữ liệu thời gian
thực RTP Real-time Transport Protocol
URI Uniform Resource Identifier Chỉ định và truy cập tài nguyên mạng API Application Programming
Interface
Quy tắc và giao thức giữa các phần mềm
URL Uniform Resource Locator Địa chỉ web
REST Representational State Transfer Một dạng chuyển đổi cấu trúc dữ liệu RESTful
API Representational State Transfer
Một tiêu chuẩn để thiết kế API
MQTT Message Queuing Telemetry Transport Giao thức truyền thông điệp
ROS
Master Robot Operating System Master Quy trình quản lý và lưu trữ thông tin trong ROS
UART Universal Asynchronous Receiver/Transmitter Giao thức không đồng bộ I2C Inter-Integrated Circuit Giao tiếp nội bộ các linh kiện SDA Serial Data
Dây truyền thông trong I2C SCL Serial Clock
Trang 27CHƯƠNG 1 TỔNG QUAN 1.1 Đặt vấn đề
Robot đang trở thành một phần quan trọng trong cuộc sống hiện đại, mang lại sự tiện lợi và tiến bộ cho nhiều lĩnh vực Với khả năng tự động và thông minh, robot có thể thực hiện các nhiệm vụ từ đơn giản đến phức tạp mà trước đây chỉ có con người mới có thể làm Chúng có thể tự động hóa quy trình sản xuất, cung cấp dịch vụ chăm sóc y tế,
hỗ trợ trong nghiên cứu khoa học và thám hiểm không gian, và thậm chí làm việc trong môi trường nguy hiểm Robot mang lại hiệu suất và hiệu quả cao, giảm công sức lao động và rủi ro cho con người Tuy nhiên, việc nghiên cứu và phát triển robot không chỉ tập trung vào khả năng kỹ thuật mà còn đặt ra các thách thức về đạo đức, an ninh và tương tác với con người Điều này đòi hỏi sự cân nhắc cẩn thận và quyết định thông minh để đảm bảo rằng robot đáp ứng được nhu cầu và tạo lợi ích thiết thực cho xã hội
Trong đó robot tự hành đã trở thành một lĩnh vực nghiên cứu và phát triển đầy hứa hẹn Robot tự hành là những thiết bị thông minh có khả năng di chuyển và hoạt động độc lập mà không cần sự can thiệp của con người Chúng được trang bị các cảm biến và
hệ thống điều khiển thông minh, cho phép chúng nhận biết môi trường xung quanh, xây dựng bản đồ và định vị vị trí của mình, và tự động thực hiện các nhiệm vụ cụ thể
Robot tự hành có ứng dụng rộng rãi trong nhiều lĩnh vực Trong công nghiệp, chúng có thể tự động hoá quy trình sản xuất và vận chuyển, nâng cao hiệu suất và chất lượng Trong lĩnh vực dịch vụ, robot tự hành có thể thực hiện các nhiệm vụ như giao hàng, dọn dẹp và hỗ trợ khách hàng Trong y tế, chúng có thể hỗ trợ trong việc chăm sóc bệnh nhân và thực hiện các quy trình phẫu thuật phức tạp Bên cạnh đó, robot tự hành còn có thể được ứng dụng trong nhiều lĩnh vực khác như nghiên cứu khoa học, khám phá không gian và nông nghiệp thông minh
Chính vì những ứng dụng rộng rãi của robot tự hành, nhóm sinh viên đã cùng nhau thực hiện đề tài “Thiết kế và điều khiển mô hình robot phục vụ thư viện” cho đồ án tốt nghiệp
1.1.1 Tình hình nghiên cứu ngoài nước
Trên toàn cầu, nghiên cứu về robot tự hành đang thu hút sự quan tâm và đầu tư đáng kể từ cả học thuật và công nghiệp Các nước tiên phong như Mỹ, Nhật Bản, Trung Quốc và châu Âu đang dẫn đầu trong lĩnh vực này
Ở Mỹ, các trường đại học và viện nghiên cứu hàng đầu như Stanford, MIT và Carnegie Mellon đã tạo ra những tiến bộ đáng kể trong robot tự hành Các dự án nổi bật
Trang 28như DARPA Robotics Challenge và NASA's Robonaut đã đẩy mạnh sự phát triển của robot tự hành trong ngành công nghiệp và nghiên cứu không gian
Nhật Bản là một trong những quốc gia tiên phong trong việc phát triển robot tự hành Các công ty như Toyota và Honda đã đầu tư mạnh vào nghiên cứu và phát triển robot tự hành để áp dụng trong sản xuất ô tô và các lĩnh vực khác Ngoài ra, Nhật Bản cũng là quốc gia nổi tiếng với việc phát triển robot dịch vụ và chăm sóc người già
Ở châu Âu, có nhiều dự án nghiên cứu và cộng đồng học thuật đáng chú ý trong lĩnh vực robot tự hành Các tổ chức như European Robotics Research Network (EURON)
và European Robotics Association (euRobotics) đã đóng vai trò quan trọng trong việc thúc đẩy sự phát triển và hợp tác nghiên cứu trong lĩnh vực này
Hình 1 1 Robot Perseverance hoạt động tại miệng hố Jezero trên hành tinh đỏ NASA
Hình 1 2 Robot Pangolin của hãng Pangolin Robot Japan Co.
Trang 29Tổng quan, tình hình nghiên cứu robot tự hành ngoài nước đang phát triển mạnh
mẽ và tạo ra nhiều tiến bộ đáng chú ý Các nước tiên phong đang đầu tư về cả khả năng
kỹ thuật và ứng dụng thực tế của robot tự hành, đẩy mạnh sự phát triển và mang lại những tiềm năng lớn cho lĩnh vực này trong tương lai
1.1.2 Tình hình nghiên cứu trong nước
Tình hình nghiên cứu robot tự hành trong nước đang nhận được sự quan tâm ngày càng tăng từ cả các nhà nghiên cứu, trường đại học và doanh nghiệp ở nhiều quốc gia trên thế giới, bao gồm cả Việt Nam
Ở Việt Nam, lĩnh vực nghiên cứu và phát triển robot tự hành đang phát triển nhanh chóng Các trường đại học và viện nghiên cứu hàng đầu như Đại học Bách Khoa TP.HCM, Đại học Công nghệ TP.HCM và Viện Công nghệ Thông tin thuộc Viện Hàn lâm Khoa học và Công nghệ Việt Nam đang tiên phong trong việc nghiên cứu và ứng dụng robot tự hành
Các nhóm nghiên cứu và dự án đang tập trung vào các lĩnh vực như tự động hóa công nghiệp, dịch vụ công cộng, y tế và nông nghiệp thông minh Các nghiên cứu liên quan đến cảm biến, hệ thống điều khiển, trí tuệ nhân tạo và học máy đang được thực hiện để cải thiện khả năng nhận diện môi trường, định vị và điều hướng của robot tự hành
Ngoài ra, các doanh nghiệp công nghệ và startup cũng đang đẩy mạnh nghiên cứu
và phát triển robot tự hành Chúng tập trung vào việc phát triển các ứng dụng thực tế như giao hàng tự động, dịch vụ khách hàng và giải quyết các vấn đề xã hội
Hình 1 3 Tiến sĩ Opfermann, người chủ trì công trình nghiên cứu robot phẫu thuật tự hành tại Đại học Johns Hopkins (Mỹ).s
Trang 30Hình 1 4 Robot tự hành thông minh (NextAMR)
Hình 1 5 Công ty intelligent robot
Hình 1 6 Robot VIBOT do Việt Nam phát triển
Trang 31Tổng quan, tình hình nghiên cứu robot tự hành trong nước đang trong giai đoạn phát triển, với sự quan tâm và đầu tư từ nhiều phía Việc phát triển robot tự hành trong nước không chỉ đóng góp vào sự phát triển công nghiệp và kỹ thuật, mà còn mở ra tiềm năng ứng dụng rộng lớn trong nhiều lĩnh vực khác nhau, đóng vai trò quan trọng trong
sự phát triển toàn diện của quốc gia
1.2 Mục tiêu đề tài
1.2.1 Mục đích đề tài
Mục đích của đề tài là áp dụng những kiến thức đã học để thiết kế và điều khiển
mô hình robot phục vụ thư viện
1.2.2 Mục tiêu đề tài
Đề tài cơ bản sẽ nghiên cứu giải quyết các vấn đề cụ thể như sau:
- Người sử dụng có thể dễ dàng mượn-trả sách, tra cứu và điểm danh thông qua giao diện người dùng
- Có thể thay thế quét thẻ thông thường bằng chức năng nhận diện khuôn mặt
- Robot có thể di chuyển tự động và tránh vật cản trên đường đi
- Có thể điều khiển robot và giám sát từ xa qua internet
- Thiết kế mô hình robot hoạt động ổn định
1.3 Phương pháp nghiên cứu
- Phân tích dữ liệu: Sử dụng các công cụ tìm kiếm như Google, Google Scholar, ResearchGate, IEEE Xplore,…
- Phân tích toán học: Sử dụng Matlab-Simulink để kiểm tra động học thuận, động học nghịch và phương trình động lực học dựa vào phương pháp Lagrange-Euler
- Sử dụng SolidWorks 2019 để thiết kế mô hình robot thư viện, dựa vào mô hình
đã tính toán và tối ưu trên phần mềm để thiết kế mô hình thực
- Sử dụng ngôn ngữ Python để lập trình các tính năng cho robot, dùng phần mềm
QT design để thiết kế giao diện tương tác robot với người sử dụng
- Sử dụng phần mềm Mysql Workbench và phpMyAdmin để lưu trữ dữ liệu về thông tin sinh viên, thông tin sách,…
1.4 Giới hạn đề tài
- Mô hình robot thư viện thực tế do nhóm sinh viên tự thiết kế và thi công nên chưa có cơ sở khách quan nào để đánh giá mức độ bền vững và ổn định trong quá trình hoạt động của mô hình
- Chỉ tìm hiểu và ứng dụng các thuật toán có sẵn trên ROS để có thể xây dựng được mô hình robot hoạt động hoàn thiện
Trang 32- Không phân tích sâu về động lực học robot mà chỉ nghiên cứu và ứng dụng để điều khiển robot di chuyển đa hướng
- Sử dụng Cloud MQTT trung gian để điều khiển robot từ xa qua internet nên sẽ
có giới hạn về API Calls
- Sử dụng phần mềm MySQL để quản lý và theo dõi cơ sở dữ liệu nên chỉ giới hạn trong các chức năng mà phần mềm cho phép
- Sử dụng các thư viện như mtcnn, facenet-pytorch, keras-facenet nên không đào sâu vào các thuật toán mà chỉ nghiên cứu và ứng dụng để làm chức năng nhận diện khuôn mặt người dùng cho robot
1.5 Nội dung nghiên cứu
Trong quyển luận văn này sẽ chia ra làm 6 chương chính
- Chương 1: Tổng quan
Chương 1 sẽ trình bày về đặt vấn đề, mục tiêu đề tài, phương pháp nghiên cứu, giới hạn đề tài, nội dung nghiên cứu
- Chương 2: Cơ sở lý thuyết
Chương 2 sẽ giới thiệu về bánh xe Mecanum, lý thuyết động học thuận và động học nghịch, động lực học cho robot Giới thiệu về hệ điều hành, ngôn ngữ lập trình, nền tảng hỗ trợ Giới thiệu về ROS, thuật toán điều hướng robot Lý thuyết xử lí ảnh, truyền tải dữ liệu qua mạng
- Chương 3: Thiết kế hệ thống và lựa chọn thiết bị
Chương 3 sẽ trình bày về thiết kế mô hình trên phần mềm SolidWorks, bao gồm thiết kế đế, thân và đầu của robot Trình bày về phần cứng của mô hình, lựa chọn các vật liệu và thiết bị điện cho robot thư viện
- Chương 4: Xây dựng chương trình điều khiển
Chương 4 trình bày về cách xây dựng chương trình mô phỏng bánh xe di chuyển
đa hướng cho robot, chương trình ROS ứng dụng cho xe tự hành, ứng dụng xử lý ảnh để nhận diện barcode và khuôn mặt, xây dựng tính năng giao tiếp giữa người và robot bằng giọng nói, xây dựng tính năng điều khiển robot qua internet Thiết kế giao diện tương tác với người sử dụng, thiết kế giao diện điều khiển cho người điều khiển
- Chương 5: Kết quả và đánh giá
Chương 5 trình bày về kết quả mô phỏng trên Matlab/Simulink, kết quả mô phỏng trên ROS và kết quả thực nghiệm của toàn bộ hệ thống
- Chương 6: Kết luận và hướng phát triển của đề tài
Trang 33CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Xây dựng mô hình động học, động lực học cho bốn bánh đa hướng của robot thư viện
2.1.1 Giới thiệu bánh xe Mecanum
Bánh xe đa hướng Mecanum (Mecanum Omniwheel) là một loại bánh xe được thiết kế đặc biệt để cung cấp khả năng di chuyển linh hoạt trong nhiều hướng và xoay quanh trục chính của nó Bánh xe Mecanum được phát minh bởi nhà kỹ sư người Đức kiểu cách Bengt Erland Ilon vào những năm 1970
Hình 2.2 Bánh xe Mecanum kim loại Hình 2.1 Bánh xe Mecanum được phát minh bởi nhà kỹ sư người Đức
Trang 34Hình 2.3 Bánh xe Mecanum nhựa
Cấu trúc của bánh xe Mecanum bao gồm một bánh xe trung tâm lớn và một số bánh xe nhỏ được gắn quanh nó Một ưu điểm lớn của bánh xe Mecanum là khả năng di chuyển ngang, chéo và xoay một cách mượt mà và linh hoạt Robot sử dụng bánh xe Mecanum có thể di chuyển thẳng, di chuyển đường chéo hoặc điều chỉnh hướng mà không cần thay đổi vị trí
Để điều khiển bánh xe Mecanum, có thể sử dụng các phương pháp phức tạp như các hệ thống điều khiển đa trục hoặc các giải thuật điều khiển phức tạp Tuy nhiên, nó cũng có thể được điều khiển bằng các phương pháp đơn giản hơn như sử dụng joystick hoặc điều khiển từ xa
2.1.2 Mô hình động học của bốn bánh đa hướng của robot thư viện
Mô hình động học và động lực học cho robot được xây dựng dựa trên mô hình với bánh xe Mecanum được bố trí lệch so với tọa độ động một góc 45
Hình 2.4 Các hướng xe mecanum di chuyển
Trang 35𝐯𝐧 = [v v v ] là véc tơ vận tốc của robot trong hệ trục tọa độ động gắn vào tâm robot
Xét mối quan hệ hình học trong hình ta xác định được biểu thức mối quan hệ giữa vận tốc của robot trong hệ tọa độ toàn cục và hệ tọa độ động
Trong đó :
- {I}: Hệ trục tọa độ gốc
- {B}: Hệ trục tọa độ của xe
- x , 𝑦i: tọa độ của robot so với hệ trục tọa độ {A}
- 𝑥b, 𝑦b: Phương x và y của hệ trục tọa độ {B}
- v : Vận tốc của xe theo phương x
- v : vận tốc của xe theo phương y
- v : vận tốc góc của xe
- θ: góc lệch của xe theo phương ngang của hệ trục tọa độ {A}
q̇ = Hv = cosθ −sinθ 0sinθ cosθ 0
0 0 1 v (2.1) Trong đó: H = cosθ −sinθ 0sinθ cosθ 0
0 0 1 là ma trận chuyển hệ trục tọa độ {B} so với {A}
Hình 2.5 Mô hình xe đa hướng mecanum trong hệ trục
tọa độ
Trang 36- 𝜙𝑖: góc tọa bởi 𝑣𝑠𝑙𝑖𝑑𝑒 và phương y
Ta có vận tốc theo phương x so với hệ trục {𝐶𝑖} là :
ẋ = w a + ẏ tan∅ (2.2)
w = (ẋ − ẏ tan∅ ) (2.3)
w = − ∅ ẋẏ (2.4)
Trong đó :
- ẋ , ẏ : vận tốc theo phương x và y của hệ trục tọa độ {𝐶𝑖}
- θ : góc tạo bởi hệ trục tọa độ {𝐶𝑖} so với phương ngang của hệ trục tọa
độ {B}
Hình 2.6 Tọa độ tâm bánh xe
Hình 2.7 Tâm bánh xe trong hệ trục tọa độ B
Trang 37Chuyển độ hệ trục tọa độ để thể hiện vận tốc của tọa độ {𝐶𝑖}so với {B} Ta có
biểu thức như sau :
v = R(θ ) ẋẏ = cos (θ ) −sin (θ )sin (θ ) cos (θ ) ẋẏ (2.5)
Tương tự như ở trên ta có biểu thức thể hiện mối quay hệ của vận tốc của tọa độ
{𝐶𝑖} so với {B} khi có vận tốc theo phương x, y ,vận tốc góc của {B} như sau :
Từ công thức số (2.4) ta nhân nghịch đảo ta có :
ẋ
ẏ = cos (θ ) −sin (θ )sin (θ ) cos (θ ) 1 0 −d0 1 d vn (2.8)
Thay (2.8) vào (2.4) ta có :
w = − ∅ cos(θ ) − sin(θ )sin(θ ) cos(θ ) 1 0 −d0 1 d vn (2.9)
Dựa vào công thức (2.9) và (2.1) ta có :
w = _ ∅ cos(θ ) − sin(θ )sin(θ ) cos(θ ) 1 0 −d0 1 d cosθ −sinθ 0sinθ cosθ 0
(2.10)
Hình 2.8 Tâm bánh xe trong hệ trục tọa độ B khi có vận tốc
Trang 382.1.4 Mô hình động học thuận của bốn bánh đa hướng của robot thư viện Tiến hành tính động học thuận cho xe đa hướng Mecanum sử dụng 4 bánh mecanum dựa vào các công thức ở trên
Đặt: L = 2L, L = 2D
Trong đó :
- L: khoảng cách từ tâm bánh theo phương x của hệ tọa độ {B}
- D: khoảng cách từ tâm bánh theo phương y của hệ tọa độ {B}
- R: bán kính của bánh xe
Dựa vào cấu hình của bánh xe đặt trong hệ trục tọa độ ta có những thông số sau:
𝑑𝑥1 = 𝐿, 𝑑𝑥2 = −𝐿, 𝑑𝑥3 = −𝐿, 𝑑𝑥4 = 𝐿 𝑑𝑦1 = 𝑑, 𝑑𝑦2 = 𝑑, 𝑑𝑦3 = −𝑑, 𝑑𝑦4 = −𝑑 𝑎1 = 𝑎2 = 𝑎3 = 𝑎4 = 𝑎, θ = θ = θ = θ = 0
Từ các thông số ở trên thay vào (2.9) đặt 𝜔 = [𝜔1 𝜔2 𝜔3 𝜔4] 𝑇
Trang 392.1.5 Mô hình động học nghịch của bốn bánh đa hướng của robot thư viện
Trong đó:
- v : Vận tốc của xe theo phương x
- v : vận tốc của xe theo phương y
- v : vận tốc góc của xe
- 𝛼: là hướng đi của robot
Dựa vào hệ trục tọa độ trên ta có :
2.2 Giới thiệu về Robot Operating System
2.2.1 Tổng quan về hệ điều hành dành cho robot – ROS
Robot Operating System – ROS là hệ điều hành mã nguồn mở dành cho robot, là một framework được dùng rất rộng rãi trong lĩnh vực robotic với nhiều ưu điểm Nó tạo
ra một nền tảng phần mềm có thể hoạt động trên rất nhiều robot khác nhau mà không cần sự thay đổi quá nhiều trong chương trình phần mềm
ROS cung cấp, hỗ trợ các dịch vụ (services) như một hệ điều hành như phần cứng trừu tượng (hardware abtraction), kiểm soát các thiết bị cấp thấp (low-level 6 device control), thực thi (implementation) các chức năng phổ biến, tin nhắn (message) qua lại
Hình 2.10 Xe đa hướng Mecanum trong hệ trục tọa
độ O
Trang 40giữa các quá trình, và quản lý gói Ngoài ra, nó cũng cung cấp nhiều công cụ và thư viện cho việc tham khảo, biên dịch, viết và chạy chương trình trên nhiều máy khác nhau.[14]
Hiện nay, ROS chỉ chạy trên nền tảng Unix Các phần mềm được chạy trên ROS chủ yếu được thử nghiệm trên hệ điều hành Ubuntu và Mac OS X Bên cạnh đó, 7 thông qua cộng đồng này, nó còn đang được xây dựng để hỗ trợ cho các nền tảng khác như Fedora, Gentoo, Arch Linux và các nền tảng Linux khác.[14]
2.2.2 Cấu trúc ROS
Kiến trúc ROS có ba cấp khái niệm: Filesystem, Computation Graph và Community
ROS Filesystem Level
Filesystem chủ yếu là các nguồn tài nguyên ROS được thực thi trên bộ nhớ lưu trữ
hệ thống, bao gồm:
Packages: là đơn vị chính để tổ chức phần mềm trên ROS Một package có thể chứa các nodes (ROS runtime processes), các thư viện đặc thù của ROS, các file cài đặt hoặc bất cứ file nào cho việc tổ chức
Mục đích của package là để tạo ra tập hợp chương trình có kích thước nhỏ nhất để
có thể dễ dàng sử dụng lại
Metapackages: là một package chuyên biệt, dùng để phục vụ cho việc thể hiện mối quan hệ một nhóm các package khác với nhau Metapackage thường được dùng như nơi
để giữ các tương thích ngược cho việc chuyển đổi sang rosbuild Stacks
Package Manifests: là một bảng mô tả về một package như tên, version, mô tả, thông tin license,… Manifests được quản lý bởi một file tên là manifests.xml
Stacks: khi chúng ta kết hợp các package với nhau với một vài chức năng thì được gọi là Stack Trong ROS, có rất nhiều stack với công dụng khác nhau Tương tự Package,
Hình 2.11 Các phiên bản của Ubuntu