* モーションシンセサイザー [#q01d467c]

#contents
----
**モーションシンセサイザーとは [#c70a043a]
ホビーロボット用のモーション再生プログラムにつけた名前です。~
([[モーションエンジン]]から改名しました。)~
一応、SEMB1200A上のTOPPERS/JSPの1タスクとしての実装を考えています。~
P101にも載せる予定です。~

**野望(というか、試して見たいこと) [#uf541359]
つらつらと
- 角度ベースでなくてモデルベースにする。~
関節構造や関節間の長さ、稼動範囲などをモデル化し、モデルに対して指示を出す。~
モデルについても動的な変更を可能にしたい。これは物を持った場合に、物を体の延長とできるようにするため。
- 並列でモーションを再生できる。~
並列で8モーションぐらいの再生を考えています。~
上半身/下半身みたいに分離しても良いですし、モーション間でミックスしてもよい。~
⇒TODO: ミックスの方法、度合いについて要検討。
- 動作のイメージ~
たとえば腕の動作を指定する場合、「(1-1)"指先"をx,y,zの位置へ」てな感じになる。~
この場合肘は現在の位置から最低の移動量になるよう移動する訳だが、「(1-2)"肘"をy上げること」みたいに拘束条件を追加することで動作を変化させる。~
拘束条件には「(1-3)移動時間はs秒で」とか「(1-4)直線的に移動する」なども指定できる。~
これらの指定については優先度があって、(1-1)を完了するためには(1-2)をy-10までしか上げられない場合などもモデル情報から判断して動作する。~
これらの「モーション」には動的に拘束を付けられるようにして、たとえば(1-1)の場所に動物を検出したので「(1-0)"手のひら"に変更、位置をx-40に補正」して事故を回避したりするとか、ね。~
⇒TODO: データ構造は?
- TOPPERS/JSPのターゲットとして、VR5500用が使えるかも。

**最初のステップ(TOPPERS/JSPを動かす) [#x57192ee]
まずは[TOPPERS/JSPを使う]のページで試したPF3EEを使って作業を進めようと思います。~
ターゲットは、[[SEMB1200A:http://www.shimafuji.co.jp/semb1200a/index.html]]と[[P101:http://www.js-robotics.com/Product/P101/index.html]]です。~
TOPPERS/JSP自体は最低限タイマーが動けば使えるので、まずはそれを目標にします。~

&size(24){注!! 以下の内容は試行しながら書いているので、鵜呑みにしないでください。};~
※次期JSPへの対応については未定~
※PF3EEのプラグインの作成を試しています。~
※参考:[[ Eclipseプラグイン・プロジェクトテンプレートの作成:http://codezine.jp/a/article/aid/32.aspx]]~

***SEMB1200A編 [#fdf37614]
以前VR5500用が使えるかもと書きましたが、残念ながらPF3EEには含まれません。~
なので、MIPS用のものを使用して、VR5500用との差分を見ながらSEMB1200A用にカスタマイズしようと思います。~
- プラグインの更新~
[TOPPERS/JSPを使う]と同様に、ブラグインの更新を行います。~
今回インストールするものは以下のものです。~
 「pizza-gnu」配下の「PizzaFactory TargetTools for mips64-elf 3.1.2.200702182144」

- プロジェクトを作成~
[TOPPERS/JSPを使う]と同様に、プロジェクトの作成を行います。~
以下の条件でプロジェクトを作成しました。~
 Project nameは「core-SEMB」を指定。
 Project Typeは「PizzaFactory loadable (mips64-elf)」を選択。
 Configurationsは「Debug-Freestanding」のみチェック。
 Template selectionは「sample1」を選択。
プロジェクトが正常に作成されても、Freestandingでは残念ながらビルドは成功しません。~
~
- sample1テンプレートの作成~
[[「jp.pizzafactory.toppers.kernels.jsp.armv4.frk_aduc」のソース:http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pizza-ipa-oss/jp.pizzafactory.toppers.kernels.jsp.armv4.frk_aduc/]]から、SEMB1200A用のテンプレート作成を試みる。~
※以下検討中~
~
- カスタマイズ~
最初に[TOPPERS/JSPを使う]で作成したV850用のコンフィグレーションをSEMB1200A用のプロジェクトにコピーします。~
 C/C++ Projectsタブのjsp-v850配下にあるDebug-JSP-CQ_V850JG2で右クリックしてコピーを選択。
 core-SEMBをクリックし、右クリックでペーストする。
 Debug-JSP-CQ_V850JG2を右クリックしてリネームを選択、名前をDebug-JSP-SEMBに変更する。
次にcore-SEMBのプロパティを変更します。~
 [C/C++ Build]のConfiguration
  Debug-FreestandingをDebug-JSP-SEMBに変更します。
    [Manage...]ボタンをクリック、[Rename]ボタンをクリックし、Debug-JSP-SEMBに変更します。
次にコンフィグレーションDebug-Freestandingを削除します。~

***P101編 [#a51b0e7c]
P101のCPUはAT91SAM7S256ですからPF3EE用のプラグインがそのまま使えそうです。~
- プラグインの更新~
[TOPPERS/JSPを使う]と同様に、ブラグインの更新を行います。~
今回インストールするものは以下のものです。~
 「besttechnology-at91sam7s」

- プロジェクトを作成~
[TOPPERS/JSPを使う]と同様に、プロジェクトの作成を行います。~
以下の条件でプロジェクトを作成しました。~
 Project nameは「core-P101」を指定。
 Project Typeは「PizzaFactory loadable (arm-elf)」を選択。
 Configurationsは「Debug-JSP-AT91SAM7S」のみチェック。
 Template selectionは「sample1」を選択。
プロジェクトが正常に作成されれば、ビルドは自動的に始まります。~
ビルドが成功すると[C/C++ Projectsタブの]core-P101/Binariesの下にcore-P101.outが生成されます。~
ただしアイコンが"虫"なので、動かないファイルのようです。~
~
- カスタマイズ~


----
- 始めまして、SEMB1200Aのコアの情報は、何処で入手出来たのですか? -- [[HAZI]] &new{2007-04-16 (月) 23:07:17};
- 残念ながら入手ではなく、製品構成とスペックからの推測です。 -- [[まさゆき]] &new{2007-04-17 (火) 18:34:17};
- ご回答ありがとうございました。メーカさんも、VR5500に近い様な事を言ってました。 -- [[HAZI]] &new{2007-04-19 (木) 17:28:49};
- TOPPERSのSEMB1200Aへの移植、楽しみにしています。がんばって下さい。 -- [[HAZI]] &new{2007-04-19 (木) 17:30:17};

 #comment
#comment

Total:&counter(total); Today:&counter(today); Yesterday:&counter(yesterday);

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS