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

Trong bối cảnh của cuộc Cách mạng công nghiệp 4.0, tự động hóa và trí tuệ nhân tạo (AI) đang được ứng dụng sâu rộng vào nhiều ngành nghề nhằm tối ưu hóa năng suất và giảm thiểu sức lao động của con người. Tuy nhiên, tại Việt Nam, mức độ cơ giới hóa và tự động hóa trong lĩnh vực nông nghiệp vẫn còn nhiều hạn chế, phần lớn các hoạt động canh tác và thu hoạch vẫn phụ thuộc chủ yếu vào lao động thủ công. Việc nghiên cứu ứng dụng các thuật toán máy học (Machine Learning), học sâu (Deep Learning) kết hợp với hệ thống cơ điện tử để tự động nhận diện và thu hoạch nông sản đạt chuẩn là một hướng đi mới mẻ, đòi hỏi giải quyết đồng thời bài toán thị giác máy tính và bài toán cơ khí chính xác nhằm tránh làm dập nát, hư hỏng nông sản.

Trên thế giới, một số hệ thống robot thu hoạch nông sản đã được thử nghiệm như robot thu hoạch ớt chuông Sweeper (dự án hợp tác của 4 quốc gia: Hà Lan, Bỉ, Thụy Điển, Israel), robot thu hoạch dâu tây Rubion (Bỉ), hay robot thu hoạch cà chua của hãng Squse (Kyoto, Nhật Bản). Tại Việt Nam, các mô hình thi đấu như Open-RoboHUS 2019 mới chỉ dừng lại ở mức mô hình điều khiển thủ công hoặc bán tự động.

Khóa luận tốt nghiệp ngành Kỹ sư Kỹ thuật Máy tính của nhóm tác giả Nguyễn Văn Huỳnh Ý và Bùi Hoàng Kha (Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. Hồ Chí Minh, thực hiện năm 2020 dưới sự hướng dẫn của ThS. Nguyễn Thanh Thiện) tập trung giải quyết bài toán kép:

  1. Nhận diện và phát hiện trạng thái quả cà chua chín đỏ bằng phương pháp học sâu.
  2. Thiết kế và điều khiển cánh tay robot phần cứng nhằm tự động tiếp cận và thu hoạch quả mà không gây tổn hại cơ học.

Mục tiêu nghiên cứu:

  • Nhận diện chính xác quả cà chua chín bằng phương pháp học sâu, từ đó tính toán các thông số tọa độ cuống, tọa độ cắt và khoảng cách từ camera đến quả cà chua.
  • Xây dựng bộ dữ liệu hình ảnh quả cà chua với quy mô 2.000 ảnh phục vụ quá trình huấn luyện mô hình.
  • Thiết kế phần cứng cơ khí (cánh tay robot 6 bậc tự do, khung đỡ di chuyển) và giải thuật điều khiển đồng bộ trên hệ thống nhúng.

Đối tượng, phạm vi và giới hạn nghiên cứu:

  • Đối tượng nghiên cứu: Quả cà chua đỏ truyền thống ở trạng thái chín.
  • Phạm vi nghiên cứu: Ứng dụng mô hình YOLOv3-Tiny trên kit máy tính nhúng NVIDIA Jetson Nano; thiết kế cánh tay robot, khung xe và giải thuật điều khiển đồng bộ phần cứng.
  • Giới hạn nghiên cứu: Robot chỉ di chuyển theo lộ trình được cấu hình sẵn trên đường thẳng, bề mặt bằng phẳng; hệ thống hỗ trợ thu hoạch duy nhất loại cà chua đỏ truyền thống.

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

Khóa luận kết hợp giữa lý thuyết thị giác máy tính dựa trên mạng nơ-ron tích chập (Convolutional Neural Networks) và lý thuyết điều khiển tự động cho cánh tay robot nhiều bậc tự do.

Khung lý thuyết nhận diện đối tượng YOLO

Mô hình nhận diện đối tượng YOLO (You Only Look Once) tiếp cận bài toán phát hiện vật thể dưới dạng bài toán hồi quy trong miền không gian rời rạc. Khung hình đầu vào được chia thành lưới $S \times S$ ô vuông (cell). Mỗi ô chịu trách nhiệm dự đoán $B$ khung bao (Bounding Box) và điểm tin cậy tương ứng ($Cfd$). Mỗi Bounding Box được biểu diễn bởi bộ 5 tham số: $(b_x, b_y, b_w, b_h)$ và độ tin cậy ($Cfd$).

Độ tin cậy được tính theo công thức: $$Cfd = Pr(Object) \times IoU(pred, ground_truth)$$

Điểm tin cậy theo lớp (Confident Score - $Cfs$) cho biết xác suất có điều kiện ứng với từng lớp: $$Cfs = Pr(Class_i | Object) \times Pr(Object) \times IoU(pred, ground_truth) = Pr(Class_i) \times IoU(pred, ground_truth)$$

Hàm mất mát tổng thể của YOLO ($L$) là tổng của ba hàm thành phần: $$L = L_{classification} + L_{localization} + L_{confident}$$

Trong đó:

  • Hàm mất mát phân lớp ($L_{classification}$): Tính toán sai số dự đoán nhãn lớp đối tượng trong các ô chứa vật thể.
  • Hàm mất mát định vị ($L_{localization}$): Tính toán sai số tọa độ tâm $(x, y)$ và kích thước $(\sqrt{w}, \sqrt{h})$ của Bounding Box. Việc lấy căn bậc hai của chiều rộng và chiều cao giúp giảm độ nhạy cảm của hàm mất mát đối với các sai số kích thước trên các vật thể nhỏ so với vật thể lớn. Hệ số $\lambda_{coord} = 5$ được sử dụng để gia tăng trọng số cho tổn thất tọa độ.
  • Hàm mất mát độ tin cậy ($L_{confident}$): Tính toán sai số dự đoán sự hiện diện của đối tượng trên cả ô chứa đối tượng và ô không chứa đối tượng, sử dụng hệ số $\lambda_{noobj} = 0.5$ để triệt tiêu ảnh hưởng mất cân bằng mẫu do hậu cảnh gây ra.
  • Kỹ thuật Non-Maximum Suppression (NMS): Áp dụng để loại bỏ các Bounding Box chồng chéo (overlap) và giữ lại khung bao có điểm tin cậy cao nhất cho mỗi quả cà chua.

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

  • Thu thập và tiền xử lý dữ liệu: Xây dựng tập dữ liệu gồm 2.000 ảnh quả cà chua trong các điều kiện thực tế, thực hiện gán nhãn thủ công thông qua công cụ LabelImg theo tiêu chí nhận diện quả chín.
  • Môi trường huấn luyện: Quá trình huấn luyện mô hình YOLO được thực thi trên môi trường Google Colab có trang bị GPU.
  • Phương pháp thực nghiệm phần cứng: Kiểm thử thuật toán trích xuất đặc trưng và điều khiển thời gian thực trên kit máy tính nhúng Jetson Nano kết hợp kit mở rộng xung PWM PCA9685.

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

Đồ án là công trình thiết kế hệ thống kỹ thuật liên ngành tích hợp phần mềm nhúng, thị giác máy tính và cơ cấu chấp hành cơ khí.

                  +--------------------------+
                  |    Kit NVIDIA Jetson     |
                  |           Nano           |
                  +-------------+------------+
                                |
               +----------------+----------------+
               | (I2C)                           | (Shared Memory)
               v                                 v
     +-------------------+             +-------------------+
     |    Mạch PCA9685   |             |    Thuật toán     |
     |   (16 kênh PWM)   |             |   YOLOv3-Tiny     |
     +---------+---------+             +-------------------+
               |
               v
     +-------------------+
     | 6 Động cơ Servo   |
     |     MG996R        |
     +-------------------+

Kiến trúc phần cứng

  1. Khối xử lý trung tâm: Kit nhúng NVIDIA Jetson Nano đảm nhiệm vai trò chạy mô hình suy luận thị giác máy tính, xử lý thuật toán động học và phát lệnh điều khiển.
  2. Khối điều khiển động cơ: Kit mở rộng PCA9685 kết nối với Jetson Nano thông qua giao thức truyền thông I2C (sử dụng 2 dây tín hiệu SDA và SCL). PCA9685 cung cấp 16 kênh PWM độ phân giải 12-bit, cho phép mở rộng ghép nối tối đa 62 kit để điều khiển lên đến 992 servo trên cùng một đường I2C.
  3. Khối chấp hành cơ khí (Cánh tay robot): Cánh tay robot được thiết kế gồm 6 bậc tự do (6 DOF), tương ứng với 6 động cơ Servo MG996R (mô-men xoắn 10 kg·cm, bộ truyền bánh răng kim loại, góc quay tối đa $180^\circ$, điện áp hoạt động 4.8V – 7.2V, dòng tiêu thụ không tải 500mA – 900mA, dòng dừng 2.5A). Chiều dài vươn tối đa của cánh tay là 50.5 cm, được tích hợp thêm lò xo trợ lực để giảm tải cho các khớp nâng.
  4. Khối cảm biến và camera:
    • Cảm biến khoảng cách laser ToF VL53L0x: Đặt nghiêng phía trước robot hướng xuống mặt đất để quét chướng ngại vật trong phạm vi ngưỡng an toàn 0.4 m.
    • Camera thu hình: Sử dụng camera Logitech C270 (độ phân giải tối đa 720p/30fps, tiêu cự cố định $f = 4.2\text{ mm}$, kích thước cảm biến $3.58\text{ mm} \times 2.02\text{ mm}$).

Giải thuật điều khiển và đồng bộ dữ liệu

  • Kỹ thuật chia sẻ bộ nhớ (Shared Memory): Để đảm bảo tính thời gian thực, dữ liệu đầu ra từ tiến trình nhận diện thị giác (gồm tọa độ tâm cuống $x, y$ và chiều rộng Bounding Box $W$) được ghi vào vùng nhớ chung để tiến trình điều khiển cánh tay đọc trực tiếp.
  • Điều khiển xoay ngang (Trái / Phải): Do Servo 1 đảm nhiệm với góc đặt mặc định $80^\circ$, dải hoạt động từ $30^\circ$ đến $130^\circ$ (phạm vi góc $100^\circ$). Hệ số tỷ lệ $\epsilon = 640 / 100 = 6.4\text{ pixel/độ}$. Góc điều khiển được tính toán dựa trên độ lệch tọa độ trục $x$ của tâm quả cà chua.
  • Điều khiển nâng hạ (Lên / Xuống): Do Servo 4 đảm nhiệm với góc mặc định $100^\circ$, dải góc quay từ $50^\circ$ đến $100^\circ$ (phạm vi $50^\circ$). Hệ số tỷ lệ $\epsilon = 320 / 40 = 8\text{ pixel/độ}$, hiệu chỉnh theo tọa độ trục $y$.
  • Ước lượng khoảng cách và tầm vươn: Nhóm tác giả tiến hành lấy mẫu thực nghiệm mối quan hệ giữa chiều rộng $W$ (pixel) của Bounding Box và khoảng cách thực tế $d$ (cm) từ camera đến quả:
Chiều rộng $W$ (pixel) Khoảng cách thực tế $d$ (cm)
130 30
150 23
153 22
158 21
160 20
172 19
178 18
188 17
191 16
204 15

Do Servo 2 và Servo 3 hoạt động song song tương hỗ để điều khiển tầm với trong mặt phẳng đứng, góc quay tới hạn được tính theo công thức nội suy từ giá trị chiều rộng Bounding Box $W$ ($B_{min} = 120\text{ pixel}$, $B_{max} = 200\text{ pixel}$, góc khởi tạo $\alpha_0 = 70^\circ$). Kết quả so sánh giữa phương pháp ánh xạ chiều rộng thực nghiệm và phương pháp tính theo công thức quang học camera cho thấy độ sai số nằm trong giới hạn cho phép ($<5%$).


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

Chương 1: Bài toán thiết kế robot tự phát hiện và có khả năng thu hoạch nông sản (quả cà chua)

Chương này đặt vấn đề về sự cấp thiết của việc hiện đại hóa nông nghiệp tại Việt Nam thông qua ứng dụng trí tuệ nhân tạo. Tác giả chỉ ra các thách thức chính: độ biến thiên của môi trường ngoại cảnh (ánh sáng, che khuất), sự thiếu hụt kiến thức sinh học nông sản, quy mô sản xuất nhỏ lẻ và bài toán tối ưu chi phí đầu tư. Chương này xác định rõ mục tiêu chế tạo robot hoàn chỉnh từ khâu nhận diện, định vị đến khâu gắp cuống quả.

Chương 2: Vấn đề thiết kế robot tự phát hiện và có khả năng thu hoạch nông sản ở trong và ngoài nước

Chương 2 tổng thuật các công trình nghiên cứu trên thế giới, tiêu biểu là hệ thống robot Sweeper thu hoạch ớt chuông trong nhà kính và robot Rubion thu hoạch dâu tây. Đồng thời, tác giả phân tích thực trạng các cuộc thi chế tạo robot trong nước (như Open-RoboHUS 2019), rút ra kết luận rằng phần lớn các giải pháp nội địa vẫn dựa vào điều khiển thủ công và chưa có khả năng tự nhận diện nông sản theo thời gian thực.

Chương 3: Lý thuyết YOLO - Bài toán nhận diện

Chương 3 trình bày toàn diện cơ sở toán học và kiến trúc của mạng nơ-ron YOLO. Tác giả phân tích chi tiết cấu trúc mạng Darknet, cơ chế phân chia lưới, cách trích xuất feature map $7 \times 7 \times 1024$, biểu diễn vector dự đoán gồm tọa độ tâm $(b_x, b_y)$, kích thước $(b_w, b_h)$, chỉ số $Cfd$ và $Cfs$. Chương này đi sâu vào cấu trúc 3 thành phần của hàm mất mát tổng hợp, cơ chế lọc bỏ khung bao dư thừa bằng NMS, cùng các cải tiến qua từng phiên bản YOLOv1, YOLOv2 (Batch Normalization, Anchor Boxes, Darknet-19, Multi-scale training), YOLOv3 (Darknet-53, FPN, liên kết skip-layer) và YOLOv4.

Chương 4: Xử lý tín hiệu điều khiển cánh tay robot

Chương 4 tập trung vào giải pháp kỹ thuật phần cứng và thuật toán điều khiển. Tác giả mô tả chi tiết thông số động cơ servo MG996R, giải pháp giao tiếp I2C qua PCA9685 để mở rộng chân xung PWM trên Jetson Nano. Nguyên lý hoạt động của cảm biến ToF VL53L0x được thiết lập làm điều kiện an toàn chuyển động cho robot (dừng di chuyển khi gặp vật cản $< 0.4\text{ m}$). Chương này xây dựng chi tiết các công thức toán học biến đổi từ tọa độ ảnh sang góc quay cho Servo 1 (xoay trục), Servo 4 (nâng hạ) và cơ chế điều khiển Servo 2, 3 theo chiều rộng Bounding Box.

Chương 5: Kết quả nghiên cứu

Chương 5 trình bày quy trình huấn luyện mô hình YOLO trên tập dữ liệu 2.000 ảnh cà chua thông qua công cụ LabelImg và môi trường Google Colab. Tác giả công bố các bản vẽ thiết kế thực tế của cánh tay robot 6 bậc tự do bằng kim loại và kết cấu khung xe đỡ cơ khí phục vụ di chuyển.

Chương 6: Kết quả thực nghiệm

Chương 6 mô tả quá trình tích hợp toàn bộ hệ thống gồm cánh tay robot, khung di chuyển, cảm biến laser và module xử lý Jetson Nano. Tác giả trình bày lưu đồ thuật toán hoạt động tổng thể của hệ thống, kiểm thử tính năng kết nối đồng bộ đa tiến trình qua Shared Memory và đánh giá kết quả thực tế trong các chu kỳ thu hoạch quả cà chua.

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

Tóm lược kết quả đạt được về tính chính xác của mô hình nhận diện và độ ổn định của cánh tay cơ khí; đề xuất các hướng mở rộng kỹ thuật cho hệ thống trong tương lai.


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

Kết quả kỹ thuật chính

  • Xây dựng thành công bộ dữ liệu gồm 2.000 ảnh quả cà chua chín được phân loại và gán nhãn chuẩn xác bằng LabelImg.
  • Huấn luyện và triển khai thành công mô hình mạng YOLOv3-Tiny trên kit nhúng Jetson Nano, đáp ứng tốc độ xử lý khung hình thời gian thực.
  • Thiết kế và gia công cơ khí hoàn chỉnh cánh tay robot 6 bậc tự do sử dụng 6 động cơ Servo MG996R, có tầm vươn tối đa 50.5 cm cùng hệ thống lò xo trợ lực.
  • Ứng dụng thành công kỹ thuật Shared Memory cho phép truyền nhận dữ liệu thời gian thực giữa tiến trình thị giác máy tính và tiến trình điều khiển xung PWM.
  • Xây dựng giải thuật ước lượng khoảng cách dựa trên chiều rộng Bounding Box $W$ với độ sai số thực nghiệm duy trì dưới $5%$, thay thế hiệu quả cho các loại camera cảm biến chiều sâu đắt tiền.

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

  • Cung cấp giải pháp phần cứng và phần mềm tích hợp hoàn chỉnh với chi phí thấp, phù hợp với điều kiện nghiên cứu và ứng dụng nông nghiệp tự động hóa tại Việt Nam.
  • Đề xuất phương pháp chuyển đổi trực tiếp các tham số đầu ra của mạng nơ-ron nhận diện (tọa độ pixel và kích thước khung bao) thành góc quay thực tế của các khớp servo mà không cần bộ tính toán động học nghịch phức tạp.

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

Hạn chế được ghi nhận

  • Cơ cấu di chuyển của robot bị giới hạn theo đường thẳng trên bề mặt phẳng, chưa thể thích nghi với địa hình gồ ghề ngoài vườn thực tế.
  • Hệ thống chỉ mới nhận diện và thu hoạch một đối tượng duy nhất là quả cà chua đỏ truyền thống; chưa xử lý được các trường hợp chùm quả bị che khuất phức tạp bởi thân lá dày đặc.
  • Độ chính xác của thị giác máy tính còn bị ảnh hưởng khi điều kiện ánh sáng môi trường thay đổi đột ngột; tiêu cự camera bị sai lệch nhẹ sau quá trình sử dụng dẫn đến sai số ước lượng khoảng cách khoảng $5%$.

Hướng phát triển tiếp theo

  • Mở rộng tập dữ liệu và huấn luyện mô hình nhận diện thêm nhiều loại nông sản khác, đồng thời phát hiện sớm các vết sâu bệnh trên thân, lá, quả và nhận diện côn trùng gây hại.
  • Ứng dụng AI phân tích dữ liệu nông học để dự báo thời điểm thu hoạch tối ưu theo biến động thị trường.
  • Tích hợp cánh tay thu hoạch và hệ thống phun thuốc bảo vệ thực vật tự động lên các thiết bị bay không người lái (drone) để tiếp cận các loại cây ăn quả có tầm cao vượt ngoài khả năng vươn của robot mặt đất.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho sinh viên, học viên cao học và kỹ sư thuộc các chuyên ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Tự động hóa, Cơ điện tử và Khoa học Máy tính.

Các nội dung có giá trị ứng dụng cao bao gồm:

  1. Giải pháp ghép nối và cấu hình giao tiếp I2C giữa kit máy tính nhúng NVIDIA Jetson Nano với vi mạch mở rộng PWM PCA9685.
  2. Phương pháp lập trình đồng bộ đa tiến trình thời gian thực sử dụng kỹ thuật Shared Memory giữa module Deep Learning và module điều khiển phần cứng.
  3. Thuật toán ánh xạ không gian ảnh (pixel) sang góc quay servo và giải thuật đo khoảng cách thực nghiệm không phụ thuộc camera chiều sâu chuyên dụng.

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

1. Tại sao nhóm tác giả sử dụng module mở rộng PCA9685 thay vì điều khiển servo trực tiếp từ các chân GPIO của Jetson Nano?
Để điều khiển đồng thời 6 động cơ Servo MG996R, hệ thống cần ít nhất 6 kênh PWM riêng biệt. Việc sử dụng trực tiếp các chân trên Jetson Nano dễ gây thiếu hụt chân giao tiếp, quá tải dòng điện hoặc nguy cơ đoản mạch làm hỏng vi xử lý. Module PCA9685 cung cấp 16 kênh PWM 12-bit độc lập, chỉ chiếm dụng 2 dây tín hiệu I2C (SDA, SCL) và có thể ghép nối mở rộng tối đa 62 mạch (điều khiển tới 992 động cơ).

2. Cảm biến khoảng cách VL53L0x đóng vai trò gì trong chu trình vận hành của robot?
Cảm biến laser ToF VL53L0x được bố trí ở phía trước thân xe, đặt lệch một góc hướng xuống mặt đất để quét vật cản trong cự ly 0.4 m. Khi phát hiện vật cản trong ngưỡng này, cảm biến sẽ gửi tín hiệu ngắt để dừng động cơ DC bánh xe nhằm tránh va chạm. Khi không có vật cản và không có tín hiệu thu hoạch từ camera, cảm biến liên tục duy trì trạng thái di chuyển cho robot.

3. Kỹ thuật Shared Memory được ứng dụng như thế nào trong hệ thống?
Tiến trình thị giác máy tính (chạy mô hình YOLOv3-Tiny) sau khi phát hiện quả cà chua sẽ ghi dữ liệu tọa độ $(x, y)$ và chiều rộng $W$ của Bounding Box vào một phân vùng bộ nhớ chung (gắn định danh nhãn bộ nhớ). Tiến trình điều khiển cánh tay robot sẽ truy xuất trực tiếp các giá trị này từ vùng nhớ chung để tính toán góc quay servo ngay lập tức, triệt tiêu độ trễ truyền thông nội bộ.

4. Cánh tay robot xác định tầm vươn tới quả cà chua bằng phương pháp nào và sai số là bao nhiêu?
Tác giả đã lập bảng thực nghiệm lấy mẫu mối quan hệ giữa chiều rộng $W$ (từ 130 đến 204 pixel) và khoảng cách $d$ (từ 30 đến 15 cm). Servo 2 và Servo 3 chuyển động tương hỗ để điều khiển tầm vươn theo công thức nội suy góc từ chiều rộng $W$. Phương pháp này cho độ sai lệch dưới $5%$ so với công thức quang học tiêu cự, đảm bảo cánh tay tiếp cận quả chính xác trong tầm dài 50.5 cm.

5. Tại sao hàm mất mát $L_{localization}$ trong YOLO lại tính căn bậc hai của chiều rộng và chiều cao Bounding Box?
Việc lấy căn bậc hai $(\sqrt{w}, \sqrt{h})$ giúp cân bằng sai số giữa các đối tượng kích thước lớn và nhỏ. Cùng một độ lệch sai số tuyệt đối (ví dụ lệch 2 pixel), sai số này ít ảnh hưởng đến Bounding Box lớn nhưng lại ảnh hưởng rất nghiêm trọng đến chỉ số $IoU$ của các Bounding Box nhỏ. Lấy căn bậc hai giúp hàm mất mát nhạy cảm hơn với sai số của các vật thể nhỏ.


Kết luận

Khóa luận tốt nghiệp của tác giả Nguyễn Văn Huỳnh Ý và Bùi Hoàng Kha đã thiết kế và chế tạo thành công mô hình robot thu hoạch cà chua tự động kết hợp xử lý thị giác máy tính và cơ điện tử nhúng. Đề tài đã xây dựng bộ dữ liệu 2.000 ảnh, huấn luyện mô hình YOLOv3-Tiny trên Google Colab và triển khai suy luận thời gian thực trên kit NVIDIA Jetson Nano. Cánh tay robot 6 bậc tự do sử dụng động cơ Servo MG996R, mạch điều khiển I2C PCA9685 và cảm biến an toàn VL53L0x đã hiện thực hóa quy trình định vị và tiếp cận quả cà chua chín với sai số khoảng cách dưới 5%.