私信:Uteroさま


Uteroさま。
お言葉に甘えて、本当にアプリケーションをお願いしようと思います。
ロボゼロユーザーしか使わないという本当にニッチなプログラムですが、何卒お願いします。




まず、画面イメージです。
私がロボットをマックでやっているのでマックで使えるように、でも
他のユーザーも使えるようにwinでも動くように、ということで、
ブラウザタイプでおねがいします。

見た目のイメージは以下の感じかと思います。


計算機1

計算機2





【アプリケーションの主なもくてき】
・ロボ全体のサーボ群の移動前・移動後の2点の位置を設定した配列から、
 その移動にかかる最小時間を提示する。
 また、その2点を分割できる。


【ロボゼロの概要】
・ロボゼロは24個のサーボモーターを同時に動かすロボットです。
・サーボモーターとはマイコンで指示された角度に正確に移動できる特殊なモーターです。
・モーションプログラムは、
 「24個のサーボ絶対位置」+「その移動にかける時間」の計25個の数値を1行で示します。
 その1行=パラパラ漫画の1枚のような感じで、
 動きを作っていくしくみです。


【本論】
・書式には2種類あります。

基本書式(1)の例

Move(128,-226,2,333,1,141,-9,768,589,-1000,-36,-1095,1065,92,979,-623,-818,97,13,0,-385,-17,217,-166,3000)

→コピペでクリップボードに入れたい基本形です。
 Moveというのはプログラム用のコマンドで、カッコの中の最初から24個目までが、
 1~24番サーボに対応した位置の数値です。
 最後の3000というのは、前の動きからその動きまでの所要時間の指示です。
 サーボの限界を超えた数値を入力すると、サーボの最速時間で移動しようとします。
 また、数値にxが指定されていた場合には、その箇所のサーボは動きません。
 MOVE(-300,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,2400)
 移動後にx、もしくは移動前後共にxが指示されている場合は無視できますが、
 移動前にxが指示されていた場合には、「移動前のxを規定してください。」
 というエラーメッセージと共に手動入力できるようにしたいです。
 さらに、数値はV01(最大3ケタ)などの変数でも指示することができます。
 その場合は、移動前、移動後ともに「変数を指定してください。」とエラーメッセージが欲しいです。
 さらに、その指示には、x(規定しない)も指定できるとうれしいです。 

基本書式(2)の例

1 P FtgHome2/2 -450 -226 931 -946 0 -120 -31 383 331 -329 -31 -331 331 31 329 -331 -383 110 0 0 978 -928 180 450 0.1

→タブ区切りのデータがクリップボードに入ることもあります。
 1~3番目までは不要で、4つめの-450からがサーボの数値になります。
 最後の0.1というのは、書式(1)とは単位の違う設定時間です。
 この数値でコピペ入力があった場合には、書式(1)に変換してほしいです。

・サーボは、1~24番まで、箇所ごとにスピードが異なることがありますので、
 速度を選択できるようにしたいです。


【サーボの速度や数値について】

<プログラム上の数値>
・各サーボのプログラム上の数値は、0を中心として、-3000から+3000までです。
・なので、移動後から移動前の数値を引いて、その絶対値が各サーボの移動角度になると思います。
・移動角度が最大になるサーボから、最短時間を割り出すことになると思います。
・25項目の時間の単位は2400で1秒です。
・ちなみに数値1=0.1度になります。150なら15度です。

・プログラムの使用などは、こちらのまとめが分かりやすいです。
 → http://micutil.com/rx/refer/app.html

<実際のサーボ>
・サーボは今のところ2種類です。上位機種と下位機種の2種類です。
・下位機種「RS304」のサーボスピード 0.16 [sec/60°]
  → http://www.futaba.co.jp/robot/command_type_servos/rs303mr.html
・上位機種「RS303」のサーボスピード 0.11 [sec/60°]
  → http://www.futaba.co.jp/robot/command_type_servos/rs304md.html


【できれば欲しい機能】

・モーション分解機能
 移動前→移動後の2行で表わされるコマンドを、
 5行、10行と分解してくれる機能。
 これがあると、たとえば2行で描くパンチモーションはパンチが終わるまでひっこみませんが、
 2行のところ4行ならば、ボタンリリースでモーション途中でひっこめる(フェイント)
 などが比較的カンタンに作れるようになります。
・モーション分解機能2
 正比例的に分割するのではなく、二次曲線的に分解する方法。
 使い方はわかりませんが、あった方が便利な気がしています。



たぶん意味が分からない部分だらけだと思いますので、なんでも即答できるようにします。
完成したら、ご飯おごりに名古屋に参じます♪
スポンサーサイト

コメントの投稿

非公開コメント

No title

あと、一応ですが、ソースにUteroさんのクレジットを入れておいてください。

ためしてみました。

いい感じだと思います!
・MoveはMOVEという大文字でも読み込めたい。
 (現状、MOVEで読み込むと、最初の数字が2つぐらい飛ばされてデータが狂う症状です。)
・やっぱりオプションでお願いしていた二次曲線的分割まで欲しくなってしまった。

夜はや目にブログで中間報告記事をしてみます。
実際にどういう風に使うのかを兄弟に示しつつ、
他のユーザーからも意見をもらってみたいと思います。

No title

すみません、今日か明日試します。

No title

明日、入力したものが理想と同じになるか、実際に試してみます!

No title

すごいすごいすごく出来てますね。
本当に忙しいとパッタリ趣味をやらなくなるので、ブログ更新するのはヒマのある証拠です。
あと、ヒマのあるときにブログを予約で多めに書いて、毎日ロボットを作っているフリをしたりもしています。
プラレス三四郎もニコ動で見たりしています。

>0,1,2,2とサーボに移動指定
これでもほとんど問題ないですが、もし0,0,1,2とできるならその方が嬉しいです。
行動終わりにつじつまを合わせるイメージです。

あと、ギズモの件、見てもらえて嬉しいです。載ったのはマグレですが、無事元気に遊んでいる姿が届いたような気がしてヨカッタです^^
今日はロボットの集まりで、X68000のスターウォーズを当時プロデュースしたという人に偶然的にお会いしました。少し前に、YouTubeで改めて見て、オーパーツのようなカメラアングルだなーと感心していたところだったので、びっくりしました。面白い人でした^^
http://www.youtube.com/watch?v=A2WvGXHr8CA

No title

書き込んで気がついたんですが、所要時間(2400/sec)は切り上げじゃないと動作完了しないから小数点以下は切り上げですね。今後の分割の場合の質問もついでに質問。分割した際に割り切れない場合や、分割数以下しか角度が変えあらない場合(特殊というか多分無いと思いますが)の場合は先に処理をしちゃっていいんですかね?
例えばbeforeが0でafterが2の場合で4分割の場合に0,1,2,2とサーボに移動指定でいいですか。

No title

今週は色々とありまして、あれから今日まで何もできませんでした><
というか、一日に2時間ほどは時間あるのですが2時間しかないと性格的に受動的な行動しか出来ないダメなUteroなのでした・・・だから兄弟が少ない時間でロボをいじったりwebを更新するパワーには感心しきりです。
で、少し今日いじりまして計算は出来るようにしました(ただしXだったり変数だった場合の処理は出来ていません)表示は小数点以下3桁にしたんですがこれでよかったですか?またサーボはチェックが入った場合に上位サーボにしています。動かしてみて何か腑に落ちない時は教えて下さい。
多分このまま行けば、5,6時間あれば完成しそうですYO

http://uterogomi.web.fc2.com/2.html

あとギズモードに取り上げられるのは凄いですね、Utero実はギズモはちょこちょこ見てるんで誇らしかったよ

すげぇでやんす!

兄弟
リンク先みたら、もう9割方できてるじゃないですか!
まったくもってイメージ通りです。
・・・uterogomiって(笑)


>前提で質問します・・・before状態からafterまでにどれだけの時間で移動できるかが求めたい値でOK?
>で、各サーボの移動時間を求めて最も時間がかかるサーボの移動終了までに必要な時間を求めればOKですか?

その認識で完全に合ってます!
beforeもafterも最後の数字は実は関係なくて、出力として求めたい数値です。
言い直す必要がないくらい、その認識で合ってます。
しいて言えば、
5枚のパラパラ漫画で、beforeが3枚目、afterが4枚目の動きだとすると、
afterの最後の数字が3枚目から4枚目への移動にかける時間、
beforeの最後の数字は、2枚目から3枚目にかける移動の時間です。
本当に、言い直す必要がないくらい、認識合ってます。


>その解釈があっている場合afterの0.1という時間で実際は動作終了しない場合、
>モーション分解画面では上で求めた時間を必要時間に書き込む形でいいのかと思っています。

それも完全に合ってます!
指定の移動時間に余裕がある場合→afterの数字を割って使う
指定の移動時間が足りない場合→最速時間を割って使う
となっていると、うれしいです。


>書式2の0.1を書式1に変換する単位も教えて下さい。

たぶん書式1の2400で約1秒で、書式2の単位は秒なので、

[書式1の数字]÷[2400]=書式2の時間

で、お願いします。
(あとで実計測したりして調整するかもしれないので、ソースで設定できるようにしておいてもらえると助かります。)


>書式1だけでの例になりますがafterの時間が1000表記の場合に実際に1200かかる場合
>・・・・こんなかんじで有ってますかね?

完全に合ってます!
出力の時に、1行目の最後の数字をいじらずにそのまま出すところも、完全に合ってます。


>beforeにxが入っていて、afterにxが入っていない場合など)実はここと、
>直接サーボの値を書き換えた場合の動きが一番時間掛かりそうですw

あ、サーボの値の書き換えは、テキストボックスの中での書き換えで大丈夫です。(面倒そうなので。)
berofeにxが入っていて、afterにxが入っていない場合は、エラーメッセージを出してくれればOKです。
(って簡単にいいますけど、それが面倒なんだよ!ってことだったらすみません。)
エラー数値の修正は、テキストボックス内で行う感じで。
・・・でも今ためしてみたら、やっぱりコピペ用テキストボックスじゃなくて、
下の数値ボックスの中の数値を直接書きかえられた方がうれしいです!


>見た目は最悪ですので最後に整形しようかと思ってます

かなりイメージ通りです!データの都合で横長になりすぎるかと思いましたが、
左右幅もいい感じにコンパクトにおさまっていると思います!

あと、
http://www.gizmodo.jp/2013/03/post_11754.html
に紹介されたのでご報告。

No title

おつかれーす

再度質問です

before
Move(128,-226,2,333,1,141,-9,768,589,-1000,-36,-1095,1065,92,979,-623,-818,97,13,0,-385,-17,217,-166,3000)

after
1 P FtgHome2/2 -450 -226 931 -946 0 -120 -31 383 331 -329 -31 -331 331 31 329 -331 -383 110 0 0 978 -928 180 450 0.1

前提で質問します。beforeの最後の3000はbefore状態に3000の時間で動く、そこからafter状態に0.1の時間で動くという意味と理解しました。なので計算時にはbeforeの3000というのは関係なく(既に3000の時間をかけてbeforeの状態にサーボはなっている前提)before状態からafterまでにどれだけの時間で移動できるかが求めたい値でOK?

で、各サーボの移動時間を求めて最も時間がかかるサーボの移動終了までに必要な時間を求めればOKですか?

その解釈があっている場合afterの0.1という時間で実際は動作終了しない場合、モーション分解画面では上で求めた時間を必要時間に書き込む形でいいのかと思っています。書式2の0.1を書式1に変換する単位も教えて下さい。

書式1だけでの例になりますがafterの時間が1000表記の場合に実際に1200かかる場合

分割しない場合(正しい移動時間を記入した状態で書式1に置き換える)
move(・・・・・・・・・・・・・・・・,1000)
move(・・・・・・・・・・・・・・・・,1200)

3分割の場合
move(・・・・・・・・・・・・・・・・,1000)
move(・・・・・・・・・・・・・・・・,600)
move(・・・・・・・・・・・・・・・・,600)

こんなかんじで有ってますかね?ちなみに書式1と書式2を読み込むところは出来ましたが入力チェック等を今から実装します(beforeにxが入っていて、afterにxが入っていない場合など)実はここと、直接サーボの値を書き換えた場合の動きが一番時間掛かりそうですw
あと、htmlさっぱりなんで見た目は最悪ですので最後に整形しようかと思ってます、そしてソースが酷いので機能が実装できたらスッキリさせたいと思います。

一応途中経過 http://uterogomi.web.fc2.com/1.html ソースは汚いですが中身に興味あれば覗き見して下さい

No title

ありがとです!

>「例えば書式1の場合は必ず「move(」から始まるようなルール」
それで合っています。

>「V01」とかの場合
未定の数ということで、代わりにxが入るようになっていると良いと思います。
xはその箇所のサーボは動かさないという意味です。
「変数が含まれます」というメッセージを出しつつ、xに置き換えることで計算結果は出力できるようになっていると助かります。

>テキストボックスに貼り付けてもらってボタン押下でテキストボックスの値取得
了解です!それでよいと思います。
画面イメージの図で言うと、一番上にテキストボックスがあって、そこに数値を1行ペースト後、
Beforeボタン押下で移動前のパラメータを入力&テキストボックスクリア。
改めて同じテキストボックスに2行目をペースト後、Afterボタンで・・・という風でよいと思います。

遅くなりましたが

遅くなりましたがソフト作成始動したいと思います。
色々調べてからでないと動き出せない性格故申し訳ありません><

でも結局は動き出してから先に調べた事の理解が間違っていることがやたら多いのですがw
で、一つ質問ですが、入力されるテキストが書式1なのか2なのかを見極める為の決まりみたいなものってありますか?
例えば書式1の場合は必ず「move(」から始まるようなルールがあれば簡単に見極められます。片方が判断出来れば「それ以外」ということで自然と書式2だということも見極めれますので。

あと「V01」とかの場合にどうすれば良いのかいまいちイメージ出来ないです、教えてください。
他にも疑問点がありましたが、小さいパーツを実現させてから次に移るつもりなのでまずはここまでで。

あと、いきなり実現不可能な機能発見しました。ブラウザがIE以外の場合はクリップボードの内容を取得することは不可能なようです。これはWebで動かした場合にクリップボードの中身が知らない間に抜かれると危険な為なようです。
そこはテキストボックスに貼り付けてもらってボタン押下でテキストボックスの値取得にしたいと思います。

コツコツ進めてブログたちあげて報告出来るようにしていきます。いやー自分のスキル不足に正直驚愕しています・・・
スクリプト馬鹿にしてましたw

No title

ゲーム感覚で楽しんでもらえたら助かります。こちらも同時並行的にJavascriptを勉強してみようと思います。コピペのあたりが難しそうだなって思っています。作成日記は面白そうですね~。久々に兄弟の毒入りの文章がよめる・・・かな??

おぼろげにイメージできました。javascriptはド素人なので勉強しながら作成して行きますね。兄弟とjavascriptを一緒に覚える感覚で作成日記を作って備忘録的に進行するかもです。兄弟に質問する事も多そうなのでよろしくお願いいたします!!
プロフィール

二名川(ニナガワ)

Author:二名川(ニナガワ)
ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。
子供が夢を見ている時間帯に稼働します。

宣伝:電子出版しました。
「コンソロイド ガイドブック」
46107_CONSOLOID_GUID_FACE_200.jpg





■作成中の機体
汎用ヒト型決戦遊具 ~RX計画~
RX-7.5 ゼロタンク
RRf-0.6 ゼニィ
RXM-7.9 ゼムネス
RX-7.5R 量産型ゼロタンク
RX-7.5Fp ファミタンク仮設1号
RX-7.7 ゼロキャノン
RX-7.8 ゼログレイ
SMS-0.1 ゼロライナー
以下続く

ブログ内検索
最近の記事
最近のコメント
カテゴリ
月別アーカイブ
リンク