Bối cảnh và vấn đề nghiên cứu

Trong lĩnh vực chế tạo robot phục vụ công tác tuần tra, giám sát và xây dựng, các cấu trúc di chuyển phổ biến hiện nay chủ yếu dựa trên hệ thống ba bánh (hai bánh dẫn động đồng trục kết hợp một bánh phụ/bánh đuôi) hoặc bốn bánh. Tuy nhiên, cấu hình ba hoặc bốn bánh bộc lộ nhiều hạn chế về mặt động học khi vận hành trên các địa hình phức tạp:

  • Sự phân bố trọng lượng không đồng đều: Trọng lượng thân xe phân bổ lên bánh lái chính và bánh đỡ phụ. Khi tải trọng dồn nhiều vào bánh lái, xe dễ mất ổn định; ngược lại, nếu dồn tải vào bánh phụ, hai bánh chủ động sẽ mất độ bám đường.
  • Mất thăng bằng trên mặt phẳng nghiêng và dốc: Khi xe ba hoặc bốn bánh leo dốc, trọng tâm dồn về phía đuôi làm bánh trước mất lực bám và dẫn đến nguy cơ lật ngược ra sau; khi gặp bậc thang, xe dễ bị mất ma sát và chỉ quay trơn bánh.
  • Độ linh hoạt khi chuyển hướng: Cấu hình bốn bánh chiếm diện tích lớn, bán kính quay vòng rộng, khó xoay xở trong không gian hẹp và phức tạp trong việc xác định chính xác góc cua cũng như quãng đường di chuyển.

Ngược lại, mô hình robot hai bánh đồng trục sở hữu khả năng tự cân bằng động vượt trội. Khi di chuyển lên dốc, hệ thống tự động nghiêng thân về phía trước để dồn trọng tâm về trước; khi xuống dốc, hệ thống chủ động ngả về sau để giữ thăng bằng, loại bỏ hiện tượng lật xe. Nhằm giải quyết bài toán điều khiển một đối tượng phi tuyến, không ổn định tự nhiên và chịu tác động đồng thời của nhiều biến trạng thái (vị trí, vận tốc, góc nghiêng), đề tài "Robot hai bánh tự cân bằng sử dụng giải thuật LQR" đã được thực hiện với các mục tiêu và giới hạn cụ thể:

  • Mục tiêu nghiên cứu:
    1. Xây dựng mô hình toán học và thuật toán điều khiển tự cân bằng cho robot hai bánh dựa trên phương pháp điều khiển toàn phương tuyến tính LQR (Linear-Quadratic Regulator).
    2. Thiết kế, chế tạo mô hình phần cứng thực tế có khả năng duy trì trạng thái thăng bằng trên các bề mặt chuyển động.
  • Đối tượng nghiên cứu: Hệ thống robot hai bánh tự cân bằng đồng trục, thuật toán tối ưu hóa LQR, bộ lọc Kalman xử lý tín hiệu cảm biến gia tốc và vận tốc góc.
  • Phạm vi và giới hạn:
    • Thời gian thực hiện: 16 tuần nghiên cứu và chế tạo.
    • Điều kiện kinh phí hạn chế nên kích thước mô hình ở quy mô nhỏ, chưa tối ưu hóa vật liệu trang trí ngoại quan.
    • Thuật toán và chương trình nhúng được xây dựng ở mức độ đáp ứng thực nghiệm cơ bản, chịu giới hạn bởi năng lực tính toán của vi điều khiển 8-bit và độ chính xác của các cảm biến thương mại phổ thông.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và mô hình toán học

Hệ thống robot hai bánh tự cân bằng được mô hình hóa thành hệ con lắc ngược phi tuyến gắn trên xe di động, đặc trưng bởi các đại lượng vật lý và phương trình vi phân chuyển động:

Ký hiệu đại lượng Đơn vị Ý nghĩa vật lý trong mô hình
$M$, $m$ $\text{kg}$ Khối lượng thân robot và khối lượng mỗi bánh xe
$R$ $\text{m}$ Bán kính bánh xe
$W$, $D$, $H$ $\text{m}$ Chiều rộng, chiều ngang và chiều cao của khung robot
$L$ $\text{m}$ Khoảng cách từ trọng tâm robot đến trục bánh xe
$\theta$, $\theta_{l,r}$ $\text{rad}$ Góc quay trung bình, góc quay bánh trái và bánh phải
$\psi$, $\phi$ $\text{rad}$ Góc nghiêng phần thân và góc xoay hướng của robot
$f_w, f_m$ — Hệ số ma sát giữa bánh xe với mặt sàn và ma sát động cơ DC
$J_m, R_m, K_b, K_t$ — Momen quán tính, điện trở, hệ số EMF và momen xoắn động cơ

Để kiểm soát hệ thống đa biến (MIMO), đề tài ứng dụng lý thuyết điều khiển toàn phương tuyến tính LQR. Đối tượng tuyến tính liên tục được biểu diễn qua phương trình trạng thái $\dot{x}(t) = Ax(t) + Bu(t)$ với vector trạng thái $x(t)$ và vector điều khiển $u(t)$. Chỉ tiêu chất lượng toàn phương cần cực tiểu hóa có dạng:

$$J = \frac{1}{2} \int_{0}^{\infty} \left[ x^T(t) Q x(t) + u^T(t) R u(t) \right] dt$$

Trong đó $Q$ là ma trận trọng số bán xác định dương, $R$ là ma trận trọng số xác định dương. Luật điều khiển hồi tiếp trạng thái tối ưu có dạng $u = -Kx = -R^{-1}B^T P x$, với ma trận $P$ là nghiệm của phương trình Riccati đại số (Algebraic Riccati Equation - ARE):

$$A^T P + PA - PBR^{-1}B^T P + Q = 0$$

Phương pháp xử lý tín hiệu cảm biến

Để ước lượng chính xác góc nghiêng $\psi$ và vận tốc góc $\dot{\psi}$, nhóm tác giả khảo sát hai phương pháp:

  1. Bộ lọc bổ phụ (Complementary Filter): Kết hợp tín hiệu đo góc từ gia tốc kế (tần số thấp) với tín hiệu tích phân từ con quay hồi chuyển (tần số cao) nhằm bù trừ hiện tượng trôi điểm không (drift) của Gyroscope và độ trễ của Accelerometer.
  2. Bộ lọc Kalman 2 trạng thái (Kalman Filter): Mô hình hóa trạng thái $X = [\text{angle}, \text{q_bias}]^T$ để triệt tiêu nhiễu ngẫu nhiên từ cảm biến MPU-6050. Cấu hình tham số nhiễu đo $R_{\text{angle}} = 0.03\text{ rad}$ cùng ma trận hiệp phương sai sai số $Q$, thuật toán liên tục thực hiện chu kỳ cập nhật dự đoán trạng thái (State_update) và hiệu chỉnh sai số đo (Kalman_update).

Thiết kế và triển khai hệ thống kỹ thuật

Thiết kế phần cứng và lựa chọn linh kiện

Kết cấu cơ khí và hệ thống điện của mô hình robot được cấu tạo từ các thành phần tiêu chuẩn:

  • Khung cơ khí: Gồm 3 tầng làm bằng vật liệu mica ghép nối vững chắc thông qua các trụ đồng, kích thước tổng thể $17 \times 6{,}5 \times 10\text{ cm}$. Tầng đáy được gia công các lỗ định vị $\varnothing 4\text{ mm}$ gắn giá đỡ động cơ GA25 và trụ đồng; các lỗ $\varnothing 10\text{ mm}$ và $\varnothing 20\text{ mm}$ tại các tầng dùng để luồn dây tín hiệu.
  • Bộ điều khiển trung tâm: Bo mạch Arduino Mega 2560 R3 tích hợp vi điều khiển ATmega2560 (bộ nhớ Flash 256KB, SRAM 8KB, EEPROM 4KB, 4 cổng Serial, 6 chân ngắt ngoài, 15 chân phát xung PWM và 16 ngõ Analog).
  • Động cơ chấp hành: Hai động cơ DC Servo GA25 có hộp giảm tốc tích hợp đĩa đọc Encoder quang học (tốc độ không tải 220 rpm, điện áp hoạt động 3–12V, đường kính trục 4mm, momen 1.5 kg.cm).
  • Cảm biến đo góc nghiêng: Module GY-521 MPU-6050 tích hợp gia tốc kế 3 trục và con quay hồi chuyển 3 trục, bộ chuyển đổi ADC 16-bit nội, bộ đệm FIFO 1024 bytes, giao tiếp qua bus I2C chuẩn tốc độ 400kHz.
  • Mạch công suất cầu H: Mạch điều khiển động cơ dòng cực đại 2.5A Mini, dải điện áp 2–10V, sử dụng tầng công suất MOSFET kết hợp mạch cách ly quang Opto để ngăn xung điện áp ngược bảo vệ vi điều khiển, tích hợp mạch bảo vệ quá nhiệt (TSD).
  • Hệ thống cấp nguồn: Nguồn động lực sử dụng 2 cell pin Lithium-ion 18650 Shuangdi (4.2V – 3800mAh) mắc nối tiếp cho điện áp 8.4V. Nguồn cấp cho vi điều khiển và cảm biến được hạ áp qua module ổn áp xung LM2596 (nguồn vào 4–35V, ngõ ra điều chỉnh 1–30V, dòng cực đại 3A) nhằm cách ly hoàn toàn nhiễu nguồn sinh ra từ động cơ DC.

Triển khai thuật toán điều khiển nhúng

Chương trình điều khiển được viết bằng ngôn ngữ C/C++ trên nền tảng Arduino IDE với chu trình vòng lặp thời gian thực:

  1. Thu nhận dữ liệu: Vi điều khiển đọc dữ liệu thô gia tốc ($AcX, AcZ$) và vận tốc góc ($Gyro$) từ MPU-6050 qua bus I2C địa chỉ 0x3B. Góc nghiêng ban đầu được tính qua hàm atan2(-AcX, AcZ), sau đó chuyển qua thuật toán Kalman lọc nhiễu.
  2. Đo vận tốc và vị trí: Đọc xung từ kênh A và B của Encoder thông qua ngắt ngoài (attachInterrupt chân ngắt 1 và 4) để cập nhật biến trạng thái góc quay trung bình $\theta$ và góc xoay $\phi$.
  3. Tính toán luật điều khiển LQR: Vector trạng thái gồm 6 biến $[ \theta, \dot{\theta}, \psi, \dot{\psi}, \phi, \dot{\phi} ]$ được nhân với bộ hệ số độ lợi hồi tiếp $K = [k_1, k_2, k_3, k_4, k_5, k_6] = [35, 5, 400, 15, 27, 2.3]$ để xác định điện áp điều khiển xuất ra hai bánh.
  4. Điều chế độ rộng xung (PWM): Thanh ghi TCCR2B được cấu hình lại để nâng tần số xung PWM lên 31 kHz trên các chân ngõ ra, giúp động cơ chuyển động êm, triệt tiêu tiếng rít tần số âm thanh và tăng độ nhạy phản hồi. Tín hiệu PWM được giới hạn trong dải $[-200, 200]$.
  5. Cơ chế an toàn ngắt khẩn cấp: Hệ thống tích hợp điều kiện kiểm tra góc ngã: nếu $|\psi| > 30^\circ$, cờ falldown lập tức được kích hoạt về mức true, hàm stopandreset() sẽ ngắt toàn bộ điện áp động cơ và đặt lại các biến tích phân về 0 để chống quá dòng.

Nội dung chính theo từng chương

Chương 1: Giới thiệu

Chương 1 phân tích tổng quan về vai trò của robot tự hành trong công nghiệp và đời sống. Tác giả chỉ ra nhược điểm cố hữu của robot 3 hoặc 4 bánh khi vận hành trên địa hình nghiêng dốc (dễ lật, mất bám) và nêu bật tính ưu việt của cơ chế tự cân bằng 2 bánh đồng trục. Chương này xác định rõ mục tiêu đề tài, phương pháp thực hiện qua 7 bước nghiên cứu (từ thu thập tài liệu, mô hình hóa, thiết kế mạch đến thử nghiệm), đồng thời thẳng thắn chỉ ra các giới hạn về thời gian 16 tuần và ngân sách thực hiện.

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

Chương 2 trình bày cơ sở toán học và kỹ thuật của hệ thống:

  • Thiết lập hệ phương trình trạng thái và bảng 19 thông số động học của robot 2 bánh.
  • Trình bày nghiệm của phương trình Riccati đại số ứng dụng cho bài toán LQR liên tục và LQR rời rạc.
  • Phân tích nguyên lý cảm biến MPU-6050, thuật toán lọc bổ phụ thông tần và chi tiết ma trận Jacobian trong bộ lọc Kalman 2 trạng thái.
  • Thiết lập công thức tính quãng đường $S$ và số xung Encoder: $C = 2\pi R$, góc mở một xung $\alpha = \frac{2\pi}{n}$.
  • Xây dựng mô hình tương đương của động cơ điện một chiều kích từ vĩnh cửu, nguyên lý điều xung PWM và giao thức truyền thông nối tiếp 2 dây I2C (định địa chỉ 7-bit và 10-bit).

Chương 3: Thiết kế hệ thống

Chương 3 trình bày toàn bộ quá trình hiện thực hóa mô hình:

  • Lưu đồ giải thuật vận hành hệ thống từ khâu khởi tạo, lấy mẫu cảm biến, tính toán LQR đến xuất xung PWM.
  • Bản vẽ thiết kế kết cấu 3 tầng khung mica ($17 \times 6{,}5 \times 10\text{ cm}$) cùng sơ đồ bố trí lỗ lắp ghép động cơ GA25.
  • Lựa chọn thông số kỹ thuật chi tiết của nguồn pin 18650 (8.4V), mạch hạ áp LM2596 3A, mạch cầu H 2.5A Mini có opto cách ly và bo Arduino Mega 2560 R3.
  • Sơ đồ kết nối dây tín hiệu giữa vi điều khiển với cảm biến MPU-6050, Encoder và mạch điều khiển công suất.

Chương 4: Kết quả

Chương 4 tổng hợp các kết quả thực nghiệm đạt được:

  • Hoàn thiện mô hình vật lý robot 2 bánh tự cân bằng hoàn chỉnh theo đúng thiết kế cơ khí và sơ đồ điện.
  • Đánh giá hiệu quả làm mịn tín hiệu đo của bộ lọc Kalman (đồ thị so sánh trực quan giữa tín hiệu lọc và tín hiệu thô có nhiễu lớn).
  • Kiểm chứng khả năng tự giữ thăng bằng của robot bằng giải thuật LQR trên phần cứng thực tế.
  • Đề xuất 5 hướng nghiên cứu phát triển tiếp theo cho hệ thống.

Kết quả và đóng góp

Kết quả thực nghiệm

Mô hình thực nghiệm chế tạo thành công đã chứng minh tính khả thi của việc ứng dụng lý thuyết điều khiển hiện đại vào vi điều khiển thương mại giá rẻ:

  • Hiệu quả xử lý tín hiệu: Bộ lọc Kalman 2 trạng thái loại bỏ triệt để xung nhiễu dao động cơ học và nhiễu điện từ trên cảm biến MPU-6050 (đáp ứng tín hiệu đo góc nghiêng hiển thị dưới dạng đường cong liên tục, ổn định rõ rệt so với tín hiệu thô).
  • Khả năng giữ cân bằng: Robot tự duy trì trạng thái thăng bằng tại vị trí thẳng đứng quanh gốc tọa độ thông qua bộ thông số điều khiển $K = [35, 5, 400, 15, 27, 2.3]$.
  • Tối ưu hóa phản hồi động cơ: Việc nâng tần số PWM lên 31 kHz giúp động cơ GA25 đáp ứng mượt mà, loại bỏ độ trễ và tiếng ồn cơ học trong quá trình đảo chiều liên tục.

Giải pháp kỹ thuật đề xuất

  • Phân tách nguồn cấp: Tách riêng nguồn pin cho động cơ công suất và nguồn vi điều khiển qua IC hạ áp LM2596 nhằm triệt tiêu hiện tượng sụt áp và nhiễu dẫn gây treo vi điều khiển.
  • Cơ chế an toàn tự ngắt: Ngưỡng bảo vệ $|\psi| > 30^\circ$ giúp bảo vệ phần cứng khi robot vượt quá giới hạn ổn định góc nghiêng.

Đóng góp của đề tài

Theo công bố của nhóm tác giả, đề tài đã xây dựng thành công quy trình khép kín từ mô hình hóa toán học, giải phương trình Riccati, tối ưu thuật toán lọc Kalman trên CPU 8-bit đến thiết kế thi công phần cứng hoàn chỉnh cho một robot hai bánh tự cân bằng thực tế.


Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Bộ thông số điều khiển LQR chưa đạt độ hoàn thiện tối ưu tuyệt đối trên mọi bề mặt địa hình.
  • Kết cấu cơ khí mica chế tạo thủ công chưa đạt độ tinh xảo cao; năng lực lập trình và tối ưu hóa mã nguồn nhúng của sinh viên còn ở mức độ nhất định.

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

  1. Nghiên cứu áp dụng giải thuật điều khiển mờ kết hợp vi tích phân tỉ lệ (Fuzzy-PID) thay thế cho giải thuật LQR tuyến tính nhằm tăng khả năng thích nghi với tính phi tuyến mạnh của hệ thống.
  2. Tích hợp module truyền thông không dây Bluetooth kết nối với giao diện máy tính phục vụ giám sát và tinh chỉnh thông số thời gian thực.
  3. Tối ưu hóa trọng lượng kết cấu và mã nguồn giải thuật nhằm nâng cao hiệu suất sử dụng năng lượng của bộ pin.
  4. Lắp đặt thêm cảm biến hình ảnh (Camera) và hệ thống định vị GPS để phục vụ bài toán xử lý ảnh, lập bản đồ và tự hành trong không gian rộng.
  5. Phát triển mô hình làm nền tảng kỹ thuật để mở rộng quy mô thành phương tiện xe hai bánh tự cân bằng chở người.

Giá trị tham khảo

Tài liệu đồ án là nguồn tư liệu thực nghiệm hữu ích cho sinh viên và kỹ sư thuộc các chuyên ngành Kỹ thuật Điều khiển & Tự động hóa, Kỹ thuật Cơ điện tử, Robot và Hệ thống nhúng. Báo cáo cung cấp giá trị tham khảo chuyên sâu ở các nội dung:

  • Phương pháp giải thuật toán hồi tiếp trạng thái LQR và phương trình Riccati đại số cho hệ con lắc ngược.
  • Mã nguồn C++ chi tiết triển khai bộ lọc Kalman 2 trạng thái tối ưu hóa phép tính ma trận cho dòng vi điều khiển 8-bit AVR.
  • Kỹ thuật thiết kế mạch phần cứng thực tế, giải pháp chống nhiễu nguồn và kỹ thuật nâng tần số PWM lên 31 kHz trên Arduino Mega 2560.

Câu hỏi thường gặp

1. Tại sao nhóm tác giả lại cấu hình tần số PWM điều khiển động cơ lên mức 31 kHz?

Trong mã nguồn nhúng (TCCR2B = TCCR2B & B11111000 | B00000001;), tần số phát xung PWM trên các chân 9 và 10 được thay đổi lên 31 kHz (vượt ngưỡng nghe của tai người) nhằm giúp động cơ DC phản hồi nhanh hơn, vận hành êm ái và loại bỏ hoàn toàn tiếng rít tần số âm thanh khó chịu thường gặp ở tần số PWM mặc định.

2. Bộ thông số điều khiển LQR thực tế được nạp vào vi điều khiển gồm những giá trị nào?

Theo mã nguồn tại phụ lục đồ án, vector hệ số hồi tiếp trạng thái được thiết lập gồm 6 tham số: $k_1 = 35$, $k_2 = 5$, $k_3 = 400$, $k_4 = 15$, $k_5 = 27$, và $k_6 = 2.3$.

3. Cơ chế ngắt an toàn của robot khi xảy ra sự cố ngã được thiết lập như thế nào?

Hệ thống sử dụng điều kiện kiểm tra biến góc nghiêng if (abs(mpudata) > 30). Khi góc nghiêng của robot vượt quá $\pm 30^\circ$, biến cờ falldown chuyển sang trạng thái true, kích hoạt hàm stopandreset() ngắt xung điều khiển đến động cơ và đặt lại toàn bộ dữ liệu góc cũng như biến đếm Encoder về 0.

4. Nguồn điện của robot được thiết kế và chống nhiễu như thế nào?

Hệ thống sử dụng nguồn chính gồm 2 pin Lithium 18650 (4.2V - 3800mAh) mắc nối tiếp thành 8.4V cấp trực tiếp cho động cơ. Đồng thời, nguồn cấp cho vi điều khiển Arduino và cảm biến MPU-6050 được tách rời qua mạch giảm áp LM2596 (nguồn ra 5V, dòng tối đa 3A) kết hợp cách ly quang Opto trên mạch cầu H để triệt tiêu hiện tượng sụt áp và xung nhiễu từ động cơ.


Kết luận

Đồ án "Robot hai bánh tự cân bằng sử dụng giải thuật LQR" của nhóm sinh viên Nguyễn Hưng và Hồ Lê Long Thiên đã hoàn thành trọn vẹn mục tiêu nghiên cứu và hiện thực hóa mô hình cơ điện tử tự cân bằng. Nghiên cứu đã làm rõ cơ sở toán học của bộ điều khiển tối ưu LQR, phương trình Riccati đại số kết hợp cùng thuật toán lọc Kalman xử lý tín hiệu cảm biến góc trên nền tảng vi điều khiển ATmega2560. Kết quả thực nghiệm khẳng định tính khả thi của mô hình và đặt nền tảng kỹ thuật quan trọng cho các hướng phát triển nâng cao như điều khiển mờ (Fuzzy-PID), tích hợp thị giác máy tính và xe tự cân bằng chở người trong tương lai.