RZ1Disguise

srmファイル形式(SimROBOTのファイル)解析4

srmファイル形式(SimROBOTのファイル)解析2」で、imROBOTのフレームと、ROBOBASICのDELAY/SPEED/最大動作角度との関係を調べたんですが、SimROBOTのマニュアルを読んでいたら、1秒当り33フレームでなく、1フレームが30ミリ秒でしたsweat01ほんのちょっとの違いですが、書き直しておきます。

《フレーム》

  • 30ミリ秒/FRAME

《DELAY値》

  • FRAME数=DELAY値 / 30
  • DELAY値=FRAME数 x 30

《SPEED値》

モータ回転速度

  1. 50ミリ秒/度
  2. 25ミリ秒/度
  3. 16ミリ秒/度
  4. 12ミリ秒/度
  5. 10ミリ秒/度
  6. 8ミリ秒/度
  7. 7ミリ秒/度
  8. 6ミリ秒/度
  9. 5ミリ秒/度
  10. 5ミリ秒/度
  11. 4ミリ秒/度
  12. 4ミリ秒/度
  13. 3ミリ秒/度
  14. 3ミリ秒/度
  15. 3ミリ秒/度
  • FRAME数=最大動作角度 x モータ回転速度 / 30
    もし、モータ回転速度を式にするなら
    モータ回転速度=52.053 x SPEED値の-1.057乗
  • SPEED値=41.683 x (FRAME数 / 最大動作角度 x 30)の-0.9415乗

以上のようになりますので、RZ1Basicや、RZ1Disguseは、次のバージョンの公開までには直しておきます。

| | コメント (0) | トラックバック (0)

RZ1Disguise v0.1.3 公開

Rs2rz13_2RZ1Disguise v0.1.3 公開しました。

(RZ1Disguiseは、roboScript, プログラミング・シミュレータ, roboBASIC, SimROBOTのファイルを変換するソフトウエアです)

Finderscreensnapz009

更新内容

  • SimROBOTのsrmファイルの変換に対応した
    ※FRAME数/SPEED値/DELAY値には少しズレが生じます
    ※SimROBOTの位置/方向情報の変換は行いません
       
    1. roboBASICモーション(クリップボード) -> SimROBOT
    2. SimROBOT -> roboBASICモーション(クリップボード)
    3. SimROBOT -> roboBASIC

oneroboBASICモーション(クリップボード) -> SimROBOT
roboBASICのモーションデータをSimROBOTのファイルに変換します。

  1. roboBASIC/RZ1Basicなどで、モーション部分をコピー(この写真を見る
  2. RZ1Disguiseで、「roboBASICモーションクリップ->SimROBOT」を選択
  3. 「クリップを変換」ボタンをクリック
  4. ファイル名を付けて保存。

twoSimROBOT -> roboBASICモーション(クリップボード)
SimROBOTファイルをroboBASICに変換し、クリップボードに入れます。

  1. 「SimROBOT -> roboBASICモーションクリップ」を選択
  2. 「ファイルを変換」ボタンをクリックして、SimROBOTファイルを選択
  3. roboBASIC/RZ1Basicなどにペースト

threeSimROBOT -> roboBASIC
SimROBOTファイルをroboBASICファイルに変換します。

  1. 「SimROBOT -> roboBASIC」を選択
  2. 「ファイルを変換」ボタンをクリック、SimROBOTファイルを選択

以上

| | コメント (0) | トラックバック (0)

srmファイル形式(SimROBOTのファイル)解析3

SimROBOTの角度と、ROBOBASICの角度に関して、関係式をまとめましたので書いておきます。

DIRに関しては、ROBOBASICのデフォルトと同じのようです。ROBOBASICの角度(R)、SimROBOTの角度(S)とすると以下の表で書いた関係式で双方向に変換することが可能です(クリックして拡大して見て下さい)。
Numbersscreensnapz002

SimROBOTの基準角度がモータによって異なっているので、モータによって式が変わります。

ということで、ここまで出してきた関係式で、RZ1Action, RZ1Basic, RZ1Disguiseで変換の対応ができるかなぁ。。。

| | コメント (0) | トラックバック (0)

srmファイル形式(SimROBOTのファイル)解析2

SimROBOTのフレームと、ROBOBASICのDELAY/SPEED/最大動作角度との関係を調べてみましたpaper

《フレーム数》

  • 1秒当り33フレーム

《DELAY値》

  • FRAME数=DELAY値 x 33/1000
  • DELAY値=FRAME数 x 1000/33

《SPEED値》
SPEED値とFRAME数の関係がどうも非線形なようで、いろいろデータを取ってみると以下の表のような関係があることがわかりました。以前、ロボザックで実測した時、スピードは線形だったんだけど、変なのsign02ま、いいかぁ
Numbersscreensnapz001
これを、近似してみると、以下になりました。
横軸はSPEED値(x)、縦軸は最大動作角度1度当りのフレーム数(y)になります。
Excelscreensnapz001

ということで、

  • FRAME数=最大動作角度 x 1.7351 x SPEED値の-1.057乗
  • SPEED値=1.6954 x (FRAME数/最大動作角度)の-0.9415乗
    (※最大動作角度が0度の場合、DELAYコマンド、上記DELAY値の式)

で変換できるかな。。

| | コメント (0) | トラックバック (0)

srmファイル形式(SimROBOTのファイル)解析1

Safariscreensnapz004先日公開された
SimROBOT 0 for ROBONOVA-I

なんですが、独自のsrm形式と、rsf形式(roboScript)が読込め、書き出しは、srm形式のみのようですね。

RZ1Disguiseでsrm形式を変換できるように、とりあえず、サンプルのBOWをsrmで書き出して中を見てみました。

ただのテキストファイルですね。
テキストエディタで開いて見てみると、以下のようになっていました。

F0 [ Body px=0.000, py=7.657, pz=0.057, rx=-90.000, ry=-0.055, rz=90.000 ] RThigh=0.000,RKnee=38.000,RShin=0.000,RAnkle1=21.000,RAnkle2=0.000,LThigh=0.000,LKnee=38.000,LShin=0.000,LAnkle1=21.000,LAnkle2=0.000,LShoulder=0.000,LUpperArm=-70.000,LArm=-20.000,RShoulder=0.000,RUpperArm=-70.000,RArm=-20.000;
F14 [ Body px=0.000, py=6.862, pz=-0.460, rx=-90.000, ry=-39.055, rz=90.000 ] RThigh=0.000,RKnee=105.000,RShin=-10.000,RAnkle1=3.000,RAnkle2=0.000,LThigh=0.000,LKnee=105.000,LShin=-10.000,LAnkle1=3.000,LAnkle2=0.000,LShoulder=0.000,LUpperArm=-70.000,LArm=-20.000,RShoulder=0.000,RUpperArm=-70.000,RArm=-20.000;
F80 [ Body px=0.000, py=6.862, pz=-0.460, rx=-90.000, ry=-39.055, rz=90.000 ] RThigh=0.000,RKnee=105.000,RShin=-10.000,RAnkle1=3.000,RAnkle2=0.000,LThigh=0.000,LKnee=105.000,LShin=-10.000,LAnkle1=3.000,LAnkle2=0.000,LShoulder=0.000,LUpperArm=-70.000,LArm=-20.000,RShoulder=0.000,RUpperArm=-70.000,RArm=-20.000;
F98 [ Body px=0.000, py=7.657, pz=0.057, rx=-90.000, ry=-0.055, rz=90.000 ] RThigh=0.000,RKnee=38.000,RShin=0.000,RAnkle1=21.000,RAnkle2=0.000,LThigh=0.000,LKnee=38.000,LShin=0.000,LAnkle1=21.000,LAnkle2=0.000,LShoulder=0.000,LUpperArm=-70.000,LArm=-20.000,RShoulder=0.000,RUpperArm=-70.000,RArm=-20.000;
F114 [ Body px=0.000, py=7.657, pz=0.057, rx=-90.000, ry=-0.055, rz=90.000 ] RThigh=0.000,RKnee=38.000,RShin=0.000,RAnkle1=21.000,RAnkle2=0.000,LThigh=0.000,LKnee=38.000,LShin=0.000,LAnkle1=21.000,LAnkle2=0.000,LShoulder=0.000,LUpperArm=-70.000,LArm=-20.000,RShoulder=0.000,RUpperArm=-70.000,RArm=-20.000;

構造

キーフレーム:

  • F
  • フレーム番号
  • スペース

位置と向き:

  • [
  • スペース
  • Body //基準部位
  • スペース
  • px=?, //X位置
  • スペース
  • py=?, //Y位置
  • スペース
  • pz=?, //Z位置
  • スペース
  • rx=?, //X軸回転
  • スペース
  • ry=?, //Y軸回転
  • スペース
  • rz=? //Z軸回転
  • スペース
  • ]
  • スペース

サーボモータ:

  • RThigh=?, //右大腿(股関節の外転、内転):#22
  • RKnee=?, //右膝(股関節の屈曲、伸展):#21
  • RShin=?, //右脛(膝関節の屈曲、伸展):#20
  • RAnkle1=?, //右足首1(足首の底屈、背屈):#19
  • RAnkle2=?, //右足首2(足首の内反、外反):#18
  • LThigh=?, //左大腿(股関節の外転、内転):#4
  • LKnee=?, //左膝(股関節の屈曲、伸展):#3
  • LShin=?, //左脛(膝関節の屈曲、伸展):#2
  • LAnkle1=?, //左足首1(足首の屈、背屈):#1
  • LAnkle2=?, //左足首2(足首の内反、外反):#0
  • LShoulder=?, //左肩(肩関節の屈曲、伸展):#6
  • LUpperArm=?, //左上腕(肩関節の外転、内転):#7
  • LArm=?, //左腕(肘関節の屈曲、伸展):#8
  • RShoulder=?, //肩(肩関節の屈曲、伸展):#12
  • RUpperArm=?, //上腕(肩関節の外転、内転):#13
  • RArm=?; //腕(肘関節の屈曲、伸展):#14

 
フレーム:キーフレームのフレーム番号に"F"を付ける。

位置と向き:基準部位が胴になっていると、換算するのが特に面倒くさそう。ま、足になっていても面倒くさそうだけど。。。

サーボモータ:右にはR、左にはLが付いた名前とモータの角度で各モータを表しているみたい。けど名前の付け方が変な気がするけど、ま、いいや。上記赤字で示したモータに対応します。

スタンダードポーズの角度が以下(赤字はroboBASICなどの場合の角度)

  • RThigh=0.000 //100
  • RKnee=38.000 //93
  • RShin=0.000 //145
  • RAnkle1=21.000 //76
  • RAnkle2=0.000 //100
  • LThigh=0.000 //100
  • LKnee=38.000 //93
  • LShin=0.000 //145
  • LAnkle1=21.000 //76
  • LAnkle2=0.000 //100
  • LShoulder=0.000 //100
  • LUpperArm=-70.000 //30
  • LArm=-20.000 //80
  • RShoulder=0.000 //100
  • RUpperArm=-70.000 //30
  • RArm=-20.000 //80

とBOWの場合は、以上のような構造でした。
srmからrsf、basへの変換は簡単に対応できそうですね。
srmへの変換は位置情報算出がやっかいだなぁsweat01でも、SimROBOTのインポードRSFでも、位置情報は何も計算されないみたいだから、それでいいなら、簡単だなhappy01

 

| | コメント (0) | トラックバック (0)

RZ1Disguise v0.1.2 公開

Rs2rz13_2RZ1Disguise v0.1.2 公開しました。

(RZ1Disguiseは、roboScriptからプログラミング・シミュレータまたは、プログラミング・シミュレータからroboScriptまたはroboBASICファイルに変換するソフトウエアです)

デアゴのロボザックのページの掲示板でプログラミング・シミュレータのデータをroboBASICで動かす場合、のWAITの値、roboBASICでは、DELAYの値を1.7倍程度にするとよいということを知り、その変換に対応した。
Realbasic_2007screensnapz002

ダウンロードはこちらから

| | コメント (0) | トラックバック (0)

RZ1Disguise v0.1.1 公開

Rs2rz13_2RZ1Disguise v0.1.1 公開しました。
日付が変わってしまいましたが、今日はロボザックしまくってますcoldsweats01

今回の更新内容は、roboBASICへの変換の際、MOVE G6に変換できるようにしました。

Parallels_desktopscreensnapz033

| | コメント (0) | トラックバック (0)

RZ1Disguise v0.1.0 公開

Rs2rz13_2RZ1Disguise v0.1.0 公開しました。

久々に更新しましたので、ここでRZ1Disguiseの機能について簡単に書いておきますね。

Robozak-1(デアゴスティーニ)または、Robonova-1(ハイテック)対応の拡張子rsfのモーションファイルには、週刊ロボザック14号付属のプログラミング・シミュレータによって作られたrsfファイルと、roboScriptによって作られたrsfファイルがあり、それぞれ似ているようで異なっています。RZ1Disguiseは、これらのファイルを双方向に変換することができます。また、rsfファイルをroboBASICのファイルとして変換することもできます。

Rz1disguisescreensnapz001

今回のバージョンアップでは、1)画面に入り切らないというリクエストもあり、縦長だったウインドウを、ロボットの図を横に置くことで短くしました(図)。2)あと、少し仕様を変更し、プログラミング・シミュレータからroboBASICへの変換において、DIRの設定を、roboBASICの基本的なDIRと同じ設定に変換できる様になりました。プログラミング・シミュレータでモーションを作成していた方にとって、roboBASICへのデータの移行が少しは簡単になったかと思います。3)プログラミング・シミュレータからroboScriptおよびroboScriptからプログラミング・シミュレータへの変換では、反転させなくてはいけないモータは既知ですので、いちいち選択しなくて済む様にしました。

ダウンロード

| | コメント (0) | トラックバック (0)

RZ1DisguiseのLinux版を作ってみた

Rs2rz13_2ま、ニーズはないと思いますので、あくまでも私の自己満だけで作ってみたのですが、Parallelsを使ってLinuxを動かしてみたついでに、RobomicのRZ1ソフトのLinux版を作ってみました。

使ったLinuxはFedora 8です。
FedoraのページからiMacにインストールしたかったので、「i386 - インストールDVD」をダウンロード。けど、あまりにも遅かったので、こちらのページのミラーからダウンロードしました。

Parallelsへのインストールは、そんなに難しくありませんが、Parallels Toolsのインストールと、解像度の変更が手作業的になってしまうので、ちょっとやっかいです。

1、Parallelsを起動、「新規」を選択
2、オペレーティングシステムを「カスタム」を選択
3、OSタイプを「Linux」、OSのバージョンを「Fedora Core Linux」を選択
....
....
と「次へ」をクリックしながら進める。

4、設定が済んで起動前に、起動ディスクとして、ダウンロードした「Fedora-8-i386-DVD.iso」をディスクイメージとして選択して、起動
5、Fedoraのインストーラーが起動するので、いくつか設定を聞かれる。
ほぼデフォルトのまま進めれば問題なくインストール完了です。

Parallels Toolsのインストール方法は、
1、rootで、ログイン
2、Parallelsのメニューの「デバイス」「CD/DVD...」「イメージに接続」を選択(図)
Parallels_desktopscreensnapz007
 
3、「/ライブラリ/Parallels/Tools/」の「vmtools-linux.iso」を選択する(図)
Parallels_desktopscreensnapz008
 
4、Parallels-tools.runをダブルクリックして起動(図)
Parallels_desktopscreensnapz009
 
 
解像度が800x600のまま選択できません。
画面のサイズを変更する
1、rootでログイン
2、ターミナル(端末)を起動(図)
3、etc/X11/xorg.confをviで開く(図)
Parallels_desktopscreensnapz010
 
4、ず〜っと下の方の、Modes "800x600"に、以下のように、いくつかのサイズを書いて、保存して終了(図)
Parallels_desktopscreensnapz011
 
5、私の場合は、"1280x800"で使ってます
 
 
 
さてさて、本題のRobomicのRZ1ソフトのLinux版ですが、
RZ1Actionは、3DのエンジンのQuisaのLinux版が使えないので、たぶん簡単には対応できない。
RZ1Basicは、たぶん動く物が作れるような気がする(まだできてない)。
RZ1Disguiseは、動くものが作れましたよ!!(図)うれし〜!!

Parallels_desktopscreensnapz006

| | コメント (7) | トラックバック (0)

RZ1Disguise v0.0.9 公開

Rs2rz13_2RZ1Disguise v0.0.9を公開しました。

Windows版をお使いの方は、旧バージョンにおいて、インストーラに関しての不具合を修正していますので、旧バージョンをお使い頂いていた方はこちらをお読み下さい。

Mac版における更新内容
●最新のコンパイラ(REALbasic 2007 release4)で作成

Win版における更新内容
●インストーラの不具合を修正(重要)
●最新のコンパイラ(REALbasic 2007 release4)で作成

ダウンロード

| | コメント (0) | トラックバック (0)