Skip to content

refactor: make vendors independently buildable #297

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

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

mojomex
Copy link
Collaborator

@mojomex mojomex commented Mar 25, 2025

PR Type

  • Improvement

Related Links

Description

This PR aims to separate out vendor-specific code such that it is independently buildable (e.g. only Hesai support) and independently maintainable.

All vendor-specific code is divided into separate packages: for each <vendor>, a colcon package nebula_<vendor> is created.
Each vendor package follows the same structure, akin to what we have had until now:

nebula_<vendor>           
  ├ src                   \    
  │ ├ common              │    
  │ ├ decoder             │    
  │ ├ hw_interface        │    
  │ └ ros                 │    
  ├ include               │    
  │ └ nebula_<vendor>     |    
  │   ├ common             \   `src`, `include/nebula_<vendor>` and `test`
  │   ├ decoder              > have the same directory structure.
  │   ├ hw_interface       /   Empty directories can be omitted.
  │   └ ros               │    
  ├ test                  │    
  │ ├ common              │    
  │ ├ decoder             │    
  │ ├ hw_interface        │    
  │ └ ros                 /    
  ├ schema                
  │ ├ common.json         
  │ ├ sensor_model_1.json 
  │ ├ sensor_model_2.json 
  │ └ ...                 
  ├ config                
  │ ├ sensor_model_1.yaml 
  │ ├ sensor_model_2.yaml 
  │ └ ...                 
  ├ launch                
  │ └ launch_<vendor>.xml <--- There is still a universal `nebula_launch.py` in `nebula_ros`.
  ├ CMakeLists.txt        <--- Helper CMake files are provided in `nebula_common` etc.
  └ package.xml           

Review Procedure

Remarks

Pre-Review Checklist for the PR Author

PR Author should check the checkboxes below when creating the PR.

  • Assign PR to reviewer

Checklist for the PR Reviewer

Reviewers should check the checkboxes below before approval.

  • Commits are properly organized and messages are according to the guideline
  • (Optional) Unit tests have been written for new behavior
  • PR title describes the changes

Post-Review Checklist for the PR Author

PR Author should check the checkboxes below before merging.

  • All open points are addressed and tracked via issues or tickets

CI Checks

  • Build and test for PR: Required to pass before the merge.

Sorry, something went wrong.

@mojomex mojomex self-assigned this Mar 25, 2025
@mojomex mojomex requested review from drwnz and knzo25 March 25, 2025 05:13
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
@mojomex mojomex force-pushed the refactor/single-out-vendors branch from 899ba32 to 4c29bf2 Compare March 25, 2025 05:16
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
@mojomex mojomex force-pushed the refactor/single-out-vendors branch from 4c29bf2 to a4c93d6 Compare March 25, 2025 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant