-
Notifications
You must be signed in to change notification settings - Fork 131
Feature/dds 7.5.0 #1122
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
base: main
Are you sure you want to change the base?
Feature/dds 7.5.0 #1122
Changes from 4 commits
3ed56c6
6339915
0533424
5b576a8
6784371
eadd797
4b3c670
86a050b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -55,6 +55,9 @@ tmp/ | |
| .viminfo | ||
| .lesshst | ||
|
|
||
| # RTI Workspace | ||
| rti_workspace/ | ||
|
|
||
| # Licenses | ||
| rti_license.dat | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -76,6 +76,24 @@ RUN if ! grep -q "VERSION_ID=\"22.04\"" /etc/os-release; then \ | |
| COPY benchmarks/holoscan_flow_benchmarking/requirements.txt /tmp/benchmarking_requirements.txt | ||
| RUN pip install -r /tmp/benchmarking_requirements.txt | ||
|
|
||
|
|
||
| # Install connext 7.5.0 from .deb package | ||
| # Download the public key for the RTI APT repository | ||
| RUN curl -sSL -o /usr/share/keyrings/rti-official-archive.gpg \ | ||
| https://packages.rti.com/deb/official/repo.key | ||
|
Comment on lines
+82
to
+83
|
||
|
|
||
| # Add the RTI APT repository to the sources list | ||
| RUN printf -- "deb [arch=%s signed-by=%s] %s %s main\n" \ | ||
| $(dpkg --print-architecture) \ | ||
| /usr/share/keyrings/rti-official-archive.gpg \ | ||
| https://packages.rti.com/deb/official \ | ||
| $(. /etc/os-release && echo ${VERSION_CODENAME}) \ | ||
| | tee /etc/apt/sources.list.d/rti.list >/dev/null | ||
|
|
||
| # Set environment variable to accept the RTI License Agreement | ||
| RUN export RTI_LICENSE_AGREEMENT_ACCEPTED=accepted && apt update \ | ||
| && apt install -y rti-connext-dds-7.5.0 | ||
|
|
||
| # For RTI Connext DDS | ||
| RUN apt update \ | ||
| && apt install --no-install-recommends -y \ | ||
|
|
@@ -85,7 +103,10 @@ RUN echo 'export JREHOME=$(readlink /etc/alternatives/java | sed -e "s/\/bin\/ja | |
| # Set default Holohub data directory | ||
| ENV HOLOSCAN_INPUT_PATH=/workspace/holohub/data | ||
|
|
||
| ENV NDDSHOME=/opt/rti.com/rti_connext_dds-7.3.0 | ||
| ENV NDDSHOME=/opt/rti.com/rti_connext_dds-7.5.0 | ||
| ENV RTI_CONNEXT_DDS_DIR=$NDDSHOME | ||
|
|
||
| CMD ["/bin/bash", "-c", "source $NDDSHOME/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.bash && exec /bin/bash"] | ||
| COPY ./applications/dds/dds_video/bootstrap.sh /bootstrap.sh | ||
| RUN chmod +x /bootstrap.sh | ||
|
|
||
| CMD ["/bootstrap.sh"] | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -23,28 +23,37 @@ Holoviz output. | |||||
|
|
||||||
| ## Prerequisites | ||||||
|
|
||||||
| - This application requires an installation of [RTI Connext Express](https://content.rti.com/l/983311/2025-07-08/q5x1n8) to provide access to the DDS domain. | ||||||
| To obtain a license/activation key, please [click here](https://content.rti.com/l/983311/2025-07-25/q6729c). Please see the [usage rules](https://www.rti.com/products/connext-express) for Connext Express. | ||||||
| - V4L2 capable device | ||||||
| - **RTI Connext 7.5.0 Express** | ||||||
| - Provides access to the DDS domain. | ||||||
| - Already included if using the container build. | ||||||
| - Otherwise, install via [RTI APT instructions](https://content.rti.com/l/983311/2025-07-08/q5x1n8). | ||||||
|
|
||||||
| > [!NOTE] | ||||||
| > Instructions below are based on the `.run' installer from RTI Connext. Refer to the | ||||||
| > [Linux installation](https://community.rti.com/static/documentation/developers/get-started/full-install.html) | ||||||
| > for details. | ||||||
| - **RTI Activation Key** | ||||||
| - [Request a license/activation key](https://content.rti.com/l/983311/2025-07-25/q6729c). | ||||||
| - See the [usage rules](https://www.rti.com/products/connext-express). | ||||||
| - For Holoscan usage, download the key, copy it into the `holohub` repository, and rename it to `rti_license.dat`. | ||||||
|
|
||||||
| - **V4L2-capable video device** | ||||||
| - Required for video capture when running as a publisher. | ||||||
|
|
||||||
| ## Quick Start (Docker) | ||||||
|
|
||||||
| ## Quick Start | ||||||
| This guide shows how to run the DDS Video application using the Docker build environment. | ||||||
|
|
||||||
| 1. Obtain an **RTI Activation Key** (see [Prerequisites](#prerequisites)). | ||||||
| 2. Place the license in the `holohub` directory as `rti_license.dat`. | ||||||
| 3. Open **two terminal windows** and run: | ||||||
|
|
||||||
| ```bash | ||||||
| # Start the publisher | ||||||
| ./holohub run dds_video --docker-opts="-v $HOME/rti_connext_dds-7.3.0:/opt/rti.com/rti_connext_dds-7.3.0/" --run-args="-p" | ||||||
| ./holohub run dds_video --docker-opts="-v ./rti_license.dat:/opt/rti.com/rti_connext_dds-7.5.0/rti_license.dat" --run-args="-p" | ||||||
|
|
||||||
| # Start the subscriber | ||||||
| ./holohub run dds_video --docker-opts="-v $HOME/rti_connext_dds-7.3.0:/opt/rti.com/rti_connext_dds-7.3.0/" --run-args="-s" | ||||||
| ./holohub run dds_video --docker-opts="-v ./rti_license.dat:/opt/rti.com/rti_connext_dds-7.5.0/rti_license.dat" --run-args="-s" | ||||||
| ``` | ||||||
|
|
||||||
|
|
||||||
| ## Building the Application | ||||||
| ## Building locally the Application | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should be
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Adjust section title wording. "Building locally the Application" is awkward. Prefer "Building the Application Locally." 🤖 Prompt for AI Agents |
||||||
|
|
||||||
| To build on an IGX devkit (using the `armv8` architecture), follow the | ||||||
| [instructions to build Connext DDS applications for embedded Arm targets](https://community.rti.com/kb/how-do-i-create-connext-dds-application-rti-code-generator-and-build-it-my-embedded-target-arm) | ||||||
|
|
@@ -56,29 +65,22 @@ the `NDDSHOME` environment variable to the RTI Connext installation directory | |||||
| (such as when using the RTI `setenv` scripts), or manually at build time, e.g.: | ||||||
|
|
||||||
| ```sh | ||||||
| ./holohub build --local dds_video --configure-args="-DRTI_CONNEXT_DDS_DIR=~/rti/rti_connext_dds-7.3.0" | ||||||
| ./holohub build --local dds_video --configure-args="-DRTI_CONNEXT_DDS_DIR=~/opt/rti.com/rti_connext_dds-7.5.0" | ||||||
| ``` | ||||||
|
|
||||||
| ### Building with a Container | ||||||
| ### Building with the Container | ||||||
|
|
||||||
| Due to the license requirements of RTI Connext it is not currently supported to | ||||||
| install RTI Connext into a development container. Instead, Connext should be | ||||||
| installed onto the host as above and then the development container can be | ||||||
| launched with the RTI Connext folder mounted at runtime. To do so, ensure that | ||||||
| the `NDDSHOME` and `CONNEXTDDS_ARCH` environment variables are set (which can be | ||||||
| done using the RTI `setenv` script) and use the following: | ||||||
|
|
||||||
| ```sh | ||||||
| # 1. Build and launch the container | ||||||
| ./holohub run-container dds_video --docker-opts="-v $HOME/rti_connext_dds-7.3.0:/opt/rti.com/rti_connext_dds-7.3.0/" | ||||||
| ./holohub run-container dds_video --docker-opts="-v ./rti_license.dat:/opt/rti.com/rti_connext_dds-7.5.0/rti_license.dat" | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: Trailing whitespace on this line
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove trailing whitespace. Trailing whitespace at the end of the docker-opts line. 🤖 Prompt for AI Agents
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: trailing whitespace at end of line
|
||||||
| ./holohub run-container dds_video --docker-opts="-v ./rti_license.dat:/opt/rti.com/rti_connext_dds-7.5.0/rti_license.dat" | |
| ./holohub run-container dds_video --docker-opts="-v ./rti_license.dat:/opt/rti.com/rti_connext_dds-7.5.0/rti_license.dat" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
syntax: Step numbering is incorrect - this says # 3. but should be # 2. since there's no step 2 listed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
syntax: step says # 3. but should be # 2. (no step 2 exists)
| # 3. Build the application | |
| # 2. Build the application |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -14,5 +14,5 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # See the License for the specific language governing permissions and | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # limitations under the License. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| source /opt/rti.com/rti_connext_dds-7.3.0/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| source /opt/rti.com/rti_connext_dds-7.5.0/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hardcoded x64 architecture will fail on ARM platforms. The path uses a hardcoded Apply this diff to detect architecture at runtime: -source /opt/rti.com/rti_connext_dds-7.5.0/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.bash
+arch="x64"
+if [ "$(uname -m)" = "aarch64" ]; then
+ arch="armv8"
+fi
+source /opt/rti.com/rti_connext_dds-7.5.0/resource/scripts/rtisetenv_${arch}Linux4gcc7.3.0.bash📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. logic: hardcodes
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| source /opt/rti.com/rti_connext_dds-7.5.0/resource/scripts/rtisetenv_x64Linux4gcc7.3.0.bash | |
| arch="$(uname -m)" | |
| case "${arch}" in | |
| x86_64) | |
| rti_arch="x64Linux4gcc7.3.0" | |
| ;; | |
| aarch64|arm64) | |
| rti_arch="armv8Linux4gcc7.3.0" | |
| ;; | |
| *) | |
| echo "Unsupported architecture: ${arch}" >&2 | |
| exit 1 | |
| ;; | |
| esac | |
| source "/opt/rti.com/rti_connext_dds-7.5.0/resource/scripts/rtisetenv_${rti_arch}.bash" |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -9,32 +9,30 @@ a wide array of external applications and platforms. | |||||||||
|
|
||||||||||
| ## Requirements | ||||||||||
|
|
||||||||||
| [RTI Connext](https://content.rti.com/l/983311/2024-04-30/pz1wms) must be | ||||||||||
| installed on the system and a valid RTI Connext license must be installed to run | ||||||||||
| any application using one of these operators. To build on an IGX devkit (using | ||||||||||
| - **RTI Connext 7.5.0 Express** | ||||||||||
| - Provides access to the DDS domain. | ||||||||||
| - Already included if using the [container build](../../applications/dds/dds_video/Dockerfile) you can find in the dds_video application directory | ||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: line exceeds 100 characters (109 chars), consider wrapping to next line |
||||||||||
| - Otherwise, install via [RTI APT instructions](https://content.rti.com/l/983311/2025-07-08/q5x1n8). | ||||||||||
|
|
||||||||||
| - **RTI Activation Key** | ||||||||||
| - [Download the RTI license/activation key](https://content.rti.com/l/983311/2025-07-25/q6729c). | ||||||||||
| - See the [usage rules](https://www.rti.com/products/connext-express). | ||||||||||
| - For Holoscan usage, download the key, copy it into the `holohub` root directory, and rename it to `rti_license.dat`. | ||||||||||
|
|
||||||||||
| To build on an IGX devkit (using | ||||||||||
| the `armv8` architecture), follow the | ||||||||||
| [instructions to build Connext DDS applications for embedded Arm targets](https://community.rti.com/kb/how-do-i-create-connext-dds-application-rti-code-generator-and-build-it-my-embedded-target-arm) | ||||||||||
| up to step 5 (Installing Java and setting JREHOME). | ||||||||||
|
|
||||||||||
| To build the operators, the `RTI_CONNEXT_DDS_DIR` CMake variable must point to | ||||||||||
| To build the operators out of the dockerfile, the `RTI_CONNEXT_DDS_DIR` CMake variable must point to | ||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. style: "out of the dockerfile" is unclear - should this be "outside of the Docker container" or "when building natively"? What specific build scenario is this referring to? |
||||||||||
| the installation path for RTI Connext. This can be done automatically by setting | ||||||||||
| the `NDDSHOME` environment variable to the RTI Connext installation directory | ||||||||||
| (such as when using the RTI `setenv` scripts), or manually at build time, e.g.: | ||||||||||
|
|
||||||||||
| ```sh | ||||||||||
| $ ./holohub build dds_video --configure-args="-DRTI_CONNEXT_DDS_DIR=~/rti/rti_connext_dds-7.3.0" | ||||||||||
| $ ./holohub build dds_video" | ||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove the trailing
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: missing closing double-quote - should be
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. syntax: missing closing double-quote
Suggested change
|
||||||||||
| $ ./holohub build dds_video" | |
| $ ./holohub build dds_video |
Copilot
AI
Jan 2, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The build command example is incomplete and lacks context. The sentence "To build the operators out of the dockerfile, the RTI_CONNEXT_DDS_DIR CMake variable must point to..." followed by this command is confusing because the command shown doesn't include the configure-args mentioned in the preceding text. Either complete the example to show how to set RTI_CONNEXT_DDS_DIR, or clarify that when using the Dockerfile, these variables are already set and the simple command is sufficient.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This second line should be indented