Luận văn Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợp một số công nghệ xử lý ảnh và thuật toán hiện đại

pdf 94 trang thiennha21 14/04/2022 4660
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợp một số công nghệ xử lý ảnh và thuật toán hiện đại", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfluan_van_nghien_cuu_thiet_ke_che_tao_mobile_robot_tu_hanh_ti.pdf

Nội dung text: Luận văn Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợp một số công nghệ xử lý ảnh và thuật toán hiện đại

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  TRỊNH TUẤN DƯƠNG NGHIÊN CỨU, THIẾT KẾ, CHẾ TẠO MOBILE ROBOT TỰ HÀNH TÍCH HỢP MỘT SỐ CÔNG NGHỆ XỬ LÝ ẢNH VÀ THUẬT TOÁN HIỆN ĐẠI LUẬN VĂN THẠC SĨ CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ HÀ NỘI - 2020
  2. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  TRỊNH TUẤN DƯƠNG NGHIÊN CỨU, THIẾT KẾ, CHẾ TẠO MOBILE ROBOT TỰ HÀNH TÍCH HỢP MỘT SỐ CÔNG NGHỆ XỬ LÝ ẢNH VÀ THUẬT TOÁN HIỆN ĐẠI Ngành: Công nghệ kỹ thuật cơ điện tử Chuyên ngành: Kỹ thuật cơ điện tử Mã số: 8520114.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN TỬ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. PHẠM MẠNH THẮNG HÀ NỘI - 2020
  3. i LỜI CAM ĐOAN Tôi xin cam đoan: Luận văn này là công trình nghiên cứu cá nhân, không sao chép lại. Tất cả những nội dung có sự tham khảo từ các tài liệu khác đều được ghi lại đầy đủ trong phần tài liệu tham khảo. Hà Nội, ngày 18 tháng 9 năm 2020 Học viên Trịnh Tuấn Dương
  4. ii LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành đến Giáo viên hướng dẫn là PGS.TS. Phạm Mạnh Thắng vì những sự giúp đỡ, hướng dẫn tận tình của thầy. Những sự chỉ dẫn, giúp đỡ đó có vai trò rất quan trọng giúp tôi hoàn thành được Luận văn. Tôi cũng xin gửi lời cảm ơn đến Gia đình, Bạn bè, Đồng nghiệp, những người đã có sự giúp đỡ, động viên kịp thời trong thời gian tôi thực hiện Luận văn này. Xin chân thành cảm ơn! Hà Nội, ngày 18 tháng 9 năm 2020 Học viên Trịnh Tuấn Dương
  5. iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii MỞ ĐẦU 1 CHƯƠNG 1 TỔNG QUAN VỀ LUẬN VĂN 2 1.1 Giới thiệu chung 2 1.1.1 Giới thiệu về robot tự hành 2 1.1.2 Bài toán xác định vị trí và tìm đường 3 1.2 Mục đích, đối tượng, nội dung nghiên cứu, và giới hạn của luận văn 6 1.2.1 Mục đích, và đối tượng nghiên cứu của luận văn 6 1.2.2 Nội dung nghiên cứu của luận văn 8 1.2.3 Giới hạn của luận văn 9 CHƯƠNG 2 THIẾT KẾ MOBILE ROBOT 10 2.1 Cấu tạo tổng quát của mobile robot 10 2.2 Thiết kế phần khung, vỏ cho mobile robot 10 2.2.1 Ứng dụng công nghệ in 3D FDM trong việc thiết kế khung, vỏ cho robot. 10 2.2.2 Thiết kế, chế tạo khung vỏ của robot bằng công nghệ in 3D FDM. 13 2.3 Thiết kế mạch nguyên lý cho mobile robot 15 2.4 Thiết lập chế độ làm việc cho các linh kiện 15 2.4.1 Arduino Uno 15 2.4.2 QTR – 5RC 16 2.4.3 Module thu phát sóng Radio nRF24L01 18 2.4.4 Động cơ DC 19
  6. iv 2.4.5 Module điều khiển động cơ L298 20 2.4.6 Thiết lập giao tiếp cho robot 21 2.5 Viết chương trình điều khiển cho mobile robot 22 CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH VÀ ĐỊNH HƯỚNG CHO MOBILE ROBOT 27 3.1 Mục đích và nội dung của chương trình 27 3.2 Ứng dụng công nghệ xử lý ảnh trong luận văn 27 3.2.1 Tổng quan về xử lý ảnh 27 3.2.2 Khai thác thư viện OpenCV để hỗ trợ quá trình xử lý ảnh trong luận văn. 28 3.2.3 Một số khái niệm và thuật ngữ quan trọng về xử lý ảnh được sử dụng trong luận văn 29 3.3 Xây dựng nguyên lý hoạt động của chương trình xử lý ảnh 31 3.4 Tạo bản đồ 32 3.4.1 Dùng ROI để xác định vùng hoạt động của robot 32 3.4.2 Xác định đường đi của robot (tìm line) 33 3.4.3 Thu nhỏ kích thước vạch 35 3.4.4 Chia nút và xác định thông số của các nút 36 3.5 Ứng dụng thuật toán Camshift trong việc truy bắt, định vị robot. 37 3.5.1 Giới thiệu thuật toán Camshift. 37 3.5.2 Truy bắt robot theo thuật toán Camshift 42 3.6 Tìm đường cho robot 46 3.6.1 Giới thiệu về thuật toán A* 49 3.6.2 Ứng dụng thuật toán A* tìm đường cho robot 50 3.1 Dẫn hướng cho robot 50 3.2 Kết quả thử nghiệm tìm đường, định vị và dẫn hướng cho robot theo thời gian thực. 51 3.2.1 Kết quả lần thử nghiệm 1 52 3.2.2 Kết quả thử nghiệm lần 2 54
  7. v 3.2.3 Kết quả thử nghiệm lần 3 56 3.2.4 Kết quả thử nghiệm lần 4 58 KẾT LUẬN 60 DANH MỤC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN VĂN 62 TÀI LIỆU THAM KHẢO 63 PHỤ LỤC 1: MỘT SỐ HÌNH ẢNH VỀ SẢN PHẨM, VÀ MÔI TRƯỜNG THỬ NGHIỆM CỦA LUẬN VĂN 65 PHỤ LỤC 2: CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN VĂN 72
  8. vi DANH MỤC BẢNG BIỂU Bảng 1-1 So sánh ưu, nhược điểm của mobile robots bám vạch và không bám vạch. 7 Bảng 2-1 Một vài ưu, nhược điểm của công nghệ in 3D FDM. 12 Bảng 2-2. So sánh hành vi của robot trong luận văn và các robot bám vạch sử dụng thuật toán bám đường trái hoặc bám đường phải 24 Bảng 2-3 Kết quả xác định ngã rẽ và hành vi của robot dựa trên tín hiệu trả về của cảm biến dò line. 25
  9. vii DANH MỤC HÌNH VẼ Hình 1.1 Một mobile robots đơn giản [27]. 2 Hình 1.2 Nhiều công nghệ có thể được áp dụng cùng lúc để định vị và định hướng cho mobile robots [16]. 3 Hình 1.3 Thiết bị BLE Beacons sử dụng công nghệ bluetooth [11]. 4 Hình 1.4 Hệ thống đánh dấu AprilTags [11]. 4 Hình 1.5 Hệ thống định vị bằng sóng radio [17]. 5 Hình 1.6 Hệ thống NFC tags [11]. 5 Hình 1.7 Hệ thống RFID passive tags [11]. 6 Hình 1.8 Một mobile robot bám vạch có nhiệm vụ vận chuyển nguyên vật liệu [23]. 6 Hình 1.9 Hệ thống đánh dấu cho một mobile robots bám vạch từ [18]. 7 Hình 1.10 Bản đồ chứa các vòng lặp khiến cho một số thuật toán dò đường như bám biên không thể giải đúng. 8 Hình 1.11 Nguyên lý hoạt động của hệ thống 9 Hình 2.1 Một mô hình đang được in theo công nghệ FDM [22]. 11 Hình 2.2 Mặt trước mô hình 3D mobile robot. 13 Hình 2.3 Mặt sau mô hình 3D của mobile robot. 14 Hình 2.4 Mô hình mobile robot hoàn thiện. 14 Hình 2.5 Mạch nguyên lý của hệ thống gồm hai phần: module phát tín hiệu và mobile robot. 15 Hình 2.6 Board Arduino Uno [9] 16 Hình 2.7 Cảm biến QTR - 5RC [16]. 17 Hình 2.8 Module thu phát sóng radio NRF24L01 [12]. 18 Hình 2.9 Động cơ DC GA25 [10] 19 Hình 2.10 Module điều khiển động cơ L298 [20] 20 Hình 2.11 Cấu tạo của IC điều khiển động cơ L298. 21 Hình 2.12 Sơ đồ truyền dữ liệu từ chương trình xử lý ảnh đến robot. 21 Hình 2.13 Nguyên lý hoạt động của mobile robot 23 Hình 3.1 Các module chính trong thư viện OpenCV [25] 28 Hình 3.2 Không gian màu RGB [24] 30 Hình 3.3 Không gian màu HSV [26] 30 Hình 3.4 Nguyên lý hoạt động của chương trình xử lý ảnh. 31 Hình 3.5 Bản đồ trước khi áp dụng ROI (trái) và bản đồ sau khi áp dụng ROI (phải). 32 Hình 3.6 Kết quả xác định vạch theo bằng phương pháp phân ngưỡng nhị phân
  10. viii ngược trên bản đồ 1. 34 Hình 3.7 Kết quả xác định vạch theo bằng phương pháp phân ngưỡng nhị phân ngược trên bản đồ 2. 34 Hình 3.8 Kết quả làm giảm kích thước vạch trên bản đồ 1 bằng phép toán co ảnh. 36 Hình 3.9 Kết quả làm giảm kích thước vạch trên bản đồ 2 bằng phép toán co ảnh. 36 Hình 3.10 Ví dụ về việc chia lưới trong một bản đồ mà đường đi có kích thước lớn [8]. 37 Hình 3.11 Cửa sổ lọc trượt đến trọng tâm của tập hợp điểm [15]. 38 Hình 3.12 Trong thuật toán meanshift, kích thước của cửa sổ lọc không thay đổi theo sự thay đổi của đối tượng [15]. 40 Hình 3.13 Trong thuật toán Camshift, kích thước và hướng của cửa sỏ lọc thay đổi theo sự thay đổi của đối tượng [15]. 41 Hình 3.14 Sự thay đổi của Histogram khi dải chia lưới thay đổi [2]. 42 Hình 3.15 Ảnh gốc, histogram và backprojection tương ứng [13]. 43 Hình 3.16 Robot tự hành được đánh dấu nhận dạng bởi hai vùng màu khác nhau trên thân 44 Hình 3.17 Kết quả định vị mobile robot tại một số vị trí khác nhau. 45 Hình 3.18 Kết quả giảm nhiễu nhờ việc tinh chỉnh các giá trị HSV dùng để phân ngưỡng. 46 Hình 3.19 Thuật toán tìm đường theo quy tắc bám phải [30]. 46 Hình 3.20 Thuật toán Pledge giúp thoát khỏi các vật cản phức tạp [30]. 47 Hình 3.21 Kết quả tìm đường bằng thuật toán A* (trái) và thuật toán Dijkstra (phải). 49 Hình 3.22 Kết quả tìm đường của lần thử nghiệm 1. 52 Hình 3.23 Kết quả dẫn hướng cho robot theo thời gian thực của lần thử nghiệm 1. 53 Hình 3.24 Kết quả tìm đường lần thử nghiệm 2 54 Hình 3.25 Kết quả dẫn hướng cho robot theo thời gian thực của lần thử nghiệm 2. 55 Hình 3.26 Kết quả tìm đường của lần thử nghiệm 3. 56 Hình 3.27 Kết quả dẫn hướng cho robot theo thời gian thực của lần thử nghiệm 3. 57 Hình 3.28 Kết quả tìm đường lần thử nghiệm 4 58 Hình 3.29 Kết quả dẫn hướng theo thời gian thực lần thử nghiệm thứ 4. 59
  11. ix Phụ lục 1. 1 Môi trường thử nghiệm hoạt động của robot. 65 Phụ lục 1. 2 Chương trình xử lý ảnh trên máy tính kết nối với Module phát qua giao tiếp Serial. 66 Phụ lục 1. 3 Góc nhìn chéo về Robot. 67 Phụ lục 1. 4 Mặt bên của Robot. 68 Phụ lục 1. 5 Mặt lưng của Robot. 69 Phụ lục 1. 6 Mặt sau của robot. 70 Phụ lục 1. 7 Mặt đáy của Robot. 71
  12. 1 MỞ ĐẦU Luận văn thạc sĩ “Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợp một số công nghệ xử lý ảnh và thuật toán hiện đại” có nhiệm vụ chính là thiết kế, chế tạo một mô hình mobile robot tự hành dạng bám vạch được định vị, tìm đường và dẫn hướng nhờ vào sự kết hợp giữa các công nghệ xử lý ảnh và thuật toán tìm đường. Hướng tiếp cận này mang đến điểm mới so với các mobile robot bám vạch truyền thống là khả năng giải quyết đồng thời ba bài toán định vị, tìm đường và dẫn hướng. Nhờ áp dụng công nghệ xử lý ảnh nên robot có thể đến được vị trí bất kỳ trên đường đi mà không cần tạo các dấu trên bản đồ như phương pháp truyền thống. Đồng thời, nhờ áp dụng công nghệ xử lý ảnh, sự tương tác giữa người dùng với robot bám vạch cũng tăng lên khi người dùng có thể lựa chọn vị trí đích cho robot một cách đơn giản thông qua việc kích chuột trên ảnh của bản đồ. Nội dung của báo cáo luận văn gồm có những phần sau: Chương 1. Tổng quan về luận văn Chương 2. Thiết kế mobile robot dạng bám vạch Chương 3: Xây dựng chương trình xử lý ảnh và định hướng cho mobile robot dạng bám vạch Hướng phát triển của luận văn vẫn còn rất rộng. Vì vậy, tác giả sẽ tiếp tục nghiên cứu, phát triển nội dung của luận văn để có thể tìm hiểu sâu hơn về lĩnh vực mobile robot và hoàn thiện, nâng cao tính ứng dụng của luận văn vào thực tiễn. Báo cáo không tránh khỏi còn có những sai sót, cũng như tầm hiểu biết của tác giả chỉ có hạn nên rất mong nhận được những ý kiến đóng góp để tác giả có thể sửa chữa và cải tiến, hoàn thiện và làm phong phú thêm nội dung của luận văn. Xin chân thành cảm ơn! TÁC GIẢ
  13. 2 CHƯƠNG 1 TỔNG QUAN VỀ LUẬN VĂN 1.1 Giới thiệu chung 1.1.1 Giới thiệu về robot tự hành Robot tự hành, hay còn gọi là AMR (autonomous mobile robot) hoặc AGV (autonomous guided vehicle) là những robot có khả năng di chuyển một cách tự động. Khác với robot công nghiệp (industrial robots) là những robot ít có tính di động hơn, mobile robot thường có khả năng tự hành trong một môi trường không kiểm soát (các robot dạng AMR) hoặc có khả năng sử dụng các cảm biến định hướng để di chuyển theo các đường đã được định trước (các robot dạng AGV). Hình 1.1 Một mobile robots đơn giản [27]. Mobile robots đang ngày càng trở nên phổ biến cả trong công nghiệp và cuộc sống. Tất cả các lĩnh vực từ y tế, quân sự, giáo dục, sản xuất hay sinh hoạt thường nhật đều có sự xuất hiện của mobile robots. Ví dụ, các bệnh viện cũng như các nhà máy đã sử dụng mobile robots suốt nhiều năm trong việc vận chuyển các dụng cụ, nguyên vật liệu. Trong gia đình, các robot hút bụi tự động ngày một phổ biến, hoạt động hiệu quả hơn và giá thành rẻ hơn. Ngoài ra, mobile robots cũng được sử dụng trong các nhiệm vụ như thám hiểm, hay các nhiệm vụ liên quan đến môi trường độc hại hoặc nguy hiểm cho con người [27].
  14. 3 1.1.2 Bài toán xác định vị trí và tìm đường Trong các vấn đề nghiên cứu liên quan đến mobile robots thì bài toán xác định vị trí và tìm đường là những bài toán rất quan trọng và vẫn đang được nghiên cứu, phát triển các giải pháp hiệu quả. Đối với bài toán tìm đường, mục tiêu của bài toán này là tìm ra đường đi phù hợp cho robots. Đường đi phù hợp ở đây là các đường đi thỏa mãn hai tiêu chí: Có khả năng dẫn tới đích, và là đường ngắn nhất. Bài toán này có thể được giải quyết một cách thủ công nhờ người lập trình hoặc cũng có thể giải quyết bằng việc cho robot dò đường. Tuy nhiên, nhược điểm của các cách trên là đường đi có thể không đúng hoặc có thể đúng nhưng không phải là đường đi ngắn nhất, và bản đồ càng phức tạp thì độ khó trong việc tìm đường càng tăng lên. Phương hướng giải quyết thứ hai là áp dụng các thuật toán tự động. Theo đó, đường đi đến đích phù hợp sẽ được tìm một cách tự động, tốc độ của việc tìm đường sẽ phụ thuộc vào loại thuật toán được áp dụng. Ưu điểm của phương pháp này là đường được tìm một cách tự động, và một số thuật toán tìm đường tự động đã được chứng minh là có thể tìm được đường đi ngắn nhất. Tuy nhiên, để có thể áp dụng được thuật toán tìm đường tự động thì cần phải có thông tin về bản đồ. Ngoài bài toán tìm đường thì một bài toán khác cũng cần được giải quyết để mobile robots có thể đi đến đích, đó là bài toán định vị (localization). Bài toán này có thể phân thành hai loại, dựa theo môi trường hoạt động của robot như sau: Định vị ngoài trời (outdoor localization) và định vị trong nhà (indoor localization). Hình 1.2 Nhiều công nghệ có thể được áp dụng cùng lúc để định vị và định hướng cho mobile robots [16]. Trong khi bài toán định vị ngoài trời có thể được giải quyết đơn giản bằng cách
  15. 4 sử dụng các cảm biến GPS thì bài toán định vị trong nhà lại khó giải quyết hơn rất nhiều do tín hiệu GPS bị yếu, thường không ổn định ở môi trường trong nhà. Do đó, bài toán định vị trong nhà vẫn đang được nghiên cứu, tìm phương pháp giải quyết thích hợp, ví dụ như áp dụng cùng lúc nhiều công nghệ để định vị và định hướng cho robot (hình 1.2). Hiện tại có một số phương pháp giải quyết bài toán này như sử dụng bluetooth, xử lý ảnh, hệ thống định vị bằng sóng radio, NFC, RFID, hay wifi [4, 11]: - BLE Beacons: Đây là các thiết bị kích thước nhỏ có thể gắn trên tường hoặc các bề mặt được thiết kế chuyên dụng trong việc định vị trong nhà. Theo đó, mobile robots sẽ phát hiện tín hiệu từ BLE Beacons, và tính toán vị trí của nó thông qua việc tính toán khoảng cách của nó so với các BLE Beacons. Hình 1.3 Thiết bị BLE Beacons sử dụng công nghệ bluetooth [11]. - AprilTags: Đây là một phương pháp giá rẻ sử dụng công nghệ xử lý ảnh để định vị. Theo đó, các điểm đánh dấu (markers) được làm theo mẫu AprilTags sẽ được dán ở các vị trí cần thiết. Mobile robots được trang bị camera sẽ nhận diện các ký hiệu này và tính toán được vị trí của mình. Hình 1.4 Hệ thống đánh dấu AprilTags [11]. - Ngoài các phương pháp đã trình bày thì còn một số phương pháp khác như sử dụng hệ thống định vị bằng sóng radio (hình 1.5), hoặc sử dụng
  16. 5 các hệ thống NFC tags (hình 1.6) hay hệ thống RFID tags (hình.17). Một số nhược điểm có thể còn tồn tại của các phương pháp trên như sau: o Giá thành cao o Một số phương pháp có độ linh động không cao, tại mỗi vị trí cần xác định lại phải gắn một module. o Nhiều phương pháp chỉ giải quyết được bài toán định vị hoặc định hướng, không giải quyết được bài toán chỉ đường. Hình 1.5 Hệ thống định vị bằng sóng radio [17]. Hình 1.6 Hệ thống NFC tags [11].
  17. 6 Hình 1.7 Hệ thống RFID passive tags [11]. 1.2 Mục đích, đối tượng, nội dung nghiên cứu, và giới hạn của luận văn 1.2.1 Mục đích, và đối tượng nghiên cứu của luận văn Hình 1.8 Một mobile robot bám vạch có nhiệm vụ vận chuyển nguyên vật liệu [23].
  18. 7 Đối tượng nghiên cứu của luận văn là mobile robot dạng bám vạch. Có thể phân loại mobile robots thành hai loại là bám vạch và không bám vạch. Mỗi loại mobile robots này có ưu và nhược điểm riêng như trên bảng 1-1. Bảng 1-1 So sánh ưu, nhược điểm của mobile robots bám vạch và không bám vạch. Mobile robots không bám Mobile robots bám vạch vạch Ưu điểm Độ linh động cao vì phạm vi Hoạt động ổn định. hoạt động không bị giới hạn Chi phí thường thấp hơn so với bởi vạch. mobile robots không bám vạch. Nhược điểm Cần kết hợp nhiều loại cảm Độ linh động kém hơn so với biến cũng như các phương mobile robots bám vạch. pháp định hướng để có thể hoạt động ổn định, do đó chi phí thường đắt hơn. Hiện tại, mobile robots bám vạch khi di chuyển thường được định vị bằng cách đánh dấu (tạo các markers) như sau: Tại các vị trí cần định vị (thường là ngã rẽ) sẽ sử dụng thêm mã hóa IR [7] hoặc LED [1] để làm dấu. Tuy nhiên, nhược điểm của phương pháp này là chỉ áp dụng trong môi trường làm việc không yêu cầu độ linh hoạt cao vì tại mỗi vị trí cần đến của phương tiện lại phải đặt các dấu (markers) và khi muốn thay đổi lại vị trí sẽ phải can thiệp vào việc sắp xếp các dấu. Hình 1.9 Hệ thống đánh dấu cho một mobile robots bám vạch từ [18].
  19. 8 Ngoài ra, đối với mobile robots dạng này, nếu không muốn tìm đường thủ công cho robots thì có thể cho robots tiến hành dò đường. Tuy nhiên, việc cho robots dò đường cũng rất tốn công sức và thời gian trong các trường hợp bản đồ phức tạp và việc dò đường còn không thể thực hiện được trong trường hợp bản đồ có chứa các vòng lặp. Hình 1.10 Bản đồ chứa các vòng lặp khiến cho một số thuật toán dò đường như bám biên không thể giải đúng. Vì vậy, mục đích và đối tượng nghiên của luận văn là tìm ứng dụng công nghệ xử lý ảnh cũng như thuật toán tìm đường vào mobile robots bám vạch để giải quyết đồng thời bài toán định vị, tìm đường, dẫn hướng và khắc phục một số nhược điểm còn tồn tại trong việc di chuyển của mobile robots dạng bám vạch như đã nêu trên. 1.2.2 Nội dung nghiên cứu của luận văn Để đạt được mục đích các mục đích trên, luận văn sẽ tập trung vào các nội dung sau: - Ứng dụng công nghệ xử lý ảnh trong việc tạo bản đồ, truy bắt và định vị robots. - Ứng dụng thuật toán tìm đường tự động trong việc tìm đường cho robots. - Ứng dụng công nghệ in 3D trong việc thiết kế, chế tạo khung vỏ cho robots. - Thiết kế, chế tạo robots có khả năng bám vạch và có khả năng được dẫn hướng thông qua công nghệ giao tiếp không dây.
  20. 9 Hệ thống được xây dựng gồm một chương trình xử lý ảnh và một mobile robot có khả năng liên kết với nhau và hoạt động theo nguyên lý như trên hình 1.11 Hình 1.11 Nguyên lý hoạt động của hệ thống Ảnh được gửi về từ một camera gắn ngoài sẽ được thu thập bởi chương trình xử lý ảnh trên laptop. Sau đó, chương trình xử lý ảnh sẽ xử lý, phân tích và gửi những dữ liệu về đường đi tới robot theo thời gian thực. Mobile robots sẽ liên tục cập nhật dữ liệu từ cảm biến và dữ liệu được gửi về từ chương trình xử lý ảnh để có thể di chuyển đến đích. 1.2.3 Giới hạn của luận văn Từ lý thuyết đến thực tế là một chặng đường dài, và với tốc độ phát triển hiện nay thì công nghệ và kiến thức thay đổi không ngừng. Với tầm hiểu biết hạn hẹp của tác giả thì khó lòng giải quyết được nhiều yêu cầu trên thực tế vì nhiều khi chỉ cần thêm một yêu cầu cũng khiến khối lượng kiến thức liên quan cũng như độ khó tăng lên nhiều lần. Do đó, luận văn chỉ tập trung vào xây dựng một hệ thống chứng minh được tính khả thi của luận văn và giới hạn như sau: - Mobile robots ngoài việc đáp ứng được các yêu cầu của luận văn thì không còn nhiệm vụ nào khác, ví dụ như tải nặng. - Hệ thống được thiết kế lấy ảnh đầu vào từ một camera, thỏa mãn các yêu cầu cơ bản của luận văn nhưng chưa được thiết kế để xử lý hết các tình huống đặc biệt, đột xuất có thể xảy ra.
  21. 10 CHƯƠNG 2 THIẾT KẾ MOBILE ROBOT 2.1 Cấu tạo tổng quát của mobile robot Mobile robot được thiết kế trong luận văn gồm có các bộ phận chính như sau: - Bộ phận khung, vỏ: Phần khung, vỏ có tác dụng liên kết các bộ phận khác của robot. Đồng thời, nó cũng có tác dụng trong việc tăng độ cứng vững, bảo vệ robot khỏi các tác động từ bên ngoài. - Bộ phận công suất: Bộ phận công suất có tác dụng cung cấp năng lượng cho robot hoạt động. Bộ phận này phải cung cấp công suất đủ lớn nhưng khối lượng cũng không được quá nặng. Do đó, mobile robot sử dụng hệ pin Li-Ion làm nguồn cung cấp năng lượng. - Bộ phận truyền động: Mobile robot được dẫn động bằng hai bánh chủ động và một bánh dẫn hướng. Các bánh chủ động được điều khiển bởi hai động cơ DC giảm tốc. - Hệ thống cảm biến và giao tiếp: Cảm biến có nhiệm vụ thu thập thông tin từ môi trường hỗ trợ quá trình điều khiển robot. Robot trong luận văn được trang bị cảm biến dò line QTR-5RC để hỗ trợ bám vạch. Ngoài ra, robot cũng được trang bị module NRF24L01+ để hỗ trợ giao tiếp với chương trình xử lý ảnh trên máy tính. - Bộ phận mạch điều khiển: Module điều khiển trung tâm có vai trò điều khiển hoạt động của mobile robot thông qua quá trình xử lý tín hiệu từ cảm biến, điều khiển động cơ thông qua module L298N và giao tiếp với máy tính qua NRF24L01+. Board điều khiển được sử dụng là Arduino Uno. 2.2 Thiết kế phần khung, vỏ cho mobile robot Để mobile robot hoạt động ổn định thì phần khung, vỏ đóng vai trò rất quan trọng. Khung, vỏ của robot giúp kết nối, cố định và sắp xếp hợp lý các bộ phận của robot như bánh xe, các linh kiện, bảng mạch và pin. Từ đó, giúp cho robot có được sự ổn định và vững chắc trong quá trình vận hành. Ngoài ra, phần khung vỏ còn có tác dụng tăng tính cá nhân hóa và thẩm mỹ cho robot. Xuất phát từ các yêu cầu trên, phần khung vỏ của robot được thiết kế và chế tạo dựa vào công nghệ in 3D FDM. 2.2.1 Ứng dụng công nghệ in 3D FDM trong việc thiết kế khung, vỏ cho robot. Công nghệ in 3D là một quá trình công nghệ nhằm tạo ra mô hình vật thể 3D từ
  22. 11 một mô hình 3D được thiết kế trên máy tính (CAD). Quá trình này thường là liên tục đắp các lớp vật liệu theo từng lớp dưới sự điều khiển của máy in 3D để tạo thành vật thể, do đó nó còn có tên gọi khác là công nghệ sản xuất đắp dần (Additive Manufacturing – AM). Công nghệ in 3D có lịch sử phát triển lâu đời và hiện tại đã có những bước tiến lớn và xuất hiện ngày một rộng rãi hơn trong cuộc sống cũng như sản xuất. Các máy in 3D giá rẻ cũng có độ chính xác cao nên được sử dụng rộng rãi trong việc nghiên cứu, học tập để tạo mẫu. Trong công nghiệp, tính đến năm 2019, sự chính xác của máy in 3D tăng cao, cộng với khả năng hoạt động bền bỉ, phạm vi nguyên liệu được mở rộng đã đưa công nghệ in 3D góp mặt nhiều hơn trong quá trình sản xuất. Một trong các lợi thế lớn của công nghệ in 3D là khả năng chế tạo các vật thể có hình dạng cũng như kết cấu phức tạp, ví dụ như các bộ phận rỗng hoặc có kết cấu đặc biệt bên trong. Công nghệ in 3D được ứng dụng trong nhiều lĩnh vực khác nhau như: - Thời trang - Giáo dục, nghiên cứu - Xây dựng - Giao thông - Quân sự - Y tế - - Hình 2.1 Một mô hình đang được in theo công nghệ FDM [22]. Có nhiều công nghệ khác nhau được phát triển để có thể in 3D, ví dụ như FDM, SLA, SLS. Trong đó, công nghệ FDM ( fused deposition modeling – tạo mô hình bằng cách hợp nhất lắng đọng) được sử dụng phổ biến hơn cả, chiếm tới
  23. 12 46% theo thống kê năm 2018 [22]. Công nghệ này tuy ra đời sau, nhưng có ưu điểm là giá thành rất rẻ nên có độ phổ biến cao, và đây cũng là công nghệ được lựa chọn để chế tạo phần khung vỏ cho mobile robot trong luận văn. 2.2.1.1 Quy trình tạo mẫu theo công nghệ in 3D FDM: - Tạo mô hình 3D: Mô hình 3D có thể được tạo bằng cách thiết kế trên các phần mềm chuyên dụng hoặc thông qua việc quét mẫu bằng máy quét laser (laser scanner). - Tạo file in 3D: Đây là quá trình tạo file để nạp trực tiếp vào máy in 3D. Quá trình này bản chất là nhằm chia mô hình ra thành từng lớp để có thể in 3D (slicing) được thực hiện dưới sự trợ giúp của các phần mềm chuyên dụng. Trong quá trình này, việc thiết lập các thông số, ví dụ như độ rỗng, nhiệt độ in, tốc độ in sẽ ảnh hưởng trực tiếp đến chất lượng vật thể in 3D được tạo thành. - In 3D vật thể: Trong quá trình này, máy in 3D sẽ in từng lớp xếp chồng lên nhau để tạo thành vật thể. Theo đó, vật liệu được sử dụng có thể là các sợi nhựa PLA hay ABS sẽ được kéo và làm nóng chảy khi đi qua module sinh nhiệt. Sau đó, theo sự di chuyển của đầu phun sẽ được in ra thành từng lớp xếp chồng lên nhau. Các lớp này trong quá trình nguội đi sẽ liên kết với nhau và tạo thành vật thể. - Hậu xử lý: Đây là quá trình loại bỏ các phần nâng đỡ vật thể trong quá trình in (support) hoặc đánh bóng vật thể theo nhiều phương pháp khác nhau để vật thể đạt độ bóng hoặc độ thẩm mỹ mong muốn. 2.2.1.2 Ưu, nhược điểm của công nghệ in 3D FDM: Công nghệ in 3D FDM có một số ưu, nhược điểm chính như được trình bày tại bảng 2-1. Bảng 2-1 Một vài ưu, nhược điểm của công nghệ in 3D FDM. Ưu điểm - Giá thành rẻ. - Nguyên liệu sử dụng đa dạng. - Độ phổ biến cao nên dễ tiếp cận. - Thích hợp cho quá trình tạo mẫu. Nhược điểm - Thời gian in rất lâu. - Các máy giá rẻ chỉ in được các vật liệu dễ nóng chảy như
  24. 13 PLA. - Việc thiết kế mô hình và thiết lập các thông số ảnh hưởng lớn đến chất lượng mô hình, do đó yêu cầu kinh nghiệm của người sử dụng. - Không phù hợp cho quá trình sản xuất hàng loạt. 2.2.2 Thiết kế, chế tạo khung vỏ của robot bằng công nghệ in 3D FDM. Mobile robot được thiết kế để đảm bảo các yêu cầu sau: - Dễ dàng tháo lắp. - Sắp xếp hợp lý các bộ phận. - Tiện lợi trong quá trình sử dụng. - Đủ độ cứng vững. - Có tính thẩm mỹ. Dựa trên các yêu cầu trên, mô hình 3D của robot được thiết kế như hình 2.2 và 2.3 và được hoàn thiện như trên hình 2.4. Hình 2.2 Mặt trước mô hình 3D mobile robot.
  25. 14 Hình 2.3 Mặt sau mô hình 3D của mobile robot. Hình 2.4 Mô hình mobile robot hoàn thiện.
  26. 15 2.3 Thiết kế mạch nguyên lý cho mobile robot Mạch nguyên lý của hệ thống được thiết kế như hình 2.5. Trong đó bao gồm 2 module chính: - Module truyền dữ liệu gồm 1 board Arduino và 1 chip NRF24L01+. Chương trình xử lý ảnh sẽ gửi dữ liệu tới mobile robot qua module truyền dữ liệu. - Module nhận dữ liệu chính là mobile robot, gồm 1 chip Arduino, các cảm biến, nguồn, động cơ, module L298 và 1 module NRF24L01+. Hình 2.5 Mạch nguyên lý của hệ thống gồm hai phần: module phát tín hiệu và mobile robot. 2.4 Thiết lập chế độ làm việc cho các linh kiện 2.4.1 Arduino Uno Board Arduino Uno được trọn làm bộ điều khiển trung tâm của robot. Board Arduino Uno được phát triển để hỗ trợ cho việc học tập, nghiên cứu, và các dự án tạo mẫu (phát triển các sản phẩm thử nghiệm). Board có các đặc tính kỹ thuật để đáp ứng cho mục đích của luận văn như:
  27. 16 - Tần số làm việc cao: 16MHz - Bộ nhớ flash: 32 KB - Số lượng chân vào ra số: 14 (6 chân có thể tạo xung PWM) - Số lượng chân tương tự: 6 - Hỗ trợ các giao tiếp SPI, I2C, Serial [9]. Arduino Uno sẽ thực hiện các nhiệm vụ chính sau: - Đọc tín hiệu từ cảm biến dò line. - Giao tiếp với module NRF24L01 để truyền và nhận dữ liệu. - Điều khiển hoạt động của robot dựa trên dữ liệu từ cảm biến dò line và dữ liệu nhận được qua giao tiếp không dây. - Xuất tín hiệu ra module L298 để điều khiển động cơ. Hình 2.6 Board Arduino Uno [9] 2.4.2 QTR – 5RC Để robot có thể bám đường thì các cảm biến hồng ngoại được sử dụng rất phổ biến do đặc điểm của đường dạng vạch (line) thường là nền đen vạch trắng hoặc nền trắng vạch đen. Tia hồng ngoại bị hấp thụ gần như hoàn toàn trên nền đen và bị phản xạ gần như hoàn toàn trên nền trắng giúp cho cảm biến hồng ngoại gần như là lựa chọn đơn giản và hiệu quả nhất khi muốn robot bám theo vạch. Có rất nhiều loại cảm biến hồng ngoại được sản xuất để sử dụng trong các ứng dụng khác nhau ví dụ như các cảm biến hồng ngoại tiệm cân hay các cảm biến
  28. 17 PIR. Trong số đó, QTR-RC là một loại cảm biến hồng ngoại được sản xuất để phục vụ việc dò line với các đặc điểm như gồm nhiều cặp led thu phát và giá trị trả về là liên tục. Một vài thông số của cảm biến như sau: Hình 2.7 Cảm biến QTR - 5RC [16]. - Điện áp sử dụng: 3.3~5VDC - Dòng tiêu thụ: <70mA - Khoảng cách tốt nhất với bề mặt đường là 4mm, tối đa 7mm - Kích thước nhỏ gọn: 69x12mm Nguyên lý hoạt động: Cảm biến gồm 5 cặp thu phát (Led và quang trở) được bố trí cách đều nhau. Nguyên lý làm việc của mỗi cặp thu phát như sau: Kể từ khi có tín hiệu phát từ Led, thời gian suy giảm điện áp trên quang trở sẽ tỉ lệ với mức độ phản xạ của tia hồng ngoại xuống nền. Thời gian suy giảm càng nhanh thì mức đô phản xạ càng lớn và ngược lại. Phương thức đo này có những ưu điểm như sau: - Không cần dùng đến phương pháp biến đổi ADC - Có khả năng thực hiện phép đo song song cho nhiều cặp cảm biến. - Việc đọc song song khiến cho khả năng sử dụng các Led được tối ưu hơn. Vậy, để đọc được dữ liệu từ một cặp thu phát trên cảm biến này thì phải thực hiên các bước như sau: - B1: Bật IR Led - B2: Thiết lập chân I/O. - B3: Chờ tối thiểu 10 us để điện áp lên mức cao.
  29. 18 - B4: Thiết lập chân I/O là đầu vào. - B5: Đo thời gian suy giảm điện áp trên chân I/O - B6: Tắt IR Led Với mức độ phản xạ mạnh thì thời gian suy giảm tín hiệu có thể chỉ là vài chục us. Trong khi với mức độ phản xạ yếu thì thời gian này có thể lên đến vài ms [16]. 2.4.3 Module thu phát sóng Radio nRF24L01 Module NRF24L01 được sử dụng để truyền nhận dữ liệu giữa module phát và module thu trên mobile robot. Trong đó, nRF24L01 là chip thu phát sóng radio ở dải tần 2.4-2.5 GHz do hãng Nordic Semiconductor sản xuất. Chip này có thể được thiết lập để hoạt động ở nhiều chế độ và có mức tiêu thụ năng lượng thấp. Hình 2.8 Module thu phát sóng radio NRF24L01 [12]. Một số đặc điểm của module NRF24L01 [12]: - Khoảng cách thu phát lên đến 100 m với địa hình ít vật cản. - Có khả năng truyền nhận tín hiệu 2 chiều (vừa đóng vai trò module phát và module thu được cùng một lúc). - Tần số thu phát sóng radio: 2.4Ghz - Giao tiếp với vi điều khiển thông qua giao tiếp SPI Trong luận văn, các module NRF24L01 sẽ được thiết kế để thực hiện giao tiếp một chiều với nhau, và giao tiếp với Arduino Uno thông qua giao tiếp SPI.
  30. 19 2.4.4 Động cơ DC Hình 2.9 Động cơ DC GA25 [10] Động cơ được trang bị cho robot là động cơ DC. Đây là loại động cơ chạy bằng dòng điện một chiều, tốc độ và chiều quay của động cơ có thể được thay đổi thông qua chiều và cường độ điện áp đặt lên hai cực của động cơ. Khi so sánh với các loại động cơ khác như động cơ bước, hay động cơ RC servo thì động cơ DC là phù hợp nhất đối với mobile robot. Mobile robot trong luận văn có khối lượng nhỏ và không có yêu cầu nào về chịu tải nên không cần sử dụng động cơ có công suất lớn. Do đó, động cơ DC được chọn chỉ cần thỏa mãn các yêu cầu sau: - Công suất trung bình. - Điện áp làm việc trong khoảng nguồn cấp bằng pin của robot là 12V. - Giá thành thấp. Từ đó, động cơ DC GA25 được chọn với một vài thông số cơ bản như sau [10]: - Điện áp hoạt động: 3 – 12 Volt DC - Tỉ số truyền hộp giảm tốc: 1:34 - Số xung của encoder: 374 xung/ vòng - Tốc độ không tải: 320 rpm - Dòng không tải: 80 mA
  31. 20 - Công suất định mức: 13.2W - Dòng khi động cơ bị giữ: 2.29A - Momen khi bị giữ: 7.96 kgf.cm 2.4.5 Module điều khiển động cơ L298 Hình 2.10 Module điều khiển động cơ L298 [20] Thông thường để điều khiển một động cơ DC thì phải dùng một mạch cầu để có thể điều khiển cả chiều quay và tốc độ. IC L298 với thiết kế gồm 2 mạch cầu tích hợp được ứng dụng rất phổ biến trong điều khiển động cơ. L298 có thể điều khiển động cơ bước hoặc 2 động cơ DC đồng thời. IC này có một số đặc điểm cơ bản sau [20]: - Điện áp nuôi có thể lên đến 46V - Dòng DC làm việc lên đến 4A - Bảo vệ quá nhiệt Module L298 chứa hai mạch cầu H nên có thể được sử dụng để điều khiển tốc độ và chiều quay của 2 động cơ DC của robot (hình 2.11). Các trạng thái quay của từng động cơ (quay thuận, quay ngược hay dừng lại) có thể được điều khiển thông qua việc thiết lập mức logic của các chân In1 đến In4 của module. Ngoài ra, tốc độ của động cơ cũng có thể được điều khiển qua module nhờ phương pháp PWM. PWM là phương pháp điều chỉnh điện áp trung bình trên tải bằng cách thay đổi độ rộng xung. Về bản chất thì PWM chính là việc đóng ngắt nguồn cấp cho tải theo một chu kỳ nhất định. Việc đóng ngắt này được thực hiện bằng các khóa điện tử như Transistor hay MOSFET. Các xung có độ rộng khác nhau sẽ cung cấp điện áp trung bình trên tải khác
  32. 21 nhau. Điện áp trung bình đầu ra khi sử dụng phương pháp PWM được tính gần đúng theo: 푡 푈 = 푈 . = 푈 . Với: - 푈 là điện áp trung bình - 푈 là điện áp tối đa của nguồn - t là thời gian xung ở mức logic cao - d (duty cycle) là phần trăm giữa thời gian xung ở mức logic cao so với chu kỳ xung. Vậy, từ hành vi của robot, các trạng thái về chiều quay cũng như tốc độ của các động cơ sẽ được thiết lập bằng cách điều khiển các chân tương ứng và ghi giá trị PWM vào module L298. Hình 2.11 Cấu tạo của IC điều khiển động cơ L298. 2.4.6 Thiết lập giao tiếp cho robot Dữ liệu được truyền từ máy tính xuống robot theo nguyên lý được trình bày trên hình 2.12. Hình 2.12 Sơ đồ truyền dữ liệu từ chương trình xử lý ảnh đến robot.
  33. 22 - Chương trình xử lý ảnh trên máy tính sẽ truyền dữ liệu xuống module phát là board Arduino thông qua giao tiếp Serial. Đây là giao tiếp nối tiếp với tốc độ Baud mặc định 9600, đã được tích hợp sẵn trên Arduino. - Hai module NRF24L01 có khả năng truyền nhận hai chiều, giao tiếp qua sóng radio ở tần số 2.4 GHz. - Các board Arduino kết nối với module NRF24L01 qua giao tiếp SPI. Đây là một loại giao tiếp nối tiếp đồng bộ khoảng cách ngắn thường được dùng trong hệ thống nhúng. Các bước để giao tiếp giữa board Arduino và module NRF24L01 như sau: + Thiết lập chân giao tiếp + Tạo mảng dữ liệu + Khởi tạo địa chỉ giao tiếp + Gán địa chỉ giao tiếp + Thiết lập mức khuếch đại + Thiết lập module NRF24L01 là module nhận hay phát dữ liệu + Truyền, nhận dữ liệu. 2.5 Viết chương trình điều khiển cho mobile robot Mobile robot hoạt động theo nguyên lý tổng quan như trên hình 2.13. Đầu tiên, mobile robot sẽ khởi tạo trạng thái các chân, khởi tạo các biến và các thông số cho việc đọc tín hiệu cảm biến, điều khiển động cơ, giao tiếp Serial và giao tiếp không dây qua sóng radio. Sau đó, robot sẽ tự động tiến hành việc căn chỉnh việc đọc tín hiệu cho cảm biến dò line để sẵn sàng cho quá trình bám line.
  34. 23 Hình 2.13 Nguyên lý hoạt động của mobile robot Tiếp theo, mobile robot sẽ kết hợp giữa việc đọc cảm biến dò line và việc đọc lệnh điều khiển nhận được từ chương trình xử lý ảnh để đi đến đích. Trong quá trình di chuyển, nếu lệnh điều khiển không phải là các lệnh đặc biệt như lệnh yêu cầu dừng lại (từ phía người dùng hoặc là đã đi đến đích), thì robot di chuyển chủ yếu dựa vào việc đọc cảm biến dò line và tiến hành bám line. Chỉ khi gặp các trường hợp ngã rẽ đặc biệt thì robot sẽ sử dụng dữ liệu điều khiển từ chương trình xử lý ảnh để xác định nên di chuyển như thế nào. Sự khác biệt giữa hành vi của robot được thiết kế trong luận văn khi gặp ngã rẽ so với các robot bám line thông thường khi dò đường được so sánh trong bảng 2-2.
  35. 24 Bảng 2-2. So sánh hành vi của robot trong luận văn và các robot bám vạch sử dụng thuật toán bám đường trái hoặc bám đường phải Loại ngã rẽ Robot trong luận văn Robot dò Robot dò đường bám đường bám trái phải Đường cụt Quay đầu. Quay đầu Quay đầu Tuy nhiên trong thực tế hiếm gặp trường hợp này vì luôn đi theo sự dẫn hướng của chương trình xử lý ảnh. Ngã rẽ phải Rẽ phải Rẽ phải Rẽ phải Ngã rẽ trái Rẽ trái Rẽ trái Rẽ trái Ngã rẽ phải và đi Đọc hướng điều khiển từ Đi thẳng Rẽ phải thẳng chương trình xử lý ảnh Ngã rẽ trái và đi Đọc hướng điều khiển từ Rẽ trái Đi thẳng thẳng chương trình xử lý ảnh Ngã rẽ chữ T Đọc hướng điều khiển từ Rẽ trái Rẽ phải chương trình xử lý ảnh Ngã rẽ chữ thập Đọc hướng điều khiển từ Rẽ trái Rẽ phải chương trình xử lý ảnh Bảng 2-2 cho thấy, đối với mobile robot bám vạch trong luận văn thì việc xác định ngã rẽ chỉ còn lại những trường hợp là đường cụt, ngã rẽ phải, ngã rẽ trái, và các trường hợp còn lại thì có bản chất như nhau cần có sự dẫn hướng của chương trình xử lý ảnh nên có thể gọi chung là gặp ngã rẽ. Nhờ việc đọc hướng điều khiển trực tiếp từ chương trình xử lý ảnh, nên robot trong luận văn có khả năng đi chính xác đến đích luôn so với việc phải dò đường, bám trái bám phải như các robot dò đường đang được so sánh. Việc xác định ngã rẽ của robot bám vạch trong luận văn được thực hiện qua việc đọc tín hiệu trả về từ cảm biến dò
  36. 25 line như bảng 2-3. Cảm biến QTR – 5RC là loại cảm biến trả về các tín hiệu dưới dạng Analog. Độ lớn của các tín hiệu này tỉ lệ với độ nằm gần vạch của các cặp thu phát hồng ngoại. Cặp thu phát nào càng nằm gần vạch thì tín hiệu analog tương ứng có độ lớn càng cao và ngược lại. Từ đó, các ngưỡng lọc trên và lọc dưới được xác định trên thực nghiệm để xét việc cặp thu phát nào nằm trên vạch hay ngoài vạch. Các điều kiện trên bảng 2-3 như sau: , 푖 > 훼 { , 푖 < 훽 , ℎô푛𝑔 é푡 Với: - Di: Giá trị analog tín hiệu của cặp thu phát thứ i. - 훼: Giá trị ngưỡng lọc trên. - 훽: Giá trị ngưỡng lọc dưới. Bảng 2-3 Kết quả xác định ngã rẽ và hành vi của robot dựa trên tín hiệu trả về của cảm biến dò line. Cặp thu Cặp thu Cặp thu Cặp thu Cặp thu Kết quả và hành vi phát 0 phát 1 phát 2 phát 3 phát 4 O O O O O Gặp ngã rẽ Ngã rẽ phải hoặc ngã rẽ phải và đi thẳng. Cần đi thêm khoảng 1 inch nếu đọc lại tín hiệu là đường X NA O NA O cụt thì rẽ phải. Nếu không phải tức là trường hợp ngã rẽ phải và đi thẳng. Ngã rẽ trái hoặc ngã rẽ O NA O NA X trái và đi thẳng. Cần đi thêm khoảng 1 inch nếu
  37. 26 đọc lại tín hiệu là đường cụt thì rẽ trái. Nếu không phải tức là trường hợp ngã rẽ trái và đi thẳng. X X X X X Đường cụt Không gặp ngã rẽ, bám X X X X O vạch Không gặp ngã rẽ, bám X X X O O vạch Không gặp ngã rẽ, bám X X X O X vạch Không gặp ngã rẽ, bám X X O O X vạch Không gặp ngã rẽ, bám X X O X X vạch Không gặp ngã rẽ, bám X O O X X vạch Không gặp ngã rẽ, bám X O X X X vạch Không gặp ngã rẽ, bám O O X X X vạch Không gặp ngã rẽ, bám O X X X X vạch
  38. 27 CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH XỬ LÝ ẢNH VÀ ĐỊNH HƯỚNG CHO MOBILE ROBOT 3.1 Mục đích và nội dung của chương trình Chương trình xử lý ảnh được viết bằng ngôn ngữ C++ kết hợp với việc sử dụng thư viện OpenCV có mục đích định vị, tìm đường và dẫn hướng cho robot trong quá trình di chuyển theo thời gian thực. Để đạt được những mục tiêu đó, chương trình cần phải giải quyết được các nội dung sau: - Có khả năng tương tác với người sử dụng. Người dùng chương trình có thể chọn vị trí đích cho robot bằng cách kích chuột. - Tạo bản đồ và xác định đường đi bằng công nghệ xử lý ảnh, Tìm đường ngắn nhất đến đích theo thuật toán tìm đường. - Định vị robot. Chương trình phải có khả năng định vị robot theo thời gian thực để cập nhật vị trí của robot. - Giao tiếp với thiết bị ngoại vi để gửi tín hiệu dẫn hướng cho robot theo thời gian thực. 3.2 Ứng dụng công nghệ xử lý ảnh trong luận văn 3.2.1 Tổng quan về xử lý ảnh Theo [25], Xử lý ảnh hay còn gọi là thị giác máy (Computer Vision) là một lĩnh vực liên quan đến việc xử lý các dữ liệu thu được từ ảnh để giúp máy tính có được các thông tin cần thiết từ ảnh. Từ góc nhìn kỹ thuật thì nhiệm vụ của xử lý ảnh là cố gắng tiếp cận với sự tự động hóa mà hệ thống thị giác của con người có thể thực hiện. Các nhiệm vụ của xử lý ảnh bao gồm thu thập, xử lý, phân tích và hiểu được các loại ảnh, và từ đó trích lọc ra các lớp dữ liệu về thế giới thực để có thể thu được dữ liệu dạng số. Các lĩnh vực con của xử lý ảnh bao gồm tái tạo cảnh, phát hiện sự kiện, nhận diện vật thể, ước lượng chuyển động. Xử lý ảnh được ứng dụng rộng rãi trong nhiều lĩnh vực từ gia đình cho đến công nghiệp. Một số ứng dụng của xử lý ảnh có thể được kể đến như: - Tự động chẩn đoán: Ví dụ trong các lĩnh vực chế tạo. - Trợ giúp con người trong các nhiệm vụ phân loại, nhận diện. - Kiểm soát, điều khiển quá trình: Ví dụ trong lĩnh vực robot công nghiệp.
  39. 28 - Phát hiện sự kiện. Ví dụ: Các lĩnh vực giám sát bằng thị giác hoặc đếm người. - Tương tác. Ví dụ: Trong các lĩnh vực hỗ trợ tương tác giữa người và máy. - Mô hình hóa đối tượng hoặc môi trường xung quanh. Ví dụ: Trong các lĩnh vực y tế. - Định hướng. Ví dụ: Trong các loại phương tiện tự hành hoặc mobile robot. 3.2.2 Khai thác thư viện OpenCV để hỗ trợ quá trình xử lý ảnh trong luận văn. Luận văn sử dụng thư viện mã nguồn mở OpenCV (Open Source Computer Vision Library) phiên bản 3.2 để hỗ trợ trong quá trình xử lý ảnh. Đây là một thư viện có thể được áp dụng khi sử dụng các ngôn ngữ lập trình khác nhau như C++ hay Python. Nhờ có sự trợ giúp của OpenCV, người lập trình có thể thuận tiện và nhanh chóng hơn trong việc xây dựng các chương trình, ứng dụng liên quan đến xử lý ảnh. OpenCV bao gồm hơn 2500 thuật toán xử lý ảnh và thuật toán máy học (machine learning) đã được tối ưu. Các thuật toán này có thể được sử dụng để nhận diện khuôn mặt, phân biệt vật thể, phân loại hành động của con người, truy bắt chuyển động của vật thể hay giải quyết rất nhiều các bài toán xử lý ảnh và máy học khác. OpenCV chính thức ra mắt vào năm 1999 và tính đến nay, sau nhiều phiên bản được phát hành thì phiên bản chính thức mới nhất là bản 4.3 được phát hành vào ngày 3/4/2020. Hình 3.1 Các module chính trong thư viện OpenCV [25]
  40. 29 OpenCV gồm các module chính như trên hình 3.1: - Module CV hỗ trợ quá trình xử lý ảnh. - Module MLL gồm các công cụ thống kế, phân loại hỗ trợ quá trình máy học (machine learning). - HighGUI hỗ trợ quá trình tạo giao diện, tương tác với người dùng. - CXCore bao gồm các cấu trúc dữ liệu cơ bản [29]. 3.2.3 Một số khái niệm và thuật ngữ quan trọng về xử lý ảnh được sử dụng trong luận văn - Điểm ảnh (Pixel): Điểm ảnh là đơn vị nhỏ nhất tạo thành ảnh. Mỗi ảnh có thể coi như một tập hợp gồm nhiều điểm ảnh. Ảnh có độ phân giải càng cao thì sẽ chứa càng nhiều điểm ảnh dù cùng một kích thước. Ảnh có độ phân giải càng cao thì độ sắc nét và chi tiết càng gần với thực tế, nhưng khi được xử lý sẽ khiến tốc độ chương trình chậm đi do khối lượng dữ liệu nhiều hơn. - Ảnh số (Digital Image): Đây là các ảnh đã được số hóa nhằm phục vụ quá trình lưu trữ hoặc xử lý , trích xuất dữ liệu. Có thể coi ảnh số là một ma trận nhiều chiều chứa dữ liệu đã được số hóa của ảnh. - Không gian màu: Có nhiều cách khác nhau để đánh giá một màu sắc được tạo thành từ những yếu tố nào. Và mỗi cách đánh giá, biểu diễn đó là một không gian màu. Do đó, cùng một ảnh nhưng có thể có ma trận dữ liệu khác nhau khi lưu trữ ở không gian màu khác nhau. Có hai không gian màu cơ bản thường được sử dụng là RGB và HSV. Trong không gian màu RGB, mỗi màu sắc cụ thể đều có thể coi như một sự pha trộn kết hợp theo một tỉ lệ nhất định giữa ba màu cơ bản là Đỏ (Red), Lục (Green) và Lam (Blue) [24]. Ảnh số thu được trên OpenCV bao giờ mặc định cũng được lưu trên không gian màu này. Trong không gian màu HSV thì mỗi màu sắc cụ thể lại được coi như sự kết hợp giữa ba yếu tố là Sắc thái (Hue), Độ bão hòa màu (Saturtion) và Cường độ sáng (Value -Brightness) [26]. Trong đó, Hue sẽ quyết định giá trị màu sắc cơ bản, Saturation sẽ quyết định độ đậm nhạt của màu (mức độ có mặt của màu, hay còn gọi là độ bão hòa màu) và giá trị Value sẽ quyết định mức độ sáng tối của màu. Việc phân chia theo ba yếu tố như vậy rất thuận lợi trong các ứng dụng liên quan đến việc nhận diện màu sắc, do đó ảnh số ở không gian màu RGB thường được chuyển sang không gian màu HSV.
  41. 30 - Ảnh xám (grey scale image) và ảnh nhị phân (binary image). Khác với ảnh màu, ảnh xám là ảnh được lưu ở không gian một chiều, mỗi pixel có giá trị từ 0 đến 255 thể hiện mức xám khác nhau. Ảnh xám được tạo ra từ sự kết hợp giữa các thành phần không gian màu của ảnh màu. Ảnh nhị phân là ảnh một chiều mà mỗi điểm ảnh chỉ có hai giá trị là 0 hoặc 1. Hình 3.2 Không gian màu RGB [24] Hình 3.3 Không gian màu HSV [26]
  42. 31 3.3 Xây dựng nguyên lý hoạt động của chương trình xử lý ảnh Chương trình xử lý ảnh có nguyên lý hoạt động như trên hình 3.4. Khi hoạt động, đầu tiên chương trình sẽ tạo bản đồ số từ ảnh thu được từ camera. Bước này gồm một loạt các quá trình như: Cho phép người sử dụng xác định vùng quan tâm trên ảnh bằng kỹ thuật ROI, xác định line bằng kỹ thuật phân ngưỡng nhị phân ngược, thu gọn kích thước của line, tiến hành chia lưới để phục vụ cho thuật toán tìm đường sẽ được áp dụng sau. Hình 3.4 Nguyên lý hoạt động của chương trình xử lý ảnh.
  43. 32 Sau đó, chương trình sẽ khởi tạo quá trình nhận diện robot. Trong quá trình này, người dùng sẽ xác định các vùng đánh dấu trên robot và tiến hành thay đổi các giá trị HSV để thu được dữ liệu tốt nhất phục vụ cho quá trình chương trình xử lý ảnh truy bắt robot về sau. Tiếp đến, người dùng có thể chọn vị trí đích của robot thông qua việc kích chuột trên bản đồ. Sau khi xác nhận, quá trình tìm đường tự động bằng thuật toán A* sẽ diễn ra. Sau khi tìm được đường đi phù hợp, chương trình sẽ truy bắt robot và gửi lệnh điều khiển theo thời gian thực hướng dẫn robot đi tới đích. 3.4 Tạo bản đồ 3.4.1 Dùng ROI để xác định vùng hoạt động của robot ROI là viết tắt của Region of Interest – vùng quan tâm, là một kỹ thuật rất cơ bản nhưng rất hữu dụng trong xử lý ảnh [2]. Kỹ thuật này giúp thiết lập lên ảnh các vùng quan tâm, từ đó, mọi việc tính toán chỉ xảy ra ở vùng quan tâm. Điều này mang lại các lợi ích sau: - Khối lượng tính toán được giảm bớt. - Các vùng không quan tâm được loại bỏ đồng nghĩa với việc giảm thiểu được khả năng tính toán sai do ảnh hưởng của “nhiễu”. Hình 3.5 Bản đồ trước khi áp dụng ROI (trái) và bản đồ sau khi áp dụng ROI (phải).
  44. 33 Chương trình xử lý ảnh trong luận văn cho phép người sử dụng sự kiện chuột để khoanh vùng ROI. Trong mô hình được xây dựng để thử nghiệm thì khoảng cách giữa camera và bản đồ là tương đối gần. Do đó, kỹ thuật ROI chỉ được sử dụng để cắt đi một phần nhỏ bản đồ để tránh việc một phần của robot trong khi di chuyển sẽ nằm ngoài vùng quan tâm. Tuy chỉ giảm được một phần nhỏ khối lượng tính toán, nhưng việc áp dụng ROI vẫn có ý nghĩa quan trọng trong việc giúp ảnh có tính chất bimodal, thuận lợi hơn trong việc xác định đường. Trên hình 3.5, việc áp dụng ROI giúp làm giảm đi một phần bản đồ và quan trọng hơn và loại bỏ được phần màu vàng của nền nhà, từ đó giúp ảnh có tính chất bi- modal, giúp chương trình thuận lợi hơn trong quá trình phân ngưỡng tìm line. 3.4.2 Xác định đường đi của robot (tìm line) Vạch trên bản đồ chính là các đường để giúp AGV có thể di chuyển. Do đó, chương trình cần xác định được đâu là vạch trên bản đồ để có thể áp dụng các thuật toán tìm đường. Dù là vạch được tạo từ băng dính thường, sơn hay vạch từ (magnetic line) thì đều có đặc điểm là màu sắc thường tương phản lớn so với nền. Vì vậy, thuật toán phân ngưỡng nhị phân ngược được áp dụng để tìm đường [2]: 0, 푠 ( , ) > 푡ℎ 푒푠ℎ 푠푡( , ) = { 푣 푙, 푠 ( , ) ≤ 푡ℎ 푒푠ℎ Trong đó: 푠푡( , ) là giá trị của pixel sau khi phân ngưỡng. 푠 ( , ) là giá trị gốc của pixel trước khi phân ngưỡng. 푣 푙 là giá trị lớn nhất của pixel. 푡ℎ푒푠ℎ là ngưỡng dùng để phân ngưỡng. Việc xác định Thresh để cho ra kết quả tốt nhất tương đối phức tạp vì giá trị này phụ thuộc vào bản đồ trên thực tế, điều kiện ánh sáng chiếu vào bản đồ. Nếu chọn giá trị này không chính xác sẽ khiến việc xác định line không chính xác (thừa hoặc mất line). Do đó, chương trình được xây dựng với giá trị thresh nằm tại một thanh trượt. Điều này giúp người dùng thay đổi một cách nhanh chóng các giá trị thresh và xem kết quả thu được để từ đó có thể tinh chỉnh cho ra kết quả tốt nhất.
  45. 34 Trong điều kiện ảnh thỏa mãn tính chất bi-modal histogram (ảnh có histogram dạng phân thành hai cực gần đều) thì có thể dùng phân ngưỡng Otsu (Otsu’ method) để tìm ngưỡng một cách tự động [6]. Kết quả thu được khi thử nghiệm trên 2 bản đồ (hình 3.6 và 3.7) cho thấy vạch được xác định hoàn toàn chính xác và không bị nhiễu mặc dù điều kiện ánh sáng là không đồng đều, các vùng trên ảnh có độ sáng không đều nhau. Hình 3.6 Kết quả xác định vạch theo bằng phương pháp phân ngưỡng nhị phân ngược trên bản đồ 1. Hình 3.7 Kết quả xác định vạch theo bằng phương pháp phân ngưỡng nhị phân ngược trên bản đồ 2.
  46. 35 3.4.3 Thu nhỏ kích thước vạch Khác với các loại bản đồ khác, đường đi của AGV bám vạch là vạch với đặc điểm dài, và mảnh. Điều này khiến cho việc chia lưới mỏng gặp nhiều khó khăn do khả năng xảy ra tình trạng sai hoặc thiếu thông tin về vạch. Do đó, mỗi pixel trên ảnh sẽ được xác định là một nút. Vì vậy, cần phải làm giảm kích thước của vạch để phần nào giảm được khối lượng tính toán mà vẫn đảm bảo không làm sai lệch dữ liệu tính toán. Có thể sử dụng các thuật toán tự động như skeleton để thu nhỏ vạch, nhưng nhược điểm của nó là sinh ra các đường nét thừa và làm đứt vạch. Đây là những điều không thể chấp nhận được vì nó làm sai lệch tính chất thông tin về đường đi của robot. Do đó, hình thái co ảnh kết hợp với thanh trượt quyết định giá trị kernel được sử dụng để thu nhỏ đường đi. Phép toán hình thái co ảnh (erosion) [2]: 푠푡( , ) = min 푠 ( + ′, + ′) ′, ′∈ 푒 푛푒푙 Trong đó: 푠푡( , ) là giá trị của pixel sau khi áp dụng co ảnh. 푠 ( + ′, + ′) là giá trị pixel thuộc vùng ma trận mỏ neo có vị trí + ′, + ′. 푒 푛푒푙 là kích thước của ma trận mỏ neo. Kết quả trên hình 3.8 và 3.9 cho thấy phạm vi của vạch giảm đi đáng kể sau khi áp dụng thuật toán co ảnh. Phạm vi của vạch giảm đi đồng nghĩa với việc số nút thuộc vạch cũng giảm, từ đó sẽ làm tăng tốc độ tìm đường khi áp dụng thuật toán A* vì số nút phải xét giảm.
  47. 36 Hình 3.8 Kết quả làm giảm kích thước vạch trên bản đồ 1 bằng phép toán co ảnh. Hình 3.9 Kết quả làm giảm kích thước vạch trên bản đồ 2 bằng phép toán co ảnh. 3.4.4 Chia nút và xác định thông số của các nút Thuật toán tìm đường được thực hiện với cơ sở là xét các nút. Do đó, bản đồ cần được chia thành các nút với đầy đủ các thông số để có thể áp dụng thuật toán tìm đường. Ví dụ về việc chia nút cho một bản đồ được thể hiện trên hình 3.10. Với đặc tính của vạch là kích thước dài và mảnh, nên để không bỏ xót hoặc gây sai lệch thông tin về vạch thì mỗi pixel trên ảnh sẽ được gán là một nút với các dữ
  48. 37 liệu sau [8]: - Vị trí của nút. - Nút có thuộc đường hay không - Giá trị chi phí tổng - Giá trị chi phí từ nút xuất phát - Giá trị chi phí tương đối đến đích - Có phải là nút xuất phát hay nút đích không - Đã nằm trong danh sách các nút đã xét chưa - Vị trí nút mẹ của nút đó Hình 3.10 Ví dụ về việc chia lưới trong một bản đồ mà đường đi có kích thước lớn [8]. 3.5 Ứng dụng thuật toán Camshift trong việc truy bắt, định vị robot. 3.5.1 Giới thiệu thuật toán Camshift. Thuật toán Camshift là một thuật toán dạng phân đoạn ảnh được phát triển bởi Gary Bradski. Thuât toán này dựa trên nền của thuật toán meanshift nhưng được phát triển hơn với ưu điểm là kích thước của cửa sổ lọc có thể thay đổi. Thuật toán Camshift thường được sử dụng trong truy bắt đối tượng theo thời gian thực (real-time object tracking).
  49. 38 3.5.1.1 Thuật toán meanshift Hình 3.11 Cửa sổ lọc trượt đến trọng tâm của tập hợp điểm [15]. Thuật toán meanshift hoạt động dựa trên nguyên lý tìm cực đại của phân phối xác suất. Trên hình 3.11 các chấm đỏ thể hiện một tập hợp các điểm (có thể là phân phối các pixel hoặc histogram back projection – hình chiếu ngược histogram). Cửa sổ lọc được tạo sẵn (ở đây là hình tròn xanh da trời C1 với tâm là C1_o). Ý tưởng của thuật toán meanshift là liên tiếp dịch chuyển cửa sổ lọc này cho đến khi hội tụ tại trọng tâm của tập hợp các điểm. Rõ ràng, trong phạm vi C1 thì tâm của C1 là C1_o không trùng với trọng tâm của tập hợp điểm trong vùng này là C1_r. Do đó, cửa sổ lọc sẽ trượt đến vị trí mới sao cho tâm của nó trùng với C1_r. Tại vị trí mới này của cửa sổ lọc, thuật toán lại tiếp tục tính trọng tâm của tập hợp điểm trong phạm vi cửa sổ lọc, so sánh nó với trọng tâm cửa cửa sổ lọc và tiếp tục trượt cửa sổ lọc đi. Cuối cùng, tâm của cửa sổ lọc sẽ hội tụ tại tâm của tập hợp điểm đã cho. Và như vậy, cuối cùng, cửa sổ lọc thu được có phân phối các điểm là lớn nhất [15]. 3.5.1.2 Thuật toán Camshift Thuật toán Camshift về cơ bản cũng giống như thuật toán meanshift, tức là cũng hoạt động dựa trên nguyên lý tìm cực đại của phân phối xác suất. Nhưng điểm khác biệt quan trọng là kích thước của cửa sổ lọc thay đổi liên tục thích nghi theo kích thước cũng như hướng quay của đối tượng. Đây là điều quan trọng trong thực tế vì đối tượng truy bắt có thể xoay hướng cũng như có kích thước thay đổi do khoảng cách từ đối tượng đến camera thay đổi. Do đó, kích thước
  50. 39 của cửa sổ lọc thay đổi thích nghi theo đối tượng sẽ giúp nâng cao độ chính xác của việc truy bắt. Hình 3.12 thể hiện kết quả truy bắt đối tượng cụ thể là chiếc ô tô. Có thể thấy được, khi ô tô tiến gần hơn tới camera thì kích thước của nó cũng lớn hơn. Tuy nhiên, kích thước của cửa sổ lọc (hình chữ nhật màu xanh lá cây) là không thay đổi trong cả quá trình này. Điều này dẫn đến việc thuật toán vẫn truy bắt được đối tượng nhưng dần dần đã lệch khỏi tâm của đối tượng và khiến cho khả năng không truy bắt được đối tượng tăng lên. Trong khi đó, hình 3.13 thể hiện kết quả truy bắt đối tượng bằng thuật toán Camshift. Có thể thấy, vì kích thước của cửa sổ lọc thay đổi thích nghi với kích thước của đối tượng, nên kết quả truy bắt không bị lệch khỏi đối tượng khi đối tượng thay đổi kích thước.
  51. 40 Hình 3.12 Trong thuật toán meanshift, kích thước của cửa sổ lọc không thay đổi theo sự thay đổi của đối tượng [15].
  52. 41 Hình 3.13 Trong thuật toán Camshift, kích thước và hướng của cửa sỏ lọc thay đổi theo sự thay đổi của đối tượng [15].
  53. 42 3.5.2 Truy bắt robot theo thuật toán Camshift 3.5.2.1 Giới thiệu về histogram Histogram là một phương pháp biểu diễn dữ liệu dưới dạng phân phối. Trong xử lý ảnh, dữ liệu dùng để tạo histogram rất đa dạng, ví dụ có thể là cường độ ảnh xám, hoặc giá trị nào đó trong dải HSV, RGB. Để có thể tạo được histogram thì một dải các bin (các vùng giới hạn dữ liệu) cần phải được tạo. Sau đó, dữ liệu nằm trong dải giá trị của bin nào thì sẽ được thống kê vào bin tương ứng. Tiêu chí để xét việc thống kê, phân loại này phụ thuộc vào mục đích của việc tạo Histogram. Vẽ đồ thị giá trị thống kê theo các bin này thì sẽ thu được biểu đồ histogram. Dữ liệu khi được biểu diễn dưới dạng biểu đồ histogram sẽ cung cấp cho người sử dụng cái nhìn rõ ràng, trực quan hơn về việc phân phối của dữ liệu, từ đó xử lý cho phù hợp. Hình 3.14 Sự thay đổi của Histogram khi dải chia lưới thay đổi [2]. Hình 3.14 cho thấy kết quả của việc tạo Histogram thay đổi theo dải chia lưới. Khi chia làm quá ít dải, kết quả Histogram lập được không cho thấy nhiều ý nghĩa về sự phân bố của dữ liệu. Còn việc chia lưới dày cho kết quả chính xác hơn nhưng có thể sẽ tạo ra nhiều đỉnh cục bộ và giảm đi ý nghĩa về việc đưa ra cái nhìn tổng thể về sự phân bố của dữ liệu.
  54. 43 3.5.2.2 Giới thiệu về histogram back projection Back projection là việc sử dụng histogram trong việc tìm thuộc tính liên quan đến histogram đó trong ảnh. Mỗi pixel trên ảnh đầu vào sẽ được thay thế bởi giá trị tương ứng về xác suất của dữ liệu về pixel đó trong histogram đã tạo được. Do đó, back projection có thể dùng để tạo dữ liệu truy bắt trong thuật toán Meanshift và Camshift [13]. Hình 3.15 Ảnh gốc, histogram và backprojection tương ứng [13]. 3.5.2.3 Xác định vị trí và xác định hướng của robot. Thuật toán Camshift có thể được áp dụng để truy bắt robot, từ đó xác định vị trí và hướng của robot [3]. Để có thể áp dụng được thuật toán như trên thì điều quan trọng là tạo ra được dữ liệu cho việc truy bắt (ở đây là các tập hợp điểm để thuật toán tìm phân bố cực đại). Do đó, trên thân robot được đánh dấu bằng hai vùng có màu sắc khác nhau (hình 3.16) thỏa mãn các yêu cầu: - Nếu có nhiều robot hoạt động thì các robot được đánh dấu khác nhau để có thể phân biệt được - Đánh dấu sao cho có thể dựa vào vùng đánh dấu để xác định được hướng của robot. - Việc đánh dấu có thể thực hiện bằng băng dính màu hoặc đèn led trong điều kiện không đủ ánh sáng.
  55. 44 Hình 3.16 Robot tự hành được đánh dấu nhận dạng bởi hai vùng màu khác nhau trên thân Từ đó, dữ liệu phục vụ truy bắt thông qua việc tính histogram back projection cho hai vùng này được thực hiện như sau: - Thiết lập ROI để giới hạn phạm vị tính toán trên vùng đánh dấu. - Lọc dải màu và tính histogram. Từ đó, robot sẽ được định vị thông qua việc liên tiếp tính back projection và áp dụng thuật toán camshift cho mỗi vòng lặp của chương trình (hình 3.17). Các giá trị HSV dùng để phân ngưỡng được căn chỉnh để đạt kết quả định vị tốt nhất như hình 3.18. Kết quả cho thấy sau khi chọn được các giá trị HSV thích hợp thì việc phân ngưỡng đạt kết quả rất tốt, nhiễu trên ảnh được loại bỏ rất nhiều.
  56. 45 Hình 3.17 Kết quả định vị mobile robot tại một số vị trí khác nhau.
  57. 46 Hình 3.18 Kết quả giảm nhiễu nhờ việc tinh chỉnh các giá trị HSV dùng để phân ngưỡng. 3.6 Tìm đường cho robot Có thể phân loại cách giải quyết bài toán tìm đường cho robot theo hai trường hợp như sau: Trường hợp 1: Robot chưa biết trước thông tin của bản đồ. Trong trường hợp này thì bản đồ là đã có, nhưng do không sử dụng cảm biến có thể bao quát được bản đồ như camera, nên thông tin về bản đồ đối với robot coi như là chưa có. Trong trường hợp này thì dựa theo dạng bản đồ mà robot sẽ được lập trình để đi tới đích một cách thủ công hoặc phải được lập trình theo hướng tiến hành chạy dò line. Sau khi đã dò line xong, robot thông qua thuật toán sẽ thu được một đường thích hợp để đi đến đích. Một số thuật toán dò đường phổ biến như sau [30]: - Thuật toán bám theo tường: Thuật toán này được áp dụng với điều kiện là mê cung liền mạch, không bị đứt đoạn. Với mê cung đã thỏa mãn điều kiện trên, robot chỉ cần liên tục bám theo tường trái hoặc tường phải thì có thể đi đến đích. Hình 3.19 Thuật toán tìm đường theo quy tắc bám phải [30].
  58. 47 - Thuật toán Pledge: Phương pháp thực hiện của thuật toán này là sự kết hợp giữa việc bám tường nhưng có xét đến việc đếm góc quay. Nhờ đó, robot có thể đi đến đích (thoát khỏi mê cung) trong các bản đồ phức tạp hơn, như việc robot được đặt ở vị trí xuất phát bên trong nhưng tách hẳn ra khỏi phần còn lại của bản đồ. Hình 3.20 Thuật toán Pledge giúp thoát khỏi các vật cản phức tạp [30]. Ngoài ra, còn nhiều thuật toán khác có thể được áp dụng để dò đường đi như thuật toán ngẫu nhiên, thuật toán Tremaux, thuật toán lấp kín đường cụt. Tuy nhiên, các phương pháp này tồn nhìn chung tồn tại nhược điểm như sau: - Robot phải tiến hành chạy dò đường. Càng có nhiều cặp vị trí xuất phát và vị trí đích thì việc chạy dò đường càng phải tiến hành nhiều lần. - Với mỗi dạng bản đồ thì người lập trình phải lập trình cho robot theo thuật toán phù hợp nếu không robot có thể không tìm được đường đi. Ngoài ra, kết quả của việc dò đường có thể không cho ra kết quả là đường ngắn hoặc phù hợp nhất. - Nếu lập trình thủ công đường đi cho robot thì khối lượng công việc sẽ tăng lên khi bản đồ phức tạp lên do số lượng vị trí xuất phát, vị trí đích và các ngã rẽ tăng lên. Đồng thời, khi có sự thay đổi về bản đồ thì có thể toàn bộ quá trình này phải thực hiện lại từ đầu.
  59. 48 Trường hợp 2: Robot đã biết trước thông tin về bản đồ. Để robot có thể biết trước thông tin về bản đồ thì robot cần phải được trang bị các loại cảm biến có khả năng bao quát môi trường xung quanh như cảm biến Lidar hoặc camera. Trong đó, việc sử dụng một camera gắn ngoài có khả năng bao quát môi trường hoạt động và kết nối không dây với robot là một giải phát rất hiệu quả trong việc thu thập thông tin về bản đồ. Sau khi đã có được thông tin về bản đồ thì các thuật toán tìm đường tự động có thể được áp dụng để tìm đường. Thuật toán tìm đường tự động là các thuật toán giúp tìm đường một cách tự động dựa trên các dữ liệu đã biết. Việc tìm đường tự động này dựa trên việc phân chia bản đồ thành các nút, sau đó áp dụng thuật toán lên các nút này để tìm ra đường đi. Do đó, để áp dụng được thuật toán tìm đường tự động thì dữ liệu về bản đồ phải là đã biết, để từ đó có thể thu thập được thông tin về các nút, ví dụ như nút nào thuộc đường có thể đi, nút nào không thuộc về đường có thể đi. Có nhiều thuật toán tìm đường tự động đã được phát triển như Grass Fire, Greedy Best First Search, Dijkstra hay A* [21]: - Thuật toán Grass Fire: Trong thuật toán Grass Fire, các nút lân cận với nút đang xét sẽ đều được chọn làm nút đang xét kế tiếp, nếu nút lân cận thuộc về vật cản thì bỏ qua không xét. Thuật toán lặp lại cho đến khi nút đích là một trong các nút đang xét. Ưu điểm của thuật toán này là đơn giản, có thể tìm được đường đi ngắn nhất nhưng tốc độ chậm vì số lượng nút phải xét lớn và tăng nhanh khi số lượng nút tăng. - Thuật toán Dijkstra: Ý tưởng của thuật toán là tìm kiếm có lựa chọn. Tức là tại các nút lân cận của nút đang xét thuật toán sẽ ưu tiên chọn ra một nút làm nút đang xét tiếp theo dựa theo giá trị chi phí (cost) từ nút lân cận đó với nút đang xét hiện tại. Nút nào có chi phí này nhỏ nhất sẽ được lựa chọn. Thuật toán Dijkstra phức tạp hơn so với Grass Fire nhưng có tốc độ tìm đường nhanh hơn vì số lượng nút phải xét ít hơn. - Thuật toán Greedy Best First Search: Thuật toán này cũng là một thuật toán tìm kiếm có lựa chọn. Nhưng thay vì ưu tiện lựa chọn giá trị chi phí giữa nút lân cận và nút đang xét thì thuật toán ưu tiên lựa chọn giá trị chi phí ước lượng giữa nút lân cận của nút đang xét so với nút đích (heuristic). Ưu điểm của thuật toán này là tốc độ nhanh hơn so với Dijkstra nhưng nhược điểm là đường tìm ra được có thể không phải là ngắn nhất. - Thuật toán A*: Thuật toán A* có thể coi như một sự kết hợp giữa thuật
  60. 49 toán Dijkstra và thuật toán Greedy Best First Search khi nó sử dụng đồng thời cả giá trị chi phí từ nút lân cận so với nút hiện tại và giá trị chi phí ước lượng từ nút lân cận tới nút đích làm tiêu chí lựa chọn nút đang xét tiếp theo. Nhờ đó, thuật toán A* có khả năng tìm đường ngắn nhất như thuật toán Dijkstra, nhưng đồng thời trong phần lớn trường hợp đều có kết quả tìm đường nhanh hơn thuật toán Dijkstra, hình 3.21. Hình 3.21 Kết quả tìm đường bằng thuật toán A* (trái) và thuật toán Dijkstra (phải) [8]. Trong luận văn này, thông tin về bản đồ có thể coi như hoàn toàn biết trước vì đã thu được từ camera. Việc tìm đường cho robot sẽ được diễn ra tự động theo thuật toán A* với các ưu điểm tóm lược như sau: - Việc tìm đường diễn ra hoàn toàn tự động mà không phải phân chia trường hợp thủ công. - Tốc độ tìm đường nhanh. - Robot không cần phải chạy dò đường. - Đường tìm ra được là chính xác và ngắn nhất. 3.6.1 Giới thiệu về thuật toán A* A* là một thuật toán tìm đường được giới thiệu lần đầu vào năm 1968 bởi Peter Hart, Nils Nilsson, và Bertram Raphael. Sau nhiều năm phát triển từ năm 1964 để tăng tốc độ cho thuật toán Dijkstra thì tới năm 1968 thuật toán A* được giới thiệu và chứng minh là thu được hoạt động tối ưu hơn khi sử dụng đánh giá heuristic thích hợp. Thuật toán A* tìm đồng thời tất cả các đường từ nút xuất phát đến khi tìm thấy đích. Trong các đường đó thì A* sẽ ưu tiên các đường có khả năng dẫn đến đích. A* giống với Dijkstra ở chỗ có xét đến khoảng cách đã đi qua. Tuy nhiên, điểm mới của A* là nó còn xét đến giá trị heuristic là khoảng cách tương đối từ các nút đến đích từ đó làm tăng tốc độ của thuật toán [5,8].
  61. 50 3.6.2 Ứng dụng thuật toán A* tìm đường cho robot Sau khi đã chọn được nút đích (đích đến) và nút xuất phát (vị trí xuất phát của robot) thì thuật toán A* được triển khai một cách cơ bản trong luận văn như sau: - Chọn nút xuất phát làm nút đang xét và cho vào danh sách các nút đã xét. - Cập nhật giá trị chi phí so với nút xuất phát G(n) của các nút lân cận với nút đang xét. Việc cập nhật chi phí phải thỏa mãn điều kiện: Nút lân cận đang xét chưa nằm trong danh sách các nút đã xét và chi phí vừa tìm được nhỏ hơn chi phí trước đó của nút này. Nếu chi phí được cập nhật thì gán nút đang xét là nút mẹ của nút lân cận đang xét. Nếu trong quá trình quét nút lân cận phát hiện nút đích là nút lân cận thì cập nhật giá trị nút mẹ của nút đích và dừng việc cập nhật chi phí nút lân cận. - Tiến hành quét chọn nút mới làm nút đang xét từ danh sách các nút chưa được xét dựa theo giá trị chi phí F(n): F(n) = G(n) + alpha*H(n) Trong đó: G(n) là chi phí từ nút xuất phát cho đến nút lân cận đang xét, H(n) là giá trị chi phí ước lượng từ nút lân cận của nút đang xét đến nút đích. Tăng trọng số của H(n) lớn hơn giá trị thực từ nút đó đến nút đích thì sẽ làm tăng tốc độ tìm đường nhưng làm giảm độ chính xác của kết quả thu được. Trong khi đó, giảm trọng số của H(n) làm tăng độ chính xác của đường tìm được nhưng lại làm giảm tốc độ của chương trình, vì số nút phải xét nhiều hơn. Nếu alpha*H(n) nhỏ hơn chi phí chính xác từ nút đó đến đích để đảm bảo thuật toán có thể tìm được đường chính xác. - Sau khi dừng vòng lặp, tạo một vector chứa các điểm để lưu thông tin về đường vừa tìm được [8]. 3.1 Dẫn hướng cho robot Chương trình xử lý ảnh sẽ dẫn hướng cho robot để đi đến đích thông qua việc gửi dữ liệu điều khiển. Dữ liệu điều khiển được gửi từ chương trình xử lý ảnh qua giao tiếp Serial đến module phát, và module phát này sẽ tiếp tụ gửi dữ liệu điều khiển qua giao tiếp sóng radio đến robot. Về cơ bản để mobile robot đi đến đích vừa thỏa mãn yêu cầu bám vạch trơn tru, vừa kết hợp nhận lệnh điều khiển từ chương trình trên máy tính để bỏ bám vạch khi cần thiết hoặc thực hiện các hành vi khác thì chương trình xử lý ảnh sẽ gửi xuống cho robot các dữ liệu điều khiển như sau:
  62. 51 - Một byte chứa lệnh điều khiển cho phép robot di chuyển hay dừng. Lệnh điều khiển này là kết quả của một loạt điều kiện như vị trí giữa robot so với nút đích, chương trình còn nhận dạng được robot không, hay yêu cầu dừng robot đột ngột từ người dùng chương trình. - Một byte chứa góc giữa hướng của robot và hướng đường cần đi. Hướng của robot được xác định thông qua việc nhận diện hai điểm trên robot, còn hướng đường cần đi được lấy từ hai điểm thuộc đường đi trong tập các điểm thuộc đường đi đã được xác định bằng thuật toán A*. Robot kết hợp hai bytes này với dữ liệu từ cảm biến dò line là đã đủ điều kiện cần để di chuyển được đến đích. 3.2 Kết quả thử nghiệm tìm đường, định vị và dẫn hướng cho robot theo thời gian thực. Các kết quả thử nghiệm tìm đường, định vị và dẫn hướng cho robot tại các vị trí khác nhau được thể hiện ở các hình 3.22 đến 3.29. Kết quả thu được cho thấy đường được tìm chính xác, robot được dẫn hướng theo thời gian thực để có thể đi đến đích.
  63. 52 3.2.1 Kết quả lần thử nghiệm 1 Hình 3.22 Kết quả tìm đường của lần thử nghiệm 1.
  64. 53 Hình 3.23 Kết quả dẫn hướng cho robot theo thời gian thực của lần thử nghiệm 1.
  65. 54 3.2.2 Kết quả thử nghiệm lần 2 - Vị trí của robot, vị trí được chọn làm đích và kết quả tìm đường tương ứng được thể hiện trên hình 3.24. - Kết quả dẫn hướng cho robot theo thời gian thực được thể hiện trên hình 3.25. Hình 3.24 Kết quả tìm đường lần thử nghiệm 2
  66. 55 Hình 3.25 Kết quả dẫn hướng cho robot theo thời gian thực của lần thử nghiệm 2.
  67. 56 3.2.3 Kết quả thử nghiệm lần 3 - Vị trí của robot, vị trí được chọn làm đích và kết quả tìm đường tương ứng được thể hiện trên hình 3.26. - Kết quả dẫn hướng cho robot theo thời gian thực được thể hiện trên hình 3.27. Hình 3.26 Kết quả tìm đường của lần thử nghiệm 3.
  68. 57 Hình 3.27 Kết quả dẫn hướng cho robot theo thời gian thực của lần thử nghiệm 3.
  69. 58 3.2.4 Kết quả thử nghiệm lần 4 - Vị trí của robot, vị trí được chọn làm đích và kết quả tìm đường tương ứng được thể hiện trên hình 3.28. - Kết quả dẫn hướng cho robot theo thời gian thực được thể hiện trên hình 3.29. Hình 3.28 Kết quả tìm đường lần thử nghiệm 4
  70. 59 Hình 3.29 Kết quả dẫn hướng theo thời gian thực lần thử nghiệm thứ 4.
  71. 60 KẾT LUẬN Mobile robots nói chung và mobile robots bám vạch nói riêng ngày càng phổ biến và có vai trò quan trọng trong cuộc sống. Do đó, những nghiên cứu thuộc lĩnh vực này rất thiết thực và có tính ứng dụng cao. Luận văn về cơ bản đã thiết kế, chế tạo một mobile robot bám vạch được dụng công nghệ xử lý ảnh để giải quyết được đồng thời bài toán định vị, tìm đường và dẫn hướng cho robot. Kết quả đạt được: Một số kết quả cụ thể luận văn đã đạt được như sau: - Ứng dụng công nghệ in 3D trong việc thiết kế, chế tạo phần khung, vỏ cho mobile robot. - Thiết kế, chế tạo một mobile robot bám vạch ổn định, có khả năng nhận lệnh điều khiển theo thời gian thực từ chương trình xử lý ảnh qua giao tiếp không dây. - Xây dựng một chương trình xử lý ảnh sử dụng ảnh thu trực tiếp từ camera. Chương trình áp dụng một số công nghệ xử lý ảnh để lập bản đồ, định vị robot, tìm đường cho robot theo thuật toán tìm đường A*. Chương trình gửi lệnh điều khiển theo thời gian thực qua giao tiếp không dây để dẫn hướng cho robot trong quá trình hoạt động. Hướng tiếp cận của luận văn có những ưu điểm mới so với cách điều khiển mobile robot bám vạch truyền thống như sau: - Robot không cần tiến hành quá trình dò đường để tìm đường. - Người sử dụng có thể tùy ý chọn đích đến cho robot nhờ kích chuột lên ảnh thu được từ camera, từ đó nâng cao tính tương tác giữa người sử dụng và robot. - Robot không cần hệ thống đánh dấu trên vạch để định vị, và ký hiệu vị trí cần đến. Nhờ sử dụng camera gắn ngoài, robot được chương trình xử lý ảnh định vị nên có thể di chuyển đến vị trí bất kỳ trên bản đồ mà không cần đánh dấu trên đường. Điều này làm tăng độ linh hoạt khi hoạt động của robot. - Robot không cần được lập trình đường đi một cách thủ công. Đường đi của robot đến vị trí đích bất kỳ được tìm tự động bằng việc kết hợp công nghệ xử lý ảnh và thuật toán tìm đường A*. Đây là ưu điểm lớn xét trên khía cạnh của người sử dụng. Nếu như hệ thống bản đồ thay đổi, người sử
  72. 61 dụng không cần thuê chuyên gia lập trình lại đường đi cho robot, mà đường đi luôn được tìm tự động nhờ chương trình. Hướng phát triển: Tuy nhiên, từ nghiên cứu đến thực tế có một khoảng cách rất lớn. Một số hướng phát triển dưới đây cần được nghiên cứu để có thể nâng cao tính ứng dụng của luận văn: - Cần xử lý đầu vào từ nhiều camera hoặc chương trình phải có tính liên kết để từ đó tăng phạm vi hoạt động của mobile robots. - Cải tiến thuật toán tìm đường để có thể tìm đường hiệu quả khi có nhiều robots cùng hoạt động. - Nâng cấp chương trình xử lý ảnh để hoạt động trong những môi trường ánh sáng không ổn định. - Ứng dụng các công nghệ mới như deep learning trong việc nhận dạng robots hoặc nhận diện đường đi. - Tùy thuộc vào ứng dụng cụ thể mà trang bị thêm các tính năng cho robot và chương trình xử lý ảnh.
  73. 62 DANH MỤC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN VĂN Trịnh Tuấn Dương (2020), “Ứng dụng xử lý ảnh trong việc định vị, tìm đường và dẫn hướng cho các phương tiện tự hành bám vạch”, Kỷ yếu Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp, Khoa Cơ khí – Trường Đại học Giao thông Vận tải, tr. 95-102.
  74. 63 TÀI LIỆU THAM KHẢO Tài liệu tiếng Anh [1]: Abdul Hannan Shaukat (2013), “A Localization Algorithm Using IR Receivers and LEDs for a Line Following Robot”, International Journal of Engineering Research and Reviews (IJERR), Vol. 1, Issue 1, pp. 1-4. [2]: Adrian Kaehler, Gary Bradski (2008), Learning Open CV, O’Reilly Media, pp.1-40. [3]: Chaoli Wang, Zhenyu Fu (2014), “A new way to detect the position and orientation of the wheeled mobile robot on the image plane”, IEEE International Conference on Robotics and Biomimetics. [4]: Faheem Zafari, Athanasios Gkelias, Kin K. Leung (2019), “A Survey of Indoor Localization Systems and Technologies”, IEEE Communications Surveys & Tutorials, Vol. 21 , (Issue 3). [5]: Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968), “A Formal Basis for the Heuristic Determination of Minimum Cost Paths”, IEEE Transactions on Systems Science and Cybernetics, Vol. 4, (2), pp. 100–107. [6]: Kittler, Josef & Illingworth, John (1985), “On threshold selection using clustering criteria”. IEEE Transactions on Systems, Man and Cybernetics, Vol. 15, (5), pp. 652–655. [7]: Tarneem Omar Barayyan, Enayyah Mohammed Barnawi, “Enhanced Line Follower Robot Using IR coding as an Artificial Landmark”, Conf- scoop.org. Tài liệu tiếng Việt [8]: Trịnh Tuấn Dương (2019), “Tìm đường cho Mobile robots dựa trên việc tìm đường biên và áp dụng thuật toán A*”, Cơ khí Việt Nam, số 3. Tài liệu tham khảo khác [9]: Arduino Uno datasheet. [10]: DC GA25 datasheet. [11]: Intorobotics.com, 5 Cheap Methods For Indoor Robot Localization: BLE Beacon, AprilTags, WiFi SubPos, NFC and RFID.
  75. 64 [12]: Nordic semiconductor, NRF24L01 datasheet. [13]: Opencv.org, Back projection tutorial. [14]: Opencv.org, Eroding and dilating. [15]: Opencv.org, Mean-shift tutorial. [16]: Popolu.com, QTR sensor. [17]: Robotshop.com, Indoor localization. [18]: Roboteq.com, Magnetic guide sensors. [19]: Sciencenorway.no, Making robots work out where they are and where they are going. [20]: ST microelectronic, L298N datasheet. [21]: Theory.stanford.edu, Introduction to A*. [22]: Wikipedia.org, 3D printing. [23]: Wikipedia.org, AGV. [24]: Wikipedia.org, Color spaces with RGB primaries. [25]: Wikipedia.org, Computer Vision. [26]: Wikipedia.org, HSL and HSV. [27]: Wikipedia.org, Mobile Robot. [28]: Wikipedia.org, OpenCV. [29]: Wikipedia, Serial peripheral interface. [30]: Wikipedia, Thuật toán tìm đường đi trong mê cung.
  76. 65 PHỤ LỤC 1: MỘT SỐ HÌNH ẢNH VỀ SẢN PHẨM, VÀ MÔI TRƯỜNG THỬ NGHIỆM CỦA LUẬN VĂN Phụ lục 1. 1 Môi trường thử nghiệm hoạt động của robot.
  77. 66 Phụ lục 1. 2 Chương trình xử lý ảnh trên máy tính kết nối với Module phát qua giao tiếp Serial.
  78. 67 Phụ lục 1. 3 Góc nhìn chéo về Robot.
  79. 68 Phụ lục 1. 4 Mặt bên của Robot.
  80. 69 Phụ lục 1. 5 Mặt lưng của Robot.
  81. 70 Phụ lục 1. 6 Mặt sau của robot.
  82. 71 Phụ lục 1. 7 Mặt đáy của Robot.
  83. 72 PHỤ LỤC 2: CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN VĂN
  84. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 MỤC LỤC 1. NGUYỄN VĂN CƢỜNG, Ảnh hƣởng của một số thông số công nghệ đến sai lệch kích thƣớc đƣờng kính và độ không tròn của bề mặt lỗ khi gia công tia lửa điện 3 2. PHẠM VĂN TIẾN, Nghiên cứu cơ sở lý thuyết tổ hợp chỉnh lƣu 12 đập mạch trong hệ thống cấp điện kéo cho đoàn tàu đƣờng sắt đô thị 10 3. NGUYỄN THÀNH CÔNG, Nghiên cứu ứng dụng phần mềm Solidwork xây dựng phƣơng pháp thiết kế nhanh khung xƣơng xe khách 19 4. PHẠM HUY KHƢƠNG, Thiết kế tổng thể hệ thống hãm toa xe khách cao cấp vận hành tin cậy đến tốc độ 120 km/h 27 5. NGUYỄN ĐỨC TOÀN, Tính toán độ bền má giá của giá chuyển hƣớng toa xe hàng có mui bằng phần mềm sap2000 35 6. NGUYỄN QUANG CƢỜNG, NGUYỄN VĂN ANG, NGUYỄN THIẾT LẬP, Phân tích rung động khung vỏ ô tô con có kể đến kích thích của động cơ 43 7. NGUYỄN VĂN HÀO, Nghiên cứu ảnh hƣởng của thông số hàn đến độ bền kéo và khảo sát cấu trúc tế vi của liên kết hàn ma sát khuấy tấm hợp kim nhôm 5052-O 51 8. VŨ DUY ĐỨC, Phƣơng pháp tối ƣu đƣờng chạy dao mới đối với quá trình phay các bề mặt dạng tự do trên máy phay 3 dựa trên việc xác định các khoảng gia công hiệu quả 58 9. LÊ TOÀN THẮNG, Nghiên cứu thực nghiệm đánh giá hiệu quả của cánh tay rô bốt bị động cho công việc nâng vật trên cao 67 10. PHẠM VĂN KHÁ, Nghiên cứu mô phỏng các thông số hoạt động của hệ thống hơn bằng phần mềm Enginnering Equation Solver (EES) 75 11. ĐỖ KHẮC SƠN, Mô phỏng ảnh hƣởng của các thông số đến quá trnh làm việc của pin nhiên liệu trên ô tô 82 12. VŨ XUÂN THIỆP, Mô phỏng và xác định hệ số nạp động cơ diesel 1 xylanh 89 13. TRỊNH TUẤN DƢƠNG, Ứng dụng xử lý ảnh trong việc định vị, tm đƣờng và dẫn hƣớng cho các phƣơng tiện tự hành bám vạch 95 1
  85. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 14. NGUYỄN QUANG MINH, PHẠM ANH TUẤN, ây dựng mô hnh l thuyết tính toán động học cho cánh tay công tác trên máy kıểm tra cầu . 103 15. NGUYỄN THỊ THÙY DUNG, Nghiên cứu quá trnh ngƣng của dòng lƣu chất ở chế độ hình xuyến 113 16. NGUYỄN CAO VĂN, Nghiên cứu ảnh hƣởng của tỷ lệ biodiesel và thời điểm phun tới đặc tính cháy và phát thải trên động cơ diesel 119 2
  86. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 ỨNG DỤNG XỬ LÝ ẢNH TRONG VIỆC ĐỊNH VỊ, TÌM ĐƢỜNG VÀ DẪN HƢỚNG CHO CÁC PHƢƠNG TIỆN TỰ HÀNH BÁM VẠCH Application of computer vision in line follower automated guided vehicle localization and navigation TRỊNH TUẤN DƢƠNG Bộ môn Kỹ thuật máy - Khoa Cơ khí Trường Đại học Giao thông vận tải Tóm tắt: Báo cáo trình bày kết quả áp dụng công nghệ xử lý ảnh và thuật toán tìm đường trong việc giải quyết bi ton định vị, tm đường và dẫn hướng theo thời gian thực cho cc phương tiện tự hành bám vạch. Kết quả của báo cáo mang tới một giải pháp hoàn chỉnh cho bi ton định vị, tm đường, dẫn hướng đồng thời giúp cho cc phương tiện tự hành bám vạch c độ linh hoạt cao hơn trong chuyển động. Summary: The report presents the results in applying computer vision and planning algorithm to localize and navigate line follower AGV (automated guided vehicle). The results of this research provide a complete solution for AGV localization and navigation; and those results also assist the AGV in motion flexibility. 1. ĐẶT VẤN ĐỀ Ngày nay, trong sản xuất ng nhƣ uộc sống, AGV (tên gọi hung ho á phƣơng tiện tự hành, các robot tự hành ni hung và phƣơng tiện tự hành dạng bám vạch nói riêng ngày càng ph biến và có một vai trò ngày càng quan trọng hơn. Hình 1. Một vài AGV dạng bám vạh đang làm việc. Đối với các loại phƣơng tiện này thì định vị và tìm đƣờng, dn hƣớng là các bài toán rất quan trọng, ảnh hƣởng trực tiếp đến quá trình hoạt động. Đối với các AGV hoạt động ngoài trời thì phƣơng pháp đƣợc sử dụng ph biến và hiệu quả đ định vị (outdoor localization) là GPS. Trong khi đ, tn hiệu GPS thƣờng rất yếu trong mi trƣờng nhà kín, nên khng đƣợc sử dụng đ định vị ho á phƣơng tiện hoạt động trong nhà. Do đ, ài toán định vị ho á phƣơng tiện hoạt động trong nhà phức tạp hơn và hiện có một số công nghệ có th áp dụng nhƣ: Wifi, luetooth, Zigee, RFID, Aousti signal, Ultrasound,[4]. Tuy nhin, 95
  87. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 á phƣơng pháp này th tn tại nhƣợ đim là giá thành cao, hoc mới chỉ giải quyết bài toán định vị chứ hƣa th giải quyết đng thời ài toán tìm đƣờng. Riêng đối với các AGV bám vạh thì đ định vị, tại các vị trí cần định vị sẽ sử dụng thêm mã hóa IR [7] hoc LED [1] đ làm dấu. Tuy nhin, nhƣợ đim của phƣơng pháp này là hỉ áp dụng trong mi trƣờng làm việc không yêu cầu độ linh hoạt cao vì tại mỗi vị trí cần đến của phƣơng tiện lại phải đt các dấu (markers) và khi muốn thay đi lại vị trí sẽ phải can thiệp vào việc sắp xếp các dấu. Hình 2. Hệ thống đánh dấu cho một AGV bám vạch. Tận dụng sự có mt ngày càng ph biến của amera, áo áo này đƣa ra một cách giải quyết đng thời ài toán định vị, tìm đƣờng và dn hƣớng cho AGV dạng bám vạch nhờ công nghệ xử lý ảnh. Ƣu đim của phƣơng pháp là hi ph thấp (chỉ cần amera và hƣơng trình trn máy tnh, tăng độ linh hoạt trong việc chuyn động, vận hành của phƣơng tiện (tìm đƣờng và dn hƣớng theo thời gian thực nhanh chóng và chính xác, có th đi tới mọi vị trí trên bản đ mà không cần phải thêm dấu trên bản đ hay thêm các cảm biến khác). 2. XÂY DỰNG HỆ THỐNG THỬ NGHIỆM VÀ LẬP BẢN ĐỒ SỐ 2.1. Nguyên lý hoạt động của hệ thống Hệ thống ao gm á thành phần, và nguyn l hoạt động nhƣ hình . Trong đ, một amera gắn ngoài, phù hợp nhất là treo trn trần hƣớng xuống có nhiệm vụ thu thập hình ảnh và gửi về cho phần mềm xử lý ảnh trên máy tính. Phần mềm xử lý ảnh sẽ thực hiện các nhiệm vụ lin quan đến tạo bản đ, định vị và tìm đƣờng cho robot ri gửi dữ liệu đến module phát tín hiệu. Module này sẽ gửi dữ liệu điều khin qua sng radio đến một robot bám vạch (line follower). Robot sẽ kết hợp dữ liệu điều khin ng nhƣ dữ liệu t cảm biến dò vạh đ đi đến đh. Hình 3. Nguyên lý hoạt động của hệ thống định vị, tìm đƣờng và dn hƣớng cho AGV. 2.2. Tạo bản đồ số T ảnh thu đƣợc t amera, hƣơng trình xử lý ảnh phải có khả tăng tạo một bản đ số 96
  88. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 đ phục vụ cho việ định vị và tìm đƣờng tha mãn các yêu cầu : - Giới hạn phạm vi bản đ - Xá định vạch (line) trên bản đ - Thu hẹp kh thƣớc vạch - Chia nt, xá định thông số của các nút 22 Giới hạn phạm vi bản đồ Phạm vi bản đ cần đƣợc giới hạn đ loại b các vùng không mong muốn trên ảnh ra khi bản đ. Điều này đng thời còn làm giảm khối lƣợng tnh toán ho hƣơng trình. Đ giới hạn phạm vi bản đ, kỹ thuật ROI vùng quan tm đƣợc áp dụng []. Theo đ, ngƣời dùng có th dùng chuột đ khoanh vùng quan tâm trên bản đ. Hình 4. Kết quả khi áp dụng ROI đ giới hạn phạm vi bản đ. Kết quả cho thấy bản đ có th cắt bớt đi á phần tha ngoài phạm vi làm việc của AGV. 222 Xác định vạch trên bản đồ Vạch trên bản đ hnh là á đƣờng đ giúp AGV có th di chuyn. Do đ, hƣơng trình cần xá định đƣợ đu là vạch trên bản đ đ có th áp dụng các thuật toán tìm đƣờng. Dù là vạh đƣợc tạo t ăng dnh thƣờng, sơn hay vạch t magneti line thì đều đ đim là màu sắ thƣờng tƣơng phản lớn so với nền. Vì vậy, thuật toán phn ngƣng nhị phn ngƣợc [] đƣợc áp dụng đ tìm đƣờng theo công thức: ( ) Trong đ: ( ) ( ) - là giá trị của pixel sau khi phn ngƣng. - là giá trị gốc của pixel trƣớ khi phn ngƣng. ( ) - là giá trị lớn nhất của pixel. ( ) - là ngƣng dùng đ phn ngƣng. Trong khi thiết lập, thresh sẽ đƣợ đƣa vào hƣơng trình dƣới dạng thanh trƣợt đ có th tinh chỉnh ra kết quả tốt nhất. Trong điều kiện ảnh tha mãn tính chất bi-modal histogram thì có th dùng phn ngƣng Otsu Otsu’ method đ tìm ngƣng một cách tự động [6]. 97
  89. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 Hình 5. Kết quả phn ngƣng nhị phn ngƣợ theo phƣơng pháp Otsu. 22 Làm giảm kích thước vạch Khác với các loại bản đ khá, đƣờng đi ủa AGV bám vạch là vạch với đ đim dài, và mảnh. Điều này khiến cho việ hia lƣới mng gp nhiều kh khăn do khả năng xảy ra tình trạng sai hoc thiếu thông tin về vạch. Do đ, mỗi pixel trên ảnh sẽ đƣợ xá định là một nút. Vì vậy, cần phải làm giảm kh thƣớc của vạh đ phần nào giảm đƣợc khối lƣợng tính toán mà vn đảm bảo không làm sai lệch dữ liệu tính toán. Làm giảm kh thƣớc vạh đƣợc thực hiện thông qua việc áp dụng phép toán hình thái co ảnh (erosion) [2]: Trong đ: ( ) ( ) - là giá trị của pixel sau khi áp dụng co ảnh. - là giá trị pixel thuộc vùng ma trận m neo có vị trí ( ) . ( ) - là kh thƣớc của ma trận m neo. Hình 6. Kết quả làm giảm kh thƣớc vạch bằng phép toán co ảnh. 2.2.4. Chia nút, xác định thông số của các nút Chia nút là một yêu cầu cần thiết đ có th áp dụng thuật toán tìm đƣờng. Với đc tính của vạh là kh thƣớc dài và mảnh, nn đ không b xót hoc gây sai lệch thông tin về vạch thì mỗi pixel trên ảnh sẽ đƣợc gán là một nút với các dữ liệu sau [8]: - Vị trí của nút. - Nút có thuộ đƣờng hay không - Giá trị chi phí tng - Giá trị chi phí t nút xuất phát 98
  90. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 - Giá trị hi ph tƣơng đối đến đh - Có phải là nút xuất phát hay nt đh khng - Đ nằm trong danh sáh á nt đ xt hƣa - Vị trí nút mẹ của nt đ 3. ĐỊNH VỊ VÀ TÌM ĐƢỜNG CHO AGV 3.1. Định vị AGV Đ dễ dàng nhận diện AGV, phía trên của các AGV sẽ đƣợc đánh dấu bằng các vùng màu sắc khác nhau tha mãn các yêu cầu: - Nếu có nhiều AGV hoạt động thì á AGV đƣợ đánh dấu khá nhau đ có th phân biệt đƣợc - Đánh dấu sao cho có th dựa vào vùng đánh dấu đ xá định đƣợ hƣớng của AGV. Việ đánh dấu có th thực hiện bằng ăng dnh màu ho đèn led trong điều kiện khng đủ ánh sáng. Hình 7. Robot tự hành đƣợc ký hiệu nhận dạng bởi hai vùng màu khác nhau trên thân. Với AGV đ tha mn điều kiện trên thì thuật toán Camshift đƣợc áp dụng với các vị tr đánh dấu đ định vị và xá định hƣớng của AGV [3]. Các giá trị HSV dùng đ phân ngƣng đƣợ ăn hỉnh đ đạt kết quả định vị tốt nhất nhƣ hình 8. Hình 8. Kết quả giảm nhiễu nhờ việc tinh chỉnh các giá trị HSV dùng đ phn ngƣng. 3.2. Tm đƣờng cho AGV T vị trí của AGV đƣợ oi nhƣ nt xuất phát, hƣơng trình ho php ngƣời sử dụng kích vào một vị trí bất kỳ trên vạh đ làm đh đến. Sau đ, đƣờng đi phù hợp giữa nút xuất phát và nt đh sẽ đƣợc tìm theo thuật toán tìm đƣờng A* []. Đy là thuật toán đƣợc phát trin t thuật toán Dijkstra với ƣu đim là tố độ tìm đƣờng nhanh hơn so với Dijkstra. 99
  91. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 Hình 9. Kết quả tìm đƣờng sử dụng thuật toán A* giữa vị trí robot và một đim đến đƣợc chọn ngu nhiên. 3.3. Dẫn hƣớng cho AGV Hình 10. Kết quả dn hƣớng cho robot theo thời gian thực. 100
  92. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 Về ơ ản đ AGV đi đến đh va tha mãn yêu cầu bám vạh trơn tru, va kết hợp nhận lệnh điều khin t hƣơng trình trn máy tnh đ b bám vạch khi cần thiết hoc thực hiện á hành vi khá thì hƣơng trình xử lý ảnh sẽ gửi xuống cho AGV các dữ liệu điều khin nhƣ sau: - Một byte chứa lệnh điều khin cho phép robot di chuyn hay dng. Lệnh điều khin này là kết quả của một loạt điều kiện nhƣ vị trí giữa robot so với nt đh, hƣơng trình n nhận dạng đƣợc robot không, hay yêu cầu dng root đột ngột t ngƣời dùng hƣơng trình. - Một byte chứa góc giữa hƣớng của root và hƣớng đƣờng cần đi. Robot kết hợp hai bytes này với dữ liệu t cảm biến d line là đ đủ điều kiện cần đ di chuyn đƣợ đến đh. Kết quả việc dn hƣớng cho robot tự hành bám vạh đƣợc th hiện nhƣ trn hình . Chƣơng trình xử lý ảnh đ đƣa ra lệnh điều khin chính xác theo thời gian thực dựa trên đƣờng đ tìm đƣợc giúp robot di chuyn đến đh. 5. KẾT LUẬN Kết quả thực nghiệm cho thấy hƣơng trình khả năng tìm đƣờng chính xác, có khả năng định vị và dn hƣớng cho các thiết bị AGV dạng bám vạch theo thời gian thự. Phƣơng pháp tiếp cận này ng mang đến độ linh hoạt trong quá trình vận hành của thiết bị. Thiết bị có th đến mọi vị trí trên bản đ mà không cần phải thêm cảm biến, hay tiến hành tạo các dấu trên vạch. Bên cạnh đ, thng qua hƣơng trình, khả năng tƣơng tá giữa ngƣời sử dụng và thiết bị ng đƣợ nng ao. Ngƣời sử dụng có th chủ động điều khin đh đến cho thiết bị chỉ với thao tác kích chuột trên bản đ ho ng th cố định á đim đh ho thiết bị bằng việc vẽ lên ảnh bản đ thu đƣợc t camera (tạo dấu ảo). Việc sử dụng xử lý ảnh đ giải quyết ài toán định vị, tìm đƣờng và dn hƣớng cho thiết bị AGV bám vạh ng là áh tiếp cận phù hợp đ có th phát trin ứng dụng thêm các thuật toán khác nhằm quản lý vận hành nhiều thiết bị AGV cùng lúc. Tài liệu tham khảo [1]: Abdul Hannan Shaukat (2013): “A Localization Algorithm Using IR Receivers and LEDs for a Line Following Robot‖; International Journal of Engineering Research and Reviews (IJERR) Vol. 1, Issue 1, pp: (1-4). [2]: Adrian Kaehler, Gary Bradski (2017): “Learning Open CV 3”; O’Reilly Media, Inc. [3]: Chaoli Wang ; Zhenyu Fu (2014): “A new way to detect the position and orientation of the wheeled mobile robot on the image plane”; IEEE International Conference on Robotics and Biomimetics. [4]: Faheem Zafari, Athanasios Gkelias, Kin K. Leung (2019) : “A Survey of Indoor Localization Systems and Technologies”; IEEE Communications Surveys & Tutorials ( Volume: 21 , Issue: 3) . 101
  93. Hội nghị khoa học giảng viên khoa cơ khí và doanh nghiệp Khoa cơ khí - Trường Đại học Giao thông Vận tải, năm 2020 [5]: Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968): ―A Formal Basis for the Heuristic Determination of Minimum Cost Paths‖; IEEE Transactions on Systems Science and Cybernetics. 4 (2): 100–107. [6]: Kittler, Josef & Illingworth, John (1985): ―On threshold selection using clustering criteria”. IEEE Transactions on Systems, Man and Cybernetics. SMC-15 (5): 652– 655. [7]: Tarneem Omar Barayyan, Enayyah Mohammed Barnawi: “Enhanced Line Follower Robot Using IR coding as an Artificial Landmark”; Conf-scoop.org. [8]: Trịnh Tuấn Dƣơng (2019): “Tm đường cho Mobile robots dựa trên việc tm đường biên và áp dụng thuật toán A*”; Cơ kh Việt Nam số 3. 102