狠狠撸

狠狠撸Share a Scribd company logo
using Softbank.Pepper;
// 2016/06/17
// Baku
自己紹介
HN : 獏(ばく)
仕事: ロボット(産業用)
主な守備範囲:
- Windows
- .NETとPythonが好き
Pepperの守備範囲:
- ライブラリにちょっと詳しい
- モーションコントロール
- テレイグ(Hug Project)に心当たりがある
Twitter: @baku_dreameater
Blog : http://www.baku-dreameater.net
GitHub : https://github.com/malaybaku
今日喋ること
Pepperとモーションコントロール
PepperとUnityとテレイグジスタンス
Pepperの.NET/Unity用ラッパー
今日喋ること
Pepperとモーションコントロール
PepperとUnityとテレイグジスタンス
Pepperの.NET/Unity用ラッパー
Pepperとモーションコントロール
結果的に.NET/Unityに頼るとラクだった事例(3点)
Kinect
Perception Neuron
QUMARION
http://www.nicovideo.jp/watch/sm26960647
http://www.nicovideo.jp/watch/sm27827397
https://www.youtube.com/watch?v=92nqvGXFTI8
(6:00頃から20秒だけ)
なぜUnity/.NETなのか
Kinect
Perception Neuron
QUMARION
MSが主にC#(.NET)向けのSDKやサンプル公開
提供元(Noitom)がUnityで使いやすいように
パッケージとか公開
Win PCのみ対応 + 配布SDKはC言語用
→書きにくいので.NETラッパー作成
Unity or Win PCを想定するデバイスが多いから。
何でもできるわけじゃないよ
Pepperのモーションコントロールの限界
体が硬い :
バランス :
腕が短い :
ヒジが90度までしか曲がらない
後ろ手もわりと苦手
肩から手のひらまで40cm程度
腰を激しく前後させるとコケる
今日喋ること
Pepperとモーションコントロール
PepperとUnityとテレイグジスタンス
Pepperの.NET/Unity用ラッパー
HUG Project
Pepperを使ったテレイグジスタンス
Mocap(Kinect)
音声IO
HMD(Oculus) Pepper
外付け
カメラ
P2P(VPN)
ユーザ 远隔地
なぜHUG ProjectでUnityか
デバイスを色々試しやすかったため。
- 慶應大のラボで作ってるカメラ+動画エンコーダ
- FOVE
- Oculus
- Kinect
- Leap Motion
- (コントローラ)
- (Perception Neuron)
補足: 開発期間は(当然)短い
開発者はウェブ系の方なのでなるべくラクに!
今日喋ること
Pepperとモーションコントロール
PepperとUnityとテレイグジスタンス
Pepperの.NET/Unity用ラッパー
※ここから細かい話題が増えるので飛ばしながら進めます
調べる: PepperのAPI構成を理解する
ポイントは2つ
? 通信系とロボ機能(モーション等)は完全分離
? 通信だけラップしてロボ機能をカバー可能
? クライアントは2通り作れる
- qi (Pepper固有の通信ライブラリ)
- socket.io
2種類のリモート呼び出し
PCとかスマートフォンとかPepper
ロボ機能
qi
socket.io
↑サーバー
(Python
Tornado)
ふだん書く所
コード
コード
qi
socket.io
↑こっちは
クライアント
ラッパー
ラッパー
qi VS socket.io
qi
○ 資料が豊富
○ ちょっと速い
○ 全機能使える
△ ライブラリが大きい
× 原則PCのみ対応
socket.io
△ 資料はほどほど
△ ちょっと遅い
× 一部機能が利用不可
○ ライブラリが軽量
○ 多くの環境で動作
(ブラウザ+α)
socket.io
JavaScript
qi
C++(コア)
Python
Java
C言語
Haskell(非公式)
対応言語別に見ると…?
※タブレット連携を
サポートするための
苦肉の策だった?
C#はどっち側につくべき?
基本:どっちもアリ。
qi : 書けばいい
socket.io : ライブラリ探すだけ(事例あり)
しかし個人的な都合として、
socket.ioの機能制限が致命的だったため
qiをラップする方針を採用。
-> ひとまずPCのみサポートする体制
今更だけどqiって何者?
一言で: 汎用通信フレームワーク
非同期処理をサポート(Promise/Future)
ローカル/リモート呼び出しを同質化
(※C++/Python向け)
オープンソース (GitHub: Aldebaran/libqi)
https://github.com/aldebaran/libqi
どこを作るのか
PCとかスマートフォンとかPepper
ロボ機能
qi
socket.io
↑サーバー
(Python
Tornado)
ふだん書く所
コード
コード
qi
socket.io
↑こっちは
クライアント
ラッパー
ラッパー
ここ↓
色々作る: 1ヶ月ほどかかった
C言語APIをP/Invoke
荒ぶるIntPtrと戦う
ロボAPIを
C#クラス定義に変換
配布体制とか整備
T4エンジン
(C#用のテンプレ作成エンジン)
を使いつつメタプロ
作ったC#ラッパーの特徴
信頼性
補完あり
- 実装が割とストレートなのでご安心
- バイナリデータも直に送れる
- PepperのAPIからC#クラス定義を自動生成
- (英語だけど)XMLドキュメントコメントも読める
ビルド済配布
- Unity Editor : Windows(32bit Editor)かMac
- 配布版 : 現状ではPCのみ(Win/Mac/Linux)
環境の制限
C#6.0で実装しちゃった (?>ω?`)☆
ちょっとしたバグが直しづらい
この辺参照: http://www.baku-dreameater.net/archives/10791
せっかくなので
何か動かしてみよう!
パッと思いつく
Unity x Pepperのデモ
Pepper越しに
音を聞く
Hello World Lチカ
皆大好き
カメラで
撮影する
ICTっぽい
趣味の世界
Humanoid
の真似
テクいやつ
スピーカー
モード
高FPSで
カメラを使う
買ってきた
デバイスと
くっつける
パッと思いつく
Unity x Pepperのデモ
Pepper越しに
音を聞く
Hello World
買ってきた
デバイスと
くっつける
Lチカ
皆大好き
カメラで
撮影する
ICTっぽい
趣味の世界
Humanoid
の真似
テクいやつ
スピーカー
モード
高FPSで
カメラを使う
まとめ
?Unity越しだとPepperを物理的に動かしやすい
?デバイスをかき集められるので色々出来る
?C#ラッパーの導入は適宜ご検討ください
?ラッパー使うとChoregrapheから出来る処理の多くが
Unity C#でもできます
ラッパーの紹介先(再掲) : http://www.baku-dreameater.net/archives/10791
補足: 今回触れてないネタ
?音声まわり
?イベント駆動の話
?VPNでサクッと遠隔操作する方法

More Related Content

Libqi unityの紹介など