Robot Bringup (khởi động ROS2 tự động)
Skill hướng dẫn cấu hình toàn bộ stack ROS2 tự khởi động trên máy tính onboard của robot bằng systemd, launch file phân tầng và udev rules.
Lập trìnhNâng cao★ 343⑂ 46Điểm AI 9/10Cập nhật lần cuối: 12 thg 8, 2026
Làm được gì
- Viết service systemd cho ROS2: mẫu unit file source đúng workspace, nạp biến môi trường DDS (
RMW_IMPLEMENTATION,ROS_DOMAIN_ID,CYCLONEDDS_URI), kèm watchdog, chính sách restart, giới hạn số lần restart và giới hạn tài nguyên cgroup. - Thiết kế launch file theo tầng: hardware → drivers → perception → application, cùng file
bringup.launch.pytổng hợp và mẫu nạp có điều kiện cho chế độ mô phỏng/phần cứng thật hoặc từng biến thể robot. - Xử lý race condition khi boot: script kiểm tra thiết bị, script chờ node/topic ROS2 sẵn sàng, và dùng Nav2 lifecycle manager để kích hoạt node theo thứ tự.
- udev rules: cố định tên thiết bị (
/dev/robot/lidar,/dev/robot/imu) thay vì/dev/video0,/dev/ttyUSB0thay đổi mỗi lần khởi động. - Ngoài ra còn có log rotation, tắt máy an toàn cho actuator và cấu hình discovery DDS đa máy.
Phù hợp với ai
- Kỹ sư robotics dùng ROS2 (Humble/Iron/Jazzy) trên Ubuntu 22.04/24.04 muốn robot tự chạy khi cấp nguồn
- Người gặp cảnh chạy tay thì ổn nhưng khi boot thì node chết hoặc không tìm thấy thiết bị
- Nhóm triển khai robot ngoài hiện trường cần watchdog, tự động khởi động lại và quản lý log ở mức production
Ví dụ sử dụng
- "Tạo service systemd để stack ROS2 của robot tự chạy khi boot" → unit file có source workspace, tắt mềm bằng SIGINT, restart khi lỗi.
- "SLAM khởi động trước khi LiDAR sẵn sàng nên bị crash" → thêm script
ExecStartPrekiểm tra thiết bị, tiện ích chờ topic và ràng buộcAfter/Requiresgiữa các service. - "Số hiệu /dev/video của hai camera USB đổi sau mỗi lần reboot" → viết udev rule theo cổng USB hoặc serial để có symlink cố định.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/arpitg1304/robotics-agent-skills/HEAD/skills/robot-bringup/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/robot-bringup từ repo GitHub arpitg1304/robotics-agent-skills vào ~/.claude/skills/robot-bringup/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/arpitg1304/robotics-agent-skills.git /tmp/robotics-agent-skills && mkdir -p ~/.claude/skills && cp -r /tmp/robotics-agent-skills/skills/robot-bringup ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và clone kho:
git clone https://github.com/arpitg1304/robotics-agent-skills.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Sao chép skill:
cp -r robotics-agent-skills/skills/robot-bringup ~/.claude/skills/ - Kiểm tra tệp
~/.claude/skills/robot-bringup/SKILL.mdđã tồn tại. - Khởi động lại Claude Code và thử yêu cầu: "Viết service systemd để bringup robot ROS2 của tôi".
- Các unit file và udev rule sinh ra dùng đường dẫn ví dụ (
/home/robot/ros2_ws, packagemy_robot_bringup) — hãy sửa cho khớp hệ thống thật rồi chạysudo systemctl daemon-reloadvàsudo udevadm control --reload-rules.
Xem mã nguồn trên GitHub ↗Giấy phép: Apache-2.0