社内が訊く「うごく、しゃべる、並列化する。WatchエネルギーIoTカデーニャ社内が訊く「うごく、しゃべる、並列化する。08:30タチコマをインストール今日は「うごく、しゃべる、並列化する。1/8タチコマ」について話を訊かせてもらいます。PROJECT」から生まれ、Cerevoとしては「作中のタチコマを現実世界に再現する」という意気込みと使命感でつくられてきたわけですが、まず最初に、みなさんが担当されたことを含めて自己紹介をお願いします。タチコマではプロダクトマネージャー(PM)を担当しました。タチコマのアプリを担当した水引です。中村:サーバーの開発を担当した中村です。丸山:電気設計を担当した丸山です。タチコマのメカデザインを担当した石井です。海田:このほか本日は欠席ですが、組み込みソフトの開発を杉本という者が担当しています。タチコマの開発は主にこの6人で行ないました(※当日欠席していた杉本さんには別途お話を伺い、インタビュー内に追記しています)。――タチコマを実際に開発する、という話があったとき、最初はどんなことからはじまったのでしょうか。海田:開発チームのメンバーは、そもそもみんな攻殻機動隊という作品が好きだったんです。「タチコマがどんなものなのか」という情報のインストールはしなくてすみました。いっても1名だけ、攻殻機動隊をまったく知らないままスタートしたメンバーもいましたが(笑)。プロジェクトは「タチコマを再現する」という以外、具体的な仕様はあまり決まっていなかったんです。チームで集まり、「タチコマってこんなキャラだよね」ということをチーム内で共有するところから始めました。――今の仕様はどのように決まっていったのですか。海田:(Cerevo代表の)岩佐さんからは「すごく動かしたい!」という要望があったんです。それと僕が攻殻機動隊が大好きということもあって、できるだけタチコマっぽさを出すためにしゃべらせたくて。基本要望はこの「動く」「しゃべる」の2つで、あとはそれをどこまで実現できるかという可能性をみんなで探っていきました。水引:目標はアニメに出てくるタチコマそのものを作りたい、なんですが、それを現実の技術に落とし込もうとしたときに、どこまで再現するかが鍵でした。正直なところ、僕が最初にイメージしていたのはスマートフォンから操作できるラジコンみたいなものでした。(声優の)玉川さんの声を収録してボタンで再生する、スマートフォンからリモコン操作ででタイヤを動かす、くらいまでは技術的にもいけるだろう、音声を認識してしゃべるというところまではやらないんだろう、と。いうのも、音声を認識して対話する仕組みは、ぐっと開発のハードルが上がるんです。PMの海田さんが「音声認識はどうしてもやりたい!」とこだわりまして。――音声認識や音声合成などのサーバー周りは中村さんの担当ですが、この話を聞いたときどう思いました?中村:実は僕がこのプロジェクトに参加することになった時には、すでに音声認識はやる前提だったんです。流れとしては逆で、音声認識を搭載することになってから担当として招集された、という感じですね。――タチコマと会話できるというコンセプトはとてもわかりやすいのですが、並列化についてはかなり特殊な機能ですよね。並列化の仕様はどのような流れで決まったのでしょう。※攻殻機動隊の世界観では、タチコマのAIはすべて共通になっており、1台のタチコマが得た知識は他のタチコマにも「並列化」される。タチコマでは、画像認識で認識した物体に対して教えた情報がクラウドを通じて他のタチコマにも共有される、という仕組みで並列化を再現した海田:並列化が具体的に決まったのは開発の中盤くらいでしたね。僕が「並列化やりたい!」とはずっと言ってたのですが、具体的にどうやるかは決まっていませんでした。水引:「知識の共有をやりたい」という話はあって、ではなにを共有すればいいのかという議論をしましたね。その中で「画像を解析して知識を共有する」という今の仕組みが生まれました。海田:タチコマの画像認識にはマイクロソフトのサービスを使っているのですが、この精度なら画像を使ったタギングもある程度の精度が保てるのでは、という話で、並列化の搭載が決まりましたね。正直なところ、開発の進捗が序盤は思わしくなかったので、並列化は諦めることになるんじゃないかという不安もあったのですが、無事に搭載できてよかったです。トルクを稼ぐ――仕様がある程度固まってから、実際の開発はどのようにスタートしたのでしょうか。海田:一番最初は4本足の蜘蛛みたいな試作を作りました。4歩足のロボット自体は世の中にあることはあるんですが、タチコマの場合、足が左右対称ではあるけれど前後は非対称なので、重心をとるのが難しいんです。杉本:脚の位置をどうするかが難しかったですね。タチコマはポッドがあるのでどうしても後ろ側に重心がかかるため、脚の位置もできるだけ後ろ側にする必要があるのですが、あまり後ろにしすぎると今度は脚が動いたときにポッドにぶつかってしまうんです。タチコマはポッドが横に動く仕組みになっているんですが、このポッドが横に動いたときもまた重心がずれてしまう。デザインが崩れないギリギリのところまで脚を後ろに配置しつつ、脚が動いたときにポッドにぶつからない、それでいて前後に重量をできるだけ均等にして重心のバランスが取れるような物理シミュレーションをコンピュータで何度も繰り返しました。海田:あと、モーター周りの選定には結構時間かかりましたね。――それはどうして?丸山:量産に使えそうな使いやすいもので、タチコマが動くだけのトルクを満たすだけのモーターがなかなかなかったんです。スペック値だけで見るとまったくなかったですね。海田:我々としても開発を進めながらだったので、具体的にどれくらいのトルクが必要かがはっきりとは把握できていなかったので、トルクの選定も探り探りでした。――結局どうやって解決したんでしょう。水引:組み込み担当の杉本さんがコンピュータ上で「どのくらいのトルクがかかるか?」というシミュレーションを行ってくれました。そのシミュレーションが出るたびに、条件を満たすモーターを探して試して......、の繰り返しですね。石井:あと、モーターメーカーに直接問い合わせをして、一番強いモーターを取り寄せました。タチコマのサイズに収まるようにというサイズ制限の中でフルパワーのモーターを選定させてもらいました。最後はそれでも足りなくて、サーボモーターの外に減速ギアーを入れることでトルクを稼いでいるんです。「これはタチコマだ」と思い込む――ハードを開発している間、アプリやサーバー担当はどんなことをしていたんでしょうか。水引:ハードと並行してアプリも開発を進めていました。ソフトウェアを組み込める基板は初期の頃からあったので、ボディのない基板むき出しの状態なんだけど、自分の中では「これは動いているタチコマなんだ」ということにして、アプリの通信部分を先に作っていきました。中村:サーバー側は、最初に音声合成のライブラリーや音声認識APIの評価から始めました。使っていて、Googleの音声認識を使ってテキスト化した後に、Jetrunテクノロジの「TrueTALK」でタチコマからの返事のテキストを生成し、Cerevoのサーバーから収録済みの音声またはAITalkを使った合成音声で返事する仕組みです。並列化に使っている画像認識はマイクロソフトの技術と、全部で4つの技術を組み合わせてタチコマを実現しています。――それぞれの技術はどういった基準で選ばれたのでしょうか。海田:Googleは非常に精度が高くてすぐに使えたことですね。採用を決めた後ですが、今年の5月にAPIが正式にリリースされたので、安心して使うことができました。中村:JetrunはNTTドコモの「しゃべってコンシェル」などで使われていたことからコンタクトを取りました。画像認識は他のサービスに加えて期待している認識結果が返ってきやすかったことが決め手ですね。猫を見せた場合、他のエンジンでは「哺乳類」「ペット」と返ってきたのに対して、マイクロソフトの場合はきちんと「猫」と返ってきたり、という点です。マイクロソフトは有名人の認識もできる、というところもポイントでした。水引:AITalkはアニメキャラクターなど、独特の抑揚を持つ音声合成エンジンを多く手がけていた、というのが採用の決め手でしたね。最初は1/10?――タチコマの最終的なデザインはいつ頃決まったんですか?石井:外観も開発当初から平行して進めていました。デザインはすでにあるので、いかに決められた筐体のサイズにモーターやギアーが入るかという検討をひたすらやっていました。実は、タチコマのサイズは初期の頃1/10だったんです。開発の途中で内部の仕様が変わり、1/10サイズでは部品が入りきらない、ということで1/8サイズになりました。1年以上前のニコニコ超会議で初めてタチコマの試作機を披露したときは、試作機自体は1/10サイズだったんですよ。1/10サイズの試作機。手や脚の大きさが1/8サイズよりも細い誰でもすぐに使えるように――開発を進めていく中で、苦労したこと、こだわったことを教えてください。アプリ担当の水引さんからお願いします。水引:思ったよりやることが多かったことですね。技術的に難易度が高いというよりも、最初のセットアップや動作テストなど、とにかくやることが多かったので。操作はシンプルで簡単に使えることを実現するために、裏では色々と苦労しています。Cerevoの製品は前例がないものが多いから、前に作ったものからコピーして持ってくる、というのも難しくて、ほぼ1から作っています。そのあたりをサーバーの中村さんや組み込みの杉本さんとも細かく調整しながら、試行錯誤を繰り返しました。――水引さんはドミネーターのアプリも担当していましたが、あまり共通する部分は無かったですか?水引:そうですね、ドミネーターはスマートフォンと直接つながるんですが、タチコマはサーバーに接続するという違いがあって、仕組みも違うんです。アプリのベースとしては近いものを使ってはいるけれど、やることはドミネーターよりも多かったですね。――水引さんがこだわった部分はありますか。水引:初期セットアップですね。IoT製品は設定が大変なものも多いのですが、箱を開けてすぐに楽しんでもらえるようにしたくて、できるだけ設定のステップを少なく、間違えが無いようなデザインというのを海田さんと議論しました。海田:アプリのUI自体は最初石井さんが作ったんです。それを引き継ぐ形でデザインを僕が考え、水引さんと相談しながらアプリに反映していきました。石井:実はタチコマを知らなかったというのは僕なんですが(笑)、ゲームが好きだったので、タチコマにはゲームみたいなアプリが合うんじゃないかなって考えました。タチコマはラジコンで操作できたりと、ゲームっぽいところがありますよね。実際のゲームなんかも参考にしながら今のUIを考えて、そこに海田さんが攻殻機動隊の世界観を合わせこんでいった、という流れです。――具体的に参考にしたゲームのタイトルってあるんでしょうか?石井:ゲームではないんですけど、プレイステーションのホーム画面ですね。横にくるくる回っていく画面を見て、それを参考にして考えました。アプリのメニュー画面うまく返事すること――中村さんがサーバーで苦労したところはどこでしょう。中村:システム全体としては、コアな技術は外部のものを使っているので難しくない、というと語弊はありますが、そこまでハードルは高くありませんでした。大変なのは、それぞれを組み合わせて、対話をどれだけうまく返しているように見せるかというところですね。タチコマがしゃべる言葉は一般的ではない文章も多いんです。攻殻機動隊の用語とかはそのままではイントネーションがおかしいので、全部自分の耳で聞いて調整しました。水引:対話やリアクションの速度なども中村さんが調整していましたよね。話しかけられてからの返答をできるだけ早くできるよう試行錯誤しました。応答速度はWi-Fiの速度だったり、音声認識などで使っている外部サービスとの通信状況次第で変わってしまうので、こちらでは改善できない部分もあるのですが、タチコマから受け取った音声データを順次音声認識APIへ送るといった工夫で、できるだけCerevo側のロスを少なくして無駄な待ち時間が無いように処理しています。――3月の発表以降、イベントや展示会などでお客さんに実際に体験してもらいましたが、実際のお客さんの反応を見て、想定と違ったところはありますか?中村:思っていなかった会話としては、なぜかみんなタチコマに名前を聞くんです。「それはみんな知ってるでしょ」と思ってたんですけど(笑)。今は名前を聞かれたら「はじめまして、タチコマです」と応答するようにしました。タチコマほかに想定していなかった質問としてはタチコマの年齢を聞かれたことですね。「踊って」というリクエストをしていたお客さんも多かったです。あと、話しかけることがなくて「何かお話しして」という質問があったのも想定外でした。今はそれぞれ答えを用意しているので、お持ちの方はぜひ試してみてください。リリース後も応答パターンは増やしているので、発売後も少しずつ賢くなっているんですよ。――他にもこだわった部分はありますか?中村:わかりにくい部分ですが、発音の調整は結構がんばりました。音声合成でも違和感がないよう、開発当初より滑らかに話すようになったと思います。――確かにイベントでデモをしていても、昔よりなめらかになったなと感じますね。中村:あとは開発側ですが、Cerevoで使っているチャットワークとタチコマのAIをつなげて、チャットワークからタチコマのAIに話しかけられるようにしたのがよかったですね。何を聞いたらどう答えてくれるのか、という対話のテストや改善にとても役に立ちました。――丸山さんはいかがでしょうか。丸山:この企画を聞いたときから「苦労するだろうな」とおもって思ってましたが、結局最後まで苦労しました(笑)。モーターが異常な数で、最終的に21個のモーターを使っています。市販されているロボットでここまでモーターが入っているのは珍しいんじゃないでしょうか。学術的なロボットではモーターをたくさん使っているものもあるんですが、それをそのまま民生品に落とし込むのが大変でした。――どこのモーターが一番大変でした?足元まわりのモーターです。タチコマは自立している状態なので常に負荷がかかってしまい、電源の消費が激しいんです。いえ本体に搭載できるバッテリーの容量にも限りがあるし、そもそも歩行の兼ね合いや重心バランスも搭載するバッテリーによって変わります。バッテリーは最初のうちポッドの中に入るはずだったんですが、ポッドはできるだけ軽くする、ということもあって、最終的にはバッテリーは足1本ずつ、合計4つ入っている構造にしました。4本の脚それぞれにバッテリーが入っている――4つもバッテリーが入っているのはかなり大変そうですね。丸山:足にバッテリーが入ったのはいい面も悪い面もあるんですが、回路的には相当面倒です。それぞれの足ごとに独立した充電回路を搭載しなければいけないので。歩くという面で考えると、足にバッテリーが入ることで重心が安定して、重心の移動もより大きくできるようになりました。その点ではなかなか面白い構造になったと思います。実は違う大きさ――メカデザインで苦労したところはありますか。石井:苦労はずっとなんですけど(笑)、中の構造ですね。バッテリーは1/10サイズのときはボディの真ん中に搭載していたのですが、丸山さんの言うとおり紆余曲折あって足に入ることになりました。単純にバッテリーを入れるだけではだめで、モーターや電気部品のハーネスの引き回しとといった内部構造も大幅に変わるんです。そのあたりはかなり細かい調整で、基板の構造を丸山さんとこまめに相談しないとできなかったですね。モーターを制御する基板をどこに配置するのかまで一緒に話しながら決めました。丸山:そうやって密に調整したおかげで、基板自体はかなりシンプルになっています。石井:あとは繰り返しですがトルクが足りないことですね。想定しているトルクを満たすためにモーターをしっかり固定する必要があるんですが、遊脚ロボットでしっかり固定するっていうのが難易度が高くて。そこは最後まで悩まされ続けました。――最終的にはどうやって解決したんですか。石井:樹脂の材料を強化して、ポイントポイントに強いガラス繊維のものを入れています。タイヤも踏ん張りがあるようにグリップ力が高いものを使ったりと、細かく工夫しました。――最終的なデザインについて感想を聞かせてください。石井:原作のデザインを忠実に再現できたとは思います。実はポッドのサイズはそのままだと大きくてバランスを取るのが難しかったので、少し小さくしています。ほんの1割くらいですけど、気がついた人はいるのかな。丸山:ポッドを軽くするのも大変でしたね。石井:ポッドはボディ内部から支える構造なんですが、ポッドとボディの距離が離れているので支えるのが難しいんです。ポッドも動くようになっているので、ポッドが動くたびにバランスに影響して、最後までポッドの戻りが悪かった。ポッドの中にはほとんど基板をいれず軽くしてあります。ポッドの内部はほぼ空の状態タチコマが歩くまで――歩行についてもかなり苦労していましたね。海田:歩行は最後まで苦労したところで、開発の途中では足のパーツを歩行用と走行用で取り替える、なんてアイディアもあったんですが、最終的にはパーツ交換もなく歩けるようになりました。ここはメカデザインの石井さんと組み込みの杉本さんのがんばりですね。タチコマが歩けるようになるためには、メカデザインと組み込みの因果関係があるんですね。メカデザインの部分はこれまでの話にもあった通り、石井さんががんばってくれたのですが、組み込みの努力も大きかったんです。ready!)杉本:最初に考えていたのは、4本ある脚を1脚ずつ上げて歩く動作なのですが、歩いているときの見映えが悪くて没になりました。次に対角の脚を2本ずつ上げて前に進むモーションを考えたのですが、それで前に進もうとすると重心が難しいんです。いうのも重心が後ろにかかっているので、後ろ脚を上げてしまうとそのまま後ろに倒れてしまうんです。そこで試行錯誤した結果、歩行については前脚をメインにしつつ、後ろ脚は車輪で補助する形で今の歩き方を実現しました。――組み込みで他に苦労したところはありますか。杉本:脚もそうなんですが実は目の部分も苦労しました。タチコマの目の部分は縦横に二軸で動くのですが、小さいボディの中で目を動かすのは機構的に相当苦労して、最後まで完成しなかったのがこの目の動きですね。アイボール動作あと、カーブ走行もたいへんでした。走るならタイヤもまっすぐなのでいいのですが、タイヤが真っすぐのままでカーブさせようとするとタイヤの横方向に力がかかってしまい、結果として脚のモーターに大きな負荷がかかってしまいます。試行錯誤した結果、タチコマをカーブする時は内側の足を後ろに移動させることで、タイヤの向きがカーブの縁に沿うようになり、脚の負荷を軽減することができました。タチコマをリモコン操作するときによく見てみると、カーブの時に脚が後ろに移動しているのがわかると思いますよ。――最後に、発売したあとの感想を聞かせてください。タチコマには隠された機能やセリフが収録されているので是非見つけてもらいたいです。引き出すのは大変だと思いますが、色々な会話を試して見てほしいですね。中村:Twitterを見ていると、買ってくれた人が色々な遊び方をしてくれていて嬉しいです。僕としてはタチコマが集まっているところを見てみたいので、いつかユーザーオフ会とか開催されるといいな、と思っています。丸山:原作を知っていて作ったので、なるべく原作を知っている人が「ニヤッ」とできる仕掛けを仕込んだつもりです。「このセリフは原作のあれだなあ」みたいな楽しみ方してほしいですね。石井:開発の途中、ちょうど息子が歩くかあるかないかという時期だったんですが、どっちが先に歩くか勝手に競争していていたんです。結果としてはタチコマが勝ちました!杉本:もっと自由にタチコマを動かしたいと思っていたけれど機構的に難しかったのですが、その制限の中でもかなりタチコマに近い動きを実現できたんじゃないかと思っています。当然ながら動かせば動かすほど負荷がかかるので、動かして欲しいけど動かして欲しくない、というのが悩みどころです。海田:「かわいいは正義だな」と思います。タチコマのコンテンツ力が何よりすばらしい。偉大なキャラクターですね。――開発をやりきった感はありますか。海田:5年後にまた作ってみたいですね。AIと呼ばれる技術の進歩が急加速しているので、5年後はもっとリアルなタチコマができるんじゃないでしょうか。その頃には光学迷彩もできるといいですね(笑)。この記事は、2017年11月2日に「カデーニャ」で公開され、家電Watchへ移管されたものです。▲[カデーニャ]の他の記事を見る関連リンクうごく、しゃべる、並列化する。