「Raspberry Piで学ぶ ROSロボット入門」という本を書きました

Pocket
LINEで送る

ロボットにラズパイを載っけてROSで動かすという流行りもの全部乗せの節操のない本を書きました。3月30日に出ます。以前の日経Linuxの連載をまとめて、原型を留めないほどROS化したものです。本日校了ということで、9月から12月までは執筆、1月からは書き直しや校正と、充実した地獄が終わりました。

 

 

まさか自分がROSの本を書くとは思っていませんでした。私のROSに関するコントリビューションは、たまにROS Wikiを翻訳するくらいです。あんまりROSのコミュニティーに仁義が切れてないのは、別のコミュニティーをやってる身としては褒められたものではないという認識なのですが、日経Linuxの内容を強化する上でROSが避けられず、自分も真正面から扱うことにした次第です。

本の中ではこんなことをしています。

内容は大学の講義や実習を想定しています。4月からの講義にはギリギリですが、ぜひ本を手にとっていただければと。

Pocket
LINEで送る

Raspberry Piを有線LANでMacに直結してMac経由でapt-getできるようにするまでの手順

Pocket
LINEで送る

さっきの記事のMac版。OS Xです。画面数は減ります。こちらもMacで有線LANと無線LANが両方使える必要があります。

まず、「システム環境設定」->「共有」に行き、「インターネット共有」の文字を押して、下のように「共通する通信経路」をWi-Fi、相手のコンピュータでのポートを有線LANのものにします。

スクリーンショット 2016-09-06 14.51.38

その後、チェックボックスをクリックして共有をスタートします。

で、次にTerminalを立ち上げ、ifconfigで有線側のIPアドレスを調べます。下の例の場合は192.168.3.1です。

uedamb:~ ueda$ ifconfig
...
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=23<RXCSUM,TXCSUM,TSO4>
	ether aa:66:7f:f0:af:64 
	inet 192.168.3.1 netmask 0xffffff00 broadcast 192.168.3.255
...

で、192.168.3.2,3,4,…と調べていけばすぐにRaspberry Piにぶつかります。

uedamb:~ ueda$ ping 192.168.3.2
PING 192.168.3.2 (192.168.3.2): 56 data bytes
64 bytes from 192.168.3.2: icmp_seq=0 ttl=64 time=0.456 ms
64 bytes from 192.168.3.2: icmp_seq=1 ttl=64 time=0.376 ms
...

で、sshで接続し、外と通信できることを確認します。

uedamb:~ ueda$ ssh pi@192.168.3.2
Linux raspberrypi 4.1.10-v7+ #2 SMP PREEMPT Sat Oct 10 09:49:41 UTC 2015 armv7l
...
pi@raspberrypi ~ $ ping google.com
PING google.com (216.58.197.206) 56(84) bytes of data.
64 bytes from nrt13s48-in-f14.1e100.net (216.58.197.206): icmp_req=1 ttl=50 time=4.54 ms
64 bytes from nrt13s48-in-f14.1e100.net (216.58.197.206): icmp_req=2 ttl=50 time=5.28 ms
...

・・・端末って楽ですね。慣れれば。

Pocket
LINEで送る

Raspberry Piを有線LANでWindows8に直結してWindows8経由でapt-getできるようにするまでの手順

Pocket
LINEで送る

講義のために慣れぬWindowsを触り、イライラで血圧が1000くらいになりながら分かった手順をまとめます。Windows8以降ならおそらく手順は同じです。タイトルにあるように、下の写真のようにラズパイとノートPCを接続して、ラズパイからインターネットに出られるようにします。(この写真のノートPCはWindowsではありませんが。)

2016-09-06 14.01.24

Raspberry Pi側の準備

有線LANがDHCPで使えるようにします。つまりデフォルトの状態にしておきます。

Windows側の準備

Windowsマシンには無線LANと有線LANが必要です。上の写真のように有線側をラズパイに接続し、無線側でインターネットとやりとりします。

接続の共有設定

Internet Connection Sharing(ICS)という機能らしいので、分からないことがあったらこのキーワードで調べるとよいかと。

まず、下のようにお馴染みのネットワーク接続の一覧画面を出します。お馴染みと言っても、私はここにたどり着くまでにかなり時間を要しました。分からん。ここで一覧にブリッジ接続があったら次に進めないかもしれません。差し支えなければ削除します。

スクリーンショット 2016-09-06 11.30.53

次に、Wi-Fiの方を右クリックし、「プロパティ」を選択します。で、タブに「共有」があることを確認し、選択します。

スクリーンショット 2016-09-06 13.24.23

で、次のように「ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可する」をチェックします。

スクリーンショット 2016-09-06 13.23.19

で、右にある「設定」ボタンを押します。すると次のようにいくつかチェックボックスが出てきますので、HTTPとHTTPSをチェックしておきます。チェックの際、何かボックスが出てきますが、OKを押しておきます。

スクリーンショット 2016-09-06 13.23.38

そして有線LAN同士でラズパイを接続し、ラズパイを再起動します。ちゃんとラズパイが立ち上がれば、Windows側のDHCPでIPアドレスが割り振られます。

IPアドレスの確認

で、次にIPアドレスを調べます。まず、Windowsの有線LANのIPをipconfigで調べます。
スクリーンショット 2016-09-06 14.33.17

192.168.137.1のようです。

で、次にラズパイのIPアドレスを調べますが、これがなぜかひねくれたIPアドレスになってしまい、192.168.137.2,3,…と調べても見つかりませんでした・・・。ということで192.168.137.0をスキャンして調べる必要がありました。私は「Advanced IP Scanner」を使いました。

このツールの画面にはIPアドレスの範囲を指定するテキストボックスがあるので、その中に範囲を指定してスキャンします。

スクリーンショット 2016-09-06 13.20.44

なんで44なんでしょう・・・。

ということで、TeraTermで次のように192.168.137.44に接続し、ラズパイにログインできました。

スクリーンショット 2016-09-06 14.31.10

スクリーンショット 2016-09-06 13.22.38

で、(ちゃんと/etc/resolv.confの設定が正しければ)apt-getできるようです。

スクリーンショット 2016-09-06 14.34.45

おしまい。

ってか、これだけのことを説明するためにこんなにスクリーンショットが必要なのはおかしい。

おかしい。

Pocket
LINEで送る