Closed wzli closed 2 years ago
The current design aims for a setup where the mode management runs on a PC and manages lifecycle nodes on a micro controller. This setup should work as long as i) lifecycle nodes, ii) parameters, and iii) (optionally) diagnostics is available on the micro controller (see micro-ROS doagnostics) in a ROS 2 compatible way.
In order to allow self orchestration of system modes without a PC involved, the mode inference and mode management would have to be ported to the micro controller as well. This is currently not available, since the system modes package is a vanilla ROS 2 package (rclcpp). Our assumption is/was that micro controllers are usually too resource-constrained for this job.
However, it might still make sense to port it for scenarios where, e.g., power consumption is not an issue (power supply not via battery).
Given this is under the umbrella of micro-ros, does the current implementation actually run on embedded? Self orchestration without a tethered PC is a common requirement.
From reading the concepts doc I am open to the idea that complex applications warrant something more sophisticated than a finite state machine. Though in an embedded application, robust and deterministic management of state transitions is required for the same reason you want real time execution management with sequential callback sequencing.
What I had in mind for embedded as first class: