OGIMOノート

6歳の娘と、4歳の息子(脳性麻痺)を持った父親エンジニアの備忘録。自作の電子工作おもちゃ/リハビリ器具の製作記録、勉強記録を残していきます

【ROS】ラズパイで始めるROS Bot入門③ ~Ubuntu MATEへROSインストール~

はじめに

先日の記事
ogimotokin.hatenablog.com
Ubuntu Server 16.04 LTSを立ち上げて開発していたが、色々と設定をいじっているとデスクトップ環境を壊してしまい、再インストールするはめに…

ただ、現状のUbuntu Server環境では下記の不満があった。
 ・起動が不安定。時々落ちる。
 ・環境インストールが地味に手間がかかる
 ・ VNC環境が構築できず、別クライアントPCからの遠隔開発ができない
ロボット開発という特性上、極力ロボットにHDMIケーブルは刺したくないので、やはりなんとかしておきたい。

という事で、色々と調べてみたら、Raspberry Pi に対してはUbuntu MATEディストリビューションが最近流行りの様だ。VNC環境の構築も簡単そうだしROSも普通に動きそうなので、この機会にUbuntu MATE 16.04 LTSに切り替えてみようと思う。

インストール手順

①公式サイトからUbuntu MATE 16.04 LTSのダウンロード

ubuntu-mate.org
ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz をダウンロード。xz形式で圧縮されているので、Windowsであれば「7-ZIP」などの解凍ソフトをつかってimgファイルを抽出。その後は、いつもの「win32diskimager」を使ってSDカードに書き込む。

②ラズパイセットアップ

書き込んだマイクロSDカードをラズパイに設定してAC電源入り。画面指示にしたがって、ネットワーク(無線)設定、言語設定、ユーザー名設定を行っていく。設定を終えたら、デスクトップが起動するまでひたすら待つ。片手間で出来るので楽ちん。

③日本語入力対応

日本語入力は以下のサイトを参考に。
deviceplus.jp
特にはまる事はなかった。

SSH/VNC設定

ssh設定は以下で実施。

sudo apt update
sudo apt upgrade
sudo apt install openssh-server

続いて、sshで使用する22番ポートの解放設定を実施。

sudo ufw allow 22 # sshの再起動
sudo /etc/init.d/ssh restart # 起動時にsshの起動
sudo systemctl enable ssh

他のPCからsshでログインできる事を確認すれば完了

VNC設定は以下で実施。

sudo apt-get install tightvncserver
vncserver :1

これでVNCサーバーが立ち上がるので、クライアントPCのVNCビューワーでIPアドレスにポート5091を指定すれば接続できる。
(この辺りはRasbianで実施した内容と同じ)

自動化する場合は、vncサーバの起動スクリプトの実行スクリプトをOS起動時に実行するため、以下のスクリプトを/etc/init.d/vncbootとして作成する。

#! /bin/sh
# /etc/init.d/vncboot
USER=pi
HOME=/home/pi
export USER HOME
case "$1" in
start)
echo "Starting VNC Server"
#Insert your favoured settings for a VNC session
su $USER -c '/usr/bin/vncserver :1 -geometry 1440x900 -depth 24'
;;
stop)
echo "Stopping VNC Server"
su $USER -c '/usr/bin/vncserver -kill :1'
;;
*)
echo "Usage: /etc/init.d/vncboot {start|stop}"
exit 1
;;
esac
exit 0

その後、以下のコマンドでinit.dで起動する様に修正する。

sudo chmod 755 /etc/init.d/vncboot
sudo update-rc.d vncboot defaults

これで再起動すればOK

★[2018/5/13追記]
無線AP接続設定を変更する場合、表示されるSSIDを選択するだけではうまくいかなかった。「新しいWi-Fiネットワークを作成」メニューに進み、「モード:クライアント」「セキュリティ:WPA & WPA2 Personal」「IPV4設定:DHCP自動 or 手動設定」を選択すれば変更できる。

⑤ROSセットアップ

ROS Wiki
http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi
にしたがってインストール。

$ 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

完了したらroscoreを起動する事を確認できればOK!

まとめ

Ubutu MATE+ROS環境が簡単に構築できてストレスなし。デスクトップ画面もカッコいいし。
前回に構築したOpen CV+Movidius環境がUbuntu MATEでも動くのかは不明だが、そこは慎重に見て行こう。

次回こそ、BOTの足回りの開発に着手できず、はず!