micro-ROS / micro-ROS/system_modes
Working with non-lifecycle nodes
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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