system_modes icon indicating copy to clipboard operation
system_modes copied to clipboard

[FEA] Allow configuring a subset of nodes in a certain mode.

Open ZhenshengLee opened this issue 2 years ago • 2 comments

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

# 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

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

image

ZhenshengLee avatar Oct 26 '22 09:10 ZhenshengLee

I assume this issue is superseded by https://github.com/micro-ROS/system_modes/issues/96, or?

ralph-lange avatar Nov 03 '22 14:11 ralph-lange

@ralph-lange thank you again!

I assume this issue is superseded by https://github.com/micro-ROS/system_modes/issues/96, or?

No, this case is different with #96

In #96 , the bug/fea is about changing mode state to set one of nodes to inactive.

In this issue, the bug/fea is about changing mode state to set only one node to other state, and leave other nodes not changing their state(remain the same)

ZhenshengLee avatar Nov 04 '22 03:11 ZhenshengLee