あれこれ考えてみる(原点を見直してみる...5)
さて、前回のつづきです。
何回かに分けて「なんやかんや」書いてきましたが、roboBASICのゼロ点設定に関する問題について考えてみることにします。
●【roboBASICのゼロ点設定:読込み】
コントローラー形式「MR-C3024シリアル」と「MR-C3000シリアル」のそれぞれに関して、読込みの際の挙動をラインモニターで調べたものを、簡単にまとめてみると、以下の様な違いがあります。
コントローラー形式「MR-C3024シリアル」
- 現在の位置を取得
- モーターの速度設定
- ゼロ点補正値を取得
- DIR値を設定
- ゼロ点用基本姿勢にする
コントローラー形式「MR-C3000シリアル」
- 現在の位置を取得
- モーターの速度設定
- ゼロ点補正値を取得
1、2、3に関しても細かいことを言えば違いはあるのですが、明らかに違い部分として「MR-C3024シリアル」の方に、4と5の処理が余分にあります。
まず、5の処理に関しては、「MR-C3000シリアル」の方は、ゼロ点設定の読込みで、姿勢が変わらないのに対し、「MR-C3024シリアル」の方は、上肢を外転した姿勢になることでわかるかと思いますが、ロボノバ/ロボザック基本16関節用のゼロ点基本姿勢にモーターを動かしてくれます。
ゼロ点用基本姿勢というのは、メモリー上のどこかに記録されているものではなく、また自分でカスタマイズできない値である為、ロボザックのヨー軸追加など、拡張している場合には、その姿勢が適さないかもしれない場合もあるかもしれませんね。一方、「MR-C3000シリアル」の方は、姿勢を変えないので、ゼロ点設定を行う前に、ゼロ点設定用の基本姿勢にあらかじめさせておく必要がでてきます。
しかし、(私のロボザックは16関節のままなので試していませんが)RZ1Basic v0.4.9以降では、ゼロ点設定用の姿勢を設定できるため、ゾボザックのサーボモータを拡張している場合においても、ゼロ点設定用の姿勢をとらせることができるようになっています。
そして、4番の処理ですが、この処理が問題を引き起こす正体なんですが、5番の値も決め打ちなら、4番の値も決め打ちで、
DIR G6A,1,0,0,1,0,0
DIR G6B,1,1,1,1,1,1
DIR G6C,0,0,0,0,0,0
DIR G6D,0,1,1,0,1,0
を書込む処理です。
DIR設定は、先日説明したように、内蔵EEPROMの0x0FB0からと、SRAMの0x04E7から、そして、さらに、プログラムに書かれているのにも関わらず、そこから読み取ることもなく、さらに言えば、「MR-C3000シリアル」のように、DIR設定値を設定する必要なんかないのに、上記、DIR値を書込んでしまっているのです。
ご存知の通り、ヨー軸追加している場合、4番と22番のDIR値が、それぞれ、上記とは異なっています。従って、プログラムを動かす時とは異なった回転方向の補正値が保存されてしまうのですね。
ということで、今回はここまで
つづく。。。
----------------
にほんブログ村
| 固定リンク
「工作・改造・解析」カテゴリの記事
- Maker Faire Tokyo 2014 に行ってきました(2014.12.14)
- ワイヤーストリッピングゲージ(2014.06.26)
- Arduino関連の本を買いました(2013.09.04)
- Maker Faire Tokyo 2012 12月1-2日開催(2012.11.09)
- 5V対応SBDBTがついに発売開始!(2012.10.26)
この記事へのコメントは終了しました。
コメント
macwinです。 当方のサイトにお立ち寄りいただきありがとうございました。
EZ1Basicですが、だいぶ前からDLさせていただいております。 私のPCはVistaですが、ROBOBASICはXP対応とのことでしたので、そのためにXPのデュアルにして、XPのほうでrobobasicを使っている現状です。
残念ながらEZ1Basicはそういうことでまだ使用しておりません。 これから使用させていただきたいと思っています。
投稿: macwin | 2008年11月 2日 (日) 12時04分
macwinさん、コメントありがとうございます。お返事遅くなりまして申し訳ありません。RZ1BasicのRC無線のシミュレーションのデモンストレーションにmacwinさんのプログラムを使わさせて頂きました。
シミュレーションの為に、足の着地をプログラム中に書込まないといけないんですが、macwinさんのこのプログラムの新しいバージョンが公開されたら、また、足の着地を書込まないといけないので、RZ1Basicのシミュレーションにも対応して頂けるとありがたいなぁと思っていたんですが、ダメでしょうかね?
投稿: micono | 2008年11月 4日 (火) 00時00分
「RZ1Basicのシミュレーションにも対応」するためには、どうしたらいいのでしょう?
RZ1Basicを使ってコンパイルすればいいということですか?
そういうことであれば、是非そうさせていただきたいと思いますが、・・・。
miconoさんのプログでこんなに好意的に扱っていただいて感激しています。 どうしたらいいのか、教えてください。
あっ、そうか! ここで、わかりました。 メールアドレスをここで書けばいいのですね。 (ウェプ上では掲載しませんという欄に)
私のサイトでそれがわからなくて、くどくど書いてしまいました。 こういったやり取りに不慣れなもので、大変失礼しました。
投稿: macwin | 2008年11月 5日 (水) 01時04分
macwinさん、ありがとうございます。さっそくメールさせて頂きました。
プログラムをメールに添付したのですが、Windowsの場合、うまく添付書類が開けるのかよくわからないので、少し心配です。
何かありましたら、よろしくお願い致します。
投稿: micono | 2008年11月 5日 (水) 02時30分