😀

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

2023/02/06に公開約7,300字

1.記事について

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

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 公式ドキュメント

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

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

  • 再インストール関連

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

  • 新規インストール編

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

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

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

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

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

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のインストール

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

  • aptでインストールするもの、pipでインストールするものをたたんでおきます。
pipリスト抜粋

$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セットアップで入らないパッケージに注意
aptリスト抜粋

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

Navigation2インストール

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

sudo apt install ros-foxy-tf-transformations

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

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

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

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

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

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

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

Vulkan設定(例)
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)

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

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

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

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

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

  • 成功例

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

Discussion

ログインするとコメントできます