2009年10月25日

追い込めない追い込み

現在自宅にて二足歩行ロボットデバッグ中。でかいので、ピッチとロール方向のブレが半端ない。
部室棟でデバッグ中に、ヒザサーボのうちの1つが稼動していないことが判明(1軸に並列に2つのサーボをつかっているので気づかなかった。)
交換するとサーボ自体のケースも破損寸前。ネジがめり込んでるから設計担当の責任だね。
稼動していないサーボはFETの破損と判明。無理矢理未使用サーボをスレーブ化。「偽」スレーブサーボを使用中。ピンセットなくしちゃって、FET交換できない…。
 
とりあえずその後に自宅に撤収して、ヒザと足首サーボのストレッチ、パンチの値を変更。サーボが戻りきれてないんですよね。ついでに色々メンテナンス。…と今ここ。
 
なんせ、ハードウェア完成が24日の午後4時ころ。そこからモーション作るって…。
 ボロやら欠陥やらがわんさか噴出してくるところを何とか押さえ込もうと。
 
もちろんマイコンカーばっかり作ってたので、二足歩行ロボットのモーションについてはじぇんじぇん分かりませんのです。勘と気合だけが頼りの作業。これから徹夜です。
posted by Tmk at 02:25 | Comment(0) | 二足

2009年09月27日

プログラムのメモ

メンバーも見れるように、二足歩行ロボットのプログラム改造メモを書いておく。
 
・逆三角関数
現状は「逆三角関数テーブル算出関数」を使って、「逆三角関数」で算出する方式。
そのうち「逆三角関数テーブル算出関数」内の数値データをconst配列化。
「逆三角関数テーブル算出関数」では数値の判定のみを行う。
 
・角度生成関数
現状はxyzの各座標をグローバル変数として使用する。
出力の各関節角度もグローバル変数の配列。
そこから引数を追加し、モジュール独立性と汎用性を高める。
引数:xyz各座標位置、算出角度格納のための配列ポインタ
実行後に渡した配列に算出した角度情報が入っていることになるので、それを角度指令用の配列に投げ込む。
 
 
あとは各足ごとの座標情報と角度格納用配列を構造体にしようかな
 
起動時からの時間も1ms間隔で計ってるので、関数orモーション配列でも作れば簡単に作れますね。
各関節は完全独立動作が可能なので、上半身と下半身のモーションも別々に作れるし。
歩きながらいきなりパンチとか。まぁコケるかもだけど。
posted by Tmk at 04:49 | Comment(0) | 二足

ぐりぐり動かしたい

今週は2日間のみで、また休みに入ってしまうとあんまり調子も上がらないです。
と言いつつ、色々とやらねばなりませんね。


現在作っている二足歩行ロボットのプログラムは、現在モーション実装の基礎段階。
前々から逆運動学担当の方で、今回製作中のロボットについて、逆運動学を解いて歩かせるという目標を掲げています。


 順運動学から逆運動学を解いて、どのように歩かせるかが問題です。
逆運動学を解いてからは、メンバーのAdldがパソコン上で実行できるプログラムを製作しています。
現在はOpenGLでリンクを描画し、画面上でリンクの動作を表現しています。

参考に動画を載せておきます。

(WMV形式1.12MB)
上の動画で、ボールが足の軌道の目標、棒がそれぞれのリンク、リンクの関節上にあるボールが軸です。


このプログラムで実現していることは、「空間上の適当な座標を設定すると、各関節が自動的に角度を決定し、足先がその座標位置に移動する」ということです。そのため、適当な軌道を入力すると、その軌道をトレースする各関節の角度を自動で算出してくれます。
マイコン上で処理することを考えて、リンクの動作自体は整数型で行い、三角関数等も1000倍して、角度は0.5度刻みで指令を出すようにしています。そのため、リンクの動作が滑らかではなく、カクカクした動きになっています。
ちなみに、動画の足の軌道は 適当に計算式を代入したものらしいです。
詳しくはそのうちプロジェクトのブログにでも書かれるんじゃないかな。きっと。

 


で、ここまでの成果から私のすべきことは、これを実機に実装することです。
仕組みとかアルゴリズムは理解しました。
そこからマイコン、システムの仕様に合わせてプログラムを変更したり、 処理を効率化させたりしています。


一番の問題は、サーボへの指令値と実角度が都合のいい数値になっていないことです。
マイコンへの指令値が10変わると、実角度は約0.337度変化します。
PWMよりかなり精度は良い指令が出せるのですが、相互変換はちょっとめんどくさい。有る程度妥協しなくちゃいけないけれど、なるべく綺麗に動けるようにしたいなぁ。

PS2PADのアナログスティックで、ぐりぐり足先の位置を変えられるようになったら面白いので、それを目指してプログラミング中です。

Adldさんへ
動画エンコードしときました。


↑の動画は、銅の塊を適当な板(アルミにクッションつき両面テープを貼って、バネ鋼をはりつけたもの…だっけ?)に倒してみたもの。
なぜか部室にある投光器を接地して、高速カメラ撮影してます。
デカイ銅なので、さすがに殆ど歪まないですね。 

posted by Tmk at 01:18 | Comment(2) | 二足

2009年08月02日

ぶくぶく

何故だっ!
洗濯物を干しに外(ベランダ)に出て10分しか経っていないのに、足だけ20箇所以上刺されるとか訳分からん。痒い…。

なんか両腕も痛いんだよなー。筋肉痛みたいな痛さ。別に変なことやったわけじゃないし。

----------------------------------------------------
7/20に書いた通信電圧の問題ですが、昼飯の時間に突然ひらめいて、回路をいじったらすんなり電圧レベルが理想の形になりました。
これが直ったのは、27日頃だったかも。

SBSH0048.JPG

上:RX 下:TX
2V/div 0.2ms/div

RXには送信した信号+サーボからの返答が付加されています。14個のサーボに指令を送っていて、そのうち2つから返事が返ってきているので、返事の信号は薄くて問題ないです。

ということで、現在ガシガシ回路作っています。
本格的に進めるのは、テストが終わった今週末からだろうなぁ。
posted by Tmk at 19:02 | Comment(3) | 二足

2009年07月20日

むおー

いつも記事タイトルが意味不明なのは仕様です。どうにもなりません。

…ということで、お久しぶりのはんだ付けをして回路実験。
ずーっと前から分かっていたことなんだけれど、色々原因がはっきりしたのでメモしてみる。

--------------------------------------------------------
ICS2.0通信
シリアル通信で近藤科学4000番台サーボを操作出来ます。

データ通信は送受信線共用で5V通信。そのためTX/RX同士を繋げちゃいます。
端子保護抵抗+プルアップ抵抗だけなら、普通に通信できるんですよね。

ただ、厄介なのがこれ。

SBSH0040.JPG

一応画面にもありますが、0.2ms/div、1V/divです。
オシロの線の濃さの違いは、14個のサーボに指示を出していて、2個しか繋げていないから。

…で、見て分かるとおり電圧レベルが2種類混在しております。
送信側はもちろん5VのHigh/Lowですが、受信側は5V-1.7Vです。
どうやら、帰ってくるデータの電圧レベルは3.3Vらしいです。

電圧レベルシフタでどうにかなるかなと思ったのですが、よく考えるとそれが使えるのは0V-3.3Vとかの電圧レベル。そのまま適用は出来ないです。

何でかなーとよく考えると、RXはデータ送信後はHighに張り付いて待機状態になります。送受信が繋がっているので、そこに3.3VのHigh/Lowを入れると、↑のようになってしまいます。

これが分かった時点でずっと詰まっています。
他の方の記事だと、返答も5Vの電圧レベルで帰ってきているんですよね。そうだったらどれだけ楽なことか…。
データを返すときにサーボへの送信を切れればいいんですが、なんかややっこしくて難しそう。

74125と74126を使って、制御端子1つ増やして…ってやればうまくいきそうな気がしなくも無いけれど…。部品も多く持ってないし、なるべく簡単にしたい。というか、送信完了割り込みあたりはやったことが無くてよく分からない。


…とか何とか考えていて、全然考えがまとまらず。いつまでたっても結果は出ず。



うーん、どうしようか。
時間は無いし、プログラムめちゃくちゃだし、マイコン壊れるし。
とか言いつつ、今週来週はテストラッシュ。うわぁぁん。
受信無視だったらすぐ回路とかプログラムとかできるけれど、そこ妥協したくないしなぁ。そうするならPWMと変わらないし。
posted by Tmk at 06:58 | Comment(0) | 二足

2009年07月06日

眠いわ

シリアルが嫌いになってきそうです。
っつーか、私のプログラミングの腕と構築能力の無さによるプログラミングミスばっかりだからなんですが。

HEWが吐き出すエラーに振り回されたり、いざ動かしてみるとピタっと止まったり。割り込み云々のところだけがピタッと止まっちゃうみたいです。そういえばエラー出ても放っておいちゃうプログラムだな…。
ポインタの概念なんか、高校のときにすんなり覚えられた後に全然使ってなかったのですっかり忘れてしまって。
年を経るごとに、頭の吸収率が低くなるっていうのを中学校のときの先生に聞いたけれど、なんとなく実感しつつある今日この頃。

少し前に通信の割り込みがうまく出来て、バッファをつかってうまく通信ができましたとさ。あーあ、デバッグに時間使いすぎだな…。


もうちょっとプログラム詰めて、今週末提出の報告書×3書いて、回路作って(部品待ち)、マイコンカーの設計一部変更して…


…あ、これから授業か。テスト返ってくるんだろうか。あぁ見たくないー。

------------------------------------------------------

一応部員の方々へ。
Wikiを使ってやってくださいー。特に1年生。
どーせ殆どの人が見て無いだろうけど。
posted by Tmk at 07:32 | Comment(2) | 二足

2009年07月01日

うわぁぁー

頭が痛い…。なんでだ…。
ということで、昨日学校をお休みしてしまいました。現在は直ってるので、明日は行けるはず…。
やっぱり疲れてるのか、やる気が出ないのか。

そういえば大会まで2ヶ月切っている訳で、マシン自体は変わらない予定です。
ただ、ギアボックス部を改修(ちょっと重いし、ちょっと坂にこすり気味なんで、ちょっと設計変更。現在材料発注中です。


この間、マシンが緊急停止しないバグの解決法を発見する等、いくつかエラーハンドリングが出来て無い部分を改善しました。

----------------------------------------------------------
二足回路も製作中であります。サーボの動作を安定させるためのちょっとしたギミックを考案しまして(たいした事してませんが)、必要な部品も発注中。
特に面白みがある回路では無いですが、作った回路であの巨体ががしゃがしゃ動く姿を早く見てみたい。(というか早く見せないといけない。)

プログラムも整備中。先日、プログラムダイエットを行って、40%圧縮しました。
今突っかかってることがあって、そこさえクリアすればサーボからの受信が完全に出来ます。




------------------------------------------------------
そんなことより愛用のT61のファンがうるさいです。どうにかしてください。
それと資金不足です。どうにかする“あて”はあるのですが、めんどいです。…どうにかします。
posted by Tmk at 01:44 | Comment(0) | 二足

2009年06月18日

椅子がほしい

休み中は椅子の上か布団の上かどちらかにいる場合が殆どで御座います。もっと良い椅子買いたいよぅ!

えっと、ずっとシリアルサーボのプログラムと戦っておりました。

SBSH0023.JPG

先ほど、殆ど計画通りの動きをするようになりました。
現在2つのSCIを使って、シリアルサーボ2系統の制御が可能です。

送信が出来るようになったので、残りは受信ですが、受信は現段階では出来ていなくてもOKです。後々は現在の角度情報から計算するなんてこともやりたいです。

サーボの制御が出来るようになったので、これからモーション再生のシステムに取り掛かります。
基本的な仕組みはウチのサークルで使われている二足のプログラムと同じで、色々とシリアルサーボ用に設定変更していく予定。基板も作らなきゃなぁ。


そういえば忘れてましたが、サークルで作っている大型二足歩行ロボットのプロジェクトブログも書いてます。現在私含め2名しか書いてませんが。

http://soukouken.blog79.fc2.com/

最近のシリアルサーボの格闘の記録も書いてます。
リンク集にも追加しておきますね。

そういえば、あんまりプロジェクトの方の説明していなかったかもしれないです。

二足歩行ロボットの世界では、最近大型化が進んでいます。そして、ウチのサークルでは個人〜3人班で二足歩行ロボットを作っていますが、金銭的や技術的な面で大型のロボットや、システムの違うロボットなどが造れないでいました。ROBO-ONEをはじめ、色々な大会での入賞も遠のいてしまいます。

なので、当たらし試みをということで、前の前の部長が発起人となってはじめた二足歩行ロボットプロジェクトです。

最初は私は参加を見送っていたのですが、前の前の部長に誘われて結局参加することに。ちなみに現在その方は行方知れず…。

案の定私は回路系全般を担当することになりました。
で、新しい試みということで、近藤科学から出ているICS2.0のサーボを試用したシリアル通信をすることに。マイコンもSH7125を使ってみようということにしました。

結局活動は当時の1年生のみでだったので、現時点でもクオリティが低いです。プロジェクト開始半年だっていうのに、早くもハードを作り直したいメンバーたちです。まぁ、とりあえず色々動かしてからってことで。


ハードと回路以外には、逆運動学制御とシミュレーションをやっています。
逆運動学の方は静歩行での制御ができたっぽいです。
「ぽい」というのは、実機で動かせていないため。ごめんなさい私のせいです…。

シミュレーションは、最初ODEでやっていたものの断念。PhysXをいじってみようという動きらしいです。
それと、ハード自体のシミュレーションもする予定らしいです。(強度シミュレーションとか)


そんなこんなで、色々やっています。
あぁ、コントロールできるようになったから、早く実機でいじってみたい!
posted by Tmk at 00:27 | Comment(0) | 二足