Upgrade to Pro — share decks privately, control downloads, hide ads and more …

あいぼっと紹介(2017)

 あいぼっと紹介(2017)

おおがきロボット×AIハッカソン 2017(提供API紹介)

C7b3f79964c658ce7d0c82e66942e654?s=128

ISHIGO Yusuke

October 16, 2017
Tweet

Transcript

  1. おおがきロボット×AIハッカソン by MashupAwards 2017

  2. None
  3. ロボットとは自分とってどんな存在だと嬉しい?

  4. 自分の次に自分のことを知っている存在 スマートフォン

  5. ϩϘοτͱਓ޻஌ೳͰͪΐͬͱະདྷͷίϛϡχέʔγϣϯΛ։ൃ͠Α͏

  6. ϓϩάϥϚ σβΠφ ϋʔυ΢ΣΞ ΤϯδχΞ

  7. あいぼっとの仕組み あいぼっと SDK for iOS(Swift) koshian(Konashi) Bluetooth LE

  8. Xcode Macで使うことができるプログラミング環境

  9. あいぼっとに話しかける ダブルタップ → 話す → タップ

  10. OSCコマンド送信機能 iPhoneのIPアドレスを入力する あいぼっとに話しかけたい言葉

  11. あいぼっとにしゃべらせてみる override func viewDidAppear(_ animated: Bool) { self.say(str: “こんにちは、あいぼっとです”, comp:

    {}) } ViewController.swift
  12. あいぼっとに文字列を送る override func viewDidAppear(_ animated: Bool) { self.talk(message: “おはよう”) }

    ViewController.swift 音声認識したのと同じように、あいぼっとに文字を伝えることができる
  13. あいぼっとに新しい表情を追加する self.addFaceType(images: 画像配列, type: 表情名) 画像に名前を付けて、表情として登録できる self.changeFaceType(type: 表情名) 表情名を指定して、表情を変えることができる 新しい表情

  14. あいぼっとに新しい表情を追加する public override func viewDidLoad() { self.addFaceType(images: [UIImage(named: "dislikekao-1")!], type:

    "dislike") let gesture = UISwipeGestureRecognizer(target: self, action: #selector(self.swipeAction(sender:))) gesture.direction = .left self.view.addGestureRecognizer(gesture) } func swipeAction(sender:AnyObject) { self.changeFaceType(type: "dislike") } ViewController.swift
  15. 腕を動かす override func viewDidAppear(_ animated: Bool) { self.moveArm(left: 0.5, right:

    0.5) } ViewController.swift 位置(0.0(下)〜1.0(上))を指定して腕を動かす override func viewDidAppear(_ animated: Bool) { self.moveArm(left: 0.5, right: 0.5) .moveArm(left: 1.0, right: 1.0 delay: 1.0) .moveArm(left: 0.0, right: 0.0 delay: 2.0) } ViewController.swift 連続して腕を動かす
  16. 機能を追加する(BotFeature)① BotFeatureという単位で、機能を追加する 音楽 100 50 10 200 優先順位 雑談機能 機能B

    機能A 機能C 1.優先順位順に実行される 2.次の機能につなげるかどうかを選択できる BotFeatureリスト 音楽 音楽 音楽 音楽
  17. 機能を追加する(BotFeature)② import iBot class Number : BotFeature { override func

    work(str: String) -> Bool { if (str != “数字”) { return true; } let random = arc4random() % 10 self.say(str: random.description, comp: {}) } return false } Number.swift override func viewDidLoad() { let number = Number(priority: 50, name:”ランダム数字”) self.featureController.add(feature: number) } ViewController.swift
  18. GETリクエストモジュール override func viewDidAppear(_ animated: Bool) { let client =

    URLSessionGetClient() client.get(url: “https://www.cotogoto.ai/webapi/noby.json”, queryItems: [URLQueryItem(name: “appkey”, value:”〜”, URLQueryItem(name: “text”, value:”おみくじ引きたい”))]) {(data) in if let data = data as? Dictionary { if let res = data[“text”] as? String { self.say(str: res, comp: {}) } } } } ViewController.swift NOBY APIと連携する
  19. None