Skip to content

Commit

Permalink
Merge pull request #129 from NVIDIA-ISAAC-ROS/release-3.0
Browse files Browse the repository at this point in the history
Isaac ROS 3.0.1
  • Loading branch information
jaiveersinghNV authored Jun 14, 2024
2 parents d679b2a + 0caf698 commit 855d408
Show file tree
Hide file tree
Showing 12 changed files with 37 additions and 41 deletions.
29 changes: 3 additions & 26 deletions docker/Dockerfile.realsense
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,13 @@ ARG BASE_IMAGE
FROM ${BASE_IMAGE}

ARG LIBREALSENSE_SOURCE_VERSION=v2.55.1
ARG LIBREALSENSE_DEB_VERSION=2.55.1-0~realsense.12474
ARG LIBREALSENSE_DKMS_DEB_VERSION=1.3.26-0ubuntu1
ARG REALSENSE2_CAMERA_ROS_DEB_VERSION=4.54.1-1jammy.20240517.191635

# Install realsense2-camera ROS package and librealsense from binaries for x86_64 only
RUN --mount=type=cache,target=/var/cache/apt \
if [[ "$(uname -m)" == "x86_64" ]]; then \
mkdir -p /etc/apt/keyrings && \
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | \
tee /etc/apt/keyrings/librealsense.pgp > /dev/null && \
echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] \
https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
tee /etc/apt/sources.list.d/librealsense.list && apt-get update && \
apt-get install -y \
librealsense2-dkms=${LIBREALSENSE_DKMS_DEB_VERSION} \
librealsense2-utils=${LIBREALSENSE_DEB_VERSION} \
librealsense2-dev=${LIBREALSENSE_DEB_VERSION} \
ros-humble-realsense2-camera=${REALSENSE2_CAMERA_ROS_DEB_VERSION}; \
fi

COPY scripts/build-librealsense.sh /opt/realsense/build-librealsense.sh
COPY scripts/install-realsense-dependencies.sh /opt/realsense/install-realsense-dependencies.sh

# Build librealsense from source for aarch64 only
# The realsense2-camera ROS package will be built from source as part of the "RealSense Setup docs" for aarch64 only
RUN if [[ $(uname -m) == "aarch64" ]]; then \
chmod +x /opt/realsense/install-realsense-dependencies.sh && \
/opt/realsense/install-realsense-dependencies.sh; \
chmod +x /opt/realsense/build-librealsense.sh && /opt/realsense/build-librealsense.sh -v ${LIBREALSENSE_SOURCE_VERSION}; \
fi
RUN chmod +x /opt/realsense/install-realsense-dependencies.sh && \
/opt/realsense/install-realsense-dependencies.sh; \
chmod +x /opt/realsense/build-librealsense.sh && /opt/realsense/build-librealsense.sh -v ${LIBREALSENSE_SOURCE_VERSION};

# Copy hotplug script for udev rules/hotplug for RealSense
RUN mkdir -p /opt/realsense/
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_apriltag_interfaces/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_apriltag_interfaces</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Interfaces for performing Isaac ROS AprilTag detection</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_bi3d_interfaces/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_bi3d_interfaces</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Interfaces for Isaac ROS Bi3D</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_common/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_common</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Utilities for performing common functions in Isaac ROS packages</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_launch_utils/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_launch_utils</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Helper functions to simplify ROS2 launch files.</description>
<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
<license>Apache-2.0</license>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_nitros_bridge_interfaces/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_nitros_bridge_interfaces</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Interfaces for Isaac ROS NITROS Bridge Msgs</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_nova_interfaces/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_nova_interfaces</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Interfaces for Isaac ROS Nova</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_pointcloud_interfaces/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_pointcloud_interfaces</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Pointcloud interfaces for Isaac ROS NITROS</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_tensor_list_interfaces/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_tensor_list_interfaces</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Interfaces for Isaac ROS tensor list</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
2 changes: 1 addition & 1 deletion isaac_ros_test/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ license agreement from NVIDIA CORPORATION is strictly prohibited.
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>isaac_ros_test</name>
<version>3.0.0</version>
<version>3.0.1</version>
<description>Isaac ROS testing utilities</description>

<maintainer email="[email protected]">Isaac ROS Maintainers</maintainer>
Expand Down
12 changes: 11 additions & 1 deletion scripts/build_image_layers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ function usage() {
DOCKER_BUILDKIT=1
IGNORE_COMPOSITE_KEYS=0
ADDITIONAL_BUILD_ARGS=()
ADDITIONAL_DOCKER_ARGS=()
DOCKER_SEARCH_DIRS=(${DOCKER_DIR})
SKIP_REGISTRY_CHECK=0
BASE_DOCKER_REGISTRY_NAMES=("nvcr.io/isaac/ros")
Expand Down Expand Up @@ -54,7 +55,7 @@ if [ ${#CONFIG_DOCKER_SEARCH_DIRS[@]} -gt 0 ]; then
fi

# Parse command-line args
VALID_ARGS=$(getopt -o hra:b:c:ki:n:u --long help,skip_registry_check,build_arg:,base_image:,context_dir:,disable_buildkit,image_key:,image_name:,ignore_composite_keys -- "$@")
VALID_ARGS=$(getopt -o hra:b:c:ki:n:d: --long help,skip_registry_check,build_arg:,base_image:,context_dir:,disable_buildkit,image_key:,image_name:,ignore_composite_keys,docker_arg: -- "$@")
eval set -- "$VALID_ARGS"
while [ : ]; do
case "$1" in
Expand All @@ -70,6 +71,10 @@ while [ : ]; do
DOCKER_CONTEXT_DIR="$2"
shift 2
;;
-d | --docker_arg)
ADDITIONAL_DOCKER_ARGS+=("$2")
shift 2
;;
-k | --disable_buildkit)
DOCKER_BUILDKIT=0
shift
Expand Down Expand Up @@ -129,6 +134,10 @@ for BUILD_ARG in "${ADDITIONAL_BUILD_ARGS[@]}"
do
print_info "Additional build arg: ${BUILD_ARG}"
done
for DOCKER_ARG in "${ADDITIONAL_DOCKER_ARGS[@]}"
do
print_info "Additional docker arg: ${DOCKER_ARG}"
done
if [[ $DOCKER_BUILDKIT -eq 0 ]]; then
print_warning "WARNING: Explicitly disabling BuildKit"
fi
Expand Down Expand Up @@ -337,6 +346,7 @@ for (( i=${#DOCKERFILES[@]}-1 ; i>=0 ; i-- )); do
-t ${IMAGE_NAME} \
${BASE_IMAGE_ARG} \
"${BUILD_ARGS[@]}" \
"${ADDITIONAL_DOCKER_ARGS[@]}" \
$@ \
${DOCKER_CONTEXT_ARG}
done
19 changes: 14 additions & 5 deletions scripts/docker_deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ INCLUDE_DIRS=()
INCLUDE_TARBALLS=()
SET_LAUNCH_CMD=0
CUSTOM_APT_SOURCES=()
VALID_ARGS=$(getopt -o w:d:b:n:s:f:p:i:t:a: --long ros_ws:include_dir:base_image_key:name:suffix_image_key:launch_file:launch_package:install_debians:include_tarball:custom_apt_source -- "$@")
ADDITIONAL_DOCKER_ARGS=()
VALID_ARGS=$(getopt -o w:d:b:n:s:f:p:i:t:a:c: --long ros_ws:,include_dir:,base_image_key:,name:,suffix_image_key:,launch_file:,launch_package:,install_debians:,include_tarball:,custom_apt_source:,docker_arg: -- "$@")
eval set -- "$VALID_ARGS"
while [ : ]; do
case "$1" in
Expand All @@ -47,6 +48,10 @@ while [ : ]; do
BASE_IMAGE_KEY="$2"
shift 2
;;
-c | --docker_arg)
ADDITIONAL_DOCKER_ARGS+=("--docker_arg $2")
shift 2
;;
-d | --include_dir)
INCLUDE_DIRS+=("$2")
shift 2
Expand Down Expand Up @@ -164,6 +169,10 @@ for CUSTOM_APT_SOURCE in "${CUSTOM_APT_SOURCES[@]}"
do
print_info "Adding custom apt source: ${CUSTOM_APT_SOURCE}"
done
for DOCKER_ARG in "${ADDITIONAL_DOCKER_ARGS[@]}"
do
print_info "Additional docker arg: ${DOCKER_ARG}"
done
print_info "Begin building deployable image"

# Setup on-exit cleanup tasks
Expand Down Expand Up @@ -233,27 +242,27 @@ done

# Build base image
print_info "Building deploy base image: ${BASE_DEPLOY_IMAGE_NAME} with key ${BASE_IMAGE_KEY}"
$ROOT/build_image_layers.sh --image_key "${BASE_IMAGE_KEY}" --image_name "${BASE_DEPLOY_IMAGE_NAME}" --build_arg "MODE=deploy"
$ROOT/build_image_layers.sh --image_key "${BASE_IMAGE_KEY}" --image_name "${BASE_DEPLOY_IMAGE_NAME}" --build_arg "MODE=deploy" ${ADDITIONAL_DOCKER_ARGS[@]}

# Install staged files and setup launch command
print_info "Building install image with launch file ${LAUNCH_FILE} in package ${LAUNCH_PACKAGE}"
$ROOT/build_image_layers.sh --image_key "deploy" --image_name "${INSTALLED_DEPLOY_IMAGE_NAME}" --base_image "${BASE_DEPLOY_IMAGE_NAME}" --context_dir "${TEMP_DIR}" \
--build_arg "MODE=deploy" --build_arg "SET_LAUNCH_CMD=${SET_LAUNCH_CMD}" --build_arg "LAUNCH_FILE=${LAUNCH_FILE}" --build_arg "LAUNCH_PACKAGE=${LAUNCH_PACKAGE}" --build_arg "INSTALL_DEBIANS_CSV=${INSTALL_DEBIANS_CSV}"
--build_arg "MODE=deploy" --build_arg "SET_LAUNCH_CMD=${SET_LAUNCH_CMD}" --build_arg "LAUNCH_FILE=${LAUNCH_FILE}" --build_arg "LAUNCH_PACKAGE=${LAUNCH_PACKAGE}" --build_arg "INSTALL_DEBIANS_CSV=${INSTALL_DEBIANS_CSV}" ${ADDITIONAL_DOCKER_ARGS[@]}

# Optional, if ROS_WS, install rosdeps
if [[ ! -z "${ROS_WS}" ]]; then
print_info "Building ROS workspace image for path ${ROS_WS}"
PREVIOUS_STAGE="${INSTALLED_DEPLOY_IMAGE_NAME}"
INSTALLED_DEPLOY_IMAGE_NAME="${DEPLOY_IMAGE_NAME}-rosws"
$ROOT/build_image_layers.sh --image_key "deploy_ws" --image_name "${INSTALLED_DEPLOY_IMAGE_NAME}" --base_image "${PREVIOUS_STAGE}" --context_dir "${TEMP_DIR}" --build_arg "MODE=deploy ROS_WS=${ROS_WS_DEST}"
$ROOT/build_image_layers.sh --image_key "deploy_ws" --image_name "${INSTALLED_DEPLOY_IMAGE_NAME}" --base_image "${PREVIOUS_STAGE}" --context_dir "${TEMP_DIR}" --build_arg "MODE=deploy ROS_WS=${ROS_WS_DEST}" ${ADDITIONAL_DOCKER_ARGS[@]}
fi

# Optional, build suffix image if specified
if [[ ! -z "${SUFFIX_IMAGE_KEY}" ]]; then
print_info "Building suffix deploy image for key ${SUFFIX_IMAGE_KEY}"
PREVIOUS_STAGE="${INSTALLED_DEPLOY_IMAGE_NAME}"
INSTALLED_DEPLOY_IMAGE_NAME="${DEPLOY_IMAGE_NAME}-suffix"
$ROOT/build_image_layers.sh --image_key "SUFFIX_IMAGE_KEY" --image_name "${INSTALLED_DEPLOY_IMAGE_NAME}" --base_image "${PREVIOUS_STAGE}" --build_arg "MODE=deploy"
$ROOT/build_image_layers.sh --image_key "SUFFIX_IMAGE_KEY" --image_name "${INSTALLED_DEPLOY_IMAGE_NAME}" --base_image "${PREVIOUS_STAGE}" --build_arg "MODE=deploy" ${ADDITIONAL_DOCKER_ARGS[@]}
fi

# Retag last image
Expand Down

0 comments on commit 855d408

Please sign in to comment.