More Related Content
Similar to ロボットシステム学2015年第14回
Similar to ロボットシステム学2015年第14回 (20)
More from Ryuichi Ueda (20)
ロボットシステム学2015年第14回
- 2. 「ロボット」
• 人によって異なるものを想像
– メカ, 人工知能
– 学科外の人にどんな説明をしますか?
• 全く違う想像をする人も
– http://www.itmedia.co.jp/news/articles/1510/06/news08
3.html
– これも学科外の人にどんな説明をしますか?
– そもそも知ってましたか?
2016年1月20日 ロボットシステム学 2
- 8. 実際のシステム
• 例: AIBO(日記を書いて飼い主が閲覧)
• http://togetter.com/li/792399
• 仕組み
– センサーの値を解釈しておく
– HTMLファイルを作っておく
– ブラウザからAIBOにアクセスがあったら
AIBOはWebサーバを通じてHTMLファイルを送る
2016年1月20日 ロボットシステム学 8
- 10. HTTP
• 基本は人も読める文字列
• リクエスト/レスポンス、ヘッダ、ボディー
• 例: クライアント→サーバ
– リクエスト行
• GET(データくれ)
• /misc/sample.txt(ファイル)
• HTTP/1.0(どのHTTPか)
– ヘッダ・ボディー
• この場合は何もない
2016年1月20日 ロボットシステム学 10
uedamb:~ ueda$ telnet test.usptomo.com 80
Trying 133.242.187.106...
Connected to test.usptomo.com.
Escape character is '^]'.
GET /misc/sample.txt HTTP/1.0
- 11. • 例: サーバ→クライアント
– レスポンス行
• ステータス番号、補足
– ヘッダ
• 項目: 内容
– ボディー
• ファイルの中身
• ブラウザはHTML
や画像をもらって
描画している
2016年1月20日 ロボットシステム学 11
HTTP/1.1 200 OK
Date: Sat, 16 Jan 2016 13:56:50 GMT
Server: Apache/2.4.7 (Ubuntu)
Last-Modified: Sat, 16 Jan 2016 13:52:25 GMT
ETag: "10-52973d470cfc2"
Accept-Ranges: bytes
Content-Length: 16
Connection: close
Content-Type: text/plain
あいうえお
- 13. 実例: 日経Linux 2016年2月号
• 次のような例(ビデオ)
– ブラウザにリモコンを表示
– 矢印を押すとロボットが動く
– 「撮影」を押すとロボットのカメラからブラウザに画像
2016年1月20日 ロボットシステム学 13
PC(ウェブブラウザ)
Raspberry Pi
(Webサーバロボットの
動作プログラムが動作)
・ブラウザで表示するGUI
・画像
操作
- 16. webサーバ側の動き
• リクエストのあったプログラムが動く
– 普通のプログラムと同じ
– ただしwebサーバが起動するので端末から
立ち上げるものとは少し異なるのでややこしい
• パーミッション
• ライブラリのパス等の設定
• コード(前ページのJavaScriptから呼ばれている)
– https://github.com/ryuichiueda/NikkeiRaspiMouse/blob/mast
er/201602/web/control.py
2016年1月20日 ロボットシステム学 16
- 17. データの受け渡し
• GETとPOST
• GET
– クライアントはURLの後ろに?をつけて渡す
– Webサーバが受け取ってQUERY_STRINGという環境変数へ
– Webサーバから立ち上がったプログラムから環境変数を読む
• POST
– Webサーバ越しに標準入出力を使う
– Webサーバから立ち上がったプログラムからは、
普通に標準入力を読むように使う
2016年1月20日 ロボットシステム学 17
注意: 常に変なデータが送られてくるかもしれないので
インターネット上で試す場合にはそれ用の勉強を