LoginSignup
1
0

More than 1 year has passed since last update.

VMware Fusionではまったときの対処(mac, ROS)

Last updated at Posted at 2021-11-21

VMware Fusionにお世話になっております

私が使っているMacBook ProがBootcampでUbuntuをインストールできないので、他のOSを使用したいときは仮想環境を利用するしかありません。さまざまな仮想環境から選ぶうえで、

  • 無料
  • 他の仮想環境に比べて描画が早い

という点でVMware Fusionを選んでいます(なお、私は無料になる前に課金していました)。

前提として、仮想環境で処理を行う場合、その性能はマシンが持つ処理能力よりもかなり劣ってしまいます。例えば、定番である仮想環境VirtualboxでROSのGazeboを動かすと遅すぎて使えないレベルであります。それゆえに、描画の速さはGazeboのようなシミュレータを使用する際には大切なポイントになります。

私はVMware Fusionにお世話になりっ放しなのですが、UbuntuでROSを動かす際にはまったことがありましたので、対処方法をメモ代わりに書いておきます。

環境

  • PC:MacBook Pro (2020, Intel CPU)
  • OS:OSX Big Sur
  • 仮想環境:VMware Fusion 12.2.1
  • 仮想環境で動かしているOS:Ubuntu 18や20

Ubuntuのディスク容量がなぜか減る

ドラッグ&ドロップでファイルを母艦のOSから受け渡ししていませんか? この便利な機能を使ってる方は ~/.cashe/vmware/drag_and_drop の下にフォルダが生成されているかどうか確認しましょう。そして全て削除しましょう。

Gazeboが起動しない。

こちらの srsさんの神記事 ROS講座54 VMWare上でROSを使う - Qiita - を参照しましょう。

VMwareはどうやらOpenGL3系に対応していないらしくて、VMware上でgazeboを起動しようとすると失敗します。export SVGA_VGPU10=0の環境変数を付けるとOpenGL2系を使うようになり、正常に立ち上がります。bashrcに書いておきましょう。

ただ、VMware Fusion 12はOpenGL3に対応しているようです。これが↓の問題に関係します。。

Gazebo内のRGBDカメラが変なDepthイメージを出す

RealsenseやKinectなどDepthイメージをセンシングできるRGBDカメラをGazeboで使用するとき、はまりポイントがありました。

上記の通り、VMwareでGazeboを表示させるためには、描画系のOpenGLのバージョンをを3から2に下げることになります。その状態でRGBDカメラをGazeboでシミュレートすると、このような現象が発生します。

Depth情報を生成するときにレイトレーシングしているのですが、RGBカメラ画像の位置と整合性を取るために描画されたバッファが見えてしまっている気がします。ポイントクラウドを見ると、カメラの前に常に四角い板があるように見え続けるのです。このような状態だと何もできません…。

試行錯誤の結果、OpenGLのバージョンを3に上げると問題が発生しないことが分かりました。ゆえに「Gazeboでdepth cameraのシミュレーションを、VMwareで構築したUbuntu上で実行したいときは、 Ubuntu20のROS Noetic を使いましょう」。もちろん、 export SVGA_VGPU10=0 の環境変数をbashrcから削除しましょう。

結果、このように正しく深度データを取得できるようになりました。

1
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
1
0