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

Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường

104 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Xây dựng Robot di động sử dụng Lidar hỗ trợ khám phá môi trường
Tác giả Trần Hoàng Chương, Nguyễn Huy Hoàng
Người hướng dẫn ThS. Trương Quang Phúc
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Hệ thống Nhúng và IoT
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 104
Dung lượng 7,97 MB

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN (15)
    • 1.1 ĐẶT VẤN ĐỀ (15)
    • 1.2 TÌNH HÌNH NGHIÊN CỨU HIỆN NAY (16)
      • 1.2.1 Trong nước (16)
      • 1.2.2 Ngoài nước (16)
    • 1.3 MỤC TIÊU (17)
    • 1.4 PHƯƠNG PHÁP NGHIÊN CỨU (18)
    • 1.5 GIỚI HẠN ĐỀ TÀI (19)
    • 1.6 BỐ CỤC ĐỒ ÁN (20)
  • CHƯƠNG 2 CƠ SỞ LÝ THUYẾT (22)
    • 2.1 ROBOT DI ĐỘNG (22)
      • 2.1.1 Tổng quan về robot di động (22)
      • 2.1.2 Động học thuận của robot (23)
      • 2.1.3 Tính toán động lực học của robot (26)
    • 2.2 HỆ ĐIỀU HÀNH ROBOT - ROS (28)
      • 2.2.1 Tổng quan về ROS và ROS2 (28)
      • 2.2.2 Cấu trúc ROS (30)
      • 2.2.3 RViz (33)
    • 2.3 SLAM (34)
      • 2.3.1 Giới thiệu về SLAM (34)
      • 2.3.2 Lidar SLAM (34)
      • 2.3.3 SLAM Toolbox (35)
      • 2.4.1 Costmap 2D (37)
      • 2.4.2 Cách cấu hình costmap (37)
    • 2.5 GIAO THỨC TRUYỀN THÔNG (38)
      • 2.5.1 UART (38)
      • 2.5.2 Truyền thông ROS (40)
    • 2.6 THUẬT TOÁN PID (40)
  • CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ROBOT (43)
    • 3.1 YÊU CẦU HỆ THỐNG (43)
    • 3.2 ĐẶC TẢ HỆ THỐNG (43)
      • 3.2.1 Chức năng của hệ thống (43)
      • 3.2.2 Sơ đồ khối của hệ thống robot (45)
    • 3.3 THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHẦN CỨNG (48)
      • 3.3.1 Các thiết bị và linh kiện chính sử dụng trong xây dựng mô hình (48)
        • 3.3.1.1. Board Raspberry Pi 4 Model B 4GB (48)
        • 3.3.1.2. Cảm biến Lidar LD19 (0)
        • 3.3.1.3. Webcam Rapoo XW180 (50)
        • 3.3.1.4. Mạch cầu điều khiển động cơ L298N (51)
        • 3.3.1.5. Mạch giảm áp Buck DC-DC XL4015 (0)
      • 3.3.2 Thiết kế hệ thống nguồn điện (54)
        • 3.3.2.1. Điện áp (56)
        • 3.3.2.2. Dòng điện (57)
      • 3.3.3 Xây dựng mô hình 3D của robot (59)
    • 3.4 THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG PHẦN MỀM CHO (61)
      • 3.4.1 Chức năng hoạt động của phần mềm (61)
      • 3.4.2 Sơ đồ hoạt động (63)
        • 3.4.2.1. Tổng quan hệ thống (63)
        • 3.4.2.2. Các thành phần chính (64)
  • CHƯƠNG 4 KẾT QUẢ VÀ ĐÁNH GIÁ MÔ HÌNH (82)
    • 4.1 MÔ HÌNH ROBOT HOÀN THIỆN (82)
    • 4.2 KẾT QUẢ CHẠY ROBOT TRONG MÔI TRƯỜNG MÔ PHỎNG TRÊN GAZEBO (83)
      • 4.2.1 Hoạt động của LiDAR (84)
      • 4.2.2 Hoạt động của camera (85)
      • 4.2.3 Hoạt động tạo bản đồ (0)
    • 4.3 KẾT QUẢ CHẠY ROBOT TRONG THỰC TẾ (88)
      • 4.3.1 Thử nghiệm đo khoảng cách trong trong môi trường thực và trong (0)
      • 4.3.2 Thử nghiệm hoạt động tạo bản đồ của robot (0)
      • 4.3.3 Thử nghiệm hoạt động stream video của robot (91)
    • 4.4 PHÂN TÍCH KẾT QUẢ (92)
  • CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (93)
    • 5.1 KẾT LUẬN (93)
    • 5.2 HƯỚNG PHÁT TRIỂN (95)
  • TÀI LIỆU THAM KHẢO (97)
  • PHỤ LỤC (99)

Nội dung

ii TÓM TẮT Trong bối cảnh ngày càng phát triển của nền công nghiệp Robotics, đồ án này đặt ra mục tiêu tạo ra một Robot có khả năng điều khiển và tích hợp cảm biến LiDAR cùng với hệ th

TỔNG QUAN

ĐẶT VẤN ĐỀ

Trong bối cảnh công nghệ không ngừng phát triển, đặc biệt với những bước tiến vượt bậc của cuộc cách mạng công nghiệp 4.0, lĩnh vực robot di động đã và đang nhận được sự quan tâm đáng kể Robot di động không chỉ mang lại hiệu quả trong công nghiệp mà còn mở ra tiềm năng ứng dụng trong nhiều lĩnh vực khác nhau của đời sống Sự kết hợp giữa phần cứng mạnh mẽ, các cảm biến tiên tiến như Lidar và phần mềm điều khiển thông minh như Robot Operating System (ROS) đã tạo nên những robot di động có khả năng tự hành, khám phá và tương tác với môi trường xung quanh một cách hiệu quả

Tuy nhiên, việc chế tạo và điều khiển robot di động vẫn còn nhiều thách thức Một trong những thách thức lớn nhất là khả năng tự định vị và xây dựng bản đồ môi trường chính xác trong thời gian thực Đặc biệt, trong các môi trường nguy hiểm hoặc khó tiếp cận, việc thu thập thông tin về môi trường xung quanh một cách an toàn và hiệu quả là rất quan trọng

Bên cạnh đó, việc tích hợp các công nghệ khác nhau như cảm biến Lidar, camera, và các thuật toán xử lý ảnh để tạo ra một hệ thống robot di động hoàn chỉnh cũng đòi hỏi sự nghiên cứu và phát triển chuyên sâu Sự kết hợp này không chỉ giúp robot di chuyển một cách linh hoạt mà còn cho phép nó thu thập thông tin đa dạng về môi trường, từ đó mở rộng khả năng ứng dụng trong nhiều lĩnh vực khác nhau

Xuất phát từ những vấn đề trên, đề tài "Xây dựng Robot Di động Sử dụng Lidar Hỗ trợ Khám phá Môi trường" được thực hiện nhằm mục tiêu thiết kế và chế tạo một robot di động có khả năng khám phá môi trường tự động Robot này sẽ sử dụng ROS làm hệ điều hành, Raspberry Pi 4 làm bộ xử lý trung tâm, và Lidar để thu thập dữ liệu về môi trường Dữ liệu từ Lidar sẽ được sử dụng để xây dựng bản đồ 2D của môi

2 trường và truyền hình ảnh thời gian thực về máy tính thông qua mạng wifi Robot sẽ di chuyển bằng hai bánh xích được điều khiển bởi hai động cơ và được trang bị camera để quan sát môi trường Đề tài này không chỉ tập trung vào việc giải quyết các bài toán khám phá môi trường như hỗ trợ công tác cứu hộ trong các môi trường nguy hiểm mà còn mở ra tiềm năng ứng dụng trong việc xây dựng bản đồ cho các ứng dụng thực tế ảo và thực tế ảo tăng cường, cũng như tham gia vào quá trình xây dựng bản sao số cho các đối tượng thực.

TÌNH HÌNH NGHIÊN CỨU HIỆN NAY

Về tình hình nghiên cứu trong nước, một số nhóm nghiên cứu đã tìm hiểu về thuật toán SLAM như "Nghiên cứu phát triển robot xây dựng bản đồ và định vị đồng thời trên nền tảng ROS” [1] của Phan Anh Huy và cộng sự (2020) , đề tài này tập trung vào việc xây dựng một hệ thống SLAM sử dụng ROS cho robot di động "Đánh giá và tối ưu thuật toán Hector SLAM trong việc lập bản đồ và định vị trên robot Pimouse" [2] của Đinh Minh Bảo và cộng sự (2021) , bài báo này tập trung vào việc đánh giá và cải thiện thuật toán Hector SLAM, một thuật toán SLAM phổ biến trong ROS, để áp dụng cho robot Pimouse

Về nghiên cứu ngoài nước, các nhóm nghiên cứu đã tập trung vào việc so sánh các phương pháp SLAM khác nhau và ứng dụng chúng trong các môi trường khác nhau

Ví dụ, "Comparison of ROS-based visual SLAM methods in homogeneous indoor environment" của Ibragimov và Afanasyev (2017) [3] đã so sánh hiệu suất của các phương pháp SLAM dựa trên thị giác trong môi trường trong nhà đồng nhất "A quantitative study of tuning ROS gmapping parameters and their effect on performing indoor 2D SLAM" của Abdelrasoul và cộng sự (2016) [4] đã nghiên cứu ảnh hưởng của việc điều chỉnh các tham số của thuật toán Gmapping, một thuật toán SLAM 2D phổ biến trong ROS, đến hiệu suất của nó trong môi trường trong nhà "Mapping and localization of cooperative robots by ROS and SLAM in unknown working area" của

Park và Lee (2017) [5] đã trình bày một hệ thống sử dụng ROS và SLAM để lập bản đồ và định vị cho các robot hợp tác trong một khu vực làm việc không xác định

"Performance comparison of 2D SLAM techniques available in ROS using a differential drive robot" của Rojas-Fernández và cộng sự (2018) [6] đã so sánh hiệu suất của các kỹ thuật SLAM 2D có sẵn trong ROS bằng cách sử dụng một robot di chuyển vi sai.

MỤC TIÊU

Mục tiêu cốt lõi của đồ án là xây dựng một Robot đa nhiệm có khả năng tự động hóa cao, linh hoạt trong việc điều khiển, và tích hợp một cảm biến LiDAR kết hợp việc áp dụng thuật toán SLAM cùng với một camera truyền hình ảnh thời gian thực Điều này nhằm giải quyết một loạt các thách thức trong lĩnh vực Robotics và tự động hóa, mục tiêu cụ thể như sau:

- Đồ án này tập trung vào việc phát triển một hệ thống điều khiển mạnh mẽ, cho phép Robot thực hiện các nhiệm vụ phức tạp một cách tự động Với khả năng tự động hóa cao, Robot sẽ có thể thích nghi với môi trường thay đổi mà không cần sự can thiệp liên tục từ người điều khiển

- Sự tích hợp cảm biến LiDAR cùng với camera sẽ cung cấp cho Robot khả năng thu thập dữ liệu về môi trường xung quanh một cách chi tiết với độ phân giải cao Điều này sẽ hỗ trợ quá trình tự định hình và tạo bản đồ môi trường, làm nền tảng cho các ứng dụng như tránh vật cản, điều hướng tự động và khám phá môi trường

- Sử dụng thuật toán SLAM giúp Robot xác định vị trí của mình trong môi trường một cách chính xác và tạo ra bản đồ môi trường ngay lập tức Điều này tăng cường khả năng tự định hình của Robot và mở ra khả năng thực hiện các nhiệm vụ có độ phức tạp cao mà không yêu cầu sự giám sát liên tục của người điều khiển

- Đồ án cũng nhấn mạnh vào việc tối ưu hóa sự tương tác giữa người dùng và Robot, đặc biệt là những người có kỹ thuật về điện tử và lập trình Việc tích hợp

4 command line, đặc biệt là trong môi trường Linux, sẽ giúp tối ưu hóa trải nghiệm người dùng và tạo ra một cộng đồng sáng tạo quanh đồ án

- Mục tiêu cuối cùng là đưa ra một giải pháp toàn diện và đa chiều, kết hợp giữa khả năng tự động hóa cao và sự linh hoạt trong tương tác với người dùng, làm nền tảng cho việc ứng dụng Robot trong nhiều lĩnh vực khác nhau của cuộc sống hiện đại.

PHƯƠNG PHÁP NGHIÊN CỨU

Để đạt được mục tiêu của đồ án, nhóm đã sử dụng một phương pháp nghiên cứu kết hợp giữa nghiên cứu lý thuyết, phát triển phần mềm và thử nghiệm thực tế để kiểm tra hiệu suất của Robot Dưới đây là các giai đoạn chính của phương pháp nghiên cứu:

Trước hết, tiến hành một nghiên cứu cẩn thận về lý thuyết liên quan đến Robotics, điều khiển tự động, cảm biến LiDAR và thuật toán SLAM Qua việc đánh giá và so sánh các phương pháp hiện có, nhóm nghiên cứu đã xác định những kỹ thuật và công nghệ phù hợp để tích hợp vào đồ án

Sau khi xác định cơ sở lý thuyết, nhóm nghiên cứu đã thiết kế cấu trúc tổng thể của Robot, bao gồm cả kiến trúc điều khiển, cấu trúc vật lý, và tích hợp cảm biến LiDAR Điều này đòi hỏi sự cân nhắc kỹ lưỡng để đảm bảo tích hợp hiệu quả và linh hoạt trong tất cả các khía cạnh của đồ án

Dựa trên cơ sở lý thuyết và thiết kế hệ thống đã có, nhóm tiến hành phát triển phần mềm cho Robot Quá trình này bao gồm việc triển khai các thuật toán điều khiển, tích hợp cảm biến LiDAR cùng với camera, và xây dựng môi trường phần mềm để tương tác với người dùng

- Thử nghiệm và đánh giá:

Sau khi hoàn thành phần mềm, nhóm nghiên cứu tiến hành loạt thử nghiệm thực tế để đánh giá hiệu suất của Robot trong nhiều điều kiện môi trường khác nhau Quá

5 trình này giúp nhóm điều chỉnh và cải thiện hệ thống dựa trên phản hồi và dữ liệu thu thập được từ thực tế

- Đánh giá và so sánh:

Cuối cùng, nhóm nghiên cứu đánh giá kết quả thực tế so với các kỳ vọng và mục tiêu đề ra So sánh hiệu suất với các giải pháp hiện có cũng là một phần quan trọng để đảm bảo tính độc đáo và đổi mới của đồ án

Phương pháp nghiên cứu đa chiều này giúp nhóm thực hiện áp dụng kiến thức lý thuyết vào thực tế, đồng thời cung cấp dữ liệu quan trọng để đánh giá và cải thiện Robot của nhóm đối với các mục tiêu đã đề ra.

GIỚI HẠN ĐỀ TÀI

Dù có những mục tiêu và tiềm năng rất lớn, đồ án cũng đặt ra một số giới hạn và hạn chế để tập trung vào khía cạnh quan trọng nhất và đảm bảo tính khả thi của nghiên cứu

- Giới hạn môi trường: Đồ án phần lớn tập trung vào môi trường trong nhà để đảm bảo hiệu suất tối ưu của cảm biến LiDAR và thuật toán SLAM

- Hạn chế về các nhiệm vụ: Các nhiệm vụ phức tạp như tương tác xã hội không được xem xét, đồ án tập trung vào các nhiệm vụ cơ bản như lập bản đồ môi trường và truyền hình ảnh trực tiếp từ môi trường trường về cho người dùng

- Hạn chế Tương tác người dùng: Sự tương tác người dùng giới hạn ở mức cơ bản, có thể đòi hỏi kỹ năng lập trình cơ bản từ người dùng

- Hạn chế Phân giải LiDAR: Sự hạn chế về độ phân giải của cảm biến LiDAR có thể ảnh hưởng đến khả năng nhận diện chi tiết cao nhiều góc cạnh hoặc đối tượng nhỏ

- Hạn chế Sức mạnh xử lý: Robot có hạn chế về sức mạnh xử lý, đặc biệt khi thực hiện các tác vụ phức tạp đồng thời

Những giới hạn này là để đảm bảo sự tập trung vào chất lượng của đồ án, nhưng cũng tạo nền tảng cho những nghiên cứu và phát triển tiếp theo để mở rộng phạm vi và khả năng ứng dụng của các phiên bản kế tiếp của robot của nhóm trong tương lai

BỐ CỤC ĐỒ ÁN

Chương đầu tiên của báo cáo sẽ mô tả bối cảnh và ngữ cảnh của đồ án, bao gồm cả nguyên nhân động lực và mục tiêu nghiên cứu Nó sẽ giới thiệu tổng quan về Robot tự động hóa và cảm biến LiDAR, đồng thời trình bày chi tiết về mục tiêu đề tài, đối tượng và phạm vi nghiên cứu đã được xác định

Chương II: Cơ sở lý thuyết

Chương này sẽ trình bày kiến thức cơ bản và nền tảng lý thuyết liên quan đến đồ án Bao gồm các khái niệm về Robotics, tự động hóa, cảm biến LiDAR, và thuật toán SLAM

Chương III: Thiết kế và xây dựng hệ thống robot

Chương này sẽ đi sâu vào thiết kế của Robot, bao gồm việc tính toán lựa chọn các thiết bị để xây dựng hệ phần cứng cho hệ thống robot cũng như xây dựng phần mềm Phần thiết kế phần cứng sẽ mô tả cấu trúc vật lý của Robot, cách tích hợp cảm biến LiDAR, và các linh kiện chính Trong khi đó, phần thiết kế phần mềm sẽ trình bày cách hệ thống điều khiển được xây dựng, thuật toán SLAM được triển khai, và cách tương tác với người dùng thông qua command line

Chương IV: Kết quả và đánh giá mô hình

Chương này sẽ trình bày chi tiết về các kết quả thực tế của đồ án Bao gồm những thông số kỹ thuật, dữ liệu thu thập từ thử nghiệm, và các hiệu suất của Robot trong các nhiệm vụ cụ thể Sự so sánh với các giải pháp hiện có cũng sẽ được đưa ra để đánh giá sự độc đáo và hiệu quả của đồ án

Chương V: Kết luận và hướng phát triển

Chương cuối cùng của báo cáo sẽ tổng kết những điểm chính đã được đề cập trong đồ án và rút ra những kết luận chính Nó sẽ đề cập đến mức độ đạt được của mục tiêu đề tài, những hạn chế gặp phải, và những học được từ quá trình nghiên cứu Hơn nữa, chương này cũng sẽ đề xuất hướng phát triển tiếp theo của đồ án và những nghiên cứu liên quan trong tương lai

Bố cục này sẽ giúp báo cáo có sự logic, dễ theo dõi, và cung cấp thông tin một cách có tổ chức và chi tiết về quá trình nghiên cứu và thành quả của đồ án

CƠ SỞ LÝ THUYẾT

ROBOT DI ĐỘNG

2.1.1 Tổng quan về robot di động

Robot di động (Mobile Robot) là một loại robot tự hành với khả năng di chuyển linh hoạt trong các môi trường khác nhau Thông thường, robot di động bao gồm các thành phần chính như:

- Cảm biến: Đảm nhận vai trò thu thập thông tin về môi trường xung quanh, bao gồm thông tin về khoảng cách, hình ảnh, âm thanh, và các tín hiệu khác Các loại cảm biến phổ biến bao gồm camera, lidar, siêu âm, IMU, GPS, và nhiều loại cảm biến chuyên dụng khác

- Bộ xử lý: Đảm nhiệm việc xử lý thông tin từ các cảm biến, đưa ra quyết định điều khiển và thực thi các thuật toán định hướng Bộ xử lý có thể là vi điều khiển, máy tính nhúng hoặc các hệ thống máy tính mạnh mẽ hơn

- Cơ cấu chấp hành: Thực hiện các chuyển động của robot theo lệnh từ bộ xử lý Các cơ cấu chấp hành phổ biến bao gồm động cơ điện, động cơ bước, động cơ servo, và các hệ thống truyền động khác như bánh xe, bánh xích, hoặc chân

Robot di động được sử dụng phổ biến trong nhiều lĩnh vực khác nhau Trong công nghiệp, chúng được sử dụng để vận chuyển hàng hóa, lắp ráp sản phẩm, và thực hiện các nhiệm vụ kiểm tra, giám sát tự động Trong lĩnh vực dịch vụ, robot di động có thể được sử dụng để hỗ trợ khách hàng, vận chuyển đồ ăn, hoặc dọn dẹp vệ sinh Bên cạnh đó, robot di động còn được áp dụng trong các lĩnh vực như nông nghiệp, y tế, quân sự, giải trí và nhiều lĩnh vực khác

Một trong những thách thức lớn trong việc phát triển robot di động là khả năng tự hành và điều hướng trong môi trường Các hệ thống định vị và lập bản đồ (SLAM)

9 đóng vai trò quan trọng trong việc giúp robot hiểu và di chuyển trong môi trường xung quanh Các thuật toán SLAM tận dụng dữ liệu từ các cảm biến để tạo lập bản đồ môi trường và xác định vị trí của robot trên bản đồ một cách đồng thời [7]

Trong những năm gần đây, sự phát triển của các công nghệ như trí tuệ nhân tạo (AI), học máy (machine learning), và thị giác máy tính (computer vision) đã mang lại những bước tiến đáng kể trong lĩnh vực robot di động Các thuật toán AI và machine learning được sử dụng để xử lý dữ liệu từ các cảm biến, giúp robot đưa ra quyết định điều khiển thông minh và thích ứng với môi trường thay đổi Thị giác máy tính cho phép robot nhận dạng và phân tích các đối tượng trong môi trường, từ đó hỗ trợ các nhiệm vụ như tránh chướng ngại vật, theo dõi mục tiêu, và tương tác với con người

2.1.2 Động học thuận của robot

Hình 2.1: Hệ trục toạ độ của robot di động Áp dụng quy tắc Denavit-Hartenberg (DH) để xác định bảng DH cho robot, ta thiết lập hệ trục tọa độ theo cách sau

Bảng 2.1: Bảng DH của robot di động: i a i − 1  i − 1 d i  i − 1

- a i − 1 : là khoảng cách từ trục z i − 1 đến trục z i dọc theo trục x i − 1

-  i − 1 : là góc lệch của trục z i − 1 đến trục z i dọc theo trục x i − 1

- d i : là khoảng cach từ trục x i − 1 đến trục x i dọc theo trục z i

-  i : là góc quay từ trục x i − 1 dọc theo trục z i

Từ bảng 2.1, với cách đặt hệ trục tọa độ trên, ta có thể tính toán các ma trận chuyển đổi đồng nhất giữa các hệ trục tọa độ theo công thức sau:

Trong đó: c  là cos( ) , s  là sin( ) , c  là cos( ) , s  là sin( )

Từ công thức (2.1), ta tính được các ma trận chuyển đổi đồng nhất

Ma trận chuyển đổi đồng nhất từ hệ trục 0 sang hệ trục 1:

Ma trận chuyển đổi đồng nhất từ hệ trục 1 sang hệ trục 2:

Chúng ta cũng có ma trận chuyển đổi đồng nhất giữa hệ trục tại gốc tọa độ và vị trí bắt đầu của robot

“Nhân các ma trận này với nhau sẽ cho chúng ta ma trận chuyển đổi đồng nhất giữa hệ trục thứ 2 và hệ trục thứ 0 ”

Từ ma trận trên, ta có được ma trận chuyển đổi đồng nhất giữa hệ trục thứ 2 và hệ trục tại tọa độ gốc (map) như sau:

Dựa trên tọa độ điểm đầu cuối và ma trận chuyển đổi đồng nhất, ta có thể tính được tọa độ điểm đầu cuối so với hệ trục tọa độ 0, và phương trình động học thuận của robot là:

2.1.3 Tính toán động lực học của robot

Chúng ta có tọa độ của robot sau khi di chuyển trong hệ trục như sau: cos( ) sin( ) r c r c x x d y y d

- ( ,x y c c )là tọa độ điểm đầu của robot

- ( ,x y r r )là tọa độ điểm cuối của robot

Chuyển về phương trình (2.8), ta có: cos( ) sin( ) r c r c x x d y y d

−  −  (2.9) Đạo hàm hai vế của phương trình (2.9), ta được: cos( ) sin( ) r c r c x x d dt dt y y d dt dt

Từ phương trình x r −x c , ta xác định quãng đường robot đã di chuyển, và khi lấy đạo hàm theo thời gian, ta thu được vận tốc của robot trên quãng đường đó: cos( ) sin( ) sin( ) cos( ) x y v v d d v v d d

Từ phương trình trên, chúng ta đặt biến  là đạo hàm của góc  theo thời gian, và từ đó, chúng ta thu được: cos( ) sin( ) sin( ) cos( ) x y v v d v v d

(Với là gia tốc góc, đơn vị:rad s/ 2 )

Phương trình động lực học tổng quát của robot:

Ta có hàm vi phân của robot: d L dL dt d 

Công thức tính động năng của robot:

Công thức tính thế năng của robot:

- v ci T : vận tốc góc của khâu thứ i

-  i : gia tốc góc của khâu thứ i

- I i : moment quán tính của khâu thứ i

- P ci 0 : vị trí trọng tâm khâu thứ i

- U refi : năng lượng thế năng tại gốc

“Từ vận tốc bánh trái và vận tốc bánh phải, chúng ta tính được vận tốc thẳng của robot: ”

Với v l là vận tốc của bánh trái và v r là vận tốc bánh phải của robot Động năng của robot là:

Thế năng của robot: U = 0 vì hướng phương của robot là nằm ngang, vuông góc với gia tốc của trọng trường, do đó thế năng của robot là 0 Ta có:

Ta có hàm vi phân của robot:

Từ ba phương trình (2.19), (2.20) và (2.21), ta có tính toán như sau:

Dựa trên phương trình trên, chúng ta tìm được phương trình Euler-Lagrange cho mỗi động cơ:

Z r r r r md I mdR mR L L md I mdR mR L L

HỆ ĐIỀU HÀNH ROBOT - ROS

2.2.1 Tổng quan về ROS và ROS2

Hệ Điều Hành Robot (ROS - Robot Operating System) là một nền tảng phần mềm mạnh mẽ và linh hoạt, được áp dụng trong nghiên cứu và phát triển robot Được phát triển bởi Willow Garage và hiện tại được quản lý bởi Open Robotics, ROS đã trở thành tiêu chuẩn trong ngành phát triển robot Với sự tiến bộ của công nghệ, ROS2, phiên bản cải tiến của ROS, đã được phát triển nhằm khắc phục những hạn chế và đáp ứng nhu cầu ngày càng cao trong lĩnh vực này

ROS2 có kiến trúc phân tán, cho phép các thành phần của robot giao tiếp với nhau thông qua truyền thông tin bằng thông điệp Điều này tạo ra một môi trường thuận tiện

15 cho việc phát triển, thử nghiệm và tích hợp các chức năng của robot Đề tài của nhóm sử dụng ROS2 để tận dụng những điểm vượt trội của nó so với ROS

ROS2 mang lại nhiều cải tiến đáng kể, bao gồm:

- Độ tin cậy cao hơn: ROS2 sử dụng DDS (Data Distribution Service) làm lớp truyền thông, cải thiện độ tin cậy và khả năng mở rộng của hệ thống

- Thời gian thực tốt hơn: ROS2 hỗ trợ các ứng dụng thời gian thực, cho phép robot thực hiện các nhiệm vụ đòi hỏi độ chính xác cao về thời gian

- Bảo mật: ROS2 tích hợp các tính năng bảo mật, đảm bảo an toàn cho dữ liệu và hệ thống robot trước các mối đe dọa an ninh mạng

- Tương thích đa nền tảng: ROS2 được thiết kế để hoạt động trên nhiều hệ điều hành khác nhau, bao gồm Linux, Windows và macOS, giúp tăng tính linh hoạt trong phát triển ứng dụng

ROS2 cung cấp một hệ sinh thái phong phú với nhiều gói phần mềm, bao gồm các thư viện, công cụ và tiện ích hỗ trợ đáng kể cho việc phát triển robot Một số gói phần mềm nổi bật trong ROS2 bao gồm:

- MoveIt: Một khung lập kế hoạch chuyển động cho phép robot lập kế hoạch và thực hiện các nhiệm vụ điều khiển phức tạp một cách hiệu quả và an toàn

- OpenCV: Một thư viện thị giác máy tính cung cấp các công cụ và thuật toán phong phú cho việc xử lý hình ảnh và video, rất cần thiết cho các nhiệm vụ như nhận dạng và theo dõi đối tượng

- Gazebo: Một trình mô phỏng robot độ trung thực cao cho phép các nhà phát triển tạo ra các môi trường ảo thực tế để thử nghiệm và xác nhận hành vi và thuật toán của robot

- ROS Navigation Stack: Một tập hợp các gói liên quan đến điều hướng cung cấp các khả năng như lập bản đồ, định vị và lập kế hoạch đường đi để hỗ trợ robot tự động di chuyển

- ROS Control: Một gói cung cấp giao diện tiêu chuẩn để điều khiển phần cứng robot, cho phép các nhà phát triển dễ dàng tích hợp và điều khiển các hệ thống robot khác nhau

Một trong những lợi ích lớn của ROS2 là cộng đồng người dùng rộng lớn và hoạt động tích cực cùng với việc chia sẻ kiến thức mở Cộng đồng ROS2 rất nhiệt tình và sẵn sàng chia sẻ các gói phần mềm, hướng dẫn và kinh nghiệm, giúp người dùng nhanh chóng tiếp cận và áp dụng các công nghệ mới nhất

Với tính linh hoạt, tiện lợi và khả năng tương tác giữa các thành phần robot, ROS2 đã trở thành một công cụ thiết yếu trong lĩnh vực nghiên cứu và phát triển robot “ Hệ thống này giúp các nhà phát triển tập trung vào việc phát triển các chức năng cụ thể của robot mà không cần lo lắng về việc phải xây dựng lại các chức năng cơ bản Với tác động đáng kể và tiềm năng phát triển liên tục, ROS2 đóng vai trò quan trọng trong việc nâng cao sự phát triển của ngành công nghiệp robot [8]

Khi xem xét cấu trúc và hệ sinh thái của ROS, có ba khái niệm quan trọng: Filesystem, Computation Graph và Community

- “ Khái niệm đầu tiên - Hệ thống tập tin (Filesystem): Đây là phần giải thích về cấu trúc thư mục và các tập tin tối thiểu mà ROS cần để hoạt động

- Khái niệm thứ hai – Computation Graph: Là giao tiếp giữa các quá trình xử lý và hệ thống Quản lý các quá trình giao tiếp giữa nhiều máy tính với nhau

SLAM

“SLAM (Simultaneous Localization and Mapping) là một công nghệ quan trọng trong lĩnh vực robot và xe tự hành, cho phép chúng hoạt động trong môi trường không xác định ” SLAM giải quyết đồng thời hai vấn đề: xác định vị trí của robot (localization) và xây dựng bản đồ môi trường xung quanh (mapping) [9]

Robot sử dụng các cảm biến như camera, lidar, hoặc radar để thu thập dữ liệu về môi trường, từ đó xác định các đặc điểm nổi bật như góc cạnh, đường thẳng, hoặc vật thể Đồng thời, robot theo dõi chuyển động của nó bằng các cảm biến như encoder bánh xe hoặc IMU

“SLAM kết hợp thông tin từ các cảm biến này để xây dựng bản đồ và xác định vị trí của robot trên bản đồ đó ” Bản đồ được cập nhật liên tục dựa trên dữ liệu cảm biến mới, cho phép robot hoạt động hiệu quả và chính xác hơn trong môi trường thực SLAM có nhiều ứng dụng quan trọng trong thực tế, bao gồm xe tự lái, robot hút bụi, drone, và thực tế ảo (VR)

Lidar SLAM là phương pháp sử dụng cảm biến laser hoặc cảm biến khoảng cách Cảm biến laser thường tạo ra các điểm 2D hoặc 3D Đám mây điểm từ cảm biến laser cung cấp khoảng cách chính xác cao và rất lý tưởng cho việc xây dựng bản đồ

Laser SLAM, được trang bị cảm biến Lidar trong môi trường trong nhà, có thể giúp robot xây dựng bản đồ và tự chủ di chuyển Hệ thống SLAM laser tính toán khoảng cách di chuyển và sự thay đổi tư thế của Lidar bằng cách khớp và so sánh hai đám mây điểm tại các thời điểm khác nhau, từ đó hoàn thành việc định vị robot trên bản đồ Bản đồ được tạo ra bằng laser SLAM có độ chính xác cao, không có sai số và có thể được sử dụng trực tiếp để định vị và dẫn đường Laser SLAM có khả năng tự động điều hướng mà không cần thiết bị định vị phụ trợ, có thể tự do điều hướng, lập kế hoạch tuyến đường tự động và di chuyển an toàn

SLAM Toolbox là một phương pháp SLAM mạnh mẽ và linh hoạt được thiết kế để hoạt động hiệu quả trong các môi trường lớn và phức tạp Khác với Hector SLAM, SLAM Toolbox không phụ thuộc vào cảm biến lidar mà có thể tận dụng kết hợp nhiều loại cảm biến khác nhau, bao gồm lidar, camera và dữ liệu đo đường Điều này mang lại khả năng thích ứng cao, cho phép SLAM Toolbox hoạt động hiệu quả trong nhiều tình huống khác nhau Điểm mạnh của SLAM Toolbox nằm ở khả năng tùy biến và mở rộng Nó hỗ trợ cả chế độ lập bản đồ trực tuyến và ngoại tuyến, cho phép người dùng xây dựng bản đồ trong thời gian thực hoặc sử dụng dữ liệu đã lưu trữ SLAM Toolbox còn cung cấp nhiều công cụ hữu ích như tính năng lập bản đồ suốt đời, cho phép cập nhật bản đồ liên tục khi robot di chuyển trong môi trường thay đổi, và các thuật toán hợp nhất bản đồ, giúp kết hợp nhiều bản đồ thành một bản đồ lớn hơn và chính xác hơn

Bảng 2.2: So sánh các ưu nhược điểm của SLAM Toolbox với một số thuật toán thường gặp

Phương pháp Ưu điểm Nhược điểm

HECTOR_SLAM Hiệu quả trong môi trường trong nhà với cảm biến lidar

Xây dựng bản đồ chính xác và chi tiết

Phụ thuộc vào dữ liệu đo đường

Khó khăn trong môi trường lớn và phức tạp

GMAPPING Dễ sử dụng và cài đặt

Tạo ra bản đồ chất lượng tốt trong không gian nhỏ

Cần dữ liệu đo đường để hoạt động hiệu quả

Không phù hợp với không gian lớn

KARTO Dễ sử dụng và học hỏi

Cho kết quả tương tự như GMAPPING trong không gian nhỏ Ít thông tin về khả năng hoạt động trong không gian lớn

SLAM Toolbox Linh hoạt và tùy biến cao Có thể yêu cầu cấu hình

Hỗ trợ nhiều loại cảm biến và chế độ lập bản đồ

Hiệu quả trong môi trường lớn và phức tạp

Cung cấp nhiều công cụ hữu ích phức tạp hơn các phương pháp khác

Navigation stack 2D được sử dụng để thu thập thông tin, dữ liệu từ odometry, cảm biến, điểm đặt và các điểm đặt, sau đó tạo ra các lệnh vận tốc để điều khiển chuyển động của robot

Khi sử dụng Navigation stack, cần đáp ứng một số yêu cầu phần cứng nhất định:

- Odometry: Robot cần được trang bị các cảm biến odometry, chẳng hạn như bộ mã hóa hoặc cảm biến bánh xe, để ước tính vị trí và vận tốc của nó dựa trên chuyển động quay của bánh xe

- Laser Range Finder hoặc Lidar: Cảm biến laser range finder hoặc lidar thường được sử dụng để cung cấp các phép đo khoảng cách chính xác và đáng tin cậy cho việc phát hiện chướng ngại vật và lập bản đồ Cảm biến này giúp robot nhận biết môi trường xung quanh và tránh va chạm

- IMU (Inertial Measurement Unit): Cảm biến IMU, bao gồm gia tốc kế và con quay hồi chuyển, thường được sử dụng để cung cấp thông tin về hướng và vận tốc góc của robot Dữ liệu này quan trọng cho việc hợp nhất cảm biến và định vị chính xác

- Bộ truyền động (Actuators): Robot cần có các bộ truyền động, chẳng hạn như bộ điều khiển động cơ hoặc servo, để điều khiển chuyển động của nó dựa trên các lệnh vận tốc được tạo ra bởi Navigation stack Các bộ truyền động này cho phép robot di chuyển và điều hướng qua môi trường

Navigation stack chỉ gửi vận tốc trực tiếp đến bộ điều khiển robot để đạt được các giá trị điểm đặt của robot như vận tốc tuyến tính theo trục x, trục y và vận tốc góc

Hình 2.3: ROS Navigation Stack tiêu chuẩn 2.4.1 Costmap 2D

Costmap 2D là một package trong ROS được sử dụng để biểu diễn dữ liệu về chi phí di chuyển trong môi trường xung quanh robot Nó chứa thông tin về các vật cản cũng như những khu vực mà robot không thể di chuyển đến được “ Costmap sử dụng dữ liệu từ các cảm biến và bản đồ đã được xây dựng trước đó để cập nhật thông tin về vật cản ”

Costmap được thiết kế theo dạng lớp, mỗi lớp chứa một loại thông tin cụ thể Ví dụ, một lớp có thể chứa bản đồ tĩnh của môi trường, trong khi một lớp khác chứa thông tin về các vật cản động được phát hiện bởi cảm biến lidar Cách tiếp cận này cho phép xử lý thông tin về vật cản một cách linh hoạt và thông minh hơn

Robot sẽ di chuyển trong map theo hai chế độ: toàn cục (global) và cục bộ (local) Global navigation được sử dụng để tạo đường đi đến mục tiêu trên bản đồ hoặc những đường đi dài, trong khi local navigation được sử dụng để tạo đường đi trong khoảng cách ngắn và tránh vật cản khi robot di chuyển

GIAO THỨC TRUYỀN THÔNG

UART (Universal Asynchronous Receiver-Transmitter), hay còn gọi là bộ thu phát không đồng bộ đa năng, là một phương thức giao tiếp kỹ thuật số đơn giản nhưng hiệu quả giữa các thiết bị Giao tiếp UART được thiết lập thông qua hai dây dẫn riêng biệt (RX và TX) và một dây nối đất chung

Trong giao tiếp UART, dữ liệu được truyền theo kiểu nối tiếp, từng bit một, thông qua hai dây RX (nhận dữ liệu) và TX (truyền dữ liệu) Do chỉ có một dây cho mỗi chiều, dữ liệu được truyền tuần tự, bit tiếp bit, đảm bảo tính đơn giản và hiệu quả trong việc trao đổi thông tin giữa các thiết bị

Hình 2.5: Cấu trúc khung truyền của UART

Chiều dài của khung dữ liệu có thể nằm trong khoảng từ 5 đến 8 bit Nếu bit chẵn lẻ không được sử dụng, thì chiều dài của khung dữ liệu có thể là 9 bit Bit có trọng số nhỏ nhất (Least Significant Bit - LSB) được truyền trước, sau đó đến bit có trọng số lớn nhất (Most Significant Bit - MSB)

“Các tốc độ Baudrate thường được sử dụng để giao tiếp với máy tính bao gồm: 600,

Cả hai UART cũng phải được cấu hình để truyền và nhận cùng một cấu trúc gói dữ liệu, đồng nghĩa với việc thiết lập cùng tốc độ baud ở cả hai vi điều khiển “ Chân Tx (truyền) của thiết bị này sẽ được kết nối trực tiếp với chân Rx (nhận) của thiết bị kia và ngược lại ” Điện áp hoạt động thường là 3.3V hoặc 5V UART là giao thức giao tiếp giữa hai thiết bị, trong đó một thiết bị đóng vai trò chủ (master) và thiết bị còn lại là phụ (slave)

Hình 2.4: Sơ đồ kết nối data bus qua giao tiếp UART

ROS Serial là một thư viện truyền thông cho phép trao đổi dữ liệu giữa một máy tính chạy hệ điều hành Robot (ROS) và một vi điều khiển hoặc hệ thống nhúng Nó cho phép tích hợp ROS với các nền tảng phần cứng cấp thấp không có hỗ trợ ROS nguyên bản

ROS Serial cung cấp một giao thức gọn nhẹ và linh hoạt cho truyền thông nối tiếp, cho phép các node ROS gửi và nhận tin nhắn và lệnh qua cổng nối tiếp Nó hỗ trợ cả chế độ truyền thông không đồng bộ và đồng bộ, tùy thuộc vào yêu cầu của ứng dụng

Một trong những trường hợp sử dụng chính của ROS Serial là kết nối ROS với các vi điều khiển hoặc máy tính bo mạch đơn như Arduino, Raspberry Pi hoặc BeagleBone Bằng cách sử dụng ROS Serial, các thiết bị năng lượng thấp này có thể hoạt động như các node ROS, cho phép chúng tương tác với các node ROS khác và tận dụng hệ sinh thái phong phú của các thư viện và công cụ ROS

ROS Serial thường được sử dụng khi cần truyền thông thời gian thực hoặc gần thời gian thực giữa máy tính hỗ trợ ROS và vi điều khiển Điều này có thể bao gồm các ứng dụng như điều khiển robot, tích hợp cảm biến và ghi dữ liệu.

THUẬT TOÁN PID

Bộ điều khiển PID đã có lịch sử lâu đời kể từ khi Ziegler và Nichols công bố các quy tắc điều chỉnh PID vào năm 1942 Trên thực tế, ưu điểm của điều khiển PID nằm

27 ở sự đơn giản và ý nghĩa vật lý rõ ràng Trong công nghiệp, kiểm soát đơn giản thường được ưu tiên hơn kiểm soát phức tạp, trừ khi việc cải thiện hiệu suất đạt được bằng cách sử dụng kiểm soát phức tạp là đáng kể PID là viết tắt của Proportional (P), Integral (I), và Derivative (D), là một phương pháp điều khiển kết hợp ba yếu tố này để điều chỉnh sai số về mức tối thiểu, tăng tốc độ phản ứng, giảm độ biến động và hạn chế dao động Bộ điều khiển này dễ dàng thiết kế chỉ với việc điều chỉnh ba thông số

Hình 2.7: Cấu trúc bộ điều khiển PID

“Trong đó, khâu tỉ lệ (khâu P) điều chỉnh đầu ra dựa trên mức độ sai số hiện tại; khâu tích phân (khâu I) ảnh hưởng lên đầu ra tỉ lệ với cả biên độ và thời gian tồn tại của sai số; và khâu vi phân (khâu D) ảnh hưởng lên đầu ra dựa trên tốc độ thay đổi của sai số, được tính bằng cách xác định độ dốc của sai số theo thời gian

- Dễ dàng thiết kế vì chỉ cần điều chỉnh ba thông số K p ,K K i , d

- Ít tốn bộ nhớ, thời gian tính toán xử lý khi nhúng vào các vi điều khiển ngắn

- Việc ta thiết kế bộ điều khiển PID ta phải tìm ba thông số của PID với hệ thống MIMO thì ta cần nhiều bộ PID để khiều khiển, với việc ta dùng nhiều bộ PID thì ta

28 cần phải tìm nhiều thông số Ba thông số K p ,K K i , d trong thực tế khó tìm chính xác được mà phải dựa vào kinh nghiệm

- Bộ điều khiển PID khi ta thay đổi các thông số cơ bản của hệ thống thì 3 thông số ta tìm được nó không chính xác và độ ổn định của hệ thống bị thay đổi theo

- Không thể loại bỏ thành phần phi tuyến trong hệ thống

- Đối với mỗi tần số tín hiệu đặt khác nhau thì sẽ sử dụng các bộ thông số PID khác nhau

THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ROBOT

YÊU CẦU HỆ THỐNG

Hệ thống robot di động trong đồ án này cần đáp ứng các yêu cầu sau:

- Khả năng di chuyển: Robot phải có khả năng di chuyển linh hoạt trong môi trường, bao gồm di chuyển tiến, lùi, quay trái, quay phải và dừng lại

- Khả năng quét môi trường: Robot phải được trang bị cảm biến LiDAR để quét môi trường xung quanh và thu thập dữ liệu về khoảng cách đến các vật thể

- Xây dựng bản đồ và định vị: Robot phải sử dụng thuật toán SLAM để xây dựng bản đồ 2D của môi trường và định vị vị trí của mình trên bản đồ đó

- Điều khiển từ xa: Robot phải có khả năng được điều khiển từ xa thông qua giao diện ROS

- Hiển thị thông tin: Hệ thống phải hiển thị thông tin về bản đồ, vị trí của robot và các thông số khác lên giao diện người dùng

- Độ ổn định và an toàn: Robot phải hoạt động ổn định và đảm bảo an toàn trong quá trình di chuyển Để đạt được các yêu cầu trên, hệ thống sẽ được thiết kế và xây dựng dựa trên các thành phần phần cứng và phần mềm phù hợp Phần cứng bao gồm các bộ phận cơ khí, điện tử và cảm biến Phần mềm sẽ được phát triển dựa trên nền tảng ROS, sử dụng các thư viện và công cụ có sẵn để xử lý dữ liệu, điều khiển robot và xây dựng giao diện người dùng.

ĐẶC TẢ HỆ THỐNG

3.2.1 Chức năng của hệ thống

Hệ thống robot di động trong đồ án này sẽ được phát triển với các chức năng sau:

- Điều khiển từ xa thông qua ROS: Robot sẽ có khả năng được điều khiển từ xa thông qua giao diện ROS Người dùng có thể gửi các lệnh điều khiển, thay đổi chế độ hoạt động và giám sát trạng thái của robot từ xa

- Quét và thu thập dữ liệu môi trường: Hệ thống LiDAR sẽ liên tục quét môi trường xung quanh để thu thập dữ liệu về khoảng cách đến các vật thể Dữ liệu này sẽ được sử dụng để xây dựng bản đồ và hỗ trợ quá trình điều hướng

- Stream video từ môi trường: Robot sẽ trang bị hệ thống camera để thu thập hình ảnh từ môi trường xung quanh và stream video trực tiếp về cho người dùng thông qua giao diện ROS Chức năng này giúp người dùng có cái nhìn trực quan về môi trường hoạt động của robot, hỗ trợ quá trình giám sát và điều khiển từ xa

- Xây dựng và cập nhật bản đồ 2D: Sử dụng thuật toán SLAM, robot sẽ tạo ra và cập nhật liên tục bản đồ 2D của môi trường Bản đồ này giúp robot xác định vị trí của mình và điều hướng chính xác trong không gian

- Hiển thị thông tin trên giao diện người dùng: Hệ thống sẽ cung cấp một giao diện người dùng để hiển thị bản đồ môi trường, vị trí hiện tại của robot, và các thông số hoạt động khác Giao diện này giúp người dùng theo dõi và điều khiển robot một cách trực quan và hiệu quả

- Tích hợp và đồng bộ dữ liệu: Hệ thống sẽ tích hợp và đồng bộ dữ liệu từ các cảm biến và thiết bị khác nhau Điều này giúp đảm bảo rằng tất cả thông tin được sử dụng cho điều hướng và xây dựng bản đồ là nhất quán và chính xác

3.2.2 Sơ đồ khối của hệ thống robot

Hình 3.1: Sơ đồ khối tổng quan hệ thống của Robot

Về tổng quan, LiDAR được kết nối với Raspberry Pi 4, sau đó truyền dữ liệu LiDAR và camera đến board Raspberry Pi 4 để sử dụng dữ liệu này Chúng bao gồm thông tin và tọa độ các điểm xung quanh, từ đó tổng hợp nên bản đồ dựa vào các thuật toán được áp dụng

Driver (trình điều khiển) là một phần mềm quan trọng trong hệ thống này Nó chịu trách nhiệm chuyển đổi dữ liệu điều khiển về vận tốc của Robot từ phía người dùng đến động cơ Ở đây, nhóm thực hiện dùng Arduino Nano như một bộ điều khiển động cơ riêng biệt và chỉ khi thông qua Arduino Nano thì tín hiệu mới được gửi đến Driver L298N Sở dĩ có thể kết nối trực tiếp Raspberry Pi với L298N, nhưng việc này là không nên, nhất là trong một hệ thống gồm có nhiều thành phần và mỗi thành phần đảm nhận một chức năng riêng biệt Việc phân tách Raspberry Pi thành bộ xử lí trung tâm và Arduino làm motor controller có một số lợi điểm về tính mô-đun (modularity)

Có thể hình dung, trong tương lai khi đồ án ngày càng lớn hơn, nhu cầu về việc thay

32 thế và nâng cấp các linh kiện cũng theo đó tăng lên Ví dụ, ta có thể nâng cấp một Driver điều khiển động cơ cao cấp hơn, có thể điều khiển nhiều động cơ cùng lúc hơn, hoặc thay đổi máy tính nhúng ở vị trí trung tâm thành một board khác, ví dụ như Beaglebone Black, hay thậm chí là chính board Arduino Nano này cũng có thể thay thế thành các board khác như Raspberry Zero Từ đây có thể thấy, một board riêng lẻ đóng vai trò là motor controller là một ý tưởng khá hay, giúp phân tách được các linh kiện và tăng tính mô-đun cho hệ thống Ngoài ra, việc tách rời thành 2 mô-đun như vậy có thể giúp tối ưu hóa việc phân bổ tài nguyên tính toán Một tình huống có thể hình dung, nếu một tiến trình (process) bị xung đột khi chạy các câu lệnh khác trên hệ thống, hoặc thuật toán PID đột ngột cần nhiều thời gian hơn bình thường để xử lí thì lúc này, một hệ thống động cơ được kết nối trực tiếp tới board sẽ không thể được điều khiển một cách chính xác và ảnh hưởng tới toàn bộ hệ thống

Các phần còn lại của sơ đồ khối, bao gồm việc kết nối từ Arduino tới Driver điều khiển động cơ, rồi từ đây truyền tín hiều đến động cơ được kết nối theo sơ đồ nối dây sau:

Bảng 3.1: Thứ tự nối dây giữa L298N và Arduino Nano

Bảng 3.2: Thứ tự nối dây giữa Arduino Nano và Encoder của động cơ

33 Động cơ được sử dụng trong đồ án là loại có encoder trả tín hiệu về Tín hiệu này sẽ được đọc và xử lí bởi Arduino Nano cùng với giải thuật PID, giúp tính toán được vận tốc và góc quay của hai bánh xe dẫn động của Robot Các thông tin này cùng với tín hiệu trả về từ cảm biến LiDAR sẽ giúp hiển thị được vị trí chính xác của Robot trên bản đồ

Ngoài ra, nguồn cấp năng lượng cho Robot hoạt động cũng là một vấn đề đáng lưu ý Ở đồ án này, nhóm sử dụng pin lithium 4S có điện áp tối đa khi được xạc đầy là 16.8V Dòng điện sau đó sẽ đi qua 2 mạch giảm áp để cấp nguồn cho Raspberry Pi 4 và cấp nguồn cho động cơ thông qua Driver L298N Về lý thuyết, L298N hoàn toàn có thể được cấp nguồn 12V để hoạt động bằng việc để nguyên các setup ban đầu của nhà sản xuất, tuy nhiên nhóm quyết định tháo jumper ở vị trí cấp nguồn để cấp nguồn 5V từ Arduino đến mạch chứ không dùng chung nguồn 12V với động cơ Lý do cho việc này là để đảm bảo an toàn cho mạch, khi việc cấp nguồn có điện áp cao với dòng ra lớn từ pin và các thao tác không chuyên của người thực hiện có thể làm cháy IC giảm áp trên L298N, dẫn đến làm hỏng sản phẩm

Cuối cùng, hệ thống Robot sẽ giao tiếp với PC thông qua các topic của ROS2 được publish qua mạng WiFi Các topic được gửi từ Robot như vận tốc của Robot, trạng thái của các bánh xe, trạng thái của Robot, dữ liệu quét được từ cảm biến sẽ được gửi về và tổng hợp thành bản đồ Ngoài ra, joystick được kết nối với máy tính để điều khiển Robot Nó cũng sẽ gửi một topic đi và Robot sẽ đọc và xử lí thông tin này, từ đó di chuyển chính xác theo những gì được điều khiển

Sơ đồ này là một mô hình đơn giản và cơ bản của nhóm về cách xây dựng một hệ thống Robot di động Các hệ thống Robot thực tế và trong quy mô công nghiệp thường phức tạp hơn nhiều và yêu cầu độ chính xác rất cao

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHẦN CỨNG

3.3.1 Các thiết bị và linh kiện chính sử dụng trong xây dựng mô hình robot 3.3.1.1 Board Raspberry Pi 4 Model B 4GB Để đáp ứng yêu cầu về khả năng và tốc độ xử lý, cần sử dụng một bo mạch mạnh mẽ để chạy các thuật toán điều khiển phức tạp Đồng thời, việc chọn một bộ vi xử lý tích hợp nhỏ gọn sẽ giúp giảm kích thước và tăng tính linh động cho sản phẩm

Raspberry Pi 4B, một trong những phiên bản gần đây của dòng máy tính nhúng Raspberry Pi, nổi bật với vi mạch Broadcom BCM2711 và bộ xử lý Cortex-A72 (ARM v8) bốn nhân 64-bit, chạy ở tốc độ 1,5 GHz Đây là vi mạch có tốc độ xử lý nhanh nhất trong dòng sản phẩm này Raspberry Pi 4B hỗ trợ hai cổng micro-HDMI, hai cổng USB 2.0, hai cổng USB 3.0 và kết nối Wi-Fi chuẩn IEEE 802.11ac hỗ trợ Dual-Band 2.4GHz và 5GHz

Cấu hình cơ bản của Raspberry Pi 4B bao gồm:

- Bộ xử lý: Broadcom BCM2711, Cortex-A72 (ARM v8) 64-bit SoC với tốc độ 1,5 GHz

- Kết nối mạng: Wi-Fi 2.4GHz và 5GHz IEEE 802.11ac, Bluetooth 5.0, BLE, và Ethernet tốc độ cao (Gigabit Ethernet) [11]

Lidar được sử dụng để đo khoảng cách đến các đối tượng bằng cách phát ra các xung laser và sau đó đo các xung phản xạ từ các đối tượng đó bằng cảm biến Sự khác biệt về thời gian truyền và bước sóng được sử dụng để tính toán và xây dựng mô hình vật thể

Lidar LD19 là một cảm biến đo khoảng cách dựa trên nguyên lý DTOF (Thời gian bay của ánh sáng), có thể quét môi trường 360 độ với bán kính đo lên đến 12m Lidar LD19 hoạt động dựa trên công nghệ Time of Flight (DTOF), trong đó sử dụng một tia laser để đo khoảng cách tới các vật thể xung quanh [12] Cảm biến phát ra một tia laser và khi tia ánh sáng này chạm vào vật thể, nó sẽ phản xạ và quay trở lại cảm biến, sau đó đo thời gian mà tia ánh sáng đi ra và trở lại, được gọi là thời gian bay (TOF) Dựa

35 trên thời gian bay này và vận tốc cố định của ánh sáng, cảm biến có thể tính toán khoảng cách tới vật thể một cách chính xác Công thức đơn giản cho phép tính khoảng cách là:

Khoảng cách = Vận tốc ánh sáng Thời gian bay

Thông số kỹ thuật của LD19:

- Độ chính xác: ± 45 mm trên toàn bộ phạm vi

- Tần số quét mặc định: 10 Hz (có thể điều chỉnh từ 5 Hz đến 13 Hz)

- Tốc độ giao tiếp: 230400 bps

- Giao diện giao tiếp: TTL UART

- Mức tiêu thụ dòng điện: 180 mA

- Nhiệt độ làm việc: -10 đến 40 °C

Hình 3.2: Cảm biến Lidar LD19 3.3.1.3 Webcam Rapoo XW180

Hình 3.3: Webcam Rapoo XW180

Webcam Rapoo XW180 mang độ phân giải video lên đến 1080P Full HD, cho phép quay video với chất lượng sắc nét và mượt mà ở tốc độ 30 khung hình/giây Cảm biến hình ảnh của nó được trang bị công nghệ Noise Reduction, giúp tăng cường chất lượng hình ảnh trong điều kiện ánh sáng yếu Ngoài ra, sản phẩm còn tích hợp microphone

37 với công nghệ giảm nhiễu thông minh để cải thiện chất lượng âm thanh và giảm thiểu tiếng ồn Webcam Rapoo XW180 có thiết kế nhỏ gọn, linh hoạt và có thể xoay 360 độ, giúp dễ dàng điều chỉnh góc quay để tương tác với Rasberry Pi qua cổng USB

- Loại ống kính: Không thay đổi tiêu cự

- Công nghệ thấu kính: Tiêu chuẩn

- Micrô tích hợp: Micro đơn âm

3.3.1.4 Mạch cầu điều khiển động cơ L298N

Mạch cầu H là một mạch điện được sử dụng để điều khiển và đảo ngược hướng dòng điện của một tải điện, thường là một động cơ DC Mạch cầu H có hình dạng như chữ cái H, gồm 4 công tắc (có thể là transistor, MOSFET, relay…) được kết nối với hai đầu của tải điện và nguồn điện Bằng cách đóng mở các công tắc theo một trình tự nhất định, ta có thể thay đổi chiều dòng điện qua tải điện, làm cho động cơ quay thuận hoặc nghịch, hoặc dừng quay Mạch cầu H còn có thể điều chỉnh tốc độ quay của động cơ bằng cách sử dụng xung PWM

Hình 3.4: Sơ đồ nguyên lý mạch cầu H

Nguyên lý hoạt động cơ bản của mạch cầu H được minh họa như sau:

- Trạng thái tiến (forward): Khi transistor Q1 và Q4 bật, còn Q2 và Q3 tắt, dòng điện sẽ chạy từ nguồn qua Q1, động cơ, qua Q4 và trở về nguồn, làm cho động cơ quay theo chiều thuận

- Trạng thái lùi (reverse): Khi Q2 và Q3 bật, còn Q1 và Q4 tắt, dòng điện sẽ chạy từ nguồn qua Q2, động cơ, qua Q3 và trở về nguồn, làm cho động cơ quay theo chiều ngược lại

- Trạng thái dừng (stop): Khi tất cả các transistor tắt, không có dòng điện chạy qua động cơ, khiến động cơ dừng quay

- Trạng thái mạch ngắn (short circuit): Khi tất cả các transistor bật, tạo ra một mạch ngắn từ nguồn đến đất, khiến động cơ bị khóa và không thể quay

Bằng cách sử dụng xung PWM, chúng ta có thể thay đổi độ rộng xung để điều khiển dòng điện qua động cơ, từ đó điều chỉnh tốc độ quay của động cơ

- Chip Điều khiển Cầu H kép: L298N

- Điện áp logic: 5V Điện áp điều khiển: 5V-35V

- Dòng điều khiển: 2A (Tối đa cho một cầu)

- Công suất tối đa: 25W mỗi cầu

3.3.1.5 Mạch giảm áp Buck DC-DC XL4015

Mạch giảm áp Buck DC-DC XL4015 là một mạch điện giúp giảm điện áp DC từ một nguồn cao hơn sang một nguồn thấp hơn, với dòng đầu ra tối đa là 5A Mạch này có nhiều ứng dụng trong việc cấp nguồn cho các thiết bị điện tử, động cơ, LED, Mạch có một số tính năng nổi bật như mạch sử dụng IC XL4015, có hiệu suất cao, tần số xung 180KHz, và tích hợp Mosfet đóng ngắt tần số cao Các biến trở chỉnh điện áp đầu ra và biến trở chỉnh dòng đầu ra, giúp người dùng có thể tùy biến theo nhu cầu Mạch có đồng hồ LED hiển thị điện áp đầu vào và đầu ra, và có phím chức năng chuyển đổi giữa hai chế độ hiển thị; đèn LED có thể báo quá dòng, quá áp, và quá nhiệt, giúp bảo vệ mạch và thiết bị kết nối

Hình 3.6: Mạch giảm áp Buck DC-DC XL4015

Mạch XL4015 hoạt động dựa trên nguyên lý của mạch giảm áp Buck Mạch giảm áp Buck là một mạch điện tử có thể chuyển đổi điện áp đầu vào cao hơn thành điện áp đầu ra thấp hơn Trong mạch thì IC XL4015 đóng vai trò là bộ điều khiển IC này sử dụng một mạch xung để tạo ra các xung điện có tần số cao Các xung điện này được sử dụng để điều khiển một transistor chuyển mạch Transistor chuyển mạch này sẽ đóng hoặc mở để điều khiển dòng điện chạy qua cuộn cảm Dòng điện chạy qua cuộn cảm sẽ tạo ra từ trường Khi transistor chuyển mạch mở, từ trường sẽ bị ngắt và dòng điện sẽ chạy qua tải Dòng điện này sẽ làm giảm điện áp đầu ra của mạch

40 Để sử dụng mạch XL4015, cần kết nối các chân của mạch như sau:

- Chân IN: Kết nối với nguồn điện đầu vào

- Chân OUT: Kết nối với tải

- Chân ADJ: Điều chỉnh điện áp đầu ra

- Chân FB: Điều chỉnh dòng điện đầu ra Để điều chỉnh điện áp đầu ra của mạch XL4015, cần sử dụng chiết áp được kết nối với chân ADJ Khi vặn chiết áp theo chiều kim đồng hồ, điện áp đầu ra sẽ tăng lên Khi vặn chiết áp ngược chiều kim đồng hồ, điện áp đầu ra sẽ giảm xuống Tương tự vặn chiết áp để điều chỉnh dòng đầu ra phù hợp

- Dải điện áp vào: 8V đến 36V

- Dải điện áp ra: Tùy chỉnh từ 1.25V đến 32V

- Dòng điện ra tối đa: 5A

- Hiệu suất cao: Lên đến 96%

3.3.2 Thiết kế hệ thống nguồn điện

THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG PHẦN MỀM CHO

Trong hành trình chế tạo Robot tự động hóa, phần mềm đóng vai trò quyết định, giúp máy móc thực hiện các chức năng phức tạp và tương tác một cách linh hoạt với môi trường xung quanh Thiết kế phần mềm là một khâu quan trọng, đóng vai trò là trái tim của hệ thống, định hình cách Robot quan sát, di chuyển, và tương tác với người điều khiển Phần này nêu sẽ chi tiết về kế hoạch và quyết định thiết yếu trong việc xây dựng phần mềm mạnh mẽ và đa nhiệm cho đồ án này

3.4.1 Chức năng hoạt động của phần mềm

Phần mềm của đồ án Robot tự động hóa không chỉ là một tập hợp các đoạn mã, mà là động lực đằng sau mọi hành động của Robot, định hình khả năng tương tác và linh hoạt của nó Chức năng chủ chốt của phần mềm bao gồm việc điều khiển di chuyển của Robot, triển khai thuật toán SLAM, tương tác chặt chẽ với hệ thống điều khiển, và cung cấp giao diện người dùng linh hoạt

Hình 3.12: Sơ đồ thiết kế tổng quan phần mềm hệ thống

Phần mềm đảm nhiệm việc điều khiển di chuyển bằng cách xử lí các quyết định hướng và tốc độ dựa trên dữ liệu từ người dùng và hệ thống di chuyển Nó không chỉ tạo ra các lệnh điều khiển mà còn liên tục xử lý dữ liệu LiDAR để định vị và xác định môi trường xung quanh, tạo ra sự linh hoạt và an toàn trong di chuyển

Triển khai thuật toán SLAM là chìa khóa để tạo bản đồ và định vị Robot đồng thời Phần mềm liên tục xử lý dữ liệu LiDAR để xây dựng và duy trì một bản đồ 2D của môi trường, cung cấp khả năng tự định vị và cập nhật thông tin không gian xung quanh Robot Phần mềm tương tác chặt chẽ với hệ thống điều khiển, nhận và thực hiện lệnh điều khiển, báo cáo trạng thái hoạt động, đảm bảo sự đồng bộ và hiệu quả trong quá trình thực hiện nhiệm vụ

Cuối cùng, qua giao diện đồ họa người dùng và command line, phần mềm tạo ra một cách tương tác linh hoạt giữa người điều khiển và Robot Người dùng có khả năng theo dõi trực tiếp bản đồ và trạng thái của Robot, đồng thời có thể nhập lệnh và nhận thông tin chi tiết về vị trí và dữ liệu cảm biến Phần mềm không chỉ là công cụ kỹ thuật, mà là trí óc định hình sự hoạt động thông minh và linh hoạt của Robot trong môi trường thực

Hình 3.13: Lưu đồ giải thuật chương trình điều khiển Robot act Robot Activity diagram

Khởi tạo các ngoại vi fork()

Kiểm tra Joystick Kiểm tra Lidar Kiểm tra camera

PC xử lý tín hiệu

Arduino điều khiển động cơ

Lidar thu thập dữ liệu

Raspberry xử lý dữ liệu

Cập nhật vị trí của Robot

Camera ghi hình ảnh từ môi trường

Truyền hình ảnh về PC

[Còn hoạt động] [Còn hoạt động]

Lưu đồ giải thuật cho Robot có quy trình hoạt động như sau:

Bắt đầu, người điều khiển sử dụng joystick để điều khiển Robot Tín hiệu từ joystick được nhận và chuyển đến hệ thống Hệ thống tiếp tục nhận tín hiệu điều khiển, bao gồm các lệnh như di chuyển và quay, từ joystick và truyền chúng đến PC

Raspberry Pi, được cài đặt ROS2, nhận lệnh điều khiển từ PC thông qua kết nối mạng ROS2 trên Raspberry Pi xử lý lệnh này và chuyển nó thành các tác vụ cụ thể mà Robot cần thực hiện ROS giúp tạo ra một giao tiếp linh hoạt giữa các thành phần của hệ thống, đồng thời hỗ trợ quản lý và xử lý dữ liệu

Robot thực hiện các lệnh được xử lý bởi ROS và truyền dữ liệu về tình trạng và vị trí của nó đến hệ thống LiDAR trên Robot thu thập dữ liệu về môi trường xung quanh và sử dụng nó để tạo bản đồ 2D Dữ liệu này cung cấp thông tin quan trọng để định vị và điều hướng Robot trong không gian

Cuối cùng, quy trình kết thúc khi Robot hoàn thành nhiệm vụ được giao hoặc khi người điều khiển dừng việc điều khiển joystick Tổng cảnh này minh họa quy trình tích hợp và tương tác giữa các thành phần chính của hệ thống, từ người điều khiển đến

PC, Raspberry Pi, ROS, Robot và LiDAR, để thực hiện và điều khiển Robot trong môi trường thực tế

Robot mà nhóm xây dựng là differential-drive Robot, có nghĩa là Robot có hai bánh lái, một ở bên trái và một ở bên phải Hai bánh này kiểm soát tất cả chuyển động, và bất kỳ bánh xe nào khác chỉ là để giữ cho Robot ổn định và có thể quay tự do ở mọi hướng (những bánh xe này được gọi là bánh xe caster) Cấu trúc này phổ biến cho các loại Robot vì nó đơn giản để lắp đặt và vận hành, cũng như khá linh hoạt vì nó có thể quay tại chỗ a Description – file URDF và các mô tả Robot thông tin Robot

File URDF, hay còn được biết đến với tên gọi "Unified Robot Description Format," là một định dạng file XML (eXtensible Markup Language) chủ yếu được sử dụng trong hệ thống ROS Nó chứa mô tả chi tiết về cấu trúc hình học, khối liên kết, và các thông tin khác liên quan đến mô hình của Robot trong không gian 3D

Trong một file URDF, chúng ta có thể tìm thấy mô tả cho các khối chính của Robot, như cơ thể, bánh xe, cánh tay, và các thành phần khác, cung cấp cả kích thước và hình học của chúng Đặc biệt, khớp cơ học (joints) được định nghĩa để mô phỏng các liên kết giữa các khối Các loại khớp như revolute joints (khớp xoay), prismatic joints (khớp trượt), và các khớp khác được mô tả để minh họa cách mà các phần của Robot có thể di chuyển và tương tác

Ngoài ra, URDF cũng có khả năng chứa các plugins được sử dụng để tích hợp với môi trường mô phỏng Gazebo [13], tạo điều kiện thuận lợi cho việc mô phỏng chính xác của Robot trong môi trường 3D File URDF cung cấp thông tin về hệ thống tọa độ của Robot, giúp định rõ vị trí và hướng của các khối trong không gian Điều này giúp ROS hiểu rõ cấu trúc của Robot và tương tác một cách hiệu quả với môi trường xung quanh Nhìn chung, URDF là một thành phần quan trọng trong ROS, giúp mô tả và định nghĩa mô hình Robot để thực hiện nhiều nhiệm vụ khác nhau từ hiển thị đến tính toán và vận động học

Hình 3.14: Sơ đồ xử lí file URDF và các topic được publish

Sơ đồ này minh họa các bước của một trình xuất bản trạng thái Robot của đồ án Bắt đầu với các tệp URDF/xacro phân tách, chưa được xử lý Bước đầu tiên là sử dụng xacro để xử lý các tệp URDF/xacro phân tách Điều này tạo ra một tệp URDF duy nhất, đã được xử lý Tệp URDF đã được xử lý chứa tất cả thông tin từ các tệp URDF/xacro phân tách Bước tiếp theo là sử dụng Robot_state_publisher để xuất dữ

52 liệu trạng thái Robot Dữ liệu trạng thái Robot bao gồm thông tin về trạng thái của các khớp và trục của Robot Dữ liệu trạng thái Robot được xuất ra hai luồng:

- /joint_states: Luồng này chứa thông tin về trạng thái của các khớp của Robot

- /tf: Luồng này chứa thông tin về các biến đổi giữa các liên kết của Robot

KẾT QUẢ VÀ ĐÁNH GIÁ MÔ HÌNH

MÔ HÌNH ROBOT HOÀN THIỆN

Sau thời gian thiết kế và hoàn thiện hệ thống phần cứng cũng như phần mềm của robot, nhóm đã tiến hành xây dựng và lắp ráp hoàn chỉnh mô hình robot như trong hình 4.1 và 4.2

Hình 4.1: Hình ảnh mô hình hoàn thiện của robot nhìn từ phía trước

Hệ thống robot đã hoàn thiện bao gồm các thành phần như Raspberry Pi 4B 4GB, cảm biến LiDAR, camera, khung xe, hệ thống bánh xích và động cơ, cùng với các linh kiện điện-điện tử và các dây kết nối tương ứng để kết nối các thành phần với nhau như và tạo thành một hệ thống robot hoàn chỉnh

Hình 4.2: Mô hình hoàn thiện của robot nhìn từ mặt bên

KẾT QUẢ CHẠY ROBOT TRONG MÔI TRƯỜNG MÔ PHỎNG TRÊN GAZEBO

Để đánh giá hiệu quả và khả năng thực hiện các chức năng của robot trong môi trường thực tế, nhóm đã tiến hành mô phỏng các chức năng này trên phần mềm Gazebo Quá trình mô phỏng này giúp kiểm tra và hiệu chỉnh các thuật toán điều hướng, nhận dạng và xử lý dữ liệu mà không cần phải trực tiếp sử dụng robot trong môi trường thật, tiết kiệm thời gian và chi phí

Hình 4.3: Bố cục môi trường nhà kho ảo để thử nghiệm hoạt động của robot

Bối cảnh mô phỏng được lựa chọn là một nhà kho với bố cục chi tiết như trong hình

4.3 Nhà kho này bao gồm các khu vực chứa hàng hóa, lối đi, và các điểm giao thông quan trọng mà robot phải nhận biết và tương tác

Trong quá trình mô phỏng, nhóm đã kiểm tra chi tiết hoạt động của hệ thống LiDAR của robot Hệ thống này giúp robot thu thập dữ liệu từ không gian trong môi trường xung quanh để phục vụ cho việc tạo lập bản đồ

Hình 4.4: Thử nghiệm chạy mô phỏng hoạt động của LiDAR trên Gazabo

Trong hình 4.4, chúng ta có thể thấy quá trình thử nghiệm hoạt động của LiDAR trong môi trường mô phỏng trên Gazebo LiDAR quét xung quanh robot và tạo ra một tập hợp các điểm dữ liệu phản ánh khoảng cách từ robot đến các vật thể trong môi trường Những dữ liệu này sau đó được sử dụng để xây dựng bản đồ 2D của khu vực xung quanh robot

Hình 4.5: Mô phỏng hoạt động của LiDAR trong môi trường nhà kho ảo

Hình 4.5 minh họa hoạt động của LiDAR khi robot di chuyển trong môi trường nhà kho ảo Các điểm quét của LiDAR cho thấy vị trí của các vật thể như hộp, kệ hàng và các chướng ngại vật khác Thông qua dữ liệu này, robot có thể định vị chính xác vị trí của mình trong nhà kho

Trong quá trình mô phỏng, hoạt động của camera trên robot cũng được kiểm tra kỹ lưỡng Camera đóng vai trò quan trọng trong việc thu thập hình ảnh từ môi trường xung quanh, giúp robot nhận diện các đối tượng, theo dõi chuyển động và hỗ trợ điều hướng Bằng cách sử dụng hình ảnh từ camera, robot có thể thực hiện các nhiệm vụ phức tạp yêu cầu khả năng quan sát và phân tích trực quan

Hình 4.6: Thử nghiệm chạy mô phỏng hoạt động của camera trên robot

Hình 4.6 minh họa quá trình thử nghiệm hoạt động của camera trong môi trường mô phỏng trên Gazebo Camera được gắn trên robot để quan sát không gian phía trước của robot Qua các thử nghiệm này, nhóm kiểm tra khả năng của camera trong việc cung cấp hình ảnh rõ nét và liên tục, đảm bảo rằng dữ liệu hình ảnh thu được đủ chất lượng

Hình 4.7: Hình ảnh thu được từ camera của robot trong môi trường mô phỏng

Hình 4.7 cho thấy hình ảnh thu được từ camera của robot khi hoạt động trong môi trường mô phỏng nhà kho Các hình ảnh này cung cấp thông tin trực quan về vị trí của các vật thể, kệ hàng, và các chướng ngại vật khác trong nhà kho

4.2.3 Hoạt động tạo bản đồ

Trong quá trình mô phỏng, chức năng tạo bản đồ của robot được kiểm tra và đánh giá kỹ lưỡng Áp dụng thuật SLAM Toolbox, robot có khả năng vừa di chuyển trong môi trường vừa xây dựng bản đồ của khu vực đó Kỹ thuật này giúp robot định vị chính xác vị trí của mình trong không gian và tạo ra bản đồ chi tiết phục vụ cho các nhiệm vụ điều hướng sau này

Hình 4.8: Mô phỏng hoạt động SLAM của robot

Hình 4.9 cho thấy quá trình robot tạo bản đồ 2D của nhà kho trong môi trường mô phỏng Robot di chuyển qua các khu vực khác nhau của nhà kho, sử dụng cảm biến để quét và thu thập dữ liệu về cấu trúc và các vật thể trong không gian Dữ liệu này sau đó được xử lý và hiển thị dưới dạng bản đồ 2D, cung cấp thông tin chi tiết về bố cục và các chướng ngại vật trong nhà kho

Hình 4.9: Mô phỏng quá trình robot tạo bản đồ 2D của nhà kho

Kết quả từ các thử nghiệm cho thấy thuật toán SLAM của robot hoạt động hiệu quả, tạo ra các bản đồ chi tiết và chính xác của môi trường mô phỏng Những bản đồ này không chỉ hỗ trợ robot trong việc điều hướng mà còn cung cấp cơ sở dữ liệu quan trọng cho việc thực hiện các nhiệm vụ phức tạp khác trong môi trường thực tế.

KẾT QUẢ CHẠY ROBOT TRONG THỰC TẾ

4.3.1 Thử nghiệm đo khoảng cách trong trong môi trường thực và trong Rviz

Trong phần này, nhóm tiến hành thử nghiệm đo khoảng cách của robot trong môi trường thực tế và so sánh với kết quả đo trong phần mềm RViz để đánh giá độ chính xác của hệ thống Dưới đây là bảng đo thử nghiệm khoảng cách trong thực tế và trong RViz được thực hiện 10 lần, với độ chính xác đạt khoảng 98%

Bảng 4.1: So sánh khoảng cách đo của robot trong RViz và trong thực tế

Lần thử nghiệm Khoảng cách thực tế

Khoảng cách trong RViz (m)

Hình 4.11: Đánh giá độ chính xác của khoảng cách trong RViz với thực tế 4.3.2 Thử nghiệm hoạt động tạo bản đồ của robot

Trong thử nghiệm này, robot được triển khai trong một căn phòng để tiến hành hoạt động tạo bản đồ Hệ thống SLAM của robot sẽ quét môi trường xung quanh, xác định các vật cản và cấu trúc của căn phòng, từ đó tạo ra bản đồ 2D chi tiết

Hình 4.12: Robot bắt đầu hoạt động tạo map của căn phòng

Kết quả từ quá trình này được so sánh với hình ảnh thực tế của căn phòng để đánh giá độ chính xác của bản đồ được tạo ra Robot đã hoàn thành việc quét và tạo ra bản đồ 2D với độ chi tiết ổn, phản ánh chính xác bố cục của căn phòng

Hình 4.13: Hình ảnh thực tế của căn phòng và bản đồ 2D mà robot tạo ra được

4.3.3 Thử nghiệm hoạt động stream video của robot

Nhóm tiến hành thử nghiệm khả năng truyền video trực tiếp của robot từ môi trường thực tế Hệ thống camera của robot sẽ ghi lại hình ảnh và truyền về máy tính qua ROS để xử lý và hiển thị

Hình 4.14: Hình ảnh thu được từ camera của robot và trong thực tế

Thêm vào đó, nhóm thử nghiệm kết hợp đồng thời hoạt động tạo bản đồ và stream video để đánh giá hiệu suất của hệ thống trong các tác vụ phức tạp Kết quả cho thấy robot có thể thực hiện đồng thời cả hai nhiệm vụ mà không gặp phải các vấn đề về hiệu suất hoặc độ trễ

Hình 4.15: Thử nghiệm kết hợp đồng thời hoạt động tạo map và stream từ robot

PHÂN TÍCH KẾT QUẢ

Robot đã thực hiện thành công các chức năng theo yêu cầu ban đầu và đã được kiểm tra, xác minh rằng nó duy trì tính ổn định trong thời gian dài, đồng thời hoạt động liên tục và đáng tin cậy trong môi trường làm việc

Dựa vào kết quả thực nghiệm về khả năng hoạt động của các thành phần chính trong hệ thống robot cho thấy rằng:

- Hoạt động của LiDAR: Hệ thống LiDAR trên robot hoạt động hiệu quả trong việc thu thập dữ liệu từ môi trường xung quanh, giúp xây dựng bản đồ chi tiết của không gian Qua các thử nghiệm mô phỏng, LiDAR đã cho thấy khả năng quét và xác định vị trí của các vật thể một cách chính xác

- Hoạt động của camera: Camera trên robot cung cấp hình ảnh rõ nét và liên tục từ môi trường thực tế Khả năng nhận diện và phân tích hình ảnh của camera được đánh giá cao qua các thử nghiệm Hệ thống camera hoạt động ổn định và đáng tin cậy, đáp ứng tốt các yêu cầu của nhiệm vụ

- Hoạt động tạo bản đồ: Áp dụng thuật toán SLAM, robot đã chứng tỏ khả năng tạo lập bản đồ chi tiết và chính xác của môi trường xung quanh trong quá trình di chuyển Các bản đồ 2D được tạo ra trong cả môi trường mô phỏng và thực tế đều cho thấy độ chính xác cao, phản ánh đúng cấu trúc và bố cục của không gian Điều này giúp robot định vị chính xác và thực hiện các nhiệm vụ phức tạp một cách hiệu quả

Ngày đăng: 26/09/2024, 14:39

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Phan Hoàng Anh, Bùi Duy Nam, Trần Hữu Quốc Đông, Vũ Tiến Đạt, Nguyễn Thị Thanh Vân, “Nghiên cứu phát triển robot xây dựng bản đồ và định vị đồng thời trên nền tảng ROS,” trong Hội nghị Quốc gia lần thứ XXIII về Điện tử, Truyền thông và Công nghệ thông tin, 12/2020 Sách, tạp chí
Tiêu đề: Nghiên cứu phát triển robot xây dựng bản đồ và định vị đồng thời trên nền tảng ROS,” trong "Hội nghị Quốc gia lần thứ XXIII về Điện tử, Truyền thông và Công nghệ thông tin
[2] Đinh Bảo Minh, Đặng Anh Việt, Nguyễn Cảnh Thanh và Hoàng Văn Xiêm, “Đánh giá và tối ưu thuật toán Hector SLAM trong việc lập bản đồ và định vị trên robot Pimouse,” trong Hội nghị Quốc gia lần thứ XXIV về Điện tử, Truyền thông và Công nghệ Thông tin, 12/2021 Sách, tạp chí
Tiêu đề: Đánh giá và tối ưu thuật toán Hector SLAM trong việc lập bản đồ và định vị trên robot Pimouse,” trong "Hội nghị Quốc gia lần thứ XXIV về Điện tử, Truyền thông và Công nghệ Thông tin
[3] Ilmir Z. Ibragimov, Ilya M. Afanasyev, “Comparison of ROS-based visual SLAM methods in homogeneous indoor environment,” trong 2017 14th Workshop on Positioning, Navigation and Communications (WPNC), Bremen, Germany, 10/2017 Sách, tạp chí
Tiêu đề: Comparison of ROS-based visual SLAM methods in homogeneous indoor environment,” trong "2017 14th Workshop on Positioning, Navigation and Communications (WPNC)
[4] Yassin Abdelrasoul, Abu Bakar Sayuti HM Saman, Patrick Sebastian, “A quantitative study of tuning ROS gmapping parameters and their effect on performing indoor 2D SLAM,” trong 2016 2nd IEEE International Symposium on Robotics and Manufacturing Automation (ROMA), Ipoh, Malaysia, 9/2016 Sách, tạp chí
Tiêu đề: A quantitative study of tuning ROS gmapping parameters and their effect on performing indoor 2D SLAM,” trong "2016 2nd IEEE International Symposium on Robotics and Manufacturing Automation (ROMA)
[5] SangYoung Park, GuiHyung Lee, “Mapping and localization of cooperative robots by ROS and SLAM in unknown working area,” trong 2017 56th Annual Conference of the Society of Instrument and Control Engineers of Japan (SICE), Kanazawa, Japan, 9/2017 Sách, tạp chí
Tiêu đề: Mapping and localization of cooperative robots by ROS and SLAM in unknown working area,” trong "2017 56th Annual Conference of the Society of Instrument and Control Engineers of Japan (SICE)
[6] Monserrat Rojas-Fernández, Dante Mújica-Vargas, Manuel Matuz-Cruz, Diana López-Borreguero, “Performance comparison of 2D SLAM techniques available in ROS using a differential drive robot,” trong 2018 International Conference on Electronics, Communications and Computers (CONIELECOMP), Cholula, Mexico, 3/2018 Sách, tạp chí
Tiêu đề: Performance comparison of 2D SLAM techniques available in ROS using a differential drive robot,” trong "2018 International Conference on Electronics, Communications and Computers (CONIELECOMP)
[7] Anantha Sai Hari Haran V Injarapu; Suresh Kumar Gawre, “A survey of autonomous mobile robot path planning approaches,” trong International Conference on Recent Innovations in Signal processing and Embedded Systems (RISE), Bhopal, India, 10/2017 Sách, tạp chí
Tiêu đề: A survey of autonomous mobile robot path planning approaches,” trong "International Conference on Recent Innovations in Signal processing and Embedded Systems (RISE)
[9] J. Li, L. Cheng, H. Wu, L. Xiong và D. Wang, “An overview of the simultaneous localization and mapping on mobile robot,” trong Proceedings of International Conference on Modelling, Identification and Control, Wuhan, China, 6/2012 Sách, tạp chí
Tiêu đề: An overview of the simultaneous localization and mapping on mobile robot,” trong "Proceedings of International Conference on Modelling, Identification and Control
[10] Kiam Heong Ang; G. Chong; Yun Li, “PID control system analysis, design, and technology,” IEEE Transactions on Control Systems Technology, tập 13, số 4, pp. 559 - 576, 7/2005 Sách, tạp chí
Tiêu đề: PID control system analysis, design, and technology,” "IEEE Transactions on Control Systems Technology
[12] Daniel Bastos; Paulo P. Monteiro; Arnaldo S. R. Oliveira; Miguel V. Drummond, “An Overview of LiDAR Requirements and Techniques for Autonomous Driving,” trong 2021 Telecoms Conference (ConfTELE), Leiria, Portugal, 2/2021 Sách, tạp chí
Tiêu đề: An Overview of LiDAR Requirements and Techniques for Autonomous Driving,” trong "2021 Telecoms Conference (ConfTELE)
[13] Andrew Farley, Jie Wang, Joshua A. Marshall, “How to pick a mobile robot simulator: A quantitative comparison of CoppeliaSim, Gazebo, MORSE and Webots with a focus on accuracy of motion,” Simulation Modelling Practice and Theory, tập 120, 7/2022 Sách, tạp chí
Tiêu đề: How to pick a mobile robot simulator: A quantitative comparison of CoppeliaSim, Gazebo, MORSE and Webots with a focus on accuracy of motion,” "Simulation Modelling Practice and Theory
[14] Khafizuddin Azazi, Rendy Andrean, Wiedjaja Atmadja, M. Handi, Jonathan Lukas, “Design of Mobile Robot with Navigation Based on Embedded Linux,” Procedia Computer Science, tập Volume 59, pp. 473-482, 2015 Sách, tạp chí
Tiêu đề: Design of Mobile Robot with Navigation Based on Embedded Linux,” "Procedia Computer Science
[8] Andrea Bonci, Francesco Gaudeni, Maria Cristina Giannini and Sauro Longhi, “Robot Operating System 2 (ROS2)-Based Frameworks for Khác

HÌNH ẢNH LIÊN QUAN

Bảng 2.1: Bảng DH của robot di động: - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
a ̉ng 2.1: Bảng DH của robot di động: (Trang 24)
Hình 2.4: Sơ đồ kết nối data bus qua giao tiếp UART - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 2.4: Sơ đồ kết nối data bus qua giao tiếp UART (Trang 39)
Hình 3.1: Sơ đồ khối tổng quan hệ thống của Robot - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.1: Sơ đồ khối tổng quan hệ thống của Robot (Trang 45)
Hình 3.4: Sơ đồ nguyên lý mạch cầu H - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.4: Sơ đồ nguyên lý mạch cầu H (Trang 51)
Hình 3.7: Sơ đồ cấp nguồn cho hệ thống và công suất tính toán - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.7: Sơ đồ cấp nguồn cho hệ thống và công suất tính toán (Trang 55)
Hình 3.12: Sơ đồ thiết kế tổng quan phần mềm hệ thống - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.12: Sơ đồ thiết kế tổng quan phần mềm hệ thống (Trang 62)
Hình 3.14: Sơ đồ xử lí file URDF và các topic được publish - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.14: Sơ đồ xử lí file URDF và các topic được publish (Trang 65)
Hình 3.15: Sơ đồ tương tác của hệ thống điều khiển - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.15: Sơ đồ tương tác của hệ thống điều khiển (Trang 67)
Hình 3.16: Sơ đồ giao tiếp trong hệ thống - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.16: Sơ đồ giao tiếp trong hệ thống (Trang 68)
Hình 3.17: Sơ đồ trình tự hoạt động của LiDAR trong hệ thống - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.17: Sơ đồ trình tự hoạt động của LiDAR trong hệ thống (Trang 70)
Hình 3.18: Sơ đồ giao tiếp của ros2_control - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.18: Sơ đồ giao tiếp của ros2_control (Trang 71)
Hình 3.20: Sơ đồ hoạt động của joystick - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.20: Sơ đồ hoạt động của joystick (Trang 76)
Hình 3.21: Sơ đồ xử lí thuật toán SLAM Toolbox - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.21: Sơ đồ xử lí thuật toán SLAM Toolbox (Trang 78)
Hình 3.22: Sơ đồ lấy dữ liệu NAV2 - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 3.22: Sơ đồ lấy dữ liệu NAV2 (Trang 79)
Hình 4.1: Hình ảnh mô hình hoàn thiện của robot nhìn từ phía trước - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 4.1: Hình ảnh mô hình hoàn thiện của robot nhìn từ phía trước (Trang 82)
Hình 4.7: Hình ảnh thu được từ camera của robot trong môi trường mô phỏng - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 4.7: Hình ảnh thu được từ camera của robot trong môi trường mô phỏng (Trang 86)
Hình 4.13: Hình ảnh thực tế của căn phòng và bản đồ 2D mà robot tạo ra được - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 4.13: Hình ảnh thực tế của căn phòng và bản đồ 2D mà robot tạo ra được (Trang 90)
Hình 4.14: Hình ảnh thu được từ camera của robot và trong thực tế - Đồ án tốt nghiệp: Xây dựng robot di động sử dụng Lidar hỗ trợ khám phá môi trường
i ̀nh 4.14: Hình ảnh thu được từ camera của robot và trong thực tế (Trang 91)

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

TÀI LIỆU LIÊN QUAN