55 lines
3.0 KiB
YAML
55 lines
3.0 KiB
YAML
# Action "phải dò rồi mới biết đích" — bảng mở rộng của `VDA5050SourceAdapter`.
|
|
#
|
|
# File riêng thay vì sửa `mission_adapters_params.yaml`: file đó là symlink sang cây config của
|
|
# `pnkx_nav_core` (submodule). `robot::NodeHandle` gộp mọi file YAML trong thư mục config vào một
|
|
# cây, nên khoá `vda5050_src` ở đây hợp nhất với khoá cùng tên bên kia.
|
|
#
|
|
# ── Bảng này chỉ giữ CẤU TRÚC ────────────────────────────────────────────────────────────────────
|
|
#
|
|
# Fleet chỉ gửi `charge`; `DetectCharger` và `startCharging` là actionType NỘI BỘ do adapter sinh ra,
|
|
# không bao giờ xuất hiện trong order JSON. Tên frame cụ thể đến từ `actionParameters` của chính
|
|
# order, nên thêm một trạm sạc mới không phải sửa file này.
|
|
#
|
|
# Bốn từ khoá của một step, phải có ĐÚNG MỘT:
|
|
# action: <type> chặng chỉ-action; mang nguyên actionParameters của action gốc
|
|
# move_to: <frame> chặng nav, frame cố định
|
|
# move_to_param: <key> chặng nav, frame lấy từ actionParameters[<key>] của action gốc
|
|
# move: <mét> chặng nav tương đối; dương = tiến, âm = lùi
|
|
# Tuỳ chọn cho step navigation: profile (position | docking | go_straight | rotate), marker.
|
|
# `marker` chỉ hợp lệ với `profile: docking`: nó chọn override trong
|
|
# maker_sources.yaml/docking_marker_profiles. Không khai = dùng cặp docking mặc định.
|
|
# Tolerance thuộc YAML riêng của local planner đang được profile chọn, không khai ở đây.
|
|
|
|
vda5050_src:
|
|
compound_actions:
|
|
charge:
|
|
steps:
|
|
# 1. Dò: đứng yên lấy mẫu frame thô, lọc nhiễu, ghi ra `dock_target`.
|
|
# Robot không phát cmd_vel trong EXECUTING_ACTIONS nên đây đúng là lúc để lọc.
|
|
- {action: DetectCharger}
|
|
|
|
# 2. Tiến vào đích vừa dò được bằng profile docking. Sai số do local planner đọc từ YAML
|
|
# của chính plugin đó.
|
|
- {move_to: dock_target, profile: docking, marker: charger}
|
|
|
|
# 3. Thao tác thiết bị. Chặng 1 hoặc 2 hỏng thì `clear_queue_on_failure` xoá chặng này —
|
|
# robot không bao giờ đóng relay khi chưa vào được vị trí.
|
|
- {action: startCharging}
|
|
|
|
PickUp:
|
|
steps:
|
|
- {action: DetectPallet}
|
|
- {move_to: dock_target, profile: docking, marker: trolley}
|
|
- {action: LiftFork}
|
|
# Lùi ra khỏi khe kệ. Quãng đường tương đối được quy ra pose tuyệt đối tại `submit`, từ pose
|
|
# LÚC ĐÓ — lúc adapter sinh chặng thì robot còn chưa tới nơi.
|
|
- {move: -0.5, profile: go_straight}
|
|
|
|
GoStraight:
|
|
steps:
|
|
- {move: 1.0, profile: go_straight}
|
|
|
|
Rotate:
|
|
steps:
|
|
- {move: 0.0, profile: rotate}
|