OpenArm — Phân tích Lộ trình Training Robot 7-DoF với SimpleVLA-RL
Trong 5 bài trước của series SimpleVLA-RL, chúng ta đã tìm hiểu lý thuyết: từ tổng quan framework đến kết quả thực nghiệm, rồi so sánh với LeRobot. Bây giờ là lúc đặt câu hỏi thực tế nhất: Làm thế nào để áp dụng những kiến thức này vào một con robot thật?
Trong bài viết này, chúng ta sẽ phân tích chi tiết robot OpenArm — cánh tay 7-DoF mã nguồn mở được LeRobot hỗ trợ native từ v0.5 — và vạch ra lộ trình training nó thực hiện task gắp hộp carton. Đây là bài viết dành cho những ai muốn chuyển từ "đọc paper" sang "chạy robot thật".
1. OpenArm là gì? Tại sao chọn nó?
OpenArm là cánh tay robot humanoid 7 bậc tự do (7-DoF), được thiết kế đặc biệt cho nghiên cứu AI và robotics. Không giống những cánh tay công nghiệp cứng nhắc như UR5 hay Fanuc, OpenArm sử dụng motor Damiao QDD (Quasi-Direct Drive) — loại motor backdrivable, nghĩa là bạn có thể dùng tay đẩy cánh tay robot mà không gặp lực cản lớn. Đặc tính này cực kỳ quan trọng cho teleoperation và nghiên cứu manipulation.
Thông số kỹ thuật chính
| Thông số | Giá trị |
|---|---|
| Bậc tự do (DoF) | 7 + gripper = 8 DoF |
| Tầm với (reach) | 633mm |
| Tải trọng (payload) | 4.1 kg |
| Motor vai (shoulder) | DM8009 |
| Motor khuỷu/xoay vai (elbow/shoulder rotation) | DM4340 |
| Motor cổ tay/gripper (wrist/gripper) | DM4310 |
| Giao tiếp (interface) | CAN bus |
| Giá hệ thống bimanual | ~$6,500 |
| LeRobot support | Native từ v0.5+ |
Tại sao OpenArm phù hợp cho nghiên cứu?
Thứ nhất, OpenArm được tích hợp sẵn vào LeRobot từ phiên bản v0.5. Điều này có nghĩa là bạn không cần viết driver, không cần lo giao tiếp phần cứng — tất cả đã được chuẩn hóa qua các lệnh lerobot-calibrate, lerobot-teleoperate, lerobot-record.
Thứ hai, motor QDD backdrivable cho phép leader-follower teleoperation tự nhiên. Bạn di chuyển cánh tay leader bằng tay, cánh tay follower sẽ bắt chước chính xác — đây là cách thu thập dữ liệu demo phổ biến nhất hiện nay.
Thứ ba, giá $6,500 cho hệ thống bimanual (hai tay) là khá hợp lý so với các giải pháp khác. So sánh: ALOHA (Google) ~$32,000, Franka Emika Panda ~$30,000+.
2. Mục tiêu: Dạy OpenArm gắp hộp carton
Hãy đặt mục tiêu cụ thể: dạy OpenArm gắp hộp carton từ bàn và đặt vào vị trí khác. Đây là task tương tự với những gì SimpleVLA-RL đã thử nghiệm trong paper (pick, stack, place objects).
Tại sao task này? Vì nó đủ phức tạp để thú vị — hộp carton có nhiều kích cỡ, texture khác nhau, vị trí đặt ngẫu nhiên — nhưng không quá khó cho người mới bắt đầu. Đây cũng là task có ứng dụng thực tế cao trong logistics và warehouse automation.
Thách thức kỹ thuật
Trước khi vạch lộ trình, hãy liệt kê các thách thức:
- OpenArm là robot mới — chưa có dataset công khai cho task gắp hộp
- Chưa có sim environment chuẩn — SimpleVLA-RL cần simulation, nhưng OpenArm chưa có MuJoCo/Isaac Lab model chính thức (dù đã có repo
openarm_isaac_labthử nghiệm) - Action space khác biệt — OpenArm 8-DoF (7 joint + 1 gripper) vs Piper trong paper SimpleVLA-RL 14-DoF (bimanual 7+7)
- Chưa có pretrained VLA cho OpenArm — OpenVLA-OFT được train trên các robot khác
3. Ba lộ trình Training — Phân tích chi tiết
Dựa trên thách thức trên, có ba lộ trình tiếp cận rõ ràng. Mỗi lộ trình phù hợp với một nhóm đối tượng khác nhau.
PATH A — LeRobot Native (Khuyến nghị cho người mới)
Đây là con đường đơn giản nhất, tận dụng trực tiếp hệ sinh thái LeRobot mà không cần simulation.
Bước 1: Setup phần cứng + LeRobot
Cài đặt CAN bus interface trên máy tính Linux:
# Setup CAN interfaces cho leader và follower
lerobot-setup-can --mode=setup --interfaces=can0,can1
Calibrate robot — bước này bắt buộc để LeRobot biết vị trí zero của mỗi joint:
# Calibrate follower arm (robot thực hiện task)
lerobot-calibrate \
--robot.type=openarm_follower \
--robot.port=can0 \
--robot.side=right
# Calibrate leader arm (robot bạn điều khiển bằng tay)
lerobot-calibrate \
--robot.type=openarm_leader \
--robot.port=can1 \
--robot.side=right
Bước 2: Thu thập demo bằng teleoperation
Đây là bước quan trọng nhất. Bạn điều khiển leader arm để thực hiện task gắp hộp, follower arm sẽ bắt chước và LeRobot sẽ ghi lại toàn bộ trajectory.
# Test teleoperation trước khi ghi
lerobot-teleoperate \
--robot.type=openarm_follower \
--teleop.type=openarm_leader
# Ghi dataset: 50+ episodes, 30 FPS
lerobot-record \
--robot.type=openarm_follower \
--teleop.type=openarm_leader \
--repo-id=your-username/openarm-box-grasping \
--fps=30 \
--num-episodes=50
Mẹo quan trọng: Thu thập ít nhất 50 episodes, nhưng 100+ sẽ cho kết quả tốt hơn đáng kể. Mỗi episode nên có biến thể — thay đổi vị trí hộp, góc đặt, kích thước hộp.
Bước 3: Train model với LeRobot
LeRobot hỗ trợ nhiều policy architecture. Cho task gắp hộp, hai lựa chọn tốt nhất:
- ACT (Action Chunking with Transformers) — ổn định, dễ train, phù hợp task đơn giản
- SmolVLA — VLA model nhỏ gọn, có khả năng generalize tốt hơn nhờ vision-language backbone
# Train ACT policy trên dataset vừa thu thập
python lerobot/scripts/train.py \
--dataset.repo_id=your-username/openarm-box-grasping \
--policy.type=act \
--training.num_epochs=2000
# Hoặc train SmolVLA cho khả năng generalize tốt hơn
python lerobot/scripts/train.py \
--dataset.repo_id=your-username/openarm-box-grasping \
--policy.type=smolvla \
--training.num_epochs=500
Bạn có thể tham khảo thêm chi tiết về SmolVLA training trong bài viết riêng.
Bước 4: Deploy và itererate
# Chạy policy đã train trên robot thật
python lerobot/scripts/eval.py \
--policy.type=act \
--policy.path=outputs/train/act_openarm/checkpoints/last/pretrained_model \
--robot.type=openarm_follower
Quan sát kết quả, thu thập thêm demo ở những tình huống robot thất bại, train lại. Vòng lặp này thường cần 3-5 lần iteration để đạt kết quả khá.
Ưu điểm PATH A
- Không cần simulation — làm việc trực tiếp với robot thật
- Beginner-friendly — LeRobot xử lý phần phức tạp
- Nhanh có kết quả — từ setup đến kết quả đầu tiên trong 1-2 ngày
- Dữ liệu thật — không lo sim-to-real gap
Nhược điểm PATH A
- Chất lượng bị giới hạn bởi demo — robot không thể tốt hơn demo bạn thu thập
- Không có RL improvement — không thể khám phá hành vi mới ngoài demo
- Tốn thời gian thu thập — mỗi episode cần thực hiện thủ công
- Scale kém — muốn thêm task mới phải thu thập demo mới hoàn toàn
PATH B — SimpleVLA-RL Style (Nâng cao)
Đây là con đường theo đúng phương pháp của paper SimpleVLA-RL: SFT trước, RL sau, tất cả trong simulation.
Bước 1: Tìm/tạo sim environment cho OpenArm
Tin tốt: đã có repo openarm_isaac_lab trên GitHub, cung cấp URDF/USD model của OpenArm cho NVIDIA Isaac Lab. Tuy nhiên, đây vẫn là repo thử nghiệm và chưa có sẵn các task environment.
# Ý tưởng: tạo task environment trong Isaac Lab
# 1. Import OpenArm USD model
# 2. Tạo scene: bàn + hộp carton + vùng đặt
# 3. Định nghĩa reward: binary (hộp ở vùng đặt = 1, ngược lại = 0)
# 4. Domain randomization: vị trí hộp, kích thước, texture
Bước 2: Thu thập sim demos
Có thể dùng scripted policy (viết code điều khiển robot gắp theo vị trí biết trước) hoặc teleoperation trong sim.
Bước 3: SFT → RL → Sim-to-Real
Đây là pipeline chính của SimpleVLA-RL:
- SFT (Supervised Fine-Tuning) trên sim demos — dạy VLA model "cách gắp cơ bản"
- RL (GRPO) trong sim — để model tự khám phá cách gắp tốt hơn demo
- Sim-to-real transfer — deploy model đã train lên OpenArm thật
Nhưng có một thách thức lớn: action space mismatch. OpenVLA-OFT (7B) trong SimpleVLA-RL được pretrain cho robot Piper với 14 DoF (bimanual). OpenArm chỉ có 8 DoF. Bạn cần fine-tune action head hoặc sử dụng model khác.
Ưu điểm PATH B
- RL có thể khám phá hành vi mới — paper SimpleVLA-RL cho thấy "pushcut" behaviors
- Scale tốt — train hàng nghìn episodes trong sim không tốn thời gian người
- Nhiều task cùng lúc — thêm task trong sim dễ hơn thu thập demo thật
Nhược điểm PATH B
- Sim-to-real gap — kết quả sim không đảm bảo hoạt động trên robot thật
- Cần sim environment — chưa có sẵn, phải tự xây hoặc đợi community
- Phức tạp hơn nhiều — cần hiểu Isaac Lab, veRL, GRPO
- Thời gian setup dài — có thể mất 2-4 tuần trước khi bắt đầu train
PATH C — Hybrid (Kết hợp tốt nhất)
Đây là lộ trình tối ưu cho người đã có kinh nghiệm, kết hợp ưu điểm của cả hai path trên.
Quy trình 4 bước
- Thu thập real demos qua LeRobot (50 episodes) — giống PATH A
- Train SmolVLA/ACT qua LeRobot SFT — có baseline hoạt động trên robot thật
- Fine-tune trong sim với RL — nếu sim environment có sẵn, dùng RL để cải thiện
- Deploy lại robot thật — kiểm tra sim-to-real transfer
Tại sao Hybrid là tốt nhất?
- Bạn có baseline hoạt động ngay từ PATH A (không cần đợi sim)
- Khi sim environment sẵn sàng, bạn có thể cải thiện thêm bằng RL
- Real demos giúp giảm sim-to-real gap vì model đã thấy dữ liệu thật
- Flexible: nếu RL trong sim không improve, bạn vẫn có baseline tốt
4. So sánh Action Space: OpenArm vs Piper
Hiểu sự khác biệt về action space là then chốt để adapt SimpleVLA-RL cho OpenArm.
| Thông số | OpenArm (single) | Piper (bimanual - SimpleVLA-RL) |
|---|---|---|
| DoF | 7 joint + 1 gripper = 8 | 2 x (6 joint + 1 gripper) = 14 |
| Motor type | Damiao QDD | Servo |
| Action format | [j1, j2, j3, j4, j5, j6, j7, grip] |
[left_j1..j6, left_grip, right_j1..j6, right_grip] |
| Control mode | Position (joint angle) | Position (joint angle) |
| Backdrivable | Có | Không |
Điều này ảnh hưởng gì?
Nếu bạn muốn dùng OpenVLA-OFT (đã pretrain trong SimpleVLA-RL), bạn cần modify action head output dimension từ 14 → 8. Đây không phải thay đổi trivial — action head cần được fine-tune lại.
Giải pháp thực tế hơn: dùng SmolVLA hoặc ACT từ LeRobot, vì chúng được thiết kế để train from scratch trên bất kỳ action space nào.
5. Hardware Checklist — Người mới cần gì?
Nếu bạn quyết định bắt đầu với PATH A (khuyến nghị), đây là danh sách phần cứng cần mua:
Bắt buộc
| Thiết bị | Giá ước tính | Ghi chú |
|---|---|---|
| OpenArm follower arm | ~$3,000 | Cánh tay thực hiện task |
| OpenArm leader arm | ~$3,000 | Cánh tay điều khiển bằng tay |
| CAN-to-USB adapter x2 | ~$50 | Kết nối robot với máy tính |
| Máy tính Linux + GPU | ~$1,500+ | NVIDIA GPU cho training |
| Camera USB (Logitech C920+) | ~$70 | Ghi hình observation |
Nên có
| Thiết bị | Giá ước tính | Ghi chú |
|---|---|---|
| Camera Intel RealSense D435 | ~$350 | Depth perception |
| Bàn chắc chắn + mount | ~$200 | Gắn cố định robot |
| Hộp carton đa kích thước | ~$30 | Đối tượng gắp |
| UPS (nguồn dự phòng) | ~$150 | Tránh mất data khi mất điện |
Tổng chi phí tối thiểu: ~$7,600 (bimanual system + máy tính + phụ kiện)
So sánh: nếu bạn dùng Google ALOHA, chi phí sẽ vào khoảng $35,000+. OpenArm tiết kiệm hơn gần 5 lần mà vẫn đủ chức năng cho nghiên cứu.
6. Kết quả tham khảo: Piper trên robot thật
Để có kỳ vọng thực tế, hãy nhìn vào kết quả real-world của SimpleVLA-RL trên robot Piper (bài gốc):
| Task | Success Rate |
|---|---|
| Stack Bowls | 70% |
| Click Bell | 60% |
| Pick Bottle | 14% |
Đây là con số sau RL improvement. Trước RL (chỉ SFT), kết quả thấp hơn đáng kể. Điều này cho thấy:
- RL thực sự giúp cải thiện — nhưng không phải magic
- Task đơn giản (stack) dễ hơn task phức tạp (pick bottle)
- Sim-to-real gap vẫn là thách thức lớn — 14% cho pick bottle
Với OpenArm và task gắp hộp carton (tương tự Pick Bottle về độ khó), kỳ vọng thực tế cho PATH A (SFT only) là khoảng 30-50% success rate sau 100+ demos. PATH C (hybrid với RL) có thể đẩy lên 50-70%.
7. Bimanual: Mở rộng lên hai tay
OpenArm hỗ trợ bimanual setup thông qua LeRobot:
# Bimanual teleoperation
lerobot-teleoperate \
--robot.type=bi_openarm_follower \
--teleop.type=bi_openarm_leader
# Bimanual recording
lerobot-record \
--robot.type=bi_openarm_follower \
--teleop.type=bi_openarm_leader \
--repo-id=your-username/openarm-bimanual-box \
--fps=30 \
--num-episodes=50
Bimanual mở ra nhiều task phức tạp hơn: mở nắp hộp, gấp hộp, di chuyển vật lớn. Tuy nhiên, đây là bước nâng cao — hãy master single-arm trước.
8. Series Roadmap — Tiếp theo
Bài viết này là phân tích lộ trình tổng quan. Trong các bài tiếp theo của series, chúng ta sẽ đi sâu vào thực hành:
- Part 7: Thu thập dữ liệu — Hướng dẫn step-by-step setup OpenArm + LeRobot, calibrate, và thu thập 50+ episodes gắp hộp carton
- Part 8: Training & Deploy — Train SmolVLA/ACT trên dữ liệu thật, deploy lên robot, đánh giá kết quả và iteration
Kết luận
OpenArm là lựa chọn tuyệt vời cho ai muốn bắt đầu nghiên cứu robot manipulation với VLA/RL. Với giá hợp lý, LeRobot native support, và motor backdrivable cho teleoperation dễ dàng, nó giảm đáng kể rào cản gia nhập.
Lời khuyên thực tế: Hãy bắt đầu với PATH A (LeRobot native). Thu thập 50 demos, train ACT, xem kết quả. Chỉ chuyển sang PATH C khi bạn đã hiểu pipeline và muốn cải thiện thêm bằng RL. PATH B thuần simulation chỉ nên thử khi bạn có kinh nghiệm với Isaac Lab.
Đừng đợi setup hoàn hảo — robot manipulation là lĩnh vực mà bạn học nhiều nhất từ thất bại trên robot thật.