Giới thiệu dự án
Trong kỷ nguyên Công nghiệp 4.0, robot công nghiệp và các cơ cấu chấp hành tự động hóa đóng vai trò xương sống trong dây chuyền sản xuất thông minh. Tại Việt Nam, sự hiện diện của robot công nghiệp đã bùng nổ mạnh mẽ tại các tổ hợp chế tạo ô tô (VinFast, Toyota, Ford) cũng như ngành công nghiệp điện tử viễn thông với kim ngạch xuất khẩu đạt trên 140 tỷ USD. Tuy nhiên, việc điều khiển và can thiệp vận hành cánh tay robot trong các môi trường khắc nghiệt — như khu vực nhiễm xạ, khai thác khoáng sản hầm lò, xử lý hóa chất độc hại hay cứu hộ cứu nạn — vẫn đặt ra thách thức lớn về an toàn lao động và độ linh hoạt khi thao tác từ xa (teleoperation).
Phương thức điều khiển cánh tay robot truyền thống chủ yếu dựa vào bàn dạy (teach pendant) hoặc cần điều khiển (joystick). Các phương pháp này đòi hỏi người vận hành phải qua đào tạo chuyên sâu, thiếu tính trực quan không gian và có thời gian phản hồi chậm khi xử lý tác vụ phức tạp. Các giải pháp tân tiến như găng tay xúc giác (Haptic Glove) hay thị giác máy tính nhận dạng cử chỉ (Vision-based CNN) tuy mang lại tính trực quan nhưng lại gặp phải các rào cản lớn: chi phí phần cứng đắt đỏ, cấu trúc cơ khí cồng kềnh, độ trễ thuật toán cao và nhạy cảm với điều kiện che khuất tầm nhìn (occlusion).
Đồ án "Thiết kế và chế tạo bộ điều khiển cánh tay máy từ xa sử dụng mô đun đo lường quán tính" do sinh viên Lê Viết Đạt thực hiện dưới sự hướng dẫn của TS. Huỳnh Bá Phúc (Trường Đại học Phenikaa, 2024) tập trung giải quyết bài toán điều khiển teleoperation thời gian thực cho cánh tay robot 6 bậc tự do (6 DoF) bằng cách kết hợp cảm biến quán tính MEMS và nền tảng IoT công nghiệp.
+-----------------------------------------------------------------------------------+
| HỆ THỐNG TELEOPERATION |
+-----------------------------------+-----------------------------------------------+
|
+-------------------------+-------------------------+
| |
v v
+-----------------------+ +-----------------------+
| CỤM ĐIỀU KHIỂN (A) | | CỤM ROBOT (B) |
| - Cảm biến IMU | -----[ MQTT over IP ]---> | - Bộ giải nghịch IK |
| - Lọc Alpha-Beta/HPF | | - Quỹ đạo bậc 3 |
| - Vi điều khiển MCU | | - Driver PWM & Servo |
+-----------------------+ +-----------------------+
Mục tiêu kỹ thuật cụ thể của dự án:
- Chế tạo phần cứng điều khiển đeo tay (Cụm A): Thu thập và xử lý dữ liệu định hướng không gian 3 chiều (Roll, Pitch, Yaw) và gia tốc tịnh tiến từ cảm biến quán tính IMU 9 trục.
- Xây dựng mô hình động học Robot 6 DoF (Cụm B): Thiết lập bảng thông số Denavit-Hartenberg (D-H), giải bài toán động học thuận (Forward Kinematics) và động học ngược (Inverse Kinematics) theo thời gian thực trên máy tính nhúng.
- Phát triển thuật toán nội suy quỹ đạo: Ứng dụng phương trình đa thức bậc 3 để tối ưu hóa vận tốc và gia tốc quay của từng khớp, triệt tiêu hiện tượng giật động cơ (jerk).
- Xây dựng hạ tầng truyền thông không dây: Triển khai giao thức MQTT qua Wi-Fi/Internet, đảm bảo thời gian truyền nhận tín hiệu điều khiển có độ trễ cực thấp.
- Thực nghiệm hệ thống: Đánh giá độ ổn định, sai số bám quỹ đạo và tính khả thi trên mô hình vật lý phỏng theo cánh tay robot công nghiệp IRB 1600.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí kỹ thuật |
Găng tay xúc giác (Evan Capelle, 2020) |
Thị giác máy tính CNN (Hongyong Song, 2016) |
Hệ thống IMU + IoT (Đồ án đề xuất) |
| Chi phí phần cứng |
Rất cao (> 1.500 USD) |
Trung bình (Camera + GPU) |
Thấp (< 150 USD) |
| Độ trễ xử lý |
Thấp (15 – 30 ms) |
Cao (80 – 200 ms do suy luận mạng nơ-ron) |
Thấp (20 – 40 ms) |
| Ảnh hưởng môi trường |
Bị giới hạn bởi dây dẫn và độ bền cơ khí |
Nhạy cảm với ánh sáng, góc khuất tầm nhìn |
Hoạt động tốt trong mọi môi trường, không bị che khuất |
| Tính linh hoạt |
Nặng nề, khó cử động tự nhiên |
Người dùng phải đứng trong khung hình camera |
Nhẹ, gắn trực tiếp cổ tay/bàn tay, di động hoàn toàn |
| Độ phức tạp tính toán |
Trung bình |
Rất cao (yêu cầu phần cứng biên mạnh) |
Nhẹ (xử lý trực tiếp trên MCU và SBC giá rẻ) |
Phân loại yêu cầu hệ thống theo mô hình MoSCoW:
- Must-have (Bắt buộc): Giải thuật động học ngược 6 DoF hội tụ trong chu kỳ < 20 ms; truyền nhận gói tin góc quay qua MQTT với độ trễ < 50 ms; lọc triệt tiêu trôi dạt (drift) tín hiệu gia tốc quán tính.
- Should-have (Cần có): Nội suy quỹ đạo làm mịn chuyển động theo đa thức bậc 3; cơ chế tự động khôi phục kết nối khi ngắt mạng.
- Could-have (Có thể có): Giao diện quan sát hình ảnh thời gian thực truyền trực tiếp từ camera giám sát cạnh robot.
- Won't-have (Chưa triển khai): Cảm biến phản hồi lực xúc giác khép vòng kín (haptic force feedback) lên tay người dùng.
Thiết kế hệ thống
Kiến trúc hệ thống được phân rã thành 3 khối xử lý chính:
[BNO055 (IMU)] --(I2C)--> [ESP32 Node A] --(MQTT/WiFi)--> [MQTT Broker]
|
(MQTT/WiFi)
v
[Servos 1-6] <--(PWM)-- [PCA9685] <--(I2C)-- [ESP32 Node B] <--(UART)-- [Raspberry Pi 3B+]
1. Cụm thiết bị điều khiển đeo tay (Wearable Node A):
- Cảm biến IMU Bosch BNO055: Tích hợp bộ xử lý ARM Cortex-M0 chạy thuật toán Sensor Fusion 9 trục (Accelerometer $\pm 16g$, Gyroscope $\pm 2000^\circ/\text{s}$, Magnetometer $\pm 1300,\mu\text{T}$), trích xuất Quaternion và góc Euler tuyệt đối.
- Vi điều khiển ESP32-WROOM-32: Bộ xử lý kép Xtensa 32-bit LX6 xung nhịp 240 MHz. Tiếp nhận luồng dữ liệu I2C từ BNO055, thực hiện lọc thông dải và đóng gói dữ liệu JSON gửi lên MQTT Broker qua Wi-Fi 802.11 b/g/n (2.4 GHz).
2. Cụm xử lý động học trung tâm (Processing Core):
- Máy tính nhúng Raspberry Pi 3 Model B+: Bộ xử lý Broadcom BCM2837B0 Quad-core Cortex-A53 64-bit @ 1.4 GHz, RAM 1 GB LPDDR2. Đóng vai trò MQTT Subscriber, tiếp nhận tọa độ $(x, y, z)$ và hướng $(\alpha, \beta, \gamma)$, thực thi thuật toán giải động học ngược dựa trên ma trận Jacobian cải tiến, sau đó truyền 6 góc khớp $\mathbf{q} = [q_1, q_2, q_3, q_4, q_5, q_6]^T$ sang Cụm B qua giao tiếp Serial UART (Baudrate 115200 bps).
3. Cụm cơ cấu chấp hành Robot (Actuator Node B):
- Khung cơ khí cánh tay robot SNAM 1400: Cấu trúc 6 bậc tự do mô phỏng hình học ABB IRB 1600 với các kích thước khâu: $l_1 = 75,\text{mm}$, $a_1 = 42,\text{mm}$, $a_2 = 95,\text{mm}$, $a_3 = 18,\text{mm}$, $l_4 = 166,\text{mm}$, $l_6 = 27,\text{mm}$.
- Hệ truyền động: 06 động cơ Servo kim loại MG996R (lực kéo 11 kg.cm tại 6V, tốc độ $0.14,\text{s}/60^\circ$).
- Driver điều khiển PCA9685: IC tạo xung PWM 16 kênh độ phân giải 12-bit điều khiển qua I2C từ ESP32 phụ trách chấp hành.
Bảng thông số động học Denavit-Hartenberg (D-H)
Ma trận biến đổi thuần nhất tổng quát giữa hai khâu tọa độ liên tiếp:
$$A_i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i\cos\alpha_i & \sin\theta_i\sin\alpha_i & a_i\cos\theta_i \ \sin\theta_i & \cos\theta_i\cos\alpha_i & -\sin\theta_i\sin\alpha_i & a_i\sin\theta_i \ 0 & \sin\alpha_i & \cos\alpha_i & d_i \ 0 & 0 & 0 & 1 \end{bmatrix}$$
| Khâu ($i$) |
Chiều dài khâu $a_i$ (mm) |
Góc xoắn khâu $\alpha_i$ (rad) |
Khoảng cách dịch chuyển $d_i$ (mm) |
Biến khớp $\theta_i$ (rad) |
Giới hạn góc quay |
| 1 |
$a_1 = 42$ |
$\pi / 2$ |
$d_1 = 75$ |
$q_1$ |
$-90^\circ \sim +90^\circ$ |
| 2 |
$a_2 = 95$ |
$0$ |
$0$ |
$q_2$ |
$+32^\circ \sim +167^\circ$ |
| 3 |
$a_3 = 18$ |
$\pi / 2$ |
$0$ |
$q_3$ |
$-69^\circ \sim +14^\circ$ |
| 4 |
$0$ |
$-\pi / 2$ |
$d_4 = 166$ |
$q_4$ |
$-90^\circ \sim +90^\circ$ |
| 5 |
$0$ |
$\pi / 2$ |
$0$ |
$q_5$ |
$-90^\circ \sim +90^\circ$ |
| 6 |
$0$ |
$\pi$ |
$d_6 = 27$ |
$q_6$ |
$-90^\circ \sim +90^\circ$ |
Implementation và kết quả
Development Process & Thuật toán then chốt
1. Thuật toán giải động học ngược dựa trên ma trận Jacobian cải tiến
Phương pháp giải tích truyền thống cho robot 6 DoF không có cổ tay hình cầu (non-spherical wrist) rất khó suy ra nghiệm đóng tường minh. Đồ án áp dụng phương pháp số Newton-Raphson kết hợp giả nghịch đảo ma trận Moore-Penrose:
$$\Delta \mathbf{q} = \mathbf{J}^\dagger (\mathbf{q}) \cdot \Delta \mathbf{x} = \left( \mathbf{J}^T \mathbf{J} \right)^{-1} \mathbf{J}^T \cdot \left( \mathbf{x}_{\text{target}} - f(\mathbf{q}_k) \right)$$
Đổi mới cốt lõi: Thay vì sử dụng vector sai lệch hướng 9 phần tử từ ma trận quay $\mathbf{R}_6^0$ (dẫn đến ma trận Jacobian kích thước $12 \times 6$ cồng kềnh), tác giả biểu diễn hướng khâu tác động cuối thông qua 3 góc Euler $(\alpha, \beta, \gamma)$ theo chuẩn ZYX:
$$\alpha = \operatorname{atan2}(b_z, c_z), \quad \beta = -\operatorname{atan}\left(\frac{a_z}{\sqrt{1 - a_z^2}}\right), \quad \gamma = \operatorname{atan2}(a_y, a_x)$$
Nhờ đó, vector vị trí - hướng được rút gọn chính xác thành $\mathbf{x} = [x, y, z, \alpha, \beta, \gamma]^T \in \mathbb{R}^6$, giúp ma trận Jacobian có kích thước chuẩn $6 \times 6$:
import numpy as np
def inverse_kinematics_jacobian(x_target, q_init, max_iter=50, epsilon=1e-3):
"""
Giải động học ngược cho Robot 6 DoF bằng phương pháp Newton-Raphson
x_target: Vector mục tiêu [x, y, z, alpha, beta, gamma] (mm, độ)
q_init: Cấu hình góc khớp ban đầu [q1, q2, q3, q4, q5, q6] (rad)
"""
q = np.array(q_init, dtype=float)
for iteration in range(max_iter):
# Tính động học thuận và vị trí/hướng hiện tại f(q)
H06 = forward_kinematics(q)
x_current = extract_pose_euler(H06)
# Vector sai lệch
delta_x = x_target - x_current
if np.linalg.norm(delta_x) < epsilon:
return q, True # Hội tụ thành công
# Tính ma trận Jacobian 6x6 bằng vi phân số hoặc giải tích
J = compute_jacobian_6x6(q)
# Tính giả nghịch đảo ma trận Jacobian (Moore-Penrose Pseudo-inverse)
J_pinv = np.linalg.pinv(J)
# Cập nhật góc khớp
delta_q = np.dot(J_pinv, delta_x)
q = q + delta_q
return q, False # Vượt quá số bước lặp
2. Xử lý tín hiệu cảm biến quán tính (Lọc Alpha-Beta & Lọc thông cao HPF)
Tín hiệu gia tốc tuyến tính $a(t)$ thu được từ cảm biến IMU bị nhiễu cao tần do rung động cơ học và trôi dạt DC (drift) khi tích phân ra vận tốc và quãng đường. Hệ thống sử dụng bộ lọc phối hợp:
- Lọc Alpha-Beta ($\alpha$-$\beta$): Làm mịn tín hiệu gia tốc thô $a_z$:
$$x_k = x_{k-1} + v_{k-1}\Delta t + \alpha (z_k - x_{k-1})$$
$$v_k = v_{k-1} + \beta \frac{z_k - x_{k-1}}{\Delta t}$$
- Lọc thông cao (High-Pass Filter - HPF): Triệt tiêu thành phần trôi dạt tích phân vận tốc trục $Z$:
$$v_{\text{filtered}}[k] = \gamma \cdot v_{\text{filtered}}[k-1] + \gamma \cdot (v[k] - v[k-1])$$
(với hệ số $\gamma \approx 0.95$, tần số cắt $f_c = 0.5,\text{Hz}$).
// Đoạn mã lọc gia tốc và khử trôi trên ESP32
float alpha = 0.85, beta = 0.05;
float a_filtered = 0.0, v_raw = 0.0, v_filtered = 0.0;
float prev_v_raw = 0.0, prev_v_filtered = 0.0;
const float gamma_hpf = 0.95;
void process_imu_data(float raw_accel_z, float dt) {
// 1. Bộ lọc Alpha-Beta làm mịn gia tốc
a_filtered = a_filtered + alpha * (raw_accel_z - a_filtered);
// 2. Tích phân sơ bộ ra vận tốc
v_raw += a_filtered * dt;
// 3. Lọc thông cao HPF triệt tiêu sai số tích lũy (Drift)
v_filtered = gamma_hpf * prev_v_filtered + gamma_hpf * (v_raw - prev_v_raw);
prev_v_raw = v_raw;
prev_v_filtered = v_filtered;
}
3. Bộ tạo quỹ đạo vận tốc đa thức bậc 3
Để tránh sốc tải cơ khí cho hệ servo MG996R, chuyển động giữa hai điểm góc khớp $q(t_0) = q_0$ và $q(t_f) = q_f$ với vận tốc tại điểm đầu/cuối bằng 0 ($\dot{q}(t_0) = 0, \dot{q}(t_f) = 0$) được quy hoạch theo phương trình:
$$q(t) = a_0 + a_1 t + a_2 t^2 + a_3 t^3$$
Hệ số được xác định tường minh:
$$a_0 = q_0, \quad a_1 = 0, \quad a_2 = \frac{3(q_f - q_0)}{t_f^2}, \quad a_3 = -\frac{2(q_f - q_0)}{t_f^3}$$
Testing và validation
1. Đánh giá tốc độ hội tụ của thuật toán Động học ngược (IK)
Thử nghiệm trên máy tính nhúng Raspberry Pi 3 Model B+ (chạy Python 3.9 / NumPy) trên 1.000 điểm đích ngẫu nhiên trong không gian công tác:
| Phương pháp tính toán |
Kích thước Jacobian |
Số vòng lặp trung bình |
Thời gian tính toán trung bình |
Tỷ lệ hội tụ ($\epsilon < 10^{-3}$) |
| Jacobian cổ điển (12 phương trình) |
$12 \times 6$ |
32.4 bước |
$48.6,\text{ms}$ |
91.2% |
| Jacobian 6 phương trình cơ bản |
$6 \times 6$ |
21.8 bước |
$28.2,\text{ms}$ |
94.5% |
| Jacobian Euler tối ưu (Đề tài đề xuất) |
$\mathbf{6 \times 6}$ |
9.6 bước |
$12.4,\text{ms}$ |
98.8% |
Nhận xét: Việc đưa 3 góc Euler $(\alpha, \beta, \gamma)$ vào vector trạng thái giúp đạo hàm riêng trơn tru hơn, giảm hơn 56% thời gian tính toán và đảm bảo đáp ứng tần số quét điều khiển thời gian thực ($> 50,\text{Hz}$).
THỜI GIAN TÍNH TOÁN IK (ms)
Jacobian cổ điển (12x6) : [====================================] 48.6 ms
Jacobian 6x6 cơ bản : [=====================] 28.2 ms
Jacobian Euler đề xuất : [=========] 12.4 ms
2. Độ trễ truyền thông qua giao thức MQTT
[Wearable Node A] --(12ms)--> [Broker] --(14ms)--> [Raspberry Pi 3B+] --(8ms UART)--> [Node B]
Total End-to-End Latency: ~34 ms
- Mạng cục bộ (Local Wi-Fi LAN): Độ trễ gói tin trung bình đạt $22 – 35,\text{ms}$, không xảy ra hiện tượng mất gói tin (Packet Loss Rate = 0% ở QoS 1).
- Mạng diện rộng (Internet Broker): Độ trễ duy trì ở mức $65 – 95,\text{ms}$, đáp ứng hoàn hảo tiêu chuẩn điều khiển bám chuyển động từ xa của con người (ngưỡng chấp nhận được $< 150,\text{ms}$).
Kết quả đạt được
+-------------------------------------------------------------------------+
| SO SÁNH MỤC TIÊU VÀ KẾT QUẢ ĐẠT ĐƯỢC |
+------------------------------------+------------------------------------+
| CHỈ TIÊU KỸ THUẬT | KẾT QUẢ THỰC TẾ |
+------------------------------------+------------------------------------+
| Số bậc tự do điều khiển | 6 DoF độc lập |
| Tần số trích xuất IMU | 100 Hz |
| Chu kỳ tính toán IK | 12.4 ms (Hội tụ 98.8%) |
| Sai số vị trí tĩnh khâu cuối | +/- 3.8 mm |
| Độ trễ điều khiển thời gian thực | 34 ms (Mạng nội bộ) |
+------------------------------------+------------------------------------+
- Khảo sát không gian làm việc thực tế phù hợp hoàn toàn với tính toán mô phỏng 3D trên MATLAB: Bán kính với tới cực đại $R_{\max} = 346,\text{mm}$, góc xoay đế $180^\circ$.
- Robot thực hiện mượt mà các thao tác gắp, đặt và bám theo cử động cổ tay người vận hành mà không bị hiện tượng rung lắc giật cục nhờ quy hoạch vận tốc bậc 3.
Đổi mới và đóng góp
- Thuật toán ma trận Jacobian 6x6 rút gọn theo góc Euler: Đột phá trong việc tối ưu hóa khối lượng tính toán đại số tuyến tính trên các máy tính đơn bo (SBC) giá rẻ, giải quyết triệt để nút thắt cổ chai về hiệu năng khi chạy thuật toán lặp Newton-Raphson.
- Cấu trúc lọc phân tầng kết hợp trên vi điều khiển ESP32: Tận dụng năng lực phần cứng lõi kép để thực thi song song: Core 0 phụ trách truyền thông MQTT/Wi-Fi, Core 1 xử lý lọc dữ liệu IMU $\alpha$-$\beta$ và HPF, giúp giải phóng hoàn toàn tài nguyên CPU.
- Mô hình Teleoperation phân tán phi tập trung: Tách biệt rõ ràng giữa tầng thu thập cử chỉ (Sensing), tầng tính toán động học hình học (Kinematics Computing) và tầng tạo xung chấp hành (Actuation Driver), cho phép dễ dàng mở rộng sang các cơ cấu tay máy công nghiệp hạng nặng khác mà không cần tái cấu trúc toàn bộ phần mềm.
Ứng dụng thực tế và triển khai
+-------------------------------------------------------------------------+
| CÁC KỊCH BẢN ỨNG DỤNG THỰC TẾ |
+-------------------------------------------------------------------------+
|-- 1. Môi trường nguy hiểm (Hóa chất độc hại, phòng sạch, nhiễm xạ)
|-- 2. Đào tạo, giáo dục đại học (Mô hình trực quan môn Robot học)
|-- 3. Hỗ trợ phẫu thuật / Y tế từ xa (Tele-medicine manipulation)
|-- 4. Thao tác cứu nạn, gỡ bom mìn (EOD Robot integration)
Yêu cầu triển khai hệ thống:
- Nguồn cấp: Nguồn tổ ong $5\text{V} - 10\text{A}$ chuyên dụng cho hệ thống 6 Servo MG996R; Nguồn $5\text{V} - 3\text{A}$ Type-C cho Raspberry Pi 3B+; Pin Li-po 3.7V kèm mạch Boost $5\text{V}$ cho bộ điều khiển đeo tay.
- Môi trường mạng: Router Wi-Fi chuẩn 802.11 b/g/n, hỗ trợ cấu hình Port Forwarding hoặc kết nối Cloud Broker (HiveMQ, EMQX) nếu vận hành xuyên lục địa.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại:
- Hệ thống điều khiển vòng hở: Động cơ RC Servo MG996R không có bộ mã hóa góc quay quang học (Optical Encoder) phản hồi trực tiếp vị trí thực tế về bộ điều khiển trung tâm, dẫn đến sai số tích lũy do rơ cơ khí sau thời gian dài vận hành.
- Trôi dạt tích phân vị trí tịnh tiến: Bộ lọc HPF chỉ triệt tiêu được trôi dạt vận tốc ở mức tương đối; việc xác định tọa độ $(x, y, z)$ của bàn tay người trong không gian tự do chỉ dựa trên IMU vẫn tồn tại sai số trôi dạt nếu người dùng giữ yên tay quá lâu.
Hướng phát triển:
- Nâng cấp phần cứng chấp hành: Thay thế Servo RC bằng động cơ bước vòng kín (Closed-loop Stepper Motor) hoặc động cơ DC Servo không chổi than (BLDC) tích hợp hộp giảm tốc sóng (Harmonic Drive) để nâng cao tải trọng và triệt tiêu độ rơ.
- Ứng dụng thuật toán lọc Kalman mở rộng (EKF): Kết hợp cảm biến IMU với cảm biến định vị khoảng cách quang học (ToF / UWB) để triệt tiêu hoàn toàn sai số trôi dạt tọa độ tuyệt đối.
- Tích hợp hệ điều hành Robot ROS2: Chuyển đổi toàn bộ kiến trúc điều khiển trên Raspberry Pi sang nền tảng ROS2 Humble và MoveIt2 để tận dụng các giải thuật tránh vật cản tự động (Collision Avoidance).
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điều khiển & Tự động hóa, Cơ điện tử, Robotics: Tài liệu tham khảo hoàn chỉnh từ thiết lập toán học ma trận D-H, thuật toán Jacobian, đến kỹ thuật lập trình nhúng thời gian thực trên ESP32/Raspberry Pi.
- Kỹ sư R&D và Lập trình viên nhúng: Nắm bắt mô hình kiến trúc phân tán điều khiển cơ cấu chấp hành nhiều bậc tự do qua giao thức MQTT với chi phí phần cứng tối thiểu.
- Doanh nghiệp & Cơ sở sản xuất: Nền tảng tham khảo để chế tạo các module điều khiển gắp/đặt linh kiện từ xa cho công nhân trong môi trường nhiệt độ cao hoặc độc hại.
Câu hỏi thường gặp
1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu 01 bo mạch ESP32-WROOM-32, 01 cảm biến IMU 9 DoF (BNO055 hoặc MPU9250), 01 máy tính nhúng Raspberry Pi 3 Model B+ (hoặc máy tính cá nhân chạy Linux/Windows), 01 mạch PCA9685 và bộ khung cánh tay robot 6 DoF sử dụng động cơ có lực kéo tối thiểu $10,\text{kg}\cdot\text{cm}$.
2. Làm thế nào để giải quyết hiện tượng điểm kỳ dị (Singularity) của ma trận Jacobian?
Khi cánh tay duỗi thẳng hoàn toàn hoặc các khớp đồng trục, ma trận $\mathbf{J}$ mất hạng và không thể nghịch đảo. Đồ án sử dụng phương pháp giả nghịch đảo Moore-Penrose numpy.linalg.pinv() (dựa trên phân tích suy biến SVD) kết hợp phương pháp nghịch đảo tắt dần (Damped Least Squares - Levenberg-Marquardt), giúp thuật toán luôn ổn định và không bị chia cho 0 tại lân cận điểm kỳ dị.
3. Hệ thống có thể tích hợp vào các nền tảng mạng công nghiệp sẵn có không?
Hoàn toàn có thể. Do sử dụng giao thức chuẩn MQTT qua TCP/IP, hệ thống dễ dàng kết nối với các hệ thống SCADA, PLC hiện đại (Siemens S7-1500, Beckhoff) hoặc các nền tảng đám mây IoT (AWS IoT Core, Azure IoT Hub, Node-RED) mà không cần thay đổi cấu trúc phần cứng.
4. Chi phí chế tạo toàn bộ hệ thống là bao nhiêu?
Tổng chi phí linh kiện phần cứng cho mô hình thử nghiệm dao động từ 2.500.000 đến 3.200.000 VNĐ (chưa bao gồm Raspberry Pi), tiết kiệm hơn 90% so với việc trang bị các bộ găng tay Master-Slave thương mại chuyên dụng.
5. Tại sao không giải động học ngược trực tiếp trên ESP32 mà phải truyền qua Raspberry Pi?
Việc giải lặp ma trận $6 \times 6$ yêu cầu tính toán ma trận nghịch đảo số học thực liên tục với độ chính xác dấu phẩy động 64-bit kép (Double Precision). ESP32 tuy có FPU nhưng hiệu năng tính toán ma trận không thể so sánh với CPU ARM Cortex-A53 64-bit trên Raspberry Pi. Phân tách nhiệm vụ giúp ESP32 tập trung tuyệt đối vào việc tạo xung PWM mượt mà và đọc dữ liệu cảm biến tần số cao.
Kết luận
Đồ án tốt nghiệp "Thiết kế và chế tạo bộ điều khiển cánh tay máy từ xa sử dụng mô đun đo lường quán tính" của tác giả Lê Viết Đạt đã hiện thực hóa thành công một giải pháp điều khiển teleoperation thời gian thực hoàn chỉnh cho cánh tay robot 6 DoF. Bằng việc kết hợp sáng tạo giữa thuật toán giải động học ngược Jacobian rút gọn theo góc Euler, bộ lọc xử lý trôi dạt quán tính phân tầng và kiến trúc truyền thông MQTT phân tán, hệ thống đạt độ ổn định cao, tốc độ đáp ứng nhanh ($< 35,\text{ms}$) và vận hành mượt mà trên phần cứng chi phí thấp. Đây là công trình nghiên cứu ứng dụng có giá trị học thuật và thực tiễn cao, mở ra hướng đi đầy triển vọng trong việc nội địa hóa các giải pháp robot điều khiển từ xa phục vụ công nghiệp và an ninh quốc phòng tại Việt Nam.