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

Khóa luận tốt nghiệp kỹ sư ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa với đề tài "Nghiên cứu, thiết kế và chế tạo xe hai bánh tự cân bằng bám mục tiêu" (Research, Design and Construct Two-Wheel Balancing Robot for Object Tracking) được thực hiện bởi sinh viên Nguyễn Hoàng Hải (MSSV: 13151026) và Nguyễn Đăng Khoa (MSSV: 13151043), dưới sự hướng dẫn của TS. Nguyễn Văn Thái tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khóa 2013 – 2017, bảo vệ tháng 7/2017).

Về mặt lý thuyết và khoa học, xe hai bánh tự cân bằng là một hệ thống con lắc ngược (inverted pendulum / inverted pendubot) điển hình với đặc tính động lực học phi tuyến cao, thiếu dẫn động (underactuated) và không tự ổn định. Đây là mô hình chuẩn để các nhà nghiên cứu kiểm chứng hiệu quả của các giải thuật điều khiển tự động hiện đại. Về mặt thực tiễn, robot hai bánh tự cân bằng sở hữu ưu điểm vượt trội về khả năng quay tại chỗ nhờ điều khiển độc lập vận tốc hai bánh ngược chiều, chiếm ít không gian cơ sở và di chuyển linh hoạt trong môi trường chật hẹp. Các tiềm năng ứng dụng thực tế của mô hình này bao gồm phương tiện di chuyển cá nhân, robot tuần tra nhà kho (kiểm tra trạng thái hàng hóa và cập nhật dữ liệu máy chủ qua kết nối không dây), hoặc robot cứu hỏa tiếp cận các khu vực khói đặc để đánh giá nguy cơ, đo nhiệt độ và truyền hình ảnh về trung tâm chỉ huy trước khi con người tiến vào. Tại thời điểm nghiên cứu (năm 2017), các sản phẩm xe hai bánh tự cân bằng thương mại hóa tại Việt Nam hầu như chưa phổ biến, chủ yếu là các mô hình thử nghiệm quy mô nhỏ tại các trường đại học.

Để giải quyết bài toán nâng cao khả năng tương tác với môi trường bên ngoài thay vì chỉ tự cân bằng đơn thuần, nhóm tác giả xác định mục tiêu và nhiệm vụ nghiên cứu gồm 7 nội dung:

  1. Nghiên cứu lý thuyết mô hình con lắc ngược và các nguyên lý tính toán cơ bản để chế tạo xe hai bánh tự cân bằng.
  2. Lựa chọn và sử dụng các linh kiện phần cứng tương thích gồm cảm biến góc nghiêng MPU6050, vi điều khiển Arduino Mega 2560, động cơ DC, mạch công suất, nguồn nuôi và truyền thông không dây.
  3. Nghiên cứu và ứng dụng bộ lọc Kalman (Kalman filter) nhằm xử lý tín hiệu và ước lượng dữ liệu góc nghiêng từ cảm biến quán tính MPU6050.
  4. Tự thiết kế và gia công bảng mạch in (PCB) tích hợp mạch cầu H L298 và mạch giảm áp nguồn LM2596.
  5. Thiết kế và gia công khung cơ khí chịu lực vững chắc cho robot trong quá trình vận hành.
  6. Nghiên cứu, xây dựng và ứng dụng bộ điều khiển LQR (Linear Quadratic Regulator) kết hợp với các khâu điều khiển PID.
  7. Nghiên cứu thư viện xử lý ảnh OpenCV trên hệ điều hành Android nhằm nhận diện và bám theo mục tiêu là quả bóng tennis màu xanh lá cây với cự ly mong muốn, mục tiêu khống chế sai số không vượt quá 10%.

Đối tượng nghiên cứu của đồ án là hệ thống điều khiển chuyển động của robot hai bánh tự cân bằng và giải thuật thị giác máy tính nhận diện mục tiêu. Phạm vi nghiên cứu về không gian là bề mặt địa hình bằng phẳng (even terrain); phạm vi công nghệ giới hạn ở cấu hình vi điều khiển Arduino Mega 2560 kết hợp điện thoại thông minh chạy hệ điều hành Android qua sóng Bluetooth; phạm vi thời gian thực hiện đề tài gói gọn trong 01 học kỳ.

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

Khóa luận kết hợp giữa phương pháp mô hình hóa toán học lý thuyết và phương pháp chế tạo - thực nghiệm kỹ thuật, dựa trên các nền tảng lý thuyết:

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

  • Động lực học con lắc ngược: Hệ thống được mô hình hóa dựa trên phương pháp cơ học giải tích Euler-Lagrange. Tác giả phân tích động năng tịnh tiến ($T_1$), động năng quay ($T_2$ bao gồm quán tính bánh xe và quán tính phần ứng động cơ DC), thế năng trọng trường ($U$) và thế năng tổn hao do ma sát. Phương trình trạng thái mô tả chuyển động vi sai của góc nghiêng thân xe ($\psi$), góc quay bánh xe ($\theta$) và góc xoay hướng ($\phi$) được thiết lập cùng với mô hình điện - cơ của động cơ DC dưới tác động của điện áp điều khiển PWM. Hệ thống phi tuyến được tuyến tính hóa quanh điểm cân bằng làm việc $x_0 = [0, 0, 0, 0, 0, 0]^T, u_0 = [0, 0]^T$ để đưa về dạng không gian trạng thái liên tục: $$\dot{x}(t) = Ax(t) + Bu(t)$$
  • Lý thuyết điều khiển tối ưu LQR (Linear Quadratic Regulator): Hệ thống tối ưu hóa hàm mục tiêu chi phí bậc hai liên tục: $$J = \frac{1}{2} \int_{0}^{\infty} [x^T(t) Q x(t) + u^T(t) R u(t)] dt$$ Luật điều khiển phản hồi trạng thái toàn phần có dạng $u(t) = -Kx(t)$, trong đó ma trận độ lợi $K = R^{-1} B^T P$, với $P$ là nghiệm của phương trình đại số Riccati liên tục: $$A^T P + PA - P B R^{-1} B^T P + Q = 0$$ Tác giả cũng trình bày dạng LQR rời rạc (Discrete-Time LQR) để áp dụng cho hệ thống máy tính nhúng với luật điều khiển $u_k = -K_k x_k$.
  • Bộ lọc Kalman rời rạc (Discrete Kalman Filter): Được sử dụng để xử lý bài toán dung hợp dữ liệu từ cảm biến gia tốc (Piezoelectric Accelerometer) và con quay hồi chuyển (Piezoelectric Gyroscope) trên module MPU6050. Quá trình tính toán gồm 2 giai đoạn lặp liên tục:
    1. Giai đoạn dự đoán (Predict): Ước lượng trạng thái tiên nghiệm $x_k^-$ và ma trận hiệp phương sai sai số $P_k^-$ từ trạng thái quá khứ thông qua ma trận chuyển trạng thái $A$ và ma trận nhiễu hệ thống $Q_k$.
    2. Giai đoạn hiệu chỉnh (Correct/Update): Tính độ lợi Kalman $K_k$, cập nhật trạng thái hậu nghiệm $x_k$ từ giá trị đo đạc $z_k$, và cập nhật ma trận hiệp phương sai $P_k$.
  • Xử lý ảnh kỹ thuật số và thị giác máy tính:
    • Không gian màu: Phân tích sự khác biệt giữa mô hình màu RGB (24-bit, 3 kênh màu chịu ảnh hưởng mạnh bởi cường độ sáng) và không gian màu HSV (Hue - Sắc độ, Saturation - Độ bão hòa, Value - Giá trị độ sáng). Công thức toán học chuyển đổi từ tọa độ màu RGB sang HSV được áp dụng để lọc màu ổn định trước sự thay đổi ánh sáng môi trường.
    • Phân đoạn màu: Hàm ngưỡng màu Core.inRange() trong OpenCV được dùng để tạo mặt nạ nhị phân tách quả bóng khỏi nền.
    • Xử lý hình thái học (Morphological Transformations): Sử dụng kernel $5\times 5$ cho các phép Co (Erosion), Giãn (Dilation), Mở (Opening - loại bỏ nhiễu trắng) và Đóng (Closing - lấp đầy lỗ hổng bên trong đối tượng).
    • Thuật toán Canny Edge Detection: Gồm làm mịn bằng lọc Gaussian, tính độ lớn và hướng gradient, triệt tiêu không cực đại (Non-Maximum Suppression - NMS) theo 4 hướng góc ($0^\circ, 45^\circ, 90^\circ, 135^\circ$), và phân ngưỡng trễ (Thresholding with Hysteresis).
    • Phát hiện hình tròn: Dựa trên mã chuỗi (Chain Code), kết nối các cung tròn lớn (major arcs) và xác định tọa độ tâm hình tròn thông qua tính chất đường trung trực của dây cung.
    • Tính toán khoảng cách quang học: Dựa trên mô hình hệ thấu kính hội tụ (convergent lens), thiết lập quan hệ tỷ lệ giữa kích thước thật của quả bóng tennis, tiêu cự thấu kính và bán kính tính bằng pixel trên cảm biến hình ảnh.

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp thực nghiệm: Chế tạo phần cứng cơ khí, vẽ sơ đồ mạch in và thi công bo mạch tích hợp; lập trình firmware cho Arduino Mega 2560 bằng ngôn ngữ C/C++ trên nền Arduino IDE; phát triển phần mềm ứng dụng di động trên Android Studio sử dụng ngôn ngữ Java tích hợp thư viện OpenCV.
  • Phương pháp mô phỏng: Sử dụng phần mềm Matlab/Simulink và hàm lqr() để giải phương trình Riccati, tìm ma trận hệ số khuếch đại $K$ và kiểm tra đáp ứng động học trước khi nạp thông số vào vi điều khiển.
  • Nguồn dữ liệu: Dữ liệu góc nghiêng và vận tốc góc thời gian thực từ cảm biến MPU6050; xung phản hồi vị trí và vận tốc bánh xe từ encoder quang tích hợp trên động cơ Nisca NF5475E; dữ liệu tọa độ tâm và bán kính đối tượng từ luồng khung hình camera điện thoại thông minh Android.

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc điều khiển phân tán gồm hai khối xử lý chính: khối thị giác xử lý dữ liệu cấp cao (điện thoại thông minh Android) và khối điều khiển chuyển động thời gian thực cấp thấp (Arduino Mega 2560).

Khối chức năng Phần cứng / Công nghệ Vai trò kỹ thuật trong hệ thống
Xử lý thị giác Điện thoại thông minh chạy HĐH Android, Android Studio, Java, OpenCV Thu nhận hình ảnh qua camera, chuyển đổi không gian màu HSV, lọc biên, phát hiện tọa độ và bán kính quả bóng tennis, tính cự ly và truyền lệnh điều khiển.
Xử lý trung tâm Vi điều khiển Arduino Mega 2560 Tiếp nhận dữ liệu Bluetooth, thực thi giải thuật lọc Kalman cho cảm biến quán tính, tính toán thuật toán điều khiển LQR và PID, phát xung PWM điều khiển động cơ.
Cảm biến chuyển động Module GY-521 (tích hợp MPU6050) Đo gia tốc 3 trục và vận tốc góc 3 trục, giao tiếp với Arduino qua chuẩn truyền thông I2C (chân SDA, SCL).
Truyền thông Module Bluetooth HC-05 Cầu nối không dây truyền nhận dữ liệu nối tiếp UART giữa ứng dụng Android và Arduino Mega 2560.
Mạch công suất IC Driver cầu H L298 tích hợp trên PCB tự thiết kế Điều khiển đảo chiều và tốc độ hai động cơ DC độc lập, thông số chịu tải tối đa 50V - 2A.
Khối nguồn nuôi IC giảm áp xung LM2596 (LM2596-ADJ) tích hợp trên PCB Hạ áp từ khối pin nguồn xuống mức điện áp ổn định (dải điều chỉnh 1.23V – 27V) cấp cho vi điều khiển và cảm biến.
Động cơ truyền động Động cơ DC Nisca NF5475E Động cơ DC giảm tốc tích hợp optical encoder, cung cấp lực kéo cho hai bánh và phản hồi tín hiệu vị trí/vận tốc về vi điều khiển.

Cơ chế kết hợp thuật toán điều khiển

Nhóm tác giả lựa chọn giải pháp dùng điện thoại thông minh thay vì máy tính nhúng Raspberry Pi do tính tiện dụng, tích hợp sẵn camera chất lượng cao, màn hình cảm ứng, pin và bộ xử lý mạnh mẽ. Điện thoại tính toán khoảng cách thực tế giữa robot và bóng, sau đó gửi chuỗi ký tự điều khiển qua Bluetooth HC-05 về Arduino Mega 2560.

Để robot vừa giữ được trạng thái cân bằng thẳng đứng vừa bám đuổi theo quả bóng và duy trì cự ly ổn định:

  1. Bộ điều khiển LQR nhận tín hiệu hồi tiếp trạng thái từ cảm biến MPU6050 (đã qua lọc Kalman) và encoder để duy trì góc nghiêng $\psi \approx 0$ và giữ cân bằng thân xe.
  2. Các vòng lặp PID bổ trợ tiếp nhận sai số khoảng cách (do Android tính toán) và sai số góc lệch tâm của quả bóng trên khung hình để can thiệp vào tín hiệu đặt vị trí và tốc độ của LQR, từ đó robot tự động tiến/lùi để duy trì khoảng cách định trước và quay trái/phải để giữ bóng ở giữa tầm nhìn camera.

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

Chương 1: Tổng quan (General)

Chương mở đầu trình bày tính cấp thiết của đề tài nghiên cứu xe hai bánh tự cân bằng dựa trên nguyên lý con lắc ngược. Tác giả phân tích các ứng dụng thực tế tiềm năng của robot tự cân bằng trong công nghiệp và đời sống (robot tuần tra kho hàng, xe trinh sát cứu hỏa, phương tiện cá nhân). Chương này xác định rõ thực trạng nghiên cứu trong nước, đề ra 7 mục tiêu cụ thể, xác định đối tượng, phạm vi nghiên cứu (mặt phẳng, thời gian 1 học kỳ) và phân chia phương pháp tiếp cận thành phương pháp lý thuyết và phương pháp chế tạo thực nghiệm.

Chương 2: Cơ sở lý thuyết (Theoretical Basis)

Chương 2 cung cấp toàn bộ nền tảng toán học và thuật toán của hệ thống:

  • Trình bày nguyên lý hoạt động của xe hai bánh tự cân bằng, so sánh với mô hình con lắc ngược trên xe trượt (Pole and Cart theory), phân tích trạng thái cân bằng, di chuyển tiến/lùi và trạng thái lên/xuống dốc.
  • Xây dựng mô hình động học và phương trình trạng thái phi tuyến bằng phương pháp Euler-Lagrange, phân tích ảnh hưởng của mô men quán tính, tỷ số truyền hộp số $N$, hệ số sức điện động $K_b$, hệ số mô men xoắn $K_t$.
  • Tuyến tính hóa hệ thống quanh điểm làm việc, thiết lập hệ phương trình trạng thái ma trận vi phân $\dot{x} = Ax + Bu$.
  • Trình bày toán học bộ điều khiển LQR liên tục và rời rạc; cấu trúc các ma trận trọng số $Q$ ($Q_1 \dots Q_6$) và $R$ ($R_1, R_2$) tương ứng với các biến trạng thái ($\theta, \dot{\theta}, \psi, \dot{\psi}, \phi, \dot{\phi}$).
  • Phân tích toán học bộ lọc Kalman rời rạc trên phân phối xác suất Gaussian, xây dựng thuật toán lọc Kalman 1 chiều trên ngôn ngữ lập trình C để loại bỏ độ trôi (drift/bias) của con quay hồi chuyển và nhiễu động của gia tốc kế trên cảm biến MPU6050.
  • Giới thiệu kiến trúc hệ điều hành Android, thành phần ứng dụng (Activity, Service, Intent) và thư viện mã nguồn mở OpenCV.
  • Phân tích chi tiết thuật toán xử lý ảnh: chuyển đổi từ RGB sang HSV; giải thuật Canny phát hiện biên qua 4 bước (làm mịn, tính độ lớn và hướng gradient, Non-Maximum Suppression, Thresholding with Hysteresis); giải thuật phát hiện hình tròn dựa trên Chain Code và tính chất trung trực dây cung; các biến đổi hình thái học (Erosion, Dilation, Opening, Closing); và công thức tính khoảng cách dựa trên hệ thấu kính hội tụ.

Chương 3: Thiết kế hệ thống (System Design)

Chương này tập trung vào thiết kế kỹ thuật phần cứng và cơ khí:

  • Xây dựng sơ đồ khối tổng thể của hệ thống robot hai bánh tự cân bằng.
  • Trình bày thông số kỹ thuật và sơ đồ đấu nối chân của bo mạch Arduino Mega 2560 và cảm biến MPU6050 (GY-521).
  • Tính toán và lựa chọn động cơ DC Nisca NF5475E dựa trên bảng so sánh thông số kỹ thuật các dòng động cơ khả dụng.
  • Thiết kế sơ đồ nguyên lý mạch công suất cầu H dùng IC L298 chịu tải 50V - 2A, bảo đảm cách ly và chống dòng ngược.
  • Thiết kế mạch nguồn hạ áp switching sử dụng IC LM2596-ADJ, tính toán giá trị cuộn cảm và tụ điện theo biểu đồ lựa chọn cuộn cảm của nhà sản xuất.
  • Bố trí và kết nối module truyền thông không dây Bluetooth HC-05.
  • Thiết kế kết cấu khung xe chịu lực, đảm bảo trọng tâm hệ thống phân bố tối ưu theo chiều cao $H$, bề rộng $W$, đường kính bánh xe $R$ và cự ly trục bánh $L$.

Chương 4: Giải thuật (Algorithms)

Chương 4 mô tả toàn bộ lưu đồ thuật toán điều khiển và phần mềm:

  • Thiết lập lưu đồ thuật toán tổng thể của toàn bộ hệ thống từ lúc khởi động, cân chỉnh cảm biến đến vòng lặp điều khiển chính.
  • Trình bày lưu đồ xử lý ảnh trên Android: chụp khung hình -> chuyển đổi không gian màu RGB sang HSV -> phân ngưỡng bằng Core.inRange() -> áp dụng biến đổi hình thái học (Opening/Closing) -> lọc biên Canny -> định vị tâm và bán kính quả bóng tennis -> tính toán khoảng cách thực tế -> đóng gói dữ liệu và truyền qua cổng Bluetooth.
  • Xây dựng lưu đồ truyền nhận dữ liệu giữa điện thoại Android và bo mạch Arduino Mega 2560 qua giao thức UART/Bluetooth.
  • Thiết lập sơ đồ cấu trúc kết hợp giữa thuật toán LQR giữ cân bằng và thuật toán PID bám mục tiêu.

Chương 5: Kết quả (Result)

Chương 5 công bố các kết quả nghiên cứu và đo đạc thực nghiệm:

  • Trình bày hình ảnh mô hình robot thực tế sau khi chế tạo, lắp ráp hoàn thiện cơ khí và mạch điện tử.
  • Đưa ra kết quả mô phỏng hệ thống robot sử dụng bộ điều khiển LQR trên môi trường Matlab/Simulink, chứng minh tính ổn định của mô hình con lắc ngược quanh điểm cân bằng.
  • Công bố kết quả thực nghiệm ở chế độ điều khiển thủ công (Manual mode).
  • Công bố kết quả thực nghiệm ở chế độ tự động bám mục tiêu (Tracking mode) đối với quả bóng tennis màu xanh lá cây, đánh giá độ ổn định và đáp ứng bám cự ly của robot trong môi trường thực.

Chương 6: Kết luận và hướng phát triển (Conclusion and Developing Orientation)

Chương cuối cùng tổng kết các kết quả kỹ thuật đã đạt được so với mục tiêu ban đầu, phân tích các điểm hạn chế về mặt phần cứng và thuật toán, đồng thời đưa ra các định hướng phát triển nhằm nâng cấp hệ thống trong tương lai.

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

Kết quả chính kèm số liệu thực tế

  • Chế tạo thành công mô hình phần cứng robot hai bánh tự cân bằng hoàn chỉnh với khung xe cơ khí vững chắc, board mạch PCB tự thiết kế tích hợp driver cầu H L298 (50V - 2A) và mạch nguồn hạ áp xung LM2596 (dải điều chỉnh 1.23V - 27V).
  • Ứng dụng thành công vi điều khiển Arduino Mega 2560 kết nối cảm biến MPU6050 qua chuẩn I2C, giải thuật lọc Kalman rời rạc viết bằng ngôn ngữ C triệt tiêu hiệu quả nhiễu rung động và độ trôi bias của cảm biến quán tính.
  • Xây dựng mô hình động lực học hệ thống xe hai bánh tự cân bằng theo phương pháp Euler-Lagrange, tính toán nghiệm phương trình Riccati và mô phỏng thành công bộ điều khiển LQR ổn định trên Matlab/Simulink.
  • Phát triển ứng dụng thị giác máy tính trên hệ điều hành Android bằng Java và thư viện OpenCV; xử lý ổn định việc chuyển đổi không gian màu HSV, tách biên Canny và phát hiện hình tròn để nhận diện quả bóng tennis màu xanh lá.
  • Robot vận hành thành công ở hai chế độ: Chế độ điều khiển thủ công (Manual mode) và Chế độ bám mục tiêu (Tracking mode). Trong chế độ bám mục tiêu, robot vừa duy trì được trạng thái cân bằng vừa bám đuổi theo bóng, đáp ứng chỉ tiêu sai số bám cự ly không vượt quá 10% như mục tiêu thiết kế ban đầu đề ra.

Giải pháp và kiến nghị đề xuất của tác giả

  • Đề xuất thay thế máy tính nhúng chuyên dụng (như Raspberry Pi) bằng điện thoại thông minh Android thương mại để tận dụng vi xử lý tốc độ cao, camera sẵn có, màn hình cấu hình trực quan và nguồn pin độc lập, giúp giảm khối lượng phần cứng đặt lên khung robot.
  • Đề xuất giải pháp điều khiển phân tầng: giao tầng xử lý ảnh nặng nề cho vi xử lý điện thoại thông minh và giao tầng điều khiển đáp ứng nhanh (tính toán LQR và xuất xung PWM chu kỳ ngắn) cho vi điều khiển Arduino Mega 2560.
  • Kết hợp song song các khâu PID ngoại vi vào bộ điều khiển LQR nội tại để giải quyết đồng thời hai nhiệm vụ mâu thuẫn: vừa giữ góc nghiêng thân xe thăng bằng quanh điểm 0, vừa điều chỉnh vận tốc bánh xe để di chuyển bám mục tiêu.

Đóng góp so với các nghiên cứu trước

  • Tác giả đã cải tiến từ hệ thống xe hai bánh tự cân bằng truyền thống vốn chỉ sử dụng giải thuật PID cổ điển sang áp dụng thuật toán điều khiển tối ưu LQR dựa trên không gian trạng thái, có kiểm chứng mô phỏng toán học trên Matlab.
  • Tích hợp thêm chức năng thị giác máy tính di động (theo dõi và bám quả bóng tennis) trên nền tảng Android, mở rộng khả năng tương tác môi trường so với các mô hình xe tự cân bằng tự hành đơn thuần trước đó tại Việt Nam.

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

Hạn chế được ghi nhận trong văn bản

  • Đề tài được hoàn thành trong giới hạn thời gian 01 học kỳ, nhóm sinh viên còn thiếu kinh nghiệm thực tế trong việc chế tạo và tích hợp hệ thống cơ điện tử phức tạp.
  • Các linh kiện phần cứng chưa đạt được sự đồng bộ hoàn hảo (các module ghép nối còn mang tính chất thử nghiệm).
  • Về thuật toán thị giác: Robot sẽ mất dấu mục tiêu nếu quả bóng tennis di chuyển vượt ra ngoài tầm nhìn (Field of View) của camera điện thoại thông minh hoặc khi quả bóng di chuyển với tốc độ quá nhanh.
  • Về phạm vi vận hành: Khả năng tự cân bằng và bám mục tiêu của robot mới chỉ được kiểm chứng trên bề mặt địa hình bằng phẳng (even terrain), chưa thích nghi được với địa hình gồ ghề hay mặt đường nghiêng dốc trong thực tế.

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

  • Nâng cấp và đồng bộ hóa linh kiện phần cứng, tối ưu hóa thiết kế khung cơ khí để giảm rung chấn tác động lên cảm biến MPU6050.
  • Cải tiến thuật toán xử lý ảnh trên Android nhằm gia tăng tốc độ xử lý khung hình (FPS), giúp robot có thể bám bắt các đối tượng chuyển động với vận tốc cao hơn.
  • Mở rộng phạm vi quan sát của camera (nghiên cứu gắn thêm cơ cấu chấp hành xoay Pan-Tilt cho camera hoặc sử dụng ống kính góc rộng) nhằm hạn chế việc mất dấu đối tượng khi bóng di chuyển lệch khỏi tầm nhìn thẳng.
  • Phát triển các giải thuật điều khiển thích nghi để robot có thể tự cân bằng và di chuyển ổn định trên các địa hình dốc và phức tạp hơn.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo kỹ thuật hữu ích đối với sinh viên, giảng viên và kỹ sư thuộc các chuyên ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Cơ điện tử, Kỹ thuật Robot và Hệ thống Nhúng.

Các nội dung có giá trị tham khảo chuyên sâu bao gồm:

  • Phương pháp xây dựng phương trình động lực học: Các bước thiết lập phương trình Euler-Lagrange cho hệ con lắc ngược hai bánh và kỹ thuật tuyến tính hóa hệ phi tuyến đưa về mô hình không gian trạng thái $\dot{x} = Ax + Bu$.
  • Thiết kế bộ điều khiển LQR và mô phỏng: Cách thiết lập ma trận trọng số $Q, R$, giải phương trình Riccati bằng hàm lqr() trong Matlab và chuyển đổi thông số sang luật điều khiển thực tế.
  • Thuật toán lọc Kalman rời rạc trên vi điều khiển: Bản hiện thực chi tiết của giải thuật lọc Kalman 1 chiều bằng mã nguồn C/C++, giải quyết triệt để bài toán dung hợp cảm biến gia tốc và gyro của MPU6050 trên dòng vi điều khiển 8-bit/16-bit như Arduino.
  • Xử lý ảnh nhúng trên Android Studio với OpenCV: Quy trình hoàn chỉnh từ thu nhận ảnh, chuyển đổi HSV, phân ngưỡng inRange, biến đổi hình thái học đến phát hiện hình tròn và ước lượng cự ly thấu kính bằng ngôn ngữ Java.
  • Thiết kế mạch in công suất: Sơ đồ nguyên lý và kinh nghiệm kết hợp mạch cầu H L298 và mạch nguồn xung LM2596-ADJ trên cùng một bo mạch PCB.

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

1. Tại sao nhóm tác giả lại lựa chọn smartphone Android thay vì máy tính nhúng Raspberry Pi để thực hiện chức năng xử lý ảnh?

Trong phần tóm tắt và chương tổng quan, nhóm tác giả nêu rõ lý do lựa chọn điện thoại thông minh Android là vì tính tiện dụng, gọn nhẹ và linh hoạt cao hơn so với việc lắp đặt một bo mạch máy tính nhúng như Raspberry Pi kèm theo các module rời. Điện thoại thông minh tích hợp sẵn camera chất lượng cao, bộ xử lý đa nhân mạnh mẽ, màn hình cảm ứng để theo dõi thông số trực tiếp và nguồn pin độc lập, giúp giảm thiểu đáng kể trọng lượng và sự cồng kềnh trên khung xe tự cân bằng.

2. Nguyên lý điều khiển kết hợp giữa LQR và PID trên robot được thực hiện như thế nào?

Bộ điều khiển LQR đóng vai trò là bộ điều khiển cân bằng cốt lõi ở tầng trong, nhận phản hồi trạng thái từ cảm biến MPU6050 (đã qua lọc Kalman) và encoder động cơ để tính toán điện áp cấp cho động cơ nhằm duy trì góc nghiêng thân xe $\psi \approx 0$. Tuy nhiên, để robot di chuyển bám theo mục tiêu và duy trì cự ly mong muốn, nhóm tác giả kết hợp thêm các khâu điều khiển PID ở tầng ngoài. Các bộ điều khiển PID này tiếp nhận sai số cự ly và độ lệch góc của quả bóng (do smartphone truyền về) để điều chỉnh bù vào tín hiệu đặt của hệ LQR, giúp robot vừa giữ được thăng bằng vừa bám đuổi theo bóng.

3. Cảm biến quán tính MPU6050 gặp phải vấn đề gì và bộ lọc Kalman giải quyết bài toán đó ra sao?

Cảm biến MPU6050 bao gồm gia tốc kế (accelerometer) và con quay hồi chuyển (gyroscope). Gia tốc kế đo góc nghiêng tốt ở trạng thái tĩnh nhưng rất nhạy cảm với rung động cơ học và gia tốc tịnh tiến khi robot chuyển động; ngược lại, con quay hồi chuyển đo vận tốc góc rất nhạy trong thời gian thực nhưng khi tích phân lấy góc nghiêng sẽ bị tích lũy sai số trôi (drift/bias) theo thời gian. Bộ lọc Kalman rời rạc giải quyết bài toán này bằng cách kết hợp hai nguồn đo: dùng mô hình dự đoán từ dữ liệu gyro để ước lượng góc tức thời và sử dụng giá trị đo của gia tốc kế để cập nhật, hiệu chỉnh độ trôi, tạo ra tín hiệu góc nghiêng ổn định và chính xác cho hệ thống điều khiển.

4. Quy trình xử lý ảnh trên Android để phát hiện quả bóng tennis và tính khoảng cách gồm các bước nào?

Quy trình xử lý ảnh trong ứng dụng Android sử dụng thư viện OpenCV bao gồm các bước tuần tự:

  1. Đọc luồng khung hình định dạng RGB từ camera điện thoại.
  2. Chuyển đổi khung hình sang không gian màu HSV.
  3. Dùng hàm Core.inRange() để phân đoạn và trích xuất dải màu vàng-xanh đặc trưng của quả bóng tennis.
  4. Áp dụng các phép biến đổi hình thái học (Morphological Transformations) với kernel $5\times 5$ gồm Erosion, Dilation, Opening và Closing để khử nhiễu trắng và lấp đầy vùng ảnh mục tiêu.
  5. Tách biên bằng thuật toán Canny (Canny Edge Detection).
  6. Phát hiện cung tròn và xác định tọa độ tâm cũng như bán kính hình tròn dựa trên Chain Code và tính chất trung trực dây cung.
  7. Áp dụng mô hình quang học thấu kính hội tụ (convergent lens system) để tính toán khoảng cách thực tế giữa robot và quả bóng dựa trên bán kính pixel tính được.

5. Những giới hạn hoạt động lớn nhất của mô hình robot này là gì?

Căn cứ theo nội dung công bố trong đồ án, robot có ba hạn chế hoạt động chính: thứ nhất, robot chỉ vận hành và giữ cân bằng ổn định trên bề mặt địa hình bằng phẳng (even terrain); thứ hai, hệ thống bám mục tiêu sẽ bị mất dấu nếu quả bóng tennis di chuyển ra khỏi vùng quan sát của camera hoặc di chuyển với tốc độ quá nhanh vượt quá khả năng xử lý khung hình; thứ ba, thời gian nghiên cứu giới hạn trong 01 học kỳ khiến các linh kiện phần cứng chưa đạt được sự đồng bộ tối ưu tuyệt đối.

Kết luận

Đồ án tốt nghiệp của sinh viên Nguyễn Hoàng Hải và Nguyễn Đăng Khoa đã thiết kế, chế tạo và thử nghiệm thành công mô hình xe hai bánh tự cân bằng bám mục tiêu ứng dụng xử lý ảnh trên hệ điều hành Android. Nghiên cứu đã kết hợp chặt chẽ giữa lý thuyết điều khiển hiện đại (giải thuật tối ưu LQR, bộ lọc Kalman rời rạc, các vòng lặp PID) và công nghệ thị giác máy tính di động (thư viện OpenCV trên nền Java/Android) để điều khiển phần cứng dựa trên vi điều khiển Arduino Mega 2560 và động cơ DC Nisca NF5475E. Kết quả thực nghiệm chứng minh robot vận hành ổn định trên địa hình bằng phẳng ở cả chế độ điều khiển thủ công và chế độ tự động bám theo quả bóng tennis với sai số cự ly được khống chế dưới 10%. Đây là tài liệu học thuật có giá trị tham khảo thiết thực về phương pháp xây dựng mô hình toán học, thiết kế mạch công suất nhúng và tích hợp thị giác máy tính cho các hệ thống robot tự hành quy mô nhỏ.