技術解説
【前編】フィジカルAIを支えるOmniverse/Isaac Simによる仮想ロボット自律走行シミュレーション環境の構築
2026.03.02

サービスクリエーション本部
GPUエンジニア
岡本 朋之

【目次】
1. はじめに
近年、生成AIの進展とともに注目されている概念の一つが「フィジカルAI(Physical AI)」です。
フィジカルAIとは、単にデータや文章を扱うソフトウェア上のAIではなく、ロボットや機械といった物理的な存在が、環境を認識し、判断し、行動する知能を指します。自動走行ロボットや自律移動ロボットは、その代表的な応用例と言えるでしょう。
フィジカルAIの開発において大きな課題となるのが、現実世界での試行錯誤コストです。実機を用いた検証は、時間・コスト・安全性の面で制約が大きく、十分な試行回数を確保することが難しいケースも少なくありません。そこで重要な役割を果たすのが、現実に近い物理挙動を再現できるシミュレーション環境です。

図1-1.NVIDIA Omniverse(Isaac Sim)による仮想シミュレーション環境
本記事で扱う NVIDIA Omniverse™(Isaac Sim) / ROS™ 2 / Nav2 の組み合わせは、まさにこの課題に対する一つの現実的な解決策です。
仮想空間上にロボットと環境を構築し、実機と同じソフトウェア構成で自律走行を検証することで、フィジカルAI開発の初期フェーズを効率化し、実機検証につなげるための土台を作ることができます。
フィジカルAIの本質は、AIとロボティクスが“物理世界”上に現実のものとして実装できることにあります。
Isaac Sim・ROS 2・Nav2 を組み合わせることで、フィジカルAIの入口となる仮想環境を構築することができます。
● Isaac Simとは
Isaac Sim は、3D・物理・デジタルツイン基盤であるNVIDIA Omniverseツール群の1つで、ロボティクス向けシミュレーションに特化したツールです。
仮想ロボットモデル、LiDAR やカメラといったセンサー、衝突判定や重力などの物理挙動を高精度に再現できます。
特に重要なのが、ROS 2 と直接連携できる点です。これにより、仮想環境であっても、実機ロボットとほぼ同一のソフトウェア構成で検証を進めることが可能になります。
● ROS 2とは
ROS 2(Robot Operating System 2)は、ロボット向けに設計された分散ミドルウェアです。センサー情報の配信、制御指令の送信、座標変換(TF)などをノード間通信として統一的に扱うことができます。
ロボット制御の通信基盤として、実機でもシミュレーションでも同じノード構成で試せることが特徴です。
● Nav2(Navigation2)とは
Nav2は、ROS 2上で動作するナビゲーションスタックです。
様々なノードを統合・管理することで地図(Occupancy Map)をもとに自己位置を推定し、目的地までの経路計画および走行制御を行います。
仮想環境上においても、ロボットの自律移動に必要なマッピング・経路計画・障害物回避・制御といった高度なアルゴリズムを再現します。

図1-2.シミュレーション連携図
この図では、仮想環境で得られた状態やセンサー情報をもとに判断し、その結果を移動の指示としてロボットに返す、基本的な循環構造を示しています。
① 仮想空間(Isaac Sim)でロボットを動かし
② ROS 2を介してセンサーデータを受け取り
③ Nav2で経路を立て
④ 2D地図と障害物をもとにロボットを自律走行させる
という流れは、フィジカルAIの基礎サイクルにも通じます。
※ただし、Nav2は学習AIではなく、事前定義されたアルゴリズムに基づいて経路計画を行います。
今回は、自動走行ロボットを仮想環境で動かすための基本的な構築手順と、その技術的背景を解説します。
2. 検証環境概要
今回の検証で使用した環境条件は次の通りです。
検証環境:
OS:Ubuntu 24.04
CPU:Intel🄬 Xeon🄬 Gold 6526Y プロセッサー
RAM:512GB DDR5 SDRAM
Storage:NVMe SSD 2TB ×2
GPU:NVIDIA RTX™ 6000 Ada ×2
Driver:580.95.05
CUDA:13.0
※ GPUドライバーおよびCUDAの導入手順は本記事では扱いません。
なお、本記事の手順はUbuntuを前提としています。Isaac Sim自体はWindows10/11をサポートしていますが、本稿の“ROS 2 Jazzy + Nav2 + チュートリアル一式”は Ubuntuで検証しています。
3. Isaac Sim 5.1 のインストール
この章では、本記事で扱う検証の土台となるロボットシミュレーション環境「Isaac Sim」をインストールします。
Isaac Simはロボティクス向けシミュレーターであり、
- 仮想ロボットモデル
- LiDARやカメラなどのセンサー
- 衝突判定や重力といった物理挙動
を、現実に近い形で再現できる点が特徴です。仮想空間であれば失敗時のリスクやコスト増加を気にすること無く、安全に検証を進めることが可能になります。
本記事では、このIsaac Sim上に自動走行ロボットと環境を構築し、後続のROS 2 / Nav2と連携させるという流れで検証を進めていきます。
以降の手順については、公式マニュアルも合わせてご参照ください。
Installation — Isaac Sim Documentation
Isaac SimはNVIDIAの公式サイトからアーカイブ一式を取得し、展開する形でインストールを行います。
※本手順は実際に検証を行った5.1.0をベースとしています
ダウンロードページ:
https://docs.isaacsim.omniverse.nvidia.com/5.1.0/installation/download.html
Linux(x86_64)向けのIsaac Sim 5.1をダウンロードしてください。
ダウンロード完了後は、以下手順を参考にファイルを展開します。
conda deactivate # conda 環境が有効な場合、影響を避けるため無効化(conda未使用の場合は不要) mkdir -p ~/isaac-sim-5.1.0 # Isaac Sim を配置するディレクトリを作成(本記事ではホームディレクトリ配下想定) cd ~/Downloads unzip Isaac Sim-standalone-5.1.0-*.zip -d ~/isaac-sim-5.1.0 # ダウンロードした zip ファイルを展開 cd ~/isaac-sim-5.1.0 ./post_install.sh # 初回起動に必要な依存関係をセットアップ(初回のみ実行) cd ~/isaac-sim-5.1.0 ./isaac-sim.sh # Isaac Sim本体の起動。GUI が起動すればインストール完了

図3-1. Isaac Sim初期起動画面
この時点で、「仮想ロボットと環境を動かす準備」は整いました。
しかし、Isaac Sim単体では、
- ロボットと外部ソフトウェアの通信
- 自律走行アルゴリズムの実行
といった処理は行えません。
そこで次章では、Isaac Simと外部のロボットソフトウェアをつなぐ通信基盤として、
ROS 2を導入します。
4. ROS 2 Jazzy のインストール
この章では、Isaac SimとNav2をつなぐための通信基盤としてのROS 2 Jazzyをインストールします。
ROS 2は、ロボット開発向けに設計されたミドルウェアであり、
- センサー情報の受け渡し
- 制御指示の伝達
- 複数コンポーネント間の連携
を統一的に扱う役割を担います。
本記事の構成では、
- Isaac Sim:仮想環境・ロボット・センサー
- ROS 2:それらをつなぐ通信基盤
- Nav2:自律走行の判断ロジック
という役割分担になっています。
Isaac Simは、ROS 2を介して外部と連携する設計になっています。
つまり、ROS 2を導入しない限り、
- Nav2にセンサー情報を渡す
- Nav2からの指示でロボットを動かす
といった連携は実現できません。
ROS 2は、本検証における「すべての情報が行き交う土台」と言えます。
なお、ROS2のバージョン(今回はJazzy)はOSにより異なりますので、適宜マニュアルもご確認ください。
ROS 2 Installation — Isaac Sim Documentation
Ubuntu (deb packages) — ROS 2 Documentation: Jazzy documentation
sudo apt update
sudo apt install -y 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
# ROS 2 の動作に必要なロケール設定
sudo apt install -y software-properties-common
sudo add-apt-repository universe
sudo apt update
sudo apt install -y curl
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ro… /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb
# ROS2 の公式リポジトリを登録
sudo apt update
sudo apt install -y ros-jazzy-desktop
# ROS 2 本体および RViz などのツールを含むdesktop構成インストール
source /opt/ros/jazzy/setup.bash
#ROS2環境有効化設定(ターミナル毎)
echo $ROS_DISTRO # jazzyであることを確認
ここまでで、
- 仮想環境(Isaac Sim)
- 通信基盤(ROS 2)
が揃いました。
しかし、まだロボットは「どう動くかを判断する仕組み」を持っていません。
次章では、ROS 2上で動作するナビゲーションスタックであるNav2(Navigation2)を導入し、自律走行の判断ロジックを構築していきます。
5. Nav2(Navigation2)のインストール
この章では、ロボットに「自律走行の判断」を行わせるための中核コンポーネントであるNav2(Navigation2)をインストールします。
Nav2は ROS 2上で動作するナビゲーションスタックであり、地図情報やロボットの現在位置をもとに、
- どこへ向かうべきか(経路計画)
- 障害物を避けながらどう動くか(走行制御)
といった判断を行う役割を担います。
本記事で扱う構成では、
- Isaac Sim:仮想環境・ロボット・センサーを提供
- ROS 2:各コンポーネントをつなぐ通信基盤
- Nav2:自律走行の判断ロジック
という役割分担になっており、
Nav2は「自動走行ロボットの頭脳」に相当する存在と考えると理解しやすいでしょう。
Isaac Simには、ロボットやセンサーを動かす機能は用意されていますが、「どこに向かって、どのように走行するか」という判断ロジックは含まれていません。
その判断部分を担うのがNav2です。Nav2を導入することで、以下のような処理が可能になります。
- 事前に用意した地図(Occupancy Map)をもとにした自己位置推定
- 目標地点までの経路計画
- 障害物を考慮した走行制御
これにより、仮想空間でありながら、実機ロボットと同等の自律走行構成を検証できるようになります。
それでは、Nav2をインストールしていきます。公式ドキュメントは以下となります。
Getting Started — Nav2 1.0.0 documentation
ここではROS 2 Jazzy向けに用意されている公式パッケージを使用します。
sudo apt update sudo apt install -y \ ros-jazzy-navigation2 \ ros-jazzy-nav2-bringup # Nav2本体や、launchファイル群を含むパッケージインストール source /opt/ros/jazzy/setup.bash ros2 pkg list | grep nav2
以下のようなパッケージが表示されることを確認します。
nav2_bringup
nav2_controller
nav2_planner
nav2_map_server
6. Isaac Sim 用 ROS ワークスペースの構築
この章では、Isaac SimとROS 2/Nav2を実際につなぐためのROSワークスペースを構築します。前章までで、
- Isaac Sim(仮想ロボットと環境)
- ROS 2 Jazzy(通信基盤)
- Nav2(自律走行の判断ロジック)
の導入は完了しました。しかし、この時点ではIsaac SimとNav2はまだ直接つながっていません。
両者を連携させるためには、Isaac Simが公式に提供しているROS 2向けワークスペース(IsaacSim-ros_workspaces)を用意し、ビルドする必要があります。
まず、システムにインストールされたROS 2 Jazzyが正しく認識されているかを確認します。
source /opt/ros/jazzy/setup.bash # 先程までの手順と異なるターミナルで実施時は必須 echo $ROS_DISTRO # jazzyが出力されていることを確認
次に、Isaac Sim 公式のROSワークスペースを取得します。本手順においては、取得したワークスペース用ディレクトリがホームディレクトリ直下に展開されます。
公式ドキュメントは以下の通りです。
Setting Up Workspaces
cd ~ git clone https://github.com/Isaac Sim/IsaacSim-ros_workspaces.git cd IsaacSim-ros_workspaces # 取得したワークスペースディレクトリに移動
このリポジトリには、
- Isaac Sim とROS 2を接続するためのノード
- Carterロボット向けのナビゲーション構成
- Nav2と連携するためのlaunchファイル
などがあらかじめ整理された形で含まれています。
必要パッケージのインストールを行い、ワークスペースのビルドを進めていきます。
sudo apt install -y \ python3-rosdep \ python3-colcon-common-extensions \ build-essential cd jazzy_ws rosdep update git submodule update --init --recursive # rosdepのアップデート及び、リポジトリ内のサブモジュールを初期化 rosdep install -i --from-path src --rosdistro jazzy -y # ROS パッケージの依存関係を解決
この処理により、
- Nav2関連パッケージ
- 制御・センサー関連ライブラリ
などが自動的にインストールされます。
※エラーが出た場合について
環境によっては、以下のようなエラーが表示されることがあります。
topic_based_ros2_controlが見つからない
その場合は、公式ドキュメントの案内通り、以下をインストールしてから再度実行してください。
sudo apt install -y ros-jazzy-topic-based-ros2-control rosdep install -i --from-path src --rosdistro jazzy -y
colcon build # ワークスペースのビルド(正常に完了後、install ディレクトリが作成)
このワークスペースを利用する際は、毎回ターミナルでsourceする必要があります。
source /opt/ros/jazzy/setup.bash source ~/IsaacSim-ros_workspaces/jazzy_ws/install/local_setup.bash # ネイティブ ROS 2 環境/Isaac Sim 用 ROS パッケージ有効化
Isaac Sim/Carter関連パッケージが認識されているか確認します。
ros2 pkg list | grep carter_navigation # 何らかの出力が表示されればワークスペースは正しく構築
最後に、Nav2が起動できるかを確認します。
ros2 launch carter_navigation carter_navigation.launch.py # Nav2 がエラーなく起動できれば OK
Isaac Sim用ROSワークスペースは、Nav2の判断ロジックを仮想ロボットに適用するための連携層として機能します。
ここまでで、
- 仮想環境(Isaac Sim)
- 通信基盤(ROS 2)
- 判断ロジック(Nav2)
- それらを結び付けるROSワークスペース
がすべて揃いました。
後編記事では、Nav2 が利用する地図(Occupancy Map)をIsaac上で生成し、自律走行に必要な前提条件を整えていきます。
※「NVIDIA Omniverse」「Isaac Sim」「NVIDIA RTX 6000 Ada」「CUDA」は、米国およびその他の国におけるNVIDIA Corporationの商標または登録商標です。
※「Intel」「Xeon」は米国およびその他の国におけるIntel Corporationの登録商標または商標です。
※「ROS」はOpen Source Robotics Foundation, Inc.の商標です。
※「Ubuntu」はCanonical Ltd.の登録商標です。



