Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Autoware Node & Control Center #210

Closed
3 tasks done
xmfcx opened this issue Feb 21, 2025 · 4 comments
Closed
3 tasks done

Implement Autoware Node & Control Center #210

xmfcx opened this issue Feb 21, 2025 · 4 comments
Assignees
Labels
type:improvement Proposed enhancement

Comments

@xmfcx
Copy link
Contributor

xmfcx commented Feb 21, 2025

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

Description & Purpose

In order to be able to track the statuses of Autoware nodes, we introduce the following packages:

  • autoware_node (AN)
    • This is package includes a base class for the other autoware nodes to use.
    • It will have the capability to register to the ACC.
    • It will send heartbeats to the ACC upon registration.
    • The heartbeat contains a very light status/error state information.
    • It will also contain a monitored subscription implementation
      • We may add this to somewhere else too, to be discussed later.
      • First let's implement it as part of the base node.
  • autoware_control_center (ACC)
    • AN's register here and report their states with heartbeats at rates they define.
    • If it fails to receive the heartbeat (HB) after a deadline, it will mark the node as dead.
    • It will publish the NodeReports message to be used by future GUI tools to track the node states.
  • autoware_control_center_msgs
    • Messages and services that will be used for communication between ANs and ACC.
  • autoware_test_node
    • Contains the reference implementation and a launch file to run both ANs and an ACC. And some tests.

Steps

  1. feat: add autoware_node and autoware_test node #113
    • Only the autoware_node was merged with LifeCycle functionality.
  2. feat(autoware_node): remove the lifecycle dependency #187
    • LifeCycle functionality was removed to simplify
  3. feat: add autoware_control_center #191
    • Adds the implementation of ACC and registering/deregistering functionality for AN.
    • Also introduces the messages/services for communication.
  4. Add the heart beat (HB) functionality
  5. Make a package use this base class
  6. Create a launch file that includes ACC
  7. Test & refine the implementation
  8. Once we are satisfied with the implementation, move autoware_control_center_msgs to autoware_internal_msgs repository.

cc. @mitsudome-r @youtalk

Related links

🖱️Click to expand

Continuation from:

Nav2 references

Autoware.Auto discussions

@xmfcx
Copy link
Contributor Author

xmfcx commented Feb 25, 2025

We had a short meeting with @youtalk -san and @mitsudome-r -san.

They've suggested to keep using the https://github.com/ros/diagnostics/tree/ros2 framework.

If we use this, the following list will be obsolete:

For these reasons, I'll suggest closing the PRs related to this task. @mitsudome-r @youtalk what do you think?

@mitsudome-r
Copy link
Member

mitsudome-r commented Feb 25, 2025

Here's my proposal:

  • I think we could still have Autoware Node base class to publish logging info (including register/deregister, heartbeat, state, etc)
  • As a first step, we can have a small modification to Autoware Node class to publish heartbeat
    • We can try with diagnostic_msgs, but we can also do evaluation with traffics in communication and check if it is feasible first. (I might have to look into the existing diagnostic aggregator in Autoware Universe to check the usage as well)
    • At this stage, there would be no node listening to this message, but that's okay.
  • Add register/deregister feature to Autoware Node class
  • Create ACC that subscribes above information and reports any failure to the user

@xmfcx
Copy link
Contributor Author

xmfcx commented Feb 25, 2025

Add register/deregister feature to Autoware Node class

Can you please review and merge my PR then?

Since it is already implemented, I don't see a reason why it shouldn't be the first step.

@youtalk
Copy link
Member

youtalk commented Feb 25, 2025

First, we should implement the heartbeat, which is your main objective, at the lowest possible cost. If you want to continue with #191, there aren’t enough tests to see if the lock works properly.

@xmfcx xmfcx closed this as not planned Won't fix, can't repro, duplicate, stale Feb 26, 2025
@github-project-automation github-project-automation bot moved this from In Progress to Done in Software Working Group Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:improvement Proposed enhancement
Projects
Archived in project
Development

No branches or pull requests

3 participants