feat(nebula_sample): add sample sensor package as template#382
feat(nebula_sample): add sample sensor package as template#382mojomex merged 73 commits intotier4:mainfrom
Conversation
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
There was a problem hiding this comment.
Pull request overview
This PR adds a vendor-agnostic nebula_sample package template to accelerate integration of new sensors into the Nebula LiDAR driver framework. It provides a complete working example with stub implementations that compile successfully and can serve as a copy-and-modify starting point for developers.
- Implements four-package modular structure (common, decoders, hw_interfaces, ROS wrapper)
- Includes comprehensive integration guide with step-by-step instructions
- Provides stub implementations that demonstrate the required architecture
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/nebula_sample/nebula_sample_common/* | Common configuration structures and dependencies |
| src/nebula_sample/nebula_sample_decoders/* | Decoder interface and driver with stub packet parsing |
| src/nebula_sample/nebula_sample_hw_interfaces/* | Hardware interface for sensor communication setup |
| src/nebula_sample/nebula_sample/* | ROS 2 wrapper node with point cloud publisher and launch file |
| src/nebula_sample/README.md | Package overview and quick-start documentation |
| src/nebula_sample/INTEGRATION_GUIDE.md | Detailed step-by-step integration instructions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
mojomex
left a comment
There was a problem hiding this comment.
Thanks! I think it's already close to what we want!
I left some smaller feedback about overly Hesai-specific examples and style.
Maybe comments in the code to make the role of each of the function stubs more understandable would be nice.
As for the integration guide, I think it would need to contain sections about what building blocks Nebula provides (UDP socket handling, diagnostic helpers, etc.), and also about the required behavior on startup, reconfiguration, connection loss, etc.
I alos think that the guide shall be moved to the docs and rendered with Mkdocs to have everything in one place.
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
2144e77 to
d61f787
Compare
…dor-neutral guidance Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Codecov Report❌ Patch coverage is ❌ Your patch status has failed because the patch coverage (0.00%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #382 +/- ##
==========================================
- Coverage 48.34% 48.31% -0.03%
==========================================
Files 156 157 +1
Lines 12996 13003 +7
Branches 6901 6901
==========================================
Hits 6283 6283
- Misses 5326 5333 +7
Partials 1387 1387
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Signed-off-by: David Wong <david.wong@tier4.jp>
… and titles Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Thanks for the review! I moved the integration guide to https://github.com/tier4/nebula/blob/3f235db56c121c587c7dec41f272ae7001fbdc05/docs/integration_guide.md and added a lot more information to it. |
cde75c4 to
3f235db
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 25 out of 25 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…mode Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
Signed-off-by: David Wong <david@lifecyclist.co.nz>
|
@codex Please review.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e2c3c95d92
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
…nd decoder interfaces Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
…nd order of operations Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b08432e38d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
…leHwInterface Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
…pleRosWrapper Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Signed-off-by: David Wong <david.wong@tier4.jp>
# Conflicts: # src/nebula_continental/nebula_continental_hw_interfaces/include/nebula_continental_hw_interfaces/continental_srr520_hw_interface.hpp # src/nebula_core/nebula_core_hw_interfaces/include/nebula_core_hw_interfaces/connections/can.hpp # src/nebula_core/nebula_core_hw_interfaces/include/nebula_core_hw_interfaces/connections/http_client.hpp # src/nebula_core/nebula_core_hw_interfaces/include/nebula_core_hw_interfaces/connections/socket_utils.hpp # src/nebula_core/nebula_core_hw_interfaces/include/nebula_core_hw_interfaces/connections/tcp.hpp # src/nebula_hesai/nebula_hesai/tests/hesai_ros_scan_cutting_test_main.cpp # src/nebula_velodyne/nebula_velodyne_hw_interfaces/include/nebula_velodyne_hw_interfaces/velodyne_hw_interface.hpp
…es for closeness to main branch Signed-off-by: David Wong <david.wong@tier4.jp>
…ced in integration guide Signed-off-by: David Wong <david.wong@tier4.jp>
badai-nguyen
left a comment
There was a problem hiding this comment.
@drwnz
From a Nebula newcomer’s point of view, this PR is LGTM. The integration_guide is easy to understand and follow.
Signed-off-by: David Wong <david.wong@tier4.jp>
|
@mojomex I think this is ready for merge now. Looks like you have more lines in this PR than I do now, but can you please give it a once-over and approve if all is well? Thanks! |
mojomex
left a comment
There was a problem hiding this comment.
Looking good! Thanks for the perseverance!!
PR Type
Related Links
Description
Add a new
nebula_samplepackage that serves as a vendor-agnostic template for integrating new sensors into Nebula.Goals
This package achieves three main objectives:
Package Structure
The sample sensor consists of four packages:
nebula_sample_common- Common definitions and configuration structuresnebula_sample_decoders- Packet decoder and driver implementationnebula_sample_hw_interfaces- Hardware interface for sensor communicationnebula_sample- ROS 2 wrapper and launch filesKey Features
Documentation
Pre-Review Checklist for the PR Author
Checklist for the PR Reviewer
Post-Review Checklist for the PR Author