micro-ROS / micro-ROS/system_modes
[FEA] Allow configuring a subset of nodes in a certain mode.
- 主要語言
- C++
- 星號
- 45
- 分支
- 13
- PR 合併指標
- 30 天內沒有已合併 PR
描述
Hi, first of all I want to say this is a great project to manage lifecycle nodes!
There'a a need to config the lifecycle state of only a subset of nodes in one mode, but config another subset of nodes in other modes.
Let's say, can the following config work? (Currently I don't need the extra parameter-based modes either)
#### SHM file
```yaml
# system modes example
---
actuation:
ros__parameters:
type: system
parts:
drive_base
left/manipulator
right/manipulator
modes:
__DEFAULT__:
drive_base: active.__DEFAULT__
left/manipulator: inactive.__DEFAULT__
right/manipulator: inactive.__DEFAULT__
LEFT:
# drive_base: active.__DEFAULT__
left/manipulator: active.__DEFAULT__
# right/manipulsator: inactive.__DEFAULT__
RIGHT:
# drive_base: active.__DEFAULT__
# left/manipulator: inactive.__DEFAULT__
right/manipulator: active.__DEFAULT__
left/manipulator:
ros__parameters:
type: node
modes:
__DEFAULT__:
ros__parameters:
max_torque: 0.1
drive_base:
ros__parameters:
type: node
modes:
__DEFAULT__:
ros__parameters:
max_speed: 0.1
controller: PID
right/manipulator:
ros__parameters:
type: node
modes:
__DEFAULT__:
ros__parameters:
max_torque: 0.11
```
EDIT, the step of reproduce has been updated @ralph-lange
#### step to reproduce
```sh
time ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 1, label: configure}}"
time ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 3, label: activate}}"
```
#### expected
the lefe manipulator should be in active
#### actual

貢獻指南
研究方向
從 issue 中的 system-modes YAML 設定開始,並使用針對 /actuation/change_state 的兩個 ros2 service 呼叫重現該行為。追蹤部分模式對映如何套用至 lifecycle nodes。當某個模式只能設定其列出的節點子集,同時保留其他節點的適當狀態,且左側 manipulator 在所提供的範例中達到 active 狀態時,即可視為完成。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- cpp
- 領域
- robotics
- Issue 類型
- 功能
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100