スタックチャンの原点と「JavaScriptで動くロボット」という選択
── 石川さんの自己紹介と、現在スタックチャンに関してどのような活動をされているのかを教えてください。
石川真也と申します。インターネットやSNSのコミュニティでは、ハンドルネーム「ししかわ」として活動をしています。
私の本業は、秋葉原にあるロボット系のベンチャー企業「株式会社ugo」でのWebプラットフォーム開発です。具体的には、ロボットとWebプラットフォームが密接に連携して動くシステムを構築しています。ロボットを遠隔操作したり、スケジュールを組んで警備や点検のために施設を巡回させたりしながら、センサー値の収集や写真撮影ができるプログラミングシステムです。私はそのロボット側と連携するWebシステム側の開発をメインに担当しています。
そんな本業を持つ一方で、趣味の個人開発としてスタートさせたのが、人とコミュニケーションができる手のひらサイズの可愛いロボット「スタックチャン」です。
開発を始めたのは、今の会社へ転職する前のことです。私は前職も同じくロボット系のベンチャー企業に在籍していました。その企業へ転職した直後からロボットの開発を着想し、個人の趣味として作り始めました。
試行錯誤を重ねて、実際にスタックチャンが形になって動き始めたのは2021年7月です。誕生からもうすぐ5年が経過しようとしています。
── そもそも「スタックチャン」とはどのようなものなのでしょうか?
技術的な構造を簡単に説明すると、非常にポピュラーなマイコンボード「M5Stack(エムファイブスタック)」をロボットの「顔」のパーツとして採用しています。顔の下には2つのモーターが組み込まれており、これによって首を振ったり、上下左右に愛らしく動いたりするメカニズムを実現しています。
自分で設計した基板のデータや、外装を形作る3Dプリント用のデータ、制御プログラムのソースコードは、すべてオープンソースとしてインターネット上に完全公開しています。
その結果、私の想像を遥かに超える形で、メイカー(Maker)コミュニティの人たちが「これは面白い!」と飛びついてくれました。
皆さん自分でデータをダウンロードして3Dプリンターで出力し、組み立ててくれるだけでなく、独自の改造を施してオリジナルのスタックチャンへと進化させています。例えば、足代わりにキャタピラ(タンク)を取り付けて対戦できるようにした方や、二足歩行ロボットに改造した方も現れました。
さらには、データ自体は一切使っていないにもかかわらず、「四角い顔とフォルムのアイデア」だけを拝借して、自分自身で1から独自のスタックチャンを作り上げるようなクリエイターの方までいます。
こうした作品はどれも「スタックチャン」と呼ばれており、特定のオープンソースソフトウェアという枠組みを飛び越えて、一種の「ミーム」のような広がり方を見せるようになっています。
── 数あるデバイスやプロジェクトの中で、なぜ「JavaScriptで動くコミュニケーションロボット」を作ろうと思ったのでしょうか?
実は、私はスタックチャンを開発する前、SIerの研究開発部門に在籍していました。当時の専門はWebフロントエンドの研究開発です。そのため、Web標準のプログラミング言語であるJavaScriptをはじめとしたWebのスキルセットは十分に持ち合わせていました。
その一方で、ロボットのハードウェア制作やマイコンなどの組み込み開発に関しては、右も左もわからない完全な素人でした。
しかし、趣味として組み込み開発に挑戦しようと思い立ち、世の中にあるM5Stackのオープンソースのファームウェアを読んでみたものの、当時はまったく理解できませんでした。コードは基本的にC++で書かれており、言語の壁がありました。加えて、ハードウェア特有の概念もわからず、完全に立ち尽くしてしまったのです。
そんなときに偶然出会ったのが、「Moddable(モダブル)」というフレームワークでした。マイコン向けの組み込みプログラムをJavaScriptで記述できる、非常に画期的なプラットフォームです。「使い慣れたJavaScriptであれば、自分でもコードを読んで理解できる」と感じました。
このModdableとの出会いによって、私にとって最大の障壁だった「言語面の問題」と「組み込み特有の概念への恐怖心」が見事にクリアされました。
この出会いをきっかけに、自身の持っているWebの知識をそのままハードウェアの世界へと応用する形で、JavaScriptで動くコミュニケーションロボットの開発に本格的にのめり込んでいくことになりました。
