Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số và tự động hóa công nghiệp, robot di động (Mobile Robot / Unmanned Ground Vehicle - UGV) đóng vai trò then chốt trong việc thay thế con người thực hiện các tác vụ nguy hiểm, độc hại và phức tạp. Theo các báo cáo phân tích thị trường robot chiến thuật và cứu hộ toàn cầu, nhu cầu triển khai robot trinh sát chuyên dụng trong các hoạt động tìm kiếm cứu nạn (Urban Search and Rescue - USAR), kiểm tra môi trường hóa chất độc hại, rà phá bom mìn và giám sát an ninh đô thị đang tăng trưởng với tốc độ CAGR trên 14.5%.
+-----------------------------------------------------------------------------+
| HỆ THỐNG ROBOT TRINH SÁT |
| |
| +-----------------------+ +------------------------+ |
| | TRẠM ĐIỀU KHIỂN | Bluetooth SPP | KHỐI ĐIỀU KHIỂN | |
| | (Android App) |<------------------>| (Arduino Uno R3) | |
| | - Giao diện lái xe | (Lệnh & Tọa độ) | - Driver L298N V2 | |
| | - Google Maps API | | - Cảm biến HY-SRF05 | |
| +-----------------------+ | - GPS Neo-7M | |
| ^ +------------------------+ |
| | |
| | Wi-Fi LAN / WebRTC (P2P Video Stream) |
| v |
| +---------------------------------------------------------------------+ |
| | KHỐI TRUYỀN DẪN HÌNH ẢNH TRINH SÁT | |
| | (Raspberry Pi 3 Model B+ + Camera Module V2 Sony IMX219) | |
| | - Máy chủ UV4L WebRTC Server (H.264 Hardward Encoding) | |
| +---------------------------------------------------------------------+ |
+-----------------------------------------------------------------------------+
Tuy nhiên, việc triển khai các hệ thống robot trinh sát thương mại hiện nay đối mặt với nhiều rào cản kỹ thuật nghiêm trọng:
- Độ trễ truyền video lớn: Các giao thức truyền phát video truyền thống (như RTSP, HTTP Live Streaming - HLS) thường có độ trễ từ 2.5 đến 5.0 giây, gây mất an toàn khi điều khiển phương tiện di chuyển thời gian thực.
- Chi phí phần cứng đắt đỏ: Các thiết bị trinh sát quân sự chuyên dụng như RoboteX AVATAR II hay DR-10 có giá thành lên tới hàng chục nghìn USD, khó tiếp cận cho các đơn vị dân sự hoặc nghiên cứu học thuật.
- Giao diện giám sát thiếu trực quan: Đa số hệ thống điều khiển tự chế thiếu khả năng đồng bộ hóa tọa độ không gian thực lên bản đồ vệ tinh thương mại, khiến người vận hành gặp khó khăn trong việc định hướng đường đi ngoài thực địa.
Đề tài khóa luận "Dẫn đường Robot di động sử dụng công cụ Google Map cho mục đích trinh sát" được thực hiện tại Khoa Điện tử - Viễn thông, Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội (VNU-UET) dưới sự hướng dẫn của TS. Phạm Duy Hưng và TS. Nguyễn Thị Thanh Vân. Dự án tập trung giải quyết bài toán thiết kế một robot di động 4 bánh nhỏ gọn, chi phí thấp, tích hợp công cụ Google Maps API để dẫn đường và ứng dụng công nghệ WebRTC nhằm tối ưu hóa độ trễ truyền hình ảnh trinh sát dưới 1 giây.
Mục tiêu cụ thể của dự án bao gồm:
- Thiết kế phần cứng cơ khí & điều khiển: Chế tạo khung gầm robot 4 bánh dẫn động vi sai (differential drive) từ vật liệu Mica gia cường, tích hợp mạch vi điều khiển Arduino Uno R3, mạch cầu H L298N, cảm biến siêu âm chống va chạm HY-SRF05 và module định vị GPS U-blox Neo-7M.
- Xây dựng ứng dụng điều khiển Android: Phát triển ứng dụng gốc trên nền tảng Android (hỗ trợ SDK tối thiểu từ Android 6.0 Marshmallow), tích hợp thư viện Bluetooth SPP để gửi lệnh vận hành và Google Maps Android API để hiển thị vị trí robot theo thời gian thực.
- Triển khai luồng truyền hình ảnh WebRTC độ trễ siêu thấp: Thiết lập hệ thống máy tính nhúng Raspberry Pi 3 Model B+ kết hợp Camera Module V2 (Sony IMX219 8MP), cấu hình máy chủ UV4L (User space Video 4 Linux) hỗ trợ WebRTC để truyền video chuẩn Full HD 1080p@30fps trực tiếp về trạm điều khiển.
Phạm vi nghiên cứu tập trung vào môi trường trinh sát ngoài trời trong vùng phủ sóng không dây cục bộ (Wi-Fi/Bluetooth), với kết quả đầu ra được kiểm chứng qua các chỉ số đo lường định lượng: chu kỳ cập nhật tọa độ GPS $T_{update} = 2.0\text{ s}$, độ trễ truyền video $t_{latency} \le 1.0\text{ s}$, sai số đo khoảng cách cảm biến $< 5%$.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi tiến hành thiết kế hệ thống, nhóm nghiên cứu đã khảo sát và so sánh các giải pháp robot di động trinh sát hiện có trên thị trường và trong giới học thuật:
| Tiêu chí kỹ thuật |
Robot trinh sát quân sự (RoboteX AVATAR II / DR-10) |
Robot điều khiển qua luồng RTSP/IP Camera |
Hệ thống Robot đề xuất (WebRTC + Google Maps) |
| Giao thức truyền Video |
COFDM / RF tương tự chuyên dụng |
RTSP / RTMP qua H.264 Server |
WebRTC (P2P, SRTP / DTLS Encryption) |
| Độ trễ truyền hình ảnh |
Rất thấp ($< 200\text{ ms}$) |
Cao ($2500\text{ ms} - 4500\text{ ms}$) |
Rất thấp ($800\text{ ms} - 1000\text{ ms}$) |
| Định vị & Bản đồ |
Bản đồ quân sự chuyên dụng / Radar GIS |
Tọa độ thô dạng Text (kinh/vĩ độ) |
Bản đồ trực quan qua Google Maps API |
| Giao diện điều khiển |
Trạm mặt đất chuyên dụng (GCS cồng kềnh) |
Web Browser hoặc Desktop App |
Ứng dụng Android trên Smartphone 6.0 inch |
| Chi phí chế tạo |
Cực cao ($> 15,000\text{ USD}$) |
Trung bình ($300 - 600\text{ USD}$) |
Tối ưu / Thấp ($< 150\text{ USD}$) |
| Khả năng mở rộng |
Hệ thống đóng, khó tùy biến |
Trung bình |
Mã nguồn mở, dễ dàng module hóa |
Dựa trên phương pháp phân loại yêu cầu MoSCoW, hệ thống được thiết lập các ưu tiên sau:
- Must-Have (Bắt buộc): Truyền động 4 bánh độc lập điều khiển vi sai; truyền phát video WebRTC thời gian thực qua trình duyệt/webview; cập nhật vị trí kinh độ/vĩ độ lên Google Maps; giao tiếp Bluetooth SPP hai chiều ổn định.
- Should-Have (Nên có): Cảm biến siêu âm phát hiện vật cản tự động dừng khẩn cấp; tách biệt nguồn nuôi động cơ và nguồn vi xử lý để chống sụt áp và nhiễu sóng hài.
- Could-Have (Có thể mở rộng): Tự động điều hướng theo điểm nút (Waypoints navigation); bổ sung cụm xoay camera Pan-Tilt 2 bậc tự do (2-DOF).
- Won't-Have (Tạm thời chưa triển khai): Cơ cấu bọc thép chống đạn; bánh xích vượt địa hình dốc đá sâu.
Thiết kế hệ thống
Kiến trúc tổng thể của hệ thống RS-Robot được phân tách thành 3 khối chức năng liên kết chặt chẽ:
graph TD
subgraph "Trạm Giám Sát & Điều Khiển (Android Device)"
UI[Giao diện Điều khiển 2-in-1]
BT_Client[Bluetooth Serial Engine]
Map_Engine[Google Maps Android SDK]
Browser_View[WebRTC Client Display]
end
subgraph "Khối Điều Khiển Cấp Thấp (Embedded MCU)"
Uno[Arduino Uno R3 - ATmega328P]
HC06[Module Bluetooth HC-06 Slave]
GPS[Module U-blox Neo-7M + Anten 1575.42MHz]
Sonic[Cảm biến Siêu âm HY-SRF05]
L298[Driver Cầu H L298N V2]
Motors[4x Động cơ Giảm tốc V1 + Bánh cao su 66mm]
end
subgraph "Khối Xử Lý Đa Phương Tiện (Edge SBC)"
RPI[Raspberry Pi 3 Model B+]
Cam[Camera Module V2 Sony IMX219 8MP]
UV4L[UV4L Streaming Server + WebRTC Plugin]
end
UI -->|Gửi ký tự điều khiển| BT_Client
BT_Client -->|RF 2.4GHz SPP| HC06
HC06 -->|UART 9600 bps| Uno
Uno -->|PWM / Digital Pin| L298
L298 -->|6V-9V DC Drive| Motors
Sonic -->|Echo/Trigger Pulse| Uno
GPS -->|NMEA Sentence via UART| Uno
Uno -->|Gửi NMEA Lat/Long| HC06
HC06 -->|Tọa độ GPS| BT_Client
BT_Client -->|Render Marker| Map_Engine
Cam -->|CSI-2 Bus 2-lane| RPI
RPI -->|H.264 Encode| UV4L
UV4L -->|WebRTC P2P Stream / LAN| Browser_View
Chi tiết thông số Technology Stack
Technology Stack & Component Specifications:
├── Hardware Layer:
│ ├── Microcontroller: Arduino Uno R3 (ATmega328P @ 16 MHz, 32KB Flash, 2KB SRAM)
│ ├── Single Board Computer: Raspberry Pi 3 Model B+ (Broadcom BCM2837B0 Quad-Core Cortex-A53 64-bit @ 1.4 GHz, 1GB LPDDR2)
│ ├── Motor Driver: L298N Dual H-Bridge Module (V_in: 5-35V, I_peak: 2A/bridge, P_loss: 20W)
│ ├── Actuators: 4x DC Geared Motor V1 (Gear Ratio 1:48, Torque: 7.85 Nm, Speed: 125-208 RPM @ 3-5V)
│ ├── Camera: Raspberry Pi Camera Module V2 (Sony IMX219 8-megapixel, 1080p30, 720p60, 640x480p90)
│ ├── Telemetry & Sensors: U-blox Neo-7M GPS (Antenna 1575.42 MHz), HY-SRF05 Ultrasonic (Góc quét 15°, Max 100cm), HC-06 Bluetooth 2.0+EDR
│ └── Power Supply: 4x Li-ion 18650 (3.7V - 4.2V, 3700 mAh, 10A Continuous Discharge) + Powerbank RT180 (10000 mAh, 5V/2.1A)
├── Firmware & Embedded Software:
│ ├── Arduino IDE v1.8.13 (C/C++ Bare-metal, AVR-GCC Toolchain)
│ └── OS: Raspbian Buster (Debian 10 기반 Linux Kernel 4.19, headless mode)
├── Video Streaming Engine:
│ ├── Server: UV4L (User space Video 4 Linux) Core Engine v1.9
│ ├── WebRTC Extension: uv4l-webrtc plugin (H.264 hardware encoding, SRTP encryption)
│ └── Transport Protocol: WebRTC P2P / WSS / HTTPS on Port 8080
└── Mobile Client Application:
├── IDE: Android Studio 4.x (Java / Gradle Build System)
├── Minimum SDK: API Level 23 (Android 6.0 Marshmallow) - Target SDK: API Level 30
└── External APIs: Google Play Services Maps SDK v17.0.0, Android Bluetooth SPP API
Thiết kế an toàn & bảo mật
- Bảo mật luồng Video: WebRTC bắt buộc sử dụng giao thức DTLS (Datagram Transport Layer Security) để trao đổi khóa và SRTP (Secure Real-time Transport Protocol) để mã hóa toàn bộ dữ liệu video/audio payload, ngăn chặn hoàn toàn nguy cơ nghe lén dạng Man-in-the-Middle (MitM).
- An toàn cơ điện: Thiết kế mạch chia nguồn độc lập (Optocoupler isolation trên L298N, diode chống dòng ngược động cơ, cầu chì tự phục hồi trên Raspberry Pi).
Methodology
Dự án áp dụng phương pháp nghiên cứu kết hợp giữa mô hình hóa toán học động học và quy trình kỹ thuật phát triển mẫu lặp (Iterative Prototyping):
| Giai đoạn (Milestones) |
Thời lượng |
Nội dung thực hiện chính |
Tiêu chuẩn bàn giao (Deliverables) |
| Giai đoạn 1: Khảo sát & Mô hình hóa |
Tuần 1 - 3 |
Phân tích lý thuyết động học non-holonomic, tính toán mô-men xoắn động cơ, thiết kế khung xe Mica. |
Bản vẽ cơ khí 2D/3D, mô hình toán học vi sai 4 bánh. |
| Giai đoạn 2: Phát triển Phần cứng |
Tuần 4 - 7 |
Lắp ráp khung gầm, tích hợp Arduino, L298N, cảm biến siêu âm, GPS Neo-7M và module HC-06. |
Khung gầm hoàn chỉnh, mạch nguồn kiểm tra không sụt áp. |
| Giai đoạn 3: Lập trình Nhúng & WebRTC |
Tuần 8 - 11 |
Viết firmware Arduino (PWM control, NMEA parser), cấu hình Raspbian Buster và máy chủ UV4L WebRTC. |
Video stream 1080p30 nội bộ trên Raspberry Pi hoạt động. |
| Giai đoạn 4: Phát triển Ứng dụng Android |
Tuần 12 - 14 |
Xây dựng UI Android, tích hợp Google Maps SDK, giải mã chuỗi GPS và thiết lập phím điều hướng Bluetooth. |
File đóng gói .apk cài đặt trên smartphone Android. |
| Giai đoạn 5: Thực nghiệm & Tối ưu |
Tuần 15 - 16 |
Thử nghiệm thực địa ngoài trời, đo độ trễ video, kiểm tra độ chính xác GPS và độ ổn định liên kết Bluetooth. |
Báo cáo đánh giá hiệu năng và dữ liệu log thực nghiệm. |
Implementation và kết quả
Development process
1. Mô hình toán học động học robot di động 4 bánh
Robot trinh sát sử dụng kết cấu 4 bánh dẫn động độc lập. Để đơn giản hóa bài toán điều khiển học, hệ thống được quy đổi về mô hình vi sai 2 bánh ảo tương đương ($W_L$ bên trái và $W_R$ bên phải) với khoảng cách giữa hai vệt bánh xe là $l_2$:
$$\omega_L = \frac{\omega_{WFL} + \omega_{WRL}}{2}, \quad \omega_R = \frac{\omega_{WFR} + \omega_{WRR}}{2}$$
Vận tốc dài của hai bánh xe ảo tương ứng với bán kính bánh xe $r = 33\text{ mm}$:
$$v_L = \omega_L \cdot r, \quad v_R = \omega_R \cdot r$$
Vận tốc góc quay $\dot{\theta}$ và vận tốc tịnh tiến của tâm hình học robot $(\dot{x}_c, \dot{y}_c)$ trong hệ tọa độ toàn cục:
$$\dot{\theta} = \frac{r}{l_2} (\omega_R - \omega_L) = \frac{v_R - v_L}{l_2}$$
$$\dot{x}_c = \left( \frac{v_R + v_L}{2} \right) \cos(\theta), \quad \dot{y}_c = \left( \frac{v_R + v_L}{2} \right) \sin(\theta)$$
2. Thuật toán đo khoảng cách cảm biến siêu âm HY-SRF05
Cảm biến phát chùm sóng âm tần số 40 kHz. Khoảng cách vật cản $D\text{ (cm)}$ được tính toán từ độ rộng xung phản hồi $\Delta t\text{ (\mu s)}$ dựa trên hằng số tốc độ âm thanh trong không khí ($340\text{ m/s} = 1\text{ cm} / 29.412\text{ \mu s}$):
$$\text{Distance (cm)} = \frac{\Delta t\text{ (\mu s)}}{29.412 \times 2}$$
3. Trích đoạn mã nguồn lõi Firmware Arduino (C/C++)
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
// Định nghĩa chân điều khiển động cơ qua L298N
const int IN1 = 5, IN2 = 6, IN3 = 9, IN4 = 10;
const int TRIG_PIN = 7, ECHO_PIN = 8;
const int SAFE_DISTANCE_CM = 15;
SoftwareSerial BTSerial(2, 3); // RX=2, TX=3 kết nối HC-06
SoftwareSerial GPSSerial(11, 12); // RX=11, TX=12 kết nối Neo-7M
TinyGPSPlus gps;
void setup() {
pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT);
Serial.begin(115200);
BTSerial.begin(9600);
GPSSerial.begin(9600);
}
long readUltrasonicDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH, 30000); // Timeout 30ms (~5m)
if (duration == 0) return 999;
return duration / 29.412 / 2;
}
void driveRobot(char command) {
long dist = readUltrasonicDistance();
// Ngăn chuyển động tiến nếu khoảng cách phía trước nhỏ hơn ngưỡng an toàn
if (dist < SAFE_DISTANCE_CM && command == 'F') {
stopMotors();
BTSerial.println("ALERT:OBSTACLE");
return;
}
switch(command) {
case 'F': // Tiến
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break;
case 'B': // Lùi
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break;
case 'L': // Rẽ trái
digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); break;
case 'R': // Rẽ phải
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); break;
case 'S': // Dừng
default: stopMotors(); break;
}
}
void stopMotors() {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}
void loop() {
// 1. Tiếp nhận và thực thi lệnh điều khiển từ Bluetooth
if (BTSerial.available()) {
char cmd = BTSerial.read();
driveRobot(cmd);
}
// 2. Đọc dữ liệu định vị NMEA từ GPS Neo-7M và gửi ngược về Android App
while (GPSSerial.available() > 0) {
if (gps.encode(GPSSerial.read())) {
if (gps.location.isValid()) {
BTSerial.print("GPS:");
BTSerial.print(gps.location.lat(), 6);
BTSerial.print(",");
BTSerial.println(gps.location.lng(), 6);
}
}
}
}
4. Trích đoạn xử lý Google Maps trên Android (Java)
public class ReconControlActivity extends AppCompatActivity implements OnMapReadyCallback {
private GoogleMap mMap;
private Marker robotMarker;
private BluetoothSocket btSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recon_control);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map_view);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
LatLng initialPosition = new LatLng(21.0382, 105.7828); // Tọa độ mẫu tại VNU-UET
robotMarker = mMap.addMarker(new MarkerOptions()
.position(initialPosition)
.title("RS-Robot Unit #01")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(initialPosition, 18.0f));
}
public void updateRobotTelemetry(double lat, double lng) {
runOnUiThread(() -> {
LatLng newPos = new LatLng(lat, lng);
if (robotMarker != null) {
robotMarker.setPosition(newPos);
mMap.animateCamera(CameraUpdateFactory.newLatLng(newPos));
}
});
}
}
5. Cấu hình máy chủ UV4L WebRTC trên Raspberry Pi 3B+
# Cấu hình khởi chạy daemon UV4L cho Camera Module V2 (Sony IMX219)
uv4l --driver raspicam \
--auto-video_nr \
--width 1920 \
--height 1080 \
--framerate 30 \
--encoding h264 \
--server-option '--port=8080' \
--server-option '--enable-webrtc=yes' \
--server-option '--webrtc-hw-vcodec=1' \
--server-option '--webrtc-preferred-video-codec=H264' \
--server-option '--enable-ssl=yes' \
--server-option '--ssl-private-key-file=/etc/ssl/uv4l.key' \
--server-option '--ssl-certificate-file=/etc/ssl/uv4l.crt'
Testing và validation
Quá trình kiểm thử thực địa được thực hiện trong khuôn viên Trường Đại học Công nghệ - ĐHQGHN với các kịch bản nghiêm ngặt:
Benchmark Kết quả Thử nghiệm Hệ thống:
---------------------------------------------------------------------------------------
Kịch bản Kiểm thử | Điều kiện Môi trường | Kỳ vọng Thiết kế | Kết quả Thực nghiệm
---------------------------------------------------------------------------------------
1. Điều khiển Chuyển động | Sân bê tông phẳng | Phản hồi < 100ms | Đạt (Phản hồi ~45ms)
2. Bán kính Bluetooth | Line-of-sight | Phạm vi >= 10m | Đạt (Tối đa 15.2m)
3. Độ trễ Video WebRTC | Wi-Fi 2.4GHz Cục bộ | Latency <= 1000ms | Đạt (Trung bình 980ms)
4. Độ chính xác GPS | Ngoài trời thoáng khí | Bắt >= 3 Vệ tinh | Đạt (Bắt 6-8 Vệ tinh)
5. Chu kỳ Cập nhật Map | Robot di chuyển 0.4m/s | T_update = 2.0s | Đạt (Chu kỳ 2.0s)
6. Cảm biến Siêu âm | Vật cản bề mặt phẳng | Dừng khi d < 15cm | Đạt (Sai số 4.2%)
---------------------------------------------------------------------------------------
So sánh độ trễ truyền phát Video giữa các giao thức (Đo tại độ phân giải 1080p@30fps):
=======================================================================================
Giao thức | Độ trễ đo được (ms) | Băng thông tiêu thụ | Mức tải CPU Pi 3B+
---------------------------------------------------------------------------------------
WebRTC (H.264 Hard-enc) | 850 - 1000 ms | 2.1 - 3.4 Mbps | 18% - 24%
RTSP qua VLC Streamer | 2800 - 3600 ms | 4.5 - 5.8 Mbps | 45% - 55%
MJPEG HTTP Streaming | 1400 - 1800 ms | 12.0 - 18.5 Mbps | 65% - 80%
---------------------------------------------------------------------------------------
Kết quả đạt được
- Khả năng vận hành cơ động: Hệ thống robot 4 bánh di chuyển linh hoạt trên địa hình phẳng với vận tốc tối đa $v_{max} = 0.73\text{ m/s}$ ($44\text{ m/phút}$ tại điện áp $5\text{V}$). Khung xe Mica chịu tải an toàn $1.8\text{ kg}$ bao gồm toàn bộ thiết bị điện tử và pin nguồn.
- Hiển thị dẫn đường thời gian thực: Vị trí kinh độ và vĩ độ do module GPS U-blox Neo-7M thu thập được giải mã và đẩy lên giao diện Google Maps trên smartphone với chu kỳ ổn định 2 giây/lần, cho phép người lái giám sát chính xác quỹ đạo di chuyển.
- Truyền dẫn hình ảnh chuẩn trinh sát: Luồng video Full HD từ Camera V2 truyền về thiết bị điều khiển với độ trễ đo đạc thực tế dao động từ 0.8s đến 1.0s, đảm bảo khả năng quan sát không gian hiện trường và né tránh chướng ngại vật kịp thời.
Đổi mới và đóng góp
- Ứng dụng WebRTC trên nền tảng máy tính nhúng giá rẻ: Dự án đã chứng minh tính khả thi của việc nhúng WebRTC trực tiếp lên Raspberry Pi 3B+ thông qua plugin UV4L, tận dụng bộ giải mã phần cứng H.264 của chip Broadcom BCM2837B0. Giải pháp này loại bỏ hoàn toàn nhu cầu về một máy chủ trung gian (Media Relay Server), giảm độ trễ hơn 65% so với các kiến trúc truyền thống dựa trên RTSP.
- Kiến trúc điều khiển - truyền thông hai tầng (Dual-tier Heterogeneous Architecture): Tách biệt rõ ràng giữa tầng thời gian thực (Arduino Uno R3 quản lý động cơ, đo đạc xung siêu âm và ngắt cứng) và tầng xử lý đa phương tiện (Raspberry Pi chạy Linux chuyên trách video stream). Kiến trúc này giúp hệ thống không bị treo hoặc sụt khung hình khi động cơ hoạt động ở công suất đỉnh.
- Tích hợp giao diện giám sát 2-trong-1 tiện ích cao: Tích hợp trực tiếp Google Maps API song song với các nút điều hướng ảo và màn hình camera trên cùng một giao diện di động, biến điện thoại thông minh cá nhân thành một trạm mặt đất (Ground Control Station) gọn nhẹ.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
+-----------------------------------------------------------------------------+
| CÁC KỊCH BẢN ỨNG DỤNG THỰC TẾ |
| |
| [Trinh sát Đô thị & Chống khủng bố] |
| --> Thâm nhập khu vực nhà hoang, truyền hình ảnh Full HD về vị trí nghi ngờ|
| |
| [Cứu hộ Cứu nạn - Động đất, Sập hầm] |
| --> Luồn lách vào khe hẹp, định vị nạn nhân trên Google Maps tọa độ thực |
| |
| [Quan trắc Môi trường Nguy hại] |
| --> Khảo sát khu vực rò rỉ khí độc, kiểm tra đường ống nhà máy hóa chất |
+-----------------------------------------------------------------------------+
Chiến lược triển khai & Chi phí BOM (Bill of Materials)
Bảng dự toán chi phí phần cứng nguyên mẫu (BOM Cost):
---------------------------------------------------------------------------
STT | Tên linh kiện / Thiết bị | Số lượng | Đơn giá ước tính (VNĐ)
---------------------------------------------------------------------------
1 | Mạch vi điều khiển Arduino Uno R3 | 01 | 130,000
2 | Module Driver Motor L298N V2 | 01 | 45,000
3 | Module Bluetooth HC-06 | 01 | 75,000
4 | Cảm biến Siêu âm HY-SRF05 | 01 | 35,000
5 | Module GPS U-blox Neo-7M + Anten | 01 | 180,000
6 | Khung xe 4 bánh Mica + Động cơ V1 | 01 bộ | 160,000
7 | Raspberry Pi 3 Model B+ | 01 | 950,000
8 | Raspberry Pi Camera Module V2 8MP | 01 | 350,000
9 | Pin 18650 (4 viên) + Sạc dự phòng | 01 bộ | 220,000
10 | Dây nối, ốc vít, phụ kiện linh tinh | 01 gói | 50,000
---------------------------------------------------------------------------
TỔNG CHI PHÍ BẢN NGUYÊN MẪU (ESTIMATED TOTAL): 2,195,000 VNĐ (~95 USD)
Với mức chi phí dưới 100 USD, giải pháp có khả năng nhân rộng cực cao cho các dự án nghiên cứu sinh viên, các đội cứu hộ tình nguyện hoặc các doanh nghiệp giải pháp an ninh tư nhân.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phạm vi truyền thông Bluetooth: Chuẩn Bluetooth 2.0 trên module HC-06 giới hạn bán kính điều khiển trong khoảng $10 - 15\text{ mét}$. Khi gặp vật cản tường bê tông dày, cường độ tín hiệu suy giảm nhanh.
- Phụ thuộc tầm nhìn vệ tinh GPS: Module Neo-7M hoạt động kém chính xác khi đi vào trong nhà kín (Indoor) hoặc dưới tầng hầm do suy hao tín hiệu vệ tinh 1575.42 MHz.
- Động cơ DC không có Encoder: Chưa có bộ mã hóa xung (Rotary Encoder) để phản hồi tốc độ thực từng bánh, việc quay xe dựa hoàn toàn vào thời gian cấp xung mở cầu H.
Hướng nâng cấp mở rộng
- Nâng cấp truyền thông tầm xa qua 4G/LTE / 5G: Thay thế module Bluetooth bằng module 4G SIM7600 để điều khiển robot qua giao thức MQTT/WebSocket không giới hạn khoảng cách địa lý.
- Tích hợp hệ điều hành Robot ROS2 & Cảm biến LiDAR: Bổ sung cảm biến quét 2D LiDAR (như RPLiDAR A1) và thuật toán SLAM (Gmapping/Cartographer) để tự động lập bản đồ 2D trong nhà không cần GPS.
- Cơ cấu Camera Pan-Tilt & AI Object Detection: Tích hợp mô hình nhận diện đối tượng bằng YOLOv8-nano trên chip tăng tốc NPU để tự động phát hiện người bị nạn hoặc mục tiêu trinh sát.
Đối tượng hưởng lợi
- Sinh viên & Học viên ngành Điện tử - Viễn thông / Tự động hóa: Tài liệu tham khảo toàn diện về tích hợp hệ thống nhúng lai ghép (Arduino + Linux SBC), phương pháp lập trình động học robot và xử lý dữ liệu NMEA GPS.
- Kỹ sư & Lập trình viên IoT: Mô hình thực tế để triển khai WebRTC độ trễ thấp trên phần cứng giới hạn tài nguyên và mẫu code kết nối Android Bluetooth SPP.
- Doanh nghiệp & Đơn vị Cứu nạn Dân sự: Kiến trúc tham chiếu chi phí siêu thấp ($< 100\text{ USD}$) để tự chủ chế tạo các thiết bị giám sát không người lái phục vụ kiểm tra hiện trường nguy hiểm.
- Nhà nghiên cứu học thuật: Cung cấp số liệu đo kiểm thực nghiệm về độ trễ WebRTC và sai số GPS trong môi trường trinh sát ngoài trời.
Câu hỏi thường gặp
1. Yêu cầu phần cứng và phần mềm tối thiểu để triển khai trạm điều khiển là gì?
Thiết bị điều khiển cần chạy hệ điều hành Android phiên bản tối thiểu 6.0 (Marshmallow - API Level 23) trở lên, có hỗ trợ kết nối Bluetooth 2.0+ và kết nối Wi-Fi để truy cập WebRTC stream. Trên máy tính bảng/smartphone cần cài đặt sẵn Google Play Services để kích hoạt giao diện Google Maps.
2. Làm thế nào để giải quyết vấn đề độ trễ truyền hình ảnh khi mạng Wi-Fi không ổn định?
Có thể tối ưu hóa độ phân giải và tốc độ khung hình trên máy chủ UV4L bằng cách hạ cấu hình từ 1080p@30fps xuống 720p@60fps hoặc 640x480@90fps. WebRTC tự động điều chỉnh bitrate dựa trên thuật toán ước lượng băng thông GCC (Google Congestion Control), duy trì độ trễ ở mức dưới 1 giây ngay cả khi suy giảm chất lượng mạng.
3. Tại sao hệ thống sử dụng kết hợp cả Arduino và Raspberry Pi thay vì chỉ dùng một bo mạch?
Đây là thiết kế phân tách chức năng tối ưu: Arduino Uno R3 chạy vòng lặp điều khiển thời gian thực (Real-time determinism), không bị ảnh hưởng bởi quá trình phân chia thời gian CPU của hệ điều hành, đảm bảo an toàn tuyệt đối khi điều khiển xung PWM động cơ và ngắt siêu âm. Trong khi đó, Raspberry Pi 3B+ chạy hệ điều hành Raspbian đảm nhận các tác vụ nặng về mạng TCP/IP, mã hóa video H.264 và máy chủ WebRTC.
4. Hệ thống có thể hoạt động liên tục trong bao lâu với một lần sạc pin?
Hệ thống sử dụng bộ nguồn cách ly gồm 4 cell pin Li-ion 18650 (3700 mAh) cấp cho động cơ và sạc dự phòng 10,000 mAh cấp cho Raspberry Pi. Trong điều kiện hoạt động trinh sát liên tục (vừa di chuyển vừa truyền video WebRTC Full HD), hệ thống duy trì thời gian vận hành liên tục từ 2.5 đến 3.0 giờ.
5. Chi phí sản xuất và khả năng bảo trì hệ thống như thế nào?
Tổng chi phí linh kiện nguyên mẫu chỉ khoảng 2.2 triệu VNĐ (~95 USD). Toàn bộ linh kiện đều là module tiêu chuẩn công nghiệp phổ biến trên thị trường, giúp quá trình bảo trì, thay thế động cơ, pin hoặc cảm biến hỏng hóc diễn ra nhanh chóng với chi phí cực thấp.
Kết luận
Khóa luận tốt nghiệp "Dẫn đường Robot di động sử dụng công cụ Google Map cho mục đích trinh sát" của tác giả Phan Xuân Hải đã giải quyết trọn vẹn bài toán tích hợp giữa cơ điện tử, viễn thông và công nghệ phần mềm. Bằng việc kết hợp sáng tạo giữa vi điều khiển nhúng Arduino Uno R3, máy tính đơn bo Raspberry Pi 3B+, công cụ Google Maps API và công nghệ truyền thông WebRTC thời gian thực, dự án đã chế tạo thành công một mẫu robot trinh sát hoạt động ổn định ngoài thực địa với độ trễ video dưới 1.0 giây và chu kỳ cập nhật vị trí 2.0 giây/lần.
Kết quả nghiên cứu mở ra hướng đi đầy triển vọng trong việc phát triển các thiết bị tự hành chi phí thấp phục vụ công tác cứu hộ, kiểm tra môi trường và an ninh tại Việt Nam. Quý độc giả, sinh viên và các nhà nghiên cứu quan tâm có thể tiếp cận mã nguồn, sơ đồ nguyên lý và tài liệu thiết kế chi tiết để tiếp tục phát triển nâng cấp hệ thống lên nền tảng 4G/5G và điều khiển tự động hóa thông minh.