RaspberryPi2にROSを入れる


ラズパイ2にROSを入れます。
LINUX初心者なので、バリバリのデスクトップ環境をなるべく軽量に導入しつつ、
さらに有線LAN接続を使わずに無線LANのみでROS導入までたどり着こうと思います。

ラズパイのみでROS入門書である「ROSではじめるロボットプログラミング」の本を勉強することを目指します。

いくつかの種類のROS導入方法を試しました(いろいろとハマり地獄がありました)が、以下の組み合わせがおすすめです。

・OS:Ubuntu MATE(ubuntu 16.04.1 LTS/ xenial)
・ROS:ros-kinetic-desktop-full
・日本語入力:fcitx

以下、OSXでの導入事例ですが、導入の際に実際に行ったことを順に箇条書きしておきます。
これできっと、一度ぐらいラズパイを起動したことがある人なら誰もが、
挫折せずにラズパイにROSを導入できる・・・はずです。

unixなどの経験が全くなくラズパイに触れるのも初めてという人は、他のサイトや入門本を使って、
Raspbianなどより一般的なものを一度は起動させておくことをおすすめします。


【ROSをRaspberrypi+ubuntu MATEにインストールするのまとめ】


■準備物

・ラズパイ2(3もたぶん可)と電源
・ディスプレイとHDMIケーブル
・USBキーボード
・USBマウス
・Wifiドングル(おすすめは プラネックスのGW-USNANO2A等)
・SDカード(8G以上。たぶんクラス10が良い。たぶん16Gあれば安心。)


■まず、Ubuntu MATE をインストールします。

https://ubuntu-mate.org/raspberry-pi/

から、Raspberrypi用のubuntu mateをダウンロード。
このダウンロードにはけっこう時間がかかるので、作業の前日などにDLを完了させておくと便利です。

MAC OSXでのインストール方法は、前回の記事にまとめてあります。
http://fc2canned.blog54.fc2.com/blog-entry-1289.html


RaspbiにSDカードを入れて電源を入れると、自動で設定が行われます。


■SDのリサイズ

SDの現在のサイズ状況を調べます。

$ df -h

大容量のSDカードを使っている場合、容量が上限まで認識されていないことがわかります。

ここで、raspi-configをいれちゃいます。
これを入れると、Raspberrypi本体だけでSDカードの上限を認識させることができます。

$sudo apt-get install raspi-config

さっそくraspi-configを使ってファイルを拡張します。

$sudo raspi-config

ウィンドウが開くので、「1 Expand Filesystem」を選んでリターン。FINISHを押し、リブートします。

再びSDのサイズ状況を調べます。

$df -h

すると、/dev/root の容量のAvailがアップしていることが確認できます。


■Wifiの設定

デスクトップ右上の無線LANアイコンから、無線LANを設定可能です。
wifiドングルもMATEなら自動で認識してくれます。
電波を認識しない場合には、リブートで認識してくれる場合があります。
パスワード入力は入力時間が短いのでタイムアップに注意します。

ちなみにwifiドングルは、
PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)
を使用していますが、機器が熱くならないのでとても良い。(以前使用していたBUFFALO製はやけどしそうなほど熱くなりました。)

ここで無線LANが正常に動作すれば、有線LANへの接続一切なしでインストールから環境構築までが可能です^^


■もろもろ最新版に

$ sudo apt-get update
$ sudo apt-get upgrade


■パスワードの変更

パスワードを変更したければ下記。
$ sudo passwd

ただし、一度使ったパスワードにはたぶん戻せなくなるので注意。


■画面サイズの調整

$ sudo nano /boot/config.txt

として、config.txtを修正する。下記をアンコメントとして、数字を書き換えます。
hdmi_group=1
hdmi_mode=数字(解像度の種類。私の環境では14)

リブートで解像度変更OKです。

※nanoの使い方。書き換えたらCTRL+oで上書き。CTRL+xでnano終了。


■デスクトップのオンオフの確認

ヘッドレスサーバー用にデスクトップ表示を停止することができます。
$sudo graphical disable
$sudo reboot

もちろん、デスクトップを有効に戻すことも簡単です。
$sudo graphical enable
$sudo reboot

これなら、デスクトップ環境で作ったものをそのままロボットにも組み込みOKそうですね。


■サウンド出力をオーディオジャックに強制する場合

$sudo amixer cset numid=3 1


■サウンドノイズの軽減(ファームウェアアップデート)

$ sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update

$ sudo rpi-update

$ sudo reboot


■デスクトップの軽量化

デスクトップのメニューから、
システム - 設定 - ルック&フィール - MATE Tweakを選択。
左のウィンドウの項目のウィンドウマネージャーから、
Marco(コンポジットなし)を選択してみる。
ウィンドウのアニメーションも切ってみる。


■日本語入力の導入

日本語表示には対応しているものの、日本語入力はできないので別途インストールします。
fcitxが安定しているらしいです。

$ sudo apt-get --install-recommends install fcitx-mozc fcitx-libs-qt5 fcitx-frontend-qt5
$ sudo reboot

デスクトップ右上のメニューバーに小アイコンが現れ、
半角/全角キーで日本語入力に切り替えができるようになります。


■ROSのインストール

いよいよROSのインストールです。
まず、ubuntsuのバージョンを確認します。

$ cat /etc/lsb-release

ラズパイ2用のubuntsu mateのubuntsuバージョンは。
Ubuntu 16.04.1 LTSで xenial
と表示されます。

今のところROSのバージョンである「indigo」はUbuntuの「trusy」と「saucy」とういバージョンには対応していますが、
当件でインストールしている「xenial」には非対応です。
しかしながら最新版のKinetic Kameはバッチリサポートされていますので、いれちゃいます。
テキストとして使おうとしている「ROSではじめるプログラミングロボット」の本はindigo対応ですがいれちゃいます。
練習なので「全部入り」のros-kinetic-desktop-fullをいれちゃいます。

参考)http://wiki.ros.org/kinetic/Installation/Ubuntu

$ 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 0xB01FA116

$ sudo apt-get update

$ sudo apt-get install ros-kinetic-desktop-full


※インストールにはちょっと時間がかかります。


■rosのイニシャライズ

$ sudo rosdep init
$ rosdep update

updated cash in /home/(名前)/.ros/rosdep/sources.cache
と表示されれば完了です。


■環境設定

$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
(この作業は待ち時間がほとんどなく一瞬で完了します。)


■頻繁に使うROSコマンドセットのインストール

$ sudo apt-get install python-rosinstall

以上でインストール作業は終了です。

念のため
$sudo reboot

ここで私の環境ではラズパイのグリーンLEDが4回点滅(loader.binが起動しない)という状態になりました。
電源を切り、再度電源を投入したところ、起動しましたが、ちょっと不安が残る仕上がりになってしまいました><
ちなみにこの再起動はけっこう時間がかかります。2回目の起動から速くなります。


■動作確認①

$ roscore

と命令すると、メッセージが表示されます。

… Logging to /home/ほにゃらら…
SUMMARY ほにゃらら
PARAMETERS ほにゃらら
NODES ほにゃらら
ほにゃらら
started core service [/rosout]

というひょうな表示がされたらOKです。

※ CTRL+c キーで、ROSの実行を停止してコマンドプロンプトに戻ることができます。これ重要です。

ここまでで「ROSではじめるロボットプログラミング」のp22までの内容の
Raspberrypiバージョンが完了!のはずです。


■動作確認②

turtlesimを起動します。

$ roscore

ターミナルをもう一つ立ち上げて、

$ rosrun turtlesim turtlesim_node

カメの画面が現れます。
さらにターミナルをもう一つ立ち上げて、

$ rosrun turtlesim turtle_teleop_key

このターミナルにフォーカスした状態で矢印キーを押すことで、画面上のカメを操作できるようになります。

これで一応、動作確認まで完了です!


th_CIMG8023.jpg

(うごいてるうごいてるとりあえずはラズパイでROSがうごいてるよいそよいぞ)
スポンサーサイト

テーマ : 自然科学
ジャンル : 学問・文化・芸術

コメントの投稿

非公開コメント

プロフィール

二名川(ニナガワ)

Author:二名川(ニナガワ)
ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。
子供が夢を見ている時間帯に稼働します。

宣伝:電子出版しました。
「コンソロイド ガイドブック」
46107_CONSOLOID_GUID_FACE_200.jpg





■作成中の機体
汎用ヒト型決戦遊具 ~RX計画~
RX-7.5 ゼロタンク
RRf-0.6 ゼニィ
RXM-7.9 ゼムネス
RX-7.5R 量産型ゼロタンク
RX-7.5Fp ファミタンク仮設1号
RX-7.7 ゼロキャノン
RX-7.8 ゼログレイ
SMS-0.1 ゼロライナー
以下続く

ブログ内検索
最近の記事
最近のコメント
カテゴリ
月別アーカイブ
リンク