始まり
最近久しぶりにroboschoolの入っている強化学習の検証用Dockerimageをビルドし直したんですが、roboschoolをimportするところで以下のようなエラーが出るようになってしましました。
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28 not found (required by /usr/local/lib/python3.6/dist-packages/roboschool/.libs/libQt5Core.so.5)
いろいろ調べてみるとどうやら求めているGLIBCのバージョン2.28がUbuntuに標準インストールされているGLIBCよりも新しいバージョンとなっているようです。
■標準のバージョン
- Ubuntu 16.04 : GLIBC 2.23
- Ubuntu 18.04 : GLIBC 2.27
最終的にこのroboschoolのリポジトリのissueに辿り着き、roboschoolのバージョンを1.0.48に落せば解決するとのことがわかりました。
何のアップデートでバージョンが合わなくなったんだろう?と疑問に思いroboschoolのリポジトリを訪れてみたらまさかの文言が・・・

roboschoolが公式にDEPRECATED(非推奨)になってる・・・
前々からPyBulletに置き換えられるんじゃないかという噂はありましたが、全く気付きませんでした。
ということでPyBulletを使いましょう
公式に勧められた以上、今後はPyBulletを使っていこうと思います。
インストールは以下のようにroboschoolをインストールするところをpybulletに変更すればOKです。
$ # pip3 install roboschool
$ pip3 install pybullet
ソース上ではimportとgym.makeの所をpybullet用に変更すれば無事動きます。
詳しくはPyBullet Quickstart Guideをご覧ください。
# import roboschool
import pybullet_envs
# env = gym.make("RoboschoolHumanoid-v1")
env = gym.make("HumanoidBulletEnv-v0")