目次
苦労しまくったラズパイ上でのUbuntu + ROS環境のセットアップ
こんにちは。
AI coordinatorの清水秀樹です。
今日はUbuntu mate + ROS環境のセットアップについて紹介します。
AI coordinator独自開発のPROTECT KIDSのさらなる進化のために、ROSは避けては通れない環境であることは以前から認識していました。
やはりロボティクスを目指す以上、ROSは習得しておきたい技術ですね。
というわけで、ラズパイにROS環境を構築することに挑戦したのですが、これがまた滅茶苦茶大変でした。
そんなわけで、まずは一番確実なやり方を紹介します。
このやり方なら精神衛生上、問題なくubuntu mate + ROS環境をラズパイで堪能できるかと思います。
Ubuntu mate + ROS の作り方 for ラズパイ
Ubuntu mateの準備
Ubuntu mateは公式サイトからダウンロードできます。
ダウンロードしたファイル形式は.xzです。
これが最初分からなかったのですが、.xzは圧縮ファイルとのことで、解凍してSDカードに書き込む必要があります。
MACユーザーなら「SD Card Formatter」等で一度microSDカードをフォーマットしてから書き込み作業を行いましょう。
私は「SD Card Formatter」でmicroSDカードをフォーマットしてから、さらにUbuntu16.04LTS搭載のPCで以下のコマンドを使って.xzファイルをmicroSDカードに書き込みを行いました。
$ sudo umount /dev/mmcblk1p1 $ time xzcat ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz | sudo dd bs=1MB of=/dev/mmcblk1
この辺りの書き込み方法については、windowsやmacやubuntu等でそれぞれやり方があるので、自分の持っている環境に合わせてmicroSDカードに書き込んで頂ければ良いかと思います。
ラズパイでのUbuntu mateセットアップ
この作業事態に難しいことは何一つとしてありません。
ラズパイにmicroSDカードを差し込んで起動すれば、あとはwifi設定やらユーザー名やら地域やら答えながら進めていけば問題なくUbuntu mateが立ち上がります。
ROSのセットアップ
Ubuntu mateが無事インストールできたら、早速ROSをインストールしましょう。
ROSのインストール方法については公式サイトに紹介されていました。
以下のコマンドを、順を追って打ち込んで頂ければ問題なくROSをインストールできます。
それなりに時間かかりますので、コーヒーでも飲みながらインストールしましょう。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install ros-kinetic-desktop-full $ sudo rosdep init $ rosdep update $ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
インストールが完了したら、ROSを起動します。
以下のコマンドで起動してみましょう。
$ roscore 〜〜省略〜〜 started core service [/rosout]
上記のように表示できたらROSのインストールはひとまず成功です。
SSHのセットアップ
最後にSSHのセットアップです。
こちらの記事が参考になりました。
日本語入力設定
以下の記事を参考にしました。
macとVNC接続
最後のmacとのVNC接続について紹介します。
以下の通りコマンドを打ち込みます。
$ sudo apt-get install tightvncserver $ vncserver :1 You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? y Password: Verify:
パスワードを入力すればVNCサーバーが立ち上がりますので、mac側VNCを使用してIPアドレスにポート5091を指定すれば接続できます。
192.168.xxx.xxx:5091
ちなみ画面サイズを指定して起動する場合は「vncserver :1 -geometry <幅>x<高さ>」で起動できる。
ただ、表示がおかしい・・・
左上のターミナルにexitを入力して終了すれば問題ないかと思います。
以上がUbuntu mate + ROS Kinetic on tha Raspberry Piのセットアップ手順になります。
ダメだったやり方の紹介(できたらメリット有り)
ここからはただの備忘録です。
自身で修正できる方はこれから紹介するやり方でも問題ないかと思います。
私は無理でした。
Ubuntu server + ROSのセットアップ
こちらはGUIが無い分、処理の高速化が測れます。
ただし、以下の問題が多発し運用を断念しました。
バージョンアップすると起動できなくる(loadingが繰り返し始まり、一向に終わらない)。
以下の通り、config.txtを修正することで解決できるという手段はあるものの、私の環境ではその通り実行してもダメなケースがありました。
$ sudo vi /boot/firmware/config.txt # set extended DT area # device_tree_address=0x100 # device_tree_end=0x8000 device_tree_address=0x02008000
viエディタの使い方はこちらのサイトを参考にしてください。
また、仮に起動の問題が解決しても、バージョンアップ後はwifiが使えないという自体に陥りました。
この事象もこちらのサイトで解決策があるものの、2018年3月21日時点で公開されていたgitが404ERRで見つからないという事態になっており、結局wifiを復旧できず断念。
Ubuntu mate + ROSがセットになったパッケージのインストール
もっとも高速にROS環境が準備できるパッケージであることは間違いない。
こちらのサイトでROSがセットになったUbuntu mateの紹介があったので、早速試してみるも言語設定がGermanになっている。
先ほど紹介したサイトで日本語入力を試みる。
キーボードもyとzが入れ替わっているので、この事象もこちらのサイトを参考に修正。
ただ、これらの手順を踏んでも、zキーとyキーが入れ替わる事象が完全には解消できず。
精神衛生上よくないので、こちらのパッケージの利用も断念。
そんなわけで、結局は公式サイトからUbuntu mateをインストールし、1からROSをセットアップすることにしましたとさ。
おしまい。
めでたしめでたし。
それではまた。
その他のPROTECT KIDS開発記事はこちら
こんにちは
こちらのサイトを参考にさせて頂いた者です。
おそらく「RaspberryPiで学ぶROSロボット入門」のことだと思うのですが、
上手くセットアップできなかったのでしょうか?
私も上手くセットアップできず、Ubuntu16.04LTS(公式)を
RaspberryPi3に入れてみましたが同様の不具合を生じました。
現在では自動アップデートで起動しなくなることはなくなったみたいですが、
問題はwlan0でした。
「自動アップデートを止めるしかない」と著者は仰っていましたが、
私がインストール後にすぐアップデートを止めてもwlan0は消えました。
これにつきましてはgitが消えてしまったので、
代わりにfirmware-nonfreeの方をwgetしましたが結局ダメでした。
よって今現在ではサイトを参考にしてUbuntu MATEでROSを使うのが一番だと思いました。
こんにちは。
私もUbuntu MATEを使用するのが今の所一番良いかと思っています。
今の所、不具合もなく使えています。