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

Update DSRC driver to support C1T V2X use on ARM #117

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

Conversation

willjohnsonk
Copy link

PR Details

Description

Updated files relating to building the Docker image of carma-cohda-dsrc-driver for ARM since a new carma-base image is being used. A new launch file is also needed to correctly configure and active the node. Otherwise, these changes mirror the original functionality.

Related GitHub Issue

Related Jira Key

CF-789

Motivation and Context

Added support for new ARM Docker images.

How Has This Been Tested?

Successfully builds on ARM device and can forward messages to a connected Raspberry Pi

Types of changes

  • Defect fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that cause existing functionality to change)

Checklist:

  • I have added any new packages to the sonar-scanner.properties file
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@willjohnsonk
Copy link
Author

Likely not refactoring all Docker code since it is out of the scope of this story but significant portions, such as all code related to ROS1, can be removed.

@willjohnsonk
Copy link
Author

Docker image names are liable to change and are not currently represented in Docker Hub

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

FROM usdotfhwastoldev/carma-base:develop as setup
FROM usdotfhwastoldev/carma-base:develop-arm as setup
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unrelated to this PR, but we should look at multi-platform images to avoid having this *-arm designators.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agreed, blame @JonSmet on this namespace
this can just be a stand-in name while we work something better out. Our Docker image tags in general should be reviewed and C1T may be another decent place to trial options

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed as well, I didn't realize docker images supported this but it looks like a good approach to consider.

docker/install.sh Outdated Show resolved Hide resolved
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this intended to replace the existing dsrc_driver.py?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it should probably be compiled into a single launch file. Right now the new drivers.launch.py is just used to configure and activate the dsrc node with a group action that targets dsrc_driver.launch.py. This is more of a proof of concept so something existing was used. I expect this driver will go through a major refactor as we move forward with the new CDA implementation anyways

Copy link
Contributor

@JonSmet JonSmet Mar 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[UPDATE - I missed that drivers.launch.py calls dsrc_driver.py. The below comment can be disregarded]
I'm leaning towards the following. Thoughts on this?

  • Remove dsrc_driver.py from this directory
  • Rename this drivers.launch.py to dsrc_driver.launch.py
  • Add a TODO comment (maybe above process_configure_dsrc_driver_node) stating that we may want to consider standalone node(s) to manage the lifecycle of nodes in the C1T system, rather than configuring and activating directly from the launch file? Probably best to create a basic Jira story (we can add detail later) to mention in the comment if we do this

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JonSmet I assume you switched the names here but with that assumption it seems like this PR is mostly unnecessary. The only real addition here besides cleaning up some unused Docker code was to target the carma-base arm image in that case, and that name update still is in the air. I figured we won't be merging this anyways since the changed image names will break develop. All the actual code changes were in the msgs/utils dependencies that @adamlm worked on. DSRC probably would have worked out of the box if it wasn't for the ROS issues the Orin was having (which Anish and I think was caused by ROS2 DDS collisions on saxtonlab)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, I had an incorrect assumption and my previous comment can be disregarded (added a note at the beginning stating this as well).

@@ -1,21 +1,19 @@
# Copyright (C) 2018-2021 LEIDOS.
#
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Note: This if for Line 1 of the file) Let's update the copyright here (i.e. Copyright (C) 2018-2024 LEIDOS.) and in other updated files.

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

if [[ ! -z "$ROS2_PACKAGES" ]]; then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Were these code blocks (original lines 17-23 and 26-30) removed because issues were found with the incremental build process, or if it was to simplify install.sh? I could still see a use for supporting the incremental build approach if we'd like to test a small update to the dsrc_driver package without needing to rebuild the packages in carma-utils.

Copy link
Contributor

@JonSmet JonSmet Mar 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[UPDATE - I missed that drivers.launch.py calls dsrc_driver.py. The below comment can be disregarded]
I'm leaning towards the following. Thoughts on this?

  • Remove dsrc_driver.py from this directory
  • Rename this drivers.launch.py to dsrc_driver.launch.py
  • Add a TODO comment (maybe above process_configure_dsrc_driver_node) stating that we may want to consider standalone node(s) to manage the lifecycle of nodes in the C1T system, rather than configuring and activating directly from the launch file? Probably best to create a basic Jira story (we can add detail later) to mention in the comment if we do this

Copy link

sonarcloud bot commented Mar 29, 2024

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarCloud

@willjohnsonk
Copy link
Author

Currently inactive; originally developed as part of the CARMA Platform approach on the scale C1T vehicles. Branch needed for future dockerization efforts of the system. Not included in C1T releases.

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.

3 participants