見出し画像

Meridianの中間まとめ

記事が増えてきたので一旦ここでまとめます。
(情報が古い箇所があります。目次よりこの記事以降の進捗情報もぜひご確認ください。)



そもそもMeridian計画とは?

Meridian計画はヒューマノイド制御についてのオープンソースプロジェクトです。
小型ヒューマノイドの開発にはいくつかの細かな制約がありますが、最新のリソースを使ってそれを一気に解決していこうという試みです。
これがうまくいくと、制御についての学習や実験がよりスムーズに進められるようになるのではないかと考えています。

汎用人型決戦遊具 ゼムネス(約1kg)

解決したい課題

ヒューマノイドロボットの開発には様々なパーツやセンサーが必要ですが、特にサーボモーターのコマンドについては各社さまざまな通信規格を採用しており、混在させることが難しいという課題があります。
また制御ソフトにもさまざまなものがありますが、モーション作成ソフトとシミュレーターがリンクしていないなどの課題があります。
ROS環境にはロボットの開発のツールや研究成果などがいろいろありますが、小型ヒューマノイドを持っていてもROSのリソースは使いにくいというのが現状だと思います。CGやアニメーションなど、計算上のバーチャルな世界ではヒューマノイドの表現力がどんどんアップしている一方、実物のロボットにはなかなかその進歩が反映されにくいとも感じています。
各自の自作ロボットの形状やシステムがバラバラであるという課題もあります。ヒューマノイドロボットが手元にあっても、その開発が制御技術の進歩に貢献しずらい状況にあるような気がしています。

競技用ヒューマノイド スコブル (約3kg)


既存リソース全体をつなげる経絡

そこでこれらの課題を解決すると同時に、ヒューマノイド制御についての学習や情報共有がしやすい環境を準備しようというのがこのMeridian計画です。

まずロボット制御に必要な中間プロトコルを最大公約数的に設定します。その上で、多種多様なパーツ、センサーをさまざまなソフトウェア環境で自由に使えるようにします。さらにそのために必要な回路なども準備します。

こうしてボトムネックとなっている部分や断絶した部分を補い、開発と運用のパフォーマンスを最大化させることを狙います。
既存のリソースを活用できるだけでなく、制御についての学習や実験、検証の効率もあげていくことができると考えています。

「Meridian」は、東洋医学でツボとツボを結びつらねる道筋である経絡(けいらく)を意味します。人間や各器官を協調させて活動するように、ヒューマノイドロボットの要所要所の連携を円滑にし、「気」のめぐりを良くしていこうというわけです。

具体的には何をしているか?

① 制御データの汎用化と圧縮

各社のサーボや制御ソフトを調べ、扱いやすいデータ形式になるよう要素を整理しています。通信の高速化のためデータ量をなるべく削減しつつも、拡張性と汎用性のために一定のデータサイズを確保しています。
サーボのデータとコマンドデータを組み合わせることで、さまざまな種類のデータを一定のフォーマットで送受信できる形式です。
基本となるデータ形式のMeridim90は1440バイトビットに収納した制御用のデータ配列です。
大まかなルールだけを決めており、自身のロボットや既存の環境に合わせて好きなようにカスタマイズが可能です。

汎用的な制御データの配列への格納

また、座標系については右手座標系を採用しています。これは物理や数学で扱われる座標系で、ROSでも採用されています。(CGやゲーム系では逆に左手系座標となります。Unity版では表示の段階で座標変換しています。)

Meridianにおける軸方向(右手座標系)


② データの高速循環

コンパクト化したデータ配列のMeridim90をデバイス間で循環させます。
あるデバイスが前のデバイスからデータを受け取ったら、そのデータにセンサや制御のデータを上書きして次に渡す、ということを高速でグルグルと回していきます。これにより各デバイスは毎瞬毎瞬、最新の状態データに基づいて制御やコマンドを実行することができるようになります。

データ循環の概略図

タイミングの制御にはMercというフレーム単位時計を使い、1/100秒以下の周期で制御できるようにしています。何らかの原因で処理が重くなり処理落ちした場合にはアラートを出しつつ、処理に余裕のあるフレームに処理を持ち越し、追いつくようにします。(もちろん処理落ちしないようにプログラムするのが基本です。)
制御の中核となるのはTeensy4.0です。速度のボトルネックとなるのは基本的に他デバイスとの通信部分なので、Teensy4.0単体でローカル処理を行えばさらに高速な制御も可能になります。


③ ロボットとPCの連携

デバイス間でデータを最新状態に保てるため、PCからロボットをリアルタイムに動かしながら調整することができます。
また先にPC上のシミュレートを十分に行なってから、実物のロボットで動作テストするということもできます。
理屈上は、どんな形状のオリジナルロボットでも、ROS環境やUnityを通じて、ロボットの挙動をPC上でビジュアライズすることができます。
VR空間から実空間のロボットを操作するといった、リアル/バーチャルの相互乗り入れも可能です。

ROS環境でのビジュアライズ


④ 規格の異なるコマンドサーボの共存

中間プロトコルから各社のサーボコマンドに翻訳する方式のため、規格の異なるサーボコマンドを共存させることができます。
これによりパワーのあるサーボと小型のサーボなど、特性に合わせてサーボを選べるようになります。
メーカーの異なるロボット同士をリンクさせることもできます。たとえばA社のロボットの腕を動かし、関節構造の似た遠方のB社のロボットに同じ動作をさせるというようなことも簡単に実現できます。

中間プロトコルがMeridianの本体


⑤ ROSノード、Unityソフトの開発

ロボットからMeridim配列を受信してROSにデータをパブリッシュし、逆にコマンドをロボット側に送信するという機能を持つ簡単なノードを準備できました。
Unityについても、同様のことをできる環境を準備しています。

Unityでの表示


⑥ Meridian対応ボードの設計

高速制御と高速通信を同時に実現できる廉価なボードは現時点ではないため、600Mhzで動作するTeensy4.0とwifiが使えるESP32-DevKitCをSPIでリンクさせて使用します。現状の最新版はType.K ver1.2となります。

Meridian Board Type.K ver1.2
ピンアサイン(2022.05.29訂正。C2下のフリーピンが正しくはGND)
KHR-3HVに搭載した状態

Meridian Board Type.K ver1.2の特徴

・3社の半二重コマンドサーボを混ぜて使える(標準で合計30個)
・電圧の異なるサーボにもある程度対応できる(降圧回路増設可)
・PWMサーボも使える(Teensy4.0のみで8個)
・ICSサーボを10ms以下で制御可能(理論値)
・2.4GHzのwifi経由でPCと10ms以下の周期で通信可能(理論値)
・専用NodeでROSと接続が可能(Node利用可)
・SPI / I2C のIOポートを各1系統準備
・メモリカードホルダーを標準装備
・5系統分のIOポートをデフォルトで用意
・IOを自由にカスタマイズ可能(約7系統分のピン穴を準備)
・Teensy4.0, ESP32-DevkitcはそれぞれUSB書き込み可(評価ボードゆえ)
・KHR-3HVの標準ボードと換装でき、ランドセルに収納可
・無線コントローラーも対応(KRC-5FH対応済み)
・モーションや制御を、コードで自由にプログラミング可能

デモプログラム

・実物のロボットの間接角度をRviz上の3D表示に反映させたり、PCからロボットの関節の動作を操作できます

※まだできないこと

・実はモーション作成用のソフトは実はまだ作っていない
・実はシミュレーション用の環境とかもまだ試せていない
・コマンドサーボはKONDOしか試せていない
・インターネットを経由した遠隔制御も理論上は可能だがまだ試せていない
・おもしろいデモ動画もまだない

ご協力者・ご賛同者の募集

中間の進捗まとめをさせていただきましたが、このプロジェクトを進めるにあたってのテストボードが使えるようになりましたので、一緒にテスト使用してくれる(あわよくば研究開発を進めてくださる)方を募集しております。

・常々ヒューマノイドのロボットの開発環境を統合したいと思っている方
これから作るロボットにちょうど良いシステムを探している方
・ホビーロボットを学術的な研究や学習に役立てたい
メーカーの異なるロボットを複数台持っている方
・アニメモーション作成によるホビロボ制御に限界を感じている
・普段からコードでモーション作成をされている方
ホビロボとROSを混ぜて使いたい

といった方には需要にこの作りかけのシステムがお応えできるかもしれないと思っています。
Meridianはまだテストが始まったばかりのプロジェクトですが、ぜひご一緒にこのプロジェクトを進めていければと思っております。

5名様にテストボードを無料頒布
(※初回分終了しました)

Meridian Board Type.K ver1.2 を無料でお送りします。
ただし、KHR-3HVをお持ちの方、もしくはオリジナル機体を所持または制作中の方に限らせていただきます。
コメント欄もしくは
Twitterまでご連絡ください。(残り0枚)
※テストいただけそうな方がなんとか見つかりました。ご協力ありがとうございました。

# Meridian計画

Twitter等でもハッシュタグ「# Meridian計画」で適宜情報を発信していきます。質問等についてもお気軽にお声がけください。

github

最新のファイルを下記にて公開しております。
使用方法についても触れています。

ボードの入手方法

完成品のMeridian Board Type.Kを有償頒布しております。
特にKHR-3HVの機体をお持ちの方にお勧めです。
(なお、回路は公開しているため、お手元で自作することももちろん可能です。)


前の記事:

目次:


この記事が気に入ったらサポートをしてみませんか?