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

Đồ án ứng dụng học sâu điều khiển robot robotino

92 5 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 Tp. 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 92
Dung lượng 6,08 MB

Cấu trúc

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

Nội dung

TỔNG QUAN

ĐẶT VẤN ĐỀ

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

Chính vì thế, việc lập trình để giúp Robotino tự hành theo đường đi được định sẵn, đồng thời có khả năng tránh vật cản sẽ mang lại rất nhiều lợi ích trong nhiều lĩnh vực khác nhau Chẳng hạn, trong lĩnh vực xây dựng, robot có thể được sử dụng để di chuyển các vật liệu xây dựng và tiến hành các tác vụ trong công trình Trong lĩnh vực y tế, robot có thể được sử dụng để vận chuyển các vật dụng y tế Ngoài ra, việc ứng dụng công nghệ vào điều khiển robot cũng sẽ mang lại nhiều lợi ích cho các lĩnh vực công nghiệp, quân đội và đặc biệt là công tác nghiên cứu và giáo dục.

Cùng với sự bùng nổ về trí tuệ nhân tạo và xử lý ảnh, việc áp dụng công nghệ Deep Learning – Học sâu sẽ giúp cho robot hoạt động dựa trên dữ liệu thu thập được từ môi trường, từ đó giúp nâng cao tính hiệu quả và độ chính xác của hệ thống Đồng thời, việc này giúp giảm tải công việc và nâng cao hiệu suất làm việc của con người.

Có thể thấy ngày nay các ứng dụng về robot nói chung và Robotino nói riêng đang trở nên phổ biến và được nghiên cứu rộng rãi Đã có một số nghiên cứu được thực hiện trong những năm gần đây, cụ thể như những Đồ Án Tốt Nghiệp đã được nghiên cứu và thực hiện vào năm 2022, Trần Thanh Bảo và Trần Chí Việt với đề tài: “Xây dựng Website giám sát và điều khiển Robotino” [1], đề tài đã thiết kế ra một Website dùng để điều khiển các hướng đi, góc xoay của Robotino và sử dụng camera để quan sát, giúp thuận lợi cho việc theo dõi, giám sát và điều khiển từ xa Cũng trong năm 2022, đề tài: “Lập trình RobotRobotino 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” [2] của Chung Thị Diệu Hiền và Phạm Thị Thanh Thư đã cho ta thấy được tầm quan trọng của robot trong các ứng dụng thực tế, đề tài mang lại rất nhiều lợi ích cho các nhân viên y tế và cả các bệnh nhân, góp phần hạn chế tiếp xúc để tăng tính an toàn cho mọi người thông qua việc sử dụng Robotino Đây là một đề tài rất có tiềm năng để phát triển trong tương lai Thế nhưng, trong thực tế việc điều khiển Robotino vẫn còn gặp nhiều khó khăn và hạn chế do việc sử dụng cảm biến dò line vẫn tồn tại một số vấn đề như sự cố gián đoạn kết nối, độ chính xác thấp trong môi trường có nhiều nhiễu, độ mờ của đường line hoặc đường line bị đứt, gây ra khó khăn trong việc điều khiển robot di chuyển trên đường đi.

Với việc lấy cảm hứng từ những nghiên cứu trước đó cũng như vấn đề còn tồn động trong việc điều khiển robot, nhóm đã quyết định nghiên cứu và triển khai đề tài:

“Ứng dụng học sâu điều khiển robot Robotino” Đề tài sẽ tập trung nghiên cứu về việc áp dụng công nghệ Deep Learning để giúp robot tự hành trên kiểu đường đi được định sẵn trong tập dữ liệu và tránh vật cản dựa vào dữ liệu từ camera và các cảm biến của Robotino [3].

MỤC TIÊU

Mục tiêu chính của đề tài là sẽ ứng dụng công nghệ Deep Learning để cung cấp một giải pháp AI giúp cho Robotino có thể tự hành, né vật cản Có thể sử dụng được trong các ứng dụng Robot vận chuyển hàng hóa 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

- 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

- Á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.

- Đà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:

- Việc đường line xuất hiện trong đề tài chỉ là một cách thể hiện đường đi của Robotino, nhấn mạnh rằng mục tiêu của đề tài không phải là tạo ra Robot dò line.

- Đề tài không chú trọng vào tốc độ, do Server (Model) và Robotino đang giao tiếp thông qua API nên sẽ bị ảnh hưởng bởi giới hạn của tốc độ internet.

-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

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

- 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.

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

- Việc đường line xuất hiện trong đề tài chỉ là một cách thể hiện đường đi của Robotino, nhấn mạnh rằng mục tiêu của đề tài không phải là tạo ra Robot dò line.

- Đề tài không chú trọng vào tốc độ, do Server (Model) và Robotino đang giao tiếp thông qua API nên sẽ bị ảnh hưởng bởi giới hạn của tốc độ internet.

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

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.

Chương 2: Cơ Sở Lý Thuyết

Giới thiệt về Robotino, trình bày những kiến thức cơ bản về Deep Learning, Python, API, ngrok, Giới thiệu về các thuật toán và các phương pháp được sử dụng. Cung cấp các kiến thức lý thuyết cần thiết để hiểu rõ hơn về cách thức hoạt động của Robotino trong đề tài.

Chương 3: Tính Toán Và Thiết Kế

Trình bày chi tiết việc tính toán và thiết kế toàn bộ hệ thống từ phần cứng đến phần mềm Trình bày các sơ đồ khối của hệ thống, mô hình thiết kế cho từng khối, nguyên lý hoạt động.

Chương 4: Thi Công Hệ Thống

Trình bày chi tiết các lưu đồ giải thuật và lập trình đều khiển Robotino thu thập dữ liệu, xây dựng một Deep Learning Model, đào tạo Model và áp dụng Model vào thực tế Thể hiện quy trình thực hiện một dự án AI – Deep Learning.

Viết tài liệu hướng dẫn sử dụng hệ thống.

Chương 5: Kết Quả - Nhận Xét - Đánh Giá

Trình bày kết quả đạt được thông qua các bài kiểm tra, thử nghiệm, xác minh, để đưa ra những nhận xét và đánh giá hiệu suất, độ chính xác và tính ổn định của hệ thống, những vấn đề còn tồn đọng trong suốt quá trình nghiên cứu và triển khai hệ thống.

Chương 6: Kết Luận - Hướng Phát Triển Đưa ra các kết luận cũng như đề xuất các hướng phát triển của đề tài.

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

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

Festo Robotino 4.0 hay Robotino 4.0 là một hệ thống robot tự động được giới thiệu bởi Festo Didactic (Đức) vào năm 2019 để thay thế cho phiên bản 3.0 trước đó (ra mắt năm 2014) Nó được cung cấp đầy đủ các cảm biến, cơ cấu chấp hành và giao diện Website điều khiển - Webinterface (nằm trên server của nhà sản xuất) mà khách hàng mong chờ về một thứ gọi là hệ thống robot hiện đại “Hệ thống robot của chúng tôi phù hợp cho cả việc giảng dạy các chủ đề cơ bản về cơ điện tử và công nghệ thông tin, cũng như để sử dụng trong các ứng dụng nâng cao trong lĩnh vực Robot tự hành.” [3].

Robotino có thể được điều hành bởi các phần mềm mà nhà sản xuất cung cấp theo bao gồm Robotino View, Robotino Factory và Webinterface Ngoài ra, việc vận hành Robotino cũng có thể thông qua các nền tảng phần mềm được hỗ trợ khác nhưLabVIEW Programming, MATLAB, REST-API, Trong luận văn này, việc điều khiển và tương tác với Robotino cũng như mọi hoạt động của nó được chủ yếu thông qua Webinterface nhờ vào việc 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 (PC) công nghiệp tiêu chuẩn, cấu hình mạnh mẽ cùng với bộ vi xử lý Intel core i5 thế hệ thứ 8 giúp việc hoạt động của Robotino trên mọi tác vụ đều mượt mà và linh hoạt, độ trễ thấp và tiết kiệm năng lượng.

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

Trên Robotino 4.0, có tổng cộng 9 cảm biến được trang bị xung quanh đế của

Robotino, mỗi cảm biến cách nhau 40 o (cảm biến 1 đặt ở vị trí 0 o ) và khoảng cách mà cảm biến có thể đo đạt chính xác là trong khoảng từ 40mm đến 400mm.

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

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

Camera Intel Realsense D435 là dòng camera được sản xuất bởi Intel Nó không đơn thuần chỉ là camera, nó được Intel gọi là một “hệ thống độ sâu thị giác” Bởi vì một mặt, nó có một webcam thông thường có chức năng cung cấp hình ảnh trực tiếp. Mặt còn lại, nó có một máy chiếu hồng ngoại và 2 bộ tạo ảnh hồng ngoại, ghi lại độ sâu cho từng pixel trong ảnh Điều này vô cùng tiện lợi trong việc xử lý độ sâu của ảnh trong các lĩnh vực xử lý ảnh, thực tế ảo, học sâu hay 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.

+Vi điều khiển Intel® RealSense™ Vision Processor D4 thế hệ thứ 2 cũng cung cấp những thuật toán mới cho một tốc độ xử lý tốt hơn và tiết kiệm điện năng + Ả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 cực kì đặc biệt, nó được trang bị 3 bánh xe Omnidrive đặt biệt, mỗi bánh xe sẽ có một động cơ truyền động riêng biệt cũng như một bộ mã hóa gia tăng để điều chỉnh tốc độ các bánh xe Nhờ vào các bánh xe đặc biệt này, Robotino có thể di chuyển mọi hướng.

DEEP LEARNING

Như tiêu đề của luận văn – “Ứng dụng học sâu điều khiển robot Robotino”, trong đề tài này chúng ta sẽ có 2 nhân vật chính đó là Robotino và 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 – Trí thông minh nhân tạo), là một tập hợp rộng lớn mà theo đó, Machine Learning (ML – Học máy) và Deep Learning (DL – Học sâu) được ra đời Và như chúng ta cũng có thể thấy ở Hình 2-11, Deep Learning cũng là một tập hợp con của Machine Learning.

Artificial Intelligence - AI - Trí thông minh nhân tạo, là một kỹ thuật truyền dữ liệu, thông tin và trí thông minh của con người cho máy tính với mục tiêu là phát triển những cỗ máy có thể suy nghĩ và hành động như con người Những cỗ máy này có thể bắt chước hành vi của con người, thực hiện nhiệm vụ bằng cách học hỏi và giải quyết vấn đề.

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,

Machine Learning – ML hay Học máy, là một ngành khoa học máy tính sử dụng các thuật toán và phân tích máy tính để xây dựng các mô hình dự đoán có thể giải quyết các vấn đề chuyên biệt.

Machine Learning truy cập một lượng dữ liệu khổng lồ và học hỏi từ khối dữ liệu đó để dự đoán tương lai Nó học từ dữ liệu bằng cách sử dụng nhiều thuật toán và kỹ thuật khác nhau.

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 thường được ứng dụng nhiều trong các lĩnh vực liên quan đến doanh nghiệp, kinh doanh, Một số ứng dụng nổi bật của Machine Learning như dự báo bán hàng cho các sản phẩm khác nhau, khuyến nghị sản phẩm, dự đoán giá cổ phiếu,

Deep Learning – DL hay Học sâu, là một tập hợp con của Machine Learning, liên

Các thuật toán Deep Learning có thể hoạt động với một lượng lớn dữ liệu, bất chấp dữ liệu ở dạng có cấu trúc hay phi cấu trúc Cốt lõi của Deep Learning nằm ở mạng lưới thần kinh nhân tạo (Artificial Neural Network), cho phép máy móc đưa ra quyết định như con người. Điểm khác biệt của Deep Learning và Machine Learning nằm ở cách mà máy tiếp cận với dữ liệu Các thuật toán của Machine Learning thường yêu cầu dữ liệu ở một cấu trúc nhất định, trong khi đó thì Deep Learning lại 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 chỉ có một lớp input (ngõ vào) và một lớp output (ngõ ra), còn các lớp hidden (lớp ẩn) thì có thể nhiều hoặc ít tùy theo người phát triển.

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

+Dữ liệu ban đầu sẽ được đưa vào lớp ngõ vào, các dữ liệu sẽ đi qua các lớp ẩn như mạng tích chập, mạng tuyến tính, có các thuật toán chuyên biệt, sau khi đi qua các lớp ẩn, kết hợp cùng những hàm đặc trưng như activation, softmax, máy sẽ có thể “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.

+Model sau đó sẽ được áp dụng phương thức lan truyền ngược để cải thiện hiệu suất của Model sau, để sau khi kết thúc quá trình đào tạo, máy sẽ cho ra một Model với thông số Loss thấp nhất.

Về mặt ứng dụng, tuy là tập hợp con của AI và Machine Learning, nhưng về độ phủ trong đời sống, Deep Learning tỏ ra không hề thua kém trong các lĩnh vực như Y tế (phát hiện tế bào ung thư), Captionbot tạo chú thích cho hình ảnh, âm nhạc, Object Detected (phát hiện đối tượng),

Như đã trình bày ở trên, việc hoạt động chủ yếu của kỹ thuật Deep Learning phụ thuộc vào các lớp mạng Neural Network, vậy thì mạng Neural Network là gì?

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

Mạng Neural Network bao gồm các lớp nút (như mô tả ở Hình 2-13), chứa lớp ngõ vào, một hoặc nhiều lớp ẩn và lớp ngõ ra Mỗi nút, hoặc nơ-ron nhân tạo, kết nối với nút khác có trọng số và ngưỡng liên quan với nhau Nếu ngõ ra của bất kỳ nút riêng lẻ nào cao hơn giá trị ngưỡng đã chỉ định, nút đó sẽ được kích hoạt, gửi dữ liệu đến lớp tiếp theo của mạng.

Một số mạng Neural Network phổ biến hiện tại như mạng Perceptron, mạng Perceptron đa lớp (Multilayer Perceptron – MLPs), mạng tích chập (Convolutional Neural Network – CNN), mạng định kỳ (Recurrent Neural Network - RNN),

GIỚI THIỆU VỀ API

API là viết tắt của Application Programming Interface (giao diện lập trình ứng dụng) API là cơ chế cho phép hai thành phần phần mềm giao tiếp với nhau bằng cách sử dụng một tập hợp các định nghĩa và giao thức Một ví dụ đơn giản, chúng ta có một hệ thống phần mềm của cục thời tiết chứa dữ về liệu thời tiết Ứng dụng dự báo thời tiết trên điện thoại hoặc máy tính của chúng ta sẽ thực hiện “giao tiếp” với hệ thống này thông qua API, sau đó sẽ hiển thị cho chúng ta các thông tin về thời tiết ngay trên điện thoại.

Kiến trúc của API thường được triển khai dưới dạng client và server (máy khách và máy chủ) Ứng dụng gửi yêu cầu (request) sẽ được gọi là máy khách và ngược lại, ứng dụng gửi phản hồi (response) sẽ đượ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: các API này chỉ cho phép client và server trao đổi thông qua XML.Đây là một API ít linh hoạt hơn, và lỗi thời dù nó đã từng rất phổ biến trong quá khứ.

+API RPC: các API này được gọi là Remote Procedure Calls (cuộc gọi thủ tục từ xa) Client sẽ hoàn thành một chức năng mong muốn trực tiếp trên server và server sẽ gửi kết quả lại cho client.

+ Websocket API: API Websocket là một loại API web hiện đại, sử dụng các đối tượng JSON để truyền dữ liệu Các API WebSocket hỗ trợ giao tiếp hai chiều giữa client vả server Một điểm đặc biệt của API WebSocket là các server có thể gửi tin nhắn đến client được kết nối, làm cho nó hiệu quả hơn so với REST API.

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

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

GIỚI THIỆU

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

THI CÔNG HỆ THỐNG

GIỚI THIỆU

Đồ án “Ứng dụng học sâu điều khiển robot Robotino” mang cốt lõi là một Deep Learning Model có thể giúp Robotino tự hành Vì vậy, việc làm chủ yếu sẽ liên quan đến việc thiết kế, đào tạo kiểm định độ thông minh của Model Chương này sẽ tập trung trình bày chủ yếu vào các vấn đề liên quan đến phần mềm bao gồm việc lập trình đào tạo Deep Learning Model, lập trình triển khai Model đã đà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 quá trình 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 một kết nối an toàn và hiệu quả giữa máy tính và Robotino là một yếu tố quan trọng Trong mục này, 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, một công cụ mạnh mẽ cho việc tạo ra các đường hầm (tunnel) giữa localhost của bạn và internet Giúp người khác mạng có thể truy cập được localhost thông qua custom domain của ngrok, 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 sẽ sử dụng) vào ô Domain và nhập mô tả vào ô Description (không bắt buộc) trong hộp thoại New Domain, sau đó nhấn Continue để hoàn thành 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 một tệp dữ liệu phục vụ cho quá trình huấn luyện, nó được thực hiện thông qua việc đọc tín hiệu từ cảm biến và camera của Robotino Các tín hiệu này được gửi về máy chủ thông qua API và Webinterface, người dùng sẽ quan sát những thông tin đó và gửi lệnh điều khiển Robotino để di chuyển “mẫu”.

Dữ liệu như hình ảnh, giá trị của các cảm biến, hướng di chuyển sẽ được lưu trữ vào 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 thêm trong tệp dữ liệu này, tạo ra một bộ dữ liệu mang tính đồng bộ cao.

Trong quá trình thu thập dữ liệu, nhóm đã thiết lập một quy trình chặt chẽ và hiệu quả để đảm bảo khả năng học tập của Model khi huấn luyện Quy trình này nhằm đảm bảo bộ dữ liệu sẽ giúp Model “suy nghĩ giống con người” nhất có thể.

Hình 4-6 Dữ liệu cảm biến và ảnh khi Robotino đi thẳng Đầu tiên, nhìn vào Hình 4-6, khi ta quan sát được đường đi nằm trong tầm nhìn của camera và giá trị của các cảm biến đều bình thường ở mức 0.41 (tức là không có vật cản nằm trong phạm vi hoạt động của cảm biến) thì sẽ điều khiển Robotino thẳng Nếu nhận thấy đường đi đang có dấu hiệu lệch khỏi khung hình của camera thì sẽ tiến hành xoay phải hoặc xoay trái để đưa đường đi về lại khung hình.

Robotino sẽ tiếp tục di chuyển thẳng đến khi có sự thay đổi đường đi (khi gặp khúc cua) Thay vì chờ đến khi Robotino không còn quan sát được đường đi, ta phải chủ động thực hiện hành động xoay và di chuyển trước để đảm bảo hình ảnh của đường đi luôn nằm trong tầm quan sát của camera và cũng đảm bảo sau này Model sẽ hoạt động theo logic của con người Khi đó, ta sẽ xác định hướng xoay tiếp theo mà Robotino cần xoay để nhận thấy được đường line dựa trên hình ảnh của camera Sau đó, gửi liên tục các lệnh điều khiển đến Robotino để thực hiện hành động vượt qua khúc cua, các lệnh điều khiển này bao gồm tổ hợp các hướng đi thẳng và xoay (trái hoặc phải) Cứ di chuyển như thế cho đến khi về 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 bắt đầu nhận tín hiệu từ vật cản, Robotino sẽ thực hiện một hành động xoay phải Robotino sẽ tiếp tục xoay phải cho đến khi cảm biến 1 và 2 không còn nhận tín hiệu từ vật cản và trở về trạng thái bình thường, lúc này camera đã không còn nhìn thấy được đườ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 đã xoay phải và cảm biến 1 và 2 về trạng thái bình thường, lúc này cảm biến 3 hoặc 4 sẽ bắt đầu nhận tín hiệu từ vật cản, Robotino di chuyển thẳng cho đến khi cảm biến 3 và 4 không bị ảnh hưởng từ 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

Khi đó, Robotino sẽ dừng lại và tiến hành một hành động xoay trái cho đến khi cảm biến 3 hoặc 4 lại nhận được tín hiệu từ vật cản thì Robotino sẽ tiếp tục di chuyển thẳng cho đến khi vượt qua được vật cản Lúc này, khi đã vượt qua được vật cản thành công, cảm biến 3 và 4 cũng không còn nhận được tín hiệu từ vật cản thì Robotino sẽ thực hiện hành động xoay trái và quay trở lại di chuyển 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 cho các hướng đi

Số mẫu dữ liệu Đi thẳng Xoay phải Xoay trái

Sau khi quá trình thu thập dữ liệu được hoàn thành, nhóm thu được kết quả như sau: Tổng số mãu dữ liệu là 4738, số mẫu đi thẳng/rẽ trái/rẽ phải lần lượt là 3615/549/574 Những con số này sẽ góp phần trong việc xác định các Parameter, Weight, khi đào tạo Model.

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ột Deep Learning Model, tiền xử lý dữ liệu ảnh là một bước bắt buộc để đưa dữ liệu về dạng phù hợp cho quá trình huấn luyện Quá trình tiền xử lý ảnh cũng góp phần cải thiện hiệu suất và độ chính xác của Model Đoạn code ởHình 4-10 bên dưới là 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 Model. Ởphần khai báo này, nhóm sử dụng hàm transforms của thư viện torchvision để thực hiện các phép biến đổi dữ liệu trước khi đưa sử dụng. Đầu tiên, nhóm đã định nghĩa 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 “train” (tập đào tạo), “val” (tập thẩm định) và “verification” (tập kiểm định).

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

Dữ liệu ảnh được thay đổi kích thước bằng phép biến đổi transforms.Resize(). Điều này giúp đảm bảo kích thước của ảnh ngõ vào phù hợp Tiếp theo, dữ liệu được chuyển đổi về dạng tensor bằng phép biến đổi transforms.ToTensor() Đây là bước quan trọng để có thể đưa dữ liệu vào sử dụng vì khi sử dụng các mạng Neural Network của PyTorch, input lẫn output luôn luôn ở dạng tensor Cuối cùng, dữ liệu được chuẩn hóa bằng phép biến đổi transforms.Normalize() Chuẩn hóa dữ liệu ảnh giúp đưa các giá trị về khoảng giá trị phù hợp để có thể huấn luyện Model một cách 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 để chuẩn hóa dữ liệu ảnh.

(File location: /Training_Deep_Learning_Model/myDataset.py)

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

Trong những đoạn code bên dưới, nhóm đã định nghĩa một Class

CustomDataset bằng cách kế thừa class Dataset của thư viện torch để đọc dữ liệu từ các file csv và chuyển đổi chúng thành dữ liệu đào tạo/thẩm định/kiểm định Đầu tiên, phương thức 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

Ta khởi tạo dataset với các thông số ngõ vào như data_dir (thư mục dữ liệu) là đường, phase là giai đoạn của tập dữ liệu (có thể là “train”, “val” hoặc “verification”). và transform (phép biến đổi dữ liệu) là thuộc tính chuyể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 , đầu tiên ta mở file csv chứa dữ liệu bằng cách sử dụng hàm open trong Python với parameter là đường dẫn đến tập dữ liệu Sau đó, ta sử dụng thư viện csv để đọc các file csv này bằng hàm csv.reader() Sau đó lưu dữ liệu tùng dòng vào biến data dưới dạng list Cuối cùng, đếm và trả về kết quả là 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 rất quan trọng đối với việc đánh giá mô hình học sâu Ta sẽ dựa vào số dự đoán đúng của mô hình so với số lượng mẫu trong tệp dữ liệu để đánh giá chỉ số Accuracy của mô hình.

Cuối cùng, phương thức getitem là phương thức chính của lớpCustomDataset 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. Đầu tiên mở các tập dữ liệu tại địa chỉ được cung cấp và đọc dữ liệu Sau đó, sử dụng giá trị của idx để lấy ra dòng dữ liệu tương ứng (0 đến len ()) Cụ thể, 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, sau đó á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 được Class CustomDataset, ta sẽ tiến hành sử dụng bằng cách gọi ra và khai báo các đối tượng tệp dữ liệu tương ứng (“train”/“val”/“verification”) với đường dẫn, kiểu transform và phase để phục vụ cho việc đưa vào Data Loader và load vào huấn luyện Model.

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

(File location: /Training_Deep_Learning_Model/trainingModel.py) Đã có Dataset thì không thể không có Data Loader Data Loader là một phần quan trọng trong việc quản lý cách load dữ liệu để đào tào một Model, ta có thể dễ dàng tùy chỉnh các tham số của nó để phù hợp với các 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 code trên, nhóm đã sử dụng class DataLoader của thư viện torch để tạo các bộ dữ liệu train, validation và verification từ các đối tượng tập dữ liệu vừa khai báo bên trên với các parameter:

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

+shuffle dùng để xóa trộn các dữ liệu khi sử dụng Shuffle = True được sử dụng để trộn các mẫu dữ liệu, đảm bảo rằng các mẫu được lấy ra ngẫu nhiên và giảm thiểu sự ảnh hưởng của thứ tự của các mẫu đến quá trình huấn luyện, giúp mô hình học được các mẫu đa dạng hơn và tránh tình trạng overfitting.

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

“train”, “val” và “verification” và trả về từ điển này cho việc sử dụng tiếp trong quá trình huấn luyện Bằng cách này, có thể dễ dàng truy cập đến Data Loader của mỗi tập dữ liệu trong suốt quá trình đào tạo hay 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.

Với mạng LINEAR NETWORK, nó được khai báo dưới dạng một class có tên SensorProcessingModel(), dùng để xử lý dữ liệu của 9 cảm biến hồng ngoại Như đã nói ởphần thiết kế, đề tài sử dụng 3 lớp mạng Linear xen kẻ với 3 lớp mạng activation Các mạng activation gồm có mạng ReLU và Softmax Nhóm để mạng Softmax ở cuối Network Ngõ vào của mạng là một tensor 1 có kích thước [1x9] và ngõ ra là một tensor có kích thước [1x8].

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

GIỚI THIỆU

Đây là chương trình bày và đánh giá những kết quả đề tài đã đạt được trong toàn bộ quá trình nghiên cứu và thực hiện Kết quả của đề tài sẽ bao gồm kết quả đào tạo Deep Learning Model và kết quả các thử nghiệm trên Robotino Tiếp sau những kết quả, chương này sẽ 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 Validate accuracy accuracy

Bảng 5.1 thể hiện quá trình đào tạo Model để Robotino nhận diện được đường đi với tập dữ liệu train và val được thu thập bởi nhóm Do là một kiểu dữ liệu đặt biệt do chính bản thân nhóm tự thu thập, không dựa dẫm vào tập ImageNet cho nên kết quả đào tạo sẽ không thể cho ra những con số tối ưu nhất và đẹp mắt, ít nhất là trong khoảng thời gian nghiên cứu ngắn ngủi cho khóa luận.

Nhìn vào Bảng 5.1, chúng ta có thể thấy qua từng epoch, giá trị Loss sẽ dần giảm xuống ở cả phase đào tạo lẫn xác nhận, còn giá trị Acc sẽ tăng dần, nhưng đến epoch thứ

26 trở đi, có thể thấy Model không còn học được thêm gì và có thể đã chạm đến điểm cực tiểu của hàm Loss cho nên các giá trị Loss lẫn Acc lúc này không còn thay đổi nữa Chúng

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

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

Nhìn vào Hình 5-1 và 5-2, chúng ta có thể thấy được quá trình học tập của Model là tích cực khi mà các giá trị Loss liên tục giảm còn giá trị Acc liên tục tăng Ngoài ra giá trị Loss và Acc cũng nằm trong mức tốt đối với một Deep Learning Model.

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.

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

4 Req-04 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. Đối với vật cản đã được đào tạo có trong tập

6 Req-06 + Né và không chạm vật cản

+ Quay lại được đường đi Đối với vật cản không được đào tạo có trong tập

7 Req-07 + Né và không chạm vật cản

+ Quay lại được đường đi Đối với vật cản đặt ở góc cua của đường đi:

8 Req-08 + 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 Req-01

1 Testcase 01 chiều kim đồng hồ Req-02

- Không có vật cản và đi thuận Req-01

2 Testcase 02 chiều nghịch đồng hồ Req-02

- Đặt các loại vật cản có trong

3 Testcase 03 tập dữ liệu đào tạo Req-06

- Đặt các loại vật cản không có

4 Testcase 04 trong tập dữ liệu đào tạo Req-07

- Không có vật cản, đường đi

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

- Không có vật cản, đường đi

- Vật cản nằm ở góc cua của

- 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ừ 1 giây đến 0 giây.

Lưu ý: Nhóm sẽ không sử dụng đường đi dùng để thu thập dữ liệu cho việc thực hiện các testcase để đảm bảo độ chính xác và tính minh bạch.

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 Không sử dụng bất kì vật cản nào, diện đường đi, khả năng rẽ ở các khúc cua Robotino đi theo chiều kim đồng hồ. của Model.

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

Kết luận: Sau khi hoàn thành Testcase 01, có thể thấy Robotino đi thẳng và rẽ cua rất chuẩn, như cách một con người thực hiện, không xảy ra bất kỳ sai sót nào, Robotino không bị lêch khỏi đường đi và khả năng nhận diện được khúc cua là 100%.

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ông sử dụng bất kì vật cản nào, khả năng nhận diện đường đi, khả năng rẽ Robotino đi nghịch chiều kim đồng hồ. ở các khúc cua của Model.

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

Kết luận: Sau khi hoàn thành Testcase 02, nhóm rất tự hào bởi vì gần như

Robotino đi thẳng và rẽ cua rất chuẩn, như cách một con người thực hiện, không xảy ra bất kỳ sai sót nào, Robotino không bị lêch khỏi đường đi và khả năng nhận diện được khúc cua là 100%.

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 Bố trí Testcase Đánh giá chính xác khả năng nhận Sử dụng 2 vật cản là các tủ chuyên diện vật cản, di chuyển né tránh vật cản và dụng (có kích thước khoảng 45x50cm) quay trở lại đường đi của Model vào đường đi, loại vật cản này đã được thu thập dữ liệu trong quá trình thu thập dữ liệu để đào tạo Model.

Tỉ lệ vượt qua Tỉ lệ quay lại Tỉ lệ né sang thực hiện vật cản đường đi 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 ra vật cản 1 rất tốt, chỉ có một lần được vật cản Sau đó Robotino thực hiện đi qua vật cản và quay lại đường đi rất tốt, chỉ có 2 lần là Robotino bị mất phương hướng sau khi vượt qua vật cản 1 dẫn đến không quay về được đường đi (2 trên tổng số 20 lần, tương đương 10%).

+ Robotino nhận diện rất tốt vật cản 2, trong tổng cố 20 lần gặp vật cản 2, Robotino có thể nhận diện được cả 20 lần, sau đó đi qua vật cản 2 và quay về đường đi cực kỳ tốt mà không lần nào gặp lỗi.

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 Sử dụng các vật cản mới chưa được Model đối với các ngoại lệ (những loại vật thu thập dữ liệu cũng như chưa dùng để cản mới) đà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).

Tỉ lệ vượt qua Tỉ lệ quay lại Tỉ lệ né sang thực hiện vật cản đường đi 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:

+Đối với vật cản 3, Robotino đã làm nhóm bất ngờ với chỉ có 4 lần Robotino không vượt qua được vật cản và đứng im xoay qua xoay lại (như kiểu con người bị mất phương hướng) đạt tỷ lệ 80% là vượt qua được vật cản Sau khi vượt qua được vật cản, Robotino chỉ có thể quay lại đường đi được 15 lần (75%).

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

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

Thứ hai, thông qua các Testcase đã thực hiện, có thể thấy về khả năng hoạt động, Model hoạt động cực tốt trong quá trình đi theo đường đi không có vật cản, có khả năng rẽ ở các khúc cua rất mượt mà, lựa chọn đường đi đúng theo yêu cầu đặt ra rất tốt Ngoài ra cũng đạt tốc độ yêu cầu và không xảy ra tình trạng nghẽn mạng khi thời gian delay lớn hơn 0.2 giây.

Thứ 3, về khả năng né vật cản, Model cho thấy khả năng hoạt động rất tốt với các vật cản đặt ở vị trí bình thường, không những nhận diện được các vật cản đã được đào tạo, còn có thể hoạt động ở mức độ khá với các vật cản có kích thước lớn hay nhỏ hơn Tuy nhiên, vẫn xảy ra các sai sót làm cho Robotino đâm vào vật cản hay mất phương hướng làm dẫn đến không thể đi tiếp hoặc không hoàn thành đường đi Đặc biệt trong trường hợp vật cản nằm ở góc rẽ, Model vẫn không thể xử lý được trường hợp này Điều này xảy ra có thể do trong quá trình thu thập dữ liệu, người thu thập dữ liệu đã để sót trường hợp này cũng như chú trọng hơn về giá trị các cảm biến, chỉ khi các giá trị cảm biến không còn thì Model mới xử lý hình ảnh và tìm đường đi.

Tổng quan lại có thể thấy, đề tài là một bước tiến của nhóm với khả năng tạo ra một Deep Learing Model giúp cho Robotino có thể tự hành Tuy nhiên, khả năng né vật cản của Robotino đôi khi vẫn hoạt động chưa ổn định, đặc biệt đối với các vật cản lạ và vật cản nằm ở vị trí khó Điều này xảy ra có thể do số lượng dữ liệu của các tệp dữ liệu đào tạo vẫn chưa đủ nhiều, có những xung đột bên trong dữ liệu ảnh và dữ liệu các cảm biến, kiểu dữ liệu mang tính đặc trưng cao,

Ngày đăng: 11/12/2023, 08:47

HÌNH ẢNH LIÊN QUAN

Hình 2-1. Festo Didactic ROBOTINO 4.0 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 1. Festo Didactic ROBOTINO 4.0 (Trang 20)
Hình 2-4. Bố trí các cảm biến GP2Y0A41SK0F ở đến của Robotino - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 4. Bố trí các cảm biến GP2Y0A41SK0F ở đến của Robotino (Trang 22)
Hình 2-9. Mục IO của Webinerface - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 9. Mục IO của Webinerface (Trang 26)
Hình 2-10. Mục Control của  Webinterface 2.2. NGÔN NGỮ LẬP TRÌNH PYTHON - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 10. Mục Control của Webinterface 2.2. NGÔN NGỮ LẬP TRÌNH PYTHON (Trang 27)
Hình 2-13. Cấu trúc cơ bản của mạng Neural Network - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 13. Cấu trúc cơ bản của mạng Neural Network (Trang 30)
Hình 2-15. Trang chủ ngrok.com - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 15. Trang chủ ngrok.com (Trang 34)
Hình 2-16. Nguyên lý hoạt động của phương pháp Maxpooling - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 16. Nguyên lý hoạt động của phương pháp Maxpooling (Trang 35)
Hình 2-17. Nguyên lý hoạt động của thuật toán Fully Connected - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 2 17. Nguyên lý hoạt động của thuật toán Fully Connected (Trang 36)
3.2.1. Sơ đồ khối hệ thống phần cứng Robotino - Đồ án ứng dụng học sâu điều khiển robot robotino
3.2.1. Sơ đồ khối hệ thống phần cứng Robotino (Trang 37)
Hình 3-5. Sơ đồ khối quá trình thu thập dữ liệu - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 3 5. Sơ đồ khối quá trình thu thập dữ liệu (Trang 42)
Hình 3-7. Đường đi đến điểm cực tiểu của thuật toán - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 3 7. Đường đi đến điểm cực tiểu của thuật toán (Trang 44)
Hình 3-6. Hoạt động của thuật toán SGD - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 3 6. Hoạt động của thuật toán SGD (Trang 44)
Hình 3-8. Thuật toán Momentum - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 3 8. Thuật toán Momentum (Trang 45)
Hình 3-9. Kiến trúc Deep Learning Model - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 3 9. Kiến trúc Deep Learning Model (Trang 46)
Đồ thị hàm ReLU - Đồ án ứng dụng học sâu điều khiển robot robotino
th ị hàm ReLU (Trang 46)
Hình 4-4. Thông tin chi tiết về subdomain vừa tạo - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 4 4. Thông tin chi tiết về subdomain vừa tạo (Trang 49)
Hình 4-7. Dữ liệu cảm biến và ảnh khi Robotino rẽ Trường hợp 3 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 4 7. Dữ liệu cảm biến và ảnh khi Robotino rẽ Trường hợp 3 (Trang 51)
Hình 4-8. Dữ liệu cảm biến và ảnh khi Robotino gặp vật cản - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 4 8. Dữ liệu cảm biến và ảnh khi Robotino gặp vật cản (Trang 52)
Hình 4-11. Quá trình tiền xử lý ảnh - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 4 11. Quá trình tiền xử lý ảnh (Trang 54)
Hình 4-17. Mạng LINEAR NETWORK - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 4 17. Mạng LINEAR NETWORK (Trang 58)
Hình 4-19. Mạng CONCATENATE NETWORK - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 4 19. Mạng CONCATENATE NETWORK (Trang 59)
Hình 4-23. Lưu đồ giải thuật đào tạo Model - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 4 23. Lưu đồ giải thuật đào tạo Model (Trang 62)
Bảng 5.1. Kết quả đào tạo Deep Leaning Model - Đồ án ứng dụng học sâu điều khiển robot robotino
Bảng 5.1. Kết quả đào tạo Deep Leaning Model (Trang 70)
Hình 5-1. Giá trị Train Loss và Validate Loss - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 5 1. Giá trị Train Loss và Validate Loss (Trang 72)
Hình 5-3. Bố trí Testcase 01 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 5 3. Bố trí Testcase 01 (Trang 75)
Hình 5-4. Bố trí Testcase 02 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 5 4. Bố trí Testcase 02 (Trang 76)
Hình 5-5. Bố trí Testcase 03 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 5 5. Bố trí Testcase 03 (Trang 77)
Hình 5-6. Bố trí Testcase 04 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 5 6. Bố trí Testcase 04 (Trang 78)
Hình 5-8. Bố trí Testcase 06 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 5 8. Bố trí Testcase 06 (Trang 81)
Hình 5-9. Bố trí Testcase 07 - Đồ án ứng dụng học sâu điều khiển robot robotino
Hình 5 9. Bố trí Testcase 07 (Trang 82)

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

TÀI LIỆU LIÊN QUAN

w