-
Notifications
You must be signed in to change notification settings - Fork 0
feat: add bell detection interfaces for yamnet_ros #12
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
base: jazzy-devel
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,14 @@ | ||||||
| # Goal — start listening for a bell/doorbell sound | ||||||
| float64 timeout_sec # max seconds to listen; 0 = no timeout | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe Using a duration type makes it clear that this value represents time, and it avoids relying on the
Suggested change
|
||||||
| float32 threshold 0.15 # YAMNet score threshold to trigger; 0 = use node default | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I’m wondering if If the threshold is a runtime/configuration detail of Could we remove this:
Suggested change
|
||||||
| --- | ||||||
| # Result | ||||||
| bool detected # true if sound was detected before timeout | ||||||
| string label # class name that triggered (e.g. "Doorbell") | ||||||
| float32 score # score of the detected class | ||||||
| float32 elapsed_time # seconds from goal start to result | ||||||
| --- | ||||||
| # Feedback — sent every hop (~0.5 s) while listening | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| string current_top_label # overall top class right now | ||||||
| float32 current_top_score # its score | ||||||
| bool candidate_detected # any doorbell-like class above threshold this frame | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| std_msgs/Header header | ||
| string label # best doorbell-like class detected (e.g. "Doorbell", "Bell") | ||
| float32 score # YAMNet score for that class [0-1] | ||
| string top_label # overall top class regardless of category (for diagnostics) | ||
| float32 top_score # overall top score (for diagnostics) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR description says the interface is reusable for YAMNet sounds beyond doorbells, but the action goal only has timeout_sec and threshold. That means a behavior client cannot request "Doorbell", "Bell", or any other target through the action contract; it must rely on server-side configuration.
I’d recommend adding something like string[] target_labels or string target_label to the goal if multi-sound reuse is intended.