Skip to content

Commit d1e5562

Browse files
committed
Isaac ROS v0.9.0 (EA1)
0 parents  commit d1e5562

31 files changed

+1888
-0
lines changed

.gitattributes

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Images
2+
*.gif filter=lfs diff=lfs merge=lfs -text
3+
*.jpg filter=lfs diff=lfs merge=lfs -text
4+
*.png filter=lfs diff=lfs merge=lfs -text
5+
*.psd filter=lfs diff=lfs merge=lfs -text
6+
7+
# Archives
8+
*.gz filter=lfs diff=lfs merge=lfs -text
9+
*.tar filter=lfs diff=lfs merge=lfs -text
10+
*.zip filter=lfs diff=lfs merge=lfs -text
11+
# Documents
12+
*.pdf filter=lfs diff=lfs merge=lfs -text
13+
# Numpy data
14+
*.npy filter=lfs diff=lfs merge=lfs -text
15+
# Debian package
16+
*.deb filter=lfs diff=lfs merge=lfs -text

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Ignore all pycache files
2+
**/__pycache__/**

LICENSE

+130
Large diffs are not rendered by default.

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Isaac ROS Common
2+
3+
Isaac ROS common utilities for use in conjunction with the Isaac ROS suite of packages.
4+
Note: Please refer to `scripts/README.md` for script used to setup dev environment

docker/Dockerfile.aarch64.base

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
2+
#
3+
# NVIDIA CORPORATION and its licensors retain all intellectual property
4+
# and proprietary rights in and to this software, related documentation
5+
# and any modifications thereto. Any use, reproduction, disclosure or
6+
# distribution of this software and related documentation without an express
7+
# license agreement from NVIDIA CORPORATION is strictly prohibited.
8+
9+
# Dockder file to aarch64 based Jetson device
10+
ARG BASE_IMAGE=dustynv/ros:foxy-ros-base-l4t-r32.6.1
11+
FROM ${BASE_IMAGE}
12+
13+
# Disable terminal interaction for apt
14+
ENV DEBIAN_FRONTEND=noninteractive
15+
16+
# Fundamentals
17+
RUN apt-get update && apt-get install -y \
18+
build-essential \
19+
cmake \
20+
curl \
21+
git \
22+
sudo \
23+
unzip \
24+
vim \
25+
wget \
26+
software-properties-common \
27+
&& rm -rf /var/lib/apt/lists/*
28+
29+
# Install OpenCV dependencies
30+
RUN apt-get update && apt-get install -y \
31+
libavformat-dev \
32+
libjpeg-dev \
33+
libopenjp2-7-dev \
34+
libpng-dev \
35+
libpq-dev \
36+
libswscale-dev \
37+
libtbb2 \
38+
libtbb-dev \
39+
libtiff-dev \
40+
pkg-config \
41+
yasm \
42+
&& rm -rf /var/lib/apt/lists/*
43+
44+
# Install additional packages needed for ROS2 dependencies
45+
RUN apt-get update && apt-get install -y \
46+
python3-distutils \
47+
libboost-all-dev \
48+
libboost-dev \
49+
&& rm -rf /var/lib/apt/lists/*
50+
51+
# sklearn dependencies
52+
RUN apt-get update && apt-get install -y \
53+
gfortran \
54+
libatlas-base-dev \
55+
python3-scipy \
56+
&& rm -rf /var/lib/apt/lists/*
57+
58+
# sklearn Python dependencies
59+
RUN python3 -m pip install -U \
60+
Cython \
61+
wheel
62+
63+
# Install sklearn
64+
RUN python3 -m pip install -U \
65+
scikit-learn
66+
67+
# Install Git-LFS
68+
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash && \
69+
apt-get update && apt-get install -y \
70+
git-lfs \
71+
&& rm -rf /var/lib/apt/lists/*
72+
73+
# Install Realsense
74+
RUN apt update \
75+
&& apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE \
76+
&& add-apt-repository -y "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u \
77+
&& apt-get install -y librealsense2-utils librealsense2-dev
78+
79+
80+
# Update environment
81+
ENV LD_LIBRARY_PATH="/opt/nvidia/vpi1/lib64:${LD_LIBRARY_PATH}"
82+
ENV LD_LIBRARY_PATH="/usr/lib/aarch64-linux-gnu/tegra:${LD_LIBRARY_PATH}"
83+
ENV LD_LIBRARY_PATH="/usr/local/cuda-10.2/targets/aarch64-linux/lib:${LD_LIBRARY_PATH}"
84+
ENV LD_LIBRARY_PATH="/usr/lib/aarch64-linux-gnu/tegra-egl:${LD_LIBRARY_PATH}"
85+
86+
RUN echo "source /opt/ros/foxy/install/setup.bash" > /opt/ros/foxy/setup.bash
87+
88+
# Restore using the default Foxy DDS middleware: FastRTPS
89+
ENV RMW_IMPLEMENTATION=rmw_fastrtps_cpp
90+
91+
### -----------------------------
92+
93+
# Setup non-root admin user
94+
ARG USERNAME=admin
95+
ARG USER_UID=1000
96+
ARG USER_GID=1001
97+
98+
# Create the 'admin' user
99+
RUN groupadd --gid $USER_GID $USERNAME \
100+
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
101+
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
102+
&& chmod 0440 /etc/sudoers.d/$USERNAME \
103+
&& adduser admin video && adduser admin sudo
104+
105+
COPY scripts/workspace-entrypoint.sh /home/$USERNAME/workspace-entrypoint.sh
106+
RUN chmod +x /home/$USERNAME/workspace-entrypoint.sh
107+

docker/Dockerfile.x86_64.base

+141
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
2+
#
3+
# NVIDIA CORPORATION and its licensors retain all intellectual property
4+
# and proprietary rights in and to this software, related documentation
5+
# and any modifications thereto. Any use, reproduction, disclosure or
6+
# distribution of this software and related documentation without an express
7+
# license agreement from NVIDIA CORPORATION is strictly prohibited.
8+
#
9+
# Docker file to build on x86_64
10+
ARG BASE_IMAGE=nvidia/cuda:11.2.0-devel-ubuntu20.04
11+
FROM ${BASE_IMAGE}
12+
13+
# disable terminal interaction for apt
14+
ENV DEBIAN_FRONTEND=noninteractive
15+
16+
# Fundamentals
17+
RUN apt-get update && apt-get install -y \
18+
bash-completion \
19+
build-essential \
20+
clang-format \
21+
cmake \
22+
curl \
23+
git \
24+
gnupg2 \
25+
locales \
26+
lsb-release \
27+
rsync \
28+
software-properties-common \
29+
wget \
30+
vim \
31+
mlocate \
32+
&& rm -rf /var/lib/apt/lists/*
33+
34+
# Python basics
35+
RUN apt-get update && apt-get install -y \
36+
python3-flake8 \
37+
python3-opencv \
38+
python3-pip \
39+
python3-pytest-cov \
40+
python3-setuptools \
41+
&& rm -rf /var/lib/apt/lists/*
42+
43+
# Video utilities
44+
RUN apt-get update && apt-get install -y \
45+
v4l-utils \
46+
mesa-utils \
47+
libcanberra-gtk-module \
48+
libcanberra-gtk3-module \
49+
&& rm -rf /var/lib/apt/lists/*
50+
51+
# Core dev libraries
52+
RUN apt-get update && apt-get install -y \
53+
libasio-dev \
54+
libbullet-dev \
55+
libtinyxml2-dev \
56+
libcunit1-dev \
57+
&& rm -rf /var/lib/apt/lists/*
58+
59+
# Python3 (PIP)
60+
RUN python3 -m pip install -U \
61+
argcomplete \
62+
autopep8 \
63+
flake8 \
64+
flake8-blind-except \
65+
flake8-builtins \
66+
flake8-class-newline \
67+
flake8-comprehensions \
68+
flake8-deprecated \
69+
flake8-docstrings \
70+
flake8-import-order \
71+
flake8-quotes \
72+
pytest-repeat \
73+
pytest-rerunfailures \
74+
pytest \
75+
pydocstyle \
76+
scikit-learn
77+
78+
# Install Git-LFS
79+
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash && \
80+
apt-get update && apt-get install -y \
81+
git-lfs \
82+
&& rm -rf /var/lib/apt/lists/*
83+
84+
# Install VPI packages
85+
ARG HAS_GPU
86+
COPY vpi/*.deb /opt/install/
87+
RUN if [ "$HAS_GPU" = "true" ]; then \
88+
dpkg -i /opt/install/vpi-lib-1.1.11-cuda11-x86_64-linux.deb; \
89+
dpkg -i /opt/install/vpi-dev-1.1.11-cuda11-x86_64-linux.deb; \
90+
updatedb; \
91+
fi
92+
93+
# Setup ROS2 Foxy
94+
RUN locale-gen en_US en_US.UTF-8
95+
RUN update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
96+
ENV LANG=en_US.UTF-8
97+
98+
RUN curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -
99+
RUN sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
100+
101+
RUN apt-get update && apt-get install -y \
102+
python3-colcon-common-extensions \
103+
python3-rosdep \
104+
python3-vcstool \
105+
ros-foxy-camera-calibration-parsers \
106+
ros-foxy-camera-info-manager \
107+
ros-foxy-desktop \
108+
ros-foxy-launch-testing-ament-cmake \
109+
ros-foxy-rqt* \
110+
ros-foxy-turtlesim \
111+
ros-foxy-v4l2-camera \
112+
ros-foxy-realsense2-camera \
113+
&& rm -rf /var/lib/apt/lists/*
114+
115+
RUN rosdep init
116+
117+
# Install Realsense
118+
RUN apt update \
119+
&& apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE \
120+
|| apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE \
121+
&& add-apt-repository -y "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u \
122+
&& apt-get install -y librealsense2-utils librealsense2-dev
123+
124+
# Restore using the default Foxy DDS middleware: FastRTPS
125+
ENV RMW_IMPLEMENTATION=rmw_fastrtps_cpp
126+
127+
# Setup non-root admin user
128+
ARG USERNAME=admin
129+
ARG USER_UID=1000
130+
ARG USER_GID=1001
131+
132+
# Create the 'admin' user
133+
RUN groupadd --gid $USER_GID $USERNAME \
134+
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
135+
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
136+
&& chmod 0440 /etc/sudoers.d/$USERNAME \
137+
&& adduser admin video && adduser admin sudo
138+
139+
COPY scripts/workspace-entrypoint.sh /home/$USERNAME/workspace-entrypoint.sh
140+
RUN chmod +x /home/$USERNAME/workspace-entrypoint.sh
141+
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
#
3+
# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
4+
#
5+
# NVIDIA CORPORATION and its licensors retain all intellectual property
6+
# and proprietary rights in and to this software, related documentation
7+
# and any modifications thereto. Any use, reproduction, disclosure or
8+
# distribution of this software and related documentation without an express
9+
# license agreement from NVIDIA CORPORATION is strictly prohibited.
10+
11+
# Build ROS dependency
12+
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
13+
source /opt/ros/foxy/setup.bash
14+
15+
sudo apt-get update
16+
rosdep update
17+
18+
$@
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:cc330dc311803789b573283beb212fe44b307d57ff63565bc570ffbf75a48a0d
3+
size 55790
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:a2ff7114caa50d4a2fd31fb675f1d1c23e1e06d2dda4e1fd9921d126d5a89f66
3+
size 16271658

giistr-cla.md

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
## Individual Contributor License Agreement (CLA)
2+
3+
**Thank you for submitting your contributions to this project.**
4+
5+
By signing this CLA, you agree that the following terms apply to all of your past, present and future contributions
6+
to the project.
7+
8+
### License.
9+
10+
You hereby represent that all present, past and future contributions are governed by the
11+
[MIT License](https://opensource.org/licenses/MIT)
12+
copyright statement.
13+
14+
This entails that to the extent possible under law, you transfer all copyright and related or neighboring rights
15+
of the code or documents you contribute to the project itself or its maintainers.
16+
Furthermore you also represent that you have the authority to perform the above waiver
17+
with respect to the entirety of you contributions.
18+
19+
### Moral Rights.
20+
21+
To the fullest extent permitted under applicable law, you hereby waive, and agree not to
22+
assert, all of your “moral rights” in or relating to your contributions for the benefit of the project.
23+
24+
### Third Party Content.
25+
26+
If your Contribution includes or is based on any source code, object code, bug fixes, configuration changes, tools,
27+
specifications, documentation, data, materials, feedback, information or other works of authorship that were not
28+
authored by you (“Third Party Content”) or if you are aware of any third party intellectual property or proprietary
29+
rights associated with your Contribution (“Third Party Rights”),
30+
then you agree to include with the submission of your Contribution full details respecting such Third Party
31+
Content and Third Party Rights, including, without limitation, identification of which aspects of your
32+
Contribution contain Third Party Content or are associated with Third Party Rights, the owner/author of the
33+
Third Party Content and Third Party Rights, where you obtained the Third Party Content, and any applicable
34+
third party license terms or restrictions respecting the Third Party Content and Third Party Rights. For greater
35+
certainty, the foregoing obligations respecting the identification of Third Party Content and Third Party Rights
36+
do not apply to any portion of a Project that is incorporated into your Contribution to that same Project.
37+
38+
### Representations.
39+
40+
You represent that, other than the Third Party Content and Third Party Rights identified by
41+
you in accordance with this Agreement, you are the sole author of your Contributions and are legally entitled
42+
to grant the foregoing licenses and waivers in respect of your Contributions. If your Contributions were
43+
created in the course of your employment with your past or present employer(s), you represent that such
44+
employer(s) has authorized you to make your Contributions on behalf of such employer(s) or such employer
45+
(s) has waived all of their right, title or interest in or to your Contributions.
46+
47+
### Disclaimer.
48+
49+
To the fullest extent permitted under applicable law, your Contributions are provided on an "as is"
50+
basis, without any warranties or conditions, express or implied, including, without limitation, any implied
51+
warranties or conditions of non-infringement, merchantability or fitness for a particular purpose. You are not
52+
required to provide support for your Contributions, except to the extent you desire to provide support.
53+
54+
### No Obligation.
55+
56+
You acknowledge that the maintainers of this project are under no obligation to use or incorporate your contributions
57+
into the project. The decision to use or incorporate your contributions into the project will be made at the
58+
sole discretion of the maintainers or their authorized delegates.

0 commit comments

Comments
 (0)