micro-ROS / micro-ROS/system_modes
Working with non-lifecycle nodes
- 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
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