Software stack humanoid robot: từ ROS 2 đến VLA deployment
Disclosure: Bài viết có thể chứa affiliate/referral links. Nếu bạn mua hoặc đăng ký qua các link đó, VnRobo có thể nhận commission hoặc credit.
Humanoid robot không chạy bằng một AI model duy nhất. Nó cần một stack nhiều tầng: realtime control để robot không tự phá mình, ROS 2 để nối sensor và node, simulator để test, data pipeline để học, policy/VLA để ra quyết định, và monitoring để biết hệ thống đang ổn hay sắp lỗi.
Nếu stack không rõ, demo có thể chạy một lần nhưng không replay được, không debug được và không mở rộng được.
Kiến trúc tổng thể
Language/task command
-> Planner hoặc VLA policy
-> Whole-body controller
-> ROS 2 graph
-> Realtime motor controller
-> Actuator / sensor
Data/training path
-> Teleoperation
-> rosbag2 / dataset
-> Simulator
-> Cloud GPU / workstation training
-> Optimized deployment on Jetson
Nguyên tắc quan trọng: AI tầng cao được phép sai, tầng thấp phải an toàn. VLA có thể hiểu nhầm lệnh, nhưng joint limit, current limit và watchdog không được biến mất.
Tầng 1: realtime control
Tầng này xử lý:
- Encoder.
- IMU.
- Motor command.
- Torque/current limit.
- Joint limit.
- Watchdog.
- Damping/fallback mode.
- Emergency stop.
Không nên để Python node điều khiển torque trực tiếp trên robot có thể ngã. ROS 2 nên gửi target hoặc command ở tầng cao hơn; loop motor cần chạy trong MCU, realtime process hoặc controller chuyên dụng.
Tầng 2: ROS 2
ROS 2 là middleware để nối hệ thống. Tài liệu ROS 2 chính thức mô tả ROS là tập hợp thư viện và công cụ để xây dựng ứng dụng robot, từ driver đến thuật toán và developer tools. Nguồn: ROS 2 documentation.
Trong humanoid, ROS 2 thường quản lý:
/joint_states/tfvà/tf_static- Camera topics.
- IMU.
- Robot description/URDF.
- Command topics.
- Diagnostics.
- rosbag2.
Điểm dễ sai là TF tree. Nếu wrist camera frame lệch, grasping sẽ lệch. Nếu base/pelvis frame không rõ, locomotion và mapping sẽ khó debug.
Tầng 3: simulator
Robot nên ngã trong simulator trước khi ngã trong lab.
Các lựa chọn:
- MuJoCo: mạnh cho dynamics, articulated structures, locomotion/control. Tài liệu MuJoCo mô tả nó là physics engine cho robotics, biomechanics, machine learning và articulated structures. Nguồn: MuJoCo docs.
- Isaac Sim / Isaac Lab: mạnh cho simulation, synthetic data, robot learning và workflow NVIDIA. NVIDIA mô tả Isaac Sim là framework dựa trên Omniverse cho robotics simulation, testing và synthetic data generation. Nguồn: NVIDIA Isaac Sim.
- Các simulator mới: đáng theo dõi, nhưng nên kiểm tra ecosystem trước khi phụ thuộc.
Không cần chọn một simulator duy nhất. MuJoCo có thể dùng cho control nhanh, Isaac Sim dùng cho perception/synthetic data, robot thật dùng cho validation.
Tầng 4: data pipeline
Humanoid AI cần data sạch:
- Head camera.
- Wrist camera nếu manipulation.
- Joint states.
- IMU.
- Action/command.
- Task label.
- Timestamp.
- Object/scene metadata.
Trước khi train, replay dataset. Nếu replay đã lệch timestamp, thiếu TF hoặc sai frame, training chỉ làm lỗi khó thấy hơn.
Tầng 5: policy, VLA và LeRobot
LeRobot của Hugging Face hướng tới việc làm AI robotics dễ tiếp cận hơn, với tools cho data collection, training, visualization và policy sharing. Repo chính thức mô tả LeRobot là thư viện giúp end-to-end learning trong robotics dễ tiếp cận hơn. Nguồn: Hugging Face LeRobot.
LeRobot rất tốt để học workflow imitation learning, diffusion policy và dataset format. Nhưng với humanoid full-body, bạn vẫn cần:
- Action space riêng.
- Safety constraint.
- Whole-body controller nằm dưới policy.
- Simulator validation.
- Shadow mode trước khi chạy thật.
VLA nên sinh subgoal/action ở tầng cao, không nên điều khiển torque trực tiếp.
Tầng 6: deployment
Pipeline an toàn:
Train trên cloud GPU/workstation
-> evaluate trong simulator
-> replay trên rosbag thật
-> optimize model
-> deploy lên Jetson
-> chạy shadow mode
-> giới hạn tốc độ/biên độ
-> điều khiển robot thật
Shadow mode nghĩa là model dự đoán action nhưng chưa điều khiển robot. Bạn log xem model định làm gì, so với operator/controller hiện tại.
Monitoring
Dashboard nên có:
- Battery voltage/current.
- Joint temperature.
- Motor errors.
- Camera FPS.
- Policy latency.
- IMU orientation.
- Network status.
- Safety events.
- Last command timestamp.
Đây là hướng sản phẩm tự nhiên cho VnRobo: dashboard/fleet monitoring cho robot lab, humanoid prototype và robot công nghiệp.
Affiliate/referral đặt ở đâu?
Với bài software, link tự nhiên nằm ở:
- Cloud GPU cho training.
- VPS/hosting cho dashboard.
- Jetson cho deployment.
- Camera/IMU trong tutorial data collection.
- Robotics course/book chất lượng.
Đặt link ở phần công cụ thật sự cần. Đừng biến bài software thành catalog sản phẩm.
Kết luận
Humanoid software stack tốt phải tách rõ safety, middleware, learning và monitoring. ROS 2 nối hệ thống, simulator giảm rủi ro, data pipeline quyết định model học được gì, LeRobot giúp học workflow policy, còn Jetson/cloud GPU chia vai deployment/training. Khi stack rõ, affiliate link chỉ là hỗ trợ người đọc mua đúng công cụ, không làm bài mất uy tín.