見出し画像

Isaac ROS CLI を試す

「Isaac ROS CLI」を試したのでまとめました。

・Isaac ROS 4.3


前回

1. Isaac ROS CLI

Isaac ROS CLI は、NVIDIA が提供する Isaac ROS 向けの公式コマンドラインツールです。開発環境の初期化や設定管理、チュートリアルで利用する実行環境の整備を効率化できるのが特徴で、公式の Getting Started でも導入が案内されています。

つまり Isaac ROS CLI は、

・Isaac ROS の環境構築を標準化しやすい
・依存関係のズレを減らしやすい
・公式ドキュメントに沿って進めやすい

といった点で、これから Isaac ROS を触る人にとって重要なツールになります。

2. システム要件

Isaac ROSは、ROS 2 Jazzyとの互換性を考慮して設計およびテストされています。

3. セットアップ

Ubuntu 24.04 でのセットアップ手順は、次のとおりです。

3-1. Isaac ROS APT リポジトリの取得

(1) 最新のNVIDIA GPUドライバーをインストール。

(2) NVIDIA GPUドライバーが正しくインストールされていることを確認。

nvidia-smi

(3) ワークスペースの作成。

mkdir -p  ~/workspaces/isaac_ros-dev/src
echo 'export ISAAC_ROS_WS="${ISAAC_ROS_WS:-${HOME}/workspaces/isaac_ros-dev/}"' >> ~/.bashrc
source ~/.bashrc

(4) Isaac ROS Aptリポジトリの設定。

locale  # check for UTF-8

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

locale  # verify settings

(5) 依存関係のインストール。

sudo apt update && sudo apt install curl gnupg
sudo apt install software-properties-common
sudo add-apt-repository universe

(6) Isaac ROS APT リポジトリの取得。

k="/usr/share/keyrings/nvidia-isaac-ros.gpg"
curl -fsSL https://isaac.download.nvidia.com/isaac-ros/repos.key | sudo gpg --dearmor \
    | sudo tee -a $k > /dev/null
f="/etc/apt/sources.list.d/nvidia-isaac-ros.list"
sudo touch $f
s="deb [signed-by=$k] https://isaac.download.nvidia.com/isaac-ros/release-4.3 noble main"
grep -qxF "$s" $f || echo "$s" | sudo tee -a $f

sudo apt-get update

3-2. Isaac ROS CLI の初期化

(1) Isaac ROS CLI のインストール。

sudo apt-get install isaac-ros-cli

(2) Docker Engineのセットアップ。

official Ubuntu instructions

(3) Docker用のnvidia-container-toolkit のインストール。

Install NVIDIA Container Toolkit
Configure Docker runtime

(4) ユーザーをdockerグループに追加。

sudo usermod -aG docker $USER
newgrp docker

(5) Dockerのリスタート。

sudo systemctl daemon-reload && sudo systemctl restart docker

(6) Dockerの事前チェックの実行。
「NVIDIA runtime OK」と表示されることを確認してください。

docker info | grep -E "Runtimes|Default Runtime"
docker run --rm hello-world
docker run --rm --gpus all ubuntu:24.04 bash -lc 'echo "NVIDIA runtime OK"'

(7) Isaac Sim CLI の初期化。

sudo isaac-ros init docker

4. クイックスタート

Ubuntu 24.04 でのクイックスタート手順は、次のとおりです。

4-1. ターミナル1

(1) Isaac ROS 用の作業環境に入る。

isaac-ros activate

(2) クイックスタートデータをダウンロード。
AprilTag Quickstart デモを動かすためのサンプル入力データ一式を落とします。

・quickstart.tar.gz

sudo apt-get install -y curl jq tar
NGC_ORG="nvidia"
NGC_TEAM="isaac"
PACKAGE_NAME="isaac_ros_apriltag"
NGC_RESOURCE="isaac_ros_apriltag_assets"
NGC_FILENAME="quickstart.tar.gz"
MAJOR_VERSION=4
MINOR_VERSION=3
VERSION_REQ_URL="https://catalog.ngc.nvidia.com/api/resources/versions?orgName=$NGC_ORG&teamName=$NGC_TEAM&name=$NGC_RESOURCE&isPublic=true&pageNumber=0&pageSize=100&sortOrder=CREATED_DATE_DESC"
AVAILABLE_VERSIONS=$(curl -s \
    -H "Accept: application/json" "$VERSION_REQ_URL")
LATEST_VERSION_ID=$(echo $AVAILABLE_VERSIONS | jq -r "
    .recipeVersions[]
    | .versionId as \$v
    | \$v | select(test(\"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+$\"))
    | split(\".\") | {major: .[0]|tonumber, minor: .[1]|tonumber, patch: .[2]|tonumber}
    | select(.major == $MAJOR_VERSION and .minor <= $MINOR_VERSION)
    | \$v
    " | sort -V | tail -n 1
)
if [ -z "$LATEST_VERSION_ID" ]; then
    echo "No corresponding version found for Isaac ROS $MAJOR_VERSION.$MINOR_VERSION"
    echo "Found versions:"
    echo $AVAILABLE_VERSIONS | jq -r '.recipeVersions[].versionId'
else
    mkdir -p ${ISAAC_ROS_WS}/isaac_ros_assets && \
    FILE_REQ_URL="https://api.ngc.nvidia.com/v2/resources/$NGC_ORG/$NGC_TEAM/$NGC_RESOURCE/\
versions/$LATEST_VERSION_ID/files/$NGC_FILENAME" && \
    curl -LO --request GET "${FILE_REQ_URL}" && \
    tar -xf ${NGC_FILENAME} -C ${ISAAC_ROS_WS}/isaac_ros_assets && \
    rm ${NGC_FILENAME}
fi

(3) AprilTag 検出パッケージ本体とQuickstart を起動するための examples パッケージのインストール。

・ros-jazzy-isaac-ros-apriltag : 処理本体を入れる
・ros-jazzy-isaac-ros-examples : デモ起動用の launch を入れる

sudo apt-get update
sudo apt-get install -y ros-jazzy-isaac-ros-apriltag
sudo apt-get install -y ros-jazzy-isaac-ros-examples

(4) AprilTag のデモ構成の起動。

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=apriltag interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_apriltag/quickstart_interface_specs.json

4-2. ターミナル2

(1) 別のターミナルでIsaac ROS 用の作業環境に入る。

isaac-ros activate

(2) rosbagを実行して画像ストリームをシミュレート。

ros2 bag play -l ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_apriltag/quickstart.bag --remap image:=image_rect camera_info:=camera_info_rect

4-3. ターミナル3

(1) 別のターミナルでIsaac ROS 用の作業環境に入る。

isaac-ros activate

(2) AprilTag検出の出力を確認。

ros2 topic echo /tag_detections

ログが出力されます。



いいなと思ったら応援しよう!