変わりモノがいい!

変わりモノには価値がある・・・ハズ?

AWRへのROSインストール 進捗報告 その3

少し明かりが見えたような気がします。

何度も何度もインストール、エラーの原因調査、対策を繰り返していく中でちょっとずつではありますが、何が良くて何が悪いのかが少しわかってきたように思います。

f:id:ken2017:20201112085336p:plain
何が判ったかを書いておきたいと思います。

まず、一番信頼できるサイトはどこか

間違いなくココです。
ROS.org

wiki.ros.org

ここに書いてある手順に従って作業を行えば、概ねOKです。
が、ここで問題となるのはインストール先のRaspberry Pi3の環境です。
Raspberry Pi3に何が入っているか、環境変数に何が設定されているか、SWAPメモリがどう設定されているか、相性の悪いアプリが入っていないか、ROSが標準としているアプリと齟齬はないか、等々
当然ではありますが、正式な手順の説明にはこれらの細かなことは書いていませんし書けないのは当然です。
理由は、対象となるRaspberry Pi3の環境が判らないから。
今、僕が悩み、色々と変更しながらインストールを繰り返している原因はここにあると思っています。
それでは今回発生した問題のうち、多くの人に参考になりそうなものを列記しておきます。

まずは、SWAPメモリのサイズの件

Raspberry Pi3のSWAPメモリのサイズは標準では100MB程度となっています。
ROSのインストールは時間でいうと1時間以上、2時間以上かかる作業でありメモリ領域も沢山消費します。
インストール作業でメモリ不足が起きないようにしておくためにSWAPメモリのサイズUPをしておきます。
参考サイトはこういう所があります。
今回は、SDカードに32GBカードを使っていますので余裕を持つ意味でSWAPメモリのサイズを4096MBに変更しました。

www.fabshop.jp

次は不要なプロセスの停止です

ROSのインストールはただでさえ時間がかかりますし、僕のように失敗を繰り返すと掛ける何倍もの時間が必要となります。
これを効率的に行うには不要なプロセス(プログラム)を停止しておく必要があります。
どんなプロセスが動いているかを調べ、不要なプロセスを停止するための参考サイトがここです。
僕の場合は、パソコンと通信をしてAWRを動かすためのwebserberソフトが走っていましたので、これを止めました。

qiita.com

続いてOpenCV関係

これは現時点でも全貌が判っていません。
判っていることは、OpenCV3が必要であるがPythonのバージョンの影響を受けてインストールに失敗する場合があるということです。
僕は下のサイトにある処置を行いました。
内容は、charをconst charに変えたということです。
buildエラー
cv2.cpp:889:34: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]

qiita.com

言えることは、OpenCV3をキチンとインストールしないとROSのインストールが上手くいかないということです。

今取り組んでいること、それはPythonのバージョン対応

ROSが標準で対応しているのはPython2系です。
Python3系ではありません。
このことは判っていたのですが、ネットにある記事によればPython3でもできるように書いてあるものもあり、今はPython3を使っているので出来るだけPython3でやりたいと悪戦苦闘してきた次第です。
色々なエラーに対応して少しずつ前に進んできて出くわしたのがPythonのバージョンの違いによる影響です。
これがですね、判りにくい。
表面的なエラーとしては、下の記事のように例えば
Failed to process package 'rosbag'
というような本当の原因とは関係のない記載で表示されており、その記載の上にある本当の原因を調べていくことをしないと原因が判らないということになります。
今回は、このエラーが色々と発生して、この対応に膨大な時間を使っている、ということです。

answers.ros.org

ここでもROS.orgが大変参考になっています。
昨日の夕方、Pythonのバージョンの違いによる影響を避けることができない、すなわちPython3の環境でROSをインストールすることは断念したほうが良いと判断し、今朝からPythonのバージョンを2系に切り替えてROSのインストールを行っているところです。
8時過ぎに開始して早1時間30分経過。
未だインストール作業は走りっぱなしです。
Pythonのバージョンの切り替えはネットに沢山の記事が出ています。
簡単なものから難しいものまで。
一般的にはPyenvを使ってのものですが、僕がやった中では下の記事の内容が一番確実で一番簡単でした。

www.souichi.club

今回こそは成功してくれ、と祈るばかりです。
結果は別途報告します。

では、また。

 

プライバシーポリシー お問い合わせ