HRF−A03

Part2

ロボット関係リンク

第9回ROBO−ONEに向けてバージョンアップ中。 

本体
材質 POM、一部ABS
メイン制御基板 Laser5製 L−CardA、OSはLinux
サブ制御基板 姫路ソフトワークス製HSWB−02RG
関節数 23
使用モーター KRS−2346ICS Red Version
2006年3月13日

なんとか、配線を押し込んで形になりました。断線等、まだまだ不安要素はありますが、やっとモーション作成が出来そうです。

いいアングルと思ったのに、内蔵が丸見え・・・
2006年3月12日

いろいろありますな〜。

とりあえず版のプログラムが完成ました。今、A03につけてあるスイッチは5つ。このスイッチに対応するモーションファイルをプログラムの中から直接読み取るようにしたので、モーション追加などがあるとプログラムをコンパイルしなくてはいけません。

本当なら、テキストファイルにモーションファイル名を書いておいて、これを読み出し、順番に再生していくように考えていたのですが、あまり深入りすると間に合わなくなるのでこのままにしておきます。

で、実際にA03で動かそうと電源を入れると、右股関節の左右のモーターが動作しない。調べると、配線で断線していました。配線の修理ついでに引き回し方も変えたりと大変でした。

N−CardでテストしていたのをL−CradAで試すとプログラムが落ちてしまう。コンパイルをスタティックからダイナミックに変更したら動作OK。簡単なプログラムだと動いたのに。どのライブラリが影響しているのかわかりませんがこれでよしとします。

L−CardAで起き上がりモーション再生を繰り返していたら、またまた別のモーターで断線。この時間の無いときにちょっときついです。これも何とか修理完了。

今現在のA03は、頭も変更し、腰の高さを少し高くしてあります。現在の身長は48.3cm、でかくなってしまった。制御基板用のバッテリーは、ホルダーを作ろうと思っていたけど、間に合わないので両面テープとビニールテープで固定。今、フル充電で基板の電源をを入れ、どのくらい持つか試したところで、1時間10分動作していた。まあ、これは大丈夫そう。

L−CardAで無線LANがうまくいっていなかったのは、結局電源容量が問題でした。L−CardA用に5V3Aのレギュレータに交換で無線LANも動いています。レギュレータもここまで大きいのはいらないだろうけど、手持ちがこれしかなかった。余裕で動いています。

本番では使えるかはわからないが(予選通過しないとね・・・)、遠隔制御部分のテストもとりあえず今あるもので構成してOKでした。ここは、またとんでもない構成で、HORIのPS2用無線ゲームコントローラをバッファローのBGC-UPS101/SVでUSBに変換して、ノートPCに接続します。この信号の取り込みは、joy2keyというソフトでキーボードのかわりとして動作させます。

次に、ノートPCからA03に無線LAN経由でtelnetしてログインします。ここで、遠隔操作用プログラムを起動し、コントローラーのボタンに対応したモーションを再生するようにしています。

そうこうしていると、また別のモーター配線が断線。配線系がちょっとへたってきているようです。

これからの作業は、やっぱりモーション作成ですね。A03の写真は、近日公開できると思います。

2006年3月7日

A03の制御は、L−CardAから姫路基板に対してモーションデータを送り込んで動かします。

現時点では、まだプログラム作成は完了していない。モーション作成もなかなか進まないので、ここ2、3日は制御プログラムの作成をしていました。

制御プログラムといってもそんな難しいものではなく、スイッチを押すと何番目のスイッチか判定して姫路基板へモーションデータを送り込むというものです。

近年、まともにプログラミングしていないのと、昔からあまり大きなプログラムを書いていないのとで、関数の動作を確認しながらのプログラミングになり、これまた時間がかかっています。

とは言うものの、、とりあえず版プログラムももうすぐ出来そうです。

A03の構成は、L−CardAと姫路基板はRS232Cの9600BPSで接続し、姫路基板のデジタル入力端子にスイッチを5個取り付けてあります。当然ですが、姫路基板から各サーボモーターに接続しています。

制御としては、L−CardAから*C01DIコマンドを送信し、どのスイッチが押されたかを判定、そのスイッチに割り振ったモーションやポーズデータを*C01HSや*C01SNなどのコマンドで送信、*C01DIでスイッチを判定、を繰り返すようにしています。

今現在、スイッチを押してデータ送信するところまで動作していますが、データが大きいと固まってしまう部分があるので、まだ修正が必要です。

実際のプログラム開発は、L−CardAではなくN−Cardを使用しています。また、シリアル通信部分のデータを見るためにPCカードタイプのプロトコルアナライザーを使っています。やっぱりこれがないと、ちゃんとデーターが送られているかわからないですね。このアナライザーは、ポート電子から発売されているPA-1100というものです。6万円ちょっとだったかな。個人での購入としては高いですが、他の携帯型のものは機能も充実しているでしょうが18万円とかそれ以上するので、やっぱり個人ではこれで十分です。私の場合、VAIO-U71Pにインストールしていますが、ウィンドウも800X600に収まるのでちょうどいい感じです。

もう少しでプログラム完成。あとは、じっくりモーション作成できれば良いけど・・・

2006年3月2日

大会まで日がなくなってきているのに、なかなか安心できる仕上がりになりませんね・・・

とは言っても、少しずつでも進めないと本当に間に合わなくなってしまう。

ということで、モーションの作成は、起き上がれず頭突きモーションと化していた以前作成したモーションをちまちまと修正し、どうにか起き上がれるようになりました。もう少し微調整が必要と思うのですが、取れてしまった頭もまだ取り付けていないのと、バッテリーの位置変更をまだやっていないので取り付け完了後に再調整しようと思います。

歩行モーションも以前作成したものを修正して、なんとなく歩いています。まだ足をすってしまったり、左右で動き方が違うなどがあるので、もう少し完成度をあげなくてはなりません。

横歩きは、まだ駄目ですね。バランスをくずして飛んでいってしまいます。でも、ここまでくれば、事前審査のモーション完成ももうすぐかな。

モーション作成が、なかなかはかどらない理由として、姫路基板のモーション作成ソフトの操作性が私にはなかなかなじめないということですかね。Visual Studio 2005 Professional Edition アップグレード版が届いたのでモーション作成ソフトも自前で作ってしまう事も考えていますが、今回には間に合いません。

L−CardAの無線LANの調子がおかしい所についてはまだ調べていないのですが、この調子で行くと、N−Cardに乗せかえるかも知れません。L−CardAとN−Cardの実行ファイルの作成は、基本的に同じコンパイル環境で作成しています。

違いとしては、シリアルポートがL−CardAでは/dev/ttyS2を使用していてN−Cardでは/dev/ttyS1を使用しているところと、コンパイルオプションでライブラリに関して、L−CardAではダイナミックリンク、N−Cardではスタティックリンクにしています。

どっちにしても、まだ使えそうなプログラムになっていないですが、参考になりそうなソースを見つけたのでもう少し試してみて、とりあえず版くらいは作る予定です。

2006年2月27日

なかなかモーション作成が進んでいませんが、胴体が重くなって起き上がれなくなったモーションに1つか2つのポーズを追加してスピードの調整をすることで起き上がれそうな感じ。で、色々と試したのですがどうにも起き上がれない。ということで、胴体内部に入れたバッテリーを取り外しました。本当は外したくなかった・・・。取り付け方法も考えないとねー。

これで行けるかと思ったら、そうでもない。うまく起き上がらないのを繰り返していたら、ねじがおれて頭がもげてしまった。

少しポーズを修正して、良くはなったが安定して起き上がれない。もう少し修正が必要です。

横歩きもまだ駄目。歩行は、以前のデータで動かすとすぐこけてしまう。修正すると良くなってきた。まだ歩いていないけど、もうすぐよちよち歩きが出来そう。

通信プログラムも、実験用のコードで少しばかり進んできました。ソフト屋さんだと、「そんなの簡単じゃん!」程度のものと思うのですが、自分で作るにはなかなかうまくいかないですね。本当はもう少し高度な作りで考えていたのですが、どうも間に合いそうもないので簡易版として作ろうと考えています。

A03を動かす仕組みは、姫路のソフトで作成した歩行とかホームなどのモーションやポーズを送信形式のファイルで保存した物をL−CardAに置いておき、プログラムでL−CardAから姫路基板にコマンドを送り込む方法です。

姫路基板は、*C01SNxxxxxxxx・・・てな感じのコマンドになっていて、応答ありと応答なしのコマンドがある。

実際にA03を動かすときに、応答なしのコマンドで連続して送信すると、姫路基板がハングアップしてしまうので、応答の処理も作りこんでおかないとまずいだろうな・・・

L−CardAで無線LANがうまく起動しなくなっている。これもどうにかしなくては・・・

ちょっと前までは、「かるくヤバイ」状態と思っていたのに、今は「かなりヤバイ」に近づいているような感じ。

起き上がりモーションで頭から激突を繰り返していたら、頭が取れてしまった。ねじが折れています。 外したバッテリーを3本のパックに作り変えました。取り付け用にまたPOMで部品を削らなくては・・・
2006年2月23日

前に書き込んだ中で、エントリー数について、何か勘違いしていたようで230もいないですね。

見ているところが違ったようです。失礼しました。

てなことで、A03のほうですが、なかなか進まないですね。

現在、モーションを色々と作成しているのですが、思ったように動かない。で、前回作成したモーションを動かしてみると、サーボの位置が少し変わったことと、胴体にバッテリーを追加したことが原因でうまく行かない。

前回のモーション作成で、起き上がりが結構苦労していたのですが、最後に立ち上がるところで、手を一気にピンと伸ばした反動で立ち上がったのですが、今回はバッテリーが追加になっているので持ち上がってこない状況。上がらないので、一気に頭を床面にたたきつける感じになっている。これで首の台座が曲がってしまいました。そのうち修理が必要です。

胴体に組み込んだバッテリーはずすしかないかな・・・。どうしても重くて起き上がってくれない。

横歩きもなかなか進まないので、ホームポジション(直立)から、右足曲げ、右足伸ばし、左足曲げ、左足伸ばしの順で何回もり返す動作でスピードを早くして動かしてみた。

きっとバランスをくずして飛んでくと思っていたが、結構いけそう。その場で駆け足をしているような感じ。

横歩きも、前に作ったのと違う動作でもう一つ試しているが、これもなかなかうまく行かない。

少なくても、事前審査分のモーションの完成が必要です。

こんなことやってるけど、L−CardAと姫路基板の通信プログラムも中断している。まだ時間がかかりそう・・・

2006年2月15日

昨日、第9回ROBO−ONEにエントリーしました。

選手登録のときも3回そうでしたが、ROBO−ONEのエントリーも6回、エラーになってしまった。安定していないんですかね。

で、今日22時前にエントリーリストを確認しました。

総エントリー137となっていたので、順にページを送ってみると、137よりまだ後があったので、次々送ってみると、なんと230もエントリーしている。すごい・・・。最終てきには、どの位になるのかな。

それはそれとして、A03の現状は、何とか単4型ニッケル水素6本パックも胴体の中に入れました。前に作った電源部分の基板に当たるので、基板取り付け位置を変更。

これで胴体組み上げと思ったら、電源基板とL−CardAのコンデンサーが当たってしまう。

結局、L−CardAの取り付け部分に5mmのスペーサーを入れて取り付けました。最近の作業は、どうもつぎはぎだらけになってきている。

A03本体であとやることは、胴体側面をふさぐ蓋と、配線処理かな。

モーション作成は、なかなか進んでいません。前回の大会移行にサーボを修理して取り付けたところの位置ずれで、前回作成していたモーションがそのまま使用できないので、結局、修正と作り直しをしている最中。

簡単な屈伸は動いていますが、今は横歩きを作っています。これが出来れば、前回作ったうつ伏せからの起き上がりモーションを修正。その後が問題で、歩行モーションの修正。前回動かしたときに、結構ポーズが多くなっているので全部いじらないといけないでちょっとめげそうです。

大会までもう少し。がんばらなくては・・・

2006年2月6日

L−CardAと姫路基板の通信部分のプログラムをもう少しまともにしようと思い、久々にA03を動かしてみた。

あれ!、左股関節の左右方向がうまく動かない。

色々と調べてみると、サーボを修理したときにFETがうまく付いていなかったのが原因。半田付けやり直しで復旧しました。

で、前回からまだ残っていた課題として、姫路基板にホームポジションを登録すると、全サーボが一気に動作し電源不安定となり、L−CardAや姫路基板がリセットしてしまうというのが残っていました。

やっぱ、電源は分割することにして、基板を作り直しました。これに伴い、バッテリーももう1種類作成しました。秋月で購入した単4型1000mAhを6本パックにしました。

バッテリーの搭載位置は、胴体内に確保できそうなのですが、配線を整理しないと現状では入らない。近いうちにばらさなくてはいけない。

とりあえず、前回までに作成しモーションを動かしてみると、足の位置がずれている。サーボ修理で位置が少しずれたようです。ちまちまと、ポーズを修正している最中です。

今後の予定としては、モーションの追加、通信プログラム修正、遠隔コントロール部方法など・・・

まだ、やることいっぱい残っていますね。

前回掲載した田宮モーターを使用したサーボですが、1/36、1/75、1/300のギヤ比の3種類を試してみた結果、今のところ1/75のもので行こうと思います。これ、A03に搭載するわけではなく、次期ロボット用ですね。A04かな・・・

本当は、A04はステッピングモーター版で考えていたのですが、中断しているのでA04は田宮モーター版で行きますか。

左が前回までの基板で、右が今回作り直した基板。 単4型1000mAhを6本パックしたもの。どうにか胴体内に収めなくては・・・
2006年1月17日

もう少し書き込む周期を早くしようと思いつつ、またこんなに時間がたってしまいました。

今までの事をまとめて書くので少し長くなりますが勘弁してください。

てなことで、1月3日に、結局、KRS−4014HVを買ってしまいました。で、いつもの様に分解・・・

試してみたい事は、シリアル通信での制御で、サーボをパラって接続してそんな風になるか・・・

でも、KOのHPにはまだコマンド仕様やソフトが公開されていない、残念。

田宮のギヤードモーターのほうは、モーターマウントをPOMで作成、ポテンシオメータとのカップリング部品をKS−200改造のNC旋盤で作成しようと、真鍮から削りだしていたのですが、どうもうまく行かず「モーターに付属していたアルミパーツを加工して使用しました。

モーターもポテンシオメータも取り付け、電源ON。KOの基板の3004FETから煙が・・・

調べてみると、ギヤードモーターをPOMに取り付けるねじが長すぎ、ギヤのマウント部分をつぶしてしまっていました。

ギヤ比1/75ので試したかったのですが、1/300に交換してサーボとして動作できました。

でも、遅い。ストップウォッチで手計測で約0.37sec/60°。そのかわり、トルクは抜群。

これでは、「走る」には仕様できないので、今度、1/75と1/36のギヤ比のものでも試して見ます。

KRS−4014HVとKRS−4024HVを並べたところ。外形サイズは同じです。金属ギヤなのでホーンを取り付けるポッチもアルミです。 お決まりの分解。4024とはモーターが違うので、基板のパターンも違いますね。
ギヤ側です。サイズもでかくなり、しっかりしたものが入っています。
モーターマウントへの取り付けでねじが長すぎて、こんなになってしまいました。 この通り。出力軸のギヤがあたっています。これではモーターに負荷がかかりFETがとんでも仕方ないですね。
気を取り直して、手持ちの1/300のギヤ比のものと交換して動かしてみました。

動きは遅いが、ちゃんと目標値で収束して停止している。

1/75や1/36も早いとこ試してみたいですね。

ちゃんと目標値で停止するのかな?

2006年1月2日

年が明けたというのに、あまり進捗していません。

頭の中では色々な構想があるのですが、なかなか進まない状況です。

KRS−4024HVは、基板まで外してしまいました。

ポテンシオメータは、アルプス製の物で小さいタイプの物が入っていました。10KΩのようです。

田宮のギヤードモーターを実験用に購入してあったものにPOMで台座を作りました。もう少し部品を作ってから実験できそうです。

で、これは何を考えているかというと、「俺サーボ」を作られている方が結構いると思うのですが、モーターやモーター駆動用の基板を自分流に作ってやられていると思うのですが、私の場合、出来合いの物の中身などを組み合わせて出来ないかななんて考えで、田宮のギヤードモーターとKOの基板でサーボにしたらどうなるかなてなところです。

こんなやり方だと「俺サーボ」ではなくて「俺俺サーボ」でしょうか・・・(別に詐欺ではないのですが・・・)

ちょっと仮配線で電源を入れてみました。モーター軸にまだポテンシオメータを付けていないので手で回して動作させて見ました。FETが破壊するかと思ったら今のところ全然問題ないようです。

KRS−4014HVも発売され、気になっているのですが、ロボット作る分の数をそろえるにはちょっと気合がいる値段になってしまうので、まずは数個サンプルで購入するかも知れませんが、この田宮モーターも面白そうです。

KRS−4024HVの基板を取り外したところ。ポテンシオメータの基板を外すとき、スルーホールも少し抜けてしまった。 実験用に購入してあった田宮のギヤードモーター。

POMの台座を取り付けてある方が1/75で手前側は1/300のギヤ比。

田宮のギヤードモーターとKOの基板を接続したところ。

仮配線での動作でOKそうなので、うまくマウントできるように部品作りですね。

2005年12月19日

FPGAの基板は今のところ進展なし。

で、KRS−4024HVを買ったときに、いっしょにサーボアーム4000Aも買ったのですが、「KRS−4014HVには御利用になれません」と書いてある。ちょっと気になります。

KRS−4024HVのギヤを数えてみました。手書きでちょっと間抜けですね。

2005年12月11日

EZ−FPGAを使ったサーボコントロール基板ですが、作り直している基板がどうもうまくない。VHDLも少しいじったのでこれも影響しているみたい。もう少し気を入れて調べないといけません。つぎはぎ基板で作ったものはそこそこ動いているのに・・・。

ちょっと気分転換として、今まで壊したサーボの修理をしました。

KRS−2346ICS Red Versionで、モーター、ギア、FET、強化ピンの交換、軸受けが金属になったギアケースの取り付けをしました。ここまでやるとKRS−2350ICSになってしまいました。ただし、FETはIORの7389にしました。

で、もう一つ。お試しで、KRS−4024HVを買ってしまいました。

まずは、お決まりの、動作前の分解確認。

ちょっとまた新しく設計でもしたくなりますね。

右が壊したサーボで、左が修理用パーツ。 修理完了。2個復活です。まだ、何個か壊れていますが、そのうち修理します。
KRS−4024HV。 基板側。大きいだけあって隙間が多いです。
ギアは樹脂製ですが、今までのサーボのとは違い、でかいです。
2005年12月6日

ここのところ、全然更新していませんでした。宮田さんのページに似てきたかな???

おっ、宮田さんのページ、更新されているではないか・・・。「負けるか、こら!」←スロットやる人は解るだろう。

頭の中では、色々な構想がいっぱいなんですが、なかなか実現できていません。

とはいうものの、N−Cardを購入してからまた一つ新しいことをやっています。

こんな感じなので、シリアル部分のプログラム作成も全くやっていません。

今、手をつけているのがFPGA。以前、CQ出版のものを購入してちょっとだけ動かしたまま放置してあったものを引っ張り出して、実験していました。その他、以前作ったザイリンクスのJTAG基板がうまく動かなかったものが動くようになったのでデザインウェーブの付録基板のSPARTAN3も動かしたりと色々やっていました。

FPGAに手をつけようと思ったのは、N−Cardを購入したがベースボードをもう少し小さく出来ないかと考えているうちに、N−CardのI/Oとサーボコントロールも組み込んでしまおうという考え。

N−Cardのベースボードは、CPLD(CoolRunner)が載っていますが、CoolRunnerにサーボコントロールだけを組み込んでも6サーボ分がやっとなのでFPGAしかないですね。で、アルテラのCyclonとザイリンクスのSPARTAN3で試していたのですが、5Vトレラントではないので他の物でいいのがないかさがしていてザイリンクスのSPARUTAN2だとOKなのが分かりました。

千石にもチップは売っているのですが、まずは実験ということでオプティマイズのEZ−FPGAを購入。

今現在は、写真のEZ−FPGAにスイッチとサーボ用のヘッダピンを付けた基板を作成して、2004年6月号のインターフェースのVHDLを参考にとりあえずサーボが動くところまで来ています。

そっちのほうは、もう少し実験してからアップしたいと思っています。

ザイリンクス用に作成したJTAG基板 JTAG基板の裏側。ほとんど部品がないです。
デザインウェーブマガジンの付録基板とCQ出版社のFPGAボードで学ぶ論理回路設計についている基板。付録基板は、ザイリンクスのSPARTAN3でCQ出版社のはアルテラのACEXがのっています。 オプティマイズのEZ−FPGA。動作テスト中の写真です。
2005年9月27日

ちょっと、作業がゆっくりになっている。結構疲れている。

ただ、第7回の時よりはかなり進展している。第7回の時は、動くかも分からないまま、大会前日にやっと立った状態だったが、第8回では、モーションも作成し動作させることが出来た。ただ、L−CardAと姫路基板の通信がうまく行かなかったのが原因で駄目でした。

この部分については、ゆっくり時間をかけて作ろうと思います。なんとなく、考えている形になりそうです。

ただ、姫路基板の使い方をどうも勘違いしている部分もあるようなので、これももう少しいじってみようと思います。

第8回の予選当日、控え室で私のロボットについて、目をとめる方がいましたが、なにか変わっているのでしょうか?

殆どの部品をPOMで作っているからでしょうか?

私のは、「CNCでけずったぞ!」と見た目で分かるように刃の跡が分かるように削っているので、この辺でも話題にはなります。

今、また、色々な構想が頭の中にあり、どこから手を着けようかという感じですが、まずはL−CardAと姫路基板のところを完成させ、A03を自立動作させることですね。

他の構想については、もう少し実験して目処が立ってきたら公開します。

2005年9月25日

第8回ROBO−ONEもなんだかんだでまた棄権になってしまいましたが、第9回大会に向けもう始まっています。

大会から帰ってきてからは、ちょっと背骨の調子が悪くあまり動けない状況が続きましたが、やっと復活しました。

で、大会以降はL−CardAと姫路基板の通信部分のプログラムのテストをしていました。まあ、そこそこ送受信できていますが、もう少しちゃんとした作りに修正するつもりです。

これとは別に、ついに購入してしまいました。前から考えていたN−Cardを・・・

これ、熊本のハンブルソフトから発売されているもので、メインのCPU基板はTANBACのDIMMサイズの物です。

ロボットに使うには、ベース基板がもっと小さかったらななんて思いますが、その辺は今後の事として、A03にこの基板を搭載するかはまだ分かりませんが、簡単なところから実験しています。

使った感じでは、L−CardAよりもCPUクロックが上がっていることと、Linuxのカーネルがシンプルになっているので起動する時間がL−CardAよりも格段に早いです。

ハンブルソフトのHPにある、LEDの点灯を試してみて、動作OK。その他のI/Oでデバイス設定も完了。

それではテストプログラムでも作ってみようかと、開発環境を構築しようとしたら、どうもリンクが切れているようだ。

どうしようということで、L−CardAの開発環境でテストプログラムをコンパイルしてN−Cardで実行すると、「File not Found」になってしまう。どうして・・・。やっぱり駄目かな、思いつつ色々試してみたところ、ライブラリが入っていないのですかね、コンパイルで-staticのオプションを付けて動作できました。カーネルのコンパイルなどはうまくいくのかは不明で、今後試してみます。

A03の動作で、姫路基板にホームポジション登録すると、サーボモーター全部が一気に動作し、電圧降下を起こすのか、L−CardAがリセットしてしまう現象がでていたので、今回、別の電源装置を購入しまた、ロボット本体に取り付けるためにスーパーキャパシターも購入しました。

N−Cardを動作させているところ。手前の基板はバッファローのUSB無線LANでケースを外しています。 今回購入した電源装置。今まで使っていたものより小さく軽くて良いです。手前のは、スーパーキャパシターで1Fが2個です。