Mugbot bot

Preview:

Citation preview

× botNomura Akihito

NCT Tech Conference 2016

Mugbot とは

NCT Tech Conference 2016

・ OSS のソーシャルロボット・東京都市大学 小池情報デザイン研究室にて製作・ Raspberry pi 、 Aruduino というマイコンボードを使用・市販の安価な材料で作ることができる

Mugbot

* Mugbot のコンセプト ⇨ http://www.mugbot.com/about-mugbot/

NCT Tech Conference 2016

なにができるの?

NCT Tech Conference 2016

ブラウザで入力 ・スピーカーから発話・目と口の LED を点滅・首のモータが稼働

NCT Tech Conference 2016

作りかた

NCT Tech Conference 2016

まず、材料を購入・レンジマグ ゴセプラ製 1個・なるほどパック 乾物ケース 1個・タミヤ ユニバーサルプレート L   (210mm×160mm)  1枚・タミヤ ユニバーサル金具 4本セット 1個・サーボモータ  Miniservo RB90  2個・プラ板  0.2mm か 0.3mm 厚 1枚 ( 直径 126mm の正円を取れるもの)・白色 砲弾型 超高輝度  10mm   LED  2個・白色自己点滅  5mm   LED  3個・LED光拡散キャップ(5mm) 白 3個・抵抗 タクマン RD25 330Ω  カーボン抵抗  1/4w   300Ω±5%  5個・小型ブレッドボード 1個・長いジャンプワイア オス - オス  11 本・長いジャンプワイア オス - メス   14 本・固いジャンプワイア ・ M3  ネジ  10mm    15 本 ( タミヤ ユニバーサルプレート L  に 18 個付属 )・ M3  ネジ  15mm    12 本( 20mm でも可)(ネジは頭の部分が鍋形のものを使用してください。皿形は使用できません。)・ M3  フランジナット  27 個( M3 は直径 3mm の意)・スピーカー(電源供給式が望ましい) 1個・ micro USB 通信ケーブル 1本(充電専用のものは使用不可なので注意すること)・ Raspberry Pi2 ModelB もしくは Model B+  1個・ Arduino   Leonard 1個・ micro SDHC カード 4GB 以上  Class10 推奨 ( SD カード変換アダプターが必要)

image を使用する場合は4 GB 以上、 NOOBS を使用する場合は8 GB 以上・ 2A 以上の USB-AC アダプター

基本的にネット通販で購入

NCT Tech Conference 2016

組み立て

NCT Tech Conference 2016

組み立て

NCT Tech Conference 2016

組み立て

NCT Tech Conference 2016

組み立て

NCT Tech Conference 2016

組み立て

NCT Tech Conference 2016

組み立て

NCT Tech Conference 2016

ソフトのインストール

https://github.com/mugbot/  

Raspberry pi : html,js,rubyArduino : c++

NCT Tech Conference 2016

完成!

NCT Tech Conference 2016

と思いきや・・

NCT Tech Conference 2016

■ 詳細説明レンジマグ 1個100円ショップのキャンドウで販売していましたが、現在は販売されていません。有限会社ゴセプラ製。クリアカラーは生産中止、国内で販売はしていませんがメーカーは輸出用に赤、青、緑色のレンジマグを生産していて、各色まとまった数ならメーカーから直接購入できます。はやく、再びネットや 100 円ショップで個人で1個から購入できるようになることを切に望みます。

(((( ;゚ Д ゚ )))))))

NCT Tech Conference 2016

何か代わりになりそうなものないかな・・

NCT Tech Conference 2016

IKEA で買ったこれ使ってみよう

NCT Tech Conference 2016

なんか変 ( ; ´Д ` )

NCT Tech Conference 2016

どうしようかな・・

NCT Tech Conference 2016

「 Maker Faire Tokyo にMugbot が出展」

NCT Tech Conference 2016

NCT Tech Conference 2016

NCT Tech Conference 2016

今度こそ、完成!

NCT Tech Conference 2016

ちなみに

NCT Tech Conference 2016

安心してください「スイッチサイエンスからマグボットの部品販売開始!!」

NCT Tech Conference 2016

bot化

NCT Tech Conference 2016

なにをやったか?

NCT Tech Conference 2016

Mugbot の構成HTML

JavaScript

mugbot-serverruby

Arduino・ LED・ Servo motor

Open Jtalk

Raspberry pi

#msg #msg

@-

msg.wav

serial port

websocket

NCT Tech Conference 2016

Mugbot の構成HTML

JavaScript

mugbot-serverruby

Arduino・ LED・ Servo motor

Open Jtalk

Raspberry pi

#msg #msg

@-

msg.wav

serial port

websocket

つまり、「クチ」しかない*「メ」のようなものはあるが、機能はしていない

NCT Tech Conference 2016

ミミがほしー

NCT Tech Conference 2016

HTMLJavaScript

mugbot-serverruby

Arduino・ LED・ Servo motor

Open Jtalk

Raspberry pi

#msg

#msg

@-

msg.wav

serial port

websocket

Julius#text

「ミミ」つくった

#text

NCT Tech Conference 2016

Julius とは

・ OSS の高性能音声認識エンジン・京都大学、名古屋工業大学により研究開発・数万語の文章発生の認識を行う・統計言語モデルである単語 N-gram を用いた認識を行う・発音辞書、言語モデル、音響モデルの組み替え可能http://julius.osdn.jp/index.php

NCT Tech Conference 2016

ジンカクがほしー

NCT Tech Conference 2016

hubot を利用

NCT Tech Conference 2016

hubot とは

・チャット bot の開発フレームワーク・ GitHub 社が開発し MIT ライセンスで公開・ Adapter を切り替えることで様々なチャットツール と連携https://hubot.github.com/

NCT Tech Conference 2016

AWS

hubot

express (node.js FlameWork)・ web server・ routing

robot

scriptsadap

tar

「ジンカク」つくった

NCT Tech Conference 2016

ノウミソがほしー

NCT Tech Conference 2016

Reudy( 人工無脳 ) を利用

NCT Tech Conference 2016

Reudy とは

・ Ruby で作られた人工無脳・東京工業大学 ロボット技術研究会・会話を学習する・あたかも人間の言葉を理解したかのように振舞って 発話する(実際は理解していない)http://magazine.rubyist.net/?0035-Reudy

Reudy1.9

NCT Tech Conference 2016

Reudy はログ型の人工無脳

人工無脳にも色々なタイプがある

Rails ってどう?[過去ログ ]

・・・Ruby ってどう?Ruby サイコー!・・・

”Ruby” → ”Rails”

Rails サイコー!

発話例)

NCT Tech Conference 2016

AWS

Reudy

「ノウミソ」つくった

stdio_reudy.rb

log

mecab・ wiki_dict・ hatena_dict

NCT Tech Conference 2016

ジンカク + ノウミソ

hubot から Reudy をモジュールモードで起動

NCT Tech Conference 2016

全体像

slack

http://[AWS]/mugbot/hear

NCT Tech Conference 2016

ミミ

ジンカク ノウミソ

クチ

NCT Tech Conference 2016

//mugbot からの request を待ち受け robot.router.post "/mugbot/hear", (req, res) -> str = JSON.stringify(req.body) hearing = JSON.parse(str).word console.log hearing

dirpath = ‘/home/ec2-user/Reudy19'

// モジュールモードで Reudy を起動 cmd = "bash -c 'echo #{hearing} | ( cd \"#{dirpath}\"; sudo ruby -W0 stdio_reudy.rb -m -n \"mugmug\" )’"

//Reudy からの結果を返す child_process.exec cmd, (error, stdout, stderr) -> if stdout.length > 0 console.log 'mugbot< '+stdout+'' res.send(stdout)

reudy.coffee

NCT Tech Conference 2016

#reudy(server)へ接続 Net::HTTP.version_1_2 url = URI.parse(‘http://[AWS]’)

#word を reudy(server)へ POST query_hash = {"word" => "#{word}"} post_data = URI.encode_www_form(query_hash)

Net::HTTP.start(url.host, 8080) {|http| response = http.post('/mugbot/hear',post_data) msg = response.body puts msg # t を Arduino に送って口の点滅開始、発話させ、 n を送って点滅終了 sp.putc "t" system(`~/bin/jsay.sh #{msg}`) sp.putc "n" }

mug_rdy.rb

NCT Tech Conference 2016

さらにちょっと工夫

NCT Tech Conference 2016

ログに名言を入れてみた

NCT Tech Conference 2016

実演

NCT Tech Conference 2016

おまけ

NCT Tech Conference 2016

天気

NCT Tech Conference 2016

Web API

Weather Hacks

http json天気

「明日の天気は〜、最高気温は〜、最低気温は〜」

NCT Tech Conference 2016

ラジオ

NCT Tech Conference 2016

Web API

http streamingラジオ

NCT Tech Conference 2016

Withings

NCT Tech Conference 2016

Withings

Withings Activite Pop

smart watch

アクティビティトラッキング スイミングトラッキング サイレントアラーム睡眠トラッキング 充電不要 Bluetooth 4.0

NCT Tech Conference 2016

Web API

https/ jsonOAuth歩数

睡眠時間

「今日の歩数は〜」「睡眠時間は〜」

NCT Tech Conference 2016

R2R

NCT Tech Conference 2016

Pepper API

Qimessagingjavascript

pepper

NCT Tech Conference 2016

さいごに

NCT Tech Conference 2016

R2R2N

NCT Tech Conference 2016

END

NCT Tech Conference 2016

*参考にさせて頂いたサイト・ http://www.mugbot.com/・ http://qiita.com/Ets/items/4a0466843c8d98d74295・ http://qiita.com/hkusu/items/3e3695450f8a4f9389b3・ http://ota42y.com/blog/2014/08/29/hubot-post-server/・ http://start-now.link/100/archives/2334・ http://hyottokoaloha.hatenablog.com/entry/2015/07/03/131305・ http://karaage.hatenadiary.jp/entry/2015/08/24/073000・ http://qiita.com/ysk_1031/items/bca3f6defbce100d6d78・ and more