Bối cảnh và vấn đề nghiên cứu
Trong xu thế phát triển của cuộc Cách mạng Công nghiệp 4.0, các giải pháp tự động hóa đang ngày càng được ứng dụng sâu rộng nhằm nâng cao năng suất, độ chính xác và tối ưu hóa quản trị vận hành trong nhiều lĩnh vực công nghiệp và dịch vụ. Đối với hệ thống y tế và dược phẩm, công tác quản lý, lưu trữ và cấp phát thuốc tại các bệnh viện hay nhà thuốc hiện nay phần lớn vẫn được thực hiện theo phương thức thủ công. Quy trình này bộc lộ nhiều nhược điểm như tiêu tốn thời gian, tốn kém nhân lực và tiềm ẩn nguy cơ sai sót trong quá trình phân loại, bốc dỡ hàng hóa, gây ảnh hưởng trực tiếp đến chất lượng phục vụ người bệnh.
Mặc dù hệ thống lưu trữ và truy xuất tự động (Automated Storage and Retrieval Systems - AS/RS) đã được ứng dụng rộng rãi tại các tập đoàn logistics lớn trên thế giới (như Amazon, Walmart), việc triển khai các hệ thống AS/RS công nghiệp quy mô lớn tại các cơ sở vừa và nhỏ ở Việt Nam gặp phải những rào cản đáng kể:
- Chi phí đầu tư ban đầu cho phần cứng và cơ sở hạ tầng quá cao.
- Khó khăn trong việc tích hợp vào không gian vật lý sẵn có mà không làm gián đoạn vận hành.
- Tính phụ thuộc vào các thiết kế nhà kho cố định, thiếu sự linh hoạt và khó tùy biến.
Xuất phát từ thực tiễn trên, khóa luận tốt nghiệp ngành Kỹ thuật Máy tính (Trường Đại học Công nghệ Thông tin – ĐHQG-HCM) của nhóm tác giả Nguyễn Bạch Duy và Đào Tuấn Anh, dưới sự hướng dẫn của TS. Trần Quang Nguyên, đã thực hiện đề tài: "Xây dựng hệ thống lưu kho tự động bằng phương pháp quét mã QR thông qua camera giám sát".
Mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:
- Nghiên cứu, thiết kế và chế tạo mô hình cánh tay robot 3 trục ($X, Y, Z$) sử dụng khung nhôm định hình, có khả năng di chuyển linh hoạt và gắp thả vật phẩm chính xác.
- Thiết kế và gia công mô hình kệ tủ lưu trữ dạng lưới ma trận $3 \times 3$ (tổng cộng 9 ô chứa) với kích thước và phông nền tiêu chuẩn phục vụ thị giác máy tính.
- Tích hợp hệ thống camera giám sát và xây dựng thuật toán xử lý ảnh trên nền tảng OpenCV và Roboflow nhằm tự động nhận diện mã QR dán trên mẫu vật và xác định vị trí các ô kệ.
- Áp dụng thuật toán Dijkstra trên mô hình đồ thị để tính toán lộ trình di chuyển ngắn nhất cho cánh tay chấp hành đến các ô chứa còn trống.
- Thiết kế mạch điều khiển trung gian, kết nối bo mạch Raspberry Pi 2B với hệ thống driver động cơ bước TB6600, relay điều khiển khí nén và các cơ cấu chấp hành.
- Xây dựng giao diện người dùng (GUI) trên máy tính cá nhân (PC) để điều khiển, theo dõi và ghi nhận trạng thái vận hành của hệ thống theo thời gian thực.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống lưu kho tự động dạng AS/RS thu nhỏ, kết hợp cơ điện tử 3 trục tọa độ Descartes, hệ thống gắp khí nén và thị giác máy tính nhận diện mã QR.
- Phạm vi nghiên cứu: Mô hình được thu nhỏ và thử nghiệm trong không gian phòng thí nghiệm; hành trình chuyển động của trục X và trục Y được giới hạn ở mức 40 cm; mẫu vật thử nghiệm là các khối hình hộp nhỏ dán mã phản hồi nhanh (QR Code); kệ tủ thử nghiệm gồm 9 ô phân bố theo cấu trúc lưới $3 \times 3$.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp giữa lý thuyết điều khiển tự động, kỹ thuật robot học, thuật toán tối ưu hóa đồ thị và xử lý ảnh số:
Khung lý thuyết và mô hình toán học
-
Nguyên lý điều khiển động cơ bước và kỹ thuật vi bước (Microstepping):
Động cơ bước chuyển động theo các góc bước rời rạc. Với góc bước cơ bản $\theta$, số bước trên một vòng quay ở chế độ bước đủ (Full Step) được tính bằng:
$$\text{Số bước mỗi vòng quay} = \frac{360^\circ}{\theta}$$
Khi sử dụng driver TB6600 ở chế độ vi bước (microstepping) với hệ số $K$, số bước để quay một vòng tăng lên:
$$\text{Số bước vi bước mỗi vòng} = \text{Số bước mỗi vòng quay} \times K$$
Từ đó, số vòng quay thực tế $S$ khi cấp $N$ xung bước được xác định theo công thức:
$$S = \frac{N}{\text{Số bước vi bước mỗi vòng}}$$
-
Thuật toán tìm đường đi ngắn nhất Dijkstra:
Kệ tủ 9 ô được mô hình hóa thành một đồ thị vô hướng $G = (V, E)$ với tập đỉnh $V = {1, 2, \dots, 9}$ tương ứng với 9 vị trí ô chứa và tập cạnh $E$ thể hiện khả năng di chuyển giữa các ô lân cận:
- Đỉnh 1 nối với đỉnh 2, 4.
- Đỉnh 2 nối với đỉnh 1, 3, 5.
- Đỉnh 3 nối với đỉnh 2, 6.
- Đỉnh 4 nối với đỉnh 1, 5, 7.
- Đỉnh 5 nối với đỉnh 2, 4, 6, 8.
- Đỉnh 6 nối với đỉnh 3, 5, 9.
- Đỉnh 7 nối với đỉnh 4, 8.
- Đỉnh 8 nối với đỉnh 5, 7, 9.
- Đỉnh 9 nối với đỉnh 6, 8.
Thuật toán khởi tạo khoảng cách từ đỉnh nguồn $s$ đến chính nó bằng 0 ($d[s] = 0$) và đến các đỉnh $v \neq s$ là vô cực ($d[v] = \infty$). Quá trình lặp liên tục cập nhật khoảng cách ngắn nhất: $d[v] = \min(d[v], d[u] + w(u, v))$ cho đến khi duyệt hết tập đỉnh $Q$, từ đó xuất ra đường đi tối ưu cho cánh tay robot.
-
Cấu trúc mã QR và quy trình thị giác máy tính (OpenCV):
Mã QR (Quick Response Code) chứa các thành phần cấu trúc: Mô-đun dữ liệu (Data Module), Mô-đun định vị (Positioning Module - 3 hình vuông góc với tỷ lệ pixel đặc trưng 1:1:3:1:1), Mô-đun căn chỉnh (Alignment Module), Mô-đun thời gian (Timing Module) và Mô-đun định dạng (Format Module). Quá trình xử lý ảnh trên OpenCV trải qua các bước:
- Chuyển đổi ảnh xám (Grayscale Conversion): Giảm dữ liệu từ 3 kênh màu RGB về 1 kênh đơn sắc để tối ưu tốc độ xử lý.
- Lọc mịn và giảm nhiễu (Gaussian Blur): Sử dụng hàm phân phối Gaussian hai chiều $G(x, y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}}$ để làm mờ cục bộ, loại bỏ nhiễu hạt.
- Phát hiện cạnh Canny (Canny Edge Detection): Kết hợp lọc Sobel tính gradient, kỹ thuật triệt điểm không cực đại (Non-maximum Suppression), phân ngưỡng kép (Double Thresholding) và nối vết cạnh theo trễ (Hysteresis Tracking).
- Phát hiện mẫu định vị và hiệu chỉnh biến dạng (Perspective Transformation): Nhận diện 3 cụm Finder Patterns, tính toán ma trận đồng nhất (Homography) để nắn phẳng ảnh, khử méo do góc nghiêng và giải mã dữ liệu kết hợp sửa lỗi Reed-Solomon.
-
Kiến trúc truyền thông và lập trình hệ thống:
- Sử dụng kiến trúc RESTful API trên nền giao thức HTTP (các phương thức GET, POST, PUT, DELETE) để trao đổi trạng thái và dữ liệu tọa độ giữa PC và Raspberry Pi 2B.
- Cơ chế lập trình đa luồng (Multi-threading) kết hợp phân chia thời gian Round-Robin để xử lý song song luồng nhận diện camera và luồng điều khiển chấp hành.
Phương pháp nghiên cứu và nguồn dữ liệu
- Phương pháp thực hiện: Thiết kế - chế tạo thực nghiệm hệ thống phần cứng (cơ khí, mạch điện tử) kết hợp xây dựng phần mềm nhúng và phần mềm điều khiển trên máy tính.
- Nguồn dữ liệu: Dữ liệu hình ảnh thu nhận trực tiếp từ camera thời gian thực; tập dữ liệu mẫu kệ và mẫu vật hình hộp dán mã QR được gán nhãn và huấn luyện nhận diện trên nền tảng Roboflow.
Thiết kế và triển khai
Hệ thống được thiết kế theo cấu trúc phân tầng kết hợp giữa phần cứng cơ điện tử và phần mềm điều khiển trung tâm:
Cấu tạo và tích hợp phần cứng
| Thành phần linh kiện |
Thông số / Mã hiệu |
Chức năng trong hệ thống |
| Bo mạch điều khiển |
Raspberry Pi 2 Model B |
Nhận dữ liệu lệnh từ PC qua mạng, xuất tín hiệu xung/hướng qua chân GPIO để điều khiển driver động cơ và kích hoạt relay. |
| Động cơ bước |
103H7123-6211 (3 bộ) |
Truyền động cho 3 trục $X, Y, Z$; hoạt động chính xác theo bước xung, không yêu cầu cảm biến phản hồi vòng kín. |
| Driver động cơ |
TB6600 (3 bộ) |
Khuyếch đại dòng điện, cấp nguồn điều khiển động cơ bước theo chế độ vi bước, nhận xung PUL và tín hiệu chiều DIR. |
| Cơ cấu trục $X$ |
Khung nhôm, ray dẫn hướng, dây đai (40 cm) |
Điều khiển toàn bộ cụm trục $Y, Z$ di chuyển theo phương ngang từ trái sang phải và ngược lại. |
| Cơ cấu trục $Y$ |
Khung nhôm, ray dẫn hướng, dây đai (40 cm) |
Điều khiển cụm trục $Z$ di chuyển tịnh tiến theo phương thẳng đứng (nâng hạ độ cao). |
| Cơ cấu trục $Z$ |
Trục vít me - đai ốc tích hợp tay gắp |
Điều khiển đưa đầu gắp tiến sâu vào trong hoặc rút ra khỏi ô chứa; chuyển động êm và ổn định nhờ cơ cấu vít me. |
| Cơ cấu kẹp giữ |
Xilanh kẹp khí nén Airtac HFK16 |
Kẹp giữ và nhả mẫu vật hộp thuốc một cách nhẹ nhàng, chính xác với hành trình đóng mở ngắn. |
| Van điều khiển khí |
Airtac 4V110-M5 |
Đóng/mở và chuyển hướng luồng khí nén cấp cho xilanh kẹp. |
| Nguồn cấp khí / Chân không |
Bơm khí APN-W & Bơm chân không 12V DC |
Tạo áp suất khí nén và lực hút chân không phục vụ cơ cấu chấp hành đầu gắp. |
| Module chuyển mạch |
Module Relay 5VDC 4 kênh (cách ly quang) |
Đóng ngắt nguồn 24V DC và 12V DC cho máy bơm và van khí nén, tích hợp optocoupler chống nhiễu điện từ. |
| Mạch bảo vệ |
RC Absorption / Snubber Protection |
Mắc song song với tiếp điểm Relay để dập tia lửa điện khi đóng ngắt tải cảm, chống treo/reset vi điều khiển. |
| Cảm biến hình ảnh |
Camera OV7670 / Camera công nghiệp |
Đặt tại vị trí quan sát để quét mã QR trên mẫu vật và nhận diện vị trí các ô kệ. |
| Kệ tủ lưu trữ |
Kệ lưới $3 \times 3$ (9 ô) |
Kích thước mỗi ô: dài 15 cm, rộng 15 cm, sâu đáy 10 cm; viền trắng, phông nền mặt lưng màu đen. |
Kiến trúc phần mềm và luồng điều khiển
Quy trình vận hành tự động của hệ thống diễn ra theo các pha tuần tự:
- Pha quét và nhận dạng: Camera công nghiệp ghi hình mẫu vật chuyển đến từ đầu vào; phần mềm xử lý ảnh OpenCV trên PC tiến hành lọc nhiễu, phân đoạn ảnh và giải mã chuỗi ký tự chứa trong mã QR.
- Pha lập lịch và tính toán: PC truy vấn cơ sở dữ liệu để xác định ô lưu trữ tương ứng hoặc tìm ô trống trên kệ $3 \times 3$. Thuật toán Dijkstra tính toán chuỗi tọa độ tối ưu từ vị trí hiện tại của cánh tay đến ô mục tiêu.
- Pha truyền thông: PC gửi gói dữ liệu tọa độ và trạng thái thao tác đến Raspberry Pi 2B thông qua giao thức RESTful API qua mạng nội bộ.
- Pha thực thi chấp hành: Raspberry Pi 2B biên dịch tọa độ thành số lượng xung bước (dựa trên công thức vi bước của TB6600) và phát xung qua các chân GPIO điều khiển động cơ bước của 3 trục $X, Y, Z$. Đồng thời, Raspberry Pi kích hoạt relay mở van khí nén Airtac 4V110-M5 để xilanh HFK16 kẹp vật phẩm, di chuyển đến ô đích và nhả vật phẩm vào đúng ngăn kệ.
Nội dung chính theo từng chương
Chương 1. Giới thiệu chung về hệ thống lưu kho tự động
Chương này phân tích tổng quan về sự phát triển của hệ thống lưu kho từ phương pháp truyền thống đến hệ thống tự động AS/RS trong bối cảnh logistics hiện đại. Tác giả tổng hợp tình hình nghiên cứu AS/RS tại Việt Nam (các ứng dụng quản lý kho WMS, tích hợp RFID, mã vạch, mã QR) và trên thế giới (công nghệ robot di động Kiva của Amazon, hệ thống tự động của Walmart tại Mỹ; giải pháp kho cao tầng của Đức, Thụy Sĩ, Hà Lan; robot kho tại Nhật Bản, Hàn Quốc và các tập đoàn thương mại điện tử JD.com, Alibaba tại Trung Quốc). Từ các hạn chế về chi phí và tính tùy biến của hệ thống AS/RS công nghiệp, chương 1 xác định yêu cầu thiết kế mô hình cánh tay 3 trục thu nhỏ phục vụ tự động hóa việc cấp phát thuốc tại các nhà thuốc và phòng thí nghiệm.
Chương 2. Cơ sở lý thuyết và thuật toán
Chương 2 trình bày toàn bộ nền tảng toán học, giải thuật và lý thuyết kỹ thuật điều khiển:
- Cấu tạo, sơ đồ chân và nguyên lý hoạt động của động cơ bước; các phương pháp ghép nối driver TB6600 (nối chung dương, nối chung âm) và các ràng buộc thời gian tín hiệu xung ($t_1, t_2 \ge 5\mu\text{s}$, độ rộng xung $t_3, t_4 \ge 2\mu\text{s}$).
- Thiết lập công thức toán học tính số bước, số xung và số vòng quay cho động cơ bước qua cơ cấu vi bước.
- Thuật toán Dijkstra tìm đường đi ngắn nhất trên đồ thị không hướng 9 đỉnh đại diện cho 9 ngăn của kệ tủ $3 \times 3$.
- Lý thuyết mã QR (các mô-đun chức năng, thuật toán sửa lỗi Reed-Solomon) và quy trình thị giác máy tính OpenCV (chuyển đổi ảnh xám, bộ lọc Gaussian, thuật toán phát hiện cạnh Canny, thuật toán tìm mẫu định vị tỉ lệ 1:1:3:1:1, biến đổi đồng nhất Homography).
- Kiến trúc lập trình đa luồng (Single-thread vs Multi-threading, kỹ thuật chia sẻ thời gian Round-Robin), giao thức truyền thông RESTful API và sơ đồ chân GPIO trên Raspberry Pi 2B.
Chương 3. Phần cứng đồ án
Chương 3 thuyết minh chi tiết thông số kỹ thuật, cấu tạo và vai trò của từng khối phần cứng trong mô hình:
- Bo mạch điều khiển Raspberry Pi 2B, module relay 5VDC 4 kênh cách ly quang, động cơ bước 103H7123-6211, driver TB6600.
- Khối chấp hành khí nén: máy bơm khí APN-W, xilanh kẹp Airtac HFK16, van điện từ khí nén Airtac 4V110-M5, máy bơm chân không 12V DC.
- Khối chống nhiễu: mạch RC Snubber bảo vệ tiếp điểm relay và chống treo vi điều khiển khi ngắt tải cảm ứng.
- Khối camera OV7670 phục vụ quét ảnh.
- Thiết kế cơ khí chi tiết cho từng trục: trục X (dài 40 cm, truyền động dây đai), trục Y (dài 40 cm, truyền động dây đai), trục Z (truyền động vít me tích hợp tay gắp). Thiết kế kệ tủ ma trận $3 \times 3$ với mỗi ô kích thước $15 \times 15 \times 10\text{ cm}$, viền trắng, phông nền đen.
Chương 4. Phần mềm đồ án
Chương 4 trình bày cấu trúc phần mềm điều khiển và giám sát:
- Sơ đồ khối nguyên lý hoạt động và sơ đồ luồng dữ liệu trên máy tính chủ (PC) và bo mạch Raspberry Pi 2B.
- Tích hợp mô hình thị giác máy tính Roboflow để nhận diện không gian kệ tủ.
- Xây dựng giao diện đồ họa người dùng (GUI) trên máy tính hiển thị trạng thái kết nối, hình ảnh trực tiếp từ camera, trạng thái của 9 ô kệ và lịch sử tọa độ di chuyển của cánh tay 3 trục.
Chương 5. Thực nghiệm và kết quả
Chương 5 công bố các nội dung thử nghiệm thực tế và số liệu đánh giá hệ thống qua các bảng thực nghiệm:
- Kiểm thử độ chính xác nhận diện mã QR trên mẫu vật trong các điều kiện góc nghiêng và khoảng cách khác nhau (Bảng 5.1 và Bảng 5.2).
- Đo đạc độ chính xác vị trí và hiệu suất cơ cấu di chuyển gắp thả của cánh tay 3 trục $X, Y, Z$ đến từng ô trong 9 ô kệ (Bảng 5.3 và Bảng 5.4).
- Đánh giá hiệu suất hoạt động tổng thể của toàn bộ quy trình: từ quét mã, tính toán Dijkstra, truyền lệnh đến gắp thả hoàn tất vào ô kệ (Bảng 5.5 và Bảng 5.6).
Chương 6. Kết luận và hướng phát triển
Tổng kết các hạng mục công việc đã hoàn thành, chỉ ra những ưu điểm về tính gọn nhẹ, chi phí thấp của mô hình, đồng thời nêu rõ các hạn chế kỹ thuật và đề xuất hướng nghiên cứu tiếp theo.
Kết quả và đóng góp
Kết quả nghiên cứu chính
- Chế tạo hoàn chỉnh phần cứng cơ điện tử: Đã hiện thực hóa thành công mô hình hệ thống lưu kho AS/RS thu nhỏ gồm cánh tay cơ khí 3 trục tọa độ Descartes. Cơ cấu truyền động dây đai trên trục X, Y giúp tăng tốc độ di chuyển tổng thể, trong khi trục vít me trên trục Z đảm bảo khả năng định vị êm ái, tránh va đập hư hỏng hàng hóa trong quá trình đưa vào/rút ra khỏi ô kệ.
- Xây dựng giải pháp thị giác và điều khiển kết hợp: Ứng dụng thành công OpenCV để nhận dạng và giải mã chính xác mã QR trên mẫu vật; tích hợp mô hình Roboflow nhận diện khung kệ $3 \times 3$; triển khai thuật toán Dijkstra tối ưu hóa lộ trình di chuyển tới 9 ô chứa.
- Đánh giá hiệu suất qua thực nghiệm: Hệ thống đã trải qua các bài kiểm tra thực nghiệm độc lập và toàn diện được ghi nhận trong các bảng số liệu từ 5.1 đến 5.6 của khóa luận, bao gồm:
- Đánh giá tỷ lệ nhận diện thành công của module camera đối với mã QR.
- Đo đạc độ chính xác vị trí và độ ổn định của cánh tay 3 trục khi tiếp cận từng ô kệ trong 9 ô chứa.
- Xác định tỷ lệ hoàn thành tác vụ gắp - thả tổng thể của toàn chu trình tự động hóa.
Đóng góp của đề tài
- Tính thực tiễn và tối ưu chi phí: Khóa luận chứng minh tính khả thi của một mô hình lưu kho tự động chi phí thấp, không đòi hỏi không gian nhà kho cố định phức tạp, có khả năng ứng dụng trực tiếp tại các nhà thuốc vừa và nhỏ nhằm giảm bớt sự phụ thuộc vào thao tác thủ công.
- Tích hợp liên ngành: Kết hợp chặt chẽ giữa kỹ thuật cơ khí chính xác, điện tử nhúng (Raspberry Pi 2B, driver TB6600, khí nén công nghiệp) và phần mềm thông minh (OpenCV, Roboflow, RESTful API, thuật toán Dijkstra).
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài (theo công bố của tác giả)
- Quy mô mô hình: Hệ thống mới dừng lại ở mức độ mô hình thử nghiệm phòng thí nghiệm với hành trình trục ngắn (40 cm cho trục X và Y) và số lượng ngăn chứa giới hạn ở 9 ô ($3 \times 3$). Kích thước và tải trọng mẫu vật thử nghiệm chỉ giới hạn ở các khối hình hộp nhỏ.
- Phân chia tài nguyên tính toán: Bo mạch Raspberry Pi 2B có năng lực xử lý hạn chế, chưa thể thực hiện trực tiếp các tác vụ xử lý ảnh thời gian thực phức tạp mà phải phụ thuộc vào máy tính cá nhân (PC) để giải mã QR và chạy mô hình thị giác trước khi truyền lệnh qua API.
- Độ nhạy của cảm biến quang học: Khả năng nhận diện mã QR và phát hiện ô kệ vẫn chịu ảnh hưởng nhất định bởi điều kiện ánh sáng môi trường và góc đặt của camera giám sát.
Hướng phát triển tiếp theo
- Mở rộng quy mô cơ khí của hệ thống: Tăng chiều dài hành trình các trục, nâng cao tải trọng của cơ cấu kẹp và nâng số lượng ô chứa của kệ tủ lên các ma trận lớn hơn.
- Nâng cấp phần cứng xử lý biên: Sử dụng các dòng máy tính đơn bo hiệu năng cao hơn để thực hiện xử lý ảnh và chạy mô hình học sâu trực tiếp tại trạm điều khiển mà không cần truyền dữ liệu về PC.
- Hoàn thiện thuật toán và nâng cấp camera công nghiệp độ phân giải cao hơn nhằm tăng độ tin cậy trong môi trường chiếu sáng công nghiệp phức tạp.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo có giá trị kỹ thuật thực tế cho:
- Sinh viên và giảng viên các ngành: Kỹ thuật Máy tính, Công nghệ Thông tin, Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử và Robot học.
- Các nội dung đáng tham khảo chuyên sâu:
- Thiết kế cơ điện tử: Phương pháp phối hợp truyền động dây đai (tốc độ cao trên trục ngang/đứng) và vít me (độ chính xác cao trên trục đưa đón vật); phương pháp đấu nối động cơ bước với driver TB6600 và mạch lọc dập tia lửa điện RC Snubber.
- Ứng dụng thuật toán đồ thị: Cách ánh xạ bài toán không gian vật lý (kệ hàng 9 ô) thành bài toán đồ thị và lập trình Dijkstra tìm đường đi ngắn nhất cho robot.
- Quy trình xử lý ảnh nhúng: Toàn bộ các bước tiền xử lý ảnh (Grayscale, Gaussian Blur, Canny Edge Detection, Finder Pattern Detection, Perspective Transformation) để bóc tách mã QR từ camera giám sát.
Câu hỏi thường gặp
1. Tại sao hệ thống lại sử dụng cơ cấu dây đai cho trục X, Y nhưng lại dùng vít me cho trục Z?
Trả lời: Theo thiết kế của nhóm tác giả, trục X và trục Y cần di chuyển trên quãng đường dài hơn để tiếp cận các ô kệ khác nhau, do đó cơ cấu dây đai - bánh răng được lựa chọn nhằm tối ưu tốc độ di chuyển và nâng cao hiệu suất làm việc. Ngược lại, trục Z có nhiệm vụ đưa mẫu vật vào sâu bên trong ô kệ hoặc rút ra, đòi hỏi chuyển động chậm, chính xác và êm ái; cơ cấu vít me giúp kiểm soát tốt tốc độ tịnh tiến, tránh va đập mạnh làm rơi vỡ hoặc hư hỏng mẫu vật/hộp thuốc.
2. Thuật toán Dijkstra được áp dụng cụ thể như thế nào trong hệ thống kệ $3 \times 3$?
Trả lời: Kệ tủ $3 \times 3$ được mô hình hóa thành một đồ thị vô hướng 9 đỉnh, đánh số từ 1 (góc trên cùng bên trái) đến 9 (góc dưới cùng bên phải). Các đỉnh liền kề theo hàng ngang và cột dọc được nối với nhau bằng các cạnh có trọng số tương ứng với khoảng cách di chuyển giữa các ô (ví dụ đỉnh 1 nối với 2 và 4; đỉnh 5 ở tâm nối với 2, 4, 6, 8). Thuật toán Dijkstra nhận vị trí hiện tại của cánh tay làm đỉnh nguồn, liên tục duyệt và cập nhật khoảng cách ngắn nhất để tìm ra lộ trình chuyển động tối ưu đến ô đích cần nạp/dỡ hàng.
3. Module Relay và mạch lọc nhiễu RC Snubber Protection đóng vai trò gì trong hệ thống phần cứng?
Trả lời: Module Relay 5VDC 4 kênh tích hợp opto cách ly quang được sử dụng để đóng ngắt nguồn điện cho máy bơm khí và van điện từ 24V/12V từ tín hiệu điều khiển logic của Raspberry Pi mà không gây xung điện ngược sang vi xử lý. Mạch lọc nhiễu RC Snubber được mắc song song với các tiếp điểm relay để dập tắt tia lửa điện sinh ra khi đóng ngắt các tải có tính cảm ứng (cuộn hút của van khí, động cơ bơm), ngăn ngừa hiện tượng xung điện làm treo hoặc reset bo mạch Raspberry Pi 2B.
4. Dữ liệu và tác vụ được phân chia như thế nào giữa máy tính cá nhân (PC) và Raspberry Pi 2B?
Trả lời: Máy tính (PC) đảm nhận các tác vụ tính toán nặng bao gồm: nhận luồng video từ camera, chạy thuật toán xử lý ảnh OpenCV để giải mã mã QR, nhận diện kệ tủ bằng mô hình Roboflow, tính toán đường đi ngắn nhất Dijkstra và hiển thị giao diện người dùng (GUI). Sau khi có tọa độ đích, PC truyền lệnh qua giao thức RESTful API đến Raspberry Pi 2B. Bo mạch Raspberry Pi 2B đóng vai trò bộ điều khiển cấp thấp, trực tiếp xuất các xung bước và tín hiệu logic qua chân GPIO để điều khiển driver TB6600 và đóng ngắt các rơ-le khí nén.
5. Cơ chế phát hiện và định vị mã QR trong không gian ảnh bằng OpenCV gồm những bước cơ bản nào?
Trả lời: Quy trình xử lý ảnh trên OpenCV gồm: (1) Chuyển ảnh màu RGB sang ảnh xám (Grayscale); (2) Làm mịn và khử nhiễu bằng bộ lọc Gaussian Blur; (3) Nhận diện biên cạnh bằng thuật toán Canny; (4) Nhị phân hóa và tìm kiếm các mô-đun định vị (Finder Patterns) ở 3 góc mã QR dựa trên tỉ lệ pixel đặc trưng 1:1:3:1:1; (5) Tính toán ma trận biến đổi phối cảnh (Perspective Transformation) để đưa mã QR về góc nhìn trực diện; (6) Phân đoạn lưới bit dữ liệu và áp dụng thuật toán Reed-Solomon để sửa lỗi, giải mã thông tin.
Kết luận
Khóa luận tốt nghiệp của nhóm tác giả đã thiết kế, chế tạo và tích hợp thành công mô hình hệ thống lưu kho tự động AS/RS thu nhỏ 3 trục tọa độ, ứng dụng thị giác máy tính và nhận diện mã QR. Đề tài giải quyết hiệu quả bài toán tự động hóa quy trình phân loại và lưu trữ vật phẩm với chi phí thấp, kết hợp hài hòa giữa cơ điện tử, vi điều khiển nhúng Raspberry Pi và các giải pháp phần mềm thông minh (OpenCV, Dijkstra, RESTful API). Kết quả thực nghiệm khẳng định tính khả thi của mô hình trong việc nâng cao độ chính xác, giảm thiểu thời gian thao tác thủ công, mở ra hướng ứng dụng thiết thực cho các hệ thống quản lý và cấp phát dược phẩm tại các nhà thuốc và bệnh viện.