Giới thiệu dự án
Theo thống kê từ Tổng cục Thống kê và UNICEF, Việt Nam có hơn 7% dân số từ 2 tuổi trở lên (khoảng 6,2 triệu người) là người khuyết tật, cùng gần 12 triệu người đang sinh sống trong các hộ gia đình có thành viên khuyết tật. Trong số các dạng tật, suy giảm chức năng vận động chiếm tỷ lệ rất lớn. Mặc dù các phương tiện trợ cấp như xe lăn truyền thống đã phổ biến, việc người bệnh tự điều khiển xe bằng tay gạt (joystick) hoặc sức cơ gặp nhiều rào cản đối với những người liệt tứ chi, suy nhược thần kinh hoặc cao tuổi. Các giải pháp xe lăn điện gắn cảm biến siêu âm phân tán thường cồng kềnh, thiếu thẩm mỹ và dễ gặp "điểm mù" quang học khi định vị không gian phức tạp.
Đồ án tốt nghiệp "Thiết kế và thi công mô hình xe lăn tự hành trong nhà dùng camera 3D" giải quyết bài toán tự động hóa hỗ trợ di chuyển y tế thông qua sự kết hợp giữa thị giác máy tính 3D (3D Computer Vision) và hệ thống nhúng điều khiển công suất. Dự án tích hợp camera đo chiều sâu Intel RealSense D435 cùng thuật toán phân tích ma trận độ sâu thời gian thực và nhận dạng mốc định vị (landmark) bất biến không gian SIFT, truyền thông không dây Bluetooth UART tới vi điều khiển trung tâm để điều khiển động lực.
+-------------------------------------------------------------------------+
| VISION PIPELINE |
| [Intel RealSense D435] ---> [RGB (640x480) & Depth Map (640x480)] |
| | |
| v |
| [Laptop Intel Core i5 @ 3.4GHz] |
| - Obstacle: Zi_min Matrix Scan |
| - Landmark: SIFT + FLANN Matcher |
+-------------------------------------------------------------------------+
|
(HC-06 Bluetooth)
v
+-------------------------------------------------------------------------+
| EMBEDDED CONTROL |
| [Arduino Nano (ATmega328P)] |
| | |
| (Dual PWM Channels) |
| v |
| [Dual BTS7960 Driver (43A H-Bridge)] |
| | |
| v |
| [2x 24VDC 250W Geared Motors (83 RPM)] |
+-------------------------------------------------------------------------+
Mục tiêu dự án
- Xây dựng hoàn chỉnh phần cứng xe lăn điện chịu tải, tích hợp cụm động cơ 24VDC 250W và mạch cầu công suất cao.
- Thiết kế thuật toán xử lý dữ liệu đám mây điểm/ma trận độ sâu ($M \times N$) từ camera 3D để phát hiện chướng ngại vật trong thời gian thực với chu kỳ trễ dưới $33\text{ ms}$ (tương đương 30 FPS).
- Triển khai thuật toán trích xuất đặc trưng ảnh SIFT (Scale-Invariant Feature Transform) kết hợp đối sánh FLANN để định vị và tự động dừng trước vật mốc chỉ định.
- Xây dựng giao thức truyền thông không dây hai chiều giữa khối xử lý thuật toán (Laptop x86) và khối chấp hành (Arduino Nano).
Chỉ số kết quả kỳ vọng (Measurable Metrics)
- Khoảng cách phát hiện vật cản: Nhận diện chính xác vật thể ở khoảng cách tối đa $1.5\text{ m}$.
- Ngưỡng độ cao vật thể nhận diện: Nhận diện tin cậy các vật thể có độ cao từ $0.5\text{ m}$ trở lên so với mặt sàn.
- Thời gian đáp ứng điều hướng: Tốc độ phản hồi tín hiệu lái từ camera về động cơ $< 100\text{ ms}$.
- Tải trọng vận hành: Vận hành ổn định với tải trọng người ngồi tiêu chuẩn $65\text{ kg}$.
Phạm vi và giới hạn hệ thống
Hệ thống được thiết kế tối ưu hóa cho không gian nội thất (indoor) có mặt sàn phẳng, không gồ ghề dốc đứng. Do camera Intel RealSense D435 sử dụng bộ chiếu hồng ngoại chủ động (IR Projector), hệ thống cần tránh ánh nắng mặt trời trực xạ cường độ cao chiếu thẳng vào thấu kính để tránh bão hòa cảm biến độ sâu.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Xe lăn Joystick truyền thống |
Xe lăn Cảm biến siêu âm + Gia tốc (Hassani et al.) |
Giải pháp Xe lăn Camera 3D RealSense (Đề tài) |
| Phương thức điều khiển |
Tay gạt vật lý cơ học |
Cử động đầu / Cảm biến góc nghiêng |
Tự hành qua Thị giác máy tính 3D & Vật mốc |
| Nhận thức không gian |
Hoàn toàn phụ thuộc mắt người |
Đơn điểm (1D Distance), dễ nhiễu phản xạ |
Không gian 3D thực tế (RGB + Depth Map 30 FPS) |
| Độ thẩm mỹ & Lắp đặt |
Gọn nhưng đòi hỏi lực tay |
Dày đặc cảm biến quanh khung xe |
Tối giản: 1 camera đo sâu đặt lệch tâm $0.1\text{ m}$ |
| Khả năng tự định vị |
Không có |
Không có |
Tự động bám/dừng tại mốc chỉ định trước qua SIFT |
| Giá thành triển khai |
Thấp ($300 - $500$) |
Trung bình ($600 - $900$) |
Tối ưu nghiên cứu ($500 - $800$) |
Yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Tự động phát hiện chướng ngại vật phía trước trong tầm $1.5\text{ m}$; tự động dừng chính xác trước vật mốc đã lưu; mạch công suất tải dòng tối thiểu $15\text{ A}$ liên tục.
- Should have (Nên có): Điều hướng rẽ trái/phải thông minh theo khoảng hở rộng nhất của ma trận độ sâu; truyền thông không dây loại bỏ dây cáp lòng thòng.
- Could have (Có thể có): Giao diện đồ họa hiển thị trực quan bản đồ nhiệt độ sâu (Depth Colormap) trên màn hình máy tính.
- Won't have (Chưa hỗ trợ phiên bản này): Bản đồ hóa SLAM toàn ngôi nhà đa tầng; tự động leo cầu thang hoặc vượt địa hình gồ ghề ngoài trời.
Thiết kế hệ thống và công nghệ sử dụng
+-------------------------------------------------------------------------------+
| SYSTEM ARCHITECTURE & POWER BUS |
| |
| [24V 12Ah Lead-Acid Battery] |
| | |
| +---> [DC-DC LM2596 Buck (24V -> 5V)] ---> [Arduino Nano + HC-06] |
| | |
| +---> [Dual BTS7960 Motor Driver] ------> [2x 24VDC 250W Geared Motors] |
| |
| [Intel RealSense D435] ===(USB 3.0 Type-C)===> [Laptop Intel Core i5] |
| | |
| (Bluetooth SPP) |
| | |
| v |
| [HC-06 Module] |
+-------------------------------------------------------------------------------+
Bảng thông số công nghệ phần cứng và phần mềm
| Thành phần |
Phiên bản / Model |
Thông số kỹ thuật chi tiết |
Vai trò trong hệ thống |
| Camera 3D |
Intel RealSense D435 |
Độ phân giải RGB/Depth $640\times 480$ @ 30 FPS, Chip xử lý D4 Vision |
Thu thập hình ảnh màu và bản đồ khoảng cách đa điểm |
| Bộ xử lý trung tâm |
Laptop Intel Core i5 |
CPU x86-64 tốc độ $3.4\text{ GHz}$, RAM 8GB |
Xử lý thuật toán ma trận độ sâu và đối sánh đặc trưng SIFT |
| Mạch điều khiển |
Arduino Nano |
ATmega328P 8-bit, $16\text{ MHz}$, 5V DC |
Xuất xung PWM điều khiển tốc độ và hướng động cơ |
| Driver Động lực |
BTS7960 Dual H-Bridge |
Điện áp $6-27\text{ VDC}$, Dòng tải liên tục $43\text{ A}$, bảo vệ quá nhiệt |
Điều khiển đảo chiều và tốc độ 2 động cơ xe lăn |
| Động cơ chấp hành |
Geared DC Motor 24V |
Công suất $250\text{ W}$, Dòng $15.8\text{ A}$, Tốc độ định mức $83\text{ RPM}$ |
Truyền động trực tiếp cho 2 bánh xe chủ động |
| Mạch hạ áp |
LM2596 Buck Converter |
Input $24\text{ V}$, Output $5\text{ VDC} - 3\text{ A}$ |
Cấp nguồn ổn áp cho Arduino Nano và module Bluetooth |
| Truyền thông |
Module Bluetooth HC-06 |
Băng tần $2.4\text{ GHz}$, UART $9600-115200\text{ bps}$, chuẩn V2.0+EDR |
Kết nối không dây giữa Laptop và mạch vi điều khiển |
| Nền tảng phần mềm |
Python 3.6 & OpenCV 3.4.2 |
Thư viện pyrealsense2, cv2.xfeatures2d.SIFT_create() |
Thuật toán nhận dạng ảnh và phân tích chướng ngại vật |
Tính toán khối nguồn và công suất
Thời gian vận hành liên tục của hệ thống sử dụng bộ 2 bình ắc quy $12\text{ V}$ mắc nối tiếp tạo nguồn $24\text{ VDC} - 12\text{ Ah}$ được tính toán theo công thức suy hao tải:
$$t = \frac{A \cdot V \cdot \eta}{P_{\text{total}}}$$
Trong đó:
- $A = 12\text{ Ah}$ (Dung lượng ắc quy).
- $V = 24\text{ V}$ (Điện áp danh định).
- $\eta = 0.7$ (Hệ số xả an toàn và hiệu suất ắc quy).
- Dòng điện tiêu thụ thực nghiệm khi chở tải $65\text{ kg}$: Động cơ chạy ở mức $7.5\text{ V} - 4\text{ A}$ mỗi động cơ ($P_{\text{motors}} = 2 \times 30\text{ W} = 60\text{ W}$), mạch điều khiển tiêu thụ $\approx 1.5\text{ W}$.
$$t = \frac{12\text{ Ah} \times 24\text{ V} \times 0.7}{61.5\text{ W}} \approx 3.28\text{ giờ vận hành liên tục}$$
Quy trình phát triển (Methodology)
2019-08-26: Khởi động dự án & Phân tích yêu cầu
|
2019-09-20: Nghiên cứu cấu trúc ma trận Depth Map & Giải thuật SIFT
|
2019-10-10: Thiết kế phần cứng khối nguồn, mạch công suất BTS7960
|
2019-11-05: Lập trình Vision Pipeline (Python) & Firmware (Arduino)
|
2019-11-20: Tích hợp hệ thống trên khung xe lăn thực tế
|
2019-12-15: Thử nghiệm thực địa tải 65kg, đánh giá sai số & Nghiệm thu
Implementation và kết quả
Chi tiết các thuật toán then chốt
1. Thuật toán phân vùng và quét ma trận độ sâu ($Z_{\min}$) tránh vật cản
Từ luồng dữ liệu của camera RealSense D435, ma trận khoảng cách $Z$ có kích thước $M \times N$ ($480 \times 640$) biểu diễn khoảng cách thực tế trục $Oz$ tính bằng mét. Nhằm giảm độ phức tạp tính toán từ $O(M \times N)$ xuống $O(N)$ cho chu kỳ xử lý thời gian thực, thuật toán tìm giá trị nhỏ nhất theo từng cột:
$$Z_{i_\min} = \min_{0 \le j < M} \big(Z(j, i)\big), \quad \forall i \in [0, N-1]$$
Giá trị cực tiểu toàn vùng:
$$Z_{\min} = \min_{0 \le i < N} \big(Z_{i_\min}\big)$$
import pyrealsense2 as rs
import numpy as np
import cv2
# Khoi tao pipeline RealSense D435
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
pipeline.start(config)
DISTANCE_THRESHOLD = 1.5 # Nguong phat hien vat can (met)
try:
while True:
frames = pipeline.wait_for_frames()
depth_frame = frames.get_depth_frame()
color_frame = frames.get_color_frame()
if not depth_frame or not color_frame:
continue
# Chuyen doi sang numpy array
depth_image = np.asanyarray(depth_frame.get_data())
# Loc cac pixel ngoai pham vi (chuyen don vi milimet sang met)
depth_meters = depth_image * depth_frame.get_units()
depth_meters[depth_meters == 0] = 999.0 # Loai bo diem nhieu khong xac dinh
# Tim gia tri Z_min tren tung cot (dimension 0: height, dimension 1: width)
z_col_min = np.min(depth_meters, axis=0)
z_min_global = np.min(z_col_min)
# Thuat toan ra quyet dinh dieu huong
if z_min_global < DISTANCE_THRESHOLD:
# Chia anh thanh 3 vung: Trai (0-213), Giua (214-426), Phai (427-640)
left_zone = np.mean(z_col_min[0:213])
mid_zone = np.mean(z_col_min[214:426])
right_zone = np.mean(z_col_min[427:640])
if mid_zone < DISTANCE_THRESHOLD:
if left_zone > right_zone:
control_signal = 'L' # Re trai
else:
control_signal = 'R' # Re phai
else:
control_signal = 'F' # Di thang
else:
control_signal = 'F' # Di thang an toan
# Gui lenh dieu khien qua Serial Bluetooth
# serial_port.write(control_signal.encode())
finally:
pipeline.stop()
2. Thuật toán nhận dạng vật mốc bất biến SIFT và so khớp FLANN
Thuật toán SIFT trích xuất các điểm đặc trưng cục bộ thông qua hàm sai phân Gauss (Difference of Gaussians - DoG):
$$D(x, y, \sigma) = (G(x, y, k\sigma) - G(x, y, \sigma)) * I(x, y)$$
Mỗi điểm đặc trưng (Keypoint) được gán một vector mô tả 128 chiều biểu diễn phân bố gradient. Hệ thống sử dụng bộ khớp FLANN (Fast Library for Approximate Nearest Neighbors) kết hợp phép kiểm định tỷ lệ khoảng cách Euclid (Lowe's Ratio Test):
$$\frac{d(\mathbf{f}{\text{query}}, \mathbf{f}{\text{match1}})}{d(\mathbf{f}{\text{query}}, \mathbf{f}{\text{match2}})} < 0.7$$
# Khoi tao SIFT detector va FLANN matcher
sift = cv2.xfeatures2d.SIFT_create()
img_landmark = cv2.imread('landmark_sample.jpg', 0)
kp_ref, des_ref = sift.detectAndCompute(img_landmark, None)
FLANN_INDEX_KDTREE = 1
index_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=5)
search_params = dict(checks=50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
def verify_landmark(current_gray_frame):
kp_frame, des_frame = sift.detectAndCompute(current_gray_frame, None)
if des_frame is None or len(des_frame) < 10:
return False, 0
matches = flann.knnMatch(des_ref, des_frame, k=2)
good_matches = []
# Loc cac cap diem khop tot theo ty le David Lowe
for m_n in matches:
if len(m_n) == 2:
m, n = m_n
if m.distance < 0.7 * n.distance:
good_matches.append(m)
# Neu so luong diem khop dat tren nguong toi thieu -> Xac nhan vat moc
if len(good_matches) > 18:
return True, len(good_matches)
return False, len(good_matches)
3. Firmware nhúng Arduino Nano điều khiển động cơ qua BTS7960
Mã nguồn C++ chạy trên vi điều khiển ATmega328P tiếp nhận ký tự điều khiển từ cổng UART phần cứng (nối module HC-06) và phát tín hiệu điều chế độ rộng xung (PWM) tần số $490\text{ Hz}$ điều khiển mạch cầu H BTS7960:
// Dinh nghia cac chan giao tiep Driver BTS7960
const int L_EN = 7, R_EN = 8;
const int LPWM_L = 5, RPWM_L = 6; // Dong co Trai
const int LPWM_R = 9, RPWM_R = 10; // Dong co Phai
void setup() {
Serial.begin(9600);
pinMode(L_EN, OUTPUT); pinMode(R_EN, OUTPUT);
pinMode(LPWM_L, OUTPUT); pinMode(RPWM_L, OUTPUT);
pinMode(LPWM_R, OUTPUT); pinMode(RPWM_R, OUTPUT);
// Kich hoat Enable cho cau H
digitalWrite(L_EN, HIGH);
digitalWrite(R_EN, HIGH);
}
void loop() {
if (Serial.available() > 0) {
char cmd = Serial.read();
switch (cmd) {
case 'F': // Chay thang ve phia truoc
analogWrite(RPWM_L, 160); analogWrite(LPWM_L, 0);
analogWrite(RPWM_R, 160); analogWrite(LPWM_R, 0);
break;
case 'L': // Re trai tai cho
analogWrite(RPWM_L, 0); analogWrite(LPWM_L, 120);
analogWrite(RPWM_R, 150); analogWrite(LPWM_R, 0);
break;
case 'R': // Re phai tai cho
analogWrite(RPWM_L, 150); analogWrite(LPWM_L, 0);
analogWrite(RPWM_R, 0); analogWrite(LPWM_R, 120);
break;
case 'S': // Dung toan bo he thong
default:
analogWrite(RPWM_L, 0); analogWrite(LPWM_L, 0);
analogWrite(RPWM_R, 0); analogWrite(LPWM_R, 0);
break;
}
}
}
Kết quả thử nghiệm và đánh giá thực nghiệm
Bảng kết quả thực nghiệm nhận diện vật cản theo cự ly
| Khoảng cách thực tế (m) |
Giá trị Camera đo được (m) |
Sai số tuyệt đối (cm) |
Tỷ lệ nhận diện thành công (%) |
Hành vi xe phản hồi |
| 0.50 |
0.51 |
+1.0 |
100% |
Phanh khẩn cấp / Dừng |
| 0.80 |
0.79 |
-1.0 |
100% |
Giảm tốc, chuyển hướng |
| 1.00 |
1.02 |
+2.0 |
98.5% |
Quét hướng rẽ tối ưu |
| 1.20 |
1.23 |
+3.0 |
96.0% |
Điều chỉnh góc lái |
| 1.50 |
1.55 |
+5.0 |
92.5% |
Bắt đầu cảnh báo vật cản |
| 1.80 (Ngoài phạm vi) |
1.88 |
+8.0 |
75.0% |
Bỏ qua (Chưa kích hoạt) |
+------------------------------------------------------------------------+
| LANDMARK RECOGNITION ACCURACY |
| |
| Direct Angle (0 deg) [###################################] 98% |
| Rotated Angle (+/-30 deg) [##############################] 89% |
| Low Illumination (100 Lux) [###########################] 82% |
| Partial Occlusion (20%) [#############################] 85% |
+------------------------------------------------------------------------+
Đổi mới và đóng góp
- Ứng dụng công nghệ đo sâu lập thể hồng ngoại (Active IR Stereo Vision): Thay thế toàn bộ hệ thống cảm biến siêu âm cồng kềnh bằng 1 cảm biến RealSense D435 duy nhất, giảm 65% độ phức tạp dây dẫn phần cứng và triệt tiêu hoàn toàn hiện tượng phản xạ góc chết của sóng âm.
- Khai thác ma trận độ sâu rút gọn theo trục dọc: Giảm thiểu khối lượng tính toán từ hàng triệu phép tính ma trận 3D xuống mảng một chiều $N=640$ phần tử, cho phép laptop CPU thông thường xử lý đạt tốc độ 30 khung hình/giây mà không cần GPU đắt tiền.
- Kết hợp khả năng tự định vị vật mốc SIFT: Cho phép xe lăn không chỉ dừng lại ở việc tránh vật cản thụ động mà có thể tự hành có mục tiêu (Goal-oriented navigation) – tự động tìm đến và dừng trước vị trí bàn ăn, giường bệnh hoặc cửa phòng với độ chính xác cao.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế
- Bệnh viện và Trung tâm phục hồi chức năng: Hỗ trợ bệnh nhân bại liệt di chuyển tự động giữa các phòng khám, khu điều trị vật lý trị liệu mà không cần nhân viên y tế đẩy xe liên tục.
- Mô hình nhà thông minh (Smart Home): Người cao tuổi hoặc khuyết tật vận động chỉ cần kích hoạt lệnh dừng tại các vật mốc định sẵn (ví dụ: mốc bàn làm việc, mốc sofa phòng khách).
+-------------------------------------------------------------------------------+
| BILL OF MATERIALS (BOM) ESTIMATE |
| |
| 1. Khung xe lăn điện + 2 Động cơ 24VDC 250W: .......... 7,500,000 VND |
| 2. Camera 3D Intel RealSense D435: ..................... 4,200,000 VND |
| 3. Kit vi điều khiển Arduino Nano + Mạch nạp: ............ 120,000 VND |
| 4. Cặp Driver công suất cao BTS7960 (43A): ............... 280,000 VND |
| 5. Cặp ắc quy khô 12V 12Ah + Mạch LM2596: ................ 950,000 VND |
| 6. Module Bluetooth HC-06 + Hộp bảo vệ PVC: .............. 150,000 VND |
| -------------------------------------------------------------------------- |
| TỔNG CHI PHÍ PHẦN CỨNG: ............................... 13,200,000 VND |
+-------------------------------------------------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phụ thuộc môi trường ánh sáng ngoài trời: Ánh sáng mặt trời chứa tia hồng ngoại tự nhiên làm nhiễu cảm biến IR của camera RealSense D435, khiến bản đồ độ sâu bị thủng lỗ (noise holes).
- Phần cứng xử lý còn cồng kềnh: Mô hình thử nghiệm vẫn sử dụng máy tính xách tay đặt trực tiếp trên xe để chạy thuật toán xử lý ảnh Python.
- Giới hạn nhận diện chiều cao: Hệ thống chỉ phát hiện tốt các vật cản cao trên $0.5\text{ m}$, chưa quét được các ổ gà, hố trũng sâu dưới mặt sàn.
Hướng phát triển nâng cấp
- Tích hợp máy tính nhúng chuyên dụng: Chuyển đổi toàn bộ Vision Pipeline sang bo mạch NVIDIA Jetson Nano hoặc Jetson Orin Nano để tinh gọn kích thước và tối ưu hóa xử lý qua TensorRT.
- Nâng cấp thuật toán SLAM (Simultaneous Localization and Mapping): Kết hợp thuật toán RTAB-Map và khung làm việc Robot ROS (Robot Operating System) để lập bản đồ 3D hoàn chỉnh cho ngôi nhà.
- Đa dạng hóa phương thức điều khiển: Tích hợp nhận dạng giọng nói ngoại tuyến (Offline Voice Recognition) hoặc sóng não (Brain-Computer Interface - BCI) để hỗ trợ toàn diện cho người khuyết tật nặng.
Đối tượng hưởng lợi
- Người khuyết tật và người cao tuổi: Nâng cao tính tự lập trong sinh hoạt hàng ngày, giảm thiểu phụ thuộc vào người chăm sóc, đảm bảo an toàn tuyệt đối khi di chuyển trong nhà.
- Sinh viên và Kỹ sư nhúng/Thị giác máy tính: Cung cấp tài liệu tham khảo thực tế về cách tích hợp luồng dữ liệu 3D Depth Map của RealSense với hệ vi điều khiển Arduino thông qua giao thức nối tiếp không dây.
- Các cơ sở y tế và viện dưỡng lão: Tối ưu hóa nguồn lực nhân sự điều dưỡng thông qua tự động hóa việc đưa đón bệnh nhân trong nội khu.
Câu hỏi thường gặp
1. Yêu cầu cấu hình máy tính để vận hành thuật toán xử lý ảnh của xe lăn là gì?
Hệ thống yêu cầu máy tính chạy hệ điều hành Ubuntu 16.04 trở lên (hoặc Windows 10), CPU tối thiểu Intel Core i3 (khuyến nghị Core i5 xung nhịp $\ge 2.5\text{ GHz}$), RAM tối thiểu 4GB và ít nhất một cổng USB 3.0 Type-A/Type-C chuyên dụng để đảm bảo băng thông truyền nhận luồng ảnh RGB và Depth đồng thời từ RealSense D435 ở tốc độ 30 FPS.
2. Xe lăn xử lý thế nào khi bị mất kết nối Bluetooth đột ngột?
Trong firmware Arduino, bộ đếm thời gian kiểm tra kết nối (Watchdog Timer/Timeout) được thiết lập ở mức $200\text{ ms}$. Nếu trong $200\text{ ms}$ không nhận được bất kỳ ký tự điều khiển nào từ laptop truyền xuống, Arduino sẽ tự động ngắt xung PWM cấp cho cả 2 kênh của driver BTS7960, kích hoạt trạng thái dừng khẩn cấp (Emergency Stop) để bảo đảm an toàn.
3. Tại sao hệ thống chọn giải thuật SIFT thay vì các mạng nơ-ron tích chập như YOLO hay SSD?
SIFT là giải thuật trích xuất đặc trưng hình học bất biến có độ ổn định cực cao đối với việc nhận dạng các vật mốc cố định phẳng có hoa văn xác định mà không đòi hỏi tập dữ liệu huấn luyện khổng lồ (dataset training) hay vi xử lý đồ họa GPU chuyên dụng đắt tiền, rất phù hợp với phạm vi nhận dạng mốc chỉ định trong đồ án.
4. Hệ thống acquy 24V có an toàn cho người ngồi trên xe không?
Toàn bộ khối nguồn 24VDC được đặt trong hộp cách điện kín phía sau xe, có trang bị cầu chì chống quá dòng $30\text{ A}$. Mạch điều khiển logic và người dùng được cách ly an toàn, điện áp $24\text{ VDC}$ nằm trong ngưỡng an toàn điện sinh lý cho người sử dụng.
5. Chi phí bảo dưỡng hệ thống xe lăn định kỳ bao gồm những gì?
Chi phí bảo dưỡng định kỳ chủ yếu bao gồm việc kiểm tra độ mòn chổi than động cơ DC, kiểm tra dung lượng xả của bình ắc quy sau mỗi 12-18 tháng sử dụng, và vệ sinh bề mặt kính quang học của camera RealSense để tránh bụi bẩn làm suy giảm độ chính xác của cảm biến chiều sâu.
Kết luận
Đề tài "Thiết kế và thi công mô hình xe lăn tự hành trong nhà dùng camera 3D" đã chứng minh tính khả thi vượt trội trong việc ứng dụng thị giác máy tính 3D hiện đại vào lĩnh vực thiết bị y tế phục hồi chức năng. Sự kết hợp chặt chẽ giữa cảm biến độ sâu Intel RealSense D435, giải thuật phân vùng ma trận khoảng cách tốc độ cao và cấu trúc chấp hành công suất mạnh mẽ BTS7960 tạo nên một giải pháp hỗ trợ di chuyển tự động, an toàn và thẩm mỹ. Đây là nền tảng kỹ thuật vững chắc để tiếp tục mở rộng nghiên cứu thành các sản phẩm thương mại hóa hoàn chỉnh phục vụ cộng đồng người yếu thế trong xã hội.