LoginSignup
0
0

Ubunutu22.04の環境下においてIsaac Sim+ROS2を試そうとしてハマったところ

Last updated at Posted at 2024-04-14

1. はじめに

Windows11環境下においてIsaac Sim+ROS2を試してみる ロボット回転編の記事にてWindows 11上で構築したIsaac Sim内で読み込んだロボットを、Windows 11上で構築したROS2からのrostopicで、簡単な制御を行うことができました。
しかしその後、調査・試行をしていく中でSLAMなどをしようする場合、やはりWindowsでは限界があるなという結論に至りました。そこでUbuntuの環境に移行したのですが、なんと!Windows環境下では簡単にできたIsaac SimとROS2の連携にハマりました。その際にどのように解決したかを記載したのが、本記事の内容になります。

:本件は私の環境にかなり依存したトラブルの可能性が高いと思ってます。なので、すべての人にこれが当てはまるわけではないと思いますが、トラブル解決の一助になれば幸いです。

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.手順

3.1 Isaac Simのインストール

UbuntuへのIsaac Simのインストール方法はNVIDIA Isaac Sim: インストール([1])の記事の手順の通りに行いました。違いとしてはインストールしたバージョンが私の場合は2023.1.1であったところです。

3.2 ROS2のインストール

以下のサイト([2])の手順をそのまま行いました。

3.3 ROS2_Bridgeについてうまくいかなかった方法(ここでハマる!!)

Omniverse画面においてLIBRARYのタブからでIsaac Simを選択し以下の黄枠で囲んだLaunchをクリックします。
omniverseより.png

そうすると以下の画面が出てきますが、
私はOmniverse IsaacSim » Installation » ROS & ROS 2 Installation([3])を参考に、~/.ros/の中にfastdds.xmlというファイルを作成し、以下の画面の“Extra Args”の中に「export FASTRTPS_DEFAULT_PROFILES_FILE=~/.ros/fastdds.xml」を追記(黄枠)した上で、緑枠で囲んだところでomni.isaac.ros2_bridgeを選択して「START」をクリックしました。
初期launch.png

そしてIsaac Simが起動するので、上のメニューバーのWindow>Extensionsを選択して「ROS2」を検索してみますと、以下の結果が返ってきました。ROS2 BRIDGEが有効になっていません(DISABLED)。しかもスライドバーを動かして有効(ENABLE)にしようとしても「[Error] [omni.isaac.ros2_bridge.plugin] Could not load ROS2 Bridge due to missing library dependencies, please make sure your sourced ROS2 workspace has the correct packages/libraries installed」というエラーが出てスライドバーが動きませんでした。

Screenshot from 2024-04-14 06-50-13.png

3.3 ROS2_Bridgeについてうまくいった方法

以下のサイト([4])の記載を参考にして対処しました。

手順としてはまず以下の図のIsaac simを起動させる画面で、黄枠で囲んだ"Open in Terminal"をクリックしてターミナルを起動させます。

terminal開く.png

そして、以下のコマンドを実行します。

terminal
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/.local/share/ov/pkg/isaac_sim-2023.1.1/exts/omni.isaac.ros2_bridge/humble/lib

続けて以下のコマンドを実行するとIsaac Simが起動します

terminal
./isaac-sim.sh

そして起動したIsaac SimのメニューバーのWindow>Extensionsを選択して「ROS2」を検索してみますと、以下の結果が返ってきました。ROS2 BRIDGEが有効(ENABLE)になっています。
Screenshot from 2024-04-14 06-59-42.png

試しにWindows11環境下においてIsaac Sim+ROS2を試してみる ロボット回転編の記事で行ったように、「omniverse://localhost/NVIDIA/Assets/Isaac/2022.2.1/Isaac/Samples/ROS2/Scenario/carter_warehouse_apriltags_worker.usd」をIsaac Simで読み込み以下のコマンドを打ったところ、ロボットがゆっくり回転するところも再現できました。

terminal
source /opt/ros/humble/setup.bash
ros2 topic pub /cmd_vel geometry_msgs/Twist '{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.05}}'

なお、「export FASTRTPS_DEFAULT_PROFILES_FILE=~/.ros/fastdds.xml」のコマンドも打った方がいいのかと思ったのですが打たなくても問題なくROS2 BRIDGEは有効になっていました。

まとめ

上記の手順にて、Ubunutu22.04の環境下においてIsaac SimとROS2を連携させることができました。WindowsでハマらなかったところをUbuntuでハマってしまったのはかなり意外でしたが、これでとりあえず環境は整いました。今後はこの環境でロボットの自律走行や四足歩行ロボットの制御などを試してみたいと考えています。

参考サイト

[1]NVIDIA Isaac Sim: インストール
[2]Installation Ubuntu (Debian packages)
[3]Omniverse IsaacSim » Installation » ROS & ROS 2 Installation
[4]Can't launch Isaac Sim Version 2023.1.0 with Ros2 Selected

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0