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)

RZ1Disguise v0.0.8 公開

Rs2rz13_2RZ1Disguise v0.0.8を公開しました。特別な機能追加はありませんが、フォルダを選択して変換した場合に不具合がでる場合がありますので、旧バージョンをご利用頂いている
方は、お時間のある時にダウンロードして下さい。

更新内容:
1、フォルダを選択した場合、プログラミング・シミュレータからroboBASICの変換の不具合を修正した。
2、rsfファイルをウインドウにドラッグ&ドロップすることで変換できるようにした。
3、簡易マニュアル作成
4、その他いろいろ(メニュー項目名称を日本語にした、アバウト/ウエルカムウインドウを作成した、Windows版のインストーラにロゴ画像を付けたなど)

ダウンロード

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

RZ1Disguise v0.0.7 公開

Rz1disguise007更新内容:
1、プログラミング・シミュレータからroboBASICへの変換に対応しました。変換された、roboBASICのファイルは、上の図、右側のように、roboBASICで必要な情報も追加されます。
2、ファイルのタイプは変換しないで、SPEED値またはモータの回転方向を変換に対応しました。モータの回転方向のDIRの設定を変更した際に、ファイルタイプは変えずに、MOVEデータの値だけを変換したい場合などにご利用頂けます。

ダウンロード

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

RZ1Disguise v0.0.6 公開

Rz1disguise006

RZ1Disguise(ディスガイズ)を公開しました。rs2rz1のアプリ名を、これに変えました(汗)これまでの方がわかりやすいアプリ名だった思いますが、「D」から始まるものでって、こじつけで名前を考えたので、いまいち意味が分かりにくいですが、許して下さい。Rs2rz12_2


更新内容:
1、アプリケーション名を変えました。
2、アイコンを作りました。
3、Windows版の方、インストーラーを作ってみました。
4、(重要)roboScriptからプログラミング・シミュレータへの変換で、「This is roboScripts file! Do not edit this contents!」の部分の書き換えに対応した。
5、SPEED値の変換のオン/オフに対応
6、DIR(モータの回転方向)の変更のオン/オフに対応

ダウンロード

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

プログラミング・シミュレータから、roboScriptへ

rs2rz1 v0.0.5を公開しました。更新内容は以下になります。

1, roboScriptから、プログラミング・シミュレータへの変換の際、SPEEDの変換に対応した。
2, プログラミング・シミュレータから、roboScriptへの変換に対応しました。「プログラミング・シミュレータ -> roboScript」のボタンをクリックして下さい。モータの回転方向、スピード値の変換にも対応しています。

ダウンロード

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

戻ってしまう不具合と修正

Droppedimage2コムムスさんから「足がどうしても戻ってしまいます」とコメント(汗)
昨日直した時点ではちゃんと動いてはずなのになぜなぜ?っと思ったんだけど、ちょ〜ドジしてました。プログラミングシミュレーションの方はすべてのサーボに対する数値が入っていないとエラーを起こしてしまうんで、そこにすべて100を代入してました。が、例えば、前のMOVEが90で次のMOVIEに数値が入っていない場合、100ではなく90を代入しなければ行けないんですよね(汗、汗、汗)単純なことを見落としていました。そこんところ直した新しいバージョンをアップロードしておきましたのでお使いください。

あと、新たにフォルダ内に入っているRoboScriptファイルを一気に全部変換できるようにボタンを設けたので、こちらも試してみて下さい。変換されたファイルは、これまでと同じくファイル名に”_RZ”が付加されます。ちなみにプログラミングシミュレーション用のファイルがそのフォルダに入っていても、無視する仕組みにして、RoboScriptのみ変換するように作ってありますので、選択するフォルダの中にRoboScript以外のファイルが入っていても気にしないでも問題ないと思います。

あと、反転のチェックボックスですが、いちおう私の環境では前回アップロードした状態で正しい動きのように思いますので、そのままにしてあります。

ダウンロード

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

変換したファイルを調べてみた

Droppedimage1_3変換の元となるスクリプトファイルは、HitecさんのRobonova-Iのダウンロードページにある「ROBONOVA-Iサンプルモーションデータ(Script file)」です。

BootCampを立ち上げて、実際にRZ1プログラムシミュレータを立ち上げ、rs2rz1で変換したファイルを読込んで、動かしてみた。

そしたら、デフォルトでチェックを付けておいた状態だと違ってたことが解りました。あれこれとチェックを入れたり外したりしてやっとわかりました。

1、2、4、6、7、8、18、21にチェックを、それ以外のチェックを外した状態が正しいようです(図右側、赤丸)。左側は変換したROBONOVA-Iサンプルモーションデータを動かしてみたものです(action_07.rsfを変換)。

と言うことで、デフォルトが、1、2、4、6、7、8、18、21にチェックされている状態になっているものを新たにアップロードしましたので、ご興味のある方は、お試しください。

※Windowsの場合(展開から起動まで)
1、ダウンロードした、rs2rz1.zipを、右クリック->「すぺてを展開」を選択
2、展開すると、rs2rz1というフォルダができる.
3、rs2rz1->rs2rz1->win->rs2rz1.exeというファイルがある.
4、rs2rz1.exeをダブルクリックして起動

ダウンロード

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

rs2rz1というのを作ってみた

Rs2rz1_2roboScriptのスクリプトファイルをRZ1プログラムシミュレータで開いても動かないみたい。なんで動くように変換するソフトをチョロっと作ってみました。 私はWindowsマシンを持ってないんで、プログラムシミュレータはBootCampでしか試せない(DirectXがParallelsで動かないから)んです。なんでほとんど試してないです。試してみて、ご意見など頂ければ嬉しいです。

ダウンロード

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