-
Notifications
You must be signed in to change notification settings - Fork 124
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
Add external object list to detection list conversion node #2141
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
The carma_cooperative_perception package now lints the code when testing is enabled. This commit changes a lot of the existing code to satisfy the linting requirements. Most of the changes include license header relocation to the very top of the file, include guard name changes according to the ROS style guide, and removing namespace using-declarations.
This commit adds a message conversion node that takes in external object lists from CARMA's local perception stack and converts the data into a format compatible with the multiple object tracking pipeline.
The previous name had `node` appended to it, which conflicts with the naming convention of having node executables append `node` to their filename. I recommend we use the naming convention `_component` for nodes that are going to be implemented as ROS components. The proper node executable source file can then have a `_node` suffix.
Update the name for the sdsm_to_detection_list_component source file.
This package now lints with clang-format for style guide conformity. The clang-tidy package is also added, but it is currently disabled because there are some issues with carma_ros2_utils.
Add a link to the external object list to detection list conversion node documentation page
The external object list to detection list component/node has been updated to use the new ROS lifecycle node classes.
The code has been updated to address clang-tidy errors
The PROJ conversions will throw errors if there are any problems, so we should catch them and log the issue. The Node may receive an external object list message without having a known geoid reference.
The motion model mapping between external object and detection can be specified as a parameter in the conversion Node, which allows users to change mappings to their liking.
Update the parameter description table to match the implementation
JonSmet
requested changes
Sep 8, 2023
carma_cooperative_perception/include/carma_cooperative_perception/month.hpp
Outdated
Show resolved
Hide resolved
carma_cooperative_perception/docs/external_object_list_to_detection_list_node.md
Outdated
Show resolved
Hide resolved
carma_cooperative_perception/docs/external_object_list_to_detection_list_node.md
Outdated
Show resolved
Hide resolved
...on/include/carma_cooperative_perception/external_object_list_to_detection_list_component.hpp
Outdated
Show resolved
Hide resolved
carma_cooperative_perception/src/external_object_list_to_detection_list_component.cpp
Outdated
Show resolved
Hide resolved
carma_cooperative_perception/src/external_object_list_to_detection_list_component.cpp
Show resolved
Hide resolved
Fix some typos, remove unused code/configs, and move implementations from header files to cpp source files.
The on_configure and related functions were being overridden from the CarmaLifecycleNode class, but the handle_on_configure and related functions should have been overridden instead. This commit also add lifecycle state change logging and removes clang-tidy references since we are currently not using it.
The ExternalObjectListToDetectionList node's constructor no longer creates the subscriptions. From the ROS lifecycle documentation, there should be no publishers or subscriptions until the Node is in the inactive state. The Node also uses in-class initializers to provide defaults for the member variables.
JonSmet
requested changes
Sep 11, 2023
carma_cooperative_perception/src/external_object_list_to_detection_list_component.cpp
Outdated
Show resolved
Hide resolved
The handle_on_activate and handle_on_deactivate functions have been removed from ExternalObjectListToDetectionListNode because the CarmaLifecycleNode class already covers the necessary functionality. The lifecycle publishers and param setting callback have been added to CarmaLifecycleNode's management lists.
JonSmet
approved these changes
Sep 11, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Details
Description
This PR adds support for ingesting locally-perceived objects from CARMA's perception stack into the cooperative perception pipeline. The changes include a new ROS 2 Node that converts
ExternalObjectList.msg
messages intoDetectionList.msg
ones. This PR also adds code linting, and the existing code has been updated to pass those checks.Related GitHub Issue
Closes #2140
Related Jira Key
CDAR-289
Motivation and Context
One of the goals for the cooperative perception pipeline is for CARMA to fuse its locally-perceived detected objects with information it receives from other actors. To do that, we first need to convert the data into a format compatible with the cooperative perception pipeline.
How Has This Been Tested?
Unit tests
Types of changes
Checklist: