Skip to main content

ros2-actions

ROS 2 actions — goals, cancel, preemption, feedback, BT integration, and executor pitfalls (Nav2/MoveIt-style). Use when implementing action servers/clients, cancel handshakes, concurrent goals, or stuck RUNNING.

소스 정보

저장소
guilyx/dotfiles
최근 소스 활동
2026년 8월 12일 19:39
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
ros2-actions
description
ROS 2 actions — goals, cancel, preemption, feedback, BT integration, and executor pitfalls (Nav2/MoveIt-style). Use when implementing action servers/clients, cancel handshakes, concurrent goals, or stuck RUNNING.
# ROS 2 Actions ## Contract Goal → optional feedback → **exactly one** terminal: SUCCEEDED / CANCELED / ABORTED. Do not fake cancel by succeeding. Do not detach work and report SUCCEEDED while hardware still moves — if you must, mark it `ponytail:` with ceiling + upgrade path. ## Server rules - `goal_callback`: accept/reject quickly; no hardware. - `cancel_callback`: accept only if you **will** stop; must be schedulable while execute runs (`ros2-executors`). - `execute_callback`: poll cancel; on cancel **command safe stop**, then `canceled()`. - Default: **one** active goal — reject or preempt the previous (MoveIt execute / Nav2 navigate style). - Preempt: stop old goal to a known state, then start new. ## Client + BT / mission (Nav2-style) - Tick/mission code uses **async** goals; on tree **halt** or preemption → **cancel** and wait for terminal (with timeout + local safe stop). - Do not fire-and-forget goals from a leaf that can be halted. - Feedback is for progress/UI; safety from state topics + server-side cancel. ## Threading - Long execute: worker thread or queue; share cancel via atomic/mutex; never sync-wait other actions on the ST executor from execute without groups. - Goal/cancel groups must not be blocked forever by execute (see `ros2-executors` pattern C). ## QoS / availability Action = topics + services under `/action_name`. Lifecycle-inactive server ⇒ clients hang — check lifecycle first. ## Debug ```bash ros2 action list ros2 action info /foo --verbose ros2 action send_goal /foo pkg/action/Type "{...}" --feedback ``` Server kill -9 ⇒ no result; clients need local timeouts.
GitHub에서 보기