シミュレータChoreonoidに関するトラブルを掲載します。
今回は、VMware上でChoreonoidを起動してプロジェクトファイルを開いた際に、Choreonoidが強制終了してしまったときの対応方法について解説します。
作成したプロジェクトファイルを開くとChoreonoidが強制終了
Choreonoidを起動して作成したプロジェクトファイルを開くと、以下のエラー文が表示されてChoreonoidが強制終了してしまうことがあります。
VMware: vmw_ioctl_command error 無効な引数です.
中止 (コアダンプ)
このエラー文で検索すると出てくる情報は、ROSのgazeboやrvizでの対応方法がほとんどでChoreonoidに関する情報はありませんでした。Choreonoidでの上記エラーに対する対応方法は次のセクション以降で説明します。
ちなみに、ROSでは以下のコマンドを実行してOpenGLを無効化する旨の回答が掲載されています。
$ export SVGA_VGPU10=0
原因
Choreonoidではモデルを三次元コンピュータグラフィックスで描画するために「描画エンジン」を備えており、現在2つの描画エンジンが使用可能となっています。
1. 新描画エンジン(GLSL描画エンジン、OpenGL3.3以降に対応)
2. 旧描画エンジン(固定シェーダ描画エンジン、OpenGL1.5以降に対応)
デフォルトでは新描画エンジンを使用する設定となっています。しかし、古いGPUを搭載したPCや仮想環境では新描画エンジンがサポートされていない場合があります。その場合Choreonoidが正常に動作せず強制終了することがあります。
Choreonoidのグラフィックや描画エンジンについて詳しく知りたい方は、以下のページを参照してください。
Choreonoid開発版ドキュメント グラフィックス環境のセットアップ
https://choreonoid.org/ja/manuals/latest/install/setup-gpu.html
対応方法
使用する描画エンジンを旧描画エンジンに変更することでChoreonoidが強制終了するのを回避できます。描画エンジンの切り替えは、Choreonoidを起動する前に以下のコマンドを実行してください。
$ export CNOID_USE_GLSL=0
上記コマンドを実行後、Choreonoidを起動してプロジェクトファイルを開くと、問題なく開けると思います。
この環境変数[CNOID_USE_GLSL]の値を、0に設定すると旧描画エンジンを使用し、1に設定すると新描画エンジンを使用することができます。デフォルトでは1が設定されています。
いかがだったでしょうか。
今回の問題に対して、エラー文で調べればOpenGL関連の問題とあたりを付けることはできますが、Choreonoidのホームページに記載されている具体的な解決方法に結び付けることが難しいと感じたので、皆様の参考になればとコラムを掲載しました。
今後もChoreonoidに関するTipsを掲載していきたいと思います。