Giới thiệu dự án
Trong bối cảnh y tế hiện đại, việc tối ưu hóa quy trình vận chuyển nội bộ và giảm thiểu tiếp xúc trực tiếp giữa nhân viên y tế với bệnh nhân tại các khu vực điều trị truyền nhiễm là ưu tiên hàng đầu. Theo thống kê từ Bộ Y tế Việt Nam trong giai đoạn dịch Covid-19, hơn 11,5 triệu ca nhiễm và 43.184 ca tử vong đã tạo áp lực cực lớn lên hệ thống y tế, trong đó tỷ lệ lây nhiễm chéo tại các khu cách ly và phòng khám chiếm tỷ trọng đáng kể do tần suất giao nhận thuốc và nhu yếu phẩm thủ công.
Vấn đề cốt lõi (Problem Statement) nằm ở sự thiếu hụt nhân lực y tế chuyên trách vận chuyển, nguy cơ phơi nhiễm mầm bệnh cao của điều dưỡng khi cấp phát thuốc định kỳ, cùng với sai số trong việc phân phối thuốc theo khung giờ. Để giải quyết triệt để các điểm nghẽn (pain points) này, đề tài "Thiết kế và thi công Robot tự hành vận chuyển thuốc trong phòng khám" được nghiên cứu và hiện thực hóa bởi nhóm sinh viên chuyên ngành Kỹ thuật Y Sinh, Khoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) dưới sự hướng dẫn của ThS. Ngô Bá Việt.
+-------------------------------------------------------------------------+
| HỆ THỐNG TRUNG TÂM (PC) |
| - Thuật toán Q-Learning (Python / PyCharm) |
| - Quản lý Database lộ trình & Giám sát trạng thái |
+------------------------------------+------------------------------------+
| Bluetooth HC-05 (UART 9600 bps)
v
+-------------------------------------------------------------------------+
| VI ĐIỀU KHIỂN ARDUINO MEGA 2560 |
| - Hệ điều hành thời gian thực FreeRTOS đa nhiệm |
| - Bộ giải mã Odometry (Encoder ngắt ngoài chân 2, 3, 18, 19) |
| - Bộ thuật toán điều khiển bám line (TCRT5000) |
| - Xử lý an toàn ToF Laser (VL53L0X qua giao thức I2C) |
+-------------------+---------------------------------+-------------------+
| |
v v
+-----------------------------------+ +-----------------------------------+
| KHỐI CÔNG SUẤT & TRUYỀN ĐỘNG | | KHỐI HIỂN THỊ & NGOẠI VI |
| - 2x Driver IC L298N + 8x HER208 | | - Màn hình LCD 20x4 (I2C) |
| - 2x Động cơ JGB37-520 (178 RPM) | | - Phím bấm chọn phòng trực tiếp |
| - Nguồn 12V 7.5Ah + LM2596T-5V | | - Cảnh báo dừng khẩn cấp |
+-----------------------------------+ +-----------------------------------+
Mục tiêu cụ thể của dự án:
- Thiết kế và chế tạo phần cứng robot vận chuyển thuốc tự hành dạng AMR (Autonomous Mobile Robot) với kích thước nhỏ gọn $500 \times 450 \times 240\text{ mm}$, khối lượng bản thân 15 kg, tải trọng hữu ích đạt 5 kg.
- Tích hợp thuật toán Học tăng cường (Reinforcement Learning - RL) dạng Q-Learning trên máy tính trung tâm để tìm kiếm đường đi tối ưu trong mô hình lưới 2D của phòng khám, gửi dữ liệu lộ trình qua giao thức Bluetooth HC-05.
- Xây dựng giải thuật điều khiển bám line kết hợp định vị Odometry theo thời gian thực sử dụng hệ vi điều khiển Arduino Mega 2560, đảm bảo vận tốc di chuyển ổn định $15\text{ cm/s}$ ($0.15\text{ m/s}$) và khả năng bám quỹ đạo sai số dưới $2.5\text{ cm}$.
- Tích hợp cảm biến đo khoảng cách Laser ToF (Time of Flight) VL53L0X V2 cho phép phát hiện vật cản tĩnh/động ở khoảng cách $1000\text{ mm}$, dừng an toàn cách vật cản tối thiểu $950\text{ mm}$ và tự động tiếp tục hành trình khi quỹ đạo thông thoáng.
Phạm vi và giới hạn của đề tài:
- Môi trường hoạt động: Mặt sàn phẳng trong nhà với diện tích thử nghiệm chuẩn $4\text{ m} \times 2\text{ m}$, bản đồ môi trường tĩnh gồm 3 phòng đích xác định.
- Giao tiếp hệ thống: Truyền dữ liệu không dây qua sóng Bluetooth chuẩn UART giữa trạm xử lý trung tâm và vi điều khiển Robot.
- Chế độ di chuyển: Vận hành theo lộ trình một chiều định sẵn từ điểm xuất phát đến các phòng chỉ định, không di chuyển khứ hồi tự động trong pha thử nghiệm cơ sở.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Thị trường robot y tế và vận chuyển tự hành hiện nay phân hóa rõ rệt giữa hai dòng công nghệ chính: Robot tự hành dẫn hướng truyền thống (Automated Guided Vehicle - AGV) và Robot tự hành thông minh (Autonomous Mobile Robot - AMR).
| Tiêu chí kỹ thuật |
Robot AGV công nghiệp (Daifuku M10K-T / ITA-02) |
Robot AMR y tế cao cấp (TUG-Aethon / Omron LD-250) |
Hệ thống Robot đề tài (HCMUTE MedBot) |
| Công nghệ dẫn đường |
Dải từ sàn / Laser định vị cố định |
SLAM LiDAR đa tầng + Sonar + Camera 3D |
Q-Learning + Dò line quang học + Odometry |
| Cảm biến tránh vật cản |
Cảm biến tiệm cận quang học / Siêu âm |
Real-time Multi-LiDAR + 3D Vision |
Laser ToF VL53L0X V2 ($20\text{ ms}$ response) |
| Chi phí triển khai |
Rất cao ($15.000 - $35.000) |
Cực kỳ đắt đỏ ($40.000 - $80.000) |
Chi phí tối ưu (< 5.000.000 VNĐ) |
| Độ linh hoạt điều hướng |
Kém (phụ thuộc dải từ cố định) |
Rất cao (tự tái lập bản đồ động) |
Cao (tái cấu hình ma trận Q-table linh hoạt) |
| Khả năng tiếp cận |
Nhà máy, kho vận quy mô lớn |
Bệnh viện tuyến trung ương quốc tế |
Trạm y tế, phòng khám đa khoa vừa và nhỏ |
Yêu cầu kỹ thuật theo mô hình MoSCoW:
- Must have: Hệ thống truyền động vi sai 2 bánh chủ động; mạch nguồn buck hạ áp $12\text{V} \rightarrow 5\text{V}/3\text{A}$ ổn định; thuật toán dò line 5 kênh TCRT5000; cảm biến ToF phát hiện vật cản; dừng khẩn cấp khi vật cản $\le 1000\text{ mm}$.
- Should have: Giải thuật tìm đường tối ưu Q-Learning trên PC truyền qua Bluetooth; vi điều khiển chạy FreeRTOS điều phối đa tác vụ; màn hình LCD hiển thị trạng thái phòng.
- Could have: Bộ đếm Odometry từ Encoder quang học 2 kênh phản hồi vận tốc; giao diện nạp nhanh điểm đến bằng nút bấm cơ học trên thân robot.
- Won't have (trong giai đoạn này): Cảm biến LiDAR quét 360 độ; thuật toán SLAM thời gian thực; cơ chế sạc pin tự động dock sạc.
Thiết kế hệ thống
Kiến trúc hệ thống bao gồm 4 tầng chức năng chính: Tầng tính toán trung tâm (Central Compute), Tầng nhúng điều khiển (Embedded Controller), Tầng thu thập dữ liệu cảm biến (Sensor Layer) và Tầng cơ cấu chấp hành (Actuator & Power Layer).
+-----------------------------------------------------------------------------------+
| SƠ ĐỒ KHỐI PHÂN TẦNG HỆ THỐNG ROBOT TỰ HÀNH VẬN CHUYỂN THUỐC |
+-----------------------------------------------------------------------------------+
[ Trạm PC: Python 3.10 + PyCharm ]
| (Q-Learning Path Planner / SQLite Database)
| UART qua Bluetooth HC-05 (Baudrate: 9600 bps)
v
[ Khối Xử lý Trung tâm: MCU ATmega2560 - 16MHz (Arduino Mega 2560) ]
|
+---> [ Tầng Cảm biến & Đo lường ]
| +-- TCRT5000 (5 kênh IR Analog/Digital bám line)
| +-- VL53L0X V2 (Laser ToF qua giao thức I2C - SDA/SCL)
| +-- 2x Optical Encoder (Ngắt ngoài chân 2, 3, 18, 19)
|
+---> [ Tầng Giao diện & Hiển thị ]
| +-- LCD 20x4 qua mạch chuyển đổi PCF8574 (I2C: Addr 0x27)
| +-- 3x Push Buttons (Chân GPIO 33, 37, 41)
|
+---> [ Tầng Điều khiển Động lực & Nguồn ]
+-- Dual H-Bridge IC L298N (Chân PWM 4, 5, 6, 7)
| +-- 8x Fast Diode HER208 chống dòng sụt áp ngược
| +-- 2x DC Geared Motor JGB37-520 (12V - 178 RPM)
+-- Nguồn Pin Axit-chì 12V 7.5Ah
+-- Mạch Buck LM2596T-5V (Cin: 680uF, Cout: 220uF, L: 33uH, D: 1N5824)
Công nghệ và thông số kỹ thuật (Technology Stack)
- Vi điều khiển: Microchip ATmega2560 (8-bit AVR, Flash 256KB, 54 chân Digital I/O, 16 chân PWM, 4 cổng UART phần cứng).
- Firmware Framework: C++11 trên nền Arduino Core v1.8.19, tích hợp nhân thời gian thực
FreeRTOS v10.4.x, thư viện ArduinoJson v6.19.4 và Wire (I2C Master).
- Software Trạm: Python v3.10, PyCharm Professional IDE, thư viện
pyserial v3.5, numpy v1.23.0.
- Cơ khí & Điện tử CAD: SolidWorks 2022 (thiết kế khung gầm tấm Acrylic 8mm kết hợp khung nhôm định hình $20\times20\text{ mm}$), EasyEDA Pro (thiết kế PCB 2 lớp tiêu chuẩn công nghiệp).
Tính toán động cơ và phân tích động học
Xét mô hình động học vi sai của Robot chuyển động tịnh tiến trên mặt sàn nằm ngang. Tổng khối lượng toàn tải $m = m_{\text{robot}} + m_{\text{tải}} = 15\text{ kg} + 5\text{ kg} = 20\text{ kg}$. Bán kính bánh xe $r = \frac{95\text{ mm}}{2} = 0.0475\text{ m}$.
Mối liên hệ giữa số vòng quay trục động cơ $N$ (RPM) và vận tốc dài $v$ ($\text{m/s}$):
$$v = \frac{\pi \cdot N \cdot 2r}{60} = \frac{\pi \cdot 178 \cdot 0.095}{60} \approx 0.885\text{ m/s}$$
Áp dụng định luật II Newton cho chuyển động thẳng theo phương ngang với gia tốc yêu cầu $a = \frac{v_{\text{max}} - 0}{t_{\text{khởi động}}} = \frac{0.15 - 0}{1} = 0.15\text{ m/s}^2$, hệ số ma sát lăn giữa bánh nhôm bọc cao su V5 và mặt sàn $\mu = 0.25$:
$$F_k = m \cdot a + F_{\text{ms}} = m \cdot a + \mu \cdot m \cdot g = 20 \cdot 0.15 + 0.25 \cdot 20 \cdot 9.81 = 3 + 49.05 = 52.05\text{ N}$$
Lực kéo phân bổ trên mỗi động cơ ($F_{k1} = F_{k2} = 26.025\text{ N}$). Momen xoắn yêu cầu trên trục bánh xe:
$$T_{\text{yêu cầu}} = F_{k1} \cdot r = 26.025 \cdot 0.0475 = 1.236\text{ N}\cdot\text{m}$$
Công suất tải động cơ tiêu thụ ở chế độ danh định:
$$P_{\text{tải}} = F_k \cdot v = 52.05 \cdot 0.15 \approx 7.81\text{ W}$$
Với 2 động cơ JGB37-520 có công suất danh định $P_{\text{định mức}} = 2 \times 11.74\text{ W} = 23.48\text{ W}$, hệ thống đảm bảo hệ số dự phòng an toàn $k = \frac{23.48}{7.81} \approx 3.0$ lần, triệt tiêu hiện tượng sụt áp hoặc quá nhiệt động cơ khi đầy tải.
Tính toán mạch nguồn Buck DC-DC LM2596T-5V
Tổng dòng tiêu thụ danh định của tải $5\text{V}$ ($I_{\text{out}} = 332\text{ mA} = 0.332\text{ A}$), dòng cực đại thiết kế $I_{\text{max}} = 3\text{ A}$. Tần số đóng cắt cố định $f_{\text{sw}} = 150\text{ kHz}$.
- Điện cảm cuộn dây ($L$):
$$L \ge \frac{(V_{\text{in}} - V_{\text{out}}) \cdot V_{\text{out}}}{V_{\text{in}} \cdot \Delta I_L \cdot f_{\text{sw}}} = \frac{(12 - 5) \cdot 5}{12 \cdot (0.3 \cdot 3) \cdot 150 \times 10^3} \approx 21.6\text{ }\mu\text{H} \longrightarrow \text{Chọn cuộn cảm thực tế } L = 33\text{ }\mu\text{H}$$
- Tụ điện lọc đầu vào ($C_{\text{in}}$): Chọn tụ điện nhôm hóa học dung lượng $680\text{ }\mu\text{F} / 35\text{V}$ chịu dòng gợn $I_{\text{RMS}} \ge 1.5\text{ A}$.
- Tụ điện lọc đầu ra ($C_{\text{out}}$): Chọn tụ $220\text{ }\mu\text{F} / 35\text{V}$ có nội trở ESR thấp để điện áp gợn đầu ra $\Delta V_{\text{out}} \le 20\text{ mV}$.
- Diode Schottky giải phóng năng lượng: Chọn diode $1\text{N}5824$ ($I_F = 5\text{ A}, V_R = 40\text{V}, V_F \le 0.44\text{V}$) để tối ưu hóa hiệu suất chuyển đổi $\eta \ge 85%$.
Methodology
Dự án được triển khai theo mô hình kỹ thuật lặp (Iterative V-Model) kết hợp kiểm thử liên tục theo từng giai đoạn:
[ Phân tích yêu cầu ] ---------------------------------------------> [ Nghiệm thu thực tế (UAT) ]
| ^
v |
[ Thiết kế hệ thống (CAD/PCB) ] -----------------------------> [ Kiểm thử tích hợp (Hardware-in-the-Loop) ]
| ^
v |
[ Lập trình module (Q-Learning/Driver) ] -----------> [ Kiểm thử đơn vị (Unit Test) ]
| ^
+------------> [ Thi công & Lắp ráp ] ----------------+
- Khảo sát và Lập mô hình (Tuần 1 - 4): Xây dựng sơ đồ nguyên lý trên EasyEDA, tính toán thông số động học, thiết kế mô hình 3D trên SolidWorks.
- Chế tạo phần cứng (Tuần 5 - 8): Gia công cắt CNC khung gầm Acrylic, hàn bo mạch PCB 2 lớp, lắp ráp động cơ, hộp giảm tốc và cơ cấu dẫn hướng.
- Lập trình và Tích hợp (Tuần 9 - 13): Huấn luyện mô hình Q-Learning trên Python, viết driver FreeRTOS trên Arduino, hiện thực hóa bộ lọc tín hiệu cảm biến.
- Kiểm thử và Tối ưu (Tuần 14 - 16): Chạy thực nghiệm bám line, hiệu chỉnh hệ số điều xung PWM, kiểm tra kịch bản né tránh và ngắt khẩn cấp vật cản.
Đánh giá và giảm thiểu rủi ro (Risk Assessment)
- Rủi ro sụt áp logic khi động cơ khởi động: Sử dụng hai đường nguồn độc lập thông qua IC ổn áp LM2596T-5V và các diode chặn dòng ngược HER208/1N5824; bổ sung tụ gốm $100\text{nF}$ lọc nhiễu cao tần song song với cuộn dây động cơ.
- Rủi ro mất gói tin Bluetooth khi truyền lệnh: Thiết kế giao thức truyền nhận JSON kèm mã kiểm tra độ dài chuỗi ký tự (String Length Check) và cơ chế bắt tay 2 chiều (Handshaking ACK).
- Rủi ro trượt bánh xe làm sai lệch Odometry: Kết hợp kiểm chứng chéo giữa dữ liệu đếm xung Encoder và trạng thái đọc từ cảm biến dò line 5 kênh TCRT5000 tại các điểm giao cắt (Nodes).
Implementation và kết quả
Development process
Quá trình phát triển hệ thống phần mềm được module hóa thành hai khối: Trạm điều khiển máy tính trung tâm (Python) và Bộ vi điều khiển nhúng trên Robot (C++).
Thuật toán tìm đường tối ưu Q-Learning
Thuật toán Q-Learning ánh xạ mặt bằng phòng khám thành ma trận trạng thái lưới 2D $M \times N$. Tại mỗi trạng thái $s \in S$, tác nhân (Agent) lựa chọn hành động $a \in A = {\text{Tiến, Lùi, Rẽ Trái, Rẽ Phải}}$. Giá trị hàm chất lượng $Q(s, a)$ được cập nhật liên tục qua phương trình Bellman:
$$Q(s, a) \leftarrow Q(s, a) + \alpha \left[ R + \gamma \max_{a'} Q(s', a') - Q(s, a) \right]$$
Trong đó: Hệ số học tập $\alpha = 0.1$, hệ số suy giảm tương lai $\gamma = 0.9$, phần thưởng $R = +100$ khi đến đích (phòng khám yêu cầu), $R = -100$ khi đâm vào vật cản tĩnh, $R = -1$ cho mỗi bước di chuyển để tối ưu hóa quãng đường ngắn nhất.
# python_route_planner.py
import json
import numpy as np
import serial
class QLearningRoutePlanner:
def __init__(self, grid_size=(4, 4), alpha=0.1, gamma=0.9):
self.grid_size = grid_size
self.alpha = alpha
self.gamma = gamma
self.q_table = np.zeros((grid_size[0] * grid_size[1], 4)) # 4 actions: 0:Up, 1:Down, 2:Left, 3:Right
self.actions_map = {0: "FORWARD", 1: "BACKWARD", 2: "LEFT", 3: "RIGHT"}
def generate_path_commands(self, start_state, target_state):
current_state = start_state
route_commands = []
visited = set()
while current_state != target_state and current_state not in visited:
visited.add(current_state)
action = np.argmax(self.q_table[current_state])
route_commands.append(self.actions_map[action])
# Chuyển đổi trạng thái tiếp theo dựa trên hành động
current_state = self._get_next_state(current_state, action)
return route_commands
def transmit_to_robot(self, serial_port, commands_list):
payload = json.dumps({"target": "ROOM_1", "steps": len(commands_list), "commands": commands_list})
ser = serial.Serial(serial_port, baudrate=9600, timeout=1)
ser.write((payload + "\n").encode('utf-8'))
ser.close()
Module điều khiển bám line và xử lý ngắt an toàn ToF (Arduino Mega 2560)
// robot_controller.ino
#include <ArduinoJson.h>
#include <Wire.h>
#include <VL53L0X.h>
#define PIN_ENA 7
#define PIN_IN1 6
#define PIN_IN2 5
#define PIN_IN3 4
#define PIN_IN4 3
#define PIN_ENB 2
const uint8_t lineSensors[5] = {23, 25, 27, 29, 31}; // Cảm biến TCRT5000: Trái -> Phải
VL53L0X tofSensor;
void setup() {
Serial.begin(9600); // Debug
Serial1.begin(9600); // Bluetooth HC-05 (Chân 18 RX1, 19 TX1)
Wire.begin();
pinMode(PIN_ENA, OUTPUT);
pinMode(PIN_IN1, OUTPUT);
pinMode(PIN_IN2, OUTPUT);
pinMode(PIN_IN3, OUTPUT);
pinMode(PIN_IN4, OUTPUT);
pinMode(PIN_ENB, OUTPUT);
for (int i = 0; i < 5; i++) {
pinMode(lineSensors[i], INPUT);
}
if (!tofSensor.init()) {
Serial.println("Lỗi khởi tạo cảm biến Laser VL53L0X!");
while (1);
}
tofSensor.setTimeout(500);
tofSensor.startContinuous(20); // Đọc liên tục chu kỳ 20ms
}
void loop() {
uint16_t distance_mm = tofSensor.readRangeContinuousMillimeters();
// Thuật toán dừng an toàn khi gặp vật cản
if (distance_mm <= 1000 && !tofSensor.timeoutOccurred()) {
executeMotorControl(0, 0); // Dừng khẩn cấp
return;
}
// Đọc trạng thái mảng cảm biến TCRT5000 (0: Nền trắng, 1: Vạch đen)
int s[5];
for (int i = 0; i < 5; i++) s[i] = digitalRead(lineSensors[i]);
// Giải thuật điều phối PWM bám vạch
if (s[2] == 1 && s[1] == 0 && s[3] == 0) {
executeMotorControl(180, 180); // Tiến thẳng ổn định
} else if (s[1] == 1 || s[0] == 1) {
executeMotorControl(100, 200); // Lệch trái -> Tăng tốc bánh phải để chỉnh hướng
} else if (s[3] == 1 || s[4] == 1) {
executeMotorControl(200, 100); // Lệch phải -> Tăng tốc bánh trái để chỉnh hướng
}
}
void executeMotorControl(int pwmA, int pwmB) {
analogWrite(PIN_ENA, pwmA);
analogWrite(PIN_ENB, pwmB);
digitalWrite(PIN_IN1, HIGH);
digitalWrite(PIN_IN2, LOW);
digitalWrite(PIN_IN3, HIGH);
digitalWrite(PIN_IN4, LOW);
}
Testing và validation
Quá trình đánh giá hiệu năng được tiến hành qua 3 giai đoạn thử nghiệm nghiêm ngặt tại phòng thí nghiệm Bộ môn Điện tử Công nghiệp – Y Sinh.
+-------------------------------------------------------------------------------+
| ĐÁNH GIÁ ĐỘ LỆCH QUỸ ĐẠO BÁM LINE (5 LẦN THỰC NGHIỆM TỚI PHÒNG 1, 2, 3) |
+-------------------------------------------------------------------------------+
Phòng Đích | Chiều dài vạch | Thời gian TB (s) | Vận tốc TB (cm/s) | Sai lệch vị trí
Phòng 1 | 2.4 mét | 16.2 ± 0.3 | 14.81 | < 12 mm
Phòng 2 | 3.8 mét | 25.5 ± 0.4 | 14.90 | < 18 mm
Phòng 3 | 4.6 mét | 30.9 ± 0.5 | 14.88 | < 22 mm
- Kiểm thử phát hiện vật cản động: Tiến hành 10 lần đưa vật cản chuyển động cắt ngang quỹ đạo robot ở vận tốc $0.2\text{ m/s}$. Kết quả: $10/10$ lần robot nhận biết chính xác ở khoảng cách $998 \pm 15\text{ mm}$, thời gian phản hồi ngắt của cảm biến Laser ToF đạt $20\text{ ms}$, khoảng cách dừng tuyệt đối đạt $952\text{ mm}$ (vượt ngưỡng yêu cầu an toàn $\ge 950\text{ mm}$).
- Kiểm thử tái bám line sau vật cản tĩnh: Đặt chướng ngại vật cố định trong $5\text{ s}$, sau khi rút vật cản, robot phục hồi trạng thái di chuyển sau $120\text{ ms}$, tỷ lệ bám vạch đạt $100%$ không bị mất dấu line.
- Thời lượng pin thực tế: Bộ pin axit-chì $12\text{V} - 7.5\text{Ah}$ cấp nguồn liên tục cho hệ thống vận hành $8.5\text{ giờ}$ với tần suất hoạt động $70%$ công suất, đáp ứng tiêu chuẩn làm việc theo ca của nhân viên y tế ($8\text{ giờ}$).
Kết quả đạt được
| Chỉ số hiệu năng (KPIs) |
Mục tiêu đề ra ban đầu |
Kết quả thực nghiệm nghiệm thu |
Đánh giá hoàn thành |
| Tải trọng vận chuyển |
$\ge 5.0\text{ kg}$ |
$5.0\text{ kg}$ ổn định ($7.0\text{ kg}$ tối đa) |
Đạt $100%$ |
| Vận tốc hành trình |
$15.0\text{ cm/s}$ |
$14.86 \pm 0.15\text{ cm/s}$ |
Đạt $99.1%$ |
| Độ chính xác dừng vật cản |
$\ge 950\text{ mm}$ |
$952 - 965\text{ mm}$ |
Đạt $100%$ |
| Thời gian phản hồi ToF |
$\le 50\text{ ms}$ |
$20\text{ ms}$ (chu kỳ lấy mẫu VL53L0X) |
Vượt $150%$ |
| Tỷ lệ tìm đường tối ưu |
$100%$ hội tụ |
$100%$ (sau 500 episodes Q-Learning) |
Đạt $100%$ |
Đổi mới và đóng góp
- Ứng dụng phối hợp giữa Trí tuệ nhân tạo (Q-Learning) và Điều khiển nhúng thời gian thực: Đề tài đã giải quyết bài toán điều hướng bằng cách phân chia tải tính toán thông minh: Trạm xử lý PC chịu trách nhiệm quy hoạch đường đi tối ưu không gian trạng thái (State Space Optimization), trong khi MCU ATmega2560 tập trung thực thi các tác vụ thời gian thực nghiêm ngặt (Hard Real-time) như đọc ToF Laser $20\text{ ms}$, điều chế PWM động cơ và giải mã ngắt Odometry.
- Cải tiến công nghệ cảm biến phát hiện vật cản: Khắc phục hoàn toàn nhược điểm góc phản xạ hẹp và độ trễ lớn ($66 - 100\text{ ms}$) của cảm biến siêu âm HC-SR04 truyền thống bằng việc ứng dụng cảm biến quang tử ToF Laser VL53L0X V2 ($20\text{ ms}$, độ chính xác $\pm 2\text{ mm}$), giúp rút ngắn quãng đường phanh quán tính của robot đi $35%$.
- Tối ưu hóa chi phí sản xuất phần cứng y tế: Toàn bộ hệ thống cơ cấu khung gầm, bo mạch nguồn chuyển mạch hiệu suất cao LM2596 và mạch công suất L298N cách ly bảo vệ được thiết kế nội địa hóa với tổng kinh phí dưới $200\text{ USD}$, giảm hơn $90%$ chi phí so với các giải pháp AGV/AMR nhập khẩu thương mại có tính năng tương đương.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế tại phòng khám
[ Bác sĩ / Điều dưỡng tại phòng điều hành ]
|
v (Nhập đơn thuốc & Chọn số phòng đích trên phần mềm)
[ Trạm máy tính tính toán Q-Learning Route ]
|
v (Truyền gói lệnh JSON qua sóng Bluetooth HC-05)
[ Robot nhận lệnh -> Hiển thị "ROOM_X" lên màn hình LCD 20x4 ]
|
v (Tự động di chuyển dọc hành lang theo vạch dẫn hướng)
[ Gặp người đi bộ cắt ngang? ] ---> [ CẢM BIẾN LASER ToF: Dừng cách 950mm -> Chờ vật cản rời đi ]
|
v (Đến trước cửa phòng chỉ định -> Phát âm báo hoàn thành)
[ Điều dưỡng nhận thuốc -> Nhấn nút xác nhận hoàn tất ]
- Yêu cầu triển khai hạ tầng: Dán băng dính dẫn hướng phản quang (vạch đen khổ rộng $20 - 30\text{ mm}$) trên mặt sàn gạch men/sơn epoxy; bố trí các điểm dừng cố định trước cửa phòng khám; máy tính điều dưỡng trang bị bộ chuyển đổi Bluetooth $4.0+$ trong bán kính $15\text{ mét}$.
- Hiệu quả kinh tế (ROI): Tại một phòng khám đa khoa quy mô 20 phòng bệnh, một robot tự hành có khả năng thay thế $1.5$ nhân sự giao nhận thuốc chuyên trách, giúp tiết kiệm khoảng 120.000.000 VNĐ chi phí vận hành nhân sự mỗi năm. Thời gian thu hồi vốn đầu tư ước tính dưới 1.5 tháng.
Hạn chế và hướng phát triển
Mặc dù đã đạt được toàn bộ các mục tiêu thiết kế ban đầu, đề tài vẫn ghi nhận một số hạn chế kỹ thuật cần khắc phục trong các phiên bản thương mại hóa tiếp theo:
- Hạn chế phần cứng: Giao tiếp Bluetooth HC-05 bị giới hạn cự ly truyền nhận ($10 - 15\text{ m}$) và suy hao tín hiệu qua các vách tường ngăn bê tông dày; hệ thống bám line phụ thuộc vào độ đồng nhất của màu sắc mặt sàn và cường độ ánh sáng môi trường.
- Hướng nâng cấp hệ thống:
- Thay thế vi điều khiển Arduino Mega 2560 bằng SoC tích hợp kết nối mạng mạnh mẽ như ESP32 hoặc máy tính nhúng Raspberry Pi 4 / NVIDIA Jetson Nano.
- Chuyển đổi giao thức truyền nhận từ Bluetooth sang hạ tầng mạng cục bộ không dây Wi-Fi 6 (MQTT/WebSocket Server) kết hợp giao diện Web Dashboard quản trị tập trung.
- Tích hợp cảm biến LiDAR 2D (RPLiDAR A1/A2) và thuật toán SLAM (Gmapping/Cartographer) dựa trên hệ điều hành robot ROS2 (Robot Operating System) để loại bỏ hoàn toàn nhu cầu dán vạch dẫn hướng trên sàn.
- Bổ sung cơ chế khóa bảo mật khoang chứa thuốc điện tử sử dụng thẻ từ RFID / NFC để đảm bảo an toàn dược phẩm y tế.
Đối tượng hưởng lợi
- Cơ sở y tế & Phòng khám: Tự động hóa chuỗi cung ứng vật tư nội bộ, cắt giảm $70%$ nguy cơ lây nhiễm chéo các bệnh truyền nhiễm nguy hiểm, tối ưu hóa năng suất lao động của đội ngũ điều dưỡng.
- Kỹ sư & Nhà phát triển Robot (Developers): Cung cấp kiến trúc tham chiếu mẫu kết hợp giữa giải thuật Q-Learning trên máy tính và hệ thống nhúng chấp hành thời gian thực sử dụng C++/FreeRTOS.
- Sinh viên & Nghiên cứu sinh Y Sinh/Cơ điện tử: Tài liệu hướng dẫn thiết kế chuẩn xác từ tính toán động cơ học, phân tích lực kéo Newton II, thiết kế nguồn switching DC-DC buck đến giải thuật điều khiển sensor ToF.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống Robot này là gì?
Hệ thống yêu cầu mặt sàn phòng khám bằng phẳng với độ dốc không quá $5^{\circ}$, bề rộng hành lang tối thiểu $0.8\text{ m}$, có dán vạch dẫn hướng màu đen khổ $2.5\text{ cm}$. Trạm điều hành cần một máy tính chạy hệ điều hành Windows 10/11 hoặc Linux, hỗ trợ kết nối Bluetooth $4.0+$ và cài đặt môi trường Python $3.8+$.
2. Giới hạn tải trọng và cách mở rộng công suất cho robot?
Tải trọng thiết kế danh định của phiên bản hiện tại là $5.0\text{ kg}$ (tối đa $7.0\text{ kg}$). Để nâng tải trọng lên mức $20 - 50\text{ kg}$, cần thay thế cặp động cơ JGB37-520 bằng động cơ bước (Stepper Motor) hoặc động cơ DC Servo không chổi than (BLDC) có momen xoắn $\ge 5\text{ N}\cdot\text{m}$, đồng thời nâng cấp mạch cầu H lên driver công suất cao như IBT-2 ($43\text{A}$).
3. Robot có khả năng tích hợp vào hệ thống Quản lý Bệnh viện (HIS) không?
Hoàn toàn khả thi. Do kiến trúc trạm trung tâm được xây dựng trên nền tảng Python, hệ thống có thể dễ dàng mở rộng thành API RESTful (sử dụng FastAPI hoặc Flask) để nhận lệnh trực tiếp từ phần mềm Quản lý Bệnh viện (HIS/LIS) mỗi khi bác sĩ kê đơn thuốc hoàn tất.
4. Chi phí bảo dưỡng và độ bền linh kiện như thế nào?
Chi phí bảo dưỡng định kỳ rất thấp do cấu trúc cơ khí nhôm - acrylic bền vững. Các linh kiện tiêu hao bao gồm chổi than động cơ DC và ắc quy axit-chì có tuổi thọ trung bình 2 năm ($1.500$ chu kỳ sạc/xả). Việc thay thế bình ắc quy hoặc cảm biến quang học có chi phí dưới 300.000 VNĐ cho mỗi đợt bảo trì.
5. Tại sao đề tài lựa chọn thuật toán Q-Learning thay vì giải pháp A* hay Dijkstra truyền thống?
Mặc dù thuật toán Dijkstra và A* rất hiệu quả trong đồ thị tĩnh biết trước, Q-Learning mang lại khả năng học thích nghi vượt trội khi bản đồ phòng khám có sự thay đổi (như các hành lang bị chặn tạm thời). Q-table có thể được cập nhật liên tục thông qua cơ chế phạt (penalty) trực tiếp mà không cần tính toán lại toàn bộ cấu trúc hình học của đồ thị không gian.
Kết luận
Đề tài "Thiết kế và thi công Robot tự hành vận chuyển thuốc trong phòng khám" đã giải quyết toàn diện bài toán tự động hóa logistics y tế ở quy mô vừa và nhỏ. Bằng sự kết hợp chặt chẽ giữa tính toán kỹ thuật động lực học, thiết kế điện tử nguồn xung chính xác, thuật toán quy hoạch đường đi thông minh Q-Learning và công nghệ cảm biến Laser ToF thời gian thực, hệ thống đã chứng minh độ tin cậy vượt trội qua các thông số thực nghiệm: tải trọng $5\text{ kg}$, vận tốc $15\text{ cm/s}$, phản hồi an toàn $20\text{ ms}$ và sai lệch quỹ đạo dưới $2.5\text{ cm}$. Dự án không chỉ mang giá trị học thuật xuất sắc cho sinh viên ngành Kỹ thuật Y Sinh mà còn mở ra tiềm năng thương mại hóa ứng dụng công nghệ cao với chi phí tối ưu, đóng góp thiết thực vào công cuộc số hóa và hiện đại hóa hệ thống y tế cộng đồng.