1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng học sâu điều khiển robot robotino

93 3 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Học Sâu Điều Khiển Robot Robotino
Tác giả Nguyễn Thành Đạt, Đặng Thế Hiển
Người hướng dẫn TS. Nguyễn Mạnh Hùng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử - Viễn Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 93
Dung lượng 8,98 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (17)
    • 1.1. ĐẶT VẤN ĐỀ (17)
    • 1.2. MỤC TIÊU (18)
    • 1.3. NỘI DUNG NGHIÊN CỨU (18)
    • 1.4. GIỚI HẠN (19)
    • 1.5. BỐ CỤC (19)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (19)
    • 2.1. GIỚI THIỆU VỀ ROBOTINO (21)
      • 2.1.1. Robotino – Robot di động dành cho nghiên cứu và đào tạo (21)
      • 2.1.2. Phần cứng của Robotino (22)
      • 2.1.3. Phần mềm (27)
    • 2.2. NGÔN NGỮ LẬP TRÌNH PYTHON (28)
    • 2.3. DEEP LEARNING (29)
      • 2.3.1. Khái niệm về AI – Machine Learning – Deep Learing (29)
      • 2.3.2. Mạng Neural Network (32)
      • 2.3.3. Mạng Vgg16 (32)
    • 2.4. GIỚI THIỆU VỀ API (34)
      • 2.4.1. Khái niệm (34)
      • 2.4.2. Cách thức hoạt động (34)
    • 2.5. GIỚI THIỆU VỀ NGROK (35)
      • 2.5.1. Khái niệm (35)
      • 2.6.1. Phương pháp Maxpooling (36)
      • 2.6.2. Thuật toán Fully Connected (36)
  • CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ (19)
    • 3.1. GIỚI THIỆU (38)
    • 3.2. THIẾT KẾ HỆ THỐNG (38)
      • 3.2.1. Sơ đồ khối hệ thống phần cứng Robotino (38)
      • 3.2.2. Thiết kế phần cứng (40)
      • 3.2.3. Thiết kế phần mềm (41)
  • CHƯƠNG 4. THI CÔNG HỆ THỐNG (19)
    • 4.1. GIỚI THIỆU (49)
    • 4.2. TẠO ĐƯỜNG HẦM NGROK CHO ROBOTINO (49)
    • 4.3. QUÁ TRÌNH THU THẬP DỮ LIỆU (51)
      • 4.3.1. Quá trình thu thập dữ liệu (51)
      • 4.3.2. Kết quả thu thập dữ liệu (53)
    • 4.4. LẬP TRÌNH HỆ THỐNG - CÁC BƯỚC XÂY DỰNG MODEL (54)
      • 4.4.1. Tiền xử lý ảnh (54)
      • 4.4.2. Tạo Dataset (55)
      • 4.4.3. Tạo Data Loader (58)
      • 4.4.4. Xây dựng Neural Network (59)
      • 4.4.5. Định nghĩa hàm Loss (60)
      • 4.4.6. Định nghĩa thuật toán tối ưu hóa Optimizer (61)
      • 4.4.7. Đào tạo Model (61)
      • 4.4.8. Triển khai Model vào sử dụng trên Robotino (65)
    • 4.5. TÀI LIỆU HƯỚNG DẪN SỬ DỤNG VÀ THAO TÁC (68)
      • 4.5.1. Hướng dẫn sử dụng chương trình đào tạo Model (68)
      • 4.5.2. Hướng dẫn sử dụng chương trình cho Robotino tự hành (69)
  • CHƯƠNG 5. KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ (20)
    • 5.1. GIỚI THIỆU (71)
    • 5.2. KẾT QUẢ (71)
    • 5.3. NHẬN XÉT VÀ ĐÁNH GIÁ (85)
  • CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (86)
    • 6.1. KẾT LUẬN (86)
    • 6.2. HƯỚNG PHÁT TRIỂN (86)
  • TÀI LIỆU THAM KHẢO (87)
  • PHỤ LỤC (88)

Nội dung

TỔNG QUAN

ĐẶT VẤN ĐỀ

Hiện nay, sự phát triển nhanh chóng của khoa học và công nghệ đã làm cho việc áp dụng giải pháp tự động hóa trong sản xuất, vận hành và vận chuyển trở nên vô cùng quan trọng Đặc biệt trong các ngành công nghiệp hóa chất và khai thác dầu mỏ, việc sử dụng robot thay thế con người giúp giảm thiểu tai nạn lao động và bệnh nghề nghiệp, đồng thời giảm nguy cơ sức khỏe trong môi trường làm việc độc hại Trong bối cảnh dịch Covid-19, việc sử dụng robot đã trở thành giải pháp hiệu quả để hạn chế tiếp xúc giữa người với người, góp phần giảm thiểu sự lây lan của virus.

Việc lập trình Robotino tự hành theo đường đi đã định sẵn và có khả năng tránh vật cản mang lại nhiều lợi ích cho các lĩnh vực như xây dựng, y tế, công nghiệp, quân đội và giáo dục Trong xây dựng, robot có thể di chuyển vật liệu và thực hiện các tác vụ công trình Trong y tế, chúng hỗ trợ vận chuyển dụng cụ y tế Ứng dụng công nghệ vào điều khiển robot hứa hẹn cải thiện hiệu quả và năng suất trong nhiều ngành nghề khác nhau.

Sự bùng nổ của trí tuệ nhân tạo và xử lý ảnh đang thúc đẩy việc áp dụng công nghệ Deep Learning, giúp robot hoạt động hiệu quả hơn dựa trên dữ liệu từ môi trường Điều này không chỉ nâng cao độ chính xác của hệ thống mà còn giảm tải công việc và cải thiện hiệu suất làm việc của con người.

Ngày nay, ứng dụng robot, đặc biệt là Robotino, ngày càng phổ biến và được nghiên cứu sâu rộng Nhiều nghiên cứu đã được thực hiện gần đây, như Đồ Án Tốt Nghiệp của Trần Thanh Bảo và Trần Chí Việt vào năm 2022 với đề tài “Xây dựng Website giám sát và điều khiển Robotino” Đề tài này đã thiết kế một website cho phép điều khiển hướng đi, góc xoay của Robotino và sử dụng camera để quan sát, nhằm nâng cao khả năng theo dõi, giám sát và điều khiển từ xa.

Bài viết "Lập trình Robot Robotino thực hiện mô hình nhận dạng và vận chuyển thuốc trong khu cách ly bệnh truyền nhiễm" của Chung Thị Diệu Hiền và Phạm Thị Thanh Thư trình bày về việc phát triển một hệ thống robot tự động có khả năng nhận diện và vận chuyển thuốc trong các khu vực cách ly Mô hình này không chỉ giúp nâng cao hiệu quả trong việc cung cấp thuốc mà còn góp phần giảm thiểu rủi ro lây nhiễm trong môi trường bệnh truyền nhiễm.

Robot đóng vai trò quan trọng trong các ứng dụng thực tế, mang lại nhiều lợi ích cho nhân viên y tế và bệnh nhân, đồng thời tăng cường tính an toàn bằng cách hạn chế tiếp xúc thông qua việc sử dụng Robotino Đề tài này có tiềm năng phát triển mạnh mẽ trong tương lai Tuy nhiên, việc điều khiển Robotino vẫn gặp nhiều khó khăn do cảm biến dò line, bao gồm sự cố gián đoạn kết nối, độ chính xác thấp trong môi trường nhiễu, cũng như tình trạng đường line bị mờ hoặc đứt, gây trở ngại cho việc điều khiển robot di chuyển hiệu quả.

Dựa trên các nghiên cứu trước đây và những thách thức trong điều khiển robot, nhóm nghiên cứu đã quyết định triển khai đề tài này.

Ứng dụng công nghệ học sâu (Deep Learning) trong việc điều khiển robot Robotino sẽ được nghiên cứu nhằm giúp robot tự hành theo lộ trình đã được xác định trong tập dữ liệu Robotino sẽ sử dụng dữ liệu từ camera và các cảm biến để nhận diện và tránh vật cản, nâng cao khả năng hoạt động độc lập của nó.

MỤC TIÊU

Mục tiêu chính của đề tài là ứng dụng công nghệ Deep Learning để phát triển giải pháp AI, giúp Robotino tự hành và né tránh vật cản Giải pháp này có thể được áp dụng trong các ứng dụng robot vận chuyển hàng hóa trong kho bãi.

NỘI DUNG NGHIÊN CỨU

Trong quá trình thực hiện Đồ án tốt nghiệp với đề tài “Ứng dụng học sâu điều khiển robot Robotino” nhóm tập trung giải quyết những nội dung sau:

- Nghiên cứu, tìm hiểu nguyên lý hoạt động các cảm biến, camera và hệ thống lái của Robotino

- Tìm hiểu về Deep Learning, PyTorch,

- Tìm hiểu về ngrok và Webinterface (website điều khiển Robotino)

- Dùng ngrok tạo một đường hầm kết nối điều khiển từ máy tính cá nhân đến Webinterface (website điều khiển Robotino)

- Áp dụng lập trình API với Python để tương tác với Robotino

- Xây dựng mã nguồn (source code) để điều khiển, thu thập và xử lý dữ liệu

- Xây dựng một cơ sở dữ liệu để phục vụ việc huấn luyện Robotino

- Thiết kế một Deep Learning Model (mô hình học sâu) để giúp Robotino tự hành

- Đào tạo ra một Deep Learning Model tốt nhất

- Thiết kế chương trình, mã nguồn (source code) để triển khai Model

- Chạy thử nghiệm hệ thống, đánh giá và hiệu chỉnh

- Viết báo cáo luận văn

- Bảo vệ đề tài tốt nghiệp.

GIỚI HẠN

Một số giới hạn của đề tài như sau:

Đường line xuất hiện trong đề tài chỉ là biểu hiện cho lộ trình di chuyển của Robotino, nhấn mạnh rằng mục tiêu chính không phải là phát triển Robot dò line.

Đề tài không tập trung vào tốc độ, vì việc giao tiếp giữa Server (Model) và Robotino thông qua API sẽ bị ảnh hưởng bởi tốc độ internet hiện có.

- Robotino không thể hoạt động ở điều kiện thời tiết khắc nghiệt như mưa, bão,…

BỐ CỤC

Chương 1: Tổng Quan Đặt vấn đề, dẫn nhập lý do chọn đề tài, mục tiêu và những giới hạn của đề tài, các nội dung nghiên cứu để hoàn thành đề tài và bố cục của đồ án.

CƠ SỞ LÝ THUYẾT

GIỚI THIỆU VỀ ROBOTINO

2.1.1 Robotino – Robot di động dành cho nghiên cứu và đào tạo

Robotino 4.0, được giới thiệu bởi Festo Didactic vào năm 2019, là hệ thống robot tự động tiên tiến thay thế phiên bản 3.0 ra mắt năm 2014 Nó tích hợp đầy đủ cảm biến, cơ cấu chấp hành và giao diện điều khiển trên web, đáp ứng nhu cầu của khách hàng về một hệ thống robot hiện đại Hệ thống này phù hợp cho việc giảng dạy các chủ đề cơ bản về cơ điện tử và công nghệ thông tin, đồng thời có thể được sử dụng trong các ứng dụng nâng cao trong lĩnh vực robot tự hành.

Robotino có thể được điều khiển thông qua các phần mềm do nhà sản xuất cung cấp, bao gồm Robotino View, Robotino Factory và Webinterface Việc vận hành Robotino trở nên dễ dàng và hiệu quả nhờ vào những công cụ này.

Robotino có khả năng tương tác với các nền tảng phần mềm hỗ trợ như LabVIEW, MATLAB và REST-API Trong luận văn này, việc điều khiển Robotino và các hoạt động của nó chủ yếu được thực hiện thông qua giao diện web, sử dụng API, ngrok và ngôn ngữ lập trình Python.

Bảng 2.1 Thông số kỹ thuật cơ bản Robotino 4.0

STT Thông số Giá trị

1 Vi điều khiển Intel i5 8th generation

2 Hệ điều hành Linux Ubuntu 18.04 LTS

8 Khối lượng (có gắn pin và camera) 22.8kg

2.1.2.1 Bộ xử lý trung tâm

Bộ xử lý trung tâm là một hệ thống máy tính công nghiệp tiêu chuẩn, được trang bị bộ vi xử lý Intel Core i5 thế hệ thứ 8, mang lại hiệu suất mạnh mẽ cho Robotino Với cấu hình này, Robotino thực hiện mọi tác vụ một cách mượt mà, linh hoạt, giảm độ trễ và tiết kiệm năng lượng hiệu quả.

Hình 2-2 Vị trí lắp đặt bộ xử lý trung tâm của Robotino (màu đỏ)

2.1.2.2 Cảm biến quang GP2Y0A41SK0F

GP2Y0A41SK0F là một loại cảm biến khoảng cách hồng ngoại sản xuất bởi Sharp vào năm 2001

Hình 2-3 Cảm biến GP2Y0A41SK0F

Robotino 4.0 được trang bị 9 cảm biến xung quanh đế, mỗi cảm biến cách nhau 40 độ, với cảm biến đầu tiên nằm ở vị trí 0 độ Khoảng cách đo chính xác của các cảm biến này nằm trong khoảng từ 40mm đến 400mm.

Các cảm biến này cung cấp giá trị điện áp tính theo vôn, với ngõ ra analog có độ lớn phụ thuộc vào khoảng cách từ cảm biến đến vật thể.

Hình 2-4 Bố trí các cảm biến GP2Y0A41SK0F ở đến của Robotino

Camera Intel RealSense D435 là một sản phẩm độc đáo của Intel, được mô tả là “hệ thống độ sâu thị giác” Thiết bị này không chỉ đơn thuần là một webcam cung cấp hình ảnh trực tiếp, mà còn tích hợp máy chiếu hồng ngoại và hai bộ tạo ảnh hồng ngoại, cho phép ghi lại độ sâu cho từng pixel Công nghệ này mang lại nhiều lợi ích trong việc xử lý ảnh, ứng dụng thực tế ảo, học sâu và trí tuệ nhân tạo.

Hình 2-5 Camera RGBD Intel Realsense D345

Một số tính năng nổi bật của camera RGBD Intel Realsense D345:

+ Thế hệ thứ 2 của công nghệ Stereo Depth Camera System

The Intel® RealSense™ Vision Processor D4, now in its second generation, offers advanced algorithms that enhance processing speed while also improving energy efficiency.

+ Ảnh RGB chất lượng Full HD

Bảng 2.2 Thông số kỹ thuật của camera RGBD Intel Realsense D345

STT Thông số Giá trị

1 Vi điều khiển Intel® RealSense™ Vision

2 Độ phân giải (RGB) 1920x1280 (Full HD)

3 Độ phân giải (Độ sâu) 1280x720 (HD)

4 Tốc độ khung hình (RGB) 30 FPS

5 Tốc độ khung hình (Độ sâu) 90 FPS

7 Khoảng cách Từ 0.2 đến 10m (điều kiện ánh sáng tốt)

9 Hỗ trợ Hệ điều hành Ubuntu 16.xx

Hệ thống lái của Robotino rất độc đáo với 3 bánh xe Omnidrive đặc biệt, mỗi bánh xe được trang bị động cơ riêng và bộ mã hóa gia tăng để điều chỉnh tốc độ Nhờ vào thiết kế này, Robotino có khả năng di chuyển linh hoạt trong mọi hướng.

Bố trí bánh xe Omnidrive có ảnh hưởng quan trọng đến chuyển động của Robotino, vì điểm đặt tốc độ của động cơ sẽ trực tiếp quyết định cách mà các bánh xe điều hướng robot.

Bảng 2.3 Mối liên hệ giữa hướng di chuyển và điểm đặt tốc độ động cơ

Hướng di chuyển Động cơ 1 Động cơ 2 Động cơ 3

Xoay vòng tại chỗ (thuận chiều kim đồng hồ) + + +

2Xoay vòng tại chỗ (thuận chiều kim đồng hồ) - - -

Di chuyển hướng 0 o (đi thẳng) - 0 +

Di chuyển hướng 180 o (đi lùi) + 0 - Đi vuông góc sang trái - + - Đi vuông gốc sang phải + - +

Về kết nối có dây, Robotino 4.0 cung cấp một khả năng kết nối khá tốt Theo

Hình 2-7, từ trái sang phải là 1 cổng ethernet, 2 cổng USB 2.0, 3 cổng USB 3.0 và 1 cổng HDMI

Hình 2-7 Các cổng kết nối của Robotino

Robotino 4.0 hỗ trợ kết nối không dây thông qua Bluetooth 4.0 Tuy nhiên, một hạn chế là Robotino không thể tự động kết nối Wifi; nó cần một module mạng WLAN đi kèm hoặc sử dụng D-COM 4G để thiết lập kết nối.

Hình 2-8 Một pin “hot-swap”

Robotino được trang bị hai pin “hot-swap” dễ dàng tháo lắp để sạc và sử dụng Mỗi pin “hot-swap” chứa bốn pin sạc li-ion hiệu suất cao, cung cấp nguồn điện 18V DC cho Robotino và cho phép sử dụng liên tục lên đến 5 giờ.

Như Bảng 2.1 đã đề cập, Robotino 4.0 được trang bị sẵn hệ đều hành Linux

Ubuntu 18.04 LTS (64-bit) Phiên bản hệ điều hành này được tối giản và dành riêng cho Robotino, kết hợp với CPU Intel core I5 thế hệ thứ 8 mạnh mẽ, giúp Robotino có thể thực hiện các tác vụ chuyên sâu được mượt mà và hoàn hảo

2.1.3.2 Webinterface – Website điều khiển Robotino

Robotino Webinterface là một nền tảng được phát triển bởi Festo Didactic, cho phép người dùng điều khiển, quản lý, cấu hình và bảo trì robot một cách hiệu quả Để truy cập vào Webinterface, người dùng có thể sử dụng ngrok để thiết lập một đường hầm kết nối từ máy tính cá nhân đến Webinterface, với địa chỉ IP là 192.168.0.1.

Khi được kết nối với internet, Robotino tự động truyền tải toàn bộ thông tin từ cảm biến, camera và cơ cấu chấp hành lên Webinterface tại mục IO/Control Hệ thống sẽ thu thập dữ liệu từ cảm biến và camera của Robotino để sử dụng qua Webinterface.

Hình 2-9 Mục IO của Webinerface

NGÔN NGỮ LẬP TRÌNH PYTHON

Trước khi khám phá về Deep Learning, điều quan trọng là tìm hiểu về Python, vì nó đóng vai trò quan trọng trong việc phát triển và ứng dụng các mô hình Deep Learning.

Trong luận văn này, nhóm nghiên cứu chủ yếu sử dụng ngôn ngữ lập trình Python để điều khiển, thu thập và xử lý dữ liệu Python cũng được áp dụng để thiết kế mô hình Deep Learning cho hệ thống Vậy tại sao nhóm lại chọn Python thay vì ngôn ngữ lập trình khác?

Ra mắt vào năm 1991, Python hiện đang ở phiên bản 3.11.2 và được đánh giá là ngôn ngữ lập trình “đáng yêu” nhất thế giới vào năm 2021, đứng thứ 3 về độ phổ biến chỉ sau Java và JavaScript Python nổi bật với tính dễ học, dễ nhớ và khả năng ứng dụng cao, cùng với quản lý bộ nhớ hiệu quả Hơn nữa, Python có khả năng tương tác tốt với nhiều ngôn ngữ lập trình khác.

Python là một ngôn ngữ lập trình phổ biến với khả năng xử lý nhiều loại file khác nhau, được ứng dụng rộng rãi trong các lĩnh vực dữ liệu, tầm nhìn máy và trí tuệ nhân tạo Tuy nhiên, điểm yếu của Python là tốc độ thực thi chậm hơn so với các ngôn ngữ biên dịch, tốn nhiều tài nguyên và có tính bảo mật không cao, khiến việc bảo vệ mã nguồn trở nên khó khăn Do đó, Python ít được ưa chuộng trong các ứng dụng lập trình nhúng và giao diện người dùng (UI).

DEEP LEARNING

Trong luận văn “Ứng dụng học sâu điều khiển robot Robotino”, hai nhân vật chính được đề cập là Robotino và công nghệ Học sâu (Deep Learning).

Về Robotino thì đề tài đã giới thiệu ở phần 2.1, cho nên ở phần này bọn em sẽ đi sâu vào phân tích về Deep Learning

2.3.1 Khái niệm về AI – Machine Learning – Deep Learing

Hình 2-11 AI vs Machine Learning vs Deep Learning

Artificial Intelligence (AI) encompasses a broad range of technologies, including Machine Learning (ML) and Deep Learning (DL) Notably, Deep Learning is a subset of Machine Learning, as illustrated in the accompanying diagram.

Trí thông minh nhân tạo (AI) là một công nghệ tiên tiến giúp truyền tải dữ liệu, thông tin và trí tuệ con người vào máy tính, nhằm mục đích phát triển và cải thiện khả năng tự động hóa trong nhiều lĩnh vực.

14 cỗ máy có khả năng suy nghĩ và hành động giống như con người, có thể bắt chước hành vi của chúng ta Những cỗ máy này thực hiện nhiệm vụ thông qua việc học hỏi và giải quyết vấn đề, mở ra nhiều cơ hội mới trong lĩnh vực công nghệ và trí tuệ nhân tạo.

Một số loại AI thường thấy như Reactive Machine, Limited Memory, Theory of Mind và Self-Awareness

Trí thông minh nhân tạo thường được ứng dụng trong các lĩnh vực như phát triển xe tự lái, robot, trợ lý ảo,

Học máy (Machine Learning - ML) là một lĩnh vực trong khoa học máy tính, sử dụng các thuật toán và phân tích dữ liệu để phát triển các mô hình dự đoán nhằm giải quyết những vấn đề cụ thể.

Machine Learning sử dụng một lượng lớn dữ liệu để học hỏi và đưa ra dự đoán về tương lai Quá trình này diễn ra thông qua việc áp dụng nhiều thuật toán và kỹ thuật khác nhau nhằm tối ưu hóa khả năng phân tích và nhận diện mẫu trong dữ liệu.

Hình 2-12 Cách máy học tập từ dữ liệu

Một số loại Machine Learning thường gặp như Supervised Learning (học có giám sát), Unsupervised Learning (học không giám sát), Reinforcement Learning (học tăng cường),

Machine Learning được ứng dụng rộng rãi trong các lĩnh vực doanh nghiệp và kinh doanh, với những ứng dụng nổi bật như dự báo doanh số bán hàng cho nhiều sản phẩm khác nhau, hệ thống khuyến nghị sản phẩm và dự đoán giá cổ phiếu.

Học sâu (Deep Learning - DL) là một nhánh của Machine Learning, sử dụng các thuật toán được phát triển dựa trên cấu trúc và chức năng của não bộ con người.

Các thuật toán Deep Learning có khả năng xử lý lượng lớn dữ liệu, không phân biệt giữa dữ liệu có cấu trúc và phi cấu trúc Tại trung tâm của Deep Learning là mạng lưới thần kinh nhân tạo, cho phép máy móc đưa ra quyết định tương tự như con người Sự khác biệt giữa Deep Learning và Machine Learning nằm ở cách tiếp cận dữ liệu; trong khi Machine Learning yêu cầu dữ liệu phải có cấu trúc nhất định, Deep Learning hoạt động dựa trên nhiều lớp Neural Network.

Hình 2-13 Cấu trúc cơ bản của mạng Neural Network

Mỗi Neural Network bao gồm một lớp ngõ vào và một lớp ngõ ra, trong khi số lượng lớp ẩn có thể thay đổi tùy thuộc vào sự lựa chọn của người phát triển.

Deep Learning hoạt động theo cách như sau:

Dữ liệu ban đầu được đưa vào lớp ngõ vào và sẽ được xử lý qua các lớp ẩn như mạng tích chập và mạng tuyến tính Những thuật toán chuyên biệt kết hợp với các hàm đặc trưng như activation và softmax giúp máy móc phân tích và hiểu dữ liệu một cách hiệu quả.

“khám phá” ra được những đặt trưng (feature) của dữ liệu ngõ vào và tiến hành dự đoán ở lớp ngõ ra

+ Lớp ngõ ra sau đó sẽ được so sánh với ngõ ra thực tế và dựa trên các thông số Loss để xem xét độ hiểu quả của Model

Mô hình sẽ sử dụng phương pháp lan truyền ngược để nâng cao hiệu suất, nhằm đạt được thông số Loss thấp nhất sau khi hoàn tất quá trình đào tạo.

Deep Learning, mặc dù là một phần của AI và Machine Learning, đã chứng tỏ sự ảnh hưởng mạnh mẽ trong cuộc sống hàng ngày Nó được ứng dụng rộng rãi trong các lĩnh vực như Y tế với khả năng phát hiện tế bào ung thư, tạo chú thích cho hình ảnh thông qua Captionbot, nhận diện âm nhạc, và phát hiện đối tượng trong hình ảnh.

Mạng Neural Network là một cấu trúc quan trọng trong kỹ thuật Deep Learning, đóng vai trò chủ đạo trong việc xử lý và phân tích dữ liệu Các lớp của mạng Neural Network giúp mô phỏng cách thức hoạt động của não bộ con người, từ đó cải thiện khả năng học tập và nhận diện mẫu của hệ thống.

Mạng Neural Network, hay còn gọi là Mạng Neural nhân tạo (Artificial Neural Networks - ANN) và Mạng Neural mô phỏng (Simulated Neural Networks - SNN), là một phần quan trọng của Machine Learning và là nền tảng của các thuật toán Deep Learning Cấu trúc và tên gọi của chúng được lấy cảm hứng từ bộ não con người, mô phỏng cách mà các tế bào thần kinh sinh học giao tiếp và truyền tín hiệu với nhau.

GIỚI THIỆU VỀ API

API, hay Giao diện lập trình ứng dụng, là cơ chế cho phép hai phần mềm giao tiếp thông qua các định nghĩa và giao thức cụ thể Ví dụ, hệ thống phần mềm của cục thời tiết lưu trữ dữ liệu thời tiết, và ứng dụng dự báo thời tiết trên điện thoại hoặc máy tính sẽ sử dụng API để truy cập và hiển thị thông tin thời tiết cho người dùng.

Kiến trúc API thường được xây dựng theo mô hình client-server, trong đó ứng dụng gửi yêu cầu được gọi là máy khách và ứng dụng gửi phản hồi được gọi là máy chủ.

API có 4 cách hoạt động khác nhau, nó đựa dựa trên thời điểm API được tạo ra và mục đích hoạt động của API

API SOAP là một loại API cho phép giao tiếp giữa client và server thông qua XML Mặc dù từng rất phổ biến, API này hiện nay ít linh hoạt hơn và được coi là lỗi thời.

API RPC, hay gọi là Cuộc Gọi Thủ Tục Từ Xa, cho phép client thực hiện các chức năng mong muốn trực tiếp trên server, sau đó server sẽ gửi kết quả trở lại cho client.

API Websocket là một loại API web hiện đại, sử dụng JSON để truyền dữ liệu và hỗ trợ giao tiếp hai chiều giữa client và server Điểm nổi bật của API WebSocket là khả năng cho phép server gửi tin nhắn trực tiếp đến client đã kết nối, mang lại hiệu quả cao hơn so với REST API.

REST API là một trong những loại API phổ biến và linh hoạt nhất hiện nay Client gửi yêu cầu đến server dưới dạng dữ liệu, và server sẽ sử dụng thông tin này để kích hoạt các chức năng bên trong, sau đó trả dữ liệu đầu ra về cho client.

TÍNH TOÁN VÀ THIẾT KẾ

GIỚI THIỆU

Bài viết này sẽ chi tiết hóa sơ đồ khối hệ thống và ý tưởng thiết kế phần mềm nhằm giải quyết các vấn đề kỹ thuật cần thiết để xây dựng mô hình Deep Learning cho việc điều khiển Robotino Các yêu cầu bao gồm việc thu thập dữ liệu từ cảm biến và camera, xử lý dữ liệu để tạo ra cơ sở dữ liệu phục vụ cho việc đào tạo mô hình, thiết kế kiến trúc các Neural Network cho mô hình, cũng như lựa chọn các thuật toán phù hợp cho quá trình đào tạo mô hình.

THI CÔNG HỆ THỐNG

GIỚI THIỆU

Đồ án “Ứng dụng học sâu điều khiển robot Robotino” tập trung vào việc phát triển một mô hình học sâu nhằm giúp Robotino tự hành Công việc chính bao gồm thiết kế, đào tạo và kiểm định độ thông minh của mô hình Chương này sẽ trình bày các vấn đề liên quan đến phần mềm, bao gồm lập trình để đào tạo mô hình học sâu, triển khai mô hình đã được đào tạo lên Robotino và viết hướng dẫn sử dụng.

TẠO ĐƯỜNG HẦM NGROK CHO ROBOTINO

Trong nghiên cứu và phát triển hệ thống điều khiển Robotino từ xa, việc thiết lập kết nối an toàn giữa máy tính và Robotino là rất quan trọng Nhóm sẽ trình bày quá trình tạo đường hầm kết nối từ PC đến Robotino thông qua ngrok, công cụ mạnh mẽ cho việc tạo đường hầm giữa localhost và internet Ngrok cho phép người dùng truy cập localhost qua custom domain, tạo ra một kết nối công khai và an toàn qua mạng Internet.

Bước 1: Truy cập và đăng nhập vào trang chủ ngrok dashboard.ngrok.com Bước 2: Truy cập vào mục Getting Started -> Your Authtoken

Hình 4-1 Authtoken ngrok của nhóm

Bước 3: Sau khi đã có Authtoken, tiến hành gõ lệnh ngrok authtoken

vào Terminal của Robotino với Authtoken là Authtoken của bạn trên ngrok

Bước 4: Tạo subdomain (Lưu ý: bước này chỉ có thể thực hiện với các phiên bản ngrok nâng cấp)

+ Truy cập vào mục Cloud Edge -> Domains Chọn Create Domain

Hình 4-2 Mục Domain của ngrok

Nhập Domain tương ứng với URL mà bạn sẽ sử dụng vào ô Domain và điền mô tả vào ô Description (mô tả này không bắt buộc) trong hộp thoại New Domain Sau đó, nhấn Continue để hoàn tất việc tạo Subdomain.

Hình 4-3 Hộp thoại New Domain

Hình 4-4 Thông tin chi tiết về subdomain vừa tạo

Bước 5: Chạy lệnh ngrok http subdomain= 80 trên Terminal của

Robotino với Subdomain là Domain vừa được tạo ở trên (Lưu ý: nếu bạn sử dụng phiên bản miễn phí, hãy nhập: ngrok http 80 )

Hình 4-5 Thông tin về đường hầm ngrok vừa tạo

QUÁ TRÌNH THU THẬP DỮ LIỆU

4.3.1 Quá trình thu thập dữ liệu

(File location: /OOP_source/main.py)

Quá trình thu thập dữ liệu từ Robotino nhằm tạo ra tệp dữ liệu cho huấn luyện được thực hiện qua việc đọc tín hiệu từ cảm biến và camera Các tín hiệu này được gửi về máy chủ thông qua API và Webinterface, cho phép người dùng quan sát thông tin và gửi lệnh điều khiển Robotino di chuyển "mẫu".

Dữ liệu về hình ảnh, giá trị cảm biến và hướng di chuyển của Robotino sẽ được lưu trữ trong một tệp dữ liệu riêng biệt Mỗi lần Robotino di chuyển, dữ liệu mới sẽ được cập nhật vào tệp này, tạo ra một bộ dữ liệu đồng bộ và chính xác.

Trong quá trình thu thập dữ liệu, nhóm đã thiết lập một quy trình hiệu quả nhằm nâng cao khả năng học tập của mô hình trong quá trình huấn luyện Quy trình này được thiết kế để đảm bảo bộ dữ liệu giúp mô hình "suy nghĩ giống con người" một cách tối ưu.

Hình 4-6 cho thấy dữ liệu cảm biến và hình ảnh khi Robotino di chuyển thẳng Khi quan sát, đường đi nằm trong tầm nhìn của camera và các giá trị cảm biến ổn định ở mức 0.41, cho thấy không có vật cản nào.

Robotino sẽ di chuyển thẳng khi cảm biến phát hiện 36 cản trong phạm vi hoạt động Nếu đường đi lệch khỏi khung hình camera, Robotino sẽ tự động xoay phải hoặc trái để điều chỉnh lại hướng đi vào khung hình.

Robotino sẽ tiếp tục di chuyển thẳng cho đến khi gặp khúc cua, lúc này cần chủ động xoay và di chuyển để đảm bảo đường đi luôn nằm trong tầm quan sát của camera Việc này giúp Model hoạt động theo logic của con người Chúng ta xác định hướng xoay tiếp theo để Robotino nhận diện đường line từ hình ảnh camera và gửi liên tục các lệnh điều khiển để vượt qua khúc cua Các lệnh này bao gồm tổ hợp các hướng đi thẳng và xoay (trái hoặc phải), tiếp tục di chuyển cho đến khi trở lại đường thẳng.

Hình 4-7 Dữ liệu cảm biến và ảnh khi Robotino rẽ Trường hợp 3

Khi Robotino gặp vật cản trong quá trình di chuyển, nhóm đã đưa ra một phương pháp di chuyển để tránh vật cản và quay trở lại đường đi

Khi cảm biến 1 hoặc 2 của Robotino phát hiện tín hiệu từ vật cản, Robotino sẽ thực hiện hành động xoay phải Quá trình xoay phải sẽ tiếp tục cho đến khi cả hai cảm biến không còn nhận tín hiệu từ vật cản, lúc này Robotino sẽ trở về trạng thái bình thường và camera sẽ không còn nhìn thấy đường đi.

Hình 4-8 Dữ liệu cảm biến và ảnh khi Robotino gặp vật cản

Sau khi Robotino thực hiện xoay phải và cảm biến 1 cùng 2 trở lại trạng thái bình thường, cảm biến 3 hoặc 4 sẽ bắt đầu nhận tín hiệu từ vật cản Robotino sẽ di chuyển thẳng cho đến khi cảm biến 3 và 4 không còn bị ảnh hưởng bởi vật cản nữa.

Hình 4-9 Dữ liệu cảm biến và ảnh khi Robotino đang né vật cản

Robotino sẽ dừng lại và thực hiện hành động xoay trái cho đến khi cảm biến 3 hoặc 4 nhận được tín hiệu từ vật cản Sau khi vượt qua vật cản, khi cảm biến 3 và 4 không còn nhận tín hiệu, Robotino sẽ xoay trái và quay trở lại theo đường đi ban đầu.

4.3.2 Kết quả thu thập dữ liệu

Bảng 4.1 Số mẫu trong tập dữ liệu

Số mẫu dữ liệu Số mẫu dữ liệu cho các hướng đi Đi thẳng Xoay phải Xoay trái

Sau khi hoàn tất quá trình thu thập dữ liệu, nhóm đã thu được tổng cộng 4738 mẫu, trong đó có 3615 mẫu đi thẳng, 549 mẫu rẽ trái và 574 mẫu rẽ phải Những số liệu này sẽ hỗ trợ trong việc xác định các tham số và trọng số khi đào tạo mô hình.

Các mẫu dữ liệu sẽ được lưu trũ vào một file csv với mỗi mẫu dữ lệu là một dòng có các cột tương ứng:

+ Cột 0: thời gian mẫu dữ liệu được thu thập

+ Cột 1 đến cột 9: giá trị của các cảm biến

+ Cột 10 đến cột 12: hướng đi thẳng/trái/phải

+ Cột 13: dữ liệu hình ảnh đã được chuyển đổi về string

Hình 4-10 Các mẫu trong file csv

LẬP TRÌNH HỆ THỐNG - CÁC BƯỚC XÂY DỰNG MODEL

(File location: /Training_Deep_Learning_Model/trainingModel.py)

Trong quá trình xây dựng mô hình Deep Learning, tiền xử lý dữ liệu ảnh là bước thiết yếu để chuẩn bị dữ liệu cho huấn luyện Việc tiền xử lý không chỉ giúp cải thiện hiệu suất mà còn nâng cao độ chính xác của mô hình Đoạn mã trong Hình 4-10 dưới đây minh họa cách thực hiện các phép biến đổi dữ liệu ảnh trước khi đưa vào đào tạo Nhóm đã sử dụng hàm transforms từ thư viện torchvision để thực hiện các biến đổi cần thiết cho dữ liệu.

Nhóm đã xác định biến “data_transforms” để lưu trữ các phép biến đổi dữ liệu ảnh cho từng loại dữ liệu, bao gồm tập đào tạo (train), tập thẩm định (val) và tập kiểm định (verification).

Hình 4-11 Quá trình tiền xử lý ảnh

Dữ liệu ảnh được điều chỉnh kích thước bằng phép biến đổi transforms.Resize() để đảm bảo phù hợp với kích thước đầu vào Sau đó, dữ liệu được chuyển đổi thành tensor thông qua transforms.ToTensor(), bước quan trọng để sử dụng trong các mạng Neural Network của PyTorch, vì cả đầu vào và đầu ra đều ở dạng tensor Cuối cùng, dữ liệu được chuẩn hóa bằng transforms.Normalize(), giúp đưa các giá trị về khoảng thích hợp để huấn luyện mô hình hiệu quả hơn Trong đoạn code này, nhóm đã sử dụng các giá trị trung bình và độ lệch chuẩn của tập dữ liệu ImageNet để thực hiện việc chuẩn hóa.

(File location: /Training_Deep_Learning_Model/myDataset.py)

Trong ứng dụng Deep Learning, việc tạo Dataset là bước quan trọng không thể thiếu, giúp cung cấp dữ liệu ngõ vào chính xác cho mô hình học và phân loại đối tượng Quá trình này không chỉ giúp mô hình hoạt động hiệu quả hơn mà còn giúp người dùng hiểu rõ hơn về dữ liệu và phát hiện các đặc trưng quan trọng cần thiết cho việc đào tạo Mục này sẽ giải thích chi tiết về cách tạo Dataset mà nhóm sử dụng để đào tạo Model.

Trong bài viết này, chúng tôi đã định nghĩa một lớp CustomDataset bằng cách kế thừa lớp Dataset từ thư viện torch Lớp này có chức năng đọc dữ liệu từ các file csv và chuyển đổi chúng thành dữ liệu để sử dụng cho quá trình đào tạo, thẩm định và kiểm định.

init trong lớp CustomDataset được sử dụng để khởi tạo đối tượng

Hình 4-12 Khởi tạo Class CustomDataset và phương thức init

Khởi tạo dataset yêu cầu các thông số đầu vào như data_dir (thư mục chứa dữ liệu), phase (giai đoạn của tập dữ liệu có thể là “train”, “val” hoặc “verification”), và transform (thuộc tính biến đổi dữ liệu hình ảnh).

Tiếp theo, phương thức len trong lớp CustomDataset được sử dụng để trả về số lượng mẫu dữ liệu trong tập dữ liệu

Hình 4-13 Phuong thức len trả về số lượng mẫu của tập dữ liệu

Trong phương thức len , chúng ta mở file CSV chứa dữ liệu bằng hàm open trong Python, với tham số là đường dẫn đến tập dữ liệu Tiếp theo, sử dụng thư viện csv để đọc file CSV thông qua hàm csv.reader() Dữ liệu được lưu từng dòng vào biến data dưới dạng danh sách Cuối cùng, phương thức này đếm và trả về số lượng mẫu dữ liệu có trong tập dữ liệu.

Việc xác định số lượng mẫu trong tập dữ liệu là yếu tố quan trọng để đánh giá hiệu quả của mô hình học sâu Chỉ số Accuracy của mô hình được tính dựa trên tỷ lệ giữa số dự đoán đúng và tổng số mẫu trong tập dữ liệu.

Cuối cùng, phương thức getitem là phương thức chính của lớp

CustomDataset Nó được sử dụng để tải và trả về các mẫu từ tập dữ liệu vào mô hình

Mở các tập dữ liệu tại địa chỉ đã cung cấp và đọc dữ liệu Sử dụng giá trị của idx để lấy ra dòng dữ liệu tương ứng từ 0 đến len () Phương thức này sẽ đọc tập dữ liệu được chỉ định bởi self.location, lấy dòng thứ idx trong tập dữ liệu và ánh xạ qua các cột tương ứng để lấy dữ liệu.

+ Cột 0: là thời gian dữ liệu được thu thập (cột này không sử dụng trong Model) + Cột 1 đến 9: giá trị của các cảm biến

+ Cột 10 đến 12: các hướng đi lúc dữ liệu được lấy, di chuyển theo hướng nào, giá trị cột đó sẽ là 1

+ Cột 13: dữ liệu ảnh được chuyển về kiểu string

Sau khi lấy các dữ liệu thì sẽ thực hiện các phép biến đổi tương ứng và trả về: + image_transformed: dữ liệu ảnh

+ sensor_data: dữ liệu từ các cảm biến (chuyển về dạng tensor và đã được chuẩn hóa)

+ label: label tương ứng với hương đi, 0 là đi thẳng, 1 là rẽ trái, 2 là rẽ phải

Sau khi tạo Class CustomDataset, chúng ta sẽ sử dụng nó bằng cách khai báo các đối tượng tệp dữ liệu tương ứng cho "train", "val" và "verification", kèm theo đường dẫn, kiểu transform và phase Điều này sẽ hỗ trợ việc đưa dữ liệu vào Data Loader và tải dữ liệu để huấn luyện Model.

Hình 4-15 Khai báo các đối tượng tập dữ liệu

Khi đã có Dataset, việc sử dụng Data Loader là không thể thiếu Data Loader đóng vai trò quan trọng trong việc quản lý cách thức tải dữ liệu để đào tạo mô hình Nó cho phép người dùng dễ dàng tùy chỉnh các tham số phù hợp với nhu cầu khác nhau trong quá trình huấn luyện.

Hình 4-16 Khởi tạo Data Loader

Trong đoạn mã này, nhóm đã áp dụng class DataLoader từ thư viện torch để tạo ra các bộ dữ liệu cho train, validation và verification, sử dụng các đối tượng tập dữ liệu đã được khai báo trước đó cùng với các tham số thích hợp.

Batch size giúp đảm bảo mỗi lần lấy mẫu từ tập dữ liệu trả về một mini-batch với kích thước cố định Data Loader sẽ tải từng bộ dữ liệu đơn lẻ trong quá trình huấn luyện, từ đó tiết kiệm bộ nhớ và nâng cao hiệu suất huấn luyện.

Shuffle là một phương pháp quan trọng để xóa trộn dữ liệu trong quá trình sử dụng Khi sử dụng Shuffle = True, các mẫu dữ liệu sẽ được trộn ngẫu nhiên, giúp giảm thiểu ảnh hưởng của thứ tự mẫu đến quá trình huấn luyện Điều này không chỉ đảm bảo rằng mô hình học được từ các mẫu đa dạng hơn mà còn giúp tránh tình trạng overfitting, cải thiện hiệu suất của mô hình.

Cuối cùng, nhóm đã định nghĩa một dictionary cho các Data Loader bao gồm

Trong quá trình huấn luyện mô hình, từ điển chứa các thông tin về "train", "val" và "verification" sẽ được tạo ra và sử dụng Điều này cho phép truy cập dễ dàng đến Data Loader của từng tập dữ liệu trong suốt quá trình đào tạo và kiểm tra.

(File location: /Training_Deep_Learning_Model/allNetwork.py)

Các mạng Neural Network sẽ được xây dựng dựa theo kiến trúc đã thiết kế ở chương 3 Bao gồm mạng LINEAR NETWORK, VGG16 và CONCATENATE NETWORK

KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ

GIỚI THIỆU

Chương này trình bày và đánh giá các kết quả đạt được trong quá trình nghiên cứu và thực hiện đề tài, bao gồm kết quả đào tạo mô hình Deep Learning và các thử nghiệm trên Robotino Sau khi trình bày kết quả, chương sẽ đưa ra nhận xét và đánh giá tổng quan về đề tài.

KẾT QUẢ

5.2.1 Kết quả đào tạo Model

Bảng 5.1 Kết quả đào tạo Deep Leaning Model

Epoch Train loss Validate loss Train accuracy

Bảng 5.1 trình bày quá trình đào tạo mô hình cho Robotino nhận diện đường đi, sử dụng tập dữ liệu train và val do nhóm tự thu thập Vì đây là dữ liệu đặc biệt, không dựa vào tập ImageNet, nên kết quả đào tạo không đạt được những con số tối ưu nhất trong thời gian nghiên cứu ngắn hạn cho khóa luận.

Theo Bảng 5.1, giá trị Loss giảm dần qua từng epoch trong cả giai đoạn đào tạo và xác nhận, trong khi giá trị Acc tăng lên Tuy nhiên, đến epoch thứ

Từ epoch 26 trở đi, mô hình dường như không còn khả năng học thêm và có thể đã đạt đến điểm cực tiểu của hàm Loss, dẫn đến việc các giá trị Loss và Accuracy không còn thay đổi Điều này có thể được tổng hợp qua sự chuyển động của các giá trị trong Hình 5-1 và Hình 5-2.

Hình 5-1 Giá trị Train Loss và Validate Loss

Hình 5-2 Giá trị Train Accuracy và Validate Accuracy

Quá trình học tập của mô hình, như thể hiện trong Hình 5-1 và 5-2, cho thấy sự tích cực rõ ràng với giá trị Loss liên tục giảm và giá trị Acc liên tục tăng Điều này chứng tỏ rằng mô hình đang hoạt động hiệu quả, với các chỉ số Loss và Acc đều nằm trong mức tốt cho một mô hình Deep Learning.

5.2.2 Testing Để các kết quả test mang tính khách quan và chính xác nhất có thể, đề tài đã thiết lập một hệ thống các Testcase (bài kiểm tra) và các Requirement để có thể đánh giá chính xác về khả năng hoạt động của hệ thống

Các Requirement sẽ có tên, nội dung và các testcase dùng để test tương ứng được trình bày ở bảng bên dưới

GIÁ TRỊ TRAIN LOSS VÀ VALIDATE LOSS

Bảng 5.2 Danh sách Requirement STT Tên Requirement Nội dung Requirement

1 Req-01 Robotino nhận diện và di chuyển theo đường đi

2 Req-02 Không di chuyển lệch khỏi đường đi

3 Req-03 Rẽ theo các góc cua, không rẽ lung tung

Nếu có 2 đường đi trở lên, luôn rẽ vào đường có góc rẽ nhỏ hơn

Ví dụ: giữa đi thẳng và rẽ 90 độ, chọn rẽ 90 độ

5 Req-05 Nếu có 3 đường đi trở lên, luôn ưu tiên rẽ phải

6 Req-06 Đối với vật cản đã được đào tạo có trong tập

+ Né và không chạm vật cản + Quay lại được đường đi

7 Req-07 Đối với vật cản không được đào tạo có trong tập

+ Né và không chạm vật cản + Quay lại được đường đi

8 Req-08 Đối với vật cản đặt ở góc cua của đường đi: + Né và không chạm vật cản

+ Quay lại được đường đi

9 Req-09 Tốc độ của Robotino đạt từ 4-7cm/s Khi di chuyển không xảy ra tình trạng nghẽn mạng

Bảng 5.3 Danh sách các Testcase

STT Tên Testcase Nội dung Requirement

- Không có vật cản và đi thuận chiều kim đồng hồ

- Không có vật cản và đi thuận chiều nghịch đồng hồ

- Đặt các loại vật cản có trong tập dữ liệu đào tạo

- Đặt các loại vật cản không có trong tập dữ liệu đào tạo

- Không có vật cản, đường đi rẽ 2 nhánh

- Thực hiện 20 lần cho 2 đoạn rẽ khác nhau

- Không có vật cản, đường đi rẽ 3 nhánh

- Vật cản nằm ở góc cua của đường đi

- Giảm dần thời gian delay (sleep) sau mỗi lần gửi lệnh yêu cầu Robotino di chuyển từ

Lưu ý: Nhóm cam kết không sử dụng các tuyến đường đã được sử dụng để thu thập dữ liệu cho việc thực hiện các testcase, nhằm đảm bảo độ chính xác và tính minh bạch trong quá trình kiểm tra.

5.2.2.1 Testcase 01 - Không có vật cản, đi thuận chiều kim đồng hồ

Bảng 5.4 Mục đích và bố trí của Testcase 01

Mục đích Bố trí Đánh giá chính xác khả năng nhận diện đường đi, khả năng rẽ ở các khúc cua của Model

Không sử dụng bất kì vật cản nào, Robotino đi theo chiều kim đồng hồ

Số lần thực hiện Kết quả

Tỉ lệ đi thẳng Tỉ lệ rẽ cua

Kết luận: Sau khi thực hiện Testcase 01, Robotino cho thấy khả năng di chuyển thẳng và rẽ cua một cách chính xác, tương tự như hành động của con người, mà không gặp phải sai sót nào Robotino duy trì đúng lộ trình và đạt 100% trong việc nhận diện khúc cua.

5.2.2.2 Testcase 02 - Không có vật cản, đi nghịch chiều kim đồng hồ

Bảng 5.6 Mục đích và bố trí của Testcase 02

Mục đích Bố trí Đánh giá chính xác tính linh hoạt, khả năng nhận diện đường đi, khả năng rẽ ở các khúc cua của Model

Không sử dụng bất kì vật cản nào, Robotino đi nghịch chiều kim đồng hồ

Số lần thực hiện Kết quả

Tỉ lệ đi thẳng Tỉ lệ rẽ cua

Kết luận: Sau khi hoàn thành Testcase 02, nhóm tự hào về khả năng của Robotino trong việc di chuyển thẳng và rẽ cua chính xác như con người Không có sai sót nào xảy ra, Robotino giữ vững đường đi và đạt 100% trong việc nhận diện khúc cua.

5.2.2.3 Testcase 03 - Thêm các loại vật cản có trong tập dữ liệu đào tạo

Bảng 5.8 Mục đích và bố trí của Testcase 03

Mục đích của testcase là đánh giá chính xác khả năng nhận diện vật cản, di chuyển né tránh vật cản và quay trở lại đường đi của mô hình.

Sử dụng hai tủ chuyên dụng kích thước khoảng 45x50cm làm vật cản trên đường đi, những vật cản này đã được thu thập dữ liệu trong quá trình đào tạo mô hình.

Số lần thực hiện Vật cản

Tỉ lệ vượt qua vật cản

Tỉ lệ quay lại đường đi

Tỉ lệ né sang phải vật cản

Kết luận: Sau khi hoàn thành Testcase 03, thu được kết quả như sau:

Trong 20 vòng di chuyển, Robotino đã nhận diện vật cản một cách xuất sắc, chỉ có một lần va chạm và một lần dừng lại, đạt tỷ lệ vượt qua 90%.

Robotino đã vượt qua 63 vật cản, với khả năng quay lại đường đi rất tốt Chỉ có 2 lần Robotino bị mất phương hướng sau khi vượt qua vật cản, dẫn đến việc không quay về được đường đi, chiếm tỷ lệ 10% trong tổng số 20 lần thử nghiệm.

Robotino có khả năng nhận diện vật cản 2 một cách xuất sắc Trong tổng số 20 lần gặp vật cản 2, Robotino đã nhận diện chính xác tất cả 20 lần Sau khi nhận diện, Robotino có thể di chuyển qua vật cản 2 và quay trở lại lộ trình ban đầu một cách mượt mà, không gặp bất kỳ lỗi nào.

5.2.2.4 Testcase 04- Thêm các vật cản không có trong tập dữ liệu đào tạo

Bảng 5.10 Mục đích và bố trí của Testcase 04

Mục đích của Testcase Bố trí Testcase

Kiểm tra khả năng thích ứng của

Model đối với các ngoại lệ (những loại vật cản mới)

Sử dụng các vật cản mới chưa được thu thập dữ liệu cũng như chưa dùng để đào tạo Model

+ Vật cản 3 là tổ hợp ghép 4 tủ chuyên dụng (kích thước lớn hơn 60x60cm)

+ Vật cản 4 là bình chữa cháy (kích thước nhỏ hơn 40x40cm)

Số lần thực hiện Vật cản

Tỉ lệ vượt qua vật cản

Tỉ lệ quay lại đường đi

Tỉ lệ né sang phải vật cản

Kết luận: Sau khi thực hiện Testcase 04, thu được kết quả như sau:

Robotino đã gây bất ngờ cho nhóm khi chỉ có 4 lần không vượt qua được vật cản, đạt tỷ lệ thành công 80% Trong những lần không vượt qua, Robotino đứng im và xoay qua xoay lại, giống như con người bị mất phương hướng Sau khi vượt qua vật cản, Robotino chỉ có khả năng quay lại đường đi 15 lần, tương đương với tỷ lệ 75%.

Robotino có khả năng nhận diện vật cản rất tốt, với 20 lần thử nghiệm, nó đã va chạm với vật cản 4 lần (25%) và đứng yên 1 lần Trong số đó, Robotino thành công trong việc đi qua vật cản 15 lần và quay trở lại đường đi đúng 13 lần (65%).

5.2.2.5 Testcase 05 – Không có vật cản, đường đi rẽ 2 nhánh

Bảng 5.12 Mục đích và bố trí của Testcase 05

Mục đích của Testcase Bố trí Testcase

NHẬN XÉT VÀ ĐÁNH GIÁ

Đầu tiên, về khả năng đào tạo Model, kết quả của đào tạo được thể hiện ở Bảng

Hình 5-1 và 5-2 thể hiện rõ sự tin cậy của kết quả đào tạo, mặc dù các con số chưa đạt mức tối ưu nhất Tuy nhiên, chúng vẫn nằm trong khoảng chấp nhận được về hiệu suất và mức độ thông minh của mô hình Deep Learning.

Model hoạt động hiệu quả trong việc di chuyển trên đường không có vật cản, với khả năng rẽ mượt mà ở các khúc cua và chọn đường đi chính xác theo yêu cầu Ngoài ra, model còn đạt tốc độ yêu cầu và không gặp tình trạng nghẽn mạng khi thời gian delay lớn hơn 0.2 giây.

Model cho thấy khả năng né vật cản rất tốt, có thể nhận diện và hoạt động với các vật cản ở vị trí bình thường, bao gồm cả những vật cản có kích thước lớn hoặc nhỏ hơn Tuy nhiên, Robotino vẫn gặp phải một số sai sót, dẫn đến việc đâm vào vật cản hoặc mất phương hướng, đặc biệt là khi vật cản nằm ở góc rẽ Nguyên nhân có thể do quá trình thu thập dữ liệu chưa đầy đủ, khi mà người thu thập dữ liệu không chú ý đến các trường hợp này và chỉ tập trung vào giá trị của các cảm biến; Model chỉ xử lý hình ảnh và tìm đường đi khi các giá trị cảm biến không còn.

Đề tài này đánh dấu một bước tiến quan trọng của nhóm trong việc phát triển mô hình Deep Learning cho Robotino, giúp robot có khả năng tự hành Tuy nhiên, khả năng né vật cản của Robotino vẫn chưa ổn định, đặc biệt khi gặp các vật cản lạ hoặc ở vị trí khó Nguyên nhân có thể là do lượng dữ liệu trong các tệp đào tạo chưa đủ phong phú, cùng với sự xung đột giữa dữ liệu ảnh và dữ liệu cảm biến, cũng như kiểu dữ liệu mang tính đặc trưng cao.

Ngày đăng: 08/12/2023, 15:31

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

TÀI LIỆU LIÊN QUAN

w