otherros2monitoringrobot-fleettutorialpythoniot

Cách giám sát robot ROS 2 từ xa: Hướng dẫn đầy đủ 2026

Hướng dẫn từng bước giám sát robot ROS 2 từ bất kỳ đâu — pin, CPU, trạng thái, heartbeat, alerts. Code chạy được, setup 10 phút. Miễn phí 3 robots.

Nguyễn Anh Tuấn14 tháng 4, 20267 phút đọc
Cách giám sát robot ROS 2 từ xa: Hướng dẫn đầy đủ 2026

Nếu bạn đang chạy robot ROS 2 trong production — hoặc thậm chí chỉ test trong lab — sớm muộn gì cũng gặp cùng bức tường: làm sao biết robot đang làm gì khi bạn không đứng trước nó? Một con robot ngồi trong warehouse, một con quadruped ở nhà máy khách hàng, một drone cách xa 50 km — tất cả đều cần giám sát. Mở terminal SSH vào từng con? Không scale. Xây dashboard custom? Mất hàng tháng.

Bài này hướng dẫn setup monitoring từ xa cho robot ROS 2 trong dưới 10 phút bằng agent thực tế, production-ready. Cuối bài, bạn sẽ thấy battery, CPU, trạng thái ROS node, và metrics custom stream từ robot lên dashboard cloud — từ bất kỳ đâu trên thế giới.

Kỹ sư giám sát fleet robot trên laptop

Bạn sẽ xây được gì

Cuối tutorial:

  • Robot ROS 2 (hoặc laptop giả làm robot) gửi telemetry lên dashboard cloud mỗi 30 giây
  • Pin, CPU, RAM, uptime, trạng thái ROS node đều xem được từ xa
  • Alert bắn khi robot offline hoặc pin tụt dưới ngưỡng
  • Chạy trên bất kỳ mạng nào — Wi-Fi văn phòng, 4G, internet nhà
  • Setup 10 phút, không phải 10 tuần

Bạn cần gì

  • Robot hoặc máy tính chạy ROS 2 Humble, Iron, Jazzy, hoặc Rolling (Ubuntu 22.04+)
  • Python 3.10+
  • Kết nối internet (phía robot)
  • Tài khoản VnRobo miễn phí (3 robots free, không cần thẻ)

Nếu chưa có robot thật, bất kỳ laptop Ubuntu nào cũng được. Bạn vẫn sẽ thấy telemetry thật chạy.

Vì sao không SSH hay tự xây Flask dashboard?

Trước khi đi sâu, reality check vì sao người ta chọn nền tảng chuyên dụng:

Cách Thời gian setup Scale 10+ robots? Có alert không? Chi phí bảo trì
SSH vào từng robot 0 phút Cao
Custom Flask + Grafana 2-4 tuần ⚠️ Mong manh Tự làm Rất cao
InfluxDB + Telegraf 1-2 tuần Tự làm Cao
Fleet SaaS (VnRobo etc.) 10 phút Thấp

Nếu có 1 robot và thích Flask: ok, tự xây. Nếu có 3+ robot và quý cuối tuần: dùng SaaS.

Bước 1: Tạo tài khoản VnRobo

Vào app.vnrobo.com/sign-up. Đăng ký bằng email hoặc Google. Không cần thẻ. Bạn sẽ vào dashboard với 0 robot.

Bấm "Add Robot" → đặt tên (ví dụ test-robot-01) → bạn sẽ nhận 2 giá trị:

  • ORG_ID — ID tổ chức
  • ROBOT_TOKEN — token riêng cho robot này

Copy 2 cái này. Cần cho bước sau.

Bước 2: Cài agent ROS 2

Trên robot (hoặc laptop):

pip install vnrobo-agent

Đúng vậy — không cần apt repo, không config systemd ngay, không quản lý secrets phức tạp. Bên trong, lệnh này cài Python package đọc psutil cho system metrics và ping trạng thái ROS 2 node.

Yêu cầu: agent cần Python 3.10+ và ROS 2 đã source trong shell (source /opt/ros/humble/setup.bash hoặc tương tự).

Bước 3: Khởi tạo agent

Chạy 1 lần để link robot với tài khoản:

vnrobo init \
  --org YOUR_ORG_ID \
  --token YOUR_ROBOT_TOKEN \
  --name test-robot-01

Lệnh này tạo config tại ~/.vnrobo/config.yaml. Không commit lên git.

Bước 4: Start vòng lặp heartbeat

Chạy daemon monitoring:

vnrobo run

Bạn sẽ thấy:

[vnrobo] Connected to cloud
[vnrobo] Sending heartbeat every 30s
[vnrobo] battery=0.87 cpu=12% mem=34% nodes=8

Quay lại dashboard VnRobo trong browser. Trong vòng 30 giây, robot xuất hiện với chấm xanh — ONLINE. Click vào để xem metrics live: pin, CPU, RAM, danh sách ROS node.

Thế là xong mức tối thiểu. Bạn đã có remote monitoring.

Bước 5: Gửi metric custom từ code ROS 2

Default metrics (pin, CPU, RAM) hữu ích, nhưng có lẽ bạn muốn track thứ domain-specific: mission hiện tại, nhiệt độ động cơ, sức khỏe LIDAR, bất cứ gì.

Cách push metric custom từ node ROS 2 Python:

import rclpy
from rclpy.node import Node
from vnrobo import Heartbeat

class MissionNode(Node):
    def __init__(self):
        super().__init__('mission_node')
        self.hb = Heartbeat()
        self.timer = self.create_timer(5.0, self.report)

    def report(self):
        self.hb.send({
            "mission_id": 42,
            "motor_temp_c": 47.3,
            "lidar_fps": 15,
            "current_task": "picking",
            "battery": 0.72,
        })

def main():
    rclpy.init()
    node = MissionNode()
    rclpy.spin(node)
    rclpy.shutdown()

if __name__ == "__main__":
    main()

Lưu thành mission_node.py, chạy song song với vnrobo run. Mọi cặp key-value gửi lên đều hiển thị tự động trong dashboard — không cần đổi schema, không migration database.

Bước 6: Setup alerts

Alert là tính năng giá trị cao nhất của remote monitoring. Robot offline 6 giờ trước là vô dụng; robot offline 30 giây trước là vấn đề bạn có thể fix.

Trong dashboard, click Alerts → New Alert:

Ví dụ: pin thấp

  • Condition: battery < 0.20
  • Thông báo: email + webhook Slack
  • Cooldown: 5 phút (đừng spam)

Ví dụ: robot offline

  • Condition: không có heartbeat 2 phút
  • Thông báo: email + webhook
  • Tự resolve khi robot kết nối lại

Ví dụ: động cơ quá nhiệt

  • Condition: motor_temp_c > 80
  • Thông báo: gọi kỹ sư on-call

Alert notifications trên điện thoại cho trạng thái robot

Bước 7: Chạy như systemd service

Cho production, bạn muốn agent tự start khi boot và restart nếu crash. Tạo /etc/systemd/system/vnrobo-agent.service:

[Unit]
Description=VnRobo Agent
After=network-online.target

[Service]
Type=simple
User=robot
Environment="ROS_DOMAIN_ID=0"
ExecStart=/usr/bin/bash -lc 'source /opt/ros/humble/setup.bash && vnrobo run'
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Enable và start:

sudo systemctl enable vnrobo-agent
sudo systemctl start vnrobo-agent
sudo systemctl status vnrobo-agent

Giờ agent sống sót qua reboot, crash, và mất mạng.

Bước 8: Thêm robot khác

Cho mỗi robot mới:

  1. Click Add Robot trong dashboard → nhận token mới
  2. pip install vnrobo-agent trên máy đó
  3. vnrobo init --org YOUR_ORG_ID --token NEW_TOKEN --name robot-02
  4. Start systemd service

Free tier chạy được 3 robots. Thêm hơn, plan Pro $29/tháng cho 25 robots.

Các vấn đề thường gặp và cách fix

"Connection refused" khi chạy vnrobo run

Check internet trên robot: curl https://api.vnrobo.com/health. Nếu bị block, firewall đang lọc HTTPS outbound. Whitelist api.vnrobo.com port 443.

ROS node không hiện

Đảm bảo ROS 2 đã source trong shell đang chạy agent. Check bằng ros2 node list — nếu rỗng, agent không có gì để báo.

Dashboard hiện last heartbeat 5 phút trước nhưng robot đang chạy

Vấn đề mạng giữa robot và cloud. Agent queue heartbeat local và flush khi connection trở lại. Đợi 2 phút. Nếu vẫn, check journalctl -u vnrobo-agent.

Nhiều robot hiện thành 1

Mỗi robot cần token riêng. Đừng dùng chung token giữa các máy.

Vượt qua basic — làm gì tiếp

Khi đã có remote monitoring cơ bản:

  1. Thêm GPS tracking — push lat/lon trong heartbeat, dashboard vẽ trên map
  2. Stream rosbag metadata — log trajectory để debug sau
  3. Tích hợp với CI/CD — alert khi rollout fleet fail
  4. Xây dashboard custom — dùng API VnRobo pull data vào tool của bạn

So sánh với alternative khác

Ngắn gọn: nếu muốn tool monitoring drop-in cho < 25 robot và quan tâm chi phí, VnRobo là đường nhanh nhất. Nếu cần video live và compliance enterprise, xem Formant hoặc Freedom Robotics. Nếu AWS RoboMaker là setup cũ, đây là hướng dẫn migration đầy đủ.

Kết luận

Remote monitoring cho ROS 2 không cần là dự án engineering 3 tháng. Cài agent, init, run. 10 phút từ zero đến dashboard cloud hoạt động. Thêm metric custom trong vài dòng Python. Quy tắc alert bằng click, không phải YAML war.

Nếu setup này hợp, thử miễn phí 3 robot — không cần thẻ. Nếu gặp issue, docs VnRobo cover edge cases bỏ qua ở đây (tune offline detection, config proxy, multi-org setup).

Bài viết liên quan

NT

Nguyễn Anh Tuấn

Robotics & AI Engineer. Building VnRobo — sharing knowledge about robot learning, VLA models, and automation.

Bài viết liên quan

NEWSo sánh
Lựa chọn thay thế InOrbit 2026: So sánh 5 nền tảng Fleet AMR
inorbitamrwarehouserobot-fleetcomparisonvda-5050

Lựa chọn thay thế InOrbit 2026: So sánh 5 nền tảng Fleet AMR

Tìm alternative InOrbit cho fleet AMR warehouse? So sánh thẳng thắn 5 nền tảng — giá, VDA 5050, hỗ trợ MiR/OTTO.

16/4/20267 phút đọc
NEWSo sánh
Lựa chọn thay thế Freedom Robotics 2026: So sánh 5 nền tảng Fleet Robot
freedom-roboticsrobot-fleetfleet-managementros2comparison

Lựa chọn thay thế Freedom Robotics 2026: So sánh 5 nền tảng Fleet Robot

Freedom Robotics tốt, nhưng có thể không hợp bạn. So sánh thẳng thắn 5 alternatives — giá, ROS 2, free tier, video live. Gồm VnRobo, Formant, InOrbit.

15/4/20268 phút đọc
NEWSo sánh
Lựa chọn thay thế Formant: So sánh 5 nền tảng quản lý fleet robot 2026
formantrobot-fleetfleet-managementros2comparisonsaas

Lựa chọn thay thế Formant: So sánh 5 nền tảng quản lý fleet robot 2026

Tìm alternative cho Formant năm 2026? So sánh thẳng thắn 5 nền tảng quản lý fleet robot — giá, hỗ trợ ROS 2, tính năng, và cái nào hợp với team bạn.

13/4/202611 phút đọc