Closed xmfcx closed 1 year ago
:warning: The sha of the head commit of this PR conflicts with #56. Mergify cannot evaluate rules on this PR. :warning:
This pull request has been automatically marked as stale because it has not had recent activity.
:exclamation: No coverage uploaded for pull request base (
main@6bafedf
). Click here to learn what that means. Patch has no changes to coverable lines.
:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
Because of the https://github.com/autowarefoundation/autoware.core/pull/57#issuecomment-1256176040 mergify error, moved to https://github.com/autowarefoundation/autoware.core/pull/73
Signed-off-by: M. Fatih Cırıt mfc@leodrive.ai
Description
Related Discussion: https://github.com/orgs/autowarefoundation/discussions/3194
This PR is for creating the base class for all the future Autoware Core nodes to inherit from.
This node will be inheriting from the rclcpp_lifecycle::LifecycleNode with (LifeCycle Readme).
I'll be taking ros2 nav2 stack as reference too while combining Lifecycle and Composable node concepts.
While developing this PR, I am going to explore ideas mentioned in previous conversations in the Autoware community.
Related links
Related links
- Autoware.Auto discussions: https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto/-/issues/821 - Discuss Implementing LifeCycleNode Support on Autoware.Auto Nodes - https://gitlab.com/autowarefoundation/autoware.auto/AutowareAuto/-/issues/282 - Autoware Diagnostics and Monitoring - https://gist.github.com/xmfcx/7eaae9750d6317a3a2aa23745ac99444Communication architecture
Communication architecture
### Registration Service **Service server:** `ACC` **Service client:** `AutowareNode` **Roles:** - Register the `AutowareNode` in `ACC` - Receive the UUID for the `AutowareNode` - If already registered, return error ```mermaid sequenceDiagram participant acc as Autoware Control Center participant node as node_a Note right of node: cli_reg node ->>+ acc: name: node_a Note left of acc: srv_reg acc ->> acc: generate a UUID for the node_a acc ->> acc: create a bond between acc and node_a Note left of acc: srv_reg acc -->>- node: UUID and registration success bool Note right of node: cli_reg ``` ### Heart beat bond ~~https://github.com/ros/bond_core/blob/ros2/ros2_migration_readme.md~~ Slow https://github.com/ros-safety/software_watchdogs https://design.ros2.org/articles/qos_deadline_liveliness_lifespan.html https://docs.ros.org/en/rolling/Concepts/About-Quality-of-Service-Settings.html#qos-events **Roles:** - As long as the `AutowareNode` is alive, it reports with this bond - If the `AutowareNode` dies, it triggers the `on_broken` callback ### Reporting service **Service server:** `ACC` **Service client:** `AutowareNode` **Roles:** - Reporting state of the `AutowareNode` to the `ACC` - Warning - Error ### Control service **Service server:** `AutowareNode` **Service client:** `ACC` Roles: - Shutting down the `AutowareNode` - Toggle `AutowareNode` between active-inactive?Tasks
Tests performed
PR Review Items
## Notes for reviewers ## Pre-review checklist for the PR author The PR author **must** check the checkboxes below when creating the PR. - [x] I've confirmed the [contribution guidelines]. - [x] The PR follows the [pull request guidelines]. ## In-review checklist for the PR reviewers The PR reviewers **must** check the checkboxes below before approval. - [ ] The PR follows the [pull request guidelines]. - [ ] The PR has been properly tested. - [ ] The PR has been reviewed by the code owners. ## Post-review checklist for the PR author The PR author **must** check the checkboxes below before merging. - [ ] There are no open discussions or they are tracked via tickets. - [ ] The PR is ready for merge. After all checkboxes are checked, anyone who has write access can merge the PR. [contribution guidelines]: https://autowarefoundation.github.io/autoware-documentation/main/contributing/ [pull request guidelines]: https://autowarefoundation.github.io/autoware-documentation/main/contributing/pull-request-guidelines/