BỘ GIÁO DỤC VÀ ĐÀO TẠO
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: Nghiên cứu, thiết kế và chế tạo xe agv
ứng dụng xử lí ảnh
Giảng viên hướng dẫn ThS. LÊ THANH TÙNG :
Sinh viên thực hiện BÙI CHÍ KIÊN :
: 19146202 MSSV
Sinh viên thực hiện BÙI GIA BẢO :
: 19146154 MSSV
Sinh viên thực hiện TRỊNH TUẤN VŨ :
: 19146014 MSSV
: 19146CL5B Lớp
: 2019-2023 Khóa
TP. Hồ Chí Minh, tháng 07 năm 2023
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT THÀNH PHỐ HỒ CHÍ MINH
BỘ MÔN CƠ ĐIỆN TỬ
ĐỒ ÁN TỐT NGHIỆP Đề tài: Nghiên cứu, thiết kế và chế tạo xe agv
ứng dụng xử lí ảnh
Giảng viên hướng dẫn ThS. LÊ THANH TÙNG :
Sinh viên thực hiện BÙI CHÍ KIÊN :
: 19146202 MSSV
Sinh viên thực hiện BÙI GIA BẢO :
: 19146154 MSSV
Sinh viên thực hiện TRỊNH TUẤN VŨ :
: 19146014 MSSV
: 19146CL5B Lớp
: 2019-2023 Khóa
TP. Hồ Chí Minh, tháng 07 năm 2023
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CƠ KHÍ CHẾ TẠO MÁY
Độc lập - Tự do - Hạnh phúc
Bộ môn Cơ điện tử
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Học kỳ II / năm học 2023
Giảng viên hướng dẫn: Ths.Lê Thanh Tùng
Sinh viên thực hiện:
2. Bùi Gia Bảo MSSV: 19146154 Hệ đào tạo CLV.
3. Trịnh Tuấn Vũ MSSV: 19146014 Hệ đào tạo CLV.
1. Bùi Chí Kiên MSSV: 19146202 Hệ đào tạo CLV.
1. Mã số đề tài: 22223DT131
Tên đề tài: Nghiên cứu, thiết kế và chế tạo xe agv ứng dụng xử lí ảnh
2. Các số liệu, tài liệu ban đầu:
- Giáo trình xử lí ảnh - NXB Đại học quốc gia 2016 - Lê Thanh Hà.
- Automated guide vehicle system - Günter Ullrich Thomas Albrecht.
3. Nội dung chính của đồ án:
- Lên ý tưởng, thiết kế mô hình 3D
- Gia công và lắp ráp mô hình.
- Ứng dụng các thuật toán xử lí ảnh.
- Tính toán thiết kế bộ truyền động và hệ thống điện.
- Hoàn thành mô hình và thực nghiệm.
4. Các sản phẩm dự kiến
- Quyển báo cáo
- Bản vẽ
- Mô hình
5. Ngày giao đồ án:
6. Ngày nộp đồ án:
3
(cid:0) (cid:0) (cid:0) 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 (cid:0) Tiếng Việt (cid:0)
TRƯỞNG KHOA TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)
(GVHD kí, ghi rõ họ tên)
(cid:0) Được phép bảo vệ.........................................................................
4
LỜI CAM KẾT
- Tên đề tài: Nghiên cứu, thiết kế và chế tạo xe agv ứng dụng xử lí ảnh.
- GVHD: ThS. Lê Thanh Tùng
- Họ tên sinh viên: Bùi Chí Kiên
- MSSV: 19146202
- Địa chỉ sinh viên: 834M, khu phố 8B Tân Biên, TP.Biên Hoà – Đồng Nai
- Số điện thoại liên lạc: 0937426641
- Email: 19146202@student.hcmute.edu.vn
- Họ tên sinh viên: Bùi Gia Bảo
- MSSV: 19146154
- Địa chỉ sinh viên: 19/1 Đường số 8, Linh Trung, Thủ Đức
- Số điện thoại liên lạc: 0909448044
- Email: 19146154@student.hcmute.edu.vn
- Họ tên sinh viên: Trịnh Tuấn Vũ
- MSSV: 19146014
- Địa chỉ sinh viên: 33/30 Đặng Văn Bi, Bình Thọ, Thủ Đức, Thành phố Hồ Chí Minh
- Số điện thoại liên lạc: 0989706991
- Email: 19146014@student.hcmute.edu.vn
- Ngày nộp khóa luận tốt nghiệp (ĐATN):
- Lời cam kết: “Tôi xin cam đoan khóa luận tốt nghiệp (ĐATN) này là công trình do chính tôi nghiên cứu và thực hiện. Tôi không sao chép từ bất kỳ một bài viết nào đã được công bố mà không trích dẫn nguồn gốc. Nếu có bất kỳ một sự vi phạm nào, tôi xin chịu hoàn toàn trách nhiệm”.
TP. Hồ Chí Minh, ngày 18 tháng 7 năm 2023
Ký tên
5
LỜI CẢM ƠN
Trước hết, chúng tôi xin gửi lời cảm ơn chân thành nhất tới ThS. Lê Thanh Tùng, người đã hướng dẫn chúng tôi trong quá trình thực hiện đồ án tốt nghiệp và đồ án cơ điện tử. Qua thời gian làm việc và tiếp xúc với thầy, chúng tôi nhận thấy thầy là một giảng viên tận tâm, luôn mong muốn điều tốt đẹp nhất cho sinh viên. Chúng tôi xin chúc thầy luôn thành công trong công việc, và có đủ sức khoẻ, niềm vui và hạnh phúc trong cuộc sống.
Chúng tôi cũng xin gửi lời cảm ơn đặc biệt đến thầy Vũ Quang Huy, người đã hướng dẫn chúng tôi trong đồ án truyền động cơ khí. Đồng thời chúng tôi cũng xin cảm ơn Trường Đại học Sư phạm Kỹ thuật TP.HCM và tất cả các thầy cô đã dạy bảo và giúp đỡ chúng tôi trong suốt bốn năm học đại học, với những khó khăn và trở ngại. Đã cung cấp cho chúng tôi những kiến thức vô cùng quý báu trong suốt 4 năm học đại học, làm cơ sở cho chúng tôi hoàn thành đồ án tốt nghiệp.
Cuối cùng, chúng tôi xin gửi lời tri ân sâu sắc đến gia đình, đặc biệt là cha mẹ. Gia đình là nguồn động lực lớn nhất để chúng tôi vượt qua khó khăn và hoàn thành đồ án này. Sự tin tưởng, nuôi dưỡng và hỗ trợ của cha mẹ đã giúp chúng tôi đến được ngày hôm nay. Một lần nữa, chúng tôi xin bày tỏ lòng biết ơn sâu sắc và chúc mừng tất cả mọi người có sức khoẻ và hạnh phúc.
Đại diện nhóm
Bùi Chí Kiên
6
TÓM TẮT ĐỒ ÁN
NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO XE AGV ỨNG DỤNG XỬ LÍ ẢNH
Trên thị trường hiện nay, việc phát triển xe tự hành AGV (Automated Guided Vehicle) đã mở ra một loạt các ứng dụng tiềm năng trong nhiều lĩnh vực khác nhau. Một trong những ứng dụng đáng chú ý là sử dụng AGV để hỗ trợ mua sắm trong siêu thị thông qua việc thiết kế robot chở hàng đi theo người. Robot chở hàng đi theo người trong siêu thị là một giải pháp tiên tiến trong lĩnh vực dịch vụ và tự động hóa. Robot được thiết kế với cơ cấu di động trên hai bánh vi sai, cho phép di chuyển linh hoạt và nhanh chóng trong không gian siêu thị. Chức năng chính của robot là theo dõi và chở hàng hoá được mua trong siêu thị. Điều này đặc biệt hữu ích đối với những người có khả năng vận động giới hạn như người lớn tuổi, người khuyết tật hoặc những người không muốn vất vả mang giỏ hoặc đẩy xe siêu thị truyền thống.
Để đạt được mục tiêu này, nhóm nghiên cứu đã tiến hành một loạt các công việc. Đầu tiên, họ đã tiến hành khảo sát không gian trong siêu thị để hiểu rõ yêu cầu kỹ thuật và môi trường hoạt động. Sau đó, họ đã thiết kế và xây dựng hệ thống cơ khí cho robot, bao gồm đế và khung xe vững chắc, sử dụng vật liệu chất lượng cao như thép ss400 và thanh nhôm định hình. Động cơ hành tinh planet có công suất tối đa 30W được sử dụng để đảm bảo sự mạnh mẽ và ổn định trong quá trình di chuyển.
Robot cũng được trang bị camera kinect v2 để nhận dạng và đo khoảng cách giữa người và robot. Sử dụng công nghệ trí tuệ nhân tạo (AI) và xử lý ảnh, robot có khả năng nhận diện và theo dõi người một cách chính xác và liên tục. Hệ thống điều khiển của robot được xây dựng trên vi xử lý STM32 và Jetson Nano, cho phép xử lý dữ liệu hình ảnh và cảm biến một cách hiệu quả. ROS (Robot Operation System) cũng được áp dụng để quản lý và điều phối các luồng dữ liệu phức tạp, cũng như lập trình trên nhiều ngôn ngữ.
Kết quả của dự án là nhóm đã chế tạo thành công một robot dịch vụ siêu thị có khả năng bám theo người mua hàng. Robot có thể nhận diện và theo dõi người một cách chính xác và ổn định. Tuy nhiên, để phát triển tiếp, nhóm đề xuất nâng cấp phần cứng để tích hợp thuật toán theo dõi người, đồng thời xử lý những tình huống đặc biệt khi mất dấu người, phát hiện và tự động tránh vật cản. Nâng cấp tích hợp cảm biến lidar vào robot, giúp nó có khả năng tự động tìm đường về vị trí ban đầu để sạc pin sau khi người dùng sử dụng xong. Để tăng tính thẩm mỹ, linh hoạt và thân thiện với người dùng, phần cơ khí cũng cần được cải thiện.
Sinh viên thực hiện
Trịnh Tuấn Vũ
7
ABSTRACT
RESEARCH, DESIGN AND FABRICATION OF AGV WITH IMAGE PROCESSING APPLICATION
The smart shopping cart robot is an advanced solution in the field of service and automation within supermarkets. It is designed with a differential drive mechanism on two wheels, allowing for flexible and fast movement within the supermarket space. The main function of the robot is to track and carry purchased items within the supermarket. This is particularly useful for individuals with limited mobility such as the elderly, disabled individuals, or those who prefer not to carry or push traditional shopping carts.
To achieve this goal, the research team has undertaken a series of tasks. Firstly, they conducted a survey of the supermarket space to understand the technical requirements and operating environment. Subsequently, they designed and built a robust mechanical system for the robot, including a sturdy base and frame made of high-quality materials such as SS400 steel and extruded aluminum. A 30W maximum power planetary gear motor is used to ensure strength and stability during the movement process.
The robot is equipped with a Kinect v2 camera for person recognition and distance measurement between the person and the robot. Utilizing artificial intelligence (AI) and image processing technology, the robot has the capability to accurately and continuously identify and track individuals. The control system of the robot is built on STM32 and Jetson Nano processors, enabling efficient processing of image and sensor data. The Robot Operating System (ROS) is also employed to manage and coordinate complex data streams and facilitate programming in multiple languages.
The outcome of the project is the successful development of a supermarket service robot that can effectively track and follow shoppers. The robot demonstrates accurate and stable person recognition and tracking capabilities. However, for further development, the team proposes hardware upgrades to integrate person tracking algorithms and handle special situations such as lost persons. Additionally, the robot can be enhanced by integrating lidar sensors to autonomously navigate back to its initial position for recharging after user interactions. Improvements in mechanical design are also suggested to enhance aesthetics, flexibility, and user-friendliness.
8
MỤC LỤC
9
DANH MỤC SƠ ĐỒ, HÌNH ẢNH
10
DANH MỤC TỪ VIẾT TẮT
2D 2 Dimensions
3D 3 Dimensions
AGV Automated Guided Vehicle
AI Artificial Intelligence
CPU Central Processing Unit
ĐATN Đồ Án Tốt Nghiệp
GPU Graphic Processing Unit
RGB Red Green Blue
ROS Revolution Per Minute
SSD Single Shot Detector
11
CHƯƠNG 1
CHƯƠNG 1: GIỚI THIỆU
1.1. Tính cấp thiết của đề tài
Xe AGV (Automated Guided Vehicle) ngày càng phát triển và đa dạng ứng dụng trong nhiều lĩnh vực khác nhau. Trong số đó, một trong những lĩnh vực nhóm đáng chú ý đã lựa chọn xe AGV là lĩnh vực siêu thị, đặc biệt là xe AGV bám theo người trong siêu thị. Số người lớn tuổi đang gia tăng trên toàn cầu, đặc biệt là trong các nền kinh tế phát triển. Với sự gia tăng này, nhu cầu hỗ trợ và giúp đỡ người lớn tuổi trong các hoạt động hàng ngày, bao gồm việc mua sắm, trở nên càng quan trọng hơn. Xe chở hàng đi theo người trong siêu thị là một giải pháp hữu ích để đáp ứng nhu cầu di chuyển hàng hóa của của mọi người đặc biệt là người lớn tuổi, người gặp khó khăn trong việc vận chuyển hàng hoá trong siêu thị.
Khả năng về đáp ứng nhu cầu mua sắm của người lớn tuổi: Người lớn tuổi thường gặp khó khăn trong việc di chuyển và mang hàng hóa trong quá trình mua sắm. Xe chở hàng đi theo người giúp giảm bớt gánh nặng vật lý và mệt mỏi cho người lớn tuổi, tạo điều kiện thuận lợi hơn để họ tiến hành mua sắm.
Tiềm năng thị trường và lợi ích kinh tế: Với số lượng người lớn tuổi ngày càng tăng, việc nghiên cứu và phát triển xe chở hàng đi theo người đáp ứng nhu cầu của nhóm khách hàng này sẽ mở ra tiềm năng thị trường lớn. Siêu thị và các doanh nghiệp bán lẻ có thể tận dụng cơ hội này để thu hút và duy trì khách hàng người lớn tuổi.
Với những lợi ích trên, đề tài có tính cấp thiết và đáng được quan tâm. Nó không chỉ giúp giải quyết vấn đề vận chuyển hàng hóa cho người lớn tuổi nói riêng và khách hàng nói chung một cách hiệu quả, mà còn đem lại trải nghiệm mới lạ, thú vị cái mà rất quan trọng trong xã hội hiện đại.
1.2. Ý nghĩa khoa học và thực tiễn của đề tài
(cid:0) Ý nghĩa khoa học:
Nghiên cứu này đòi hỏi việc tiếp cận đa ngành, bao gồm cơ khí, điện tử, lập trình, xử lí ảnh. Sự kết hợp của các lĩnh vực này giúp đẩy mạnh sự đổi mới và phát triển công nghệ trong việc thiết kế và chế tạo xe chở hàng đi theo người, đáp ứng nhu cầu đặc biệt của người lớn tuổi cũng như nhu cầu trải nghiệm của mọi người. Hiểu rõ yêu cầu, thực tế và hạn chế của người lớn tuổi trong việc mua sắm, nhằm đưa ra các giải pháp tối ưu cho việc vận chuyển hàng hóa. Điều này đòi hỏi phân tích sâu về tư duy thiết kế, tính toán trọng lượng, cân bằng và an toàn để đảm bảo sự thuận tiện và an toàn cho người sử dụng.
12
CHƯƠNG 1
(cid:0) Ý nghĩa thực tiễn:
Đề tài mang lại giá trị thực tế bằng cách đáp ứng nhu cầu của người lớn tuổi và trải nghiệm mới lạ cho khách hàng trong việc mua sắm. Xe chở hàng đi theo người giúp giảm bớt khó khăn và trở ngại cho người lớn tuổi khi đi mua sắm, tăng cường sự độc lập và tự chủ cho họ cũng như đem lại nhiều trải nghiệm mới lạ cho mọi người.
Sự tiện lợi và linh hoạt của xe chở hàng đi theo người cũng có thể tăng doanh số bán
hàng và đóng góp vào lợi ích kinh tế của các doanh nghiệp.
Sản phẩm và công nghệ được phát triển từ đề tài có thể áp dụng rộng rãi trong các siêu thị và các khu mua sắm với điều kiện ánh sáng đủ tốt, tạo ra môi trường thuận lợi cho việc mua sắm và tăng cường trải nghiệm của khách hàng, đặc biệt là người lớn tuổi.
1.3. Mục tiêu nghiên cứu của đề tài
Nghiên cứu và hiểu rõ hơn về nhu cầu, yêu cầu đặc biệt của người gặp khó khăn trong việc di chuyển hàng hoá trong siêu thị và nhu cầu về sự tiện lợi cho người mua khi mua sắm.
Xây dụng hệ thống cơ khí của robot, hệ thống điện điều khiển, xử lí dữ liệu từ camera, giúp robot nhận biết người. Tạo ra một giải pháp thông minh, an toàn và tiện lợi cho việc vận chuyển hàng hóa trong siêu thị.
Thực nghiệm và đưa ra kết quả, định hướng phát triển cho đề tài.
1.4. Đối tượng và phạm vi nghiên cứu
1.4.1. Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là nhóm người có nhu cầu mua sắm, đặc biệt là những người lớn tuổi và hạn chế trong khả năng vận chuyển khi mua sắm trong siêu thị. Nhóm tập trung vào việc hiểu và đáp ứng tốt nhất các nhu cầu của đối tượng này để phát triển robot tự động di chuyển trong siêu thị, giúp họ trải nghiệm mua sắm một cách thuận tiện và dễ dàng hơn.
1.4.2. Phạm vi nghiên cứu
Nhóm sẽ nghiên cứu tạo ra một hệ thống xe chở hàng linh hoạt hoạt động chủ yếu trên nền gạch phẳng, môi trường có ánh sáng tốt và dễ sử dụng. Robot được chế tạo để bám theo người mặc áo chuyên dụng của nhóm. Có thể chở được hàng hóa trong siêu thị lớn.
Nhóm tập trung vào việc phát hiện vật cản và tạo ra cảnh báo hoặc dừng để tránh va
chạm. Robot sẽ không thực hiện chức năng tự động né vật cản.
13
CHƯƠNG 1
Không tích hợp tính năng quay về vị trí cũ và sạc pin tự động. Nhóm tập trung vào các
tính năng cơ bản.
Nghiên cứu và thử nghiệm của đề tài sẽ tập trung vào môi trường giống một phần của
siêu thị, với các điều kiện và địa hình đơn giản để đảm bảo tính thực tế và khả thi.
1.5. Phương pháp nghiên cứu
1.5.1. Cơ sở phương pháp luận
- Nghiên cứu tài liệu.
- Khảo sát.
- Thiết kế và mô phỏng.
- Thử nghiệm và đánh giá.
1.5.2. Các phương pháp nghiên cứu cụ thể
Nghiên cứu và phân tích các tài liệu liên quan, bao gồm các nghiên cứu trước đây, sách, bài báo, báo cáo và thông tin trực tuyến để hiểu rõ hơn về lĩnh vực nghiên cứu, các vấn đề liên quan và các giải pháp đã được đề xuất.
Tiến hành các cuộc khảo sát hoặc điều tra để thu thập dữ liệu về thông số và tiêu chuẩn kỹ thuật, yêu cầu và mong muốn của người lớn tuổi trong việc mua sắm và vận chuyển hàng hóa.
Sử dụng các công cụ thiết kế và mô phỏng để tạo ra các mô hình ảo và thiết kế các giải pháp xe chở hàng đi theo người. Các phần mềm thiết kế 2D và 3D có thể được sử dụng để tính toán và mô phỏng.
Tiến hành thử nghiệm thực tế hoặc mô phỏng các giải pháp được thiết kế, và sau đó đánh giá hiệu quả, tính khả thi và sự thích hợp của chúng dựa trên tiêu chí đã được xác định trước đó.
1.6. Kết cấu của ĐATN
Nội dung nghiên cứu ĐATN của nhóm bao gồm 7 chương, trong đó:
- Chương 1: Giới thiệu
- Chương 2: Tổng quan nghiên cứu đề tài.
- Chương 3: Cơ sở lý thuyết
- Chương 4: Phương hướng các giải pháp thực hiện đề tài và tính toán thiết kế hệ
thống cơ khí.
14
CHƯƠNG 1
- Chương 5: Tính toán thiết kế hệ thống điện và bộ điều khiển PI cho động cơ
- Chương 6: Xây dựng thuật toán xử lí ảnh
Chương 7: Thực nghiệm và đánh giá
15
CHƯƠNG 2
CHƯƠNG 2: TỔNG QUAN NGHIÊN CỨU ĐỀ TÀI
1.1. Giới thiệu
1.1.1. Xu thế phát triển robot hiện nay.
2. Xu thế phát triển robot hiện nay đang đi theo hướng đa dạng hóa và tiến bộ. Các robot ngày càng trở nên thông minh hơn, có khả năng học hỏi và tương tác với con người một cách tự nhiên. Trí tuệ nhân tạo đang được tích hợp để tạo ra robot có khả năng nhận biết, phân tích thông tin và ra quyết định. Robot cũng đang phát triển để làm việc cùng con người, tạo ra sự hợp tác và tương tác an toàn.
3. Robot không chỉ xuất hiện trong các hoạt động sản xuất, nhà máy, dây chuyền lắp ráp mà ngày càng gần gũi với con người; đặc biệt là các dạng robot dịch vụ như robot hút bụi, robot phục vụ trong nhà hàng, khách sạn, robot tư vấn, chỉ dẫn ở bệnh viện,... Điều này tạo ra một môi trường sống và làm việc tiện nghi, hiệu quả và tạo ra những trải nghiệm mới cho con người. Từ việc di chuyển linh hoạt đến tương tác xã hội, robot ngày càng trở thành một phần không thể thiếu trong cuộc sống hiện đại và mở ra nhiều triển vọng trong tương lai.
4. Các loại robot đang là xu thế phát triển hiện nay:
Trí tuệ nhân tạo (Artificial Intelligence - AI).
Robot hợp tác với con người (Human-Robot Collaboration).
Robot dịch vụ (Service Robotics).
Robot di động và đa năng (Mobile and Versatile Robots).
Robot trong công nghiệp (Industrial Robotics).
4.1.1. Giới thiệu về robot dịch vụ
5. Robot dịch vụ (Service Robotics): Sự gia tăng của robot dịch vụ đang mở ra nhiều tiềm năng ứng dụng trong các lĩnh vực như y tế, giáo dục, du lịch, khách sạn, v.v. Robot dịch vụ có thể đáp ứng nhu cầu của con người trong các tác vụ như hỗ trợ và chăm sóc, giao tiếp và hướng dẫn, vận chuyển và phục vụ, mang lại sự tiện lợi và tăng cường trải nghiệm người dùng.
16
CHƯƠNG 2
6.
7. Hình 2. WiiGo Retail – Robot dịch vụ trong siêu thị của công ty Follow
Inspiration ở Bồ Đào Nha [12] 8. Được thiết kế bởi Follow Inspiration, một công ty khởi nghiệp của Bồ Đào Nha được thành lập vào năm 2012, wiiGo là một giỏ hàng tự điều khiển, giúp khách hàng bị suy giảm khả năng di chuyển mua sắm tại các siêu thị lớn. Vào cuối năm 2016, wiiGo đã có buổi giới thiệu đầu tiên tại Pháp với chuỗi siêu thị Les Mousquetaires, tại các cửa hàng Intermarket và Bricomarket ở Auxonnes, gần Dijon và tại các siêu thị lớn Auchan.
9.
10. Hình 2. Hình ảnh minh họa Robot phục vụ thức ăn mèo Bella [19]
11. Robot mèo BellaBot không phải là thiết bị PuduTech duy nhất như vậy. Năm ngoái, các kỹ sư Trung Quốc đã phá triển robot phục vụ PuduBot với ít biểu cảm hơn. Thiết bị
17
CHƯƠNG 2
nặng 30kg, tương tự thiết kế của BellaBot, chứa từ 3 – 5 khay với khả năng chuyên chở 10kg mỗi khay. Nó tích hợp pin kéo dài tới 24h khi hoạt động liên tục, và được sạc đầy trong 4h. Robot chỉ mất 120 phút để lập bản đồ căn phòng.
12.
13. Hình 2. Robot giao hàng starship [13]
14. Robot giao hàng Starship là một hệ thống giao hàng tự động của công ty Starship Technologies. Với hình dáng nhỏ gọn và khả năng tự điều hướng, nó có thể di chuyển an toàn trên đường phố và vỉa hè. Robot này được sử dụng để giao hàng trong các khu vực đô thị và trường đại học, mang lại sự tiện lợi và tốc độ cho quá trình giao hàng.
(cid:0) Lợi ích của robot dịch vụ:
15. Tăng hiệu suất và năng suất làm việc: Robot dịch vụ có thể làm việc liên tục mà không mệt mỏi hay giảm hiệu suất. Điều này giúp tăng năng suất công việc và giảm thời gian hoàn thành.
16. Giảm chi phí nhân công: Sử dụng robot dịch vụ giảm sự phụ thuộc vào lao động con
người, giúp tiết kiệm chi phí nhân công và tăng tính cạnh tranh.
17. Cải thiện chất lượng dịch vụ: Robot dịch vụ thực hiện các tác vụ một cách chính xác
và nhất quán, giúp cải thiện chất lượng dịch vụ và đáp ứng yêu cầu của khách hàng.
18. Tăng tính an toàn: Robot dịch vụ có thể thực hiện các tác vụ nguy hiểm hoặc căng thẳng mà không đặt con người vào nguy cơ. Điều này giúp tăng tính an toàn và giảm nguy cơ tai nạn lao động.
18
CHƯƠNG 2
19. Trải nghiệm khách hàng tốt hơn: Robot dịch vụ cung cấp trải nghiệm tiện lợi và tốt hơn cho khách hàng. Chúng có thể phục vụ 24/7, không gặp các ràng buộc thời gian và mang lại sự tiện lợi và linh hoạt cho khách hàng.
(cid:0) Một số hạn chế:
20. Hạn chế trong tương tác con người: Robot dịch vụ chưa thể tương tác và giao tiếp một cách tự nhiên và linh hoạt như con người, dẫn đến khó khăn trong việc hiểu và đáp ứng đúng yêu cầu của người dùng.
21. Hạn chế về đa nhiệm: Một số robot dịch vụ chỉ có thể thực hiện một nhiệm vụ cụ thể
và không linh hoạt trong việc thay đổi và thích ứng với các tình huống mới.
22. Hạn chế về linh hoạt: Một số robot dịch vụ gặp khó khăn trong việc di chuyển trên các mặt địa hình phức tạp hoặc vượt qua các chướng ngại vật, giới hạn sự ứng dụng của chúng trong các môi trường đa dạng.
23. Hạn chế về hiệu suất và độ tin cậy: Robot dịch vụ có thể gặp khó khăn trong việc xử lý các tình huống phức tạp và đưa ra quyết định chính xác, và đôi khi có thể gây ra lỗi hoặc hỏng hóc.
23.1.1.Xe đẩy siêu thị thông minh
24. Xe đẩy siêu thị thông minh là một dạng robot dịch vụ trong siêu thị. Robot có chức năng chính là bám theo người để chứa hàng hoá được mua trong các siêu thị lớn, trung tâm thương mại. Với tính năng bám theo người, robot này có khả năng tự động di chuyển theo người dùng. Với khả năng tự động di chuyển và chứa hàng hoá, nhóm mong muốn có thể giúp người lớn tuổi tiết kiệm sức lực và tránh gánh nặng vận chuyển hàng hóa, đem lại sự tiện lợi và giúp người lớn tuổi có trải nghiệm mua sắm dễ dàng hơn, giúp giảm bớt khó khăn và mệt mỏi trong quá trình đi lại và vận chuyển hàng hóa.
24.1. Các nghiên cứu liên quan đến đề tài
24.1.1.Các nghiên cứu ngoài nước
25. Trên thế giới, có nhiều nghiên cứu và phát triển về xe đẩy hàng trong siêu thị nhằm tăng cường hiệu suất và tiện ích cho quá trình mua sắm. Dưới đây là một số nghiên cứu đáng chú ý:
19
CHƯƠNG 2
26.
27. Hình 2. Robotic Shopping Cart [5]
28. "Robotic Shopping Cart" của hãng Five Elements Robotics: Hãng Five Elements Robotics đã nghiên cứu và phát triển một loại xe đẩy tự động có khả năng di chuyển theo người dùng và chứa hàng hoá trong siêu thị. Xe đẩy này cũng có khả năng tương tác giọng nói và thực hiện các tác vụ đơn giản.
29.
30. Hình 2. Robot di động ELI [22]
31.
32. Robot di động ELI hoạt động như một giỏ mua hàng thông minh: nó có thể đi theo Khách hàng xung quanh cửa hàng trong khi người này đang chọn sản phẩm, nó có thể
20
CHƯƠNG 2
hướng dẫn Khách hàng vị trí của sản phẩm và cũng cho phép thanh toán tự động, trong số các chức năng khác.
33. ELI tích hợp các cảm biến nhận dạng giọng nói của con người và các cảm biến khác cho phép tránh chướng ngại vật. Theo cách đó, nó có thể đi theo người tiêu dùng và điều hướng một cách tự động. Bằng màn hình tích hợp của nó, người tiêu dùng có thể chọn các sản phẩm quan tâm và robot sẽ hướng dẫn họ đến với chúng.
34. Các tính năng khác bao gồm, tìm vị trí của ô tô trong bãi đậu xe và xác minh thông
tin mua hàng, chẳng hạn như phiếu giảm giá hoặc thời hạn mua hàng.
34.1.1.Các nghiên cứu trong nước
35. Hiện nay robot dịch vụ trong siêu thị ở Việt Nam chưa được nghiên cứu, chế tạo nhiều. Dưới đây là sản phầm của nhóm sinh viên Khoa cơ khí chế tạo máy, trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM nghiên cứu và chế tạo.
36.
37. Hình 2. Hình ảnh follobot [15] 38. Robot có tên là followbot, ứng dụng AI,thuật toán xử lí ảnh, xử lý 3D, giúp robot nhận diện được người, vùng nền và thuật toán điều khiển quỹ đạo chuyển động của robot. Robot hoàn thiện với kích thước nhỏ gọn 506 x 466 x 680mm (dài x rộng x cao), khối lượng 18.5Kg, tốc độ hoạt động tối đa 0.7 m/s, tải trọng tối đa 15Kg, đặc biệt rất dễ sử dụng chỉ với thao tác một nút nhấn. Robot cơ bản có thể bám theo người để chứa hàng hoá cho họ, nó chưa phân biệt được nhiều người
21
CHƯƠNG 3
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT
39.1. Các cơ cấu hoạt động phổ biến trong robot AGV
40. Robot dịch vụ với cơ cấu di động thường có cấu hình của robot di động trên bánh xe (cơ cấu hai bánh vi sai) do thuận lợi trong việc điều khiển. Với cơ cấu này, robot dễ dàng di chuyển trên nền gạch phẳng trong nhà như nhà hàng, khách sạn, siêu thị.
41.
42. Hình 3. Nguyên lý hoạt động của cơ cấu vi sai [20]
43. Kiểm soát tốc độ vi sai là phương pháp lái AGV phổ biến nhất. Nó sử dụng hai bánh dẫn động độc lập, mỗi bánh được dẫn động ở cùng tốc độ để đi thẳng hoặc ở các tốc độ khác nhau để rẽ.
44.
45. Hình 3. Cơ cấu điều khiển vô lăng [20]
46. Điều khiển vô lăng là một phương pháp phổ biến khác được sử dụng chủ yếu trong các phương tiện ba bánh như xe nâng hàng. Trong cơ cấu này, bánh xe truyền động cũng là bánh xe quay. Một tổ hợp động cơ và bộ mã hóa gia tăng được sử dụng cho chuyển động tiến và lùi, trong khi tổ hợp động cơ thứ hai và bộ mã hóa gia tăng được sử dụng để lái. Cách tiếp cận này cung cấp đường dẫn tốt hơn và cung cấp chuyển hướng rất trơn tru. Ngoài ra, không giống như AGV điều khiển vi sai, phương tiện điều khiển vô lăng cũng có thể được sử dụng để kéo.
22
CHƯƠNG 3
47.
48. Hình 3. Cơ cấu điều khiển kết hợp [20]
49. Loại AGV thứ ba kết hợp các phương pháp điều khiển vi sai và lái. Hai động cơ lái/truyền động độc lập với bộ mã hóa gia tăng phù hợp được đặt ở các góc chéo của AGV. Bánh xe xoay được đặt ở các góc đối diện. Điều này cho phép xe rẽ theo hình vòng cung. Nó cũng có thể di chuyển ngang hoặc theo bất kỳ hướng nào và nó có thể lái ở chế độ vi sai theo bất kỳ hướng nào.
50. Dựa vào việc phân tích các cơ cấu hoạt động trên nhóm đã quyết định lựa chọn cơ cấu vi sai với 2 bánh chủ động và 2 bánh bị động, nhằm điều khiển dễ dàng với góc xoay đa dạng và khả năng chịu tải . Hai bánh chuyển động bởi 2 động cơ vì vậy nó có thể quay không đồng tốc và không cần thiết kế cơ cấu lái. Đồng thời ở các nhà hàng hiện nay cũng đang sử dụng cơ cấu này. Vì thế việc đưa cơ cấu này để sử dụng là hoàn toàn hợp lý.
50.1. Xử lí dữ liệu – Xử lí ảnh (2D, 3D)
50.1.1.Giới thiệu về thị giác máy, ảnh 2D
51. Thị giác máy tính là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc máy tính có khả năng nhận diện, phân tích và hiểu các hình ảnh và video tương tự như con người. Nó kết hợp các phương pháp và thuật toán trong xử lý hình ảnh, phân loại, nhận dạng đối tượng, theo dõi chuyển động và trích xuất thông tin từ hình ảnh và video.
(cid:0) Ảnh màu RGB
52. Không gian màu RGB là một hệ thống màu rất phổ biến được sử dụng trong đồ họa máy tính và nhiều thiết bị kỹ thuật số khác. Nó dựa trên ý tưởng của việc kết hợp ba màu sắc cơ bản là đỏ (R, Red), xanh lục (G, Green) và xanh lam (B, Blue).[16]
53. Trong không gian màu RGB, mỗi màu sắc được biểu diễn bằng một giá trị từ 0 đến 255 cho mỗi kênh màu (R, G, B). Kết hợp các giá trị này, ta có thể tạo ra hàng triệu màu sắc khác nhau bằng cách điều chỉnh độ sáng và tỷ lệ của ba kênh màu.Hệ thống RGB thường được sử dụng để hiển thị màu trên các màn hình, in ấn và các thiết bị kỹ thuật số khác. Nó
23
CHƯƠNG 3
cung cấp khả năngtái tạo màu sắc rất rộng và chính xác, cho phép chúng ta tạo ra hình ảnh sống động và chân thực.
54. Ngoài không gian màu RGB, còn có nhiều hệ thống màu khác như CMYK (Cyan, Magenta, Yellow, Key), HSV (Hue, Saturation, Value), HSL (Hue, Saturation, Lightness) và nhiều hệ thống màu khác nữa. Mỗi hệ thống màu có ứng dụng và tính chất riêng, tùy thuộc vào mục đích sử dụng và ngữ cảnh cụ thể.
55. Hình 3. Hình Thêm đỏ vào xanh lá cây tạo ra vàng; thêm vàng vào xanh lam 56. tạo ra trắng [27]
57. Khi chọn một màu cụ thể, ta sẽ có một bộ ba số tương ứng (R, G, B). Mỗi số trong khoảng từ 0 đến 255 đại diện cho mức độ của màu đỏ (R), màu xanh lục (G) và màu xanh lam (B). Kết hợp các giá trị này, ta có thể tạo ra hàng triệu màu sắc khác nhau.
58. Trong ảnh màu, mỗi điểm ảnh hoặc pixel được biểu diễn bởi một khối màu rất nhỏ. Pixel là đơn vị cơ bản nhất để tạo nên một bức ảnh kỹ thuật số 2D. Mỗi pixel trong ảnh màu được biểu diễn bằng một bộ ba số (R, G, B), trong đó mỗi số đại diện cho mức độ của màu tương ứng.
59. Để thuận tiện cho việc lưu trữ và xử lý ảnh, thông thường mỗi giá trị màu trong mỗi pixel sẽ được lưu trữ trong một ma trận riêng. Mỗi ma trận này được gọi là một kênh màu (channel). Vì vậy, ảnh màu được gọi là ảnh có ba kênh màu: kênh màu đỏ (red channel), kênh màu xanh lục (green channel), và kênh màu xanh lam (blue channel).
60. Bằng cách kết hợp và điều chỉnh các giá trị trong ba kênh màu này, ta có thể tạo ra các màu sắc đa dạng và biểu diễn rõ nét các chi tiết trong ảnh màu. Mô hình không gian màu RGB là một trong những mô hình phổ biến và quan trọng nhất để biểu diễn và xử lý ảnh màu.
60.1.1.Thuật toán nhận diện đối tượng – bài toán Object detection
61. Nhận dạng đối tượng là một thuật ngữ chung để mô tả một tập hợp các nhiệm vụ thị
giác máy tính có liên quan liên quan đến việc xác định các đối tượng trong ảnh kỹ thuật số.
24
CHƯƠNG 3
62.
63. Hình 3. Phân loại chó mèo [7]
64. Phân loại hình ảnh liên quan đến việc dự đoán lớp của một đối tượng trong một hình ảnh. Định vị vật thể đề cập đến việc xác định vị trí của một hoặc nhiều đối tượng trong một hình ảnh và vẽ bounding box xung quanh chúng. Phát hiện đối tượng kết hợp hai nhiệm vụ trên và thực hiện cho một hoặc nhiều đối tượng trong hình ảnh. Chúng ta có thể phân biệt giữa ba nhiệm vụ thị giác máy tính cơ bản trên thông qua input và output của chúng như sau [17]:
65. Phân loại hình ảnh là quá trình dự đoán lớp của một đối tượng trong một hình ảnh. Nó liên quan đến việc xác định và gán nhãn cho các đối tượng trong hình ảnh dựa trên các đặc trưng và thông tin được trích xuất từ hình ảnh đó. Mục tiêu của phân loại hình ảnh là nhận diện đối tượng và phân loại chúng vào các lớp hay nhãn khác nhau.
66. Định vị đối tượng, hay còn gọi là object localization, là quá trình xác định vị trí của một hoặc nhiều đối tượng trong một hình ảnh. Nó bao gồm việc xác định tọa độ và kích thước của các bounding box (khung giới hạn) xung quanh các đối tượng trong hình ảnh. Định vị vật thể cho phép chúng ta biết chính xác đối tượng đang nằm ở đâu trong hình ảnh.
67. Phát hiện đối tượng là một nhiệm vụ kết hợp giữa phân loại và định vị đối tượng. Nó không chỉ nhận diện và phân loại các đối tượng trong hình ảnh, mà còn cung cấp thông tin về vị trí của chúng thông qua việc xác định và vẽ bounding box xung quanh các đối tượng đó. Phát hiện đối tượng là một quá trình tổng hợp thông tin hữu ích về cả lớp và vị trí của các đối tượng trong hình ảnh.
68. Các nhiệm vụ phân loại hình ảnh, định vị vật thể và phát hiện đối tượng đóng vai trò quan trọng trong lĩnh vực thị giác máy tính và các ứng dụng liên quan như nhận dạng khuôn mặt, xử lý ảnh y tế, xe tự hành và nhiều lĩnh vực khác. Chúng giúp chúng ta hiểu và tận dụng thông tin trong hình ảnh để đưa ra quyết định và hành động phù hợp trong các ứng dụng thực tế.
25
CHƯƠNG 3
69. Một số định nghĩa khác cũng rất quan trọng trong computer vision là phân đoạn đối tượng (object segmentation), trong đó các đối tượng được nhận dạng bằng cách làm nổi bật các pixel cụ thể của đối tượng thay vì bounding box. Và image captioning kết hợp giữa các kiến trúc mạng CNN và LSTM để đưa ra các lý giải về hành động hoặc nội dung của một bức ảnh.[17]
70.
71.
72. Sơ đồ 3. Sơ đồ các mối liên hệ giữa các tác vụ trong computer vision [17]
72.1.1.Model SSD (Single Shot Detector) trong Object Detection
73. Do sử dụng phần cứng là board jetson nano 4GB không quá mạng trong việc xử lí, nên yêu cầu thuật toán phải gọn nhẹ, tốc độ xử lí nhanh. Khung hình nhận từ camera sẽ đa số là người có kích thước thay đổi không quá lớn chính vì vậy ưu tiên về tốc độ hơn là độ chính xác. Nhóm đã tìm hiểu và chọn Model SSD để giải quyết bài toán về phát hiện người.
(cid:0) Một số định nghĩa:
- Scale: Đây là độ phóng đại so với khung hình gốc. Nó xác định kích thước của vật
thể so với khung hình.
- Aspect ratio: Tỷ lệ cạnh là tỷ lệ giữa chiều rộng và chiều cao của khung hình bao chứa vật thể. Nó giúp xác định hình dạng tương đối của vật thể. Ví dụ, tỷ lệ cạnh của một người thường là 1:3, trong khi tỷ lệ cạnh của một chiếc xe nhìn từ phía trước là 1:1.
26
CHƯƠNG 3
74.
- Bounding box: Đây là khung hình bao chứa vật thể và được xác định trong quá trình
huấn luyện.
- Ground truth box: Đây là khung hình được xác định trước từ bộ dữ liệu và có tọa độ
(Cx, Cy, w, h) giúp xác định vị trí và kích thước của vật thể.
- Offsets: Các offsets (Cx, Cy, w, h) được sử dụng để xác định vị trí và kích thước của
vật thể trong khung hình.
-
IoU (Intersection over Union): Đây là tỷ lệ đo lường mức độ trùng lắp giữa hai khung hình (thường là khung hình dự đoán và khung hình ground truth) để xác định xem hai khung hình có trùng nhau hay không. Tỷ lệ này được tính dựa trên diện tích giao nhau của hai khung hình so với diện tích tổng của chúng.
- Positive matching prediction: Đây là khung hình được dự đoán là chứa vật thể đúng, được xác định dựa trên tỷ lệ IoU > 0.5 giữa khung hình dự đoán và khung hình ground truth.
- Negative matching prediction: Đây là khung hình được dự đoán là không chứa vật thể đúng, cũng được xác định dựa trên tỷ lệ IoU < 0.5 giữa khung hình dự đoán và khung hình ground truth.
75. SSD là một phương pháp phát hiện vật thể trong hình ảnh chỉ cần một bức ảnh đầu vào và các ground truth boxes để xác định vị trí của các vật thể trong quá trình huấn luyện. Trong quá trình phát hiện, trên mỗi feature map, chúng ta xác định một tập hợp nhỏ các default boxes tương ứng với các tỷ lệ cạnh khác nhau, đặt trên các vị trí khác nhau trên feature map. Ví dụ, có thể có các default boxes với tỷ lệ cạnh 1:1, 1:2 và 2:1.
76. Đối với mỗi default box, chúng ta dự đoán một phân phối xác suất cho các lớp vật thể tương ứng. Trong quá trình huấn luyện, chúng ta tìm cách ghép các default boxes với ground truth boxes sao cho sai số định vị được đo lường qua localization loss là nhỏ nhất, thường sử dụng hàm Smooth L1. Sau đó, chúng ta cố gắng tối thiểu hóa sai số của các nhãn dự báo cho mỗi vật thể được phát hiện trong các default boxes thông qua confidence loss, thường sử dụng hàm softmax.
77. Loss function của SSD trong quá trình phát hiện vật thể sẽ khác với loss function của các tác vụ phân loại hình ảnh. Điều đặc biệt là nó bao gồm localization loss để đo lường sai số vị trí giữa các predicted boxes và ground truth boxes. Điều này giúp tăng cường khả năng xác định vị trí của các vật thể.
27
CHƯƠNG 3
78.
79. Sơ đồ 3. Sơ đồ kiến trúc của mạng SSD [18]
80.
SSD dựa trên một tiến trình lan truyền thuận của một kiến trúc chuẩn (chẳng hạn VGG16) để tạo ra một khối feature map output gồm 3 chiều ở giai đoạn sớm. Chúng ta gọi kiến trúc mạng này là base network (tính từ input Image đến Conv7 trong hình 3.2). Sau đó chúng ta sẽ thêm những kiến trúc phía sau base network để tiến hành nhận diện vật thể như phần Extra Feature Layers trong sơ đồ.[18]
81.
Trong mô hình SSD có nhiều mô hình được sử dụng để thực hiện phân loại đối tượng trong hình ảnh. Dưới đây là một số mô hình phổ biến trong bài toán phân loại (classification):
82.
VGG16: Mô hình VGG16 được sử dụng để rút trích đặc trưng từ hình ảnh và thực hiện phân loại đối tượng. Nó có kiến trúc sâu với 16 tầng convolutional và 3 tầng fully connected.
83. MobileNetV2: Mô hình MobileNetV2 là một mô hình nhẹ và tối ưu được sử dụng trong các ứng dụng có nguồn tài nguyên hạn chế như điện thoại di động. Nó cung cấp một tốc độ xử lý nhanh và độ chính xác cao trong việc phân loại đối tượng.
84.
ResNet50: Mô hình ResNet50 là một trong những mô hình nổi tiếng với kiến trúc sâu và khả năng học sâu. Nó có 50 tầng convolutional và thường được sử dụng để rút trích đặc trưng trong các bài toán phân loại đối tượng.
85.
InceptionV3: Mô hình InceptionV3 có kiến trúc đặc biệt với các module Inception, giúp tăng hiệu suất và khả năng đa dạng hóa đặc trưng. Nó thường được sử dụng trong các bài toán phân loại ảnh.[18]
86.
28
CHƯƠNG 3
87.
88. Hình 3. Đồ thị so sánh hiệu suất của các mô hình classification thông dụng [18] 89. Dựa vào đồ thị trên nhóm đã nghiên cứu và tìm hiểu để lựa chọn mô hình MobileNetV2 để giải quyết bài toán classification do mô hình có các đặc tính phù hợp để triển khai trên jetson nano như sau:
90. Kích thước nhỏ: MobileNetV2 được thiết kế với kiến trúc nhẹ nhàng và tối ưu, giúp giảm kích thước của mô hình. Điều này quan trọng đối với các hệ thống có tài nguyên hạn chế như Jetson Nano, nơi việc tiết kiệm dung lượng bộ nhớ và tài nguyên tính toán là quan trọng.
91. Hiệu suất tính toán: Mặc dù có kích thước nhỏ MobileNetV2 vẫn đạt được hiệu suất tính toán tốt. Các mô hình này được thiết kế để sử dụng các phép tính chính xác và hiệu quả, giúp thực hiện phân loại đối tượng nhanh chóng và chính xác.
92. Độ chính xác: Mặc dù MobileNetV2 có kích thước nhỏ, chúng vẫn đạt được độ chính xác tương đối cao trong việc phân loại đối tượng. Điều này là kết quả của việc áp dụng các kỹ thuật như depthwise separable convolution, giúp giảm số lượng tham số mà vẫn duy trì độ chính xác cao.
93. Tương thích và dễ triển khai: MobileNetV2 đã được triển khai và tối ưu cho các nền tảng nhúng như Jetson Nano. Các mô hình này có sẵn trong các thư viện phổ biến như TensorFlow và PyTorch, và có thể được triển khai dễ dàng trên Jetson Nano thông qua các công cụ và giao diện lập trình như CUDA và TensorRT.
29
CHƯƠNG 3
93.1. Thị giác máy 3D
93.1.1.Camera số
(cid:0) Stereo camera
94. Là một dạng camera 3D có hai hoặc nhiều hơn các cảm biến hình ảnh để bắt được các góc ảnh khác nhau. Từ độ sai lệch giá trị trả về từ hai camera đơn đó tính ra chiều sâu của ảnh. Đây là mô hình camera 3D đầu tiên, có độ chính xác so với camera cùng chức năng không cao, giá thành tương đối rẻ. Tuy nhiên, với việc cải thiện chất lượng của cảm biến hình ảnh và giải thuật xử lý, hiện tại có một số l số loại stereo camera cho chất lượng rất tốt nhưng giá thành tương đối cao.[1]
95.
96. Hình 3. Zed 2 stereo camera [24]
(cid:0) Time-of-Flight camera(TOF camera)
97. Các TOF camera xử dụng ánh sáng hồng ngoại chiếu tới vật thể cần xác định, cảm biến đo thời gian dội lại của tia hồng ngoại để xác định chiều sâu. Sai số khoảng 1cm, Microsoft Kinect v2 là một trong những đại diện tiêu biểu của loại camera này.[1]
98.
99. Hình 3. Camera kinect v2 [23]
(cid:0) Structure light camera
100.
Hoạt động bằng cách chiếu một dải ánh sáng lên bề mặt cần xác định, dựa trên hiện tượng cong của ảnh trả về để tính ra chiều sâu của bề mặt. Tốc độ này khá nhanh so với
30
CHƯƠNG 3
phương pháp ToF, sai số 1 cm. vấn đề của phương pháp này là vật thể phải đủ lớn để gây ra hiện tượng cong ảnh.[1]
101.
102. Hình 3. Camera kinect v1 [26]
102.1.1. Ảnh 3D
103.
Một hướng tiếp cận mới là sử dụng thị giác máy 3D để giải quyết những vấn đề thực tế mà thị giác máy 2D gặp phải trong bài toán robot đi theo người. Thay vì chỉ dựa trên thông tin hai chiều, thị giác máy 3D cho phép thu thập thông tin chiều sâu, khoảng cách và vị trí tương đối của đối tượng so với robot. Với thị giác máy 3D, robot có thể xác định được khoảng cách đến đối tượng và độ lệch so với vị trí mong muốn. Điều này giúp robot có thể điều chỉnh hướng di chuyển. Thêm vào đó, thông tin chiều sâu cũng cung cấp thêm thông tin về môi trường xung quanh, giúp robot đưa ra quyết định và phản ứng phù hợp.
104.
Bằng cách áp dụng thị giác máy 3D trong bài toán robot đi theo người, ta có thể cải thiện khả năng điều hướng và tương tác của robot. Điều này giúp robot hoạt động một cách hiệu quả và an toàn hơn trong môi trường thực tế, đồng thời nâng cao trải nghiệm và sự tin tưởng của người sử dụng.
105.
Trong thị giác máy 3D, ảnh RGB-D là một dạng phổ biến, kết hợp thông tin màu sắc (RGB) và thông tin độ sâu (Depth). Độ sâu cung cấp thông tin về khoảng cách từ camera đến các điểm trong hình ảnh, giúp tái tạo không gian ba chiều. Thông qua ảnh RGB- D, có thể xác định vị trí và hình dạng của các đối tượng trong một không gian 3D.
106.
Ngoài ra, point cloud (đám mây điểm) cũng là một phương pháp thị giác máy 3D phổ biến. Point cloud biểu diễn không gian bằng cách lưu trữ tập hợp các điểm 3D trong không gian. Các điểm này có thể được xây dựng từ ảnh RGB-D và thông số của camera. Point cloud cho phép tái tạo chi tiết và chính xác của đối tượng trong không gian 3D.
31
CHƯƠNG 3
107.
Thị 108. 3D đã giác máy nhiều mở ra và cơ tiềm năng việc hội cho các phát triển thông ứng dụng tương minh và tác trong thế giới thực. Với khả năng xử lý thông tin không gian ba chiều và độ sâu, nó mang lại những lợi ích đáng kể trong việc điều khiển robot, xây dựng môi trường thực tế ảo, cải thiện an ninh và an toàn, và nhiều lĩnh vực ứng dụng khác.
108.1. Bộ điều khiển PID
109.
Bộ điều khiển PID (Proportional Integral Derivative) lý tưởng là cấu trức ghép song song của ba khâu: P, I và D. Thuật toán PID có thể mô tả đơn giản như hình 2.22. Bộ điều khiển PID sẽ giám sát đầu ra của hệ thống, sau đó so sánh với giá trị mong muốn. Nếu hệ thống chưa đạt được giá trị mong muốn, nghĩa là sai số e khác không, bộ PID sẽ tính toán ra giá trịtác động mới (tác động vào hệ thống) để hiệu chỉnh hệ thống. Quá trình này sẽ được thực hiện liên tục cho đến khi nào e = 0, lúc đó hệ thống sẽ đạt trạng thái ổn định. Hệt hống như thế còn được gọi là hệ thống điều khiển vòng kín (Closed Loop Control) vì nó có hồi tiếp trạng thái của hệ thống về bộ điều khiển.
110.
111. Sơ đồ 3. Sơ đồ khối của một hệ kín có bộ PID
112. Hàm truyền của bộ PID được viết như sau:
113.
114. Trong đó:
32
CHƯƠNG 3
115. là hệ số khuếch đại của bộ PID.
116. là hệ số tích phân [s -1].
117. là hệ số vi phân [s].
118. gọi là hằng số thời gian tích phân.
119. gọi là hằng số thời gian vi phân.
120. Điều chỉnh tỉ lệ (P): là phương pháp điều chỉnh tạo ra tín hiệu điều chỉnh tỉ lệ
với sai lệch đầu vào.
121.
Điều chỉnh tích phân (I): là phương pháp điều chỉnh tỉ lệ để lại một độ lệch (offset) sau điều chỉnh rất lớn. Để khắc phục ta sử dụng kết hợp điều chỉnh tỉ lệ với điều chỉnh tích phân. Điều chỉnh tích phân là phương pháp điều chỉnh tạo ra tín hiệu điều chỉnh sao cho độ lệch giảm tới 0. Thời gian càng nhỏ thể hiện tác động điều chỉnh tích phân càng mạnh, ứng với độ lệch càng bé.
122.
Điều chỉnh vi phân (D): khi hằng số thời gian hoặc thời gian chết của hệ thống rất lớn điều chỉnh theo P hoặc PI có đáp ứng quá chậm thì ta sử dụng kết hợp với điều chỉnh vi phân. Điều chỉnh vi phân tạo ra tín hiệu điều chỉnh sao cho tỉ lệ với tốc độ thay đổi sai lệch đầu vào.
123.
Trong thực tế do các bộ điều khiển PID được sử dụng rất phổ biến trong công nghiệp, đặc biệt là trong lĩnh vực điều khiển quá trình nên các hãng sản xuất thiết bị tự động thường cung cấp các bộ điều khiển PID thương mại chế tạo bằng mạch khuếch đại thuật toán. Các bộ PID được thiết kế chế tạo sẵn này rất tiện dụng. Người sử dụng có thể chọn chế độ điều khiển P, I, PI, PD, PID tuỳ theo yêu cầu bằng cách tắt mở các thành phần chức năng tương ứng.
123.1. ROS (Robot Operation System)
123.1.1. ROS là gì
124.
ROS là một hệ điều hành siêu mã nguồn mở dành cho rô-bốt của bạn. Nó cung cấp các dịch vụ mà bạn mong đợi từ một hệ điều hành, bao gồm trừu tượng hóa phần cứng, kiểm soát thiết bị cấp thấp, triển khai chức năng thường được sử dụng, chuyển thông báo giữa các quy trình và quản lý gói. Nó cũng cung cấp các công cụ và thư viện để lấy, xây dựng, viết và chạy mã trên nhiều máy tính.[28]
125.
Trước năm 2007, năm phát hành ROS, các kỹ sư robot không có kiến trúc phần mềm nhúng tiêu chuẩn. Đó là lý do tại sao ROS là một bước tiến lớn. ROS được phát triển và duy trì bởi một công ty ở California, Willow Garage, được thành lập vào năm 2006 bởi Scott Hassan, một trong những nhân viên đầu tiên của Google.[28]
33
CHƯƠNG 3
125.1.1. Lợi ích của ros cho robot:
126.
Tiêu chuẩn hóa và tái sử dụng: ROS cung cấp các giao thức, giao diện và thư viện chuẩn hóa cho việc phát triển robot. Điều này giúp tiết kiệm thời gian và công sức trong việc phát triển phần mềm, và cho phép tái sử dụng lại các thành phần đã được xây dựng trước đó.
127.
Quản lý gói phần mềm: ROS sử dụng hệ thống quản lý gói phần mềm mạnh mẽ, cho phép bạn dễ dàng cài đặt, cập nhật và quản lý các phần mềm liên quan đến robot. Điều này giúp quản lý và duy trì các thành phần phần mềm một cách hiệu quả.
128.
Giao tiếp và tương tác giữa các thành phần: ROS cung cấp cơ chế giao tiếp linh hoạt cho các thành phần của robot, cho phép chúng tương tác và trao đổi dữ liệu dễ dàng. Điều này tạo điều kiện thuận lợi cho việc phát triển các hệ thống phức tạp và tích hợp các công nghệ khác nhau vào robot.
129.
Hỗ trợ đa nền tảng: ROS hỗ trợ nhiều nền tảng phần cứng và hệ điều hành, cho phép bạn phát triển và chạy các ứng dụng trên nhiều loại robot khác nhau. Điều này tăng tính linh hoạt và sự mở rộng trong việc triển khai robot trên các môi trường và nền tảng khác nhau.
130.
Tổng hợp lại, sử dụng ROS giúp tăng năng suất, tiết kiệm thời gian và công sức, tạo điều kiện thuận lợi cho phát triển và triển khai robot. Nó cung cấp các công cụ, giao thức và cộng đồng mạnh mẽ để hỗ trợ việc phát triển các ứng dụng robot phức tạp và tích hợp các công nghệ khác nhau một cách linh hoạt.
130.1.1. Các khái niệm cơ bản trong ROS
131. Node: Là một tiến trình độc lập chạy trong ROS. Node thực hiện các chức
năng cụ thể và có thể giao tiếp với các node khác thông qua các thông điệp.
132.
Topic: Là cơ chế giao tiếp không đồng bộ trong ROS. Các node có thể xuất bản (publish) dữ liệu vào một topic và đọc (subscribe) dữ liệu từ topic đó. Topic giúp các node truyền thông tin và tương tác với nhau.
133.
Message: Là dạng dữ liệu được sử dụng để truyền thông tin giữa các node trong ROS. Message định nghĩa cấu trúc dữ liệu và các trường thông tin mà node gửi và nhận thông qua các topic.
134.
Service: Là cơ chế giao tiếp đồng bộ trong ROS. Node có thể gửi yêu cầu (request) đến một service và nhận được phản hồi (response) từ service đó. Service thường được sử dụng khi cần trao đổi dữ liệu theo yêu cầu chứ không phải liên tục như topic.
34
CHƯƠNG 3
135.
Package: Là đơn vị cơ bản trong ROS để tổ chức và chia sẻ mã nguồn. Package chứa các file cấu hình, mã nguồn, thư viện và tài nguyên khác liên quan đến một chức năng cụ thể.
136.
Launch file: Là file cấu hình XML dùng để khởi chạy và cấu hình một tập hợp các node và thông điệp trong ROS. Launch file giúp tự động hóa quá trình khởi động và cấu hình môi trường làm việc.
137. Roscore: Là một thành phần quan trọng trong ROS, là máy chủ trung tâm để quản lý giao tiếp giữa các node và tài nguyên của hệ thống ROS. Nó cung cấp các dịch vụ quan trọng như quản lý namespace, quản lý thông điệp, quản lý topic và service, và quản lý tài nguyên mạng. Roscore đảm bảo tính nhất quán và đồng bộ trong giao tiếp giữa các node và là một phần không thể thiếu trong môi trường ROS. [28]
35
CHƯƠNG 4
CHƯƠNG 4: CÁC GIẢI PHÁP THỰC HIỆN ĐỀ TÀI VÀ TÍNH TOÁN THIẾT KẾ HỆ THỐNG CƠ KHÍ
137.1. Thông số thiết kế
(cid:0) Kích thước của robot:
138.
Trong các trung tâm hoặc siêu thị lớn chiều rộng lối đi giữa các kệ hàng với nhau là tử khoảng 1m đến 1,5m nên cần lựa chọn thiết kế robot có kích thước phù hợp có thể nằm trong khoảng kích thước như sau: chiều dài và chiều rộng không lớn hơn 0,5 m.
139.
140. Hình 4. Hình ảnh lối đi trong siêu thị [25]
141.
Về chiều cao của robot để thiết kế chiều cao hợp lý cho người sử dụng dễ dàng bỏ hàng hóa vào giỏ. Nhóm đã tiến hành đo đạc và tham khảo trên mạng kích thước các mẫu xe đẩy hàng có trên thị trường. Chiều cao tính từ mặt sàn tới đáy của giỏ đựng hàng có kích thước từ 0,4 m đến 0,5 m tùy thuộc vào dung tích chứa hàng của xe mà kích thước này thay đổi. Đây là các thiết kế tiêu chuẩn nên nhóm đã dựa vào thông số trên để đưa ra giới hạn chiều cao cho robot có thể nằm trong khoảng kích thước 0,4-0,5 m.
(cid:0) Tải trọng và vận tốc của robot:
142.
Tổng khối lượng xe và tải trọng tối đa có thể ước lượng m = 50kg. Tốc độ đi bộ trung bình của con người thường tử 0,7-1 m/s. Nên tốc độ lớn nhất của xe: v = 3.6km/h = 1m/s.
(cid:0) Cơ cấu chuyển động:
143.
Điều kiện di chuyển của robot là trên sàn gạch bằng phẳng, ít ma sát. Có thể sử dụng bánh xe cao su để tăng độ bám. Sử dụng cơ cấu chuyền trộng vi sai với hai bánh đẫn động và hai bánh lái để điều chỉnh hướng di chuyển của robot.
36
CHƯƠNG 4
(cid:0) Camera:
144.
Một camera hoặc hệ thống camera để nhận dạng và theo dõi người , cũng như có thể đo được khoảng cách từ người đến robot ( sử dụng các loại camera 3D). Hệ thống xử lý và điều khiển:
145.
Vi xử lý để điều khiển tốc độ của động cơ, sử dụng Single Board Computer để nhận dữ liệu hình ảnh và dữ liệu cảm biến độ sâu nhằm diện người và lấy được khoảng cách từ người đến camera.
146. Hệ điều hành robot (Robot Operating System): Được cài đặt trên Single Board
Computer để quản lý và điều phối các hoạt động của robot.
147.
Pin hoặc nguồn điện khác: Cung cấp nguồn điện cho robot. Cần xác định công suất tối đa robot sử dụng, ước lượng tối đa khoảng 30W và thời lượng pin hoạt động khoảng 1 tiếng.
147.1. Phương hướng và giải pháp thực hiện
147.1.1. Phương án 1
(cid:0) Phần cứng:
148.
Thiết kế robot có kích thước khoảng 430x480x480mm. Với tải trọng tối đa 50kg nên phần đế và phần khung cần phải chắc chắn nền chọn vật liệu làm đế và trục là thép ss400, khung xe sử dụng thanh nhôm định hình có kích thước 20x20. Sử dụng hệ thống truyền động vi sai sử dụng hai bánh dẫn động độc lập. Sử dụng động cơ hành tinh planet 12- 24vdc công suất tối đa 30W.
149.
Robot được trang bị camera kinect v2 để nhận dạng và đo được khoảng cách giữa người với robot. Sử dụng cảm biến đo khoảng cách để phát hiện vật cản phía trước. Sử dụng vi xử lý stm32 để diều khiển tốc độ của động cơ. Board Jetson nano để xử lí các dữ liệu hình ảnh và cảm biến thu được từ camera.
(cid:0) Phần mềm:
150.
Xe cần có khả năng phản ứng nhanh sự thay đổi của người trong di chuyển nên nhóm quyết định sử dụng xác định nhận dạng người bằng mô hình retrain SSD- MobileNetV2 trên tập dữ liệu COCO do đây là mô hình có độ chính xác và tốc độ xử lý cho ra kết quả tốt và nhanh nhất trong các mô hình nhận diện.
37
CHƯƠNG 4
151.
152. Hình 4. Hiệu suất của Jetson Nano khi chạy các mạng Machine Learning [30]
153.
Xây dựng thuật toán nhận diện màu sắc để cho người dùng mặc áo có màu tương ứng với robot nhằm phân biệt được người sử dụng robot với những người xung quanh.
154. Xây dựng thuật toán điều khiển, bộ điều khiển PID để robot di chuyển ổn
định. Tính toán và thực nghiệm để đưa ra thông số PID phù hợp cho hệ thống.
154.1.1. Phương án 2
(cid:0) Phần cứng:
155.
Phần thiết kế cơ khí vẫn giữ nguyên thay đổi camera kinect v2 bằng camera D435i Real Sense để tăng chất lượng nhận diện hình ảnh và tiết kiệm năng lượng hơn, nhưng đổi lại giá thành cao.
156. Robot được trang bị cảm biến chuyển động như máy quét LiDAR hoặc cảm
biến hồng ngoại để phát hiện vật cản và vị trí của robot.
157.
158.
38
CHƯƠNG 4
(cid:0) Phần mềm:
159.
Sử dụng thuật toán nhận diện và xây dựng bộ điều khiển pid như phương án 1. Xây dựng thuật toán điều khiển sử dụng cảm biến lidar để quét bản đồ siêu thị nhằm xác định được vị trí của robot trên bản đồ sau khi robot hoàn thành xong công việc có thể tự đi về vị trí cũ mà không cần người dẫn.
160. Xây dựng thuật toán tracking để phân biệt được người cần đi theo trong khung
hình.
160.1. Lựa chọn phương án
161.
Sau khi xem xét các phương án và các yếu tố liên quan, nhóm đã quyết định lựa chọn Phương án 1 để tiến hành thực hiện đề tài. Dưới đây là một phân tích chi tiết và các lý do cho sự lựa chọn này:
(cid:0) Phần cứng
162.
Thiết kế robot: Đội tạo ra một robot chở hàng đi theo người lớn tuổi trong siêu thị với kích thước 430x480x480mm. Để đảm bảo độ bền và khả năng chịu tải trọng tối đa 50kg, chúng tôi đã chọn vật liệu chắc chắn như thép SS400 cho đế và khung xe. Khung xe được làm bằng thanh nhôm định hình 20x20 để tăng tính nhẹ nhàng và linh hoạt. Để đảm bảo hiệu suất di chuyển tốt, chúng tôi sử dụng hệ thống truyền động vi sai với hai bánh dẫn động độc lập. Động cơ hành tinh planet 12-24vdc công suất tối đa 30W được sử dụng để cung cấp sức mạnh cần thiết cho robot.
163.
Thiết bị phát hiện và xử lý: Để nhận dạng và đo khoảng cách giữa người và robot, chúng tôi đã trang bị camera Kinect V2. Đây là một giải pháp phù hợp cho việc nhận dạng và định vị người dùng. Để phát hiện và tránh vật cản phía trước, sử dụng cảm biến đo khoảng cách. Hơn nữa, vi xử lý STM32 và board Jetson Nano được sử dụng để điều khiển và xử lý dữ liệu từ các thiết bị phát hiện, đồng thời thực hiện các thuật toán và tính toán cần thiết.
(cid:0) Phần mềm
164.
Nhận dạng và xác định người: sử dụng các thuật toán nhận dạng người để xác định và nhận dạng người sử dụng robot. Mô hình retrain SSD-MobileNetV2 trên tập dữ liệu COCO được sử dụng để nhận dạng và xác định vị trí người trong khung hình.
165.
Điều khiển robot: xây dựng thuật toán điều khiển và bộ điều khiển PI để đảm bảo robot di chuyển ổn định và chính xác. Sử dụng thông tin từ các cảm biến và camera Kinect V2, tính toán và điều khiển tốc độ và hướng di chuyển của robot, đồng thời duy trì khoảng cách an toàn giữa robot và người dùng.
39
CHƯƠNG 4
166.
Sử dụng màu sắc phân biệt người để robot đi theo chưa phải là phương pháp tối ưu nhất vẫn còn nhiều hạn chế như ánh sáng hoặc trùng lặp màu sắc, nhưng do phần cứng hiện tại là sử dụng jetson nano 4gb không đủ tài nguyên để xây dựng thuật toán tracking. Nên nhóm sử dụng cách này để phân biệt.
(cid:0) Kết luận
167.
Lựa chọn Phương án 1 được đưa ra dựa trên các yếu tố như kinh phí và thời gian hạn chế. Phương án này đáp ứng các yêu cầu cơ bản và có chi phí và thời gian thấp hơn so với Phương án 2. Bằng việc sử dụng camera Kinect V2 và các cảm biến và thuật toán phù hợp. Nhóm hiểu rằng việc lựa chọn phương án phụ thuộc vào nhiều yếu tố khác nhau. Tuy nhiên, với Phương án 1, nhóm tin rằng sẽ có thể thực hiện thành công mục tiêu của đề tài, đồng thời đáp ứng nhu cầu chở hàng đi theo người trong siêu thị một cách an toàn và hiệu quả.
167.1. Trình tự công việc tiến hành
(cid:0) Nghiên cứu và thu thập thông tin:
- Tìm hiểu về các yêu cầu và mục tiêu của đề tài.
- Nghiên cứu các công nghệ, phương pháp và giải pháp hiện có liên quan đến robot
chở hàng và theo dõi nhận diện người trong siêu thị.
- Thu thập thông tin về cấu trúc và kích thước của siêu thị cụ thể, các quy định và
ràng buộc liên quan đến việc triển khai robot trong không gian siêu thị.
(cid:0) Thiết kế phần cứng:
- Xác định các yêu cầu phần cứng như camera Kinect, STM32 và Jetson Nano, cơ
cấu vi sai, cảm biến, hệ thống di chuyển và nguồn điện.
- Thiết kế mạch vi xử lý để điều khiển và tương tác với các thành phần phần cứng
khác.
- Xác định và tích hợp các cảm biến và hệ thống di chuyển vào robot.
- Lắp ráp và kiểm tra phần cứng để đảm bảo hoạt động ổn định và tương thích.
(cid:0) Phát triển phần mềm:
- Xác định và triển khai các thuật toán nhận dạng người, nhận dạng màu sắc và
điều khiển.
- Tối ưu hóa phần mềm để đảm bảo hiệu suất tính toán và thời gian phản hồi
nhanh.
40
CHƯƠNG 4
(cid:0) Kiểm tra và hiệu chỉnh:
- Thực hiện kiểm tra và hiệu chỉnh robot khi chạy thực tế.
- Đảm bảo rằng robot có thể nhận dạng và theo dõi người, di chuyển theo sau một
cách an toàn và linh hoạt, và tương tác tốt với môi trường xung quanh.
- Điều chỉnh các thiết đặt và thông số để cải thiện hiệu suất và độ tin cậy của robot.
(cid:0) Triển khai và vận hành:
- Triển khai robot chở hàng đi theo người trong siêu thị
- Đảm bảo sự an toàn và tuân thủ các quy định và ràng buộc của siêu thị trong quá trình vận hành.
- Theo dõi và duy trì robot, bao gồm việc kiểm tra và bảo dưỡng phần cứng, cập nhật phần mềm và xử lý sự cố (nếu có).
167.2. Tính toán lựa chọn động cơ
(cid:0) Các thông số đầu vào của robot được ước lượng:
- Tổng khối lượng xe và tải trọng tối đa: m = 50kg
- Tốc độ lớn nhất của xe: v = 3.6km/h = 1m/s
- Chọn bánh xe dẫn động có đường kính dxe = 145mm = 0.145m (r = 0.0725m)
- Xe có hai động cơ dẫn động ở hai bánh sau, một bánh tự do dẫn hướng.
(cid:0) Tính công suất cần thiết của động cơ Pct ≥ Plv + Pmm , với:
- Plv là công suất làm việc của động cơ
- Pmm là công suất mất mát qua bộ truyền
41
CHƯƠNG 4
168.
169. Hình 4. Hình phân tích lực tác động lên robot khi di chuyển 170. Theo định luật 2 Newton : = ma (4.1)
171. Trong đó :
(cid:0) 172. = 0.01 : hệ số ma sát lăn, chọn theo bảng tham khảo bên dưới
173.
174.
175.
176.
177.
178.
179. Bảng 4. Hệ số ma sát lăn tham khảo [29]
180.
181. Với = 50.9,8.0.01 = 4.9N (4.2)
42
CHƯƠNG 4
182. = m.a (4.3)
(4.4) 183. Với v = + at , t = 2s
a = = = 0,5m/s2
= m.a = 50.0,5 = 25N
= 4.9 +25 ≈ 30N
184. Công suất đủ để kéo xe : = . v = 30.1 = 30(W) (4.5)
185. Công suất để đủ làm việc mỗi động cơ là : = = 15 (W) (4.6)
(cid:0) Tính công suất mất mát = ( - 1 ). (4.7)
186. Trong đó,
187. ƞ = ƞđ. ƞol là hiệu suất chung
188. Tra bảng 2.1 trang 31 [28] được:
189. ƞđ = 0.95: hiệu suất bộ truyền đai
190. ƞol = 0.99: hiệu suất một cặp ổ lăn
191. ƞ = ƞđ . ƞol = 0.94
192. = ( - 1 ). = ( - 1 ).15 = 0.95(W)
193. mỗi động cơ : ≥ 0.95 + 15 = 15,95(W)
(cid:0) Tính tốc độ quay lớn nhất của động cơ ndc:
194. Theo cơ kĩ thuật : v = r.(cid:0) (4.8)
195. Tốc độ quay tối đa của bánh xe:
196. = = = 13 ( rad/s )
197. Số vòng quay trên phút của bánh xe:
Tốc độ quay tối đa của động cơ: = u. (v/p)
Chọn u = 2
198. = . = 13. = 127,3(vòng/p)
Momen xoắn lớn nhất của động cơ :
= 254,6 (v/p) (4.9)
199. = 9,55. = 600,1(N.mm) (4.10)
43
Momen xoắn lớn nhất trên trục bánh xe :
CHƯƠNG 4
200. = . = .0.0725 = 1087,5(N.mm) (4.11)
201. Bảng 4. Bảng thông số tính toán lựa chọn động cơ
202. Trục 203. Trục động cơ 204. Trục công tác
Tỷ số truyền 206. uđ = 2
205. u
Vận tốc quay 208. 254,5 209. 127,3
207. n (RPM)
Công suất P 211. 0,01595 212. 0.015
210. (KW)
Moment 214. 600,1 215. 1087,5
213. xoắn T (Nmm)
216. Từ (4.6), (4.10) và (4.11), chọn được động cơ Planet 24VDC 60W 600RPM, thỏa
217. mãn các yêu cầu trên.
218.
219. Hình 4. Động cơ Planet 12-24VDC 30W
- Trục động cơ: 8mm
- Khối lượng: 450gam
- Điện áp động cơ : 12 - 24V DC
- Tỉ số truyền 1/19.2
- Mô men xoắn: 9500 gf.cm
- Tốc độ động cơ: 12000 vòng/phút
- Tốc độ qua giảm tốc: 600 vòng/phút
- Encoder: 12 xung, 2 kênh A B, nguồn 5v dc
- Công suất: 30W
220. Thông số kỹ thuật :
44
- Động cơ 555 chất lượng, bền bỉ với thời gian.
- Hộp số mạnh mẽ với bộ nhông hành tinh chính xác, vận hành êm ái.
CHƯƠNG 4
221.
222. Hình 4. Kích thước động cơ [21]
222.1. Tính toán thiết kế bộ truyền đai
223.
Để tăng mô men và giảm tốc cho động cơ, nhóm đã lựa chọn bộ truyền đai răng tỷ số truyền 2. Việc tính toán thiết kế trục bánh xe và lựa chọn bộ truyền đai răng được thực hiện xong xong với nhau đến khi chọn được bộ truyền đai và tính toán được trục phù hợp. Sau nhiều lần tính toán, lựa chọn, nhóm đã có được bộ truyền đai phù hợp và kết quả tính toán để có căn cứ chế tạo trục bánh xe.
(cid:0) Thông số đầu vào như sau:
224. = 15,95W = 0,01595 (kW)
225. = 254,6
226. u = 2
227. Theo thông số của bảng ta chọn số răng > 10 Chọn = 20 răng
228. Tỉ số truyền u = 2 u = = 40 răng
(cid:0) Mô đun của đai răng tính theo công thức:
229. m = (4.12)
230. Trị số m tính được lấy theo tiêu chuẩn bảng 4.28 trang 69 [3]:
231. m = 1.5mm, bước đai p = 4.71mm
(cid:0)
Theo bảng 1 (phụ lục 1) Chọn m = 1.5mm Bước răng p: p = 4.71mm Chiều dày đai H: H = 2.2mm.
(cid:0) Chiều cao răng h : h = (0,60,9)m Chọn h = 0,6.2 = 1,2mm Chọn h = 1,2mm
Theo bảng 1 (phụ lục 1).
45
CHƯƠNG 4
(cid:0) Chiều rộng nhỏ nhất của răng: S = (1 1,2).m Chọn S =1.1,5 = 1,5mm
(cid:0) Đường kính bánh đai số 1 : = 1.5.20 = 30mm Chọn = 30mm Theo bảng 1 (phụ lục
1)
(cid:0) Đường kính bánh đai số 2 : = 1.5.40 = 60mm Chọn = 60mm Theo bảng 1 (phụ lục
1)
(cid:0) Khoảng cách trục nhỏ nhất
232. (4.13)
233. = 0,5.( 30 + 60) + 1.5= 46.5 mm
(cid:0) Khoảng cách trục lớn nhất
234. = 2. = 2.(30+60) = 180mm (4.14)
(cid:0) Khoảng cách trục a chọn là : a = 95 mm
(cid:0) Chiều rộng đai b :
b = . m
235. (4.15)
236. = 8.1.5 = 12mm
(cid:0) Chọn theo tiêu chuẩn b = 12.5 mm Theo bảng 3 (phụ lục 1) : độ dao động từ 6 - 9
(cid:0) Chiều rộng bánh đai B : B = 12 + 2 = 14 (mm) Chọn B = 14mm Chọn theo tiêu
chuẩn B = 14mm Theo bảng 1 (phụ lục 1)
(cid:0) Chiều dài đai :
237. L = 2a + + (4.16)
238. = 333,74mm
(cid:0)
Chọn theo tiêu chuẩn L = 380mm Số răng trên đai = 40 Theo bảng 1 (phụ lục 1)
239. v = = = 0,94 m/s (4.17)
Lực vòng
240. = (4.17)
241. = = 22,06 (N)
46
CHƯƠNG 4
: hệ số tải trọng động có giá trị từ 1,3 – 2,4 ( giá trị càng lớn với thiết bị có va
242. đập hoặc quá tải cục bộ thường xuyên ).
(cid:0) Kiểm nghiệm khả năng chịu tải của đai :
= (4.18)
243. = = 1,77 (N/mm)
[ = [ (4.19)
244. = 3,5.1,3.1.1.0,83 =4,15 (N/mm)
245. Trong đó:
tải trọng riêng cho phép (N/mm). -
: hệ số xét đến ảnh hưởng tỉ số truyền. -
-
= 1 – khi không sử dụng con lăn , = 0,9 – khi sử dụng 1 con lăn . = 0,8 – khi sử dụng 2 con lăn.
- : hệ số xét đến ảnh hưởng chiều rộng đai.
246. Thỏa điều kiện : ≤ [
247. Kiểm nghiệm đồ bền mòn :
248. = ≤ (4.20)
249. = = 0,18 ≤ Theo bảng 2 (Phụ lục 1)
250. Lực căng ban đầu : = (1)..b. = 1,7 (N)
251. Lực tác dụng lên trục : = (1). = 1.22,06 = 22,06 (N)
252.
253. Bảng 4. Bảng thông số tính toán đai sơ bộ
254. Bước răng p (mm) 255. 4,71
256. Chiều dày đai H (mm) 257. 2,2
258. Chiều cao răng h (mm) 259. 1,2
260. Chiều rộng nhỏ nhất của răng S 261. 1,5 (mm)
262. Đường kính bánh đai số 1 (mm) 263. 30
264. Đường kính bánh đai số 2 (mm) 265. 60
266. Chiều rộng đai b (mm) 267. 12
47
CHƯƠNG 4
268. Chiều rộng bánh đai B (mm) 269. 14
270. Chiều dài đai L (mm) 271. 380
272. Số răng trên đai (răng) 273. 40
274. Khoảng cách trục nhỏ nhất (mm) 275. 46,5
276. Khoảng cách trục lớn nhất (mm) 277. 180
278. Số răng ăn khớp trục nhỏ (răng) 279. 15
281.
280.
Dựa vào các thông số tính toán sơ bộ phía trên. Nhóm đã quyết định chọn loại
282.
puly đai răng có thông số như sau:
= (0,8÷1,2) = 8mm 10mm
283. Bảng 4. Bảng thông số đai thực tế
284. Bước đai 285. p 286. 5
287. Số bánh răng chủ động 288. Z1 289. 20 răng
290. Số bánh răng bị động 291. Z2 292. 40 răng
293. Bề rộng bánh răng 294. B 295. 9 mm
296. Đường kính vòng đỉnh của bánh răng 297. D1 298. 33 mm chủ động
299. Đường kính vòng đỉnh của bánh răng 300. D2 301. 63 mm bị động
302. Đường kính vòng chia của bánh răng 303. d1 304. 30mm chủ động
305. Đường kính vòng chia của bánh răng 306. d2 307. 60mm bị động
308. Đường kính trục puly chủ động 309. 310. 8 mm
311. Đường kính trục puly bị động 312. 313. 12 mm
314.
315. v = = = 0,471 m/s
316. Lực vòng
317. = = = 22,05 (N) (4.21)
(cid:0) Kiểm nghiệm lại khả năng chịu tải của đai :
318. = = = 4,28 (N/mm) (4.22)
48
CHƯƠNG 4
319. [ = [ = 5.1,3.1.0,8.0,83 = 4,89 (N/mm) (4.23)
320. Thỏa điều kiện : ≤ [
321.
321.1. Thiết kế hình dạng robot
322. Bảng 4. Thông số các chi tiết gia công
326.
324. Kích
323.
321.1.1. Thiết kế mặt đế, nắp đế, đế kê giỏ hàng và tấm đặt thiết bị cho robot
325. Vật liệu
328.
329.
Tên chi tiết thước Phương pháp gia công
327. Đế robot
330. CNC lazer
460x410x Thép
332.
SS400 3
331.
333. mica
334. Cắt CNC
335.
336.
370x270x Tấm nắp đế 2
337. mica
338. Cắt CNC
Tấm để thiết 280x270x
339.
340.
341.
bị điều khiển 5
342. CNC lazer
Tấm kê giỏ 370x270x Thép
SS400 hàng 2
343.
344. 345.
346.
347. Hình 4. Đế và nắp đế
348.
49
CHƯƠNG 4
349.
350. Hình 4. Hình tấm kê giỏ hàng và tấm để thiết bị
351.
(cid:0) Khung nhôm định hình:
-
351.1.1. Thiết kế khung robot
Thông số nhôm định hình:
(cid:0) Vật liệu: hợp kim nhôm
-
(cid:0) Kích thước: 20x20x230, 20x20x330, 20x20x500
Sử dụng máy cắt và cắt thành những thanh theo đúng kích thước đã thiết kế sau đó
352.
lắp ghép lại với nhau bằng pad chữ T, L sử dụng bulong chữ T để cố định
353. Hình 4. Hình khung nhôm định hình
50
CHƯƠNG 4
353.1.1. Lựa chọn bánh xe cho robot
354.
(cid:0) Bánh xe đa hướng
Để đạt được tính linh hoạt trong di chuyển trong các môi trường khác nhau,
chịu được tải trong lớn nhóm đã lựa chọn bánh xe đa hướng v1 25mm có thông số như sau:
- Màu sắc: vàng Mạ kềnh (Xi): Kẽm
- Chất liệu: Nhựa PP - thép
- Đường kính bánh xe: 25mm
- Chiều cao: 34mm
- Độ dày bánh xe 14mm
- Tải trọng: 20kg
355.
356. Hình 4. Hình bánh xe đa hướng
357.
(cid:0) Bánh chủ động
Do bánh xe làm việc trong môi trường có ma sát thấp, nên cần có độ
358.
bám cao. Hai bánh dẫn động chịu lực lớn nên phải chịu được tải trọng cao.
- Khối lượng: 400gam.
- Tải trọng: 70kg.
- Kích thước: đường kính ngoài 145 mm Bề rộng: 40mm. Trục bánh có thể lắp
Thông số bánh xe như sau:
- Vật liệu: Bánh xe được đúc bằng nhôm có độ bền cao, vỏ được bọc cao su mềm
trực tiếp với các loại động cơ giảm tốc có đường kính trục từ 8 đến 24mm.
có nhiều rảnh nên có độ bám cao.
51
CHƯƠNG 4
359. 360. Hình 4. Hình bánh xe chủ động
360.1.1. Lựa chọn vật liệu cho trục bánh xe
361.
Inox 304 tròn đặc có khả năng chống ăn mòn ,chống oxi hóa tốt ,chịu tải trọng cao, chịu được những sự va đập mạnh và có tính đàn hồi tốt nhờ độ bền kéo và giới hạn chảy cao. Do đó nhóm quyết định chọn inox 304 tròn đặc làm trục nối từ puly qua bánh xe, có chiều dài: 150 mm
362.
363. Hình 4.: Hình trục inox 304 tròn đặc
364.
363.1.1. Thiết kế 3D hệ thống cơ khí
Sau khi lên ý tưởng và thiết kế 3D thì đây là mô hình 3D và kích thước của
robot:
52
365.
CHƯƠNG 4
366. Hình 4. Hình dáng và kích thước của robot
(cid:0)
(cid:0) Mô hình có kết cấu chắc chắn nhờ các thanh nhôm định hình được gắn với nhau tạo
Robot được thiết kế với chiều cao vừa đủ để người dùng không gặp khó khăn khi bỏ đồ lên robot, cùng với đó là chiều dài và rộng vừa đủ để di chuyển giữa các kệ hàng trong siêu thị.
(cid:0) Được trang bị các nút nhấn để sử dụng robot và màn hình hiển thị dung lượng pin.
thành một khối cứng cáp.
Trong đó mô hình được chia làm 2 phần:
- Phần đế robot: gồm các khung nhôm định hình, bộ truyền động và mạch điều khiển,
camera cũng như nguồn cấp cho các thiết bị điện.
- Phần đựng hàng hoá: sử dụng tấm thép SS400 dày 2mm được kê lên 4 trụ nhôm
định hình để đựng hàng hoá.
366.1. Tính toán ứng suất, đường kính và dung sai cho trục bánh xe
366.1.1. Tính toán ứng suất
(cid:0) Thông số đầu vào:
Chọn vật liệu chế tạo trục là Inox304 có khoảng 500 Mpa và ứng suất xoắn
367. cho phép
368. (cid:0) τ(cid:0) = 15-30 Mpa. [4]
53
CHƯƠNG 4
369. Khối lượng chia đều 2 bánh xe: m = 25kg
370. Mômen xoắn trục công tác: T = 1087,5Nmm
371. Đường kính bánh xe: dxe = 145mm
(cid:0) Xác định sơ bộ đường kính trục:
372. Chọn (cid:0) =15Mpa
373. Vậy đường kính sơ bộ là = = 7,13(mm) (4.24)
(cid:0) Xác định giá trị các lực tác dụng lên trục:
374. Phản lực tác dụng lên trục bánh xe: N = mg = 9,8.25 = 245 N
(4.25)
375. Lực vòng trên bánh xe: = = 15(N) (4.26)
376. Lực vòng trên bánh đai răng lớn: = = 36,25(N) (4.27)
377.
Lực tác dụng lên trục bánh xe đối với bộ truyền đai răng theo công thức : = (1 ÷1.2) = 36,25 ÷ 43,5 (N) (4.28)
(cid:0) Tính phản lực tại các gối đỡ:
378. Phương trình cân bằng moment tại D theo Oyz
379. ( = -N.(50 + 40 + 40 ) - .40 + 80. = 0
= 420,28
380. Phương trình cân căng theo Oyz :
54
CHƯƠNG 4
381.
382. Hình 4. Biểu đồ tính toán nội lực của trục
383. ( = -N.50 - .40 + 80. = 0
N + - = 128,81 N
384. Phương trình cần bằng moment tại D theo Oxz
385. ( = - = 0
= 24,375
386. Phương trình cần bằng moent tại D theo 0xz
55
CHƯƠNG 4
387. = - +
= - +
388. Tính moment tương đương tại các vị trí:
389. Vị trí A :
390. = (N.mm)
≥ =
391. Vị trí B :
392. =
393. 12311(N.mm)
≥ =
394. Vị trí C
395. = N.mm)
≥ =
396. Vị trí D :
397. =
398. (N.mm)
≥ = =
399. Để phù hợp với kết cấu cũng như lắp đặt bánh đai răng, ta chọn đường kính tại
A là dA = 8mm và đường kính tại B là dB = 12 mm.
400. Để phù hợp với kết cấu cũng như lắp đặt ổ lăn, ta chọn đường kính tại C bằng
đường kính tại D, tức là dC = dD = 12 mm.
400.1.1. Tính toán dung sai cho trục bánh xe và ổ lăn
401. Vòng trong của ổ quay cùng với trục nên tải trọng lần lượt tác dụng lên khắp
đường lăn của ổ và lập lại sau mỗi vòng quay. Suy ra, tải trọng vòng trong ổ là chu kỳ.
- Theo bảng 4.1 (trang 71) [2]
- Tải trọng vòng trong là tải trọng chu kỳ
402. Có 4 kiểu: js6, k6, m6, n6.
- Đường kính của ổ là: d = 10 mm < 100.
56
CHƯƠNG 4
403. Trang 71 [2], Đường kính trục là 12mm d = 12k6
404. Tra bảng 2 trang 183 [2], ta có trục có kích thước là: d = 12k6 =
404.1. Tính toán động học
406.
Thông số
407.
Kí hiệu
408.
Vận tốc dài của robot (m/s)
409.
410.
Vận tốc góc của robot (rad/s)
411.
412.
Vận tốc góc trục bên phải (rad/s)
413.
414.
Vận tốc góc trục bên trái (rad/s)
415.
416.
Vận tốc góc động cơ bên phải (rad/s)
417.
418.
Vận tốc góc động cơ bên trái (rad/s)
419.
420.
Vận tốc dài trục bên phải (m/s)
421.
422.
Vận tốc dài trục bên trái (m/s)
423.
424.
Góc định hướng khi robot rẽ trái hoặc phải
425.
(rad)
426.
Bán kính mỗi bánh xe (m)
427. R = 0.0725
428. Khoảng cách hai tâm trục hai bánh xe (m)
429.
L = 0.37
430.
Bán kính chuyển động của robot khi quay một
431. RT
góc
405. Bảng 4. Bảng kí hiệu các thông số tính toán động học được sử dụng
432.
433.
434. Xét trường hợp robot chuyển động thẳng:
57
CHƯƠNG 4
435.
436. Hình 4. Robot chuyển động thẳng
437. Robot của nhóm có hai bánh dẫn động vi sai. Cấu tạo cơ bản robot được
thể hiện ở hình bên trên. Theo cơ kĩ thuật, vận tốc của cả hai bánh sau và có thể được
tính:
438. (4.29)
439. (4.30)
440.Vận tốc của robot di động được tính bằng trung bình cộng vận tốc của bánh xe
chuyển động bên phải và bên trái:
(4.31)
441.
442. (4.32)
443.
444. Xét trường hợp robot chuyển động xoay một cung tròn:
445. Đường cong hoặc chiều dài của đường chuyển động của robot là trung
bình cộng của cung trái và cung phải :
446. (4.33)
447.
58
CHƯƠNG 4
448.
449. Hình 4. Mô tả chuyển động robot khi rẽ một cung
450. Góc định hướng của robot được tính như sau :
(4.34)
451.
452. (4.35)
453. (4.36)
455. 454. Cả bên trái và bên phải đều có thể thu được theo bán kính chuyển động ,
L và góc định hướng của robot:
456. (4.37)
457. (4.38)
458. Lấy ta được:
459.
460. Từ đó, góc định hướng của robot theo chiều dài LL, LR và khoảng cách L
của hai bánh được xác định bởi:
461. (4.39)
462. Vận tốc góc của robot quay là khác nhau cả về vận tốc bên phải v R và vận
tốc thẳng bên trái vL để khoảng cách của hai trục bánh xe dẫn động L
59
CHƯƠNG 4
463. (4.40)
(4.41) 464.
465. Vận tốc góc của robot:
(4.42) 466.
467. Mà:
468. , trong đó là vận tốc góc của cả robot
469.
470. Vậy nên:
(4.42) 471.
(4.43) 472.
473. Giải hệ hai phương trình trên:
474. (4.44)
475.
476. Do sử dụng bộ truyền đai tỷ số truyền là 2 nên tốc độ hai động cơ bên
phải
và bên trái :
(4.45) 477.
(4.46) 478.
479. Từ 2 công thức 4.45 và 4.46 trên có thể thấy muốn xe cua 1 góc thì sẽ phụ thuộc vào 2 biến là vận tốc dài của xe và vận tốc góc của xe. Việc lựa chọn vận tốc dài của xe và vận tốc góc của xe để cho ra góc cua phù hợp sẽ được trình bày ở chương 6.
60
CHƯƠNG 5
CHƯƠNG 5: TÍNH TOÁN THIẾT KẾ HỆ THỐNG ĐIỆN VÀ THIẾT KẾ BỘ PI CHO ĐỘNG CƠ
479.1. Xây dựng hệ thống điện điều khiển
479.1.1. Sơ đồ khối hệ thống điều khiển
480.
481. Sơ đồ 5. Sơ đồ hệ thống điện
482. Robot bao gồm 5 khối trong hệ thống điện:
(cid:0) Khối đầu tiên cung cấp nguồn cho toàn bộ hệ thống, bao gồm:
o Nguồn 12VDC từ ắc quy dùng để điều khiển 2 mạch H-Bridge cho 2 động cơ, nguồn 12VDC từ ắc quy hạ áp xuống 5V 5A để cấp cho board Jetson Nano
o Nguồn sạc dự phòng 5VDC cung cấp cho vi điều khiển STM32F103C8T6 và encoder.
(cid:0) Khối thứ hai là bộ xử lý chính của robot, có thể coi như bộ não. Board Jetson Nano được sử dụng để tính toán và xử lý dữ liệu từ camera, cũng như truyền tham số điều khiển (tốc độ động cơ) cho khối thứ tư.
(cid:0) Khối thứ ba là khối cảm biến, giống như cặp mắt của robot. Camera Kinect v2 thu thập dữ liệu hình ảnh từ môi trường và được xử lý trên board Jetson Nano.
61
CHƯƠNG 5 (cid:0) Khối thứ tư là khối điều khiển, nhận lệnh tốc độ từ khối thứ hai và điều khiển PID tốc độ
của động cơ.
(cid:0) Cuối cùng, khối thứ năm là khối cơ cấu chấp hành, gồm 2 động cơ DC Servo.
482.1.1. Khối Nguồn
(cid:0) Nhiệm vụ khối nguồn
483.
Khối nguồn trong hệ thống có chức năng cung cấp năng lượng cho toàn bộ hệ thống. Trong đó, khối nguồn chính là Ắc quy 12V 10Ah, cung cấp nguồn cho cả 2 mạch cầu H và Board Jetson Nano. Ngoài ra, khối nguồn phụ, tức sạc dự phòng, cung cấp nguồn cho vi điều khiển STM và encoder trên động cơ.
(cid:0) Tính toán, lựa chọn nguồn cung cấp chính 24VDC
484. Công suất từng linh kiện điện tử:
- Động cơ Planet 12-24VDC, công suất tối đa 30W
- Camera Kinect V2 , công suất tối đa 12W
- Jetson Nano 5V 4A, công suất tối đa 20W
- H-Bridge driver, bỏ qua do công suất tỏa nhiệt quá nhỏ
- Mạch hạ áp DC XY-3606 LM2596S 5V 5A, bỏ qua do công suất tỏa nhiệt nhỏ
- Với tổng công suất tối đa sử dụng là: 2.30 + 12 + 20 = 92W
- Công thức tính dung lượng pin cần thiết: , trong đó (5.1)
485. Cho T = 1 giờ là thời gian xe có thể chạy liên tục với công suất tối đa như
trên, với V = 12V, (cid:0) = 0.8 thì dung lượng cần thiết cho xe là (Ah)
486.
Với dung lượng 9,58Ah để chạy liên tục cho 1 giờ thì nhóm đã quyết định chọn 2 ắc quy Eagle Thái Lan YTS5s(GEL) 12V 5Ah để mắc song song với nhau và có được nguồn là 12V 10Ah.
487. Ngoài ra, nhóm còn dùng thêm nguồn sạc dự phòng để cấp nguồn riêng cho
Stm32f103c8t6 và Encoder của động cơ.
62
CHƯƠNG 5
488.
489. Hình 5. Ắc Quy Eagle Thái Lan YTS5s(GEL) 12V 5Ah
490.
491. Hình 5. Sạc dự phòng 15000mah
(cid:0) Mạch hạ áp 5V-5A cấp nguồn Board Jetson Nano
492. Mạch hạ áp 5V-5A được sử dụng để hạ áp từ nguồn chính 24VDC xuống 5V
cấp cho Board Jetson Nano.
493.
494. Hình 5. Mô đun hạ áp DC-DC 24V/12V To 5V 5A
495. Thông tin chi tiết:
- Điện áp đầu vào: DC 9V - 36V.
- Điện áp đầu ra: 5.2V / 5A / 25W.
63
CHƯƠNG 5
- Sức chứa đầu ra:
o Đầu vào 9 ~ 24V: Đầu ra 5.2V / 6A / 30W
o Đầu vào 24 ~ 32V: Đầu ra 5.2V / 5A / 25W
o Đầu vào 32 ~ 36V: Đầu ra 5.2V / 3.5A / 18W
- Kích thước: 63 * 27 * 10mm (L * W * H).
- Khối lượng: 22g
496.
496.1.1. Khối cảm biến (camera Kinect v2)
(cid:0) Nhiệm vụ khối cảm biến
497.
Camera Kinect v2 như trong sơ đồ khối đã trình bày, tương tự như cặp mắt của robot, giúp robot nhận biết môi trường xung quanh. Đặc biệt, camera này cho phép robot phát hiện và theo dõi con người, giúp robot có thể đi theo và tương tác với con người một cách tự động.
(cid:0) Camera Kinect V2
498.
499. Hình 5. Camera Kinect V2
500.
Camera Kinect v2 là một thiết bị cảm biến đa chức năng được phát triển bởi Microsoft. Nó được thiết kế đặc biệt để nhận dạng và theo dõi chuyển động của con người trong không gian 3D.
(cid:0) Những ứng dụng phổ biến của Camera Kinect V2:
- Thực tế ảo (VR)
- Trò chơi điện tử
- Nhận dạng và theo dõi chuyển động
- Tương tác người máy
64
CHƯƠNG 5
(cid:0) Cấu tạo:
501.
Cảm biến chiều sâu (Depth Sensor): Sử dụng công nghệ Time-of-Flight (ToF) để đo khoảng cách từ camera đến các điểm trong không gian. Cảm biến chiều sâu của Kinect v2 sử dụng ánh sáng hồng ngoại và cảm biến để đo lường thời gian mà ánh sáng mất đi và trở lại từ các đối tượng, từ đó xác định khoảng cách.
502.
Cảm biến hình ảnh (RGB Sensor): Ghi lại hình ảnh màu sắc RGB thông qua một máy ảnh tích hợp. Cảm biến hình ảnh của Kinect v2 cho phép nhận diện và theo dõi các đối tượng trong không gian.
503.
Microphone Array: Camera Kinect v2 đi kèm với một mảng microphone để thu âm và xác định hướng tiếng nói. Mảng microphone này cho phép nhận dạng và xử lý âm thanh, tạo điều kiện cho tương tác giọng nói với hệ thống.
504.
Cấu tạo này cho phép Camera Kinect v2 thu thập thông tin chiều sâu và hình ảnh màu sắc, cùng với khả năng thu âm và xử lý âm thanh, tạo ra một hệ thống hoàn chỉnh để nhận dạng và theo dõi chuyển động trong không gian 3D.
505. Thông số kỹ thuật Realsense Camera D455 cần quan tâm:
- Khoảng cách hoạt động của cảm biến độ sâu: 0,5 – 5,0 m
- Tỷ lệ khung hình RGB: 30fps
- Độ phân giải khung hình ảnh màu: 1920x1080
- Độ phân giải khung hình ảnh depth: 512x424
- Kích thước: 66x249x67 mm
- Tầm nhìn sâu: 70o- 60o (chiều ngang – chiều dọc)
505.1.1. Khối điều khiển
(cid:0) Nhiệm vụ khối điều khiển
65
CHƯƠNG 5
506.
507. Sơ đồ 5. Sơ đồ khối điều khiển từ STM32
508.
Trong khối điều khiển, vi điều khiển STM32F103C8T6 và driver cầu H được sử dụng để điều khiển 2 động cơ DC Servo. STM32F103C8T6 nhận lệnh vận tốc được tính toán từ Jetson Nano và truyền qua giao thức UART (sử dụng UART2 trên STM32). Sau đó, nó thực hiện quá trình điều khiển tốc độ của 2 động cơ bằng cách sử dụng thuật toán PID.
(cid:0) STM32F103C8T6
509.
STM32F103 là một vi điều khiển 32-bit thuộc dòng chip STM32 của STMicroelectronics. Với lõi ARM Cortex-M3 và tốc độ tối đa 72MHz, nó cung cấp sự mạnh mẽ và linh hoạt trong việc xử lý các tác vụ. STM32F103 có giá thành hợp lý và được hỗ trợ bởi mạch nạp và công cụ lập trình đa dạng, giúp dễ dàng phát triển và nạp chương trình.
510. Cấu hình các chân giao tiếp được sử dụng để điều khiển tốc độ động cơ:
- Timer 3 để tạo xung PWM cấp cho 2 động cơ
66
CHƯƠNG 5
- Ngắt ngoài cho A11,A12 và B4,B6 lần lượt đọc encoder phải và trái
- 4 chân B8, B9 và B5, B7 lần lượt là chân đảo chiều động cơ phải và trái
- Sử dụng USART1 để giao tiếp với Netson Nano
511.
512. Hình 5. Cấu hình các chân được sử dụng
(cid:0) H-Bridge
513. Mạch cầu H là một mạch công suất cơ bản có ứng dụng phổ biến trong điều khiển động cơ điện DC. Trên thị trường hiện có nhiều loại mạch cầu H, và sự lựa chọn phụ thuộc vào các yếu tố quan trọng như dòng điện, áp điều khiển và tần số, tùy theo ứng dụng cụ thể mà chúng được sử dụng.
67
CHƯƠNG 5
514.
515. Hình 5. Cấu tạo đơn giản cầu H [11]
516. Thông số của driver mà nhóm sử dụng:
517.
518. Hình 5. Các ký hiệu của mạch [14]
519.
520. Thông số kỹ thuật:
Điện áp sử dụng: 7 ~ 24 VDC. (Limit: 6.5 ~ 27VDC).
68
CHƯƠNG 5
Công suất tối đa: 160W/1 động cơ (nếu chạy liên tục xin chỉ sử dụng 70% công suất
tôi đa, khoảng 115W 1 động cơ và mắc thêm cầu chì bảo vệ quá tải).
520.1.1. Cơ cấu chấp hành (Động cơ DC Servo)
521.
Động cơ DC Servo là một hệ thống gồm hai thành phần chính, bao gồm động cơ DC và encoder. Ngoài ra, để tăng mô men quay và giảm tốc độ của động cơ có thể thêm một hộp số vào đó. Động cơ Servo DC được sử dụng để điều khiển chính xác các thông số như góc quay, tốc độ và mô men. Trong dự án này, nhóm đã lựa chọn cặp động cơ Planet Servo DC với công suất 30W, tốc độ tối đa 600rpm. Động cơ này sử dụng nguồn DC 24V và encoder với 12 xung. Ngoài ra, nó còn được trang bị hộp số với tỉ số truyền 1:19,2.
522.
523. Hình 5. Động cơ Planet DC Servo
(cid:0) Động cơ DC
524.
Động cơ DC là một loại động cơ điện hoạt động bằng dòng điện một chiều. Cấu tạo của động cơ bao gồm hai phần chính: stato (thường được gọi là khung cố định) và roto (thường được gọi là rotor hay cối quay). Phần stato chứa cuộn dây kích từ, thường được đặt trên khung cố định, tạo ra một trường từ xung quanh nó. Phần roto chứa cuộn dây phần ứng, thường được đặt trên cối quay. Khi dòng điện chạy qua cuộn dây phần ứng, lực điện từ tác động lên thanh dẫn phần ứng trong phương tiếp tuyến với mặt trụ của cối quay, tạo nên lực làm quay cối.
Tùy thuộc vào cách mắc cuộn dây trên roto và stato, chúng ta có các loại động
525. cơ sau:
- Động cơ kích từ độc lập: Cuộn dây kích từ (cuộn dây stato) và cuộn dây phần ứng
(roto) được mắc riêng biệt và có thể cấp nguồn riêng biệt.
69
CHƯƠNG 5
- Động cơ kích từ nối tiếp: Cuộn dây kích từ được mắc nối tiếp với cuộn dây phần
ứng.
526.
Đối với loại động cơ kích từ độc lập, cuộn dây kích từ có thể được thay thế bằng nam châm vĩnh cửu. Khi đó, chúng ta có một loại động cơ điện một chiều sử dụng nam châm vĩnh cửu.
527.
Trong trường hợp sử dụng động cơ kích từ độc lập với nam châm vĩnh cửu, việc thay thế cuộn dây kích từ bằng nam châm vĩnh cửu cho phép ta có một loại động cơ điện một chiều khác.
528.
Để thay đổi tốc độ của động cơ này, ta chỉ cần điều chỉnh điện áp được cấp cho phần roto. Tuy nhiên, việc cấp điện áp một chiều và thay đổi nó thường gặp khó khăn. Vì vậy, người ta sử dụng phương pháp điều xung (PWM) để giải quyết vấn đề này.
529.
530. Hình 5. Điều chế độ rộng xung PWM [6]
531.
Mạch điều khiển động cơ sử dụng phương pháp PWM hoạt động dựa trên nguyên tắc cấp nguồn cho động cơ thông qua chuỗi xung đóng mở với tốc độ rất nhanh. Nguồn DC được chuyển đổi thành tín hiệu xung vuông, chỉ gồm hai mức: 0V và xấp xỉ điện áp hoạt động. Tín hiệu xung vuông này được cung cấp cho động cơ để điều khiển tốc độ quay.
532.
Phương pháp PWM cho phép điều chỉnh tốc độ động cơ bằng cách thay đổi tỷ lệ thời gian xung cao so với tổng thời gian xung. Khi tỷ lệ này càng cao, động cơ sẽ chạy với tốc độ càng nhanh. Trong mạch điều khiển, việc điều chỉnh tốc độ được thực hiện bằng cách điều chỉnh thời gian mức cao của chuỗi xung vuông. Điều này ảnh hưởng trực tiếp đến công suất trung bình cấp cho động cơ và tác động lên tốc độ quay của nó.
533.
Ví dụ, trên hình 4.11, ta có thể thấy rằng dãy xung điều khiển trên cùng có độ rộng xung nhỏ, dẫn đến động cơ chạy chậm. Ngược lại, khi độ rộng xung càng lớn (như dãy xung thứ 2 và thứ 3), động cơ DC sẽ chạy với tốc độ nhanh hơn. Phương pháp điều khiển
70
CHƯƠNG 5
PWM này cho phép đạt được sự điều chỉnh chính xác và linh hoạt của tốc độ động cơ, giúp đáp ứng các yêu cầu và ứng dụng đa dạng trong điều khiển động cơ DC.
(cid:0) Encoder
534.
Encoder được sử dụng để xác định vị trí góc của đĩa quay hoặc quãng đường di chuyển cho bánh xe, trục động cơ hoặc bất kỳ thiết bị nào có khả năng quay và cần xác định độ dịch chuyển.
535.
Có hai loại encoder chính là encoder tuyệt đối (absolute encoder) và encoder tương đối (incremental encoder). Encoder tuyệt đối cung cấp thông tin vị trí encoder một cách chính xác mà không cần qua bất kỳ xử lý nào, trong khi encoder tương đối yêu cầu xử lý tín hiệu từ encoder trước khi có thể xác định vị trí quay của động cơ. Với chi phí thấp hơn và quá trình xử lý đơn giản, encoder tương đối được lựa chọn trong phạm vi đề tài này.
536.
537. Hình 5. Mô tả cấu tạo cơ bản encoder tương đối [9]
538.
Bố cục cơ bản của encoder tương đối gồm ba thành phần chính: đĩa quay với các rãnh, nguồn phát và nguồn thu. Theo cấu trúc đơn giản như hình minh họa, mỗi khi động cơ thực hiện một vòng quay, ánh sáng hồng ngoại từ nguồn phát sẽ đi qua các khe nhỏ, đến cảm biến quang và cảm biến sẽ thu nhận một tín hiệu. Số khe trên đĩa tương ứng với độ phân giải của encoder. Để điều khiển động cơ, ta cần biết độ phân giải của encoder đang được sử dụng. Độ phân giải ảnh hưởng đến độ chính xác của quá trình điều khiển và phương pháp điều khiển.
539.
Encoder tương đối thường có hai kênh A và B. Trên encoder, có một cặp bộ phát và thu khác được đặt trên cùng một vòng tròn với kênh A, nhưng lệch một chút. Đây là kênh B của encoder. Tín hiệu xung từ kênh B có cùng tần số với kênh A, nhưng lệch pha 90 độ. Bằng cách kết hợp kênh A và kênh B, ta có thể xác định hướng quay của động cơ.
71
CHƯƠNG 5
540. Encoder được nhóm sử dụng có số xung là 12 xung trên 1 vòng quay của trục
chính động cơ
541.
542.
543.
543.1.1. Khối xử lý dữ liệu chính
(cid:0) Nhiệm vụ khối xử lý dữ liệu chính
544.
545. Sơ đồ 5. Sơ đồ khối xử lí dữ liệu chính
72
CHƯƠNG 5
546.
Trong sơ đồ khối của hệ thống điều khiển điện, khối xử lí dữ liệu được triển khai trên Board Jetson Nano, chức năng tương tự như bộ não của robot. Board này cho phép robot cảm nhận và tương tác với môi trường, xác định vị trí của robot so với người thông qua dữ liệu từ khối cảm biến (Camera Kinect V2). Dữ liệu này được sử dụng để điều khiển và hướng dẫn robot bằng cách tính toán và gửi lệnh vận tốc xuống STM32 thông qua giao tiếp UART.
547.
Để quản lý các luồng dữ liệu phức tạp, chạy đồng thời một cách linh hoạt và thuận tiện cho việc truyền nhận dữ liệu, cũng như cho phép lập trình bằng nhiều ngôn ngữ (Python, C++,...), nhóm đã áp dụng ROS (Robot Operating System) vào hệ thống.
548.
549.
550.
551.
552. Sơ đồ 5. Sơ đồ hệ thống các node
553. Nhiệm vụ và các bước thiết lập node xử lí ảnh và dẫn hướng cho robot (node
“process_image” và “data_processing”) sẽ được trình bày ở chương 6.
(cid:0) Board Jetson Nano
73
CHƯƠNG 5
554.
Jetson Nano Developer Kit là một máy tính nhỏ gọn và mạnh mẽ của NVIDIA được thiết kế để chạy nhiều mạng neural song song cho các ứng dụng như phân loại hình ảnh, phát hiện đối tượng, phân đoạn và xử lý giọng nói.
555.
Nó cũng có thể được sử dụng để phát triển các ứng dụng IoT và robot. Ngoài ra, Jetson Nano Developer Kit hỗ trợ nhiều framework máy học mã nguồn mở như TensorFlow, PyTorch, Caffe và MXNet.
556.
Bên cạnh đó, NVIDIA cung cấp các dự án mã nguồn mở cho Jetson Nano Developer Kit trên GitHub. Các dự án này bao gồm các ví dụ về phân loại hình ảnh, phát hiện đối tượng và xử lý giọng nói. Ngoài ra, NVIDIA cũng cung cấp các công cụ hữu ích như thư viện Python GPIO của Jetson Nano Developer Kit và nó tương thích với các cảm biến và phụ kiện thông dụng.
557.
558. Hình 5. Máy tính nhúng Jetson Nano Developer Kit [10]
558.1. Thiết lập bộ điều khiển PI cho động cơ
559.Cấu trúc bộ điều khiển PI điều khiển tốc độ động cơ được xây dựng như sơ đồ bên
dưới:
74
CHƯƠNG 5
560.
562. 561. Sơ đồ 5. Sơ đồ bộ điều khiển PI tốc độ động cơ Trong đó:
SP: tốc độ đặt hay tốc độ động cơ mong muốn
MV: điện áp cấp cho động cơ, cụ thể là giá trị PWM
PV: tốc độ thực tế của động cơ được tính từ giá trị encoder trả về
e = SP – PV: sai số giữa tốc độ mong muốn và tốc độ thực tế
(cid:0) Tìm hàm truyền tương đối của động cơ từ thực nghiệm
563.Động cơ được sử dụng là động cơ DC Servo 30W 600 (vòng/phút), có hộp giảm tốc với hệ số 19,2 , encoder 12ppr. Kiểm tra thực tế tốc độ lớn nhất của động cơ khoảng 611 (vòng/phút), encoder 12ppr
564. Công thức tính tốc độ động cơ ndc từ giá tị xung encoder:
565. (5.2)
566.
567. Trong đó:
T = 10ms là thời gian lấy mẫu, tức thời gian mỗi lần đọc giá trị xung encoder
ndc là tốc độ động cơ trong khoảng thời gian T
M là là số xung encoder trong khoảng thời gian T
ppr = 12 là số xung encoder mỗi vòng chưa qua hộp giảm tốc của động cơ
u = 19,2 là hệ số hộp giảm tốc
N = 4 là chế độ đọc encoder X4 (xét trạng thái cả hai kênh A,B của encoder)
75
CHƯƠNG 5
568.Các bước tìm được hàm truyền tương đối của động cơ bằng System Identification
Tool của Matlab:
569.Bước 1: Chuẩn bị dữ liệu đầu vào là bảng dữ liệu về sự thay đổi tốc độ của động cơ từ lúc bằng 0 đến lúc đạt được tốc độ lớn nhất ứng với điện áp 24.3VDC (nguồn tổ ong). Cấp điện áp 24.3 VDC (từ nguồn tổ ong) và tiến hành ghi nhận tốc độ động cơ thay đổi từ lúc bằng 0 cho đến lúc đạt được tốc độ lớn nhất với thời gian lấy mẫu T = 10ms. Dữ liệu thu thập khoảng 80 giá trị.
570.
571. Hình 5. Dữ liệu thu thập được về sự thay đổi tốc độ động cơ phải
572. Bước 2: Lưu dữ liệu thu thập được vào file excel và dùng công cụ System Identification Tool của Matlab để tìm hàm truyền tương đối. Nhập dữ liệu đo được từ file excel vào matlab:
(cid:0) Nhập cột điện áp bằng lệnh:
o u1 = xlsread('left_motor.xlsx',1,'B1:B80')
(cid:0) Nhập cột tốc độ bằng lệnh:
o y1 = xlsread('left_motor.xlsx',1,'A1:A80')
(cid:0)
Lưu 2 file dữ liệu vừa nhập vào matlab thành một file thống nhất bằng lệnh: save ident u1 y1
(cid:0) Mở giao diện System Identification Tool bằng lệnh: ident
76
CHƯƠNG 5
573.
574. Hình 5. Giao diện System Identification Tool
575. Nhập dữ liệu là sự thay đổi tốc độ động cơ
từ lúc bằng 0 đến khi đạt tốc độ lớn nhất:
576.
577. Hình 5. Dữ liệu đã được nhập vào System Identification Tool
578.Sau khi dữ liệu đã được nhập vào System Identification Tool, đồ thì dữ hiệu liệu đầu
vào là điện áp (volt) và đầu ra là tốc độ động cơ theo thời gian sẽ được biểu diễn bên dưới.
77
CHƯƠNG 5
579.
580. Hình 5. Đồ thì biểu diễn sự thay đổi tốc độ động cơ (RPM) ứng với điện áp
24.3VDC theo thời gian (s)
581.Chọn hàm truyền của động cơ phải (Right Motor) có dạng bậc nhất không trễ:
582.
583. Nhóm tìm được các thông số hàm truyền của động cơ phải:
584.
585. Hình 5. Các thông số hàm truyền tương đối động cơ phải tìm được
586. Hàm truyền động cơ trái có dạng:
587. Với:
588. K = 25,067
589. = 0,12721
590. Vậy hàm truyền tương đối của động cơ phải là:
78
CHƯƠNG 5
591. Tương tự tìm được hàm truyền động cơ trái là:
592.
593. Hình 5. Các thông số hàm truyền tương đối động cơ phải tìm được
(cid:0) Tìm thông số của bộ điều khiển PI (Kp, Ki) điều khiển tốc độ động cơ
594. Động cơ phải:
595.
597. 596. Sơ đồ 5. Sơ đồ khối bộ điều khiển PI tốc độ động cơ phải Động cơ trái:
598.
599. Sơ đồ 5. Sơ đồ khối bộ điều khiển PI tốc độ động cơ trái
600. Trong đó:
SP: tốc độ đặt
MV: điện áp điều khiển (PWM)
PV: tốc độ đo được sau mỗi thời gian lấy mẫu T = 10ms
79
CHƯƠNG 5
e(t) = SP – PV
601.Sử dụng Matlab và thử nghiệm với động cơ thực tế nhiều lần các giá trị Kp, Ki, tìm
được hai thông số của bộ điều khiển PI phù hợp nhất cho từng động cơ:
Thông số bộ điều khiển PI của động phải: 602.
603. Kp = 0.27
604. Ki = 3.243
605. Thông số bộ điều khiển PI của động cơ trái:
606. Kp = 0.232
607. Ki = 3.343
608.Với 2 thông số Kp và Ki như trên thì tốc độ của xe được chạy ổn định với dao động
khá nhỏ, thực nghiệm bộ điều khiển PI sẽ được trình bày ở chương 7.
80
CHƯƠNG 6
CHƯƠNG 6: XÂY DỰNG THUẬT TOÁN XỬ LÝ ẢNH
609.
609.1. Nhiệm vụ thuật toán:
(cid:0) Trong hệ thống, module xử lý ảnh có hai nhiệm vụ chính như sau:
610.
Định vị đối tượng mục tiêu: Tùy theo bài toán cụ thể, module này có thể được sử dụng cho cả global planning và local planning. Trong trường hợp global planning, nhiệm vụ của module là định vị và xác định tọa độ của đối tượng cần bám theo, dựa trên thông tin đã biết trước. Điều này cho phép điều khiển robot đến một vị trí cụ thể. Trong trường hợp local planning, module sẽ tập trung vào đối tượng gần phía trước của robot và cung cấp thông tin về đối tượng đó để định vị và đưa ra quyết định điều khiển phù hợp.
611.
Hỗ trợ điều hướng robot: Module này hỗ trợ quá trình điều hướng của robot bằng cách sử dụng dữ liệu từ quá trình phân tích hình ảnh từ camera, được gọi là visual odometry. Visual odometry giúp xác định vị trí của robot và giảm sai số tích luỹ từ wheel odometry (dựa trên encoder) trong thời gian dài. Ngoài ra, module cũng hỗ trợ định hướng robot để tránh vật cản và đi qua không gian hẹp khi robot đang bám theo đối tượng.
612. Trong hệ thống, thuật toán xử lý ảnh được chia thành hai node chính là
"process_image" và “data_processing
(cid:0) Đầu vào:
613. - Tín hiệu lấy từ camera.
- Trạng thái nút nhấn để ra lệnh cho module hoạt động.
(cid:0) Đầu ra có các thông số chính cho thuật toán điều khiển:
- Khoảng cách (đơn vị m)
- Góc (đơn vị độ) của robot so với người
81
CHƯƠNG 6
614.
615. Sơ đồ 6. Input và output của module xử lý ảnh
615.1. Thuật toán phát hiện người:
616.
Để giải quyết bài toán phát hiện vị trí người trong khung hình với yêu cầu về dung lượng nhẹ và tốc độ cao, nhóm đã quyết định sử dụng mô hình SSD Mobilenet-v2, được hỗ trợ bởi NVIDIA và đã được huấn luyện trước trên tập dữ liệu COCO. Mô hình này đã đạt được tốc độ thời gian thực (39 FPS) trên Jetson Nano với khả năng dự đoán 91 đối tượng.
617.
Nhóm đã lựa chọn mô hình pre-trained này để tiết kiệm thời gian huấn luyện lại. Trong bài toán nhận diện người, chỉ cần hiển thị các đối tượng được dự đoán là người. Để tránh nhiễu, nhóm chỉ chọn những đối tượng có độ chính xác dự đoán (confidence) trên ngưỡng 0.5.
618.
Sau khi load mô hình bằng thư viện Jetson Inference, nó sẽ tự động chuyển đổi mô hình từ định dạng PyTorch (.pth) sang TensorRT (.engine) để thực hiện quá trình inference
619. Hàm để tải mô hình được jetson-inference hỗ trợ là :
620. jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5)
621. Sau khi nhận ảnh từ node “process_img”, cần chuyển vị trí lưu trữ để xử lý
sang GPU nhằm tăng thêm tốc độ inference, sử dụng hàm:
622. jetson.utils.cudaFromNumpy()
622.1. Thiết lập node xử lý nhận diện người
(cid:0) Node này có tên là “process_img”, giao tiếp với các topic:
- “/color_image”: ảnh sau khi lấy từ camera và gửi dữ liệu vào node “process_image”.
623. Publish topics:
82
CHƯƠNG 6
“/is_clothes” : nhận diện màu sắc của áo -
“/distance”:khoảng cách giữa người và robot -
“/alpha”: góc giữa người so với robot. -
“/is_person”: thông số cho biết có người trong khung hình hay không -
624. Thiết cho thuật toán điều khiển (0 là không có, 1 là có)
is_person”: thông số cho biết có người trong khung hình hay không -
“/is_clothes” : thông số cho biết có áo trong khung hình hay không -
625.
626.
627. Sơ đồ 6. Input và output của node “process_img”
628.
83
CHƯƠNG 6
629.
630.1.1. 630. Sơ đồ 6. Sơ đồ khối của Node “process_img” Xử lý dữ liệu từ camera và tìm distance giữa người và robot
631. Vì camera được đặt thẳng đứng, lúc này trục x sẽ vuông góc với mặt phẳng
nền, suy ra trục x song song với vector pháp tuyến của mặt phẳng nền.
632.
633. Hình 6. Hệ trục tọa độ của camera [31]
84
CHƯƠNG 6
634. Node “process_image” có nhiệm vụ lấy dữ liệu trực tiếp từ camera bao gồm
ảnh depth và ảnh RGB.
635.
RGB được căn chỉnh vào cùng một khung hình có độ phân giải 524x 412 tương ứng chiều rộngvà dài. Vì camera được đặt thẳng đứng nên cần phải xoay khung hình một góc 90 độ cùng chiều kim đồng hồ để mô hình phát hiện người một cách chính xác hơn.
636.
637. Hình 6. Vị trí camera trên robot
85
CHƯƠNG 6
638.
639. Hình 6. Mô tả hình học phép chiếu 3D
640.
Đặt P (X, Y, Z) là một điểm point cloud trong kh
ông gian 3D. M (x, y) là một điểm trên ảnh RGB tươ ng ứng với P.
641.
u, v là tọa độ tương ứng của M (x, y) (mm).
642. a ảnh (pixel). d là khoảng cách đến P (m).
w, h là chiều rộng và chiều dài củ
643.
f là tiêu cự camera (mm).
645.Áp dụng tam giác đồng dạng, ta có:
646. =
644.
647. , là số pixel/mm
648. , là tiêu cự camera theo chiều ngang và dọc (pixel)
= => = => =
86
649. , là điểm tâm của mặt phẳng image(pixel)
x = . + X = (x-). (6.1)
650. Tương tự ta được :
CHƯƠNG 6
651.
=
x = . + Y = (y-). (6.2)
652.
Từ (6.1) và (6.2) suy ra được :
653.
=
654.
655.
= (6.3)
656.
657.
Áp dụng công thức khoảng cách một điểm đến góc tọa độ Oxyz, Khoảng cách
từ của điểm M trên ảnh RGB tương ứng với P trong không gian:
658.
= + +
659.
= + . + .
660.
= .(1+ + )
661.
= Z. (6.4)
662.
663. x = =
664. y = w - = (6.5)
Vì camera để xoay nên tọa độ trên ảnh gốc thay đổi theo công thức :
665.
, , , là tọa độ trong ảnh đã xoay
665.1.1. Xử lý dữ liệu để nhận dạng người và phân loại
666. Khối “Detection” : Như đã đề cập ở phần đầu sau khi lấy dữ liệu từ camera
được chuẩn hóa ta sử dụng hàm để tải mô hình được jetson-inference hỗ trợ là :
667. jetson.inference.detectNet("ssd-mobilenet-v2", threshold=0.5).
668.
Khối “Classifier ”: Lấy dữ liệu từ ảnh HSV sau khi được chuẩn hóa và sử dụng hàm cv2.findContours trong thư viện của opencv để phân loại màu sắc của áo nhằm phân loại đối tượng robot theo dõi khác biệt so với các đối tượng khác.
87
CHƯƠNG 6
669.
670. Sơ đồ 6. Sơ đồ khối của khối “Classifier” Giai đoạn I : Dùng để giới hạn màu sắc để phân loại đối tượng. 671.
Giai đoạn II : Dùng để xóa nhiễu và lọc các thông tin liên quan đến đối tượng 672.
cần nhận dạng.
673. Giai đoạn III : Dùng để tăng số lượng pixel chiều dọc và chiều ngang sau khi
lọc nhiễu có một phần bị mất đi.
674. Giai đoạn IV : Dùng đường viền để bao quang đối tượng cần nhận diện.
88
CHƯƠNG 6
674.1.1. Dùng dữ liệu đã được xác định để tìm alpha giữa robot và người
675.
676. Hình 6. Mô tả hình học phép chiếu 3D
(cid:0) Tính toán góc alpha giữa robot và người
677.
Dựa vào hình, để tính góc từ điểm P so với robot chiếu điểm P vuông góc với trục Y tạo thành điểm . Góc alpha được tạo bởi OP và O trong mặt phẳng Trong tam giác vuông :
α = sin = sin (6.6) 678.
Từ công thức (6.2) và (6.3) suy ra: 679.
α = sin (6.7) 680.
Vì ảnh tính toán trong phép chiếu là ảnh gốc, ảnh phát hiện người là ảnh đã 681.
xoay nên áp dụng công thức (6.5) ta được công thức tính góc alpha:
α = sin (6.8) 682.
683. Với x_r , y_r ở đây tương ứng với tọa độ tâm của boudingbox (pixel)
C_xr , C_yr là tọa độ tâm của khung hình (pixel) 684.
α là góc giữa người và robot ( độ ) 685.
89
CHƯƠNG 6
685.1. Thiết lập node “data_processing”
(cid:0) Node này giao tiếp với các topic như sau:
686. Subscribe topics:
“/distance”:khoảng cách giữa người và robot -
“/is_person”: thông số cho biết có người trong khung hình hay không -
“/alpha”: góc giữa người so với robot. -
“/is_clothes” : nhận diện màu sắc của áo -
687. Thiết cho thuật toán điều khiển (0 là không có, 1 là có).
“/is_clothes” : thông số cho biết có màu áo trong khung hình hay không -
“/is_person”: thông số cho biết có người trong khung hình hay không -
688. Publish topics:
“/vel_right”: tốc độ của bánh xe phải -
“/vel_left”: tốc độ của bánh xe trái -
689.
nhận được các dữ liệu
690. Sơ đồ 6. Input và output của node “data_processing” Nhiệm vụ chính của node này dùng để chuyển đổi dữ liệu thành vận tốc của 691. động cơ. từ các publisher Sau khi “/is_person”,“/is_clothes”,“/distance” và “/alpha” thì sẽ được ra các công thức được sử dụng trong node “data_processing” để biến đổi thành vận tốc và gửi giá trị cho động cơ của xe thông qua STM32. Detect_status bao gồm cả “/is_person”,“/is_clothes”.
691.1. Giải thuật dẫn hướng cho robot
692.
Robot sẽ di chuyển và duy trì khoảng cách với người là 1m. Khi người lệch 1 góc alpha so với xe thì xe sẽ chuyển động 1 cung cố định theo người. Khi mất người thì xe
90
CHƯƠNG 6
sẽ quay tại chỗ đến khi tìm thấy người sẽ tiếp tục bám theo. Với khoảng cách 1m là đủ để người dùng không phải bước quá dài tới xe và xe vẫn đủ khoảng cách để xử lý.
693.
694. Hình 6. Vị trí người so với robot
695.
91
CHƯƠNG 6
696.
697. Sơ đồ 6. Sơ đồ khối cho node “data_processing”
698. Trong đó:
Alpha: góc lệch giữa xe và người
d: là viết tắt của distance, là khoảng cách giữa xe và người
699. Phương pháp xe di chuyển như sau: người dùng sẽ nhấn nút nguồn để khởi
động máy và nhấn start để xe bắt đầu nhận dữ liệu và chạy. Xe sẽ dựa vào biến alpha và
distance để di chuyển theo bám theo người. Xe sẽ đi thẳng theo người với tốc độ tuyến tính
từ 0,3-0,7m/s thay đổi so với khoảng cách d dao động từ 1-3m, sau khi thực nghiệm nhiều
lần thì nhóm đã chọn được góc alpha phù hợp để xe đi thẳng là -10 o cung theo người khi alpha>10o và alpha<-10o với điều kiện khoảng cách nằm trong khoảng 1-3m. 700. Tốc độ động cơ phải: (rpm) (6.9) 701. Tốc độ động cơ trái: (rpm) (6.10) 92 CHƯƠNG 6 702. Xe sẽ cua 1 cung theo người khi alpha>10o và alpha<-10o với điều kiện khoảng cách nằm trong khoảng 1-3m. 703. Thay và từ công thức (4.45) và (4.46) vào công thức trên. Ta có được: 704. (6.11) 705. (6.12) 706. Từ hai công thức về tốc độ động cơ cho trường hợp xe cua một góc alpha thì sau khi thực nghiệm nhiều lần nhóm quyết định chọn góc cua sẽ luôn cố định và được tính toán với vận tốc =0,3 m/s và =0,2 rad/s. 707. Trường hợp người bị ra khỏi tầm nhìn của xe thì xe quay tại chỗ để tìm , nếu có vật cản che camera khi người đang đi thẳng trong góc -10o đến khi loại bỏ được vật cản thì đi tiếp. 708. Lựa chọn d<0,7m đã được đưa ra sau nhiều lần thực nghiệm, để xe có thể dừng tránh quay tại chỗ khi người bước tới xe để bỏ hàng lên xe. 709. 710. 93 CHƯƠNG 7 711.1. Kết quả gia công cơ khí 712. 713. Hình 7. Hình tấm đế giỏ hàng và tấm nắp vỏ 714. 715. Hình 7. Hình tấm đế 716. 94 CHƯƠNG 7 717. 718. Hình 7. Hình tổng quát của xe 719. 720. Hình 7. Xe khi hoạt động 95 CHƯƠNG 7 721. Các chi tiết đã được gia công và hoàn thiện đúng như thông số đã đề ra và đã
được lắp ráp lại như ở hình tổng quát ở trên. Giỏ hàng nhóm đã không đề cập đến nhiều do
là có thể hầu hết các giỏ hàng trên thị trường vào xe bằng cách khoan các lỗ nhỏ xuống dưới
đáy rổ. Các chi tiết khi được lắp ghép vẫn còn 1 chút không lệch nhau không đáng kể nên
nhìn chung xe đã hoàn thành được phần cứng đúng như đã thiết kê trong môi trường 3D 722. Bảng 7. Thông số của xe 723. Kích thước 724. 482x432x556 725. Thời gian hoạt động 726. 1 giờ 727. Khối lượng xe 728. 16kg 729. Tải hàng hoá tối đa 730. 20kg 731. 732. 733. 734. 734.1. Kết quả thực nghiệm bộ điều khiển PI điều khiển tốc độ động cơ 735. Với bộ điều khiển PI điều khiển tốc độ động cơ mà nhóm xây dựng được,
robot có thể chạy thẳng được với tốc độ hoạt động ổn định của robot 0.35 m/s tương đương
với tốc độ 92 rpm của động cơ . 736. Kết quả thực nghiệm với tốc độ setpoint khoảng 92rpm (~0,35m/s) không tải
hàng hoá (chỉ xét khối lượng robot 16Kg) của từng động cơ được biểu diễn như đồ thị bên
dưới: 96 CHƯƠNG 7 737. 738. Hình 7. Kết quả thực nghiệm bộ PI không tải từng động cơ 739. Theo biểu đồ trên có thể thấy độ vọt lố khoảng 30 rpm nhưng thời gian xác
lập là khoảng 1 giây thì khi thực nghiệm xe vẫn có thể chạy ổn định từ trạng thái đứng yên
sang trạng thái di chuyển. 740. Kết quả thực nghiệm với tốc độ setpoint khoảng 92rpm (~0,35m/s) có tải hàng hoá 10kg (khối lượng robot 16Kg) của từng động cơ được biểu diễn như đồ thị bên dưới: 97 CHƯƠNG 7 741. 743. 742. Hình 7. Kết quả thực nghiệm bộ PI có tải từng động cơ
Theo biểu đồ trên có thể thấy độ vọt lố và thời gian xác lập của xe khi có tải
bên ngoài đặt lên sẽ lớn hơn với không có tải nhưng với thời gian xác lập chỉ khoảng 1-2
giây nên vẫn có thể chấp nhận nhất là khi xe chuyển đổi từ trạng thái đứng yên sang chuyển
động thì khi thực nghiệm xe vẫn có thể chạy ổn định. 743.1. Kết quả việc thực nghiệm xử lý ảnh 744. Sau nhiều lần tính toán và xử lý dưới đây là kết quả của việc xử lý để nhận diện người mặc áo: 98 CHƯƠNG 7 745. 746. Hình 7. Hình chỉ nhận diện người 747. 748. 749. 750. 99 CHƯƠNG 7 751. 752. Hình 7. Xử lý nhận diện áo màu 753. 100 CHƯƠNG 7 754. 755. Hình 7. Trình xử lý nhận diện người mặc áo và có người khác 756. 757. Hình 7. Xử lý khi người cúi xuống lấy đồ 758. Sau khi sử dụng các thư viện và thuật toán xử lý ảnh khác nhau thì hình ở trên
là kết quả của quá trình xử lý ảnh. Xe chỉ nhận duy nhất người mặc áo màu , cũng như đưa
ra được 2 biến quan trọng cho quá trình xử lý dẫn hướng của xe đó là khoảng cách d và góc
lệnh alpha. 101 CHƯƠNG 7 759. Với tốc độ của người từ 0.7 - 1m/s khoảng cách giữa robot và người sẽ duy trì từ 1-1.2m để đảm bảo cho robot có thể nhìn rõ mọi hành vi chuyển động của người 760. 761. Hình 7. Thực nghiệm xe chạy thực tế 102 762. Nhóm đã đạt được các mục tiêu cơ bản trong phát triển robot. Đã xây dựng hệ
thống cơ khí, hệ thống điều khiển điện, ứng dụng AI và thuật toán xử lý ảnh để robot có khả
năng nhận diện và phân biệt người cần theo dõi nhờ màu sắc của áo, điều khiển quỹ đạo
chuyển động của robot bám theo người một cách ổn định. Robot phát hiện được vật cản
dừng lại và đưa ra được cảnh báo. Robot đã hoàn thiện với kích thước nhỏ gọn, tốc độ hoạt
động phù hợp với tốc độ di chuyển của người và trọng lượng tối đa sau nhiều lần thực
nghiệm thì nhóm đã chọn là 20kg tải chưa kể cân nặng của xe. Tuy nhiên, do điều kiện kinh
tế còn hạn chế nên chi phí để mua các linh kiện chính như camera và board Jetson mạnh
nhỏ gọn là khá cao. Nên nhóm đã phải sử dụng các linh kiện có giá cả hợp lý, điều này đã
ảnh hưởng đến công suất hoạt động của robot. Vì vậy đã làm giới hạn thời gian hoạt động
liên tục của robot và yêu cầu phải sạc pin thường xuyên. 763. Những hướng phát triển tiếp theo của nhóm bao gồm việc hoàn thiện, nâng
cấp hệ thống nhận diện, sử dụng các camera tiêu thụ năng lượng thấp, kích thước nhỏ gọn
hơn giúp tăng thời gian hoạt động liên tục và tính thẩm mỹ của robot. Nghiên cứu và phát
triển phần cơ khí của robot để tăng tính linh hoạt và thân thiện với người dùng. Việc cải
thiện phần cơ khí sẽ giúp robot di chuyển một cách mượt mà và hiệu quả hơn. Nghiên cứu
và phát triển thuật toán xử lý ảnh để robot có khả năng phân loại người dùng dựa trên 1 loại
áo có đặc điểm riêng biệt do nhóm tự thiết kế để tránh trùng lặp với người khác. Tích hợp
thêm cảm biến và xây dựng các thuật toán để cho phép robot có khả năng tránh vật cản, tự
động tìm đường về vị trí ban đầu và tự động sạc sau khi hoàn thành nhiệm vụ. Thêm tính
năng xác định vị trí của kệ hàng và thanh toán trực tiếp trên robot. 764. 765. 766. 767. 768. 769. 770. 771. 772. 773. 103 774. 775. 776. 777. Tiếng Việt 778. [1] Lê Đức Hạnh, Thị giác máy tính và ứng dụng trong robotics, NXB Đại Học Quốc Gia TP.HCM, Hồ Chí Minh, 2023 779. [2] TS.Nguyễn Hữu Lộc, Cơ sở thiết kế máy,NXB Đại Học Quốc Gia TP.HCM, Hồ Chí Minh, 2004 780. [3] Trịnh Chất - Lê Văn Uyển, Tính toán thiết kế hệ dẫn động cơ khí tập 1, NXB Giáo Dục, Hà Nội, 2004 781. [4] TS. Văn Hữu Thịnh, TS. Nguyễn Minh Kỳ, Thiết kế đồ án chi tiết máy, Nhà xuất bản Đại học Quốc gia TP. Hồ Chí Minh, Hồ Chí Minh, 2016 782. Nguồn Khác 783. 5elementrobotics, DASH Robotic Shopping Cart, [5]
https://5elementsrobotics.com/dash-robotic-shopping-cart/, 7/2023 784. 7segone , Phương pháp điều chế xung (PWM), [6]
https://7segone.blogspot.com/2014/11/phuong-phap-ieu-che-xung-pwm.html, 7/2023 785. Alberto Rizzoli, The Ultimate Guide to Object Detection, [7]
https://www.v7labs.com/blog/object-detection-guide, 7/2023 786. ArduCam, Point Cloud With Arducam ToF Camera – for Raspberry Pi, [8]
https://docs.arducam.com/Raspberry-Pi-Camera/Tof-camera/Point-Cloud-With-
Arducam-ToF-Camera/, 7/2023 787. azcom, Phân biệt encoder tương đối và encoder tuyệt đối, [9]
https://azcom.com.vn/blogs/tin-tuc-ky-thuat/phan-biet-encoder-tuong-doi-va-
encoder-tuyet-doi, 7/2023 788. developer nvidia, Jetson Nano Developer Kit, [10]
https://developer.nvidia.com/embedded/jetson-nano-developer-kit, 7/2023 104 789. dientutuonglai, mạch cầu h, https://dientutuonglai.com/mach-cau-h-mach-cau- [11]
h-la-gi.html, 7/2023 790. [12] Fllow Inspiration, WII GO RETAIL,
https://followinspiration.pt/index.php/pt/autonomous-robots/wii-go, 7/2023 791. [13] George Nott, Robot grocery delivery company Starship investigating toddler
‘hit and push’ incident, https://www.thegrocer.co.uk/technology-and-supply-chain/robot-grocery- 792.
delivery-company-starship-investigating-toddler-hit-and-push-
incident/666529.article, 7/2023 793. handsontec.com, 7A/160W Dual H-Bridge Motor Controller, [14]
https://www.handsontec.com/dataspecs/module/7A-160W%20motor%20control.pdf,
7/2023 794. [15] Nguyen Huy An, PersonFollowingRobot,
https://github.com/anhbantre/PersonFollowingRobot, 7/2023 795. [16] Nguyễn Thanh Tuấn, Deep learning cơ bản(2020),
https://drive.google.com/file/d/1lNjzISABdoc7SRq8tg-xkCRRZRABPCKi/view,
7/2023 796. [17] Phạm Đình Khánh, Các thuật toán Object Detection,
https://phamdinhkhanh.github.io/2019/09/29/OverviewObjectDetection.html, 7/2023 797. [18] Phạm Đình Khánh, Model SSD trong Object Detection,
https://phamdinhkhanh.github.io/2019/10/05/SSDModelObjectDetection.html,
7/2023 798. [19] Pudurobotics, BellaBot Premium delivery robot,
https://www.pudurobotics.com/product/detail/bellabot, 7/2023 799. [20] QUANTUM DEVICES, Incremental Rotary Encoders for Automated Guided
Vehicle (AGV) Control, https://www.quantumdev.com/incremental-rotary-encoders-for-automated- 800.
guided-vehicle agv-control/, 7/2023 801. [21] Robostore, Động cơ Planet 30w 600rpm encoder 12ppr trục 8mm,
https://robotstore.vn/dong-co-planet-24v-30w-600rpm-encoder-12ppr, 7/2023 802. [22] Robotnik, Smart shopping, https://robotnik.eu/products/customization/eli/, 7/2023 105 803. [23] SETH G. MACY , Microsoft Stops Producing Kinect V2 Sensors for
Windows, https://sea.ign.com/tech-1/88302/news/microsoft-stops-producing-kinect-
v2-sensors-for-windows, 7/2023 804. [24] StereoLabs, Meet ZED 2, https://www.stereolabs.com/zed-2/, 7/2023 805. [25] Techkd, Khoảng cách lối đi tiêu chuẩn giữa các kệ siêu thị, http://techkd.com/tin-tuc/tc-Khoang-cach-loi-di-tieu-chuan-giua-cac-ke-sieu- 806.
thi.html, 7/2023 807. [26] TouchDesigner, Kinect1, https://docs.derivative.ca/Kinect1, 7/2023 808. [27] TS.Võ Thanh Tân, Sắc màu, https://fas.hcmute.edu.vn/ArticleId/dcdd6899-4717-48b6-8cd5- 809.
0acdb1dace7c/sac-mau, 7/2023 810. [28] TullyFoote, Documentation, https://wiki.ros.org/, 7/2023 811. [29] Mlab, NVIDIA Jetson Nano Developer Kit, Small AI Computer,
https://pivietnam.com.vn/nvidia-jetson-nano-developer-kit-b01-upgrade-2-lanes-csi-
pivietnamcomhtml?
fbclid=IwAR3sv1no57edrDR9s1dy4MBfoLBFMVGCW1AN7rTTyMadXw71mPJap
quHkUI, 7/2023 812. [30] Ethan Trickey, What is Rolling Resistance, http://ffden-
2.phys.uaf.edu/webproj/212_spring_2017/Ethan_Trickey/Ethan_Trickey/1st
%20page.html, 7/2023 Jingshaojing, D435i coordinates, 813. [31]
https://github.com/IntelRealSense/librealsense/issues/8914, 4/2021. 814. 815. 106 816. 817. Bảng 1: Thông số bộ truyền đai răng thang [2] 818. 819. 820. 821. 822. 823. 824. 107 825. 826. Bảng 2: Phụ thuộc vào áp lực cho phép số vòng quay [2] 827. 828. 829. 830. Bảng 3: Chiều rộng bánh đai [3] 831. 832. Bảng 4: Trị số khối lượng 1 mét đai và lưc vòng riêng cho phép [3] 108 833. 109CHƯƠNG 7: THỰC NGHIỆM VÀ ĐÁNH GIÁ
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN PHÁT TRIỂN
TÀI LIỆU THAM KHẢO
PHỤ LỤC 1