Robocup SSLの開発環境をROS2へ移行する際に備え、SSL Referee Box ssl-game-controllerとgrSimをMacで動かす。
SSL Referee Box
2019年以降はSSL Referee Boxではなく、代わりにssl-game-controllerをにインストールしてください
Ubuntuならaptで依存ライブラリをインストールして、cmake→makeするだけ。
しかし、OS Xではmakeするとglibmm関連のインクルードファイルが見つからないとエラーを吐かれてしまった。
調べたところ、Homebrewでインストールしたlibffiとglibmmが、cmakeのfind packageでうまく見つかっていないよう。
以下のようにPKG_CONFIG_PATHに該当パスを追加してビルドすればビルドに成功する。
brew install cmake glibmm gtkmm protobuf pkg-config git clone https://github.com/RoboCup-SSL/ssl-refbox.git cd ssl-refbox/ mkdir build cd build export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opt/libffi/lib/pkgconfig export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opt/glibmm/lib/pkgconfig cmake .. make cd .. ./sslrefbox
ssl-game-controller
RoboCup 2019からはSSL Referee Boxの代わりにssl-game-controllerが使用されます。
Goで動くrefereeアプリと、node.jsで作成された操作用クライアントがセットになっています。
GitHubのReleaseページでバイナリパッケージが提供されています。
動作させるにはGoとnvmをインストールする必要があります。
下記サンプルではGoのバージョン管理システムgvmを経由してGoをインストールします。(Homebrewでも問題ないとは思いますが)
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) gvm listall gvm install go1.12.9 -B gvm use go1.12.9 --default go version brew npm go get -u github.com/RoboCup-SSL/ssl-game-controller/... cd $GOPATH/src/github.com/RoboCup-SSL/ssl-game-controller/ npm install
grSim
grSimはINSTALL.mdにMac版のインストール方法が記載されているので特に困ることはない。
(…と思っていた)
注意書きに書いてある、「公式のVarTypesがOS X非対応だからforkされたnon-officialなブランチを使え」、という内容は、以下のようにコマンドを実行すればよい。
cd /tmp git clone https://github.com/lordhippo/vartypes cd vartypes git checkout -b osx-fix origin/osx-fix mkdir build cd build cmake .. make sudo make install
その他諸々のコマンドを動かし、実行ファイル生成まではうまくいく。
しかし実行してみると、qt4のライブラリが二重にロードされているとのエラーが吐かれる…
おそらくHomebrewのPATHで通っているライブラリと、grSim.app内にコピーされたライブラリが二重にロードされている。
個人的にqt4をHomebrewのパッケージで残しておくのが嫌なので、下記コマンドでqt4をアンインストールすることで解決した。
(qt5が出ているのにわざわざqt4を残したくないなぁと)
brew uninstall qt@4 brew tap-unpin cartr/qt4 brew untap cartr/qt4
ということで、Mac OS X上でSSLの開発環境が整いましたとさ。
めでたしめでたし。
ロボットと電子工作とプログラミング!
女の子は甘いもので出来てる?