こんにちは〜〜。
はや、10月も後半戦に入りましたね。
いつもの如く、ブログが滞っておりましたが、ようやくひと段落しましたので、ブワッと色々と書こうと思います。
ブログが滞っていた理由について
ふと思い返すと、なぜブログを書く時間がなかったのかと考えてみた時、
「ああ、そうか」と思い当たったのは、
『箱庭ドローンPRO」のサービスリリース以降、
少しずつ問い合わせを頂くようになったこと』
です。
少しずつではありますが、質問や相談が増えてきて、
中には契約フェーズに進んでいるお話も出てきました。
正直に言えば、これまでは「箱庭って何?」と尋ねられることの方が多かったのですが、
最近は「こういう用途で使いたいのですが」「これと連携できますか?」という、
前提を理解した上での具体的な対話が増えてきた印象があります。
そうなると、日中はやりとりや調整が中心になり、夜や週末に実装を進めるという流れになって、
気づけばブログはどんどん後回しに……
新しいリリースを出します!
そんな「箱庭ドローンPRO」ですが、これって、
箱庭本体や、無償版『箱庭ドローン』との連携があってこそ成り立つ存在
なのです。
ですので、箱庭ドローンPROの今後の飛躍を考えると、
オープンソース/無償版の『箱庭ドローン』をアップデートすることが急務
となってきました。
そこで、ここ最近溜め込んでいた機能アップデートを、今月中に一気にリリースしようと思い立ったわけです。
具体的には、v3.4.0として、以下のようなトピックを盛り込む予定です:
- Scratchとの連携機能(Turbowarp Extension対応)
- Geminiによる自然言語対話の準備(土台整備)
- 箱庭環境シミュレーションの新リリース
- MuJoCo対応による物理モデルの多様化
……とまあ、書いていて自分でも「よくやったな」と思うくらい、色々やってました(笑)
なので、これらを1日1テーマで少しずつ、思いや背景を交えながら綴っていこうと思います。
で、記念すべき第一回目は、「MuJoCo対応」について語りたいと思います。
MuJoCoとは?
MuJoCoは、いわずと知れた軽量・高精度な物理シミュレータです。
もともと強化学習や制御系研究で使われることが多いエンジンで、数年前までは有償でしたが、
Googleが採用することでオープンソース化されたのです!
UnityやUnrealのようなビジュアル映えはしませんが、
センサ再現や接地判定のような「ズレのなさが問われる領域」では、
とにかく信頼できる相棒です。
なにより、オープンソースなんですよ。
なぜ、MuJoCoを箱庭に組み込もうと思ったのか
理由はシンプルです。
箱庭の相棒としてオープンソースで高精度な物理シミュレータが欲しかった。
UnrealやUnityでも、物理シミュレーションははできますが、
ゲームエンジンなので精度面で不安があるし、なにより、商用化する場合、ライセンスが問題となります。
でも、MuJoCoは、そのどちらもクリアできるのです!
しかも軽い上に、Cライブラリで一般公開されているから、箱庭との相性が抜群ときています。
となれば、やるしかないでしょう。
思想面では
MuJoCo導入は、単なる“技術的選択”ではなく、箱庭の思想にも深く関わってきます。
- UnityやUnrealが「視覚的に魅せる世界」なら、
- MuJoCoは「物理を通して確かめる世界」。
ときに地味で、シンプルで、でも嘘が少ない。
そんなMuJoCoは、「制御と現象の間」を丁寧につなぎたい人たちにとって、かけがえのない環境になります。
そして何より、自由であることが僕には響きました。
論よりRUN!
これが、箱庭ドローンの物理モデルをMuJoCoにして、OpenGLでビジュアライズしたものです。
MuJoCoなので、荷物の運搬なんかも簡単にやれるのです!!
ご覧の通り、キーボード操作で、アームして、浮上すると、ドローンに繋がれた荷物が一緒に浮上していきます。
そして、最後は、
フリップ制御で、一回転!どうだ!
じつは、このフリップ制御には思い出があるんです
ここで、閑話休題、フリップ制御についてご存知ない方もいらっしゃるかもしれないので、すこしだけお話ししましょう。
フリップ制御というのは、読んで字のごとく、
ドローンを一気に回転させて「宙返り」させる制御のことです。
通常のドローンは、なるべく安定して飛ぶように制御されているため、
あえて機体をひっくり返すような動きは基本的にしません。
でも、ちょっとした一発芸としての面白さや、
制御則を調整して「ギリギリまで自由度を開放する」練習にはもってこいなんです。
たとえば、実際のフライトコンテストなんかでも、
最後に「回転して着地!」みたいな演出を入れることで、拍手が起きる系の技だったりします(笑)
ふと思い立ちました
ここで、なんでフリップ制御をやりたいと思ったのかといいますと。
こうへい先生のオンライン講義に聞き耳をたてながら、
ふと、これって箱庭ドローンでもできるんでは?と思い立ったのが始まりでした。
これが、そのときのXのポストです。
ポストしたら、こうへい先生が拾ってくださり、そのまま開発に突き進んでいきました。

いやー、こんなポストでピンと来るこうへい先生すごすぎます。(涙出そう)
最初のトライは
で、やり始めてみましたが、最初は、姿勢角度を積分して一回転したら制御を元に戻す方式でやってましたが、どうもうまくいきません。めっちゃ不安定なんです。
で、こうへい先生からのアドバイスを受けて、実際の姿勢角度を観測するのではなくて、目標姿勢角度を積分するという一言でわかっちゃいました。
そうか、「姿勢角速度制御の追従性能」なんだと!

つまり、実際の姿勢角度では、計測の不安定さとかあるし、それなら、姿勢角度制御が目標値に対して十分追従していれば、目標姿勢角度だけを積分すれば良いという論理です。そして、その追従性は、すなわち、姿勢角速度制御の目標追従性なんです。だから、やることは1つ。姿勢角速度制御のPIDパラメータを徹底的に調査して、鍛え上げていく。それだけなんです。
そして、これがその実験結果です。どうですか?この違いは。本当に驚きでした。
最後に
まさか、SNSで大学の先生からコメントを直接いただき、
そこから箱庭ラボの開発がまた一歩、前に進むとは思いもしませんでした。
でも、こういうのって、なんだかとても良いですよね。
技術も、出会いも、予定通りにはいかないけれど、
それが「次のなにか」に繋がっていく感じがして。
では、また明日!
P.S. あ、MuJoCoの熱量より、こうへい先生との話の方が面白くて、そっち優先で書いちゃいました。
おしまい。
コメントを残す