Morikatron Engineer Blog

モリカトロン開発者ブログ

toio コア キューブの多台数制御にチャレンジ

こんにちは!

モリカトロン株式会社チーフエンジニアの松原です。今日はウロチョロスでtoio コア キューブをできるだけたくさん制御してみよう、という我々のチャレンジを紹介いたします。

内容的には前回↓の続きとなっております。

ウロチョロス = toioの公開技術仕様 + Unity - Morikatron Engineer Blog

ウロチョロス、toio、toio コア キューブ、Unityによるtoioシミュレータなどの説明は前回記事に詳しいので、先にそちらをお読みください。

 

今回の目次です。

  • キューブ4台で遊ぶウロチョロス
  • キューブの単品販売開始! 
  • もっといっぱい接続できるはず
  • よし、何台接続できるか、やってみよう!
  • iPhone11 Pro買ってきた 
  • キューブ12台で鬼ごっこ
  • まとめ
続きを読む

ロケットストーブのススメ

f:id:morika-miyake:20180430041449j:plain

こんな時間を楽しめるのもキャンプならでは!

こんにちは。
モリカトロンの三宅です。
エンジニアブログの中で、相変わらず全く関係ない“お外の話”を書き散らかします!

前回、おすすめの焚火台を紹介しましたが、今回ご紹介するのは……これです!
(何となくテレビショッピング的ですね) 

  • EcoZoom Versa
  • ロケットストーブとは
  • 一家に一台ロケットストーブ

 

続きを読む

神様のゲーム#4

「ウイルスがいてこその進化」

 

生物の進化は、DNAの交配、突然変異、自然淘汰によるものだと書いた。

ところがこれだけでは、うまく進化が進まないことがわかっている。
もっと長い時間をかければそれでも進化できるのかもしれないが、なんたって、地球の寿命(っていうか太陽の寿命)は残り半分、あと約50億年程度しか残っていない。あまり、悠長な進化はしていられない。
面白いことに、DNAの交配、突然変異、自然淘汰のアルゴリズムを元にした「遺伝的アルゴリズム」というAIでも、同じ現象が起こる。突然変異は、せっかく獲得した優秀な遺伝子を壊してしまうので、それを避けるために突然変異率を0%にするとAIの学習の「進化」がうまくいかない。

進化のアルゴリズム以外に、神様は「同じ動物間でしかDNAの交配はできない」というルールを作った。いくらライオンの強さがほしいからと言ってもライオンと人間の間では子供はできない。
ゲームとして考えたときにも都合がよい。よく「交配」要素を入れると生まれるキャラの種族の数が爆発してドツボに落ちることがある。
例えば、10種類のキャラがどのキャラとの交配できるとすると、10x10=100種類のキャラが生まれることになる。ゲームで言えば100種類作らないといけないことになる。さらに次の世代では、単純計算で100x100種が誕生することになり、世代が進めばは指数関数的に増えていってしまう。
地球上には〜3000万種程度の種類の生き物がいると言われている。哺乳類に限っても〜5,000種程度いると言われている。哺乳類同士なら交配OKよとすると誕生する動物は次の世代だけでも5,000x5,000=25,000,000種類となる。次の世代では、これはさすがにキャラ担当の神様もうまくないと思ったに違いない。

近い種族間の交配を除いて、このルールは厳密に守られている。その縛りが進化のダイナミクスを奪っている。人間同士、ほぼ同じDNAである。少し混ぜたり変えたりしたところで、とんでもない変化が起こるとは期待しにくいということだ。実際、人と人のDNAの違いは0.1%、人間にもっとも近いと言われるチンパンジーの間での違いは1.2%程度と言われている。素人目に見てもその部分を混ぜ合わせたりしてもたかがしれてそうというのは、なんとなくわかる。

もっとも、逆に、0.1%でこんなに違いが出るのか…とアスリートやイケメンを見て愕然ともしているのだが。

さて、生き物を自律的に進化させる仕組みを考えた神様も、これでは進化が冗長になって(ゲームとして)まずいと感じたのか、特別ルールを作った。

「ウイルスは、生物間をまたいでDNAのやりとりをしてよい」

この特別ルールを理解してもらうためには、ウイルスが宿主のDNAの一部を持ち去ってしまう仕組みを知ってもらう必要がある。 

続きを読む

【DQfD】人間のプレイを参考にして学習する強化学習アルゴリズムを実装してみる【後半】

  • はじめに
    • Montezuma's Revengeについて
  • 実装
    • 学習の大枠
    • 10ステップ分の状態遷移を保存
    • リプレイバッファの改造
    • Atariラッパーの追加
    • デモの作成
    • 損失関数の導入
  • 実験
  • 結果
  • まとめ
  • References

はじめに

こんにちは。モリカトロンでエンジニアをやっている竹内です。
この記事は【DQfD】人間のプレイを参考にして学習する強化学習アルゴリズムを実装してみる【前半】 - Morikatron Engineer Blogの後半となります。前半の記事をまだご覧になっていない方は、そちらの方を先にお読みいただくことをおすすめします。

前半では人間のプレイを参考にしつつ強化学習を行うDeep Q-Learning from Demonstrations(https://arxiv.org/abs/1704.03732)というアルゴリズムを紹介させていただきました。今回は実際にDQfDを実装しながら、Atari2600の中で最も学習が難しいとされているMontezum's Revengeというゲームを学習していきたいと思います。
今回学習に使用したコードはgithubにて公開しています。(Python3+Tensorflow2.0)

続きを読む

2月のおやつ

皆さまいかがお過ごしでしょうか、モリカトロンの大里です。

ゆるふわ記事、今回は2月のおやつについて報告いたします。

ちなみにこの原稿を書いているのは3月下旬、公開されるのはおそらく4月になるので、2ヶ月前のお話になります。が、そのへんは常に気にせずにご紹介を続けてまいりたいと思います。

  • その1:いちごみるくまん
  • その2:ラーメンケーキ 
  • その3:ノワゼッティーヌ-es
  • その4:ショコラ シガール
  • その5:くまがやマドレーヌ
続きを読む

神様のゲーム#3

「ウイルスは死ぬの?」

 

ウイルスは一般的に「生き物」と定義されない。なので、「ウイルスが死ぬ」という表現は科学的には間違いで、「不活性化する」くらいが正しい表現である。

ウイルスが生き物の仲間に入れてもらえないのは、自分で増えることができないからだ。それと栄養を取り込んでなんかを作って排出するといった代謝機能もないからだ。生物とはそういうことができるものという定義なので、仲間に入れてもらえない。

しかし、生き物と同じように自分を作るための設計図であるDNAやRNA(以下ではまとめてゲノムということにする)を持っている。だから生き物に入り込み、乗っ取ることができる。実にややこしい。

ウイルスはむき出しの機械である。ゲノムをタンパク質が覆っているだけの機械である。自分を増やすには、設計図(ゲノム)があるだけではだめで、細胞という生産工場があってはじめて自分を増やすことができる。なので、設計図しか持たないウイルスは自分では自分を増やせない。

仕様書だけあってもプログラム技術がないとゲームが作れないみたいなものだ。

ウイルスは、自分を増やすために、人間などの宿主の工場(細胞)に侵入する。
これが感染である。

細胞内に入ると、宿主の設計図(DNA)に自らの設計図を挿入する。プログラムで言えばサブルーチンを挟み込むみたいな感じだ。すると宿主の設計図の読み取りがキャンセルされ本来の機能が停止し、ウイルスの設計図の部分のみが生産される。
つまりウイルスばかりが作られる。

  f:id:morika-wa:20200406004446p:plain

続きを読む

ウロチョロス = toioの公開技術仕様 + Unity

こんにちは!

モリカトロン株式会社チーフエンジニアの松原です。今日はソニー・インタラクティブエンタテインメント(以下SIE)のロボットトイ「toio(トイオ)」と、その公開済み技術仕様を参考に弊社が開発したスマホアプリ「ウロチョロス」を紹介します。ウロチョロスはゲームエンジンのUnityで作っており、スマホ+Bluetoothでtoio コア キューブ(ロボット)と通信を行ったり、キューブをシミュレータ上で動かす仕組みなども開発しました。やはり、仮想世界でのシミュレーションは、ロボット制御知能の開発効率向上に、劇的な効果をもたらします。

というわけで、この記事の対象読者はtoio、Unity、スマホ+Bluetooth、ロボット制御、ロボットシミュレータなどに興味がある方であります。

  • toioとは
  • toioとプログラミング
  • toioであそぼう!ウロチョロス
  • ウロチョロスはUnityで
  • まとめ

 

続きを読む