😀

Anaconda+IsaacSIM環境量産@自動走行

2023/02/06に公開

1.記事について

  • 公開可能な社内向け作業手順書を兼ねています。
    • 初級レベルよりに書いているつもりでいます。
  • 本稿以外にも実現可能、簡易な方法がある点ご了承ください。
    • 一部謎表現があるかもしれません。
    • 成り行きで一部英語注釈付けました(Added English)

IsaacSIM 2022.2.0対応
https://qiita.com/Manyan3/items/e13a19d14a25cdc16425

2.Anaconda+IsaacSIM環境を実現するにあたって

テスト環境

  • ストレージは必要十分な容量確保しています(500GB以上)
  • OSはUbuntu20.04、Anacondaで仮想環境作成しています。
PC CPU メモリ GPU
旗艦 Ryzen5 5600G 80GB RTX3090
模造船 Ryzen5 3500 32GB RTX3060

今回必要なIssacSIMの情報

  • Nvidia Omniverse IsaacSIMチュートリアル(ROS2 Linuxの項目)

https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_ros2_turtlebot.html#isaac-sim-app-tutorial-ros2-turtlebot

  • ROS2 Foxyドキュメント インストール説明

https://docs.ros.org/en/foxy/Installation.html

  • Fast DDSのGitHub と 日本語解説

https://github.com/eProsima/Fast-DDS

https://www.openrtm.org/openrtm/ja/doc/developersguide/advanced_rt_system_programming/dds_comm_use/fast-rtps

  • Navigation2 公式ドキュメント(English)

https://navigation.ros.org/build_instructions/index.html

拙作関連ドキュメント(Omniverseのインストールあたりから)

  • 再インストール関連(re-install Japanese only)

https://qiita.com/Manyan3/items/f6e85eb33c43073cfd47

  • 新規インストール編(Intial install_Japanese only)

https://qiita.com/Manyan3/items/dfa7617b3bc462c6bf9c

https://qiita.com/Manyan3/items/55566680b441b4f925c9

https://qiita.com/Manyan3/items/d1c3f311b57109772470

3.基本環境作成済みから IsaacSIMセットアップ

(その1)IsaacSIMの環境(Anaconda)を作成。

English reference site(参照元)

https://docs.omniverse.nvidia.com/prod_digital-twins/app_isaacsim/install_python.html#advanced-running-with-anaconda


conda remove --name isaac-sim --all
conda env create -f environment.yml
conda activate isaac-sim

  • なお、Omniverseのパッケージがインストールされているフォルダ
    (例 Ubuntu 20.04 /home/$USERNAME/.local/(略)・・/pkg/
  • environment.ymlがありますが、こちらの冒頭の環境名を任意のものに変更することも可能。

(その2) ROS2 Foxyのインストール(install)

(その3) 必要パッケージのインストール(installed packages)

  • aptでインストールするもの、pipでインストールするものをたたんでおきます。
  • When I can share installed componets list when I was facing Carter navigation TF failure. Please Click the titles ▲ mark tabs.
pipリスト抜粋(Click open tab)

$pip list 

ament-copyright                      0.9.7
ament-cppcheck                       0.9.7
ament-cpplint                        0.9.7
ament-flake8                         0.9.7
ament-index-python                   1.1.0
ament-lint                           0.9.7
ament-lint-cmake                     0.9.7
ament-package                        0.9.5
ament-pep257                         0.9.7
ament-uncrustify                     0.9.7
ament-xmllint    

catkin-pkg                           0.5.2


rqt                                  1.1.2
rqt-action                           0.4.9
rqt-console                          1.1.2
rqt-graph                            1.1.3
rqt-gui                              1.1.2
rqt-gui-py                           1.1.2
rqt-moveit                           1.0.1
rqt-msg                              1.0.5
rqt-plot                             1.1.1
rqt-publisher                        1.3.0
rqt-py-console                       1.0.2
rqt-reconfigure                      1.0.8
rqt-robot-dashboard                  0.5.8
rqt-robot-monitor                    1.0.5
rqt-robot-steering                   1.0.0
rqt-service-caller                   1.0.5
rqt-shell                            1.0.2
rqt-srv                              1.0.3
rqt-tf-tree                          1.0.2
rqt-top                              1.0.2
rqt-topic                            1.3.0
rsa                                  4.9


ros2action                           0.9.12
ros2bag                              0.3.9
ros2cli                              0.9.12
ros2component                        0.9.12
ros2controlcli                       0.11.0
ros2doctor                           0.9.12
ros2interface                        0.9.12
ros2launch                           0.11.7
ros2lifecycle                        0.9.12
ros2multicast                        0.9.12
ros2node                             0.9.12
ros2param                            0.9.12
ros2pkg                              0.9.12
ros2run                              0.9.12
ros2service                          0.9.12
ros2topic                            0.9.12
rosidl-runtime-py                    0.9.1
rpyutils 


PyQt5                                5.15.8
PyQt5-Qt5                            5.15.2
PyQt5-sip                            12.11.1
pyserial                             3.5
PySide2 

empy        
lark                                 1.1.5
launch                               0.10.10
launch-ros                           0.11.7
launch-testing                       0.10.10
launch-testing-ros                   0.11.7
launch-xml                           0.10.10
launch-yaml   


Foxyセットアップで入らないパッケージに注意(Click open tab)
aptリスト抜粋(Click open tab)

sudo apt-get install ros-$ROS_DISTRO-teleop-twist-keyboard

Navigation2インストール(Click open tab)

sudo apt install ros-foxy-navigation2 ros-foxy-nav2-bringup '~ros-foxy-turtlebot3-.*'

sudo apt install ros-foxy-tf-transformations

  • ハマった点はQiitaに列挙します。
  • tfが曲者でしたね。検索してもTensor...が出ちゃうので(苦笑)
  • My failure records(Japanese only)

https://qiita.com/Manyan3/items/473ab61aacc1e593b165

(その4) 追加でインストールしたパッケージ(Additional packages)

  • Qiitaの記事をご覧の通り、初回は特別な事をすることなくインストールできました。
  • 後日譚はQiitaに掲載しますが、他のパッケージ追加後に競合発生し、復活まで
     苦難の道のりをたどりました。
  • 2022年バージョンではさすがにUnrealエンジン手動インストール不要でした。

  1. Vulkan インストールしました。
  • 設定は下記のサイトを参考に最新バージョンに置き換えました。

https://www.rt-shop.jp/blog/archives/11427

https://vulkan.lunarg.com/sdk/home

Vulkan設定(例) (Click open tab)
mkdir ~/vulkan
mv vulkansdk-linux-x86_64-1.3.239.0.tar.gz ~/vulkan
cd ~/vulkan
tar -xvf vulkansdk-linux-x86_64-1.3.239.0.tar.gz
echo "source ~/vulkan/1.3.239.0/setup-env.sh" >> ~/.bashrc'
​
  1. Fast DDS インストールした場合。Launchでマップ読み込み失敗を予防します。
  • eProsimaのFast DDSを追加した場合は以下のページの通り設定を加えます。

https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/install_ros.html

vi で変更の手順した場合(ROS2 Bridge prep/list in the tab)

cd ~/.ros/
ls
# fastdds.xmlは念のためリネームしておきます
mv fastdds.xml fastdds.bak
vi fastdds.xml

(その5) IsaacSIM起動前にターミナルを見る(Double check)

  • コンポーネント不足はないか?

  • 今回はROS2チュートリアル5番 Carter Navigationを実行します。

  • 不測のコンポーネントがなければ、最初のスクリプトでRvizのNavigation2のステータスがactiveになってくるし、画面もCarterを拾っている模様が見えます。

  • 成功例

CUDAのバージョンアップ等で痛い目にあってますので、適宜注意が必要ですね

Discussion