Slide 1

Slide 1 text

GoPiGo2で遊んでみた

Slide 2

Slide 2 text

Who am i 森 和之 @mainyaa 株式会社トップゲート ボドゲ好き猫エンジニア

Slide 3

Slide 3 text

GoPiGo2

Slide 4

Slide 4 text

GoPiGo2とは ● RaspberryPIを積んだロボットカー ● Dexter Industries社製 ○ LEGOマインドストームのキットを作ってる ● Kickstarter発

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

GoPiGo2の良い所 ● 20分で作れる ● センサーがキットになっていて、カスタマイズ出来る ● 電子工作が初めてでも作れるぐらい簡単 ● LEGOみたいにセンサーを組み合わせられる

Slide 7

Slide 7 text

GoPiGo2の良い所2 ● ソースコードがオープンソースで公開されている(GPL) ● ライブラリが豊富 ○ C、C#、Java、NodeJS、Python、Scratch ● https://github.com/DexterInd/GoPiGo/ ● プログラマブルなロボットカー

Slide 8

Slide 8 text

購入ガイド ● RaspberryPIすでに持っている人 ○ BaseKit+何かのセンサーで十分 ○ $99 ● これからRaspberryPIを始める人 ○ StarterKitがおすすめ ○ $299

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

GoPiGo2の良い所3 ● Exampleが豊富 ○ https://github.com/DexterInd/GoPiGo/tree/master/Software/Python/Ex amples ● PS3コントローラーで操作できる(要bluetooth) ● 超音波センサーで2m先まで物体があるか検知できる ● エンコーダーホイールがあるため、cm単位でモーターを制 御できる

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

エンコーダー ホイール タイヤと同じ軸に取り付ける タイヤがどれだけ回転したのかを パルスで受け取る Photo: ROBOTC http://www.robotc.net/wikiarchive/Tutorials/Arduino_Projects/Mobile_Robotics/BoeBot/What_is_an_Encoder

Slide 14

Slide 14 text

エンコーダーホイール ● エンコーダーの穴は合計64個なので、360 / 64で、5 deg / pulse ● ホイールの半径は3.25cm ● DER (Degree Per Ratio)がわかれば、タイヤをn cm進むのに必要なパルス数 が求められる

Slide 15

Slide 15 text

エンコーダーホイール ● 例:90度右を向く def right_deg(degree): pulse= int(degree / 5) # 5 degree/pulse enc_tgt(0, 1, pulse) right()

Slide 16

Slide 16 text

どこでもRaspberryPI開発したい

Slide 17

Slide 17 text

どこでもRaspberryPI開発したい ● 家に置いてあるRaspberryPIをノマドしつつ開発する ○ wifiを自動再接続するようにする ○ SSH Tunnelを使う ○ wifiは11acを使う ●

Slide 18

Slide 18 text

どこでもRaspberryPI開発したい ● wifiを自動再接続するようにする ○ $ sudo apt-get install wicd ○ $ wicd-curses

Slide 19

Slide 19 text

どこでもRaspberryPI開発したい ● SSH Tunnelを使う ○ MacもRPIも異なるプライベートネットワークで、グローバルIPがない ○ GCPやAWS上にSSH Tunnel用の中継サーバーを建てちゃう ○ 世界中どこからでもRPIにSSH接続できる

Slide 20

Slide 20 text

Google Cloud Platform RPI(母艦) Macbook 中継サーバー private network private network

Slide 21

Slide 21 text

どこでもRaspberryPI開発したい - SSH Tunnelを使う ● $ sudo apt-get install autossh ● $ git clone https://github.com/mainyaa/RaspberryPi-Mothership ● $ cd ssh-tunnel-example ● $ vim usr/bin/ssh_tunnel ○ [ssh_tunnel]をglobalIPに書き換え

Slide 22

Slide 22 text

どこでもRaspberryPI開発したい - SSH Tunnelを使う ● sudo apt-get install -y autossh ● git clone https://github.com/mainyaa/RaspberryPi-Mothership.git ● sudo cp ./RaspberryPi-Mothership/init.d/ssh_tunnel /etc/init.d/ ● sudo cp ./RaspberryPi-Mothership/sbin/ssh_tunnel /usr/sbin/ ● sudo insserv ssh_tunnel ● sudo reboot ○ これで、RPIが常に中継サーバーにSSH接続している 状態になった

Slide 23

Slide 23 text

どこでもRaspberryPI開発したい - SSH Tunnelを使う ● RPIに接続する ○ ssh -o 'ProxyCommand ssh ssh-tunnel nc %h %p' -p 20022 pi@localhost

Slide 24

Slide 24 text

Google Cloud Platform RPI(母艦) Macbook 中継サーバー private network private network Port20022 Port22

Slide 25

Slide 25 text

どこでもRaspberryPI開発したい ● RaspberryPiがどんなネットワークにいようと、raspiのIPアドレスを調べることな くssh接続できるようにする ○ http://qiita.com/mainyaa/items/f10d15a7d2cdddd7dfbf

Slide 26

Slide 26 text

どこでもRaspberryPI開発したい ● wifiは11acを使う ○ これは間に合いませんでした>< ○ ドライバのビルドのためにカーネルヘッダーを用意したり、ドライバのソース にパッチを当てたり、大変なのに認識してくれない>< ○ 成功している人いますか?

Slide 27

Slide 27 text

GoPiGo2で脳○メーカー作ってみた

Slide 28

Slide 28 text

GoPiGo2で脳○メーカー作ってみた ● Cloud Vision APIすごいよ ● # LABEL_DETECTION カテゴリの検出 ● # LANDMARK_DETECTION 観光名所などの場所名 ● # LOGO_DETECTION ロゴの検出 ● # TEXT_DETECTION OCR、文字の検出 ● # SAFE_SEARCH_DETECTION 画像が有害な内容を含んでいるかを検出 ● # IMAGE_PROPERTIES 画像に関する色データを検出 ● # FACE_DETECTION 顔検出 ●

Slide 29

Slide 29 text

GoPiGo2で脳○メーカー作ってみた ● Cloud Vision APIすごいよ ○ 顔検出ができる ■ 顔の座標特定 ■ 笑顔、怒り、悲しみ、驚きを判定

Slide 30

Slide 30 text

GoPiGo2で脳○メーカー作ってみた ● Cloud Vision APIすごいよ ○ 物体検出ができる ○ カメラに写っている物体を識別 ■ gadget, cat, human, room, floor, clothing, book

Slide 31

Slide 31 text

GoPiGo2で脳○メーカー作ってみた ● Cloud Vision APIすごいよ ○ 課金はリクエスト1,000回=1unitで換算 ○ 月1unitまで無料 ○ 以降、月1unitごとに$5 ■ https://cloud.google.com/vision/docs/pricing

Slide 32

Slide 32 text

GoPiGo2で脳○メーカー作ってみた ● Cloud Vision APIの凄さを伝えるべくRasPi botとビデオを作った話 ○ http://qiita.com/kazunori279/items/768c7fdf96cdf45a9d16 ● kazunoriさんに作成とOSS化の許可を得て、フルスクラッチでvBot君を 作った ● OSSで公開予定

Slide 33

Slide 33 text

GoPiGo2で脳○メーカー作ってみた ● 僕のvBot君の機能 ○ 顔を検知できなかったら認識できた物体をしゃべるよ ○ 笑顔を認識すると寄ってくるよ ○ 笑顔から笑顔度を判定して◯内メーカー風に画像を出し てくれるよ

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

デモ

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

Thanks