Giới thiệu dự án

Khảo sát địa hình và vẽ bản đồ đáy nước (bathymetric mapping) là nhiệm vụ then chốt trong quản lý tài nguyên thủy lợi, cứu hộ cứu nạn, nuôi trồng thủy sản và khảo cổ học dưới nước. Theo các báo cáo hàng hải quốc tế, hơn 80% vùng lòng hồ, sông ngòi cạn và đáy biển nông ven bờ vẫn chưa được lập bản đồ độ phân giải cao do hạn chế về chi phí triển khai tàu khảo sát chuyên dụng hoặc thiết bị lặn không người lái cỡ lớn (AUV/ROV).

Các phương tiện truyền thống sử dụng chân vịt (propeller-based propulsion) thường gây xáo trộn tầng trầm tích bùn đáy, tạo tiếng ồn lớn ảnh hưởng đến hệ sinh thái và dễ bị mắc kẹt bởi rong rêu, rác thải thủy sinh.

+-----------------------------------------------------------------------------------+
|                                  BÀI TOÁN THỰC TẾ                                 |
| - 80% lòng hồ/sông ngòi chưa có bản đồ địa hình đáy chi tiết                      |
| - Chân vịt truyền thống gây đục nước, vướng dị vật, hiệu suất thủy động lực thấp  |
| - Thiết bị AUV công nghiệp đắt đỏ, khó triển khai tại vùng nước cạn               |
+-----------------------------------------------------------------------------------+
                                         │
                                         ▼
+-----------------------------------------------------------------------------------+
|                                GIẢI PHÁP ĐỀ XUẤT                                  |
| Robot cá phỏng sinh học (Carangiform 4 khâu, 3 khớp) kết hợp định vị quang học    |
| ngoài (Overhead Camera) + cảm biến đo sâu hồng ngoại để vẽ biên dạng đáy lòng hồ   |
+-----------------------------------------------------------------------------------+

Mục tiêu đề tài

  1. Nghiên cứu và mô hình hóa động học phỏng sinh học: Ứng dụng lý thuyết thủy động lực học sóng Lighthill để mô phỏng chuyển động uốn lượn dạng cá chép (Carangiform).
  2. Thiết kế và chế tạo kết cấu cơ khí chống nước: Tối ưu hóa bộ truyền động 4 khâu, 3 khớp trục sử dụng vật liệu gia công CNC POM (Polyoxymethylene) và giải pháp làm kín động bằng gioăng silicon.
  3. Phát triển phần cứng nhúng và thuật toán điều khiển tự hành: Tích hợp vi điều khiển Arduino Uno R3, 03 cảm biến hồng ngoại GP2D12 phát hiện chướng ngại vật/đo độ sâu, truyền thông không dây Bluetooth HC-05.
  4. Xây dựng hệ thống định vị và tái tạo biên dạng đáy 3D/2D: Ứng dụng MATLAB Image Processing Toolbox trên luồng video camera quan sát gắn trên cao để bám vết tọa độ $(x, y)$ và ghép nối dữ liệu độ sâu $z$.

Thông số kỹ thuật kỳ vọng

  • Vận tốc bơi ổn định: $\ge 0.2\text{ m/s}$ trong môi trường nước tĩnh.
  • Thời gian hoạt động liên tục: $\ge 3\text{ giờ}$ với bộ nguồn LiPo 3S 2200mAh.
  • Bán kính chuyển hướng: Tối ưu góc quay thông qua 3 chiến lược vẫy đuôi linh hoạt.
  • Phạm vi áp dụng: Hồ thử nghiệm tĩnh, nước trong, vẽ biên dạng địa hình đáy phẳng/gồ ghề mô phỏng.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Khảo sát các giải pháp giám sát đáy nước hiện hữu làm rõ các ưu và nhược điểm kỹ thuật:

Tiêu chí Thợ lặn / Thủ công AUV chân vịt truyền thống Robot cá phỏng sinh học (Đề tài)
Độ linh hoạt / Tiếng ồn Thấp, nguy hiểm cao Tiếng ồn cao, dễ cuốn rác Rất cao, chuyển động êm, không cuốn rác
Xáo trộn môi trường đáy Lớn khi chạm đáy Cánh khuấy thổi bùn, làm mờ nước Tối thiểu nhờ dao động sóng thân BCF
Chi phí chế tạo / Bảo trì Rất cao theo giờ lặn Cao ($> 5,000\text{ USD}$) Thấp, kết cấu module mở, dễ thay thế
Khả năng tiếp cận nước cạn Bị giới hạn an toàn Dễ chạm đáy gãy cánh quạt Bơi sát mặt/lưng, thích ứng tốt
                ┌──────────────────────────────────────────────┐
                │   Yêu cầu hệ thống theo phân loại MoSCoW     │
                └──────────────────────┬───────────────────────┘
                                       │
         ┌─────────────────────────────┼─────────────────────────────┐
         ▼                             ▼                             ▼
   [Must Have]                   [Should Have]                 [Could Have]
- Kháng nước IP68 khoang mạch - Tự động tránh vật cản       - Lặn/nổi bằng khoang khí
- Bơi uốn lượn Carangiform   - Lập bản đồ 2D/3D đáy hồ      - Truyền dữ liệu RF ngầm
- Định vị tọa độ qua camera   - Kết nối Bluetooth không dây  - Tự động quay về dock sạc

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm hai phân hệ chính: Phân hệ Robot cá (Onboard Hardware) và Phân hệ Trạm mặt đất (Ground Station PC).

graph TD
    subgraph "Hệ thống Robot Cá (Onboard)"
        Batt[Pin LiPo 3S 11.1V 2200mAh] --> LM[Mạch Buck DC-DC LM2596 5V]
        LM --> MCU[Arduino Uno R3 ATmega328P]
        LM --> Servos[3x RC Servo MG995 Metal Gear]
        Sensors[3x Cảm biến GP2D12 Ranging] -->|Analog Voltage| MCU
        MCU -->|PWM 50Hz| Servos
        MCU <-->|UART TX/RX| BT_Slave[Bluetooth HC-05 Onboard]
    end

    subgraph "Trạm xử lý & Giám sát (Ground Station)"
        Cam[Overhead Camera 3SIXT HD Sport Action] -->|USB/Video Stream| PC[Máy tính / MATLAB R2015b]
        BT_Master[Bluetooth PC Module] <-->|Virtual COM Port| PC
        PC --> Tracking[Thuật toán Nhận dạng Màu Đỏ & Centroid]
        PC --> SLAM_Module[Ghép tọa độ x, y, z & Dựng bản đồ đáy]
    end

    BT_Slave -.->|Wireless 2.4GHz RF| BT_Master

Danh mục công nghệ và phiên bản phần cứng/phần mềm:

  • CAD/CAM: SolidWorks 2014 (Thiết kế 3D, phân tích động học, xuất mã G-code gia công CNC).
  • Xử lý trung tâm nhúng: Arduino Uno R3 (Vi điều khiển Microchip ATmega328P, 16MHz clock).
  • Truyền động: 03 Động cơ RC Servo TowerPro MG995 (Mô-men xoắn $10\text{ kg}\cdot\text{cm}$ tại 4.8V, bánh răng kim loại, bọc silicon chống nước).
  • Cảm biến khoảng cách: 03 Cảm biến Sharp GP2D12 (Nguyên lý tam giác đạc quang học hồng ngoại, dải đo $10 - 80\text{ cm}$).
  • Thị giác máy tính: MATLAB R2015b Image Processing Toolbox + Action Camera 3SIXT HD.
  • Giao tiếp: Module Bluetooth HC-05 (Baudrate 9600 bps, chuẩn Serial UART).
  • Nguồn điện: Pin LiPo 3S 11.1V 2200mAh 25C + Bộ hạ áp DC-DC LM2596 (Hiệu suất 92%, ngõ ra 5V-3A).

Implementation và kết quả

Development process

Quá trình nghiên cứu và chế tạo được chia thành 4 giai đoạn với các giải pháp kỹ thuật cụ thể:

[Khảo sát & Mô phỏng] ──► [Gia công Cơ khí CNC] ──► [Lập trình Điều khiển] ──► [Thực nghiệm & Lập bản đồ]
 - Động học Lighthill      - Khung vỏ nhựa POM       - Thuật toán bơi Arduino     - Đo kiểm suy hao quang ngầm
 - Mô phỏng khớp MATLAB    - Đúc đầu cá Composite    - Bám màu đỏ trên MATLAB     - Dựng biên dạng 3D đáy hồ

1. Mô hình hóa động học bơi phỏng sinh học Lighthill

Phương trình sóng uốn lượn dọc thân cá theo lý thuyết Lighthill:

$$y_{body}(x,t) = (c_1 x + c_2 x^2) \sin(kx - \omega t)$$

Trong đó:

  • $y_{body}$: Độ lệch biên độ của thân cá theo trục ngang tại vị trí $x$.
  • $c_1, c_2$: Hệ số biên độ tuyến tính và bậc hai tối ưu hóa hình dạng sóng từ đầu đến vây đuôi.
  • $k = \frac{2\pi}{\lambda}$: Số sóng thân, $\lambda$ là bước sóng bơi.
  • $\omega = 2\pi f$: Tần số góc vẫy đuôi.

Để thực thi trên hệ vi điều khiển điều khiển 3 khớp rời rạc ($N=3$), góc lệch của từng servo được tính toán thông qua công thức rời rạc hóa với độ lệch pha $\Delta \phi$:

// Thuật toán điều khiển chuyển động sóng 3 khớp Servo trên Arduino Uno R3
#include <Servo.h>

Servo servoJoint[3]; // Khai báo 3 động cơ khớp đuôi
const int servoPins[3] = {9, 10, 11};
const float c1 = 0.05, c2 = 0.001; // Hệ số hàm bao biên độ
const float frequency = 1.2; // Tần số vẫy đuôi 1.2 Hz
const float phaseShift = 0.85; // Độ lệch pha giữa các khớp (rad)

void setup() {
  for(int i = 0; i < 3; i++) {
    servoJoint[i].attach(servoPins[i]);
  }
}

void loop() {
  float t = millis() / 1000.0;
  for(int i = 0; i < 3; i++) {
    // Tính toán góc lệch mục tiêu theo phương trình động học Lighthill
    float amplitude = (c1 * (i + 1) + c2 * pow(i + 1, 2)) * 25.0;
    float targetAngle = 90.0 + amplitude * sin(2 * PI * frequency * t - i * phaseShift);
    
    // Giới hạn an toàn cơ khí (45° đến 135°)
    targetAngle = constrain(targetAngle, 45.0, 135.0);
    servoJoint[i].write((int)targetAngle);
  }
  delay(20); // Chu kỳ cập nhật 50Hz
}
          Khâu 1 (Đầu)         Khâu 2 (Thân)      Khâu 3 (Đuôi trước)   Khâu 4 (Vây đuôi)
          [ Cố định ] ──(Khớp 1)── [ Khâu 2 ] ──(Khớp 2)── [ Khâu 3 ] ──(Khớp 3)── [ Vây Đuôi ]
               │                        │                        │
         Arduino + Pin            Servo 1 (MG995)          Servo 2 (MG995)         Servo 3 (MG995)

2. Xử lý ảnh và định vị tọa độ bằng MATLAB

Camera đặt ở vị trí quan sát cố định phía trên hồ nước để bắt điểm màu đỏ gắn trên lưng robot:

% Script trích xuất vị trí Robot cá từ luồng Camera trực tiếp
vid = videoinput('winvideo', 1, 'RGB24_640x480');
set(vid, 'FramesPerTrigger', 1);
set(vid, 'TriggerRepeat', Inf);
start(vid);

while(islogging(vid) || isrunning(vid))
    frame = getsnapshot(vid);
    % Tách kênh màu và loại bỏ nền xám
    redChannel = frame(:,:,1);
    grayFrame = rgb2gray(frame);
    diffImage = imsubtract(redChannel, grayFrame);
    
    % Lọc nhiễu và nhị phân hóa
    medFiltered = medfilt2(diffImage, [3 3]);
    binaryImage = im2bw(medFiltered, 0.18);
    binaryImage = bwareaopen(binaryImage, 50); % Loại bỏ đốm nhiễu nhỏ
    
    % Xác định tọa độ trọng tâm (Centroid)
    stats = regionprops(binaryImage, 'Centroid');
    if ~isempty(stats)
        centroid = stats(1).Centroid;
        posX = centroid(1);
        posY = centroid(2);
        % Vẽ tọa độ lên khung hình
        imshow(frame); hold on;
        plot(posX, posY, 'g*');
        text(posX + 10, posY, sprintf('X: %.1f, Y: %.1f', posX, posY), 'Color', 'yellow');
        hold off;
    end
end

Testing và validation

Hiệu chuẩn cảm biến hồng ngoại Sharp GP2D12 trong môi trường nước

Khúc xạ và suy hao ánh sáng hồng ngoại trong môi trường nước ($n_{water} \approx 1.33$) làm lệch đặc tuyến điện áp đầu ra so với không khí. Nhóm đã tiến hành thực nghiệm đo đạc và nội suy hàm hiệu chuẩn:

Khoảng cách thực tế ($d$ - cm) Điện áp đo trong không khí ($V_{air}$ - V) Điện áp đo trong nước trong ($V_{water}$ - V) Sai số trước bù trừ (%)
10 2.30 2.55 +10.8%
20 1.35 1.60 +18.5%
30 0.90 1.15 +27.7%
40 0.72 0.92 +27.7%
50 0.58 0.75 +29.3%

$$\text{Phương trình nội suy độ sâu hiệu chỉnh trong nước: } d_{water} = \frac{24.85}{V_{out} - 0.18}\quad (\text{cm})$$

Điện áp (V)
  3.0 ┼               
  2.5 ┼──●───────── [Môi trường nước - Water]
  2.0 ┼   \──○───── [Môi trường không khí - Air]
  1.5 ┼       \──●
  1.0 ┼           \──○──●
  0.5 ┼                 \──○──●
  0.0 ┼───┬───┬───┬───┬───┬───┬───►
      0  10  20  30  40  50  60 Khoảng cách (cm)

Kết quả đạt được

  • Vận tốc di chuyển: Đạt trung bình $0.20\text{ m/s}$ (tương đương $0.4\text{ chiều dài thân/giây}$).
  • Thời lượng pin: Đạt $3.0\text{ giờ}$ liên tục khi 3 động cơ hoạt động ở tần số vẫy đuôi $1.2\text{ Hz}$.
  • Khả năng chuyển hướng:
    • Chế độ A (Vẫy lệch đuôi khi bơi): Bán kính quay $R = 45\text{ cm}$.
    • Chế độ B (Trượt theo quán tính): Bán kính quay $R = 30\text{ cm}$.
    • Chế độ C (Đập đuôi nhanh tại chỗ): Bán kính quay $R < 15\text{ cm}$.
  • Độ chính xác dựng bản đồ đáy: Sai số định vị tọa độ mặt bằng $\Delta_{xy} \le 1.8\text{ cm}$, sai số độ sâu $\Delta_z \le 1.5\text{ cm}$ sau khi qua bộ lọc trung bình.

Đổi mới và đóng góp

  1. Cấu trúc phỏng sinh học Carangiform tối ưu hóa chi phí: Thiết kế 4 khâu 3 khớp dạng module gia công hoàn toàn bằng nhựa kỹ thuật POM, giảm $75%$ trọng lượng so với kết cấu kim loại truyền thống mà vẫn đảm bảo độ bền cơ học và tính chịu ăn mòn trong nước.
  2. Kỹ thuật chống thấm nước kép (Dual-layer Waterproofing): Kết hợp bọc silicon chịu nước cho cụm bánh răng/vỏ servo RC tiêu chuẩn cùng kết cấu hộp trục đệm phớt chắn nước hai lớp, loại bỏ hiện tượng rò rỉ nước ở áp suất thử nghiệm độ sâu $1\text{ m}$.
  3. Mô hình định vị lai (Overhead Vision + Triangulation Infrared): Khắc phục nhược điểm mất tín hiệu GPS và suy hao vô tuyến ngầm bằng cách kết hợp camera giám sát góc rộng phía trên mặt nước với chùm 3 cảm biến đo độ sâu gắn ở bụng và đầu robot.
  4. Hiệu suất thủy động lực cao: Tiết kiệm hơn $35%$ năng lượng so với động cơ đẩy chân vịt cùng lực đẩy nhờ cơ chế bảo toàn động lượng dòng xoáy vây đuôi.

Ứng dụng thực tế và triển khai

┌────────────────────────────────────────────────────────────────────────┐
│                   HỆ THỐNG ỨNG DỤNG THỰC TẾ                            │
└───────────────────────────────────┬────────────────────────────────────┘
                                    │
    ┌───────────────────────────────┼───────────────────────────────┐
    ▼                               ▼                               ▼
[Nông nghiệp Thủy sản]    [Cứu hộ & Khảo sát Lòng hồ]   [Quan trắc Môi trường & Ống dẫn]
- Quét độ sâu đáy ao      - Lập bản đồ địa hình cứu hộ   - Kiểm tra rò rỉ bể xử lý ngầm
- Theo dõi lắng đọng bùn  - Phát hiện vật cản ngầm       - Giám sát không xáo trộn sinh thái

Kịch bản triển khai mẫu (Aquaculture Pond Mapping)

  1. Thiết lập mốc camera: Gắn Action Camera 3SIXT trên giá đỡ cao $3\text{ m}$ bao quát toàn bộ bể thử nghiệm kích thước $4\text{ m} \times 3\text{ m}$.
  2. Kết nối truyền thông: Khởi tạo cổng COM ảo qua Bluetooth HC-05 kết nối vi điều khiển Arduino với máy tính điều khiển.
  3. Hiệu chuẩn tọa độ: Đặt tấm chuẩn màu tại 4 góc hồ để thực hiện phép biến đổi hình học (Affine Transformation), ánh xạ từ tọa độ ảnh (Pixel) sang tọa độ thế giới thực (cm).
  4. Kích hoạt chế độ tự hành: Robot bơi quét tự động theo đường ziczac (Boustrophedon grid path), 3 cảm biến liên tục gửi giá trị $z$ về trạm mặt đất để nội suy biểu đồ mặt phẳng đáy 2D/3D dạng lưới ô cờ.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Bậc tự do chuyển động: Robot mới chuyển động linh hoạt trong mặt phẳng 2D $(x, y)$, chưa trang bị khoang dằn khí (ballast tank) hoặc vây ngực chủ động để lặn/nổi theo trục $z$.
  • Môi trường hoạt động: Thuật toán xử lý ảnh từ camera ngoài phụ thuộc vào độ trong của nước và điều kiện ánh sáng môi trường; cảm biến hồng ngoại GP2D12 bị hấp thụ mạnh khi nước đục.
  • Khoảng cách truyền thông: Sóng Bluetooth 2.4GHz bị suy hao mạnh khi robot chìm sâu dưới mặt nước $> 0.5\text{ m}$.

Hướng phát triển tiếp theo

  • Tích hợp cảm biến sóng âm mini (Echo Sounder / Micro Sonar) để thay thế cảm biến quang học khi hoạt động trong môi trường nước đục.
  • Bổ sung cơ cấu vây ngực 2 bậc tự do và khoang bơm nước dằn tải để thực hiện chuyển động lặn/nổi không gian 3D.
  • Triển khai thuật toán SLAM ngầm tự lập sử dụng cảm biến quán tính IMU 9-DOF kết hợp lọc Kalman mở rộng (EKF).

Đối tượng hưởng lợi

  • Sinh viên & Giảng viên Cơ điện tử: Tài liệu tham khảo toàn diện về cơ chế phỏng sinh học, động học sóng Lighthill, kỹ thuật chống nước cơ khí và lập trình điều khiển nhúng.
  • Kỹ sư Robotics & IoT: Thiết kế mẫu mở về việc kết hợp thị giác máy tính mặt đất với vi điều khiển nhúng giá thành thấp để giải quyết bài toán định vị không có GPS.
  • Doanh nghiệp Quản lý Môi trường & Thủy lợi: Giải pháp khả thi, chi phí chế tạo dưới $150\text{ USD}$ để đo đạc độ bồi lắng bùn đáy hồ chứa nước sạch và bể xử lý nước thải công nghiệp.

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 là gì?

Hệ thống yêu cầu máy tính chạy Windows/Linux có cài đặt MATLAB R2014a trở lên với Image Processing Toolbox, cổng Bluetooth 4.0, Camera tối thiểu 720p@30fps và hồ chứa nước thử nghiệm có độ sâu từ $0.3 - 1.5\text{ m}$.

2. Làm thế nào để cảm biến hồng ngoại GP2D12 hoạt động chính xác trong nước?

Cần hiệu chuẩn lại đặc tuyến điện áp theo khoảng cách trực tiếp trong môi trường nước chứa trong hồ đo, sau đó áp dụng công thức nội suy $d = 24.85 / (V_{out} - 0.18)$ trong mã nguồn xử lý tín hiệu analog của Arduino để triệt tiêu sai số khúc xạ.

3. Tại sao lựa chọn kiểu bơi Carangiform thay vì Anguilliform hay Ostraciiform?

Kiểu bơi Carangiform (như cá chép) tạo lực đẩy tập trung ở 1/3 thân sau và vây đuôi, mang lại sự cân bằng tối ưu giữa hiệu suất năng lượng thủy động học, vận tốc bơi và sự đơn giản hóa kết cấu cơ khí (chỉ cần 3 khớp truyền động).

4. Giải pháp chống thấm nước cho các động cơ servo thông thường như thế nào?

Tháo rời vỏ servo RC MG995, quét phủ keo chống nước silicon cách điện toàn bộ bo mạch điện tử bên trong, tra mỡ bôi trơn silicon chuyên dụng kín cụm bánh răng kim loại và gắn phớt O-ring tại trục quay đầu ra.

5. Chi phí chế tạo phần cứng robot cá ước tính khoảng bao nhiêu?

Tổng chi phí linh kiện phần cứng (Arduino, 3x Servo MG995, 3x GP2D12, Bluetooth HC-05, Pin LiPo, phôi nhựa POM gia công CNC và vỏ Composite) dao động trong khoảng $2.500.000 - 3.500.000\text{ VNĐ}$, thấp hơn 20 lần so với các thiết bị khảo sát công nghiệp.


Kết luận

Đề tài "Thiết kế và chế tạo robot cá ứng dụng vẽ biên dạng đáy hồ" đã giải quyết trọn vẹn bài toán tích hợp liên ngành Cơ học - Điện tử - Công nghệ thông tin. Nghiên cứu đã làm chủ từ khâu tính toán động học phỏng sinh học Lighthill, gia công cơ khí chính xác, chống thấm nước khoang động cơ đến xây dựng thuật toán thị giác định vị và tái tạo bản đồ độ sâu.

Kết quả thực nghiệm khẳng định robot vận hành linh hoạt với tốc độ $0.2\text{ m/s}$, thời gian bơi $3\text{ giờ}$, vẽ thành công biên dạng đáy hồ mẫu với sai số dưới $2\text{ cm}$. Đây là nền tảng quan trọng mở ra tiềm năng ứng dụng sâu rộng cho các phương tiện không người lái phỏng sinh học phục vụ trinh sát môi trường thủy sinh và nông nghiệp công nghệ cao tại Việt Nam.