flomとはなんですか
flomは、ロボットのモーションをキーフレームで表現するためのライブラリ・ファイルフォーマットです。GPLv3で公開されています。(MonoMotion/flom)
何ができるの
モーションデータに対して、
- 任意の時間地点での姿勢を取得できる(フレーム補完)
- 任意のFPSでフレームをイテレート
ファイルにインポート/エクスポートする
- JSONにもなります
- protobufでファイルフォーマットは記述されています
- キーフレーム編集(挿入/削除)
"エフェクタ"設定のサポート
- "エフェクタ"はリンクの理想姿勢を表現するのに使うことができます
- エフェクタについてはこちらをご覧ください
言語は
C++です Pythonバインディングもあります(MonoMotion/flom-py)
なぜこれが必要なの
今まで「ロボットのモーション」を表現するには、JSONやCSVで各関節の角度の変化を時系列で記述していく方法がありました。しかし、そういった汎用的はデータ構造で記述されたモーションデータに対してフレーム補完をする方法が一般的になく、ソフトウェアを新しく作成するたびに補完処理などを書く必要がありました。
MonoMotionフレームワークでは、「ロボットのモーション」を生成し、加工し、実行します。「ロボットのモーション」を複数のソフトウェアが扱うため、共通したコードベースがあればモーションを扱う上でのトラブルが減ると思い、新しくライブラリを作成するに至りました。
どう使われているの
MonoMotionフレームワーク内で、モーションをファイルとして保存するのに使われています。また、任意の時間地点での姿勢を取得できる特徴を生かして学習ソフトウェアの実装を簡単にする目的でも使われています。
ちなみに
MonoMotionのなかで一番コミット数が多い(今の所)。