ツール開発中(経過報告)ゲームロボット/ゼムネス汎用ヒト型決戦遊具はじめました。ツール開発中(経過報告)▼すみません、開発中のアプリの記事なので日付を未来にしてブログの先頭にするようにしたのですが、ホビロボアンテナでも上位に上がってしまいます。明日までには下げますすみません。(2013.03.16記)対応していただきました。ありがとうございました!▼ちょっと長くてごちゃごちゃした記事ですが、ロボゼロユーザーの方はぜひ読んでいただけると幸いです。タイトルからおわかりの通り、Uteroさん本人はロボゼロも他のロボも全くノータッチな人です。クロスプラットフォームという私のわがままに応えて、守備範囲外のJavaScriptで作ってくれています。させてもらっています。私にとっては今一番欲しいプログラムなので本当に助かります。ありがとうございます。▼このツールは、ロボゼロのモーションの2つの動作の必要最小所要時間を割り出します。将来的には、そのモーションを均等分割したり、加速度的に分割できるようにします。(というかしてもらいます。)標準のRS304と上位サーボのRS303を混在できるようにもなっています。RXコントローラーやXcontrollerのモーションコピーのタブ区切りフォーマットも読み込める予定です。・無駄な動きをしている箇所(モーションのボトムネック)を診断できる。・モーションのスペック最速時間が分かるので、モーション最適化の目安になる・一連のモーションを分割することで、動作キャンセルをはさめる。(...かもしれない。実際にはカクカクするかも。)・二次曲線的な分割をすることで、衝撃吸収など、なめらかな動きが実現できる。(...かもしれない。)ロボゼロは全体的にカクカクしがちなので、このツールで通常モーションに少しでも生命感と運動効率をもたせられたらと思います。「つうこんのいちげき」を例に、実際に使用感を見てみます。(してもらっている)中のため、少々問題があります。※元のファイルでは拳の値は0ではなくx(設定しない)です。※元のファイルではMoveはMOVEで大文字です。(2013年03月13日現在、Moveのみ読み込み可。Move(136,62...をコピーし、ボックスの「動作開始前」にペーストします。「動作終了時」にコピペします。上位サーボのRS303を使用している場合には、使用サーボ番号にチェックを入れます。次に「読み込み」ボタンを押します。すると、下の表に数値がズラリと入力されます。それぞれのサーボの移動角と所要時間も表示されます。▼スピード的にボトムネックであるサーボのボックスが水色になります。その数値を基に、左下のボックスには、スペック上の最速数値が入ります。実際には「583(0.243秒)」必要とする動作だということが分かります。限界値より短い時間を指定しているので、サーボは可能な最高速度で動いていることになります。腕を伸ばすパンチということもあり、肘の21番サーボが一番多く運動していることが一目瞭然です。▼[2]から[3]は止めのモーションでサーボの移動がゼロなので割愛。▼[3]から[4]は、[2]から[3]の単純な逆回転なので、移動量的には上の表と同じ結果です。▼[4]から[5]は、パンチモーションからファイティングポーズへ戻るモーションです。肩ピッチを戻すのに時間がかかっており、[374(0.156秒)]の時間を要します。約40%ほどスピードが改善できるということがシミュレーションできます。(実際には、サーボを置き換えるより、モーション量を効率化する方がよいと思います。最後に、[1]の動作に必要な時間を計測します。[1]の動作の前は、該当箇所以外のプログラムで[5]の動作になるよう設定してある(つまり、パンチ動作の前は所定のファイティンポーズになるようにしてある)ので、[5]から[1]への移動量を見ます。あ、[4]から[5]の単なる逆回転なので、先ほどと同じ結果でした。▼このブログをお読みでロボゼロユーザーの方、ここがオカシイとか、これ全部もうすでに既存のアプリでできるよ!とか、こういう機能はないの?などツッコミがございましたらコメント欄にてお願いします。ソースは仮組み中でエレガントに整理する前のものなので、その点はご容赦ください。追加機能はたぶん私が勉強しながらやる予定です。オープンソースにする予定なので、お手元での機能拡張も可能になると思います。title動悸とは・・・お大事に!!!こちら、3年前に喘息の症状が出てアレルギーテストしたらスコア3000とかいうのが出てしまったのですが(普通は100ぐらいらしい)、震災後にマスク生活をしていたら調子がよくなったので、そのままアレルギー避けとしてマスクを続けてます。人付き合いに影響のない単独移動などではマスクおすすめですん。title今週末は体調崩してダウンしてます。聞きたいこともあったんですが何もできませんでした。title人形つかいさんすみません!ブログの日付を数年あげて未来にすると、表紙がわりになる、というよくあるブログテクを使っています。対応いただけるのでしたら、「未来だったら反映しない」とすれば今回の記事はキャンセルされると思います。(そのままでも明日には下げます。日付のことこちらで対応してみます。titleゆてろさまちょっとややこしくてすみません。分割と加速は似ていますが使用目的が異なります。あと、ぱぱっちさん方式にも賛成です。<ふつうの移動角分割について>1から5まで移動するとき、分割なしを1→5、分割ありを12345とすると、まず1→5に関して、★「新たなテキストボックで移動時間を入力」したいです。自然と12345の分割も最小時間で移動する感じになると思います。最速ではなく、ゆっくりと移動させたい時でも、移動角分割を使いたいのです。上記★のボックスで指定された時間の均等分割になると思います。この時、運動の目的は最速を目指すのではなく、なめらかさを目指すものになります。最初のツールに入れて最小時間を求め、その時間を各行に張り直していく感じになると思います。移動の分割は、パーセンテージにする必要はないなと気づきました。n1+(n2-n1)*8/(1+2+4+8)という風に移動角が入っていく感じになると思います。その時、時間は2400/(5-1)で600が[2]〜[5]に入力され、[1]には2400が常にデフォルトで入りたいです。(モーションをその部分だけ適当に実行すると、適当なポーズから[1]の位置に動こうとするので、1秒ぐらいかかるようにしておいた方が安全なので。)欲を言えば、1)移動分割の配分を、プリセットで選べるようにしておきたい。最小時間を、分割の各行に反映する「最速」ボタンがほしい。細かな設定と、使いやすさが両立できていると嬉しいのです!でも、最後の1)2)のお願いは、手動でも対応できるところなので、出来る範囲でよいです。プルダウンで手入力すべきテキストボックスにパッと入力されるイメージです。入力してもらえれば5分割で(50,25,25など分割数は可変)行けますただ根本的なことで悩んでいるんですが、このツールはソースで書かれている作動終了時間が実際に掛かる時間以下の場合を見つけたりする事が最初の目的で、もしそういう場合はこのツールで弾きだした最小時間に置き換えて分割表示だったと思います。すると、最初の動作はツールで弾きだした作業終了最小時間の1/4で全移動の1/2を行うという事になると思いますが単純に考えると最初の動作の場合はツールで求めた時間の半分かかってしまいます、これは分割した場合に与えられる移動終了時間の倍になってしまうのでは?この場合の動きがロボゼロではどのように扱うのかわかりませんが、指定された移動終了前に次の行動に移る?それとも指定した時間を超過して動作終了?かのどちらかになるのかと思います。なると分割された動作命令を再度このツールにほり込んで最小時間を求めるような事になる気がします。分割時に最も時間がかかる動作の時間を求めて全ての行動時間をそれに合わせるという方法で回避出来ますが、その場合は最初に求めた値と分割の場合の合計時間に剥離が出るなと。title二名川さん、Uteroさんこれ、すごいです。全宇宙で2人目に立候補します。実はこれとは少し違う視点で似たようなことを「Excel」でやってます。(まだ実機のロボゼロではテストしてませんが。)そちらについてはいずれ自分のブログに書きますが、分割は実現できていないのでぜひ欲しいです。計算式も良いのですが、難しくなりそうなので、例えば最大5分割までと決めてしまって、分割の割合を%で入力するのはどうでしょうか?そうすれば加速の計算と減速の計算の2つを作らなくてもひとつで済むと思います。減速の時は、50%、25%、12.5%、12.5%と入力すると、左下の最速数値を入力の合計値で割った値をもとに時間を按分して、サーボの位置を計算する、というような感じです。この入力方式なら、33%、33%、33%みたいにして、均等に3分割もできると思います。titleプログラム、すごくいい感じです。数字が入る上に、ボックスの中でも調整でますよね。再計算ボタンで、結果的にすごく操作しやすい感じになりました。ありがとうございまする。実は言ってる私もあんまり分かってないです。だれか助け船くるといいんですけど・・・やってほしいのは、2種類ありまして、「加速」版と「減速」版です。どちらも時間は一定間隔で、移動量をいじってほしいです。0から100の移動を「減速」で5分割すると、0→50→75→88(87.5)→100です。最初に半分移動して、次にまた残りの半分、最後の1回だけ、同じ距離を2分割。加速はその逆で、0→12(12.5)→25→50→100という風に5分割したいです。このとき、時間必要時間は入力値の均等割になります。titleあ、MOVE大文字には対応しときました。titleおお、moveの大文字小文字以外は一応うまく動いてますか。引き続き作成進めますね。世の中で10人程が必要としているかもしれないツール!!なんだか甘美な響きでうっとりします、作成意欲がビンビン来てます。みなさんの要望があれば喜んで実装したいです、何だか嬉しくなってきます!!あと、分割の二次曲線云々のところですがUteroは数学が苦手なので良く意味が理解出来ません><多分分割時に均等に分割するのではないというところまではわかるのですが数式が・・・数式さえわかればソースにも組み込めるかと思います。あとこのツールはしょーもない出来なので完全にフリーにしてください、改造も二次配布も罵りも全てOKです。週末には全ての機能を片付けたいと思います。»PagetopプロフィールAuthor:二名川(ニナガワ)ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。子供が夢を見ている時間帯に稼働します。