mayumi
「raspberrypiからルンバを操作する(0)」の続きです。今回は「1.raspberry piにROSをインストール」です。
ROSのインストールまでは「RaspberryPiで学ぶROSロボット入門」を参考に進めさせていただきました。
1.raspberry piにROSをインストール
ROSの公式サポートするプラットフォームはUbuntuのようです。(http://wiki.ros.org/ja/ROS/Installation)参考書籍にもUbuntuが採用されていたので、Ubuntuを使っていきたいと思います。
今回使用したもの
手元で遊んでいるものを使用しました。
- Raspberry pi 2
- microSD(16G)
- 無線LAN子機
1.1. OSのダウンロード書込み
以下リンク先より、OSのイメージを取得します。今回使用するのはRapsberryPi2なのでRaspberryPi2のイメージをダウンロードします。
https://wiki.ubuntu.com/ARM/RaspberryPi
この記事を書いた時点では、「ubuntu-16.04.3-preinstalled-server-armhf+raspi2.img.xz」です。
手元のメインマシンはwindowsなのですが、windowsで上手く解凍できるソフトがうまく見つけられなかったので、仮想環境のUbuntuでダウンロード解凍を行ってから、windows側に解凍ファイルを持ってきてSDカードに書き込みました。
$ wget http://cdimage.ubuntu.com/ubuntu/releases/16.04/release/ubuntu-16.04.3-preinstalled-server-armhf+raspi2.img.xz
ダウンロードしたファイルを解凍します。
$ unxz ubuntu-16.04.3-preinstalled-server-armhf+raspi2.img.xz
解凍したイメージをSDカードに書き込みます。Win32DiskImagerというソフトで書き込みを行いました。
1.2. OSの初期セットアップ
作成したSDカードをraspberrypiに挿入して起動します。ログインまで無事できたら、初期ログイン情報(ログイン名:ubuntu パスワード:ubuntu)でログインします。
avahi daemonのインストール
sshでログインするときに設定しておくと便利です。
$ sudo apt-get install avahi-daemon
設定ファイルの修正とアップデート
設定ファイルの修正
書籍を頼りに設定ファイルを変更します。
$ sudo vi /boot/firmware/config.txt
device_tree_address=0x100 device_tree_end=0x800
の記載がある場合は、
device_tree_address=0x100 device_tree_end=0x800 device_tree_address=0x02008000
に変更します。 インストールしたイメージはすでに、「device_tree_address=0x02008000」となっていたので特に変更ありませんでした。
アップデートします。
$ sudo apt update $ sudo apt upgrade
wifiのセットアップ
ルンバをraspberry pi越しに動かしたいので、ルンバがraspberrypiとつながっていても動けるようにwifiの設定をしておきます。
$ sudo apt-get install wpasupplicant $ sudo apt-get install wireless-tools
/etc/network/interfacesへの追記
$ sudo vi /etc/network/interfaces
以下をファイルの最後に追記する。
auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/labwifi.conf wireless-power off
wpa_supplicantの設定
$ sudo wpa_passphrase [SSID名] [暗号化キー] > /etc/wpa_supplicant/labwifi.conf
wifiの起動
$ sudo ifup wlan0
無事ipアドレスが取得出来ればOKです。
再起動
$ sudo reboot
1.3. ROSのインストール
ROSのインストールには書籍で紹介されているインストールの手順を自動化するスクリプトが用意されているのでそちらを利用したいと思います。
スクリプトを取得します。
git clone https://github.com/ryuichiueda/ros_setup_scripts_Ubuntu16.04_server.git
セットアップスクリプトを実行します。
$ cd ros_setup_scripts_Ubuntu16.04_server/ $ ./step1.bash $ ./locale.ja.bash $ source ~/.bashrc
以上無事セットアップ出来たら、動してみます。
$ roscore
最後までエラーなく立ち上がれば、Ctrl+Cで終了します。
まとめ
ubuntuと使用したwifiドングルが相性が悪いのかまだ時々不安定なので原因調査中です。それ以外は、書籍の説明が丁寧なので特に苦労なくセットアップは進みました。
次はRaspberryからルンバを動かします。
追記(2017/12.20)
wifiが不安定な問題について
正規ドライバーに更新して再起動することでwifiが時々切断される問題が直りました。
参考:http://wwwb.pikara.ne.jp/arakangolf/ubuntu.html
$ sudo apt-get install git linux-headers-generic build-essential dkms $ git clone https://github.com/pvaret/rtl8192cu-fixes.git $ sudo dkms add ./rtl8192cu-fixes $ sudo dkms install 8192cu/1.10 $ sudo depmod -a $ sudo cp ./rtl8192cu-fixes/blacklist-native-rtl8192.conf /etc/modprobe.d/ $ sudo cp ./rtl8192cu-fixes/8192cu-disable-power-management.conf /etc/modprobe.d/