Robotic-Decision-Making-Lab / blue

ROS 2 platform for underwater robotics research and development.
https://robotic-decision-making-lab.github.io/blue/
MIT License
44 stars 10 forks source link

[FEATURE]: Integrate NVIDIA Docker support #56

Closed evan-palmer closed 1 year ago

evan-palmer commented 1 year ago

Feature Type

Adding new functionality to the BlueROV2 driver

Problem Description

The current Docker image and devcontainer configuration are defined specifically for folks using the default Ubuntu graphics driver. This decision was made to first provide support for the general population. However, this driver does have it's drawbacks and it can be useful to take advantage of the NVIDIA drivers if those are an option to users (and they work way better).

Feature Description

Integrate the requirements necessary for using the NVIDIA drivers with the Docker image. It will be necessary to determine how to best integrate this in such a way that it can be used when the source implementation is released as an image (re-released). Furthermore, it will be necessary to implement an additional devcontainer.json configuration file to support the NVIDIA driver development environment.

Alternative Solutions

Another idea that I've had is to template the Dockerfiles and to generate these as part of the CI/CD pipeline. This could be templated to integrate the NVIDIA driver packages when a particular flag is set. My last idea would be to create a new Dockerfile altogether and keep them separate; however, I like the stages that already exist and want to continue to take advantage of those.

Additional Context

No response

evan-palmer commented 1 year ago

I've integrated this over in my other (unpublished) project and it works really well. Just need to port it over here