Skip to main content

ros2-parameters

ROS 2 parameter declare/get, YAML overlays, wildcards, type coercion, and empty-array pitfalls. Use when params are ignored, wrong type, YAML does not load, or the user mentions declare_parameter, allow_undeclared, or empty arrays.

ソース情報

リポジトリ
guilyx/dotfiles
ソースの最終更新活動
2026年8月12日 19:39
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
ros2-parameters
description
ROS 2 parameter declare/get, YAML overlays, wildcards, type coercion, and empty-array pitfalls. Use when params are ignored, wrong type, YAML does not load, or the user mentions declare_parameter, allow_undeclared, or empty arrays.
# ROS 2 Parameters ## Declare first Undeclared params are **ignored** (or rejected) unless `allow_undeclared_parameters`. Always `declare_parameter` (with type/default) before `get`. Overrides win in this order (typical): 1. Node default in code 2. YAML from launch 3. Launch `parameters=[{...}]` dict 4. CLI `--ros-args -p foo:=bar` / `--params-file` ## YAML shape ```yaml /ns/node_name: ros__parameters: rate_hz: 30.0 frame_id: base_link nested: enabled: true ``` - Key must match **fully qualified node name** (namespace + name). Mismatch = silent unused file. - `/**:` wildcards apply broadly — easy to stomp unrelated nodes. - Lists: `[]` is untyped. rclpy/rclcpp may infer `byte[]` vs `string[]` vs `double[]` **wrong**. Empty arrays have bitten SIRB (`fix/empty-parameter-arrays`): prefer a non-empty typed default in `declare_parameter`, or pass typed CLI, or avoid empty as the declared default. ## Types - YAML `1` is int, `1.0` is double. `declare_parameter("x", 1.0)` then YAML `x: 1` can **fail** type check. - Bool: `true`/`false`, not `True`/`yes`. - Nested dicts → nested params (`nested.enabled`), not a single dict object in C++. ## Runtime `ros2 param set` only works if declared (and dynamic callback allows it). Use `add_on_set_parameters_callback` and reject invalid ranges. `ros2 param dump /node` to see what the node actually has — not what you think the YAML said. ## Launch Multiple YAML files + dicts: **last wins per key**. `use_sim_time` forgotten on one node → TF/clock bugs (`ros2-tf-clock`).
GitHubで見る