ハードウェアからサーバ・アプリまでワンストップで開発

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/

最近のエントリー

OrangePi5にZabbixをインストールする

レビュー等の依頼について

オープンソースのノートアプリ「SiYuan」 - CasaOS AppStoreレビュー

お気に入りの色さがし1

創立記念日

現在の営業品目(2)

現在の営業品目(1)

SPDX License Listをデータ化した

Orange Pi5でC3TR-Adapterを試す

CasaOS上で会計システム「Hieronymus」を動かす

会計システム「Hieronymus」v1.0.0 リリースしました

CasaOSでファイル同期アプリSyncthingをセットアップする

第11回 Freshmeat

オープンソースノーコード「Activepieces」でワークフローを作る

RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する

sequelize-cliでdb:migrateすると「SyntaxError: Unexpected token ':'」が出る

LED行燈の試作(2)

CMSの社内向けサービスのリニューアル

LED行燈の試作(1)

エントリを書くこと