▼徹夜
動作が全然出来ていない!まずい。とりあえず、歩行だけでも!!そんな訳で、徹夜です。歩行を成功させるべくひたすらモーション製作。途中足裏にゴムを張ってみる。
ゴムは前々から足裏に付けようと思っていた物。さっそく動作させる。ゴムのグリップ力恐るべし。さっきまでは滑って歩いていたようで、足が前に進まない。まずい。もう時間もない。
ひたすらモーション作りに撤する。出発まで粘った結果、10回に1回は歩行が成功したので、良しとする
▼会場にて・・・
会場に到着。9:30くらいに着いたのだが、控え室は満席に近い状態。ちょっと、驚く。席もなかなか見つからなかったが、たきざわさんの前の席が空いていたので、そこへ進入。急いで、ノートPCその他をセット。
「さてと、コンパクトフラッシュに入れてきたデータを転送してみるか。」
ノートPCにコンパクトフラッシュを挿そうとするが・・・
「む!?入らん!なぜじゃぁ〜Σ( ̄□ ̄;;)ガーン」
そう、入らないんです。「フッ、終わった・・・屈伸くらいは出来たのに・・・」
▼参加資格はもらえたが・・・
データが転送できないと伝えるが、出場可能になりました。本戦には行けないと最初から思っていたのでそれは良いのですが、動いちゃくれない。このままではまずいので、コンパクトフラッシュ挿入部分を適当につついたりしてみると、なんか破片が移動したような感じ。
「コイツは・・・いけるか!?」コンパクトフラッシュを挿す。「カシャッ」
「は・・・入ったぁ(T▽T)うるうる」これで、救われた。
▼出撃はまだ先・・・
到着した時、受付でくじを引く。ここで自分はエントリー番号と同じ58番を引いた。受付の人も驚きの様子。運がいいのか分からないが、とにかく最後の方である。
徹夜して眠かったし、緊張していたので、今回も昼飯はほとんど喉を通らない。まだまだ時間があるので、とりあえず動作チェック。「ありゃ?なぜエラーが出る!」
どうやら、コンパイルする時に必要な設定をしたものを入れてくるのを忘れたようだ。DMA割り込みの設定がされたデータが入っていないので、動かそうとしてもエラーが出る。
ノートPCの中にハードウェアマニュアルが入っていないか、捜索する。発見!次に割り込みベクタテーブルのアドレスを設定に加える。「これでどうだ!」エラーなしで、起動。様々なトラブルはあったが、行けそうである。
▼いろいろやってみる
とりあえず、歩行をやってみるが、やっぱりうまく行かない。まぁ、もう力尽きているので、仕方がない。屈伸や片足立ちもそれなりにうまく行っている。電池も異常なし。無線はうまく行かなかったので、ほったらかし。
作業途中、吉村さんが戻ってきてRB4.1の最大奥義(?)三点倒立を披露して頂いた。「凄い!ついに、こんな所まで!!」感動である。歩行や起き上がりのスピードもUPしており、かなり強力!憧れますね。
たきざわさんのアダマントサードも起き上がりテスト!あの巨城が起き上がる姿は圧巻。充電池パックも「夢さん」が紹介されていた方法を使用されていた。全てお茶関係のパックなのが面白い。さて、自分も頑張るか。
▼そして、あの時がやってくる
新たに、お辞儀コマンドを入れる。動作させても倒れないので成功だ。一通りチェックしていた時、アレは起こってしまった!動作途中に倒れる。なんか様子がおかしい。立ってる状態でチェックすると、左足首が動作してない!屈伸すると、左足首が発作を起こすのだ。(左足首が暴れます。)
「な・・・何が起こったんだ!?Σ( ̄- ̄;)」
色々調べてみるが、原因不明。たぶん、接触不良か何かだとは検討がつくが、もうじき出撃である。間に合わない。今度こそ、本当に終わりである。
▼Wegweiser出撃す
ついに出番だ。先にバカ小屋の不良学生さんの機体が演技をしていた。
「おぉ!あの手は握れるんだ!」色々な物を握っては振り回しておられた。
「やっぱり、握れる手は良いなぁ・・・いつかは作ってみたいものだ。」
そして、自分の出番。全部有線である。そこでノートPCのマウスがコントロール不能に!しかし、落ち着いてモニターを起動する。いよいよ起動!立つ事はできた。
「さぁ、まずはお辞儀だ!動いてくれよ〜」お辞儀開始。左足首の発作で後ろに倒れる。屈伸開始、曲げてから戻す時に後ろに倒れる。片足立ち、歩行。全て後ろに倒れる。
「ぜ・・・全滅だと!?そんなバカな。」ダメであった。悲しきカナ。
▼集合写真にて・・・
ロボットの集合写真を撮っている。自分もすかさず膝立ちで参加。
「フフフ、デジカメ持ってきてよかった。さてとスイッチオン・・・む!?」
その時、信じられない光景が!!?
「メモリースティックが入っていません!?」
なんと、デジカメにメモリースティックが入っていなかったのだ。カメラはあるが、フィルムがない。ロボットはあるが、データが入っていない。似たようなことを朝やっていた事に気づく。間が抜けているなぁ・・・。
「吉村さん:今日はそんな事ばっかりだね。」
はい、その通りです。今日はなぜか、ボケすぎている。踏んだり蹴ったりとはこの事か!?(大げさか・・・)仕方ないので、映像は自分の頭の中に入れておくことにしよう。
▼懇親会
時間は短かったけど、色々な方とお話を出来て、とても楽しかったです。ROBO-ONEも楽しいけど、その後の懇親会(飲み)はさらに楽しい。マダマダこれからな感じですが、次回の第4回こそは、本戦に行けるようがんばらねば。
▼今回のWegweiserは・・・
機体事態は、まだ変更したい部分など色々ありますが、歩かせるなどの動作は今回の機体ならば、できると思います。確かに、腕をつけると重くなってしまいますが、それでも、なんとか立っていられたし、ギリギリ行けると思います。
問題は、ソフトの方でこちらが甘いと思います。なので、ソフトを頑張れば、歩けるようになると、自分は思います。そんなわけで、今回の開発は成功したと言えるでしょう。
▼更新が・・・止まっとる。
気が付けば、1週間過ぎていました。時間が進むのが早い!>ぉぃで、何もしてなかったわけではありません。次期機体をどうするか考えていたり、RCサーボをモータドライバで制御しようと試みたり、色々ですね。「RCサーボをPID制御しようと足掻いていた」というのが実際です。うまく行きません。
▼H8/3052Fに挑戦!!
というわけで、前々からやろうと思っていたH8/3052Fの半田付けに挑戦してみました。今まで、あの細かい足を半田付けしなければならないことに抵抗があり、敬遠してきましたが、買ってきちゃいました。秋月で一式購入できます。(画像がボケてますね、すみません。)ピッチ変換基板は秋月じゃ売ってないので、千石で購入しました。
▼半田付け・・・行けるか!?
半田付けの方法は、「オーム社出版の自立型ロボット製作バイブル」に載っていたので、そちらを参考にしました。フラックスをピッチ変換基板に一塗りし、H8/3052Fをずれないように慎重に置き、本に書いてある通り、4隅を半田付けしました。(動かないように固定するため)そして、あとはコテ先に半田を付けて、半田付けしたい部分をなぞるだけ。
ススッと流れていくのが面白いですね。なぞるのは一回くらいに留めておいた方が、隣の配線に半田が流れないようです。なんとか無事に半田付けできたようです。
▼さぁ、他の部品を半田付け。
半田付けしただけでは、動くかどうか分かりません。買ってきた部品の数を確認。「む?なんか足りん・・・」(10秒経過)「1μFのコンデンサーと、ダイオードがない!!」部品足りなきゃ、動きません。そんな訳で、火曜日にまた購入に行きます。(秋月開いてます。)
< 結局、こういうオチなのね。(T▽T) >
▼3号機の足首調査。
っと、ココまでは昨日までの話なんです。ココから今日の話の開始であります。今まで、PID制御とかばっかりやっていて、ほったらかしだった3号機にメスが入ります。念のため、もう一度プログラムを入れて立たせて見ます。「やはり、動かんか・・・」この状態は前回と同じ。コネクタの接触不良かもしれないので、端子を交換し、起動。
「エラー、エラー。」
「ふぅ、何が原因なのだろう・・・アレ?どうしたんだ!!」
その時、整備員が見たものは!?(←いませんって)
PS2174FETの生死 [1.05mpg(MB)]
▼容態、さらに悪化。
「今度は右足首がやられた!?しかも、2軸とも動作不全だとぉ!」今度は、右足首までおかしなことに・・・伝染病なんですかね。(笑)このままでは、ラチがあかないので、問題の左足首を取り払い、前までついていたRCサーボ用のコネクタを半田付けし直し、テスト用基板に装着し、調査を実行!!
▼PS2174FETは生きているのか!?
「基板が壊れていなければ、動くはず!」RCサーボとH8に火が入れられ、RAMにプログラムを転送。いよいよ運命の時が来た!!「スイッチ、オン!」「ギーッ」RCサーボ特有の音を出し、動作するPS2174FET。「生きていた・・・!?」
RCサーボは無事だった・・・しかし、3号機が立つことはできない。配線を変えるとしたら、膨大な作業になりそうだ。やりたくないと言うのが本音。とりあえず、今は4号機の事を考えておこう。4号機に与えられた課題が徐々に見えてくる。
PID制御がうまく行かない以上、RCサーボ内臓の基板を使用することを視野にいれた、設計が必要になってきそうだ。また、失敗するかもしれないベルトにも挑戦しようと考えている。入手しやすいラジコン用のベルトを使うため、どうなるか不明。
設計ができ次第、製作に入ろうと思います。(とりあえず足だけです。)
第四回ROBO-ONE開始は、8月
▼診るたんびに症状が悪化してますな。
次期Wegweiserに搭載されるRCサーボの配置も大体決まり、もう一度3号機を動かそうと試みる。前回の調査では、左足首RCサーボのプラギアが欠け、予備もなくなってしまったという最悪の結果であった。しかし、右足は無事なので、片足でできる事をやろうと思う。
さぁ、とりあえず前回と同じ状態かチェックだ!
RCサーボ用電源接続・・・各部異常なし!
AKI-H8/3052用電源接続・・・各部異常なし!
通信ケーブル接続・・・む?右足に反応!異常事態発生!
前回は、なかった症状が発生しました。何も信号を送っていないのに、勝手にRCサーボが動くのです。信号を送っても、元には戻りません。そこで、テスターで怪しい部分を調べてみました。一番最初に怪しいと思ったのは、RCサーボ用電源のGNDとH8用電源のGNDとを繋ぐコネクタです。調べた結果、睨んだ通り断線していました。原因は、疲労と引張り等の力によりにより内部の線が切れてしまったと推測できます。
コネクタ端子を取替え、もう一度試したところ、前回と同じ状態に戻りました。
▼全ての原因はマザーボードにあり?
今までの調査で、RCサーボから出ている信号線自体に異常もなく、RCサーボ基板にも異常はありませんでした。というわけで、原因であると思われるマザーボードを作り直してみる事にします。結果はまた後ほど・・・(2003/02/19/19:36分現在)
第四回ROBO-ONE開始は、8月9日, 10日, 11日
▼ようやく前進?
前回から早1週間が過ぎてしまいました。早いものです。しかし、その分前進しました。前回の続きで、まず実験用マザーボードを新規に作りました。(ただコネクタとH8を繋いだだけの物)このマザーボードを使い、様々な問題点の改善をしていきます。
- 動作中に送る信号が止まってしまう現象。
- 足の先端を入力させるだけで各関節の角度を決める方式に移行したい。
- ATAN, ACOS, ASINのヘッダーファイルの作成。
- RCサーボのスピードをコントロールしたい。
- 配線の修復(切れていると思われる箇所)
- ジョイスティックで動かせるようにしたい。
と、たくさんあったのですが1週間でなんとかできました。
▼原因にされてしまった、マザーボードの判決は?
新しく作り直したマザーボードで信号を送ってみた所、同じ結果が起きました。信号が送られていないのです。別のH8を使ってみたところ、あっさりと動きました。どうやらポートが破損していた模様。原因は分かったものの、通信スピードが(9600bps)なので、遅すぎます。これを(38400bps)の設定をしてあるモニターデバッガに取り替えようとしましたが、書き込むことができません。もう一方は問題なく何度でも書き込めます。うー・・・両方の悪いところを一つのH8にまとめたい気分。仕方ないので、この件は保留。
▼計算の前に・・・
逆運動学計算は魅力的ですが、計算をするにしろ何にしろ、突然信号が止まってしまうと思わぬケガ(この場合ロボット)をしかねません。そこで、原因を徹底検証してみました。今回の現象が起こるのは以下の通りです。
- 1°ずつ(膝の場合2°ずつ)屈伸をさせている途中に信号ストップ。
- 信号がストップするのは決まって32°の後。
- リセットは掛からない。
- 2°ずつ(膝の場合4°ずつ)屈伸させると問題なく動く。
- 足に接続する信号線をはずした状態でも信号は止まる。
- DMACの機能を停止させた状態だと、問題なくパルスデータを作成してくれる。
- 足首関節だけと腰関節を1°ずつ動かしても問題なく動く。
- 足首関節以外を動かしている時は問題なく動く。
- 腰関節以外を動かすと、信号は止まる。
以上の事から、信号を送っているプログラムに異常が発生しているようです。信号発生プログラムはDAMC(DirectMemoryAccessController)を使用した物で、メモリに保存されたデータ(0xff等)を高速で周辺機器(この場合ポート)に転送してくれる便利な機能を使ったプログラムがされています。
前回の試作2号機から試験的に使われていましたが、バグだらけでした。今回のはマシなプログラムになっていると思っていたのですが・・・
そんな訳で、まず正常な直立状態から問題の起こる部分のパルスを比較してみることにしました。DMACの機能を止めておけば問題なくパルスを作ってくれますから、データは入手する事ができます。
結果、作成されたパルスに何の異常もなかったのです。しかし、立ち上げた信号をGNDに落とすタイミングにおかしな部分があると気づいたのです。
それは、「20(6.4μsec)」という時間です。他の問題のない信号を見ましたが、最低でも「40(12.8μsec)」以上の時間でした。そこで、「20(6.4μsec)」だったら、30(9.6μsec)にするというプログラムを組み込んだ結果、問題なく屈伸の動作を行えました。この後も、信号が止まる事があったので、今では「35(11.2μsec)」になるようにしています。
動作中に送る信号が止まってしまう現象。【解決!】
▼ジョイスティックで動かせるようにしたい。
これは何とかできるようになりました。プログラム等の内容は後日まとめようと思います。一応、二通りほど動画を用意してみましたので、よかったら見てください。
計算による屈伸[1.30mpg(MB)]
計算による動き[1.30mpg(MB)]
計算はかなり荒いです。ATANとも整数までしか計算できず、しかも微妙に誤差が出ています。最低でも、少数第一くらいまでは計算できるようにしたです。(floatを使っていないので、細かく計算できない。)
[BACK]
[TOP]
[NEXT]
Copyright (C) 2003 U-hirohito All rights reserved.