1. はじめに
Ubunutu22.04の環境下においてIsaac Sim+ROS2を試そうとしてハマったところの記事においてUbuntu22.04の環境下においてIsaac Sim+ROS2の環境を構築しました。その記事おいては、ロボットに回転の指示をだして遠隔操作をしてみましたが、せっかくROS2が入っているので自律走行させてみたいと考えています。ただいきなり自律走行させるというのはハードルが高いため、まずはロボット走行用の2D地図を作成しようとしたのが今回の記事の内容になります。
2. 実行環境
- CPU: CORE i7 7th Gen
- メモリ: 32GB
- GPU: GeForce RTX 2070
- OS: Ubuntu22.04(WSL2ではなくPCに直接インストール)
- ROS2: Humble
- Isaac Sim: 2023.1.1
- Nvidia Driver: 525.147.05 (525.85.05が推奨されていますが、私の環境ではインストールできませんでした)
3. 手順
Zennに投稿されているhardbakeさんの以下の記事([1])を参考に進めました。
3.1 IsaacSimの起動とサンプルファイルの読み込み
Ubunutu22.04の環境下においてIsaac Sim+ROS2を試そうとしてハマったところ([2])で記載した手順でIsaac Simを起動して、サンプルファイルの「omniverse://localhost/NVIDIA/Assets/Isaac/2022.2.1/Isaac/Samples/ROS2/Scenario/carter_warehouse_apriltags_worker.usd」を読み込みます。
読み込んだサンプルファイルは以下の図ように、赤枠で囲んだところにcarter_v1.usdがあり、傍らにはフォークリフトが2台と作業員2名がおり、少し遠くには棚とは別のところにパレットに積まれた箱があることが確認できます。
3.2 Mapの作成
[1]に記載を参考に、以下の手順を踏みました(ほとんどそのままの手順です)。
1. 画面上部のメニューバーからIsaac Utils -> Occupancy Mapを選択
2. 画面下部に表示されるOccupancy Mapの画面において、基準の座標となる"Origin"の座標を設定。本記事では(0,0,0.8)に設定しました。
3. 画面下部に表示されるOccupancy Mapの画面における"Upper Bound"のZ座標を本記事では1.0に設定しました。
4. 画面右のウィンドウにおいて、"warehouse_with_folklifts"、"Warehouse_Extras"、"Worker"、"Worker_2"を選択し、画面下部に表示されるOccupancy Mapの画面において、"Positioning"の"BOUND SELECTION"ボタンを押します。
5. 画面下部に表示されるOccupancy Mapの画面における"CALUCULATION"ボタンを押します。
6. 画面下部に表示されるOccupancy Mapの画面における"VISUALIZE MAP"を押すと2Dマップの画像が以下のように表示されました。
作成された地図を見ると、地図の右側には棚に積まれた箱とフォークリフトがくっついた形で障害物として表示されているのが見て取れます。そして右下のところには、棚からちょっと離れたとこでパレットに積まれた箱も障害物として表示されていると考えられますが、ちょっと実物よりは小さく表示されているようにも感じます。また左側には棚から少し離れたところにあるフォークリフトも障害物として表示されています。ただworkerは何回地図を生成しても障害物としては表示されませんでした。
4. まとめ
[1]の記事にある手順で、私の環境でもロボット走行用の2D地図を作成できることを確認できました。ここで作成した地図を用いたロボット自律走行もできるらしいので、次回以降それを試してみたいと思います。
参考サイト
[1]Isaac SimでROSで使用するための2Dマップを作成する
[2]Ubunutu22.04の環境下においてIsaac Sim+ROS2を試そうとしてハマったところ
関連記事
IsaacSimのROS2 Navigationを試してみる :ここで作成した地図による自律走行をしてみました。