Điều Khiển Phân Tán Robot Bầy Đàn Tránh Vật Cản Sử Dụng Mạng API Socket

Khám phá cách điều khiển robot bầy đàn tránh vật cản hiệu quả qua mạng API socket trong bài viết này. Tìm hiểu công nghệ tiên tiến.

2022

144
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP

LỜI CAM ĐOAN

LỜI CẢM ƠN

MỤC LỤC

DANH MỤC CÁC TỪ VIẾT TẮT

DANH MỤC HÌNH ẢNH

1. CHƯƠNG 1: TỔNG QUAN

1.1. Mục tiêu đề tài

1.2. Giới hạn đề tài

1.3. Phương pháp nghiên cứu

1.4. Nội dung đề tài

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

2.1. Một số công trình nghiên cứu robot bầy đàn trong thực tế

2.2. Mô hình toán robot di động nonholonomic

2.3. Giới thiệu phần mềm Visual Studio Code và Python. Phần mềm hỗ trợ mô phỏng Matlab/Simulink

2.4. Độ phân giải của ảnh

2.5. Phân loại ảnh

2.6. Không gian màu

2.7. Giới thiệu thư viện OpenCV

2.8. Các phép toán với ma trận trong xử lý ảnh

2.9. Xác định đường bao của đối tượng trong ảnh nhị phân

2.10. Xác định tọa độ tâm của đối tượng

2.11. Truyền thông giữa các robot

2.12. Các phương thức giao tiếp

2.13. Giao tiếp qua wifi bằng API Socket

2.14. Sơ lược về giao thức truyền nhận dữ liệu

2.15. Đa luồng dữ liệu với API Socket

3. CHƯƠNG 3: THIẾT KẾ PHẦN CỨNG VÀ PHẦN MỀM

3.1. Yêu cầu thiết kế

3.2. Sơ đồ cấu trúc của hệ thống

3.3. Lựa chọn thiết bị robot bầy đàn

3.4. Vi điều khiển máy tính nhúng Jetson Nano

3.5. Card wifi Intel AC8265 và anten khuếch đại

3.6. Driver điều khiển động cơ và pin Lion

3.7. Thiết kế phần cứng

3.8. Sơ đồ mạch điện tử

3.9. Thiết kế giao diện điều khiển

3.9.1. Giới thiệu phần mềm PyQt5

3.9.2. Giao diện điều khiển tổng quan

3.9.3. Giao diện điều khiển mode 1 tạo bầy đàn

3.9.4. Giao diện điều khiển mode 2 duy trì đội hình khi di chuyển

3.9.5. Giao diện điều khiển mode 3 đội hình di chuyển né vật cản

3.10. Xây dựng Server API Socket

3.10.1. Xây dựng server trên Laptop

3.10.2. Kết nối Client với Server

3.10.3. Xây dựng đa luồng xử lý cho chương trình điều khiển

4. CHƯƠNG 4: GIẢI THUẬT ĐIỀU KHIỂN HỆ THỐNG

4.1. Các thuật toán xử lý ảnh

4.1.1. Tiền xử lý ảnh

4.1.2. Phát hiện đối tượng và tách nền

4.1.3. Kiểm tra vị trí, góc của Robot và tâm vật cản

4.2. Thuật toán bám quỹ đạo tham chiếu

4.3. Thuật toán tránh vật cản

4.4. Thuật toán bầy đàn

4.5. Lưu đồ giải thuật điều khiển

5. KẾT QUẢ MÔ PHỎNG VÀ THỰC NGHIỆM

5.1. Kết quả mô phỏng

5.1.1. Mô phỏng robot dẫn đầu bám theo quỹ đạo tham chiếu

5.1.2. Mô phỏng thuật toán duy trì đội hình ba robot khi di chuyển

5.1.3. Mô phỏng thuật toán né vật cản cho 1 robot

5.1.4. Mô phỏng thuật toán né vật cản duy trì đội hình ba robot

5.2. Kết quả xử lý ảnh

5.3. Kết quả thực nghiệm

5.3.1. Kết quả thực nghiệm chạy mode 1 tạo bầy

5.3.2. Kết quả thực nghiệm chạy mode 2 duy trì đội hình khi di chuyển

5.3.3. Kết quả thực nghiệm chạy mode 3 di chuyển đội hình né vật cản

6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về điều khiển robot bầy đàn tránh vật cản qua mạng API Socket

Trong bối cảnh công nghệ hiện đại, việc điều khiển robot bầy đàn đã trở thành một lĩnh vực nghiên cứu quan trọng. Các robot bầy đàn có khả năng phối hợp và thực hiện nhiệm vụ phức tạp, đặc biệt là trong môi trường không xác định. Việc sử dụng mạng API Socket để điều khiển các robot này giúp tăng cường khả năng giao tiếp và tương tác giữa các robot, từ đó nâng cao hiệu quả hoạt động của chúng.

1.1. Khái niệm về robot bầy đàn và ứng dụng

Robot bầy đàn là nhóm các robot có khả năng phối hợp để thực hiện nhiệm vụ chung. Chúng được ứng dụng trong nhiều lĩnh vực như cứu hộ, khảo sát địa hình và quân sự.

1.2. Tầm quan trọng của mạng API trong điều khiển robot

Mạng API đóng vai trò quan trọng trong việc truyền nhận dữ liệu giữa các robot và máy tính, giúp cải thiện khả năng điều khiển và giám sát từ xa.

II. Thách thức trong điều khiển robot bầy đàn tránh vật cản

Điều khiển robot bầy đàn gặp nhiều thách thức, đặc biệt là trong việc tránh vật cản. Các robot cần phải nhận diện và phản ứng nhanh chóng với các vật cản trong môi trường xung quanh. Điều này đòi hỏi các thuật toán điều khiển phải được tối ưu hóa để đảm bảo tính chính xác và hiệu quả.

2.1. Vấn đề nhận diện vật cản

Việc nhận diện vật cản là một trong những thách thức lớn nhất. Các robot cần sử dụng cảm biến và thuật toán xử lý ảnh để xác định vị trí và kích thước của vật cản.

2.2. Khó khăn trong việc duy trì đội hình

Duy trì đội hình trong khi tránh vật cản là một thách thức phức tạp. Các robot cần phải điều chỉnh vị trí của mình một cách linh hoạt để không làm mất đội hình.

III. Phương pháp điều khiển robot bầy đàn qua mạng API Socket

Phương pháp điều khiển robot bầy đàn qua mạng API Socket cho phép các robot giao tiếp và phối hợp hiệu quả hơn. Bằng cách sử dụng giao thức này, các robot có thể truyền nhận dữ liệu một cách nhanh chóng và chính xác, từ đó cải thiện khả năng hoạt động của chúng.

3.1. Thiết lập mạng API Socket cho robot

Thiết lập mạng API Socket cho phép các robot kết nối với nhau và với máy tính điều khiển, tạo ra một hệ thống điều khiển phân tán hiệu quả.

3.2. Thuật toán điều khiển bầy đàn

Thuật toán điều khiển bầy đàn được phát triển để đảm bảo rằng các robot có thể di chuyển theo đội hình và tránh vật cản một cách hiệu quả.

IV. Ứng dụng thực tiễn của robot bầy đàn trong điều khiển tránh vật cản

Robot bầy đàn có thể được ứng dụng trong nhiều lĩnh vực thực tiễn như cứu hộ, khảo sát địa hình và quân sự. Việc áp dụng công nghệ điều khiển tránh vật cản giúp tăng cường khả năng hoạt động của các robot trong môi trường phức tạp.

4.1. Ứng dụng trong cứu hộ

Robot bầy đàn có thể được sử dụng trong các tình huống cứu hộ, giúp tìm kiếm và cứu nạn nhân trong các khu vực nguy hiểm.

4.2. Ứng dụng trong khảo sát địa hình

Trong khảo sát địa hình, robot bầy đàn có thể di chuyển qua các khu vực khó tiếp cận và thu thập dữ liệu một cách hiệu quả.

V. Kết luận và tương lai của điều khiển robot bầy đàn

Điều khiển robot bầy đàn tránh vật cản qua mạng API Socket là một lĩnh vực đầy tiềm năng. Với sự phát triển của công nghệ, các robot sẽ ngày càng trở nên thông minh và có khả năng hoạt động hiệu quả hơn trong các môi trường phức tạp.

5.1. Tương lai của robot bầy đàn

Tương lai của robot bầy đàn hứa hẹn sẽ có nhiều cải tiến về công nghệ và thuật toán, giúp nâng cao khả năng hoạt động của chúng.

5.2. Hướng nghiên cứu tiếp theo

Nghiên cứu tiếp theo có thể tập trung vào việc cải thiện khả năng nhận diện vật cản và tối ưu hóa thuật toán điều khiển để nâng cao hiệu quả hoạt động.

15/07/2025
Điều khiển phân tán robot bầy đàn tránh vật cản dùng mạng api socket

Trích đoạn nội dung tài liệu

CHƯƠNG 1. TỔNG QUAN - Sử dụng Qt Designer và ngôn ngữ lập trình Python để xây dựng GUI (Graphical User Interface) bằng thư viện PyQt5 của python. Nội dung đề tài Phần còn lại của đề tài “Điều khiển phân tác Robot bầy đàn tránh vật cản dùng mạng API Socket” có những nội dung sau: Chương 2: Cơ sở lý thuyết Chương này trình bày các cơ sở lý thuyết để thực hiện đề tài, mô hình toán của robot di động, xây dựng các phương trình toán, luật điều khiển. Lý thuyết về xử lý ảnh, truyền thông để thực hiện đề tài.

Chương 3: Thiết kế phần cứng và phần mềm Chương này trình bày cấu trúc hệ thống, lựa chọn thiết bị điều khiển, thiết kế phần mô hình và phần điện của hệ thống. Và trình bày thiết kế giao diện điều khiển hệ thống. Chương 4: Giải thuật điều khiển Chương này trình bày về các thuật toán điều khiển sử dụng trong đề tài: thuật toán xử lý ảnh, thuật toán bám quỹ đạo tham chiếu, thuật toán tránh vật cản, thuật toán bầy đàn. Chương 5: Kết quả mô phỏng và thực nghiệm Chương này trình bày về kết quả thu được từ mô phỏng các giải thuật điều khiển và kết quả thực nghiệm.

Chương 6: Kết luận và hướng phát triển Chương này trình bày các kết luận rút ra được từ đề tài sau khi hoàn thành hệ thống và nêu hướng phát triển, ý tưởng mới của đề tài trong tương lai. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 4 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương này tập trung trình bày về lý thuyết về robot bầy đàn, xây dựng phương trình toán cho xe, phương pháp điều khiển và các phương thức giao tiếp và truyền thông.

Một số công trình nghiên cứu robot bầy đàn trong thực tế Trên thế giới, đã có nhiều công trình khoa học nghiên cứu về khả năng điều khiển nhiều robot theo đội hình. Trong bài báo [1] và [2] đã đề xuất phương pháp điều khiển đội hình robot di động nonholonomic di chuyển mượt về đích bằng cách lập ra quỹ đạo tham chiếu cho robot dẫn đầu. Bài báo [1] “Control of Nonholonomic Mobile Robot Formations: Backstepping Kinematics into Dynamics” với sự kết hợp luật điều khiển động học và momen xoắn robot đã đề xuất phương pháp điều khiển đội hình robot dựa trên đội hình robot dẫn đầu – robot theo sau (leaders-follower) bằng phương pháp động học bước sau (Backstepping Kinematics) tính toán động học của robot theo sau và robot dẫn đầu. Một đội hình đơn giản được xem xét các robot theo sau (follower) giữa khoảng cách với robot dẫn đầu leader khoảng cách L và góc lái  tùy thuộc vào vị trí của robot.

Bài báo [2] "A Vision-Based Formation Control Framework" xây dựng module cho phép tái sửa dụng cho việc điều khiển duy trì đội hình một nhóm các robot di động nonholonomic khi di chuyển bám theo quỹ đạo cụ thể và thực hiện các tác vụ hợp tác. Mô hình cho phép chuyển đổi giữa các bộ điều khiển phi tập trung cho phép thay đổi đội hình robot. Tín hiệu đầu vào để điều khiển robot sử dụng 1 cảm biến duy nhất là camera đa hướng. Kết quả mô phỏng và chạy thử nghiệm trên đội hình ba robot.

Thuật toán trong bài báo [4] [8] được sử dụng để vẽ ra quỹ đạo tham chiếu cho robot dẫn đầu di chuyển về đích. Nghiên cứu điều khiển đội hình robot bầy đàn [9] dựa vào thu thập dữ liệu từ camera để xử lý ảnh và đưa ra thuật toán điều khiển 3 robot chạy theo quỹ đạo với Robot dẫn đầu bám quỹ đạo tham chiếu và 2 robot còn lại bám theo Robot dẫn đầu. BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 5 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.1 Đội hình robot xe sử dụng camera đa hướng Hầu hết các dự án điều khiển phối hợp nhiều robot thành công hiện tại đều không dựa vào hoặc xây dựng trên kết quả có sẵn trong tài liệu lý thuyết điều khiển và hệ thống động lực học.

Bởi vì, các lý thuyết điều khiển truyền thống chủ yếu cho phép thiết kế bộ điều khiển cho một đối tượng hoạt động đơn lẻ với các nhiệm vụ và mô hình hệ thống cố định. Trong đề tài này nhóm phát triển bộ điều khiển và ước lượng đơn giản để kiểm soát đội hình nhóm robot. Trong việc điều khiển đội hình robot ta giải quyết vấn đề bằng cách điều khiển vị trí và hướng liên quan của các robot trong nhóm. Vấn đề trong điều khiển đội hình robot bao gồm di chuyển tạo thành đội hình các hình dạng khác nhau, duy trì đội hình khi di chuyển và duy trì đội hình né vật cản.

Đề tài nghiên cứu này là sự kết hợp của nhiều phương pháp nổi bật đã được đề xuất trước đó để khắc phục những nhược điểm của từng phương pháp như: chưa có phương trình điều khiển cho robot dẫn đầu [2], chưa đưa ra phương pháp lập quỹ đạo tham chiếu để robot di chuyển đến mục tiêu [1], chưa có điều khiển hồi tiếp vị trí và góc quay [4]. Để từ đó tăng độ chính xác và linh hoạt cho thuật toán điều khiển. Mô hình toán robot di động nonholonomic Mô hình robot di động ở hình 2.1 là một mô hình hệ cơ nonholonomic (nonholonomic mobile robot). Bao gồm hai bánh xe điều khiển được gắn sau xe và một bánh xe đa hướng BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 6 CHƯƠNG 2.

CƠ SỞ LÝ THUYẾT đặt phía trước xe. Chuyển động của xe đạt được nhờ hai động cơ DC cung cấp lực moment độc lập cho hai bánh xe.2 Mô hình robot di động của hệ cơ nonholonomic Vị trí của Robot trong hệ tọa độ Oxy được biểu diễn bởi vector q =  x y   có T tâm tại C. Trong đó: - x, y (m): là vị trị tâm của robot đặt ở vị trí trung điểm nối 2 trục động cơ của Robot. -  (rad): là hướng của Robot so với trục Ox trong hệ tọa độ Oxy.

- d (m): khoảng cách từ tâm đến vị trí đầu của robot. - 2r (m): khoảng cách giữa 2 bánh xe của robot. Ta có phương trình động học chuyển động của Robot: BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 7 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT  x  v cos  cos 0 v q =  y  =  v sin   =  sin  0                 0 1  2.

Giới thiệu phần mềm Visual Studio Code và Python Visual Studio Code là trình soạn thảo, chỉnh sửa code có mã nguồn mở khả năng tùy biến cao với ưu điểm gọn nhẹ có khả năng chạy trên nhiều hệ điều hành khác nhau như Windown, macOS và Linux. VS code còn có kho thư viện với nhiều gói, tiện ích mở rộng hỗ trợ đa dạng tất cả ngôn ngữ lập trình như JavaScript, Node.js, C, C++, Python,…Để lập trình ngôn ngữ nào bạn chỉ cần cài trình biên dịch của ngôn ngữ đó và cài thêm gói mở rộng trên visual code. Có thể nói Visual studio code là sự kết hợp hoàn hảo giữa IDE và Code editor. Nó hỗ trợ người dùng rất nhiều tiện tích như: đổi theme, hỗ trợ Git, hỗ trợ quá trình soạn thảo code bằng cách nhắc lệnh, các phím tắt và nhiều tùy chọn khác nhau.3 Icon Visual Studio Code và Python Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum.

Nó dễ dàng để tìm hiểu và đang nổi lên như một trong những ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lập trình. Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động. Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng để viết script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng.

BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 8 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Python là ngôn ngữ lập trình cấp cao, mã nguồn mở và miễn phí bạn có thể sử dụng các phần mềm, chương trình được viết trong Python mà còn có thể thay đổi mã nguồn của nó. Python có một cộng đồng rộng lớn, không ngừng cải thiện nó mỗi lần cập nhật. Các chương trình Python có thể di chuyển từ nền tảng này sang nền tảng khác và chạy nó mà không có bất kì thay đổi nào.

Python là ngôn ngữ lập trình hướng đối tượng (OOP) giúp giải quyết các vấn đề phức tạp một cách trực quan. Hơn nữa python còn là ngôn ngữ lập trình phù hợp với khoa học dữ liệu, thị giác máy tính và tính toán với các thư viện như Numpy, SciPy, Matplotlip, Panda, OpenCV,…hỗ trợ tính toán ma trận và trực quan hóa dữ liệu. Phần mềm hỗ trợ mô phỏng Matlab/Simulink Matlab viết tắt của Matrix Laboratory (phòng thí nghiệm ma trận) là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện phát triển thuật toán có ứng dụng lớn trong ngành khoa học và kỹ thuật.

Matlab cũng là công cụ mô phỏng được nhiều nhà nghiên cứu, phân tích lựa chọn. Matlab còn có các bộ giải pháp hướng tới ứng dụng gọi là toolbox. Toolbox rất quan trọng với hầu hết người dùng Matlab bởi nó cho phép học và áp dụng công nghệ chuyên môn hóa. Toolbox là bộ sưu tập các hàm Matlab (M-file) mở rộng môi trường Matlab để giải quyết từng lớp vấn đề.

Các lĩnh vực mà toolbox có thể làm việc gồm xử lý tín hiệu, hệ thống kiểm soát, mạng thần kinh, logic mờ, phép biến đổi wavelet, mô phỏng… Hình 2.4 Phần mềm Matlab/Simulink Simulink được phát triển bởi MathWorks và được tích hợp trong Matlab là môi trường lập trình đồ họa, mô phỏng và phân tích các hệ thống động học tuyến tính và phi tuyến, liên BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN 9 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT tục và rời rạc một cách trực quan trong môi trường giao tiếp đồ họa. Simulink cho phép mô phỏng trong thời gian liên tục, gián đoạn hay một hệ kết hợp liên tục và gián đoạn. Thư viện Simulink cũng bao gồm toàn bộ thư viện các khối như khối nhận tín hiệu, các nguồn tín hiệu, các phần tử tuyến tính và phi tuyến.

Dĩ nhiên là người dùng có thể thay đổi hay tạo ra các khối riêng của mình. Các bài toán trong Simulink được xây dựng theo mô hình phân cấp.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu có tiêu đề "Điều Khiển Robot Bầy Đàn Tránh Vật Cản Qua Mạng API Socket" cung cấp cái nhìn sâu sắc về cách thức điều khiển robot bầy đàn để tránh vật cản thông qua giao thức API Socket. Nội dung chính của tài liệu tập trung vào các phương pháp và kỹ thuật cần thiết để lập trình và điều khiển robot, giúp chúng hoạt động hiệu quả trong môi trường phức tạp. Một trong những lợi ích lớn nhất mà tài liệu mang lại cho độc giả là khả năng áp dụng các kiến thức này vào thực tiễn, từ đó nâng cao hiệu suất làm việc của robot trong các ứng dụng thực tế.

Nếu bạn muốn mở rộng thêm kiến thức về lĩnh vực robot, bạn có thể tham khảo tài liệu Đồ án thiết kế hệ thống cơ khí cho robot scara, nơi bạn sẽ tìm thấy thông tin về thiết kế cơ khí cho robot. Ngoài ra, tài liệu Nghiên cứu thiết kế và chế tạo mobile robot sẽ giúp bạn hiểu rõ hơn về quy trình phát triển robot di động. Cuối cùng, tài liệu Nghiên cứu thiết kế và chế tạo mobile robot tự hành ứng dụng thuật toán slam sẽ cung cấp cái nhìn sâu sắc về các thuật toán điều khiển robot tự hành, mở rộng thêm kiến thức cho bạn trong lĩnh vực này.