見出し画像

ROSを動かしてみたいのでロボットシミュレーションのチュートリアルをやってみる(環境構築未遂)

タイトルの通り、結論として現時点では環境構築が完了していない。でもとりあえずここまでの内容をまとめておきたい。

背景

ROSを理解したい。
- でも調べれば調べるほど #ROS が何者かよく分からなくなってくる。
- 理解するには、できるだけ具体的な題材が必要な気がする。
- でも実際に #ロボット を導入するのはいろいろとハードルが高い。
- できればバーチャルで(PCのみで)完結したい。
- あとC++はやっぱりよくわからないので #Python だといいなぁ。
- #ロボットビジョン とか #逆運動学 とか扱う内容があるといいなぁ。
- そんな都合のいい #チュートリアル 、どこかにないかなぁ・・・

あった。

ドンピシャすぎてびっくりだよ。あなたが神か。

前提OSが #Ubuntu 16.04なのはちょっとアレだけど、とりあえず全体の理解のために一通りやってみて、咀嚼できたらOSのバージョンアップとかにトライすることにした。

というわけで早速始めていく。まずは環境構築から。

Ubuntuのセットアップ

1. Installation and SetupのBasic Toolsの内容。
作業手順がとても丁寧に書かれていて素敵。

でも早速Ubuntuの準備でいろいろと手間取ったので以下は主に自分向けメモ。

第一関門:
以前にCentOSインストール用に使ったUSBメモリをフォーマットして、今回のUbuntuインストールメディアにしようと思ったら、フォーマットしても正しく認識されなかった(16GBのはずが30MB程度しか空き容量が無いと言われる)。
この問題の解決には、以下の記事がまんま役に立った。先人の知見に感謝。

無事に本来のUSBメモリの状態に戻ったので、チュートリアルにあるとおりUbuntu 16.04のデスクトップイメージをダウンロードしてUniversal USB InstallerでLive USBメモリを作成。

第二関門:
今回、もう使ってない外付けHDDがあったので、こいつにUbuntuをインストールすることにした。ただ、これまで既存PCの内蔵HDDにしかLinuxをインストールしたことがないので、外付けHDDへのインストールはどうやるのかがわからない。
とりあえずMacBookにLive USBメモリと外付けHDDを接続して、Live USBからUbuntuインストーラを起動したものの、パーティションの設定あたりでギブアップ。失敗するとMacBookにUbuntuがインストールされてしまいそうなので、ググッて下記の記事手順を参考に作業を再開。先人の知見にただ感謝。(バージョンが16.04でもほぼ同じ手順でいけた)

この作業後、Live USBを外して再起動すれば外付けHDDからUbuntuが起動できる・・・はずだったのだがブートメニューに外付けHDDが現れず
はて?と思い上記の記事を最後までよく読んだら、ちゃんとその対処法まで書いてあった。あなたが神か。

これで、無事に外付けHDDからUbuntuが起動できるようになった。

PythonとGitのセットアップ

これはチュートリアル通りに端末へコマンド入力すればOK。たぶん。

OpenRAVEのセットアップ

これに関しては、リンク先GitHubの手順通りやってね!という丸投げ具合なのでオイオイさっきまでの丁寧な手順解説はどこへ行ったんだと愕然としたが、よくよく手順を見たらシェルスクリプトを順番に実行していくだけという素敵な内容なので、やはりあなたが神かという気分になる。

ただ、神もそう甘いばかりではないようで、今回環境構築で躓いているのはまさにこのOpenRAVEのセットアップだ。

セットアップ手順としては上記の通り、端末でシェルスクリプトファイル4つを順番に実行していくだけなので、難しいことはない。
ただ、それなりの規模のものをソースからビルドするようなので、それなりに時間がかかる点には注意。全部で1時間位?

さてチュートリアルでは、 #OpenRAVE のセットアップが終わったら動作確認しましょうということで、以下のコマンドを端末に入力せよ、となっている:

openrave data/lab1.env.xml

そうすると、本記事トップ画像にあるようなロボットのグラフィックが表示されるようだ。本来は。

私の手元では、コマンド実行後、端末にいろいろな座標値らしきものがしばらく流れた後、処理が止まった。グラフィックのウインドウが別に表示されるかとしばらく待っていたが、特に何も起きる様子がない。端末は下の画面のまま止まった状態。

画像1

一応なにかしら動いていそうな雰囲気ではあるがどうしたものかと、端末の表示を遡ってみたところWARNINGらしきメッセージを発見。

画像2

openrave [WARN] [plugindatabase.h:645 InterfaceBasePtr OpenRAVE::RaveDatabase::Create] Failed to create name ivmodelloader, interface module

このメッセージ内容でググってみると、以下のGitHub Issueページがヒットする:

今回発生したWARNINGと全く同じ内容が投稿されているのはこちらのコメントのようだ:

画像3

このコメントの最後に、以下のように書かれている:

Thanks to @jgvictores we have come to the conclusion that the load of the .wrl models can depend on the viewer used by Openrave, so the error may come from not having installed the viewer in Openrave. I will try to change https://github.com/crigroup/openrave-installation configuration to force the installation of the qtcoin viewer and see if this can fix the problem.

OpenRAVEのViewerがインストールされていないということ?qtcoin viewerとやらがインストールされるように設定を変更したらうまくいくかも?
と思いきや、さらに自己リプで以下のようにコメントが。

画像4

特に設定変更もせず再インストールしたら解決したっぽい。ただ気になるのは、バージョン変更の場合はクリーンインストールした方が良いね、という結論になったようなんだが、今回新規インストールをしている私の環境はどうなんだろう・・・。

ということで、今回はここまで。
次回はOpenRAVE Viewer?の起動を目指して試行錯誤、です。

追記:OpenRAVE動いた!

note記事投稿後、ふと思い立って以下のコマンドを実行したらどうなるんだろう?とやってみた:

openrave

バージョン情報とかヘルプ出力とか得られるかなーと思ったのだけど、得られたのは下記のWARNINGだった:

openrave [WARN] [openrave.cpp:322 MainOpenRAVEThread] failed to find an OpenRAVE viewer.

お、やっぱりOpenRAVE viewerとやらが無いっぽいですねコレ?

というわけで今度は上記WARNINGでググったところ、Ubuntu 16.04で同じ現象が発生しているっぽいIssueがヒット:

そして神コメント:

画像5

不足パッケージを追加する以下のコマンドを実行:

sudo apt-get install libqt4-dev libsoqt-dev-common libsoqt4-dev

パッケージ追加後、OpenRAVEのインストールスクリプトを再実行。
そして改めてopenraveコマンドを実行すると、

画像6

なんかViewerっぽいウインドウ出た!
ということは、さっきの動作確認用サンプルコマンドも・・・

画像7

ちゃんと動いた!やった!

というわけで、

無事にOpenRAVEの環境構築までできたようです。
次は、Vision関係のセットアップになる模様。