micro-ROS / micro-ROS/system_modes

Working with non-lifecycle nodes

Open
#90 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
45
Forks
13
PR merge metrics
No merged PRs in 30d

Description

When the system definition (SMH) contains non-lifecycle nodes, inference will most probably fail, because nodes woll not report any (of the specified) states / transitions used by the inference.

Two options are:

1. Introduce DONT-CARE in the SMH specification for states or
2. (more convenient and flexible), let the mode manager / inference check for all nodes whether they are lifecycle nodes or states/transitions need to be ignored. Check can be done with the [get_service_names_and_types_by_node()](https://docs.ros2.org/foxy/api/rclcpp/classrclcpp_1_1Node.html#aa3df8a7d8b174f8049dfd2766f4b2eb9) method.

When working, a launch test with a system consisting of i) rclcpp nodes, ii) rclcpp lifecycle nodes, rcl nodes, and iv) rclpy nodes would be great.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by examining the mode manager and inference paths that handle lifecycle-node states and transitions, then review the referenced get_service_names_and_types_by_node() API. The issue proposes either DONT-CARE states or ignoring non-lifecycle nodes; done should include support for mixed rclcpp, lifecycle, rcl, and rclpy nodes in a launch test.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
robotics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.