2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

カテゴリー

ブログパーツ

無料ブログはココログ

« 2016年5月 | トップページ | 2016年7月 »

2016年6月

2016年6月26日 (日)

Raspberry Pi3でubuntu 14.04LTSを(設定編)

ここまででubuntu14.04が使えるようになりました。次はシリアルターミナルが使えるようように設定します。基本的にこの投稿のように作業をしますが、内容はこのようにします。ビットレートを合わせるための追加作業(3:)も必要です。

1:cmdline.txtの内容は下記
dwc_otg.lpm_enable=0 console=ttyS0,115200 kgdboc=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

2:作成するconfファイルの名前はttyS0.confで内容は下記
start on stopped rc or RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102

3:追加作業。これをしないとシリアル通信のビットレートが合わない。
/boot/config.txtの"core_freq=250"のコメント(#)を外し、有効にする。

ついでに同じ投稿にあるタイムゾーンの設定もやってしまいましょう。ここまでくれば、あとは以前のシリーズ投稿に沿って設定すればOKです。「ラズパイでROS」カテゴリーのこの辺りから見ていってください。残念ながら現時点ではラズパイ3内蔵の無線LANとブルーツゥースは利用できません。

ROSとturtlebotのインストールもラズパイ2と同じですが、念のため次回まとめを投稿します。

Dscn3445

2016年6月22日 (水)

Raspberry Pi3でubuntu 14.04LTSを(インストール編)

ここまでで二つのOSイメージが下記に置かれているはずです。

/home/hanaokacyan/rp3/ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img
/home/hanaokacyan/rp3/2015-04-06-ubuntu-trusty.img

まずubuntu-mate16.04から必要なファイルをrp3下にコピーします。前回の続きなのでubuntuを入れたパソコンで作業します。

rp3の下に作業用のフォルダとしてbootとrootという二つのフォルダを作ります。これはもちろん別の名前でも構いません。これらはubuntu-mate16.04から必要なファイルを取り出し、一時保存するためのフォルダです。僕はGUIで作りました。それぞれのフォルダ(ディレクトリ)のフルパスは下記になります。

/home/hanaokacyan/rp3/boot
/home/hanaokacyan/rp3/root

次にubuntu-mate-16.04-desktop-armhf-raspberry-pi.imgをダブルクリックしてマウントします。imgファイルはそのままでディスクのようにマウントすることができます。するとPI_BOOTとPI_ROOTという二つのパーティションがマウントされます。それぞれから下記のファイルをコピーしておきます。

■ PI_BOOTの中身全てを選択して/home/hanaokacyan/rp3/bootにコピー

■ PI_ROOTから下記のフォルダを/home/hanaokacyan/rp3/rootにコピー
/lib/modules
/lib/modprobe.d

これで準備完了なのでPI_BOOTとPI_ROOTをアンマウントしておきます。

次はubntu14.04のマイクロSDを書きます。マイクロSDアダプタを作業しているubntuコンピュータに接続し、新しい16GのマイクロSDをセットし、df -hコマンドでドライブ名を確認しておきます。僕の場合sdbでした。コンピュータのディスクがsdaですから、二番目のドライブとして認識されています。だいたいこうなるのではないかと思います。書き込みは下記コマンドで行います。例によって時間はかかります。(hanaokacyan,sdbは自分の環境に合わせる)

$ sudo dd bs=4M if=/home/hanaokacyan/rp3/2015-04-06-ubuntu-trusty.img of=/dev/sdb

書き込みが終わったらsyncコマンドを実行しマイクロSDを外し、再度差し込んで小さい方(67MBくらい)と大きい方(1.8GBくらい)の二つのパーティションがマウントされることを確認します。

ここで、マイクロSDが全て使えるようにパーティションを拡大します。以前の投稿で説明したラズパイ本体でやる方法は、なぜかうまくいかない場合もあるみたいなので、作業用パソコンでGPartedというフリーのディスク管理ソフトを使うのがいいと思います。

作業手順はこんな感じです。まずマイクロSDを差し込んでマウントし、Gpartedを起動してsdbの大きい方のパーティションを容量いっぱいまで拡張します。この辺は情報がたくさんあるので、そちらを参考にしてください

ここからubuntu 14.04を書き込んだマイクロSDを、ラズパイ3で使用できるように「改造」します。

最初にラズパイ3で起動できるよう、"boot"パーティション(小さい方)の中身を16.04のものとそっくり入れ替えます。

■ GUIで小さい方(67MBくらい)のパーティションの中身をすべてゴミ箱へドラッグして消去、さっきコピーしておいた/home/hanaokacyan/rp3/bootの中身をドラッグしてコピー

次は"root"パーティション(大きな方)に、16.04からカーネル関係のファイルをコピーします。ここから先はGUIではやりにくいのでコマンドラインで作業します。一部スクリーンショットが古くてパーティション拡大されていないものがありますが、その辺は気にしないでください。

■ドライブ名を確認するためにdf -hコマンドを実行

hanaokacyan@T61:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G  4.0K  1.9G   1% /dev
tmpfs           388M  2.9M  386M   1% /run
/dev/sda1       107G   31G   70G  31% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none            1.9G   92M  1.9G   5% /run/shm
none            100M   64K  100M   1% /run/user
/dev/sdb2       1.7G  420M  1.2G  27% /media/hanaokacyan/3aee2e0f-21f9-43c8-a4d3-e864f5d72d37
/dev/sdb1        64M   37M   28M  57% /media/hanaokacyan/AB3E-B34D
/dev/sdb(この段階では15GBくらいに拡張されているはずです)が"root"パーティションに当たるものです。ドライブ名は/media/hanaokacyan/3aee2e0f-21f9-43c8-a4d3-e864f5d72d37となっているのがわかります。ここへ/home/hanaokacyan/rp3/rootから必要なファイルをコピーするわけです。手順は下記です。

■そのパーティションの/lib/modprobe.dへ移動

$ cd /media/hanaokacyan/3aee2e0f-21f9-43c8-a4d3-e864f5d72d37/lib/modprobe.d

■16.04からコピーしておいたmodprobe.dの中には、aliases.confというファイル一つあるだけなので、これをマイクロSDの/lib/modprobe.dへコピー

$ sudo cp /home/hanaokacyan/rp3/root/modprobe.d/aliases.conf  aliases.conf

■同じパーティションの/lib/modulesへ移動

$ cd /media/hanaokacyan/3aee2e0f-21f9-43c8-a4d3-e864f5d72d37/lib/modules

■同じく16.04からコピーしておいたmodulesの中には、4.1.19+と4.1.19-v7+の二つのフォルダがあるので、これらをマイクロSDの/lib/modulesへコピー

$ sudo cp -r /home/hanaokacyan/rp3/root/modules/4.1.19+ 4.1.19+

$ sudo cp -r /home/hanaokacyan/rp3/root/modules/4.1.19-v7+ 4.1.19-v7+

これで終了です。syncコマンド実行後、マイクロSDを外してください。念のため作業用パソコンも再起動してから、今の改造が反映されているかどうか確認しておきます。

今回はここまで、ここまでのマイクロSDをモニタとキーボードを接続したラズパイ3に入れて、以前の投稿のように起動することができます。次回は各種設定をします。

2016年6月15日 (水)

Raspberry Pi3でubuntu 14.04LTSを(準備編)

【後日追加】もっといい方法がありました。さきにこちらを見てください。

ROS indigoを使うには、ラズパイ3にubuntu 14.04LTSをインストールします。正式対応したバイナリーがないので、ラズパイ2用のモノを改造して起動できるようにします。僕が開発したわけではなく、元ネタはこちらのサイトで、これの追試ということです。まずは準備編として、必要ファイルや環境を用意します。

今回の作業は全てubuntuを入れたラップトップパソコンで行いました。ROSを使うには、コントロール用や開発用としてubuntuパソコンは必須です。僕はlenovoの中古をよく使っています。ubuntuとの相性も良く、タマ数も多いので入手しやすいと思います。

マイクロSDカードは16GBのものを用意しました。新品ならば問題ないですが、一度ラズパイで使ったものはパーティションの削除と再フォーマットが必要です。

最初に作業用のディレクトリをホームディレクトリの直下に作ります。僕はGUIで作り名前はrp3にしました。これは作業に必要なだけですから、後で消しても構いません。以降の説明はこのディレクトリがあるものとして書いてあります。rp3のフルパス表記は下記になります。僕のログイン名はhanaokacyanなので、以下の説明に出てくるフルパス表記ではhanaokacyanを皆さんのログイン名に読み替えてください。

/home/hanaokacyan/rp3

次は必要なファイルをダウンロード、解凍します。ファイルは全てrp3の直下に置くようにします。

ここからraspberry pi3用のubuntu MATE 16.04LTSをダウンロードします。ダウンロードページに進んだら、raspberry pi3用のイメージファイルを選択してダウンロードします。現時点でのファイル名は、ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img.xzで解凍すると ubuntu-mate-16.04-desktop-armhf-raspberry-pi.imgができます。解凍にはちょっと時間がかかるようです。これをrp3の直下に置きます。

次にラズパイ2用のubuntu 14.04LTSをここからダウンロードして解凍します。最近ラズパイ3でも使える16.04LTSも公開になっているようですが、ページの下の方にある14.04LTSを選択します。zipを解凍すると 2015-04-06-ubuntu-trusty.imgができます。同様にrp3の直下に置きます。

これで準備完了です。次回はubuntu 14.04LTSをマイクロSDに書き込み、ファイルを入れ替えラズパイ3をubuntuで起動できるようにします。

2016年6月13日 (月)

Raspberry Pi3でROS indigoとturtlebotを動かす

誰かがやってくれるのをいつまで待っていてもしょうがないので、自力でラズパイ3でturtlebotを動かしてみることにしました。ラズパイ2のクロックは900MHzですが、3では1200MHzと3割ほどスピードアップします。遅めだったマップ確定がスムーズになるのを期待してのことです。

ラズパイ2用のubuntu 14.04のブートセクションとライブラリの一部を、ラズパイ3用のUbutuMateのファイルと入れ替え、ラズパイ3でブートできるようにします。以前検討した方式です。この方式は、システムファイルを入れ替えてしまうので、apt-get upgrade (updateではありません)でシステムの更新ができません。現在の構成で固定することになります。また、「寄せ集め」のシステムですから、何か不具合が発生する可能性もあります。

ダメ元でいいからやってみようと、土日を潰して試してみました。Hanabot 2のラズパイ2を無効にし、kinectやroombaをラズパイ3に接続しました。実験の具合はこんな風です。

Dscn3448

ラズパイ3はケースに入れてフレームに投げ込んであります。電源はモバイルバッテリーから供給しました。これはHanabot 2の5V電源が、最大1Aと少々小さめだからです。バッテリーは2Aくらい供給できますから、おかしな動作をした時に電源のせいではないかと疑わなくて済みます。

ROSのインストールは、少々手こずったところもありましたが、ubuntuの改造以外は、基本的にラズパイ2の時と同じ手順でできました。turtlebotのインストールも同様です。ただ、内蔵無線LANは残念ながら認識しませんでした。実験ではラズパイ2に使ったのと同じ無線LANプラグを使っています。

実際にマッピング、ナビゲーションなどを試してみたところ、特に問題なく動作しました。確かにマッピングでラズパイ2よりスムーズに部屋の輪郭が確定するようです。また、launchの実行も若干早くなりました。これは良いですね。

とりあえず、ラズパイ3でROS indigoが動きますし、turtlebotも使えます。パッケージもapt-get install で素直に取り込めます。実用的には十分だと思います。次回以降、今回のインストール手順を投稿していきたいと思います。

2016年6月11日 (土)

Raspberry Pi3でturtlebotを動かしたいのだけど

ラズパイ3は好評のようで、僕のまわりでも使い始める人が増えています。僕のturtlebotコンパチ機、Hanabot 2もラズパイ3にしたいところですが、簡単にはいきません。turtlebotを動かすにはROSのhydroかindigoが必要です。最近のjadeやkineticには対応していません。

ラズパイ3で提供されているubuntuのディストリビューションはUbuntuMateで、15.10と16.04LTSだけです。indigoの動く14.04LTSは提供されていません。

以前の投稿でラズパイ3で14.04LTSを動かす裏技を紹介しました。僕もこの方法でindigoを動かすことには成功しましたが、 apt-get upgrade(updateではありません)してシステムを更新しようとすると、当然ながら起動しなくなります。組み込みではOSのバージョンを固定するのは当たり前なので、そういう意味ではアリだと思いますが、教材として使うにはちょっとどうかなと思います。

と、なると誰かが、今後のメインストリームとなる16.04LTSとkineticでturtlebotを動かしていないかな、と探してみました。この議論によると「進行中」といった感じで、インストールスクリプトの紹介もあります。いずれ使えるようになるのではと思いますが今試してみるのはちょっと大変かもしれません。先日米国で開催されたMaker Faireに出展したみたいです。

もちろん、rasbianをインストールしたラズパイ3でROS indigoを動かすには、このサイトの手順で、ROSをソースからインストールすればよいです。ただし、パッケージをインストールするにはapt-get installではなく、ソースからインストールする必要があります。また、インストールできない場合もあるようです。残念ながらturtlebotもインストールで失敗しました。

さあ、どうしましょう。

« 2016年5月 | トップページ | 2016年7月 »