Sổ tay SO-101

Hướng dẫn lắp đặt, vận hành và lập trình cánh tay robot SO-101 (5 khớp + tay kẹp, mã nguồn mở của TheRobotStudio). Mọi thao tác trong sổ tay đều làm được trên trình mô phỏng.

1. Tổng quan robot

Mô hình 3D trong trình mô phỏng được nạp trực tiếp từ file URDF và STL chính thức của SO-101, nên hình dạng, kích thước và giới hạn khớp giống robot thật. Mở tab Lắp ráp và kéo thanh Hình nổ để xem từng chi tiết.

Thông sốGiá trị
Số khớp5 khớp quay + 1 khớp tay kẹp, mỗi khớp một servo Feetech STS3215
Tầm vớikhoảng 410 mm tính tới TCP (trình mô phỏng tự tính từ URDF)
TCP98 mm từ khớp xoay cổ tay
Điều khiểnBo Waveshare bus-servo, nguồn 12 V, nối máy tính qua USB
Chi tiết in 3DĐế, giá servo, cánh tay trên, cẳng tay, khớp cổ tay, tay kẹp (PLA)
KhớpTên trong URDFChức năngGiới hạn
J1shoulder_panXoay cánh tay quanh trục đứng−109° … +109°
J2shoulder_liftNâng/hạ cánh tay trên−100° … +100°
J3elbow_flexGập cẳng tay−96° … +96°
J4wrist_flexGật cổ tay−94° … +94°
J5wrist_rollXoay tay kẹp−157° … +162°
KẹpgripperMở/đóng ngàm kẹp−10° … +100°

Thứ tự lắp ráp (14 chi tiết + cụm tay kẹp)

  1. Đế
  2. Giá đỡ servo đế
  3. Servo J1 (ID 1)
  4. Tấm gắn bo điều khiển
  5. Khớp xoay vai
  6. Giá servo vai
  7. Servo J2 (ID 2)
  8. Cánh tay trên
  9. Servo J3 (ID 3)
  10. Cẳng tay
  11. Giá servo cổ tay
  12. Servo J4 (ID 4)
  13. Khớp gập cổ tay
  14. Servo J5 (ID 5)

Cụm tay kẹp (thân kẹp, servo ID 6, ngàm di động) lắp ở bước B6 của phần Lắp đặt.

2. An toàn

Lưu ý: SO-101 thật là robot để bàn, không có tủ điều khiển, nút dừng khẩn hay vùng an toàn. Các thiết bị kiểu nhà máy này chỉ là phần mô phỏng thêm để luyện quy trình vận hành công nghiệp. Ngoài thực tế, muốn dừng khẩn thì rút nguồn 12 V.
Sơ đồ vùng làm việc nhìn từ trên
Sau E-STOP phải: nhả nút → Reset lỗi → Servo ON. Robot không tự chạy lại.

3. Lắp đặt

Thực hiện tuần tự trong tab Lắp đặt của trình mô phỏng. Bước sau chỉ mở khi bước trước hoàn thành.

B1. Cố định đế lên bàn

Đế SO-101 bắt 4 vít hoặc 2 kẹp chữ C lên mặt bàn

B2. Đấu nguồn 12 V và cáp USB

Sơ đồ đấu nối máy tính, adapter 12 V, bo Waveshare và 6 servo

B3. Bật nguồn bộ điều khiển

Máy tính nhận cổng serial (ví dụ /dev/ttyACM0), 6 servo trả lời. Servo chưa giữ mô-men.

B4. Thử E-STOP (mô phỏng)

Nhấn nút đỏ ở góc khung 3D, sau đó nhả. Bộ điều khiển xác nhận mạch dừng khẩn hoạt động.

B5. Hiệu chuẩn (calibration)

Robot chạy chậm từng khớp J1 → J5 về tư thế tham chiếu để ghi offset encoder. Trước bước này toạ độ hiển thị ???.

B6. Lắp cụm tay kẹp, khai báo TCP và tải

Gắn cụm tay kẹp, TCP 98 mm từ khớp xoay cổ tay. Nhập khối lượng vật (≤ 0.2 kg).

B7. Cài vùng an toàn (mô phỏng)

Bật giới hạn bán kính bằng tầm với của robot (vòng xanh trên bàn). Sau bước này tab Điều khiển và Lập trình được mở.

4. Vận hành

Jog từng trục

Kéo thanh trượt J1–J5. Robot di chuyển theo tốc độ override hiện tại.

Jog Descartes

Các nút X±, Y±, Z± dịch TCP theo hệ toạ độ robot (gốc tại tâm đế, X hướng ra trước, Y sang trái, Z lên trên). Tay kẹp luôn giữ hướng thẳng xuống. Chọn bước 5, 20 hoặc 50 mm.

MoveL đến toạ độ

Nhập X, Y, Z (mm) rồi bấm Đi. Nếu điểm ngoài tầm với, bộ điều khiển từ chối và ghi lý do vào nhật ký.

Gắp vật

  1. Mở kẹp, jog TCP tới trên phôi khoảng 60 mm.
  2. Hạ xuống Z = 14 mm (tâm phôi lập phương 28 mm).
  3. Đóng kẹp. Nhật ký báo “Đã kẹp vật”.
  4. Nâng lên trước khi di chuyển ngang để tránh va chạm.

5. Lập trình RXL

RXL là ngôn ngữ lệnh đơn giản của bộ điều khiển: mỗi dòng một lệnh, # bắt đầu chú thích, không phân biệt hoa thường. Viết trực tiếp trong tab Lập trình, hoặc jog robot rồi bấm + MOVEJ / + MOVEL để chèn điểm hiện tại.

LệnhÝ nghĩaVí dụ
MOVEJ j1 j2 j3 j4 j5Chạy nội suy khớp tới góc các trục (độ). Nhanh, quỹ đạo cong.MOVEJ 0 1 -2.3 86.7 0
MOVEL x y zĐưa TCP tới toạ độ (mm), kẹp hướng xuống.MOVEL 184 88 80
MOVEL TÊNĐi tới điểm đã khai báo bằng POINT.MOVEL BIN
POINT TÊN = x y zKhai báo điểm có tên, dùng lại nhiều lần.POINT BIN = 0 -220 88
GRIP OPEN | CLOSEMở hoặc đóng tay kẹp (0.45 s).GRIP CLOSE
WAIT giâyDừng chờ.WAIT 0.5
SPEED %Đặt tốc độ override 1–100%.SPEED 25
LOOP n … ENDLặp khối lệnh n lần. Bỏ n để lặp mãi đến khi bấm Dừng.LOOP 3
LOG "nội dung"Ghi dòng vào nhật ký.LOG "Xong"

Bấm Kiểm tra cú pháp trước khi chạy. Lỗi được báo kèm số dòng, ví dụ dòng 7: MOVEL cần 3 số.

6. Ví dụ chương trình

Gắp một phôi bỏ vào thùng

# Phôi đỏ ở (184, 88), thùng ở (0, -220)
POINT TREN_PHOI = 184 88 80
POINT BIN = 0 -220 88
MOVEJ 0 1 -2.3 86.7 0
GRIP OPEN
MOVEL TREN_PHOI
SPEED 25
MOVEL 184 88 14
GRIP CLOSE
MOVEL TREN_PHOI
SPEED 60
MOVEL BIN
MOVEL 0 -220 48
GRIP OPEN
MOVEL BIN

Chạy thử vòng lặp

SPEED 50
LOOP 3
  MOVEL 200 -80 60
  MOVEL 200 80 60
END
LOG "Chạy thử xong"

Nút Nạp mẫu gắp–thả sinh chương trình đầy đủ cho cả 3 phôi.

7. Mã lỗi & xử lý

Thông báoNguyên nhânXử lý
Jx vượt giới hạn mềmGóc đích ngoài phạm vi trụcReset lỗi, chọn điểm khác
Điểm nằm ngoài tầm vớiKhông có nghiệm động họcĐưa điểm gần đế hơn hoặc nâng Z
Vượt vùng an toànBán kính lớn hơn tầm vớiReset lỗi, sửa toạ độ
Va chạm: đầu kẹp chạm sànZ quá thấpReset lỗi, Servo ON, jog Z+
Không thể chạyServo OFF, E-STOP hoặc còn lỗiNhả E-STOP → Reset → Servo ON

8. Bảo trì định kỳ

Chu kỳViệc cần làm
Mỗi lần dùngKiểm tra cáp bus không bị kẹt hoặc lỏng, vít đế còn chặt
Hằng thángSiết lại vít các chi tiết in 3D, vệ sinh ngàm kẹp
Khi lệch vị tríChạy lại hiệu chuẩn, thay servo nếu kêu hoặc nóng bất thường