Habitat-simのチュートリアル
Habitat-simのチュートリアルをやってみた
移動ロボット系タスクで有名なHabitat-sim、使い方をきちんと学ぶためにも公式のチュートリアルをやってみた。
バグなどに関する簡単なメモをどんどん追記していきます。
YouTubeの動画とcolabで動く簡単でわかりやすいセットで本当に助かる〜〜〜
バグ
まだ見つけきっていないかもしれないけど、colabで動かす時のバグをどう解決していったかの備忘録
1. Habitat_sim installs failing
チュートリアル1個目2つ目のセルからぶち当たるこのバグ。
先人たちが先にぶち当たっていてくれました。 github.com
どうやらcolabのnumbaのバージョンが0.51.2になっていないのが原因らしい?
(追記)基本的に他のエラーもこれをやると直ることが多い
とりあえず簡単に直すなら
1番上のセルを実行後、以下のコードを実行し、「ランタイム」>「ランタイムを再起動」
!add-apt-repository ppa:ubuntu-toolchain-r/test -y
!apt-get update --fix-missing
!apt-get dist-upgrade
もっときちんと直すなら
For now, you can:
modify the install cell to use the installer on a branch with the change suggested by @srkiyengar:
https://raw.githubusercontent.com/facebookresearch/habitat-sim/colab-numba-version/examples/colab_utils/colab_install.sh
Edited path 10/11
apply the fix suggested by @arjunmajum in this comment: Run this one time:
!add-apt-repository ppa:ubuntu-toolchain-r/test -y !apt-get update --fix-missing !apt-get dist-upgrade
Then, restart the runtime
2. ModuleNotFoundError: No module named 'habitat_baselines.common.baseline_registry'
habitat labのチュートリアルをやっていると、habitatが見つからないバグの次に出てくるこのバグ。
見つからないのは1つ目のバグの解決方法で直るけど、これはちょっと厄介(でもない)。
下のページに沿って、以下コマンドをしてから、当該セルを実行するだけ。(habitat-labディレクトリ内でpip installする必要がある)
%cd "/content/habitat-lab/"
!pip install -e habitat-baselines
ただ、これでもimport habitat_baselinesができないこともあるので、その時にはインポートする直前にhabitat-baselinesに移動。
%cd "/content/habitat-lab/habitat-baselines"
from habitat_baselines.common.baseline_registry import baseline_registry
from habitat_baselines.config.default import get_config as get_baselines_config
%cd $dir_path
3. "./test/habitat_all_sensors_test.yaml"が見つからない
"/content/habitat-lab/habitat-lab/habitat/config/test/habitat_all_sensors_test.yaml"
にある。
4. ConnectionResetError: [Errno 104] Connection reset by peer
Habitat labのRL Trainingをやってみようとしたら出てくるエラー。
どうやらcolabから何かダウンロードしてくる時に起きがちなエラーらしい。
容量が足りない???
habitatを--with-cudaオプションで入れればいい感じだけど、ちょっとGPUの制限もかかりそうなのでスキップ。
使い方
屋内のオブジェクト情報が知りたい
簡単な使い方は以下
SemanticObjectクラス内でBBoxやsemantic_id、カテゴリを知ることができる。 aihabitat.org
また、semantic_idについてはインスタセマセグが行われているため、同じ「椅子」のカテゴリでも異なるidが振られている。
scene = sim.semantic_scene
で取得したscene内のobjectの順番とsemantic_idは一致していそう。
また、semantic_idとは別に普通のidも振られている。
このidは「<level_id><region_id><object_id>」の順についているので、どの部屋〜なども分かるようになっている。
セマセグの例はこちら↓