Giải bài toán phân tích cơ sinh học (Biomechanics) Pickleball 3D & chấm điểm động tác bằng MediaPipe Pose ngay trên trình duyệt (WebGL + Edge MCP)
Khi phong trào Pickleball bùng nổ tại Việt Nam, phần lớn người chơi phong trào (DUPR 2.0 – 3.5) đều gặp chung một rào cản kỹ thuật: đánh bóng bằng lực cổ tay và cánh tay thay vì chuỗi động học (Kinetic Chain) từ chân – hông – vai, dẫn đến bóng bổng ở khu vực Non-Volley Zone (Kitchen) hoặc chấn thương khuỷu tay (Pickleball Elbow).
Thay vì chỉ quay các video hướng dẫn một chiều, nhóm kỹ thuật chúng tôi đã xây dựng PickleBase (bản Tiếng Anh) — một nền tảng mô phỏng 3D cơ sinh học tương tác thời gian thực kết hợp phân tích tư thế qua AI Video ngay trên trình duyệt (Client-side WebAssembly/WebGL) mà không cần tải video người dùng lên máy chủ.
Bài viết này chia sẻ chi tiết kiến trúc kỹ thuật đằng sau 3 phân hệ cốt lõi của PickleBase cùng bộ dữ liệu mở (Open Biomechanics Dataset) vừa được xuất bản trên CERN Zenodo (DOI: 10.5281/zenodo.23582848).
1. Kiến trúc tổng thể: Zero-Server Video Pose Tracking & Edge MCP
Một bài toán lớn khi xây dựng công cụ AI Coach phân tích động tác là quyền riêng tư và chi phí GPU: nếu đẩy video 60fps của người chơi lên đám mây để chạy mô hình nhận diện khung xương, độ trễ mạng và chi phí hạ tầng sẽ rất lớn.
Giải pháp của PickleBase là đưa toàn bộ pipeline suy luận hình học về phía trình duyệt (Edge/Client-side):
[Video 60fps / Webcam]
│
▼
[MediaPipe Pose Landmarker (WASM + WebGL Delegate)]
│ (Trích xuất 33 điểm mốc 3D: x, y, z, visibility)
▼
[Kinematic Angle Engine (Vector 3D & Chuỗi Động Học)]
│ ├── Góc khuỷu tay (Shoulder-Elbow-Wrist)
│ ├── Góc mở vai & độ xoay hông (Hip-Shoulder Separation)
│ └── Trọng tâm cơ thể so với mặt phẳng Non-Volley Zone
▼
[3D Court & Trajectory Simulator + Đối chiếu Chuẩn Cơ Sinh Học]
2. Công thức toán học tính góc khớp 3D từ 33 điểm mốc MediaPipe
Khi MediaPipe Pose trả về tọa độ không gian 3 chiều cho 3 điểm mốc liên tiếp (ví dụ: Vai — LEFT_SHOULDER), (Khuỷu tay — LEFT_ELBOW) và (Cổ tay — LEFT_WRIST), góc khớp tại điểm được tính qua tích vô hướng của hai vector và :
/**
* Tính góc khớp 3D (đơn vị: độ) tại điểm B giữa hai đoạn BA và BC
* Dùng trong bộ máy phân tích của https://picklebase.app/ai-coach
*/
export function computeJointAngle3D(a, b, c) {
const v1 = { x: a.x - b.x, y: a.y - b.y, z: (a.z || 0) - (b.z || 0) };
const v2 = { x: c.x - b.x, y: c.y - b.y, z: (c.z || 0) - (b.z || 0) };
const dot = v1.x * v2.x + v1.y * v2.y + v1.z * v2.z;
const mag1 = Math.hypot(v1.x, v1.y, v1.z);
const mag2 = Math.hypot(v2.x, v2.y, v2.z);
if (mag1 === 0 || mag2 === 0) return 0;
const cosTheta = Math.max(-1, Math.min(1, dot / (mag1 * mag2)));
return Math.round((Math.acos(cosTheta) * 180) / Math.PI);
}
Đối chiếu ngưỡng cơ sinh học thực tế (Ví dụ: Cú Third Shot Drop và Dink)
Từ bộ dữ liệu 12 kỹ thuật cốt lõi được chuẩn hóa trong báo cáo học thuật trên Zenodo — CERN (Record #23582848), hệ thống tự động bắt lỗi sai cơ học phổ biến ở người chơi phong trào:
| Kỹ thuật | Thông số cơ sinh học chuẩn | Lỗi phổ biến khi vượt ngưỡng |
|---|---|---|
| Forehand / Backhand Dink | Góc khuỷu tay ổn định 105° – 125°, cổ tay khóa, lực đẩy từ vai và hạ trọng tâm gối |
Gập/vẩy cổ tay đột ngột làm bóng nảy cao qua lưới (Pop-up) |
| Third Shot Drop | Tiếp xúc bóng phía trước hông 20–30 cm, mặt vợt mở 35° – 45°, quỹ đạo parabol rơi vào vùng Kitchen |
Chạm bóng ngang hông hoặc vung vợt từ trên xuống như cắt bóng bàn (Chop) |
| Overhead Smash & Erne | Tách góc xoay hông – vai (Hip-Shoulder Separation) trước khi vung vợt, kiểm soát điểm rơi chân ngoài vạch NVZ | Nhảy đập bóng nhưng theo đà bước chân chạm vạch Kitchen (vi phạm Điều 9 — USA Pickleball 2026) |
3. Mô phỏng Bàn Chiến Thuật 3D & Luật USA Pickleball 2026
Bên cạnh phân tích động tác cá nhân, môn Pickleball đánh đôi đòi hỏi khả năng di chuyển đồng bộ (Stacking, Shading, chuyển trạng thái từ Baseline lên vạch Kitchen). Tại phân hệ Bàn Chiến Thuật 3D và Tra cứu Luật USA Pickleball 2026, toàn bộ kích thước sân chuẩn quốc tế (, vùng Non-Volley Zone mỗi bên) được dựng bằng không gian 3D tương tác, cho phép xoay góc nhìn 360° từng pha bóng.
4. Mở hóa Dữ liệu (Open Specification) cho Cộng đồng Lập trình & AI Agents
Để các lập trình viên thể thao, nhà nghiên cứu cơ sinh học và các AI Agent (Claude, Cursor, OpenClaw, ChatGPT) có thể truy xuất trực tiếp thông số kỹ thuật và luật thi đấu chuẩn xác mà không bị ảo giác (hallucination), chúng tôi đã phát hành công khai bộ chỉ mục mở tại:
- Nền tảng tương tác chính thức (Tiếng Việt): https://picklebase.app/
- Phiên bản Quốc tế (English Edition): https://picklebase.app/en/
- Báo cáo Kỹ thuật & Dataset trên CERN Zenodo (
DOI): https://doi.org/10.5281/zenodo.23582848 (Xem trực tiếp trên Zenodo) - Kho Đặc tả Mở trên GitHub: https://github.com/aizaloapp/picklebase-open-spec & Cổng Tài liệu GitHub Pages
- Gói Kỹ năng cho AI Agent trên ClawHub: https://clawhub.ai/aizaloapp/skills/picklebase-biomechanics-coach
- Live MCP & OpenAPI 3.1 Endpoint:
https://picklebase.app/api/mcp|https://picklebase.app/openapi.json
Bạn có thể gọi thử trực tiếp máy chủ MCP của PickleBase ngay từ Terminal:
curl -X POST https://picklebase.app/api/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_technique_biomechanics","arguments":{"technique_id":"third-shot-drop"}}}'
Hy vọng kiến trúc kết hợp MediaPipe Pose WebGL + 3D Biomechanics + Edge MCP này sẽ mang lại nhiều gợi ý hữu ích cho các anh em đang phát triển ứng dụng SportsTech và Computer Vision trên nền tảng Web!
All Rights Reserved