TÓM TẮT ĐỒ ÁN NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO HỆ THỐNG ĐIỀU KHIỂN VÀ QUẢN LÍ BAY NHIỀU DRONE THEO NHÓM Giới thiệu Ngày nay, các công việc có sự thay thế bởi robot và tự động hoá đang
CƠ SỞ LÝ THUYẾT
Lý thuyết điều khiển bay
Quadcopter là một loại máy bay không người lái (UAV) với bốn động cơ, mỗi động cơ gắn một cánh quạt, tạo ra lực nâng giúp drone bay lên Nguyên lý hoạt động của quadcopter dựa vào chuyển động của dòng khí do cánh quạt tạo ra, cho phép drone cất cánh và điều chỉnh tốc độ động cơ để thay đổi hướng bay Hình 2.1 dưới đây minh họa cấu trúc cơ bản của quadcopter.
Cánh quạt số 1 và 2 quay ngược chiều kim đồng hồ (CCW), trong khi cánh quạt số 3 và 4 quay cùng chiều kim đồng hồ (CW) để cân bằng momen xoắn Chuyển động của drone được phân loại thành 4 loại cơ bản, dựa trên mối quan hệ chuyển động của 4 cánh quạt gắn trên động cơ.
Throttle/ Hover: Chuyển động lên và xuống của drone
+ Nếu cả 4 cánh quạt xoay với tốc độ thấp, drone sẽ bay xuống
+ Nếu cả 4 cánh quạt xoay với tốc độc cao, drone sẽ bay lên
Pitch: Chuyển động của drone quanh trục ngang (tiến hoặc lùi)
Khi hai cánh quạt phía sau (cánh 2 và 4) của drone hoạt động với tốc độ cao, drone sẽ di chuyển về phía trước Ngược lại, nếu hai cánh quạt phía trước (cánh 1 và 3) quay với tốc độ cao, drone sẽ lùi lại phía sau.
Roll: Chuyển động của drone quanh trục dọc (nghiêng sang trái hoặc phải)
Hình 2.1 Hướng xoay của motor khi quadcopter bay
+ Nếu 2 cánh quạt bên phải (1 và 4) của drone xoay với tốc độ cao, drone sẽ bay về bên trái
+ Nếu 2 cánh quạt bên trái (2 và 3) của drone xoay với tốc độ cao, drone sẽ bay về phía phải
Yaw: Chuyển động của drone xoay quanh trục thẳng đứng (trục Z)
+ Nếu hai cánh quạt chéo bên phải (1 và 2) xoay ở tốc độ cao thì drone sẽ quay theo chiều ngược chiều kim đồng hồ
+ Nếu hai cánh quạt chéo bên trái (3 và 4) xoay ở tốc độ cao thì drone sẽ quay theo chiều kim đồng hồ
2.1.2 Hệ trục toạ độ Để mô tả chính xác hành vi của một quadcopter, ta cần đến hai hệ toạ độ: hệ toạ độ gắn theo thân (body frame) và hệ toạ độ quán tính (inertial frame) Lý do cần hai hệ toạ độ là vì quadcopter có nhiều cảm biến khác nhau, ví dụ như con quay hồi chuyển và gia tốc kế, cung cấp các giá trị đo theo hệ toạ độ gắn theo thân, trong khi đó các cảm biến khác như GPS và từ kế lại cung cấp các giá trị đo theo hệ toạ độ quán tính Do đó, cần có một cách chuyển đổi để thống nhất các phương trình hệ thống về một hệ toạ độ duy nhất
Hình 2.2 Chuyển động cơ bản của drone
Hệ trục tọa độ gắn liền với thân quadcopter có gốc tại trung tâm của máy bay, được sử dụng để mô tả chuyển động của quadcopter trong không gian xung quanh.
Hệ trục tọa độ quán tính là một hệ tọa độ cố định, với gốc là một điểm cố định trên Trái Đất, thường được thể hiện bằng hệ tọa độ North-East-Down Hệ trục này đóng vai trò quan trọng trong việc mô tả chuyển động của quadcopter so với Trái Đất, như được minh họa trong Hình 2.3.
Hệ toạ độ quán tính là công cụ quan trọng trong việc xác định mô hình toán học của quadcopter, giúp đơn giản hóa thuật toán điều khiển Kiểm soát góc Euler cũng dựa trên hệ toạ độ quán tính, vì vậy cần thực hiện chuyển đổi từ hệ toạ độ gắn với thân máy bay sang hệ toạ độ quán tính.
Phân loại drone điều khiển từ xa
Drone có thể được điều khiển theo hai cách: một là sử dụng tay cầm và hai là thông qua phần mềm điều khiển từ xa, thường được gọi là GCS (Ground Control Station).
2.2.1 Drone điều khiển bằng tay cầm Điều khiển bằng tay cầm cho phép người dùng được tuỳ chỉnh và bay drone theo sở thích, biến drone thành thiết bị bay phục vụ nhiều mục đích Việc bay này có thể được thực hiện dễ dàng bằng một chiếc tay cầm nhỏ gọn và ở một số trường hợp sẽ có thêm một chiếc kính kết nối
Hình 2.3 Các trục toạ độ trong quadcopter
Việc sử dụng phần mềm để điều khiển drone giúp đơn giản hóa quá trình vận hành và nâng cao hiệu quả làm việc Khác với việc điều khiển bằng tay, phần mềm biến drone thành những "công nhân" có khả năng bay, từ đó mở rộng chức năng và khả năng của drone lên một tầm cao mới.
2.2.2 Drone điều khiển bằng trình điều khiển bên ngoài
Drone điều khiển bằng trình điều khiển bên ngoài là loại drone được điều khiển thông qua bộ điều khiển chuyên dụng, mang đến trải nghiệm bay mới mẻ và mở rộng tiềm năng ứng dụng trong nhiều lĩnh vực Phần mềm điều khiển từ xa giúp việc điều khiển drone trở nên dễ dàng và chính xác hơn, với các tính năng hỗ trợ như theo dõi và lập hành trình, giúp kiểm soát quá trình bay Các chương trình bay tích hợp nhiều tính năng tự động thông minh như lập trình lộ trình, tự động cất cánh và hạ cánh, bay theo điểm, và tránh chướng ngại vật, nâng cao hiệu quả bay và giảm thiểu thao tác cho phi công Ngoài ra, các chương trình này còn theo dõi thông tin quan trọng như dung lượng pin, tốc độ bay, độ cao và nhiệt độ động cơ, giúp kiểm soát tình trạng drone và đưa ra quyết định bay hợp lý Hầu hết các tác vụ chuyên nghiệp như quay phim, chụp ảnh, khảo sát địa hình và phun thuốc trừ sâu đều sử dụng drone có khả năng điều khiển từ xa.
Hình 2.4 Drone điều khiển bằng tay cầm
2.2.3 Phương thức điều khiển master/slave
Phương thức điều khiển nhóm cho các loại vật thể có nhiều dạng và cách thức khác nhau, với mỗi phương pháp yêu cầu loại giao thức riêng Một số phương thức điều khiển từ xa phổ biến sử dụng thiết bị như bộ điều khiển từ xa (Ground Control Station) hoặc thông qua máy chủ giao tiếp Các kiểu điều khiển này cho phép drone hoạt động tách biệt (decentralize), với mỗi drone có thể bay theo lộ trình và thực hiện nhiệm vụ khác nhau Trong đồ án này, nhóm tôi sử dụng Raspberry Pi và mạch điều khiển bay làm bộ điều khiển cho drone, áp dụng phương thức điều khiển master - slave.
Hình 2.5 Drone điều khiển bằng laptop
Mô hình master-slave là một phương thức tổ chức và quản lý trong các hệ thống máy tính, mạng và tự động hóa, với sự phân chia rõ ràng giữa hai vai trò chính Master là thành phần chủ động, có trách nhiệm điều khiển, phân phối tài nguyên và quản lý các hoạt động của các thành phần khác, trong khi slave là các thiết bị dưới sự kiểm soát của master, thực hiện các lệnh được gửi Mô hình này phổ biến trong nhiều lĩnh vực như mạng máy tính và tự động hóa, mang lại lợi ích về tổ chức, hiệu quả điều khiển và tính tin cậy Tuy nhiên, nhược điểm lớn là sự phụ thuộc vào master, có thể gây ra rủi ro nếu master gặp sự cố Để khắc phục, có thể áp dụng các chiến lược như sao lưu dữ liệu và triển khai các mô hình master-multiple slaves nhằm tăng tính dự phòng và khả năng chịu lỗi cho hệ thống.
Hình 2.6 Phương thức master/slave
Bộ điều khiển PID
Bộ điều khiển vi tích phân tỉ lệ (PID) là một cơ chế phản hồi vòng điều khiển phổ biến trong các hệ thống công nghiệp Đây là loại bộ điều khiển phản hồi được sử dụng nhiều nhất, giúp tính toán giá trị "sai số" giữa giá trị đo và giá trị đặt mong muốn Bộ điều khiển PID hoạt động bằng cách điều chỉnh giá trị điều khiển đầu vào nhằm giảm thiểu sai số một cách tối đa.
Công thức của bộ điều khiển PID:
+ 𝐾 𝑝 là độ lợi tỷ lệ, giá trị càng lớn thì thời gian đáp ứng càng nhanh tuy nhiên sai số càng lớn
+ 𝐾 𝑖 là độ lợi tích phân, giá trị càng lớn kéo theo sai số ổn định bị triệt tiêu càng nhanh, nhưng đổi lại độ vọt lố càng lớn
Độ lợi vi phân \( K_d \) càng lớn sẽ giúp giảm độ vọt lố, tuy nhiên, điều này cũng có thể làm chậm đáp ứng quá độ và dẫn đến nguy cơ mất ổn định trong hệ thống.
+ 𝑒(𝑡) = 𝑆𝑃 − 𝑃𝑉 là giá trị sai số (SP là giá trị đặt, PV là giá trị đo được hiện tại)
+ 𝑡 là thời gian tức thời hiện tại
+ 𝜏 là biến tích hợp, xác định thời điểm từ 0 đến 𝑡
Hình 2.7 Sơ đồ khối bộ điều khiển PID
Khâu tỉ lệ, hay còn gọi là độ lợi, có vai trò quan trọng trong việc điều chỉnh giá trị đầu ra tương ứng với giá trị sai số hiện tại Để đáp ứng tỉ lệ này, sai số sẽ được nhân với một hằng số Kp, được biết đến là hệ số tỉ lệ.
Khâu tỉ lệ được cho bởi:
+ 𝑃 𝑜𝑢𝑡 : thừa số tỉ lệ của đầu ra
+ 𝐾 𝑝 : hệ số tỉ lệ, thông số điều chỉnh
+ 𝑡: thời gian hay thời gian tức thời
Hệ số của khâu tỉ lệ lớn phản ánh sự thay đổi lớn ở đầu ra trong khi sai số thay đổi nhỏ, tuy nhiên nếu hệ số này quá cao, hệ thống sẽ trở nên không ổn định Ngược lại, hệ số nhỏ dẫn đến đáp ứng đầu ra yếu trong khi sai số đầu vào lớn, làm giảm độ nhạy của bộ điều khiển và gây ra phản ứng chậm Khi hệ số của khâu tỉ lệ quá thấp, tác động điều khiển có thể không đủ mạnh để ứng phó với nhiễu trong hệ thống.
Hình 2.8 Đồ thị PV theo thời gian, ba giá trị 𝐾 𝑝 (𝐾 𝑖 và 𝐾 𝑑 là hằng số)
Phân phối của khâu tích phân, hay còn gọi là reset, tỉ lệ thuận với biên độ sai số và quãng thời gian xảy ra sai số Tổng sai số tức thời theo thời gian (tích phân sai số) giúp ta tích lũy bù đã được hiệu chỉnh Tích lũy sai số này được nhân với độ lợi tích phân và cộng với tín hiệu đầu ra của bộ điều khiển Biên độ phân phối của khâu tích phân trên tất cả tác động điều chỉnh được xác định bởi độ lợi tích phân, 𝐾 𝑖.
Thừa số tích phân được cho bởi:
+ 𝐼 𝑜𝑢𝑡 : thừa số tích phân của đầu ra
+ 𝐾 𝑖 : độ lợi tích phân, một thông số điều chỉnh
+ 𝑡: thời gian hay thời gian tức thời
+ 𝜏: một biến tích phân trung gian
Khâu tích phân, khi kết hợp với khâu tỉ lệ, có khả năng tăng tốc độ chuyển động của quá trình đến điểm đặt và khử số dư sai số ổn định dựa vào bộ điều khiển Tuy nhiên, do khâu tích phân phản ánh sai số tích lũy trong quá khứ, nó có thể dẫn đến việc giá trị hiện tại vượt quá giá trị đặt, gây ra độ lệch và dao động qua điểm đặt.
Tốc độ thay đổi của sai số quá trình được tính bằng cách xác định độ dốc của sai số theo thời gian, tức là đạo hàm bậc một theo thời gian, và nhân với độ lợi tỉ lệ 𝐾𝑑 Biên độ của phân phối khâu vi phân, hay còn gọi là tốc độ, trên tất cả các hành vi điều khiển được giới hạn bởi độ lợi vi phân 𝐾𝑑.
Thừa số vi phân được cho bởi:
+ 𝐷 𝑜𝑢𝑡 : thừa số vi phân của đầu ra
+ 𝐾 𝑖 : độ lợi vi phân, một thông số điều chỉnh
+ 𝑡: thời gian hay thời gian tức thời
Hình 2.9 Đồ thị PV theo thời gian, ba giá trị 𝐾 𝑖 (𝐾 𝑝 và 𝐾 𝑑 là hằng số)
Khâu vi phân trong bộ điều khiển giúp làm chậm tốc độ thay đổi của đầu ra, từ đó đạt được điểm đặt mong muốn Việc sử dụng điều khiển vi phân không chỉ giảm biên độ vọt lố do thành phần tích phân mà còn tăng cường độ ổn định cho bộ điều khiển hỗn hợp Tuy nhiên, tín hiệu vi phân có thể khuếch đại nhiễu, làm cho quá trình trở nên không ổn định nếu nhiễu và độ lợi vi phân quá lớn Do đó, thường áp dụng một xấp xỉ của bộ vi sai với băng thông giới hạn, như mạch bù sớm pha, để giảm thiểu tác động tiêu cực này.
2.3.4 Điều chỉnh PID Điều chỉnh một vòng điều khiển là điều chỉnh các thông số điều khiển của nó (độ lợi/dải tỉ lệ, độ lợi tích phân/reset, độ lợi vi phân/tốc độ) tới giá trị đáp ứng điều khiển tối ưu Độ ổn định (dao động biên) là một yêu cầu căn bản, nhưng ngoài ra, các hệ thống khác nhau, có những hành vi khác nhau, những ứng dụng khác nhau có những yêu cầu khác nhau, vài yêu cầu lại mâu thuẫn với nhau Hơn nữa, vài quá trình có một mức độ phi tuyến nào đấy khiến các thông số làm việc tốt ở điều kiện đầy tải sẽ không làm việc khi quá trình khởi động từ không tải; điều này có thể khắc phục bằng chương trình độ lợi (sử dụng các thông số khác nhau cho những khu vực hoạt động khác nhau) Các bộ điều khiển PID thường cung cấp các điều khiển có thể chấp nhận được thậm chí không cần điều chỉnh, nhưng kết quả nói chung có thể được cải thiện bằng cách điều chỉnh kỹ lưỡng, và kết quả có thể không chấp nhận được nếu điều chỉnh kém
Hình 2.10 Đồ thị PV theo thời gian, ba giá trị 𝐾 𝑑 (𝐾 𝑝 và 𝐾 𝑖 là hằng số)
Điều chỉnh PID là một thách thức phức tạp mặc dù chỉ có ba thông số cơ bản Việc này cần phải đáp ứng nhiều tiêu chuẩn khắt khe nằm trong các hạn chế của điều khiển PID Do đó, có nhiều phương pháp khác nhau để điều chỉnh vòng lặp, và các kỹ thuật phức tạp hơn thường là chủ đề của nhiều phát minh sáng chế.
Có nhiều phương pháp điều chỉnh vòng lặp PID, trong đó những phương pháp hiệu quả nhất thường dựa trên các mô hình xử lý Việc chọn các tham số P, I và D dựa trên thông số động học của mô hình là rất quan trọng Tuy nhiên, các phương pháp điều chỉnh thủ công thường không mang lại hiệu quả cao, đặc biệt khi vòng lặp có thời gian đáp ứng kéo dài từ phút trở lên.
Lựa chọn phương pháp điều chỉnh phù hợp chủ yếu phụ thuộc vào khả năng có vòng lặp điều chỉnh "offline" và thời gian phản hồi của hệ thống Nếu hệ thống hỗ trợ điều chỉnh offline, phương pháp tối ưu thường là thay đổi đầu vào theo từng bước, trong đó tín hiệu đo lường đầu ra được xem như một hàm thời gian, từ đó sử dụng phản hồi này để xác định các thông số điều khiển.
Hình 2.11 Các phương pháp điều chỉnh PID
Các vấn đề của việc drone bay thành nhóm
Việc sử dụng drone bay thành nhóm mang lại nhiều lợi ích cho các ứng dụng như tìm kiếm cứu nạn, quản lý môi trường và quản lý giao thông Tuy nhiên, vẫn tồn tại những vấn đề và thách thức cần được khắc phục khi triển khai công nghệ này.
2.4.1 Xử lí thông tin giữa các drone Đầu tiên cần phải giải quyết vấn đề nan giải là giải quyết xung đột và va chạm Trong quá trình bay, các drone thành nhóm cần phải tránh xung đột với nhau để đảm bảo an toàn cho cả drone và môi trường xung quanh cũng như giữ được khoảng cách an toàn là một thách thức về mặt kỹ thuật và thuật toán
2.4.2 Giao tiếp giữa các drone
Việc đồng bộ hóa hoạt động của các drone trong nhóm là cần thiết để thực hiện nhiệm vụ một cách hiệu quả, đồng thời đảm bảo truyền thông tin và dữ liệu nhanh chóng nhằm tránh thất thoát thông tin và điều khiển trùng lặp Thách thức kỹ thuật nằm ở việc đồng bộ hóa độ cao, tốc độ, hướng bay và các thao tác điều khiển giữa các drone.
Cần thiết phải xử lý các tình huống mất kết nối với máy chủ điều khiển khi drone bay thành nhóm, nhằm đảm bảo an toàn và tránh nguy hiểm trong quá trình thực hiện nhiệm vụ Hệ thống điều khiển phải có cơ chế phù hợp để xử lý những sự cố này Đồng thời, việc phân tán và quản lý tài nguyên như năng lượng pin và băng thông truyền thông là rất quan trọng, vì vi mạch trên drone thường không đủ khả năng xử lý lượng dữ liệu lớn Sự phối hợp và quản lý tài nguyên giữa các drone sẽ giúp đảm bảo hoạt động liên tục và hiệu quả trong các nhiệm vụ bay nhóm.
2.4.3 An toàn trong bay nhóm
Việc điều khiển drone gặp nhiều khó khăn và thách thức, đặc biệt khi số lượng drone tăng lên Do đó, việc đảm bảo an toàn và chính xác cho các drone khi bay nhóm trở nên vô cùng quan trọng.
Việc điều khiển drone bay thành nhóm không chỉ liên quan đến xử lý bài toán và thuật toán va chạm, mà còn bao gồm sắp xếp vị trí và phân bổ nhiệm vụ cho từng drone Những vấn đề này đặt ra nhiều mối quan ngại về an toàn trong quá trình bay Để đảm bảo sự an toàn và hiệu quả của các drone, vấn đề bảo mật trong hệ thống giao tiếp giữa chúng cần được xem xét kỹ lưỡng Các drone trong nhóm cần áp dụng các biện pháp bảo mật để duy trì độ tin cậy của dữ liệu, ngăn chặn các cuộc tấn công mạng và bảo vệ thông tin quan trọng khỏi nhiễu sóng từ môi trường và các drone lân cận.
HỆ THỐNG PHẦN CỨNG
Sơ đồ khối
Sơ đồ khối phần cứng của hệ thống gồm bốn khối chính: khối nguồn, khối input, khối xử lý trung tâm và khối output
Khối nguồn của hệ thống drone bao gồm pin LiPo (Lithium Polymer), đóng vai trò là nguồn năng lượng chính Pin LiPo được kết nối trực tiếp với bộ điều khiển bay Pixhawk 2.4.8 qua cổng nguồn, đảm bảo cung cấp điện ổn định và liên tục Điều này giúp các bộ phận khác của drone hoạt động trơn tru và hiệu quả.
Hình 3.1 Sơ đồ khối phần cứng của quadcopter
Khối Input bao gồm các cảm biến và thiết bị đầu vào quan trọng, có chức năng thu thập dữ liệu từ môi trường xung quanh và từ chính drone, nhằm cung cấp thông tin cần thiết cho bộ điều khiển Các thành phần chính trong khối này rất đa dạng và đóng vai trò thiết yếu trong việc đảm bảo hoạt động hiệu quả của drone.
Hệ thống GPS (Global Positioning System) cung cấp thông tin vị trí toàn cầu, cho phép drone xác định tọa độ hiện tại trên bề mặt Trái Đất Thông tin này đóng vai trò quan trọng trong việc điều hướng và duy trì vị trí chính xác của drone.
Accelerometer là cảm biến gia tốc đo lường gia tốc theo ba trục X, Y và Z, giúp xác định tốc độ thay đổi vị trí của drone Thông tin từ accelerometer đóng vai trò quan trọng trong việc cân bằng và ổn định drone trong quá trình bay.
Con quay hồi chuyển (gyroscope) là thiết bị đo tốc độ góc của drone, cho phép xác định sự thay đổi hướng của nó theo thời gian thực Dữ liệu từ gyroscope kết hợp với dữ liệu từ cảm biến gia tốc (accelerometer) giúp duy trì sự ổn định và hướng bay của drone.
- Compass (La bàn): La bàn điện tử xác định hướng của drone dựa trên từ trường Trái Đất
Nó hỗ trợ định hướng và giữ vững hướng bay của drone
Cảm biến từ trường, hay còn gọi là magnetometer, đo lường từ trường xung quanh và cung cấp thông tin quan trọng để hiệu chỉnh dữ liệu từ la bàn Điều này giúp drone xác định hướng đi chính xác hơn, nâng cao hiệu suất và độ tin cậy trong quá trình hoạt động.
Các cảm biến kết nối với Pixhawk 2.4.8 thông qua các cổng giao tiếp như I2C và UART, giúp truyền dữ liệu nhanh chóng và chính xác đến bộ điều khiển bay để xử lý.
Khối xử lý trung tâm
Khối xử lý trung tâm bao gồm Pixhawk 2.4.8 và Raspberry Pi
Pixhawk 2.4.8 là bộ điều khiển bay chính của drone, nhận tín hiệu từ các cảm biến trong khối Input và thực hiện các thuật toán điều khiển bay Bộ điều khiển này xử lý dữ liệu từ cảm biến để điều chỉnh động cơ, giúp drone duy trì ổn định và thực hiện các lệnh điều khiển từ người dùng hoặc hệ thống tự động.
Raspberry Pi hoạt động như một máy tính phụ trợ, nhận lệnh điều khiển từ máy chủ qua giao thức MQTT Nó kết nối với Pixhawk qua cổng UART, cho phép trao đổi dữ liệu giữa hai thiết bị Bên cạnh đó, Raspberry Pi còn có khả năng kết nối với internet để mở rộng chức năng điều khiển.
Tính toán lựa chọn phần cứng
- Đảm bảo an toàn và ổn định
Để xác định lực nâng cần thiết cho drone, cần xem xét khối lượng của hệ thống Đối với khối lượng 1kg, tổng lực nâng phải đạt ít nhất bằng trọng lượng của drone để duy trì trạng thái lơ lửng.
Trọng lượng của drone (P) được tính bằng công thức:
- m là khối lượng của drone (1kg)
- g là gia tốc trọng trường (9.81 m/s²) Suy ra: P = 1 × 9.81 = 9.81 (N)
Tổng lực nâng cần thiết (T) để giữ drone ở trạng thái lơ lửng là:
T ≥ P = 9.81 (N) Mỗi động cơ cần tạo ra lực đẩy tối thiếu là :
4 ≈ 2.45 (N) Chọn hệ số an toàn là 2, suy ra lực đẩy tối thiểu cần thiết là 2.45 × 2 = 4.9 (𝑁)
Để bay được drone, cần có lực đẩy tối thiểu, từ đó giúp lựa chọn động cơ phù hợp Một trong những lựa chọn là động cơ Himodel A2212 – 1400KV, với các thông số kỹ thuật đáng chú ý.
Từ đó ta có thể tính được lực nâng 1 cánh quạt khi sử dụng pin Lipo 3S như sau:
Propeller Volts Amps Watts RPM Pitch speed (mph) Thrust (g) Thrust (oz) g/W
Do đó, động cơ đã chọn thoả mãn yêu cầu bài đặt ra
Lựa chọn ESC, cánh quạt và pin
Từ bảng thông số kỹ thuật của động cơ yêu cầu ESC có dòng tối thiểu 20A Suy ra chọn: ESC Hobbywing Skywalker 40A
Tương tự, ta chọn được cánh quạt là cánh 8045 và pin là pin lipo 3S 2300mah.
Phần cứng cần thiết
Mạch điều khiển bay Pixhawk 2.4.8
Pixhawk là bộ điều khiển bay mã nguồn mở, tích hợp cả phần cứng và phần mềm, được ứng dụng rộng rãi trong các máy bay không người lái (UAV) Phát triển bởi 3D Robotics, Pixhawk cung cấp tính linh hoạt và hiệu suất cao cho các dự án UAV khác nhau.
Robotics và cộng đồng mã nguồn mở, và hiện là tiêu chuẩn cho các bộ điều khiển bay UAV
Hình 3.2 Mạch điều khiển bay pixhawk 2.4.8
Pixhawk 2.4.8 là một trong những phiên bản phổ biến nhất trong cộng đồng UAV nhờ vào tính năng và hiệu suất vượt trội Mạch điện tử của Pixhawk 2.4.8 được thiết kế chắc chắn, giúp nó hoạt động hiệu quả trong các điều kiện thời tiết khác nhau Đặc biệt, mẫu mạch này được tích hợp nhiều cảm biến như gia tốc kế, con quay hồi chuyển, la bàn điện tử và GPS, cung cấp thông tin liên tục về vị trí, hướng và trạng thái của drone, từ đó nâng cao độ chính xác trong việc điều khiển và bay drone.
Pixhawk là một mạch điều khiển đa năng tương thích với nhiều firmware, nổi bật là Ardupilot, giúp tinh chỉnh và cấu hình các thông số phần cứng để ổn định và điều khiển drone dễ dàng hơn Mạch hỗ trợ nhiều chân kết nối cần thiết như nguồn, GPS module, còi và nút bấm, đồng thời cung cấp các giao tiếp chuẩn như UART, I2C, SPI và CAN để kết nối với các thiết bị ngoại vi như camera, cảm biến và bộ thu phát tín hiệu Đặc biệt, Pixhawk cho phép mở rộng qua các cổng và phần mềm, nâng cao tính linh hoạt và khả năng tích hợp các chức năng mới cho hệ thống UAV.
Mạch điều khiển động cơ ESC Skywalker 40A V2 ubec
ESC là viết tắt cho Electronic Speed Controller, chuyên chịu trách nhiệm trong việc phân luồng nguồn, thông tin điều khiển và ổn định dòng cho động cơ bay
Mạch ESC là thành phần thiết yếu trong hệ thống điều khiển của drone và các phương tiện bay không người lái Chúng có nhiệm vụ chính là điều chỉnh tốc độ quay của động cơ điện, giúp duy trì và điều chỉnh động cơ ở các mức tốc độ khác nhau để thực hiện các phương thức bay đa dạng.
Mỗi ESC (Electronic Speed Controller) đóng vai trò quan trọng trong việc đọc tín hiệu điều khiển từ bộ điều khiển chính của drone, như mạch Pixhawk Nó xử lý và điều chỉnh dòng điện đầu vào tới động cơ, giúp kiểm soát tốc độ quay của rotor Nhờ đó, ESC đảm bảo sự ổn định và đáng tin cậy cho drone trong suốt quá trình bay.
Các mạch ESC hiện đại không chỉ điều khiển tốc độ mà còn tích hợp nhiều tính năng như bảo vệ quá tải, điều chỉnh chế độ điều khiển (PWM, OneShot, MultiShot, DShot) và hỗ trợ truyền dữ liệu qua giao thức DShot, từ đó nâng cao độ chính xác và hiệu suất của hệ thống điều khiển.
Việc lựa chọn và cấu hình đúng ESC rất quan trọng, không chỉ tối ưu hóa hiệu suất bay mà còn đảm bảo an toàn và ổn định cho drone trong mọi điều kiện hoạt động.
Nhờ vào sự phát triển công nghệ, các mạch ESC ngày càng được cải tiến để đáp ứng yêu cầu ngày càng cao của thị trường UAV hiện đại
Chúng tôi sử dụng mạch ESC Skywalker 40A V2 ubec của Hobbywing, cho phép điều khiển động cơ không chổi than với tải tối đa 40A, mang lại tốc độ xoay cao và vận tốc lớn Mạch hỗ trợ điện áp đầu vào 3S và 4S cho pin lipo, có chế độ ổn định dòng và BEC giúp bảo vệ động cơ trong thời gian dài Chip điều khiển 32 bit ARM cung cấp hiệu suất xuất xung lên tới 96 MHz, cho phép tốc độ điều khiển tối đa đạt 300.000 RPM Mạch còn hỗ trợ các chế độ như phanh ngược, ổn định tốc độ, bảo vệ dòng và chức năng tìm kiếm.
Module GPS 6M, sử dụng chip GPS NEO-6M của u-blox, cung cấp giải pháp GPS chính xác và đáng tin cậy cho hệ thống điều khiển drone Được thiết kế với độ chính xác cao và độ nhạy tối ưu, module giúp drone xác định vị trí và hướng di chuyển chính xác trong mọi điều kiện bay Ngoài ra, module còn tích hợp cảm biến gia tốc kế và la bàn điện tử, cho phép tổng hợp và phân tích thông tin, từ đó cung cấp dữ liệu vị trí chính xác trong suốt quá trình bay.
Module GPS 6M nổi bật với khả năng đáp ứng tần số làm mới dữ liệu nhanh chóng và chính xác, hỗ trợ hiệu quả cho các chế độ dò tìm và theo dõi vị trí trong thời gian thực Nó dễ dàng tích hợp và điều khiển thông qua giao tiếp chuẩn như UART và I2C, làm cho module này trở thành lựa chọn lý tưởng cho việc kết nối với các vi điều khiển nhúng như Arduino và Raspberry Pi Tính năng này đặc biệt hữu ích trong các ứng dụng như lập bản đồ, giám sát môi trường và quản lý thông tin trong nghiên cứu khoa học Hơn nữa, module GPS 6M được đánh giá cao về tính ổn định và độ tin cậy trong việc cung cấp dữ liệu vị trí cho các hệ thống UAV, từ đó nâng cao hiệu suất và an toàn trong các hoạt động bay.
Module ổn định dòng và theo dõi pin PMO2 V3
Mạch ổn định nguồn và đo dòng điện PMO2 đóng vai trò quan trọng trong việc cung cấp nguồn điện ổn định từ pin hoặc nguồn DC cho Pixhawk và các thiết bị điện tử khác, đảm bảo hoạt động an toàn và hiệu quả Module này cũng giám sát các thông số nguồn điện như điện áp đầu vào và dòng tiêu thụ, giúp người dùng theo dõi mức tiêu thụ điện năng và duy trì hoạt động trong giới hạn an toàn Đặc biệt, mạch PMO2 có khả năng bảo vệ quá tải dòng bằng cách tự động ngắt kết nối nguồn khi phát hiện tình trạng quá tải, bảo vệ thiết bị điện tử khỏi thiệt hại do dòng điện vượt mức.
Chúng tôi đã chọn động cơ không chổi than ngoại cực cho đồ án này, vì đây là loại động cơ tiên tiến, phổ biến trong ứng dụng drone So với động cơ servo, động cơ bước và động cơ nội cực không chổi than, động cơ này cung cấp hiệu suất làm việc vượt trội và phù hợp cho tác vụ bay Với thiết kế không có chổi than, động cơ không chổi than ngoại cực giảm thiểu hao phí năng lượng và tăng tuổi thọ nhờ vào hệ thống điều khiển điện tử thông minh Phần vỏ xoay nhẹ và linh hoạt giúp động cơ có khả năng tải cao và phản ứng nhanh chóng với các thay đổi về tốc độ và mô-men xoắn, khiến nó trở thành lựa chọn lý tưởng cho các ứng dụng drone.
28 ứng dụng đòi hỏi hiệu suất và độ chính xác cao như trong máy bay không người lái, robot tự hành và máy móc tự động hóa
Động cơ A2212 1400 được sử dụng cho đò án này, với Kv lý tưởng 1400, phù hợp với pin 3S Động cơ tiêu thụ dòng không tải khoảng 0.7A và đạt dòng tối đa 20A, mang lại hiệu suất 180W, đảm bảo tốc độ quay lớn và lực nâng cần thiết cho các chế độ bay khó Thiết kế tinh gọn với rotor hỗ trợ tản nhiệt giúp động cơ hoạt động liên tục, trong khi trục lắp nhỏ gọn và nhẹ chỉ 50g, tạo điều kiện thuận lợi cho việc lắp đặt lên drone.
Cánh quạt là bộ phận quan trọng giúp tạo ra chênh lệch áp suất cho quadcopter, cho phép thiết bị bay trong không trung Để tăng độ cao, việc tăng tốc độ động cơ là cần thiết, đặc biệt khi quadcopter hoạt động ở tầm thấp Các động cơ của quadcopter được thiết kế với hai cặp, một cặp quay theo chiều kim đồng hồ và cặp còn lại quay ngược lại, nhằm đảm bảo sự ổn định khi bay.
Góc nghiêng của cánh quạt quadcopter là chỉ số đo lường khoảng cách mà cánh quạt di chuyển trong không khí sau mỗi vòng quay Tuy nhiên, đây chỉ là một ước lượng lý thuyết, vì nhiều yếu tố tự nhiên như loại vật liệu, mật độ không khí và hiệu suất hoạt động có thể ảnh hưởng đến kết quả thực tế.
Hình 3.6 Động cơ Himodel A2212 – 1400KV
29 khoảng cách này Tuy nhiên, góc nghiêng của cánh quạt là một thông số sẽ giúp chúng ta hiểu rõ hơn về hiệu suất của cánh quạt
Vi mạch điều khiển
Khác với các loại phần cứng khác, phần vi mạch điều khiển của drone không chỉ cần dễ dàng thay thế mà còn phải đáp ứng các yêu cầu về phần mềm và tốc độ xử lý Điều này giúp cải thiện hiệu suất bay tổng thể của drone và nâng cao kết quả bay.
Chúng tôi đã chọn mạch Raspberry Pi, đặc biệt là phiên bản Pi 4, để đáp ứng yêu cầu thuật toán cho đồ án Mạch Raspberry Pi có nhiều phiên bản từ Pi Zero đến Pi 4, và trong dự án này, chúng tôi chỉ cần thực hiện các tác vụ đơn giản như giao tiếp qua Wi-Fi và UART Khối lượng thông tin xử lý trong mỗi phiên chương trình không lớn, do đó không gây quá tải cho mạch Hơn nữa, với thiết kế thuật toán tối ưu, mạch Pi 4 vẫn duy trì hiệu suất tốt trong việc gửi và nhận thông tin.
Mạch Pi 4 với 4GB RAM được sử dụng trong đồ án này, cung cấp khả năng giao tiếp và thực hiện các giao thức hiệu quả, nhờ vào khả năng xử lý và truyền thông tin nhanh chóng Mạch này được gắn ngay bên dưới mạch điều khiển drone Pixhawk, kết nối và cấp nguồn qua cổng nguồn và giao tiếp telemetry 2, đảm bảo Pi luôn có đủ năng lượng để thực hiện các tác vụ và xử lý thông tin cần thiết.
Mạch 32 đóng vai trò là cổng giao tiếp giữa Pi và mạch Pixhawk, giúp người dùng dễ dàng gửi thông tin điều khiển đến drone từ xa Mạch Pi hỗ trợ việc vá lỗi và cài đặt các thư viện cần thiết cho việc điều khiển drone, đặc biệt là các thư viện tự viết cho từng vai trò trong nhóm, làm cho quá trình lập trình trở nên nhanh chóng và gọn gàng Kết nối trực tiếp giữa drone và mạch Pixhawk giúp giảm thiểu nhiễu thông tin không mong muốn từ môi trường, đồng thời đơn giản hóa và cải thiện bảo mật trong việc gửi thông tin điều khiển.
Kết nối phần cứng
Các phần cứng liên quan đến Pixhawk đã được thiết kế sẵn, giúp việc kết nối trở nên dễ dàng Động cơ bay được kết nối trực tiếp với ESC qua ba dây đỏ, vàng và đen, đảm nhận vai trò điều khiển ba pha của động cơ, cung cấp mô-men xoắn để động cơ quay ESC cũng kết nối ba dây tín hiệu đến mạch Pixhawk, cho phép nhận thông tin và truyền xung PWM để điều khiển tốc độ động cơ, giúp drone di chuyển trong không gian Bốn ESC còn được cấp nguồn từ pin thông qua hai dây nguồn và mạch chia nguồn, trong đó có mạch ổn định dòng được kết nối trực tiếp với pin Mạch ổn định nguồn cung cấp một dây tín hiệu và nguồn đầu ra 5V cho mạch Pixhawk, đồng thời cho phép người dùng theo dõi và kiểm tra mức pin khi cần thiết.
Mạch Pixhawk hỗ trợ nhiều cổng kết nối nhanh, giúp việc kết nối phần cứng trở nên dễ dàng hơn Còi được kết nối qua dây nối PH2.0 2 chân, cắm vào chân buzzer trên mạch Pixhawk Nút bấm cũng được kết nối bằng dây nối PH2.0 2 chân và cắm vào chân button.
Mạch Pixhawk được kết nối với mạch GPS 6M thông qua 4 dây tín hiệu PH 2.0 vào cổng GPS và 3 dây PH 2.0 cho giao tiếp I2C, cho phép trao đổi thông tin vị trí hiệu quả Ngoài ra, telemetry 2 được kết nối với Raspberry Pi 4 qua 4 dây tín hiệu UART từ Pixhawk Các cảm biến như cảm biến độ cao, cảm biến hướng gyro và IMU cũng đã được tích hợp trên mạch Pixhawk, giúp việc lắp đặt và sử dụng trở nên thuận tiện hơn Độ nhạy và tốc độ trao đổi thông tin được cải thiện nhờ vào dây nối nhúng trong mạch PCB.
Khung mica được thiết kế đặc biệt để gắn cố định các chi tiết của drone, bao gồm ba miếng: miếng trên, miếng giữa và miếng dưới Miếng trên giữ cố định mô-đun GPS và mạch điều khiển bay Pixhawk, đồng thời có các khe khoét sẵn giúp giảm trọng lượng drone và tạo điều kiện thuận lợi cho việc đi dây Miếng giữa có chức năng cố định Raspberry Pi để điều khiển drone hiệu quả.
Hình 3.10 Sơ đồ nối dây
Tầng dưới của drone được trang bị mạch PCB chia nguồn, giúp quản lý dây nguồn và dây tín hiệu một cách gọn gàng, tránh tác động không mong muốn đến phần cứng Tầng này cũng tạo ra cấu trúc vững chắc, liên kết với các tầng khác, tăng cường độ cứng và ổn định cho drone Tầng thứ ba nhỏ hơn, gắn vào tầng hai, có nhiệm vụ giữ pin và cố định mạch chia nguồn Việc cố định giữa tầng hai, tầng một và các cánh của drone góp phần nâng cao độ cứng cho toàn bộ cấu trúc, đặc biệt là bốn chân cánh.
Các cánh drone được gia cố bằng thanh dọc, giúp tăng cường khả năng chịu lực và độ bền Cấu trúc cánh bao gồm hai tầng trên và dưới, kết nối bằng các trụ đồng, tạo nên sự vững chắc Mạch ESC được đặt ở giữa cánh, giúp tối ưu hóa thiết kế và bảo vệ linh kiện Động cơ được gắn chắc chắn vào cánh bằng 4 ốc và lớp đệm bổ sung, tăng cường khả năng chịu lực Các cánh được cố định với thân drone thông qua bốn trụ ốc nhựa, đồng thời có các phần khoét để giảm trọng lượng và tăng độ dẻo, giúp tránh gãy khi chịu lực Phần trục giữa không chỉ tạo độ cứng cho cánh mà còn tích hợp chân drone, đảm bảo sự ổn định và sẵn sàng cho cất cánh.
Các cấu trúc khung của drone đã được tối ưu hóa để phù hợp với kích thước của thiết bị mà không làm tăng tải trọng, từ đó cải thiện độ ổn định và kéo dài thời gian bay Thiết kế khung còn cho phép lắp đặt và thay thế các bộ phận một cách nhanh chóng, hỗ trợ quy trình sản xuất và lắp đặt hàng loạt, phù hợp với mục tiêu của dự án.
Quá trình tinh chỉnh
Quá trình tinh chỉnh của drone được chia làm hai giai đoạn, tinh chỉnh về phần cứng và tinh chỉnh về phần mềm bay
Để tối ưu hóa phần cứng của drone, kích thước khung cần được điều chỉnh nhằm tiết kiệm diện tích và phù hợp với cấu trúc tổng thể Các lỗ khoét trên drone được thiết kế cẩn thận để không ảnh hưởng đến độ bền nhưng vẫn đảm bảo chức năng cần thiết Tất cả lỗ ốc đều sử dụng chuẩn M3 để dễ dàng lắp đặt và tăng số lượng khi cần thiết Các vị trí lắp đặt phần cứng cần được chuẩn hóa và cố định giữa các khung để đảm bảo hiệu suất bay đồng nhất, đồng thời các chi tiết có thể tháo rời hoặc lắp lỏng cũng được tính toán kỹ lưỡng.
Để tối ưu hóa không gian và đảm bảo độ bền cho drone, các chi tiết được thiết kế vừa khớp và gia cố thêm để chịu lực cao Việc chuẩn hóa số lượng trụ đồng và thay thế linh kiện bằng các phiên bản nhỏ gọn giúp giảm trọng lượng tổng thể của drone, từ đó cải thiện thời gian bay.
Để kết nối các phần cứng của drone một cách an toàn và hiệu quả, việc đồng bộ hóa và chuẩn hóa cách chạy dây giữa các drone là rất quan trọng Các khe nối giúp việc đi dây trở nên nhanh chóng và tiện lợi hơn, đồng thời đảm bảo rằng các dây kết nối phần cứng phải chắc chắn, không lỏng lẻo hay chập chờn, nhằm duy trì sự ổn định khi drone hoạt động Các dây này cần được cố định vào khung drone để tránh tình trạng dây bị mắc kẹt trong quá trình bay Hơn nữa, các mạch điện nên được đặt sâu trong khung để bảo vệ và ngăn chặn việc lộ ra ngoài, đảm bảo an toàn cho các bộ phận quan trọng của drone.
Quá trình tinh chỉnh phần mềm drone bắt đầu với việc cài đặt các thông số ban đầu như mức độ xoay của cánh, thông số động cơ và bộ lọc nhiễu Để thực hiện chuyến bay đầu tiên, cần tải xuống và cài đặt Mission Planner từ ArduPilot, cùng với trình điều khiển USB phù hợp Sau đó, firmware ArduPilot được flash vào pixhawk để sẵn sàng cho việc cấu hình Việc điều chỉnh các tham số PID cho từng chế độ bay như Stabilize và Loiter giúp cân bằng độ nhạy và ổn định của drone Hiệu chỉnh cảm biến gia tốc và con quay đảm bảo dữ liệu cảm biến chính xác, trong khi việc kiểm tra bộ thu GPS giúp xác định vị trí và hướng đúng đắn Điều chỉnh các tham số như tốc độ phản ứng và ngưỡng phản hồi tối ưu hóa khả năng đáp ứng của drone trong các tình huống bay khác nhau, góp phần đảm bảo hoạt động bay an toàn và hiệu quả.
Sau khi điều chỉnh các thông số ban đầu, chúng tôi sẽ tiến hành bay thử và quan sát để phát hiện những hiện tượng bất thường của drone Các vấn đề có thể xảy ra bao gồm sự không phù hợp giữa thông tin điều khiển và mức thể hiện thực tế, drone bị trôi theo một hướng, dao động hoặc không ổn định trong thời gian dài, và quay vòng trong không gian Để khắc phục từng vấn đề, cần điều chỉnh một cách tinh tế các thông số của động cơ nhằm đảm bảo tình trạng ổn định cho drone.
Khi drone đã đạt được sự ổn định sơ bộ, bước tiếp theo là thực hiện auto tune để tăng cường tính ổn định và độ chính xác khi bay Đầu tiên, điều chỉnh một kênh trên tay cầm để chuyển đổi chế độ sang auto tune Hãy chọn một khu vực rộng rãi, thoáng đãng và không có gió, sau đó cho drone bay lên ở chế độ alt hold và kích hoạt auto tune khi drone đạt độ cao an toàn Trong quá trình này, drone sẽ tự động điều chỉnh các thông số PID và bộ tốc để phù hợp với phần cứng Người dùng cần theo dõi chặt chẽ để đảm bảo tiến trình diễn ra an toàn Sau khi hoàn tất, hạ drone và disarm ngay trong trạng thái auto tune để lưu lại thông số Mặc dù đã thực hiện auto tune, cần kiểm tra lại các thông số để đảm bảo chúng phù hợp và điều chỉnh nếu cần, nếu không, chỉ cần lưu lại để sử dụng cho các lần bay sau.
Việc tinh chỉnh drone mặc dù tốn thời gian, nhưng nhờ vào việc đồng bộ phần cứng, người dùng chỉ cần tải và cài đặt phần mềm cần thiết cho các drone sau, từ đó có thể sử dụng lại các giá trị đã tinh chỉnh Điều này giúp quá trình tinh chỉnh cho các drone tiếp theo trở nên dễ dàng và nhanh chóng Hơn nữa, các thông số này chứng tỏ sự ổn định khi sử dụng cho nhiều drone, với kết quả bay cho độ chính xác và ổn định tương đồng nhau.
Sau khi hoàn tất việc tinh chỉnh bay cho drone, chúng tôi tiến hành cài đặt và tinh chỉnh mạch điều khiển Raspberry Pi 4 trước khi kết nối với drone Các phần mềm và thư viện cần thiết như PyQT5, pymavlink và MQTT yêu cầu cài đặt môi trường và phiên bản cụ thể để đảm bảo hoạt động ổn định Việc điều khiển drone và xử lý thông tin trên Raspberry Pi 4 không gặp nhiều khó khăn Quá trình tạo môi trường và cài đặt thông số IP cho máy chủ diễn ra nhanh chóng và dễ dàng Sau khi cài đặt, phần mềm sẽ được thực thi tự động thông qua đoạn mã khởi động trước khi bật nguồn, giúp tự động hóa quá trình khởi tạo drone mà không cần can thiệp từ người dùng.
Sau khi tải chương trình lên Raspberry Pi và kết nối với Pixhawk, các chương trình kiểm tra sẽ được thực hiện để xác định sự giao tiếp giữa drone và mạch điều khiển Nếu kết nối thành công và không gặp khó khăn trong việc truyền nhận, drone sẽ được thử nghiệm bay theo các nhiệm vụ để đánh giá tốc độ gửi và nhận lệnh Qua đó, chúng ta sẽ kiểm tra độ chính xác của drone khi bay và thực hiện các tinh chỉnh cần thiết để đảm bảo hoạt động ổn định.
THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN
Sơ đồ tổng quan của hệ thống điều khiển drone
Hình 4.1 Kiến trúc giao tiếp của hệ thống
Hệ thống điều khiển drone bao gồm ba phần chính: Ground Control Station (GCS), broker và drone GCS là phần mềm trên laptop, sử dụng giao thức MQTT để gửi lệnh điều khiển lên topic chung trên broker, từ đó các drone có thể truy cập và thực hiện lệnh GCS cũng lấy thông tin phản hồi từ drone thông qua một topic khác trên broker Drone sử dụng Raspberry Pi để kết nối với broker, nhận lệnh từ GCS và gửi thông tin trạng thái về hệ thống Chương trình trên Raspberry Pi sử dụng thư viện pymavlink để gửi lệnh đến Flight Controller Pixhawk qua giao thức MAVLink, với kết nối giữa Raspberry Pi và Pixhawk thông qua UART Nhờ vào Ardupilot firmware, Raspberry Pi có thể gửi lệnh cho Pixhawk thực hiện các nhiệm vụ được chỉ định.
Thuật toán điều khiển nhóm
Trong lĩnh vực điều khiển nhiều drone, có nhiều thuật toán được áp dụng nhằm đảm bảo sự phối hợp và hoạt động hiệu quả giữa các thiết bị bay, bao gồm thuật toán điều khiển Centralized và các thuật toán khác.
Hệ thống điều khiển drone của chúng tôi được phát triển dựa trên sự kết hợp giữa thuật toán điều khiển centralized và decentralized, nhằm tận dụng ưu điểm của các thuật toán như Distributed, Decentralized và Artificial Potential Fields Phương pháp này không chỉ cung cấp sự quản lý tập trung khi cần thiết mà còn đảm bảo tính linh hoạt và khả năng chịu lỗi của điều khiển phân tán, giúp khắc phục những hạn chế của các thuật toán khác.
Thuật toán điều khiển centralized
Thuật toán điều khiển centralized, hay điều khiển tập trung, là phương pháp mà một bộ điều khiển trung tâm giám sát và điều khiển toàn bộ hệ thống Trong lĩnh vực điều khiển drone, bộ điều khiển trung tâm có thể là máy tính hoặc server kết nối với tất cả các drone trong mạng lưới Các drone gửi thông tin trạng thái về trung tâm và nhận lệnh điều khiển từ đó.
Hình 4.2 Thuật toán điều khiển kết hợp Centralized và Decentralized
Phương pháp này mang lại ưu điểm nổi bật với khả năng quản lý tập trung và tối ưu hóa toàn bộ hệ thống, nhờ vào bộ điều khiển trung tâm có cái nhìn toàn diện về trạng thái của tất cả các drone Tuy nhiên, nhược điểm chính là sự phụ thuộc lớn vào bộ điều khiển trung tâm; nếu bộ điều khiển gặp sự cố, toàn bộ hệ thống có thể bị ảnh hưởng nghiêm trọng Hơn nữa, phương pháp này có thể gặp khó khăn khi mở rộng quy mô do hạn chế về băng thông và khả năng xử lý của bộ điều khiển.
Thuật toán điều khiển decentralized
Thuật toán điều khiển phân tán cho phép mỗi drone tự quản lý và điều khiển hành vi dựa trên thông tin từ các drone lân cận và môi trường xung quanh, hoạt động như những thực thể độc lập Phương pháp này mang lại tính linh hoạt và khả năng chịu lỗi cao, cho phép các drone khác tiếp tục hoạt động bình thường ngay cả khi một drone gặp sự cố Ngoài ra, điều khiển phân tán dễ dàng mở rộng quy mô mà không gặp phải điểm nút thắt cổ chai về băng thông hay khả năng xử lý Tuy nhiên, nhược điểm lớn nhất là khả năng tối ưu hóa toàn hệ thống không cao bằng phương pháp tập trung, vì mỗi drone chỉ có thể dựa vào thông tin cục bộ để ra quyết định.
Kiến trúc hệ thống kết hợp
Trong một hệ thống kết hợp, bộ điều khiển trung tâm giám sát và điều phối tổng thể, trong khi các drone có khả năng tự quản lý và ra quyết định dựa trên thông tin cục bộ Các drone có thể giao tiếp và ra lệnh cho nhau, với bộ điều khiển trung tâm tối ưu hóa toàn bộ hệ thống khi hoạt động bình thường Khi có sự cố với bộ điều khiển trung tâm, các drone chuyển sang chế độ tự quản lý, sử dụng thuật toán điều khiển phân tán để duy trì hoạt động Hơn nữa, trong quá trình thực hiện nhiệm vụ, các drone có khả năng tự điều chỉnh và tránh va chạm nhờ vào việc liên tục thu thập thông tin vị trí từ tất cả các drone trong hệ thống.
Giao thức giao tiếp
4.3.1 Giao thức giao tiếp giữa Hệ thống điều khiển trung tâm và các drone
MQTT (Message Queuing Telemetry Transport) là giao thức truyền thông nhẹ, tối ưu cho việc truyền tải tin nhắn nhỏ qua mạng không ổn định hoặc băng thông thấp Giao thức này áp dụng mô hình publish/subscribe, cho phép các thiết bị xuất bản thông tin lên các chủ đề (topic) và các thiết bị khác đăng ký để nhận thông tin từ những chủ đề đó, từ đó giảm tải cho mạng và nâng cao hiệu quả truyền thông.
Hình 4.3 Kiến trúc giao tiếp của MQTT
Các thành phần chính cấu thành nên MQTT và vai trò của chúng trong việc đảm bảo hiệu quả của giao thức là:
- Chất lượng dịch vụ (QoS)
Broker MQTT là thành phần quan trọng trong hệ thống MQTT, chịu trách nhiệm nhận, lọc và chuyển tiếp tin nhắn giữa các client Nó quản lý các kết nối và đảm bảo tin nhắn được phân phối đúng chủ đề với mức chất lượng dịch vụ (QoS) phù hợp Các chức năng chính của Broker MQTT bao gồm quản lý kết nối và phân phối tin nhắn hiệu quả.
- Quản lý kết nối: Broker duy trì các kết nối với các client, quản lý việc đăng ký và hủy đăng ký các chủ đề của chúng
- Phân phối tin nhắn: Broker nhận các tin nhắn từ các client xuất bản và chuyển tiếp chúng đến các client đã đăng ký chủ đề tương ứng
Đảm bảo chất lượng dịch vụ (QoS) là một yếu tố quan trọng, với vai trò của broker trong việc truyền tải tin nhắn theo mức QoS đã định Điều này không chỉ tối ưu hóa độ tin cậy mà còn nâng cao hiệu suất của hệ thống.
Client MQTT là các thiết bị hoặc ứng dụng giao tiếp qua giao thức MQTT thông qua broker Chúng có thể hoạt động như publisher (người xuất bản), subscriber (người đăng ký), hoặc cả hai.
Chức năng chính của Client MQTT là:
Khách hàng có khả năng xuất bản tin nhắn lên một hoặc nhiều chủ đề, và những tin nhắn này sẽ được broker nhận và chuyển tiếp đến các khách hàng đã đăng ký cho các chủ đề tương ứng.
- Đăng ký chủ đề: Client có thể đăng ký một hoặc nhiều chủ đề để nhận các tin nhắn xuất bản lên các chủ đề đó
- Quản lý kết nối: Client duy trì kết nối với broker, thực hiện các thao tác kết nối, hủy kết nối, và kiểm tra trạng thái kết nối
Trong MQTT, topic là chuỗi ký tự dùng để đại diện cho các kênh truyền tin Các client có thể xuất bản tin nhắn lên các topic này, trong khi các client khác đăng ký để nhận tin nhắn từ những topic mà họ quan tâm.
Chức năng chính của Topic trong MQTT là:
Cấu trúc phân cấp giúp tổ chức chủ đề một cách có hệ thống, tạo ra các kênh truyền tin dễ quản lý Ví dụ, các cảm biến có thể được phân loại theo nhiệt độ (sensor/temperature) và độ ẩm (sensor/humidity).
- Wildcards: MQTT hỗ trợ các ký tự đại diện (wildcards) để đăng ký các chủ đề động
Ký tự + đại diện cho một cấp độ, còn ký tự # đại diện cho tất cả các cấp độ phía sau
MQTT cung cấp ba mức chất lượng dịch vụ (Quality of Service - QoS) để đảm bảo mức độ tin cậy của việc truyền tải thông tin:
QoS 0 (Chỉ gửi một lần): Tin nhắn được gửi mà không yêu cầu xác nhận từ người nhận, đại diện cho mức chất lượng dịch vụ thấp nhất Mức này phù hợp cho các ứng dụng không đòi hỏi tính nhất quán cao của dữ liệu.
QoS 1 (Ít nhất một lần) đảm bảo rằng tin nhắn được gửi ít nhất một lần và yêu cầu xác nhận từ người nhận Nếu không nhận được xác nhận, tin nhắn sẽ được gửi lại Mặc dù mức chất lượng này đảm bảo tin nhắn sẽ đến nơi, nhưng có khả năng xảy ra trùng lặp trong quá trình gửi.
QoS 2 (Chính xác một lần) đảm bảo rằng tin nhắn được truyền tải đúng một lần mà không bị trùng lặp Đây là mức chất lượng dịch vụ cao nhất, lý tưởng cho các ứng dụng yêu cầu tính nhất quán và độ tin cậy tuyệt đối.
Tin nhắn trong MQTT chứa dữ liệu mà client xuất bản lên một chủ đề, sau đó broker sẽ chuyển tiếp đến các client đã đăng ký chủ đề đó Mỗi tin nhắn bao gồm hai phần chính.
Payload: Phần dữ liệu chính của tin nhắn, có thể là bất kỳ dạng dữ liệu nào (văn bản, số, nhị phân)
Headers: Phần tiêu đề chứa các thông tin điều khiển như chủ đề, QoS, retain flag (cờ giữ lại), và các thuộc tính khác
Trong hệ thống của chúng tôi, MQTT được sử dụng làm giao thức giao tiếp giữa Hệ thống điều khiển trung tâm (Laptop) và các Drone Việc lựa chọn MQTT mang lại nhiều lợi ích vượt trội về độ tin cậy và tính nhất quán của thông tin, với các đặc điểm nổi bật như khả năng truyền tải hiệu quả và hỗ trợ kết nối ổn định.
Giao thức MQTT được thiết kế nhẹ và hiệu quả, giúp tiết kiệm tài nguyên như băng thông, bộ nhớ và năng lượng trên các thiết bị Điều này khiến MQTT trở thành lựa chọn lý tưởng cho các ứng dụng IoT, nơi thiết bị thường có tài nguyên hạn chế và cần giao tiếp hiệu quả trong các mạng không ổn định.
Mô hình publish/subscribe của MQTT cho phép tách biệt các thành phần trong hệ thống, giúp các thiết bị giao tiếp mà không cần biết đến sự tồn tại của nhau Broker MQTT đóng vai trò quan trọng trong việc nhận và phân phối tin nhắn, từ đó giảm tải cho các thiết bị và tối ưu hóa quản lý kết nối.
MQTT cung cấp độ tin cậy cao với ba mức chất lượng dịch vụ (QoS), cho phép người dùng cân bằng giữa hiệu suất và độ tin cậy Cụ thể, QoS 2 đảm bảo rằng mỗi tin nhắn được truyền tải đúng một lần mà không bị mất mát.
Thiết kế bộ PID cho hệ thống giữ khoảng cách
4.4.1 Cấu trúc chung của bộ điều khiển
Cấu trúc bộ điều khiển vận tốc của drone được xây dựng như sơ đồ bên dưới:
SP_1(t): Khoảng cách mong muốn mà drone cần bay tới theo hướng trục x, y
MV_1(t): Vận tốc drone bay theo trục xy, tính theo hệ m
Hình 4.6 Bộ điều khiển hệ thống
55 e_1(t): sai số giữa khoảng cách mong muốn và kho6ảng cách đo theo trục xy được ở thực tế
SP_2(t): Khoảng cách mong muốn mà drone cần bay lên theo hướng trục z
MV_2(t): Vận tốc drone bay theo truc z, tính theo hệ m e_2(t): sai số giữa độ cao mong muốn đạt và độ cao đo được ở thực tế
PV(t): khoảng cách mà drone di chuyển được ở thực tế đo đạc bằng các cảm biến
Trong nghiên cứu này, chúng ta sử dụng bộ điều khiển PI (Tỉ lệ-Tích phân) để điều khiển vận tốc của drone theo các trục X, Y và Z
Hàm truyền được sử dụng để điều khiển khoảng cách an toàn giữa các drone trong bầy trong quá trình thực hiện nhiệm vụ và bay nhóm Bằng cách sử dụng thông tin GPS và dữ liệu từ cảm biến, các drone gửi thông tin cho nhau để tính toán khoảng cách và sai lệch vị trí Dựa trên sai lệch này, các drone sẽ tính toán giá trị khoảng cách và góc cần bay, sau đó sử dụng bộ PI để điều chỉnh khoảng cách, nhằm đưa biến e(t) về không, hoàn thành một vòng hàm truyền.
4.4.2 Thiết kế bộ điều khiển PI và tìm thông số hàm truyền Để tìm các hệ số Kp và Ki cho bộ điều khiển PI chúng tôi sử dụng phương pháp tìm PID của ziegler nichols để tìm thông số điều khiển phù hợp thông qua thực nghiệm Xem xét drone là một hệ chung và điều khiển được theo hai trục là trục z và trục toạ độ x, y Ta điều khiển được drone theo hai hướng lên xuống và trái phải thông qua vận tốc Kết hợp với việc đo đạc khoảng cách bằng việc lấy giá trị về và tính toán khoảng cách sai lệch của hai drone làm giá trị đầu vào để tìm thông số
Các bước thực hiện như sau:
1.Thiết lập hệ thống với bộ điều khiển tỷ lệ (P) duy nhất:
Bỏ qua thành phần tích phân (I) chỉ thiết lập Kp
2.Tăng dần Kp cho đến khi hệ thống bắt đầu dao động với biên độ không đổi:
Giá trị Kp tại điểm này được gọi là Ku = 0.88
Chu kỳ dao động được ghi nhận là Tu = 15
3.Tính toán các hệ số Kp và Ki :
4.4.3 Kết quả áp dụng hàm truyền vào hệ thống điều khiển
Hình 4 là kết quả sau khi áp dụng PI cho điều khiển vận tốc theo trục x y z của drone
Hình 4.7 Đáp ứng khoảng cách khi tăng Kp để hệ thống dao động
Hình 4.8 Đáp ứng khoảng cách của drone sau khi áp dụng PID
Lưu đồ giải thuật
Hình 4.9 Lưu đồ giải thuật chung của hệ thống
4.5.1 Lưu đồ giải thuật GCS kiểm tra kết nối với các drone
In the Ground Control Station (GCS), several MQTT client objects are initialized to perform tasks such as connecting to the MQTT broker, subscribing to various topics, publishing messages, and handling callbacks when events occur.
Hình 4.10 Lưu đồ giải 9thuật GCS kiểm tra kết nối với các drone
- Ground Control Station ( GCS) sẽ bắt đầu connect với Broker, và kiểm tra xem số lượng drone đã kết nối với Broker chung đã đủ chưa
- Nếu số lượng drone đã đủ thì sẽ bắt đầu tiến hành thực hiện các lệnh điều khiển
Nếu số lượng drone chưa đạt yêu cầu, GCS sẽ gửi liên tục thông điệp khởi tạo để thông báo rằng GCS đã kết nối và tiếp tục kiểm tra số lượng drone đã kết nối trong hệ thống.
4.5.2 Lưu đồ giải thuật drone kiểm tra kết nối với các drone khác và GCS
Hình 4.11 Lưu đồ giải thuật drone kiểm tra kết nối với các drone khác và GCS
Trên các drone, các đối tượng MQTT client được khởi tạo để thực hiện các tác vụ như kết nối tới MQTT broker, đăng ký (subscribe) vào các topic, phát (publish) thông điệp và xử lý các callback khi có sự kiện xảy ra.
- Tiếp theo drone sẽ kết nối với Broker, và bắt đầu vòng lặp để kiếm tra GCS đã kết nối với Broker và kiểm tra giá trị biến sendInit
- Nếu không thỏa điều kiện thì drone sẽ vào hàm xử lí phản hồi từ GCS để nhận message init từ GCS
Nếu thỏa mãn điều kiện, drone sẽ gửi message init để thông báo hệ thống về việc kết nối thành công với Broker Điều này đồng nghĩa với việc drone đã kết nối thành công Sau đó, drone sẽ kiểm tra xem số lượng drone đã kết nối với Broker có đủ hay không.
- Nếu số lượng drone đã đủ thì drone sẽ bắt đầu tiến hành thực hiện các lệnh điều khiển nhận từ GCS
- Nếu số lượng drone chưa đủ thì drone sẽ vào hàm xử lí phản hồi từ GCS để nhận message init từ các drone khác
4.5.3 Lưu đồ giải thuật xử lí lệnh từ GCS tới raspberry pi
- Khi Ground Control Station ( GCS) gửi lệnh điều khiển lên cho các drone sẽ tới hàm handleData() để bắt đầu xử lí
Hình 4.12 Lưu đồ giải thuật xử lí lệnh từ GCS tới raspberry pi 1
Hình 4.13 Lưu đồ giải thuật xử lí lệnh từ GCS tới raspberry pi 2
Nếu câu lệnh có dạng properties['typeMsg'] == CMD, thì cần giải mã nội dung tin nhắn và đưa tin nhắn nhận được vào hàng đợi (queue) để xử lý từng tin nhắn một khi đã có đủ số lượng drone kết nối.
If the command type is properties['typeMsg'] == PRIORITY, the drone will set the eFlag to True to halt a current task and prioritize executing another command The drone will decode the message content and process it in a separate thread to carry out the command.
If the command type is properties['typeMsg'] == MASTERLSTWIL, this command checks whether the message sent is for GCS online or GCS offline If it is GCS offline, the variable droneConnected is reset to 0.
- Nếu kiểu câu lệnh là properties['typeMsg'] ==LSTWILLMSG, kiểu câu lệnh này để cập nhật số drone đã bị mất kết nối trong hệ thống
- Nếu kiểu câu lệnh là properties['typeMsg'] ==INITMSG, kiểu câu lệnh này để cập nhật số drone kết nối thành công trong hệ thống
- Nếu kiểu câu lệnh là properties['typeMsg'] ==REPORTMSG, kiểu câu lệnh này để lấy giá trị GPS từ các drone khác
- Nếu kiểu câu lệnh là properties['typeMsg'] ==INFO, kiểu câu lệnh này để cập nhật số lượng drone trong hệ thống đã hoàn thành một nhiệm vụ nào đó
4.5.4 Lưu đồ giải thuật xử lí và gửi lệnh từ raspberry pi tới pixhawk
Khi câu lệnh có command["TYPE"] == ALL, nó cho phép gửi lệnh điều khiển tới tất cả các drone trong hệ thống Mỗi drone sẽ lấy tên câu lệnh cùng với các thông số cần thiết để thực hiện nhiệm vụ Sau khi thu thập đủ thông tin, drone sử dụng class droneMavLink() để gửi lệnh điều khiển bằng pymavlink tới Pixhawk Sau khi hoàn thành việc gửi lệnh, drone sẽ thông báo lên hệ thống rằng nhiệm vụ đã được thực hiện xong.
Nếu câu lệnh có command["TYPE"] == UINT, nó được sử dụng để gửi lệnh điều khiển cho một drone cụ thể trong hệ thống Phương thức gửi lệnh điều khiển sẽ tương tự như khi command["TYPE"] == ALL.
Khi câu lệnh có command["TYPE"] == PRIORITY, điều này có nghĩa là lệnh được gửi đi là lệnh ưu tiên trong quá trình drone đang thực hiện một nhiệm vụ cụ thể Thông thường, lệnh này sẽ là lệnh Land().
Hình 4.14 Lưu đồ giải thuật xử lí và gửi lệnh từ raspberry pi tới pixhawk
4.5.5 Lưu đồ giải thuật thực hiện nhiệm vụ bay theo quỹ đạo
Khi các drone nhận lệnh di chuyển theo một quỹ đạo từ máy chủ, thông tin quỹ đạo sẽ được đưa vào một hàm để tạo ra file CSV chứa các điểm cần di chuyển của drone.
Drone sẽ sử dụng tệp CSV để xác định các điểm di chuyển, đồng thời kiểm tra khoảng cách với các drone khác thông qua bộ điều khiển khoảng cách, từ đó điều chỉnh khoảng cách của chính nó một cách trực tiếp.
Hình 4.15 Lưu đồ giải thuật thực hiện nhiệm vụ bay theo quỹ đạo
- Khi chương trình đọc đến điểm cuối cùng trong file csv sẽ kết thúc nhiệm vụ di chuyển theo quỹ đạo.
Giao diện điều khiển
Để quản lý nhiều drone một cách hiệu quả và dễ dàng, việc phát triển một phần mềm giao diện tương tác là điều vô cùng quan trọng và cần thiết.
Giao diện tương tác của hệ thống có một số tính năng chính sau:
- Khởi tạo MQTT Client cho GCS( Master) và kết nối với broker
- Xem được log của hệ thống trong quá trình chạy chương trình
- Quan sát được trạng thái kết nối broker, kết nối với pixhawk, pin của tất cả drone trong hệ thống
- Cho phép gửi lệnh điều khiển đến tất cả các drone trong hệ thống hoặc có thể điều khiển từng drone một
Hình 4.16 Giao diện điều khiển của hệ thống
Giao diện hệ thống điều khiển drone bao gồm:
1 Bảng điều khiển kết nối cho GCS: Đây là khu vực điều khiển dành cho GCS để kết nối khởi tạo MQTT Client và kết nối với broker, bao gồm nút START và STOP để bắt đầu hoặc dừng việc kết nối Bên dưới có một bảng log ghi lại các thông tin về kết nối và trạng thái hệ thống
2 Phần thiết lập hệ thống: Nhập số lượng drone và chọn chế độ điều khiển cho hệ thống
3 Phần điều khiển các drone: Chọn lệnh điều khiển và nhập các thông số cần thiết cho lệnh điều khiển Hai nút Send command và Stop mission để gửi lệnh điều khiển tới drone và dừng khẩn cấp một mission Command pending để hiển thị các lệnh điều khiển được gửi theo thứ tự, nếu lệnh được gửi và hoàn thành thì sẽ được xóa khỏi bảng
4 Phần hiển thị trạng thái các drone: Hiện thị số lượng drone của hệ thống và trạng thái kết nối broker, kết nối với pixhawk, pin của tất cả drone trong hệ thống
Hình 4.17 Các phần của giao diện điều khiển hệ thống
KẾT QUẢ CHẾ TẠO, THỰC NGHIỆM VÀ ĐÁNH GIÁ
Kết quả chế tạo
Sau khi hoàn tất thiết kế, chúng tôi tiến hành gia công và lắp ráp các thành phần cơ khí và điện tử cho từng drone Nhóm đã thành công lắp ráp 2 drone hoàn chỉnh, đảm bảo đáp ứng đầy đủ các yêu cầu đã đề ra.
Các thông số của sản phẩm:
Bảng 5.1 Bảng thông số của drone
Dung lượng pin 2300 mah Động cơ 1400 Kv
Tổng lực nâng 600x4= 2400 gram Thời gian bay 8 phút
Hình 5.1 Kết quả thiết kế và chế tạo cơ khí
Thực nghiệm
Quá trình thực nghiệm được thực hiện tại trường Đại Học Sư Phạm Kỹ Thuật Thành Phố
Hồ Chí Minh đã gửi lệnh điều khiển tới toàn bộ hệ thống drone, với 35 lần thử nghiệm được thực hiện Việc theo dõi và so sánh các thông số qua nhiều lần chạy giúp xác định các yếu tố ảnh hưởng đến hiệu suất và độ tin cậy của hệ thống, từ đó đảm bảo chất lượng cao nhất cho sản phẩm cuối cùng.
5.2.1 Thực nghiệm khảo sát thời gian đáp ứng lệnh từ máy chủ
Tiến hành thực nghiệm gửi lệnh điều khiển 35 lần liên tục nhóm thu được kết quả thực nghiệm như sau:
Kết quả thực nghiệm cho thấy thời gian đáp ứng lệnh của các drone trong hệ thống khá đồng nhất qua các lần thử nghiệm, với thời gian đáp ứng dao động trong khoảng 1-
3 giây Tuy thời gian đáp ứng không quá nhanh nhưng đối với yêu cần đề ra thì kết quả hoàn toàn chấp nhận được
5.2.2 Thực nghiệm khảo sát thời gian đáp phản hồi lệnh tới máy chủ
Hình 5.2 Đồ thị thời gian đáp ứng lệnh của các drone
Trong một cuộc thử nghiệm, nhóm đã nhận thông tin phản hồi 35 lần liên tiếp từ các drone gửi đến máy chủ, và kết quả thu được từ thực nghiệm này cho thấy hiệu suất hoạt động của hệ thống.
Kết quả thực nghiệm cho thấy thời gian phản hồi thông tin từ các drone trong hệ thống tới máy chủ khá đồng nhất, dao động trong khoảng 1-2 giây Điều này chứng tỏ rằng thông tin phản hồi diễn ra nhanh chóng và đáp ứng tốt yêu cầu ban đầu.
5.2.3 Thực nghiệm kiểm tra phần mềm điều khiển
Việc thực nghiệm được tiến hành nhằm hai mục đích chính:
Đảm bảo tính ổn định và độ tin cậy của phần mềm điều khiển drone là yếu tố cực kỳ quan trọng, vì bất kỳ lỗi nào trong phần mềm có thể dẫn đến hậu quả nghiêm trọng, như mất kiểm soát drone trong không gian thực.
Kiểm tra khả năng xử lý các tình huống đặc biệt như mất kết nối máy chủ hoặc drone bị mất kết nối là rất quan trọng Đánh giá khả năng tái kết nối cho máy chủ và drone trong hệ thống giúp đảm bảo tính ổn định và hiệu quả hoạt động của toàn bộ hệ thống.
Các bước tiến hành thực nghiệm:
Hình 5.3 Đồ thị thời gian phản hồi của các drone
- Kết nối phần mềm điều khiển với broker
Máy chủ đã kết nối thành công với broker và đang đợi các drone kết nối vào hệ thống
Hình 5.4 Máy chủ kết nối với broker
- Kết nối các drone với broker
Các drone kết nối thành công với broker và bắt đầu gửi thông tin pin để hiện thị lên UI
- Tắt phần mềm điều khiển để ngắt kết nối máy chủ với broker của hệ thống rồi kết nối lại máy chủ với broker
Hình 5.5 Các drone kết nối với broker
Hình 5.6 Ngắt kết nối máy chủ và kết nối lại với hệ thống
Sau khi máy chủ kết nối lại, phần mềm hoạt động bình thường như lúc đầu
-Ngắt kết nối của drone 1 trong hệ thống
Khi một drone trong hệ thống bị mất kết nối, nó sẽ ngay lập tức gửi thông báo đến hệ thống, giúp máy chủ và tất cả các drone khác nhận biết tình trạng này.
Hình 5.7 Ngắt kết nối drone 1 trong hệ thống
- Kết nối lại drone đã ngắt kết trước đó
Drone đã ngắt kết nối trước đó khi được kết nối lại sẽ ngay lập tức truy cập lại vào hệ thống chung
Hình 5.8 Drone đã ngắt kết nối kết nối lại với hệ thống
- Gửi lệnh điều khiển tới drone 1
- Gửi lệnh điều khiển tới tất cả drone
Hình 5.9 Gửi lệnh điều khiển tới drone 1
Hình 5.10 Gửi lệnh điều khiển tới toàn bộ drone trong hệ thống
Kết quả: Thực nghiệm cho thấy cả hai mục tiêu đều được đạt được một cách chính xác
Phần mềm điều khiển cho phép kết nối lại với máy chủ hoặc drone trong hệ thống khi bị mất kết nối Nó có khả năng điều khiển một drone riêng lẻ hoặc toàn bộ hệ thống drone Các drone nhận lệnh nhanh chóng và thực hiện chính xác tất cả các lệnh từ máy chủ.
Kết quả đáp ứng khoảng cách của bộ điều khiển
Áp dụng bộ điều khiển khoảng cách để giữ vị trí của 2 drone với nhau trong khi bay thì đã thu về kết quả như sau:
- Đáp ứng khoảng cách của 2 drone:
Hình 5.11 Đồ thị đáp ứng khoảng cách của 2 drone khi sử dụng bộ điều khiển
Hình 5.12 Đồ thị đáp ứng giá trị tọa độ theo trục x
Hình 5.13 Đồ thị đáp ứng giá trị tọa độ theo trục y
Đánh giá
Kết quả bay cho một drone riêng lẻ
Kết quả bay drone đã đáp ứng đầy đủ các yêu cầu của đồ án, với khả năng nhận và thực hiện lệnh một cách độc lập mà không bị nhiễu tín hiệu từ tay cầm điều khiển, ngay cả trong môi trường nhiều nguồn gây nhiễu Tốc độ kết nối và phản hồi nhanh chóng giúp người dùng theo dõi trạng thái drone hiệu quả hơn, mặc dù hệ thống vẫn có thể gặp lỗi đồng bộ thông tin Sau khi bổ sung các tính năng an toàn và mã hóa cho thuật toán điều khiển, drone đã cải thiện khả năng kết nối và thực hiện lệnh một cách chính xác và nhanh chóng hơn Vấn đề mất dữ liệu và kẹt vòng lặp đã được khắc phục nhờ vào bộ đếm, giúp drone bay ổn định hơn Các thuật toán điều khiển cũng được tối ưu hóa và bổ sung hàm xác nhận, đảm bảo quá trình gửi và thực hiện lệnh diễn ra đúng thứ tự và liên tục.
Hình 5.14 Đồ thị đáp ứng giá trị tọa độ theo trục z
Kết quả bay drone cho thấy khả năng điều khiển linh hoạt, an toàn và đáng tin cậy Drone thiết lập kết nối nhanh chóng trong khoảng 5 giây và thực hiện các giai đoạn kiểm tra cũng như thiết lập giao tiếp dữ liệu hiệu quả Sau khi nhận lệnh từ master, drone chỉ mất 2 giây để bắt đầu thực hiện mà không gặp vấn đề trùng lặp hay thiếu lệnh Việc thực hiện lệnh diễn ra chính xác, đảm bảo mỗi lệnh được thực hiện riêng biệt, giúp quá trình bay ổn định và hiệu quả.
Kết quả bay cho nhiều drone
Điều khiển drone qua giao thức cho phép cả hai drone kết nối với master một cách nhanh chóng và tin cậy Hệ thống duy trì khả năng kết nối ổn định, bất kể số lượng drone có tăng hay giảm.
Các drone thể hiện sự đồng bộ cao trong việc thực hiện lệnh thông qua việc đồng bộ hóa đồng hồ đếm, đảm bảo không có hiện tượng trùng lặp thông tin khi nhận cùng một loại câu lệnh Chúng có khả năng nhận và thực hiện nhiều lệnh riêng biệt mà không bị nhiễu hay mất lệnh, đồng thời không thực hiện lệnh của nhau, cho thấy khả năng phân luồng và phân tích dữ liệu hiệu quả Thời gian phản hồi của hệ thống nhanh chóng và đồng bộ, với cả hai drone thực hiện lệnh cùng lúc mà không có sự lệch lạc hay bất đồng bộ trong toàn bộ quá trình.
Với kiểu điều khiển trung tâm, các drone thể hiện khả năng xử lý lệnh nhanh chóng và hiệu quả, ngay cả khi số lượng drone tăng lên Chúng không gặp hiện tượng trùng lặp hay gửi nhầm lệnh, đảm bảo mọi lệnh được gửi đúng mục tiêu và đồng bộ Ngược lại, trong chế độ điều khiển phân tán, các drone cũng xử lý tốt khi tự nhận lệnh từ master và tự động bắt đầu quá trình bay Quá trình thực hiện các điểm lệnh diễn ra mượt mà, không có trục trặc hay lặp lệnh, đồng thời dữ liệu bay cần thiết cho nhiệm vụ và an toàn cũng được gửi và nhận liên tục.
Trong bài viết này, chúng ta khám phá 82 bài hát về các drone, tập trung vào việc xác định vị trí và tránh né trong các nhiệm vụ bay hiện tại Việc bay theo nhóm chứng tỏ khả năng xử lý thông tin lớn của drone, khi mà hai drone có thể tự thực hiện các nhiệm vụ riêng mà không bị ảnh hưởng bởi thông tin từ các drone khác Điều này thể hiện độ ổn định cao của hệ thống drone trong các tình huống phức tạp.
Hệ thống được trang bị các lớp bảo vệ fail-safe và bộ đếm trong từng hàm, giúp ngăn chặn vòng lặp vô hạn và kẹt hàm Việc tối ưu hóa hệ thống cho phép quét và đọc giá trị gửi đến drone một cách nhanh chóng Các quy trình từ nhận lệnh điều khiển ở master đến đóng gói và gửi lệnh được cải thiện để tăng tốc độ truyền Trong quá trình gửi, chương trình liên tục kiểm tra số lượng drone và trạng thái kết nối với master, từ đó đưa ra biện pháp kịp thời nhằm đảm bảo an toàn và tránh mất dữ liệu hoặc sai sót trong thông tin gửi tới drone.
Các trạng thái kết nối của drone được cập nhật liên tục, giúp người dùng theo dõi tình trạng hiện tại của drone cùng với thông tin cần thiết như pin, tốc độ bay và tình trạng cảm biến Trong quá trình bay, drone cũng gửi thông tin về vị trí và tình trạng pin để người dùng có thể nắm bắt và phản ứng kịp thời, đồng thời hỗ trợ các drone khác trong việc thực hiện các thuật toán như tránh né, đồng bộ hóa và bay theo nhiệm vụ hoặc hình dáng cụ thể.
Trong hệ thống điều khiển của drone, các đoạn mã xử lý khác nhau được chạy trên các luồng riêng biệt nhằm tránh tình trạng rối loạn trong quá trình xử lý Việc tách biệt các luồng này không chỉ nâng cao khả năng xử lý tổng thể mà còn cải thiện tốc độ phản hồi của drone Hơn nữa, việc chia nhỏ luồng giúp drone không bị kẹt lại trong một câu lệnh hay quá trình nào quá lâu, từ đó giảm thiểu nguy cơ drone ngừng bay hoặc bay loạn xạ trong khi thực hiện nhiệm vụ.
Việc sử dụng công nghệ đa luồng giúp drone có tốc độ phản hồi nhanh chóng và nhạy bén với các lệnh từ người dùng Đồng thời, drone cũng có khả năng tránh né hiệu quả nhờ vào việc liên tục nhận dữ liệu vị trí, từ đó nâng cao độ chính xác trong quá trình điều khiển Điều này không chỉ giúp drone bay ổn định mà còn cho phép thực hiện các nhiệm vụ bay phức tạp với yêu cầu độ chính xác cao.
Hệ thống nhập lệnh và thực hiện lệnh đã được tối ưu hóa để đạt tốc độ xử lý cao, đồng thời đảm bảo độ an toàn và chính xác Các vấn đề như trùng lặp, mất dữ liệu và nhầm lẫn đã được giải quyết hiệu quả.
Các bộ nhớ đệm có chức năng lưu trữ lệnh theo thời gian gửi và gửi lại cho drone khi cần, đồng thời máy chủ xử lý hiệu quả các thông tin vào ra bất chợt Dữ liệu được tinh gọn và làm mới liên tục, giúp nhóm drone hoạt động chính xác và đồng bộ hơn.