« 2008年8月 | トップページ | 2008年10月 »

2008年9月28日 (日)

屋外でマニュアル走行

来週日曜日の試走会に向けて、土日はマヒソンさんと一緒に会社の体育館とグラウンドを使って走行テストを行いました。

モータのトルクが細くなってしまう件については、PWM信号の周期を 2kHzに落とすことで暫定対策しました。こうした理由はいくつかあって、一つ目はPololu社のウェブサイトにあるフォーラムでこんなスレッドを見つけたからです。二つ目の理由は同じフォーラムの他のスレッドで5kHzで使っているという書き込みを見たからで、三つ目の理由は先日の日記にもあるとおりモータドライバの出力が2kHz程度に間引きされているっぽかったから。間引きされる原因として何らかの保護回路が働いているのであろうと推測しているのですがこれはあくまで推測にすぎず証拠はありません。とりあえず暫定対策で「まあまあ」なトルクが出ているので当面はこれで進めて、どうしてもだめならモータドライバをもっと単純なものに交換することを考えています。

で、土日の走行テストでマニュアル操縦による屋外走行ができるようになり、ログ取り程度のことはできるようになりました。走行時に収集したGPSデータをGoogle Earthで表示させるとキレイに航空写真と一致します。位置の精度がかな~りいい感じで、見た感じでは誤差は1m以下っぽいです。ただし、建物の間を通り抜けるコースは位置情報が狂いやすい傾向があるようです。

ウェイポイントを巡回する自律走行も試したのですが、これはうまくいかず、持ち帰りになりました。水曜日の午後5時以降に再度走行テストを行う予定です。

余談ですが、私が担当している部分はメカ、回路、ファームでマヒソンさんがノートPC上で動くAI部を担当。こうなった理由は単純で、メカ、回路、ファームの開発に必要な資材や開発環境が私の手元にそろっていて、AI部は最低PC1台で開発ができるから。ナビゲーションに必要なウェイポイントの作成方法や障害物回避方法など、私はかなり複雑な方法を考えていましたがマヒソンさんのアイデアでもっと単純な方法を取ることにしました。開発のボリュームが大きいので私ひとりでは全然開発が進まなかったんじゃないかと思います。彼の知識と経験もさることながら、情熱に引っ張ってもらっているところが大きいような気がします。

2008年9月26日 (金)

配線が焼き切れていた

今日も昨日の続きで、モータのトルクが細くなってしまう問題の原因調査を進めました。

まずはモータをロックさせた時に電源電圧がどうなっているか。これ、前からちょっと気づいていましたが、今日改めて測ってみたら、モータを回さない状態でCPUのGNDとモータ駆動用電源のVccがすごくノイズまみれになっていました。CPUのGNDとモータ駆動用電源のGNDも同じ状態です。モータドライバの回路図を見るとモータ駆動用電源のGNDと信号線のGNDはつながっているはずなのですが、こんなにノイズだらけだと何かおかしい。これ、つながって無いんじゃね? と思ってモータドライバの回路基板を確認してみたら、目視で見つけました。これがその写真。

Img_2860

ちょっと分かりずらいと思いますが、写真の下側に写っている線がモータ駆動用の電流が流れる線で、右側のピンヘッダが信号線です。そして信号線の一番下側が信号線のGND。これがモータ駆動用電源のGNDとつながっているはずなのが、+の上あたりの変色した部分で基板上のパターンが焼き切れてしまっています。ということで、つながっていませんでした。

でも。ラッピングワイヤでこれをつないでノイズはなくなりましたがモータドライバの出力波形が2kHz程度に間引かれる現象はあいかわらず。さてこまった。

2008年9月25日 (木)

モータドライバが間引きをしている?

昨日の続きで、モータのトルクが十分出ていない件の調査を進めています。今日は有力な手掛かりになりそうな証拠物件を集めました。

走行中に車輪をロックさせると妙にヒ~~ンという音がするので、制御の周波数が変わっているのではないかという疑いを持っていました。そこで、今日はCPUからモータドライバ(Pololu MD01B)に対して送られるPWM信号と、モータドライバのDCモータに対する出力電圧の波形とを比較してみました。

10khz_14v_free  10khz_14v_hold  10khz_14v_hold2  10khz_7v_hold  10khz_direct7v_hold

下段の水色がCPUが作っているPWM信号で、上段のオレンジがモータドライバの出力波形です。PWMの周波数は10KHzにしてあります。一番左の図はバッテリ電圧14.4V(実際は15Vちょっとでてるかも)で車輪を無負荷状態にして計測した場合。PWM信号とモータドライバの出力がきれいに同期しているのが見て取れます。ごく普通ですね。

続いて左から二番目は先ほどの状態から車輪を手でおさえてロックさせた状態です。これを見ると下段のPWM信号のHighになっている時間が多くなっていますが、これは走行速度制御でPI制御をかけているからで、これは設計通りで問題なし。問題は上段のモータドライバの出力波形で、これがPWM信号と同期していないことがわかります。この状態で時間軸をもう少し延ばして表示したのが左から三番目の図で、これをみるとモータドライバの出力波形が500us周期(周波数でいえば2kHz程度に減っていることがわかります。

3番目の図と同様のことをバッテリ1本(=7.2V)でやったときの波形が4番目の図で、これもモータドライバの出力が間引かれているっぽい感じ。なのですが、ちょっと解せない現象があります。というのは、先ほどの1~4枚目の図はバッテリからモータドライバの間に電源用のスイッチを挿んでいるのですが、このスイッチを通さずバッテリをモータドライバに直結すると、5番目の図のように車輪をロックさせてもPWM信号とモータドライバの出力波形が同期したままなのです。

考察。

  1. モータドライバがもっている何らかの保護回路により、何らかの条件でモータドライバの出力が間引かれてしまうのではないか?
  2. モータドライバにバッテリを直結するとモータドライバの出力が間引かれていない、ということは、電源スイッチになんらかの問題があるのではないか?
  3. まだ確認していないが、モータドライバの出力波形が間引かれている状態のとき、電源の電圧はどうなっているか? もしかして、電源スイッチが大きな電流を流すことができずに、モータドライバに供給される電源電圧がふらついたりしていないか?

そういうわけで、今週末までに電源電圧の変動を確認する予定。

2008年9月24日 (水)

屋外初走行! しかしモータのトルクが出ないのはなぜだろう?

9/21(日)に会社の体育館とその周辺を使って、初の走行試験をしました。問題はいろいろ出ましたが、とりあえず屋外で初走行に成功しました。

問題というのは、小さなものではロータリーエンコーダの値を取得するコマンドを出すとファームが返すレスポンスのCRCがおかしいとか、ステアリング制御に使っているRCサーボのトルクが弱いとか。大きいものでは、部品を全部台車に載せた状態で走行させようとするとモータがヒ~~~ンとかいって全然走らないことです。

このモータのトルクが不足する問題について、今日はいろいろやってみてわかってきたことをメモしておきます。前提条件は、バッテリ電圧が14.4V、バッテリの容量が3300mAh。周期10kHzでPWM制御をしています。最初に気付いたことは、モータドライバが全然熱くなっていないということ。そこでモータドライバのCS端子(出力電流1Aあたり0.13V出力)をオスロスコープで見てみると、モータをロックさせたときファーム側でPI制御がかかってPWMのデューティが90%近くまでいくのですが、このときCS端子の電圧は200mVに満たないくらいしか出力していません。モータの出力電流でいえば1.5A程度しか流れていない計算です。バッテリの容量は3300mAhでニッケル水素電池なので、1C放電しても3.3Aは流せるはずなのにその半分も流せていない。これはバッテリを安定化電源(最大電流32A)に変えて13.5Vを与えても傾向はいっしょなので、バッテリの性能による問題ではなさそうです。

でも思い出してみると、先日バッテリ1本(7.2V)でやったときは座布団を乗り越えられていたので、試しに安定化電源で電圧を7V程度に落としてやったところ、手でロックさせるとトルクリミッタが働くくらい大きなトルクでタイヤが回りました。このときの出力電流は4A程度。同様に、バッテリ1本でやってみたら、フローリングの床上を問題なく走れて、私の足の甲くらい乗り越えられる程度の走りっぷりでした。

バッテリ電圧が14.4Vだとトルクが出なくて、7.2Vだとトルクが出るというのがどういう理由なのかよくわかりません。

2008年9月21日 (日)

モータが止まってしまう問題再び

平日は完全にロボット開発を止めて睡眠時間を確保したところ、なんとか不調期を抜けたような気がします。そうはいっても、調子がいいと思って土日に頑張り過ぎると、体力を回復しないまま月曜日になって仕事が始まってしまうので、リズムは崩さないようにロボット開発を進めたいところ。

さて、先日の日記にあるとおり、ロボットに載せるべき部品はほぼ全て載せてバッテリ電圧も7.2Vから14.4Vになったので、明日の屋外走行試験に向けてDCモータ制御用PWM信号のデューティ比と走行速度の関係を計算し直して、「全部載せ」の状態で狙った走行速度で走行できるか試してみました。しかし。走りません。

経緯を書いておきます。まず、モータを選定する際にロボットの全備重量を6.0kg、最大走行速度を4km/s、ギア比を15.6対1、電源電圧 14.4Vと仮定してマクソンのRE35 90W(273753)を選びました。モータ選定プログラムによると、このDCモータで4km/hの走行速度で動かすには13V必要ということで、これでつくばチャレンジのレギュレーションどおり、試走や実験でも4km/hを超えない設計になっています。

問題のモータが止まってしまう件については、7/6の日記で書いたサーマルシャットダウンを疑いましたが、今回はヒートシンクが全然熱くなっていないのでこれは違いそう。PWM信号の波形などはまだ見ていません。モータドライバについているCS端子(電流を見る)やDIAG端子などもプログラム中では見ていないので、波形を見た後でこのあたりをプログラムに組み込もうかな。

やはり、問題が発生したときはきちんと原因と発生プロセスを理解して解決策をとっておかないと、後でかならず同じ問題が発生しますね。

2008年9月14日 (日)

少しだけやる気が戻ってきた

疲れがたまっていたのかここしばらくやる気が出ませんでしたが、この3連休で少しだけやる気が戻ってきつつあります。やる気が戻って最初にやったことは、部屋の掃除でした。続いて洗濯。

やる気が戻ってきたところで、つくばチャレンジ準備の方も少し進めました。主に配線周りを作って、GPSアンテナ以外はすべて積み込んでケーブルがつながりました。配線はかなり汚いですが、こうなっています、というのが今日の写真。

Otsukai1_20080914_1  Otsukai1_20080914_2  Otsukai1_20080914_3  Otsukai1_20080914_4  Otsukai1_20080914_5

左から1枚目の写真はGPSアンテナ以外必要なものを全部載せてこんな感じです、という全景で、体重計で重さを量ってみたら7.4kgありました。モータを選定する際には全備重量6kgで計算していたので、7.4kgは大分重量オーバーです。重すぎて後輪のサスペンションが沈んでいます。

積んでいる物の中で一番重いのはノートPCで、1.1kgあります。そのノートPCは、写真の2枚目、3枚目のように載っています。去年秋葉で買った中古のVAIO (C1)で、元はWindows 98が動いていたようですが、今はコンソールモードのみのLinuxが載っています。このVAIOにはUSBポートが1個しかないので、PCカード型のUSBハブを使って口数+4個しています。

ノートPCを除けると、4枚目の写真にあるように足まわりを制御しているSH2とモータドライバが顔を出します。ここに載っているSH2はSH7149で、今やらせていることからするとオーバースペックですが、今更CPUを変えるのは時間の無駄なのでこのままオーバースペックを押し通します。SH2の左手に見えるのは電源スイッチで、大きいスイッチがDCモータ駆動用、小さいスイッチがその他の電源のスイッチになっています。Top-URGを動かすために必要な12Vはこの電源基板上のレギュレータ LM338Tで作っています。レギュレータとモータドライバがそこそこ発熱するので、この熱を逃がすために冷却ファンをつけました。

5枚目の写真がバッテリで、バッテリは番号をつけて管理しています。バッテリは7.2Vのニッケル水素電池を走行用に2本、制御用に2本、合わせて4本積んでいます。だから重い。

まだギア周りを囲っていないので、次の週末には屋外でテスト走行できるよう、明日はギア周りの囲いを優先して作る予定です。

2008年9月10日 (水)

不調期

好調な時と不調なときは周期的にやってくるようです。で、どうも今は不調期らしい。先週は好調だったかどうかはともかく、かなりいろいろ頑張ってましたが、今週はダメダメです。短納期の仕事が一つ片付いて気が抜けたのかもしれませんが。

 そんな感じで、会社から帰ってきてロボットを作るにも気持ちが乗らないので、部屋でも掃除して本でも読んで早く寝ようと思います。

2008年9月 5日 (金)

泥よけの板をつけてみた

今日は年休を取る予定でいたのに、木曜日中に片付かなかったジョブが1件、金曜日の午前中に打ち合わせを入れてしまったこともあって、まんまと21:45まで仕事をして帰ってきました。先週末から仕事も帰宅後のロボット作りもハイペースで来ているのでかなり疲れ気味。

それはそれとして。明後日は今年のつくばチャレンジの第2回試走会があるので、屋外を走行できるようロボットに泥よけの板をつけてみました。といっても、ギアやモータ周りはハウジングしていないので、砂埃等の対策はまだできていません。今日の成果はこの写真。

Img_2847 Img_2851

この黒い板は3mm厚の低発泡塩ビ板(Forex)で近所のホームセンターで調達しました。発泡塩ビ板は120℃くらいになると曲げ加工ができるそうで、私はライターの火で炙ってアルミ板をガイドにして発泡塩ビ板を狙った形状に曲げ加工しました。材質的には自己消火性なのでモータの熱にさらされても発火するおそれはありませんが、塑性変形を始める温度が比較的低いので、モータの近くで使うのはまずかったかなぁと少し気にしています。(大丈夫だとは思いますが。)

熱といえば、モータドライバがかなり発熱するので、台車の上に載っているツールボックスに4cm角の冷却用ファンをつける予定です。明日はツールボックスに部品を据え付けます。

すべての部品を台車に載せよう

昨晩で走行速度制御を実装し終えたので、今日はプログラムから離れて部品を全部台車に乗せるための工作をしてみました。写真を見てもわかるとおり、大越さんのデザインをパクッたとしか言いようがない(;´Д`A ```

Img_2839_2 Img_2842 Img_2843 Img_2844 Img_2845 Img_2846

最初は半透明な工具箱に部品を入れたらLEDが光ってるのが見えていいかなと思ったのですが、なんかいまいち。そこでほとんど同じサイズの藍色の工具箱を使ってみました。(ココログの調子が悪くて2枚目以降の写真がUploadできません。) とりあえずいい感じで工具箱が台車に乗りました。

2008年9月 4日 (木)

よくある話

今日あった「よくある話」を2つほど紹介します。

まずは会社の実験室で。半年以上前に書いたプログラムに不具合が見つかって、「ココだ!」という不具合発生場所を探り当てて修正したつもりだったのですが、直したはずなのにプログラムの動きがなんかおかしい。よく見たらケーブルが抜けていたという落ちでしたhappy02

続いて、会社から帰ってきてロボットの速度制御のプログラムを実装している間の話。速度制御をきっちり入れてあげたら、数日前はばっちり座布団を乗り越えられたのに、今日は座布団を乗り越えられません。あれ、計算をどこか間違えたのか? と思ったら、単にバッテリがへばっていたという落ちでした。sad

こういう当たり前すぎるアホなミスって、結構見逃すんですよね~。

2008年9月 3日 (水)

ロータリーエンコーダの値も取れている

日曜日に接続テストをするのに走行速度制御が間に合わなかったのですが、その原因がわかりました。ロータリーエンコーダの値がなぜ取れなかったのか。理由は、エンコーダの出力が入ってくる端子を入力端子に設定し忘れていたから。モータテスト用のプログラムを作った時にはちゃんと動いていたのでハード的に問題がないことは分かっていました。きっと、あと1時間もあれば速度制御の実装ができると思いますが、これを書いている今はすでに午前1時25分。プログラム書いてたら寝る時間が無くなり、明日の仕事に影響が出るのでもう寝ます。

9月に入って急に仕事が忙しくなってきて、ロボットを作っている時間的余裕がありません。8月中さぼり過ぎたかな~。特許提案、マニュアル作成、バグ修正、技術調査、報告書作成など、いかにも期末っぽい仕事の溜まり方です。今週末につくば市で開かれる第2回の試走会に参加するのは厳しいかも。

2008年9月 1日 (月)

接続テストは上々

日曜日は今回のロボットに乗せるすべてのコンポーネントをつなぎ合わせて接続テストをしました。コンポーネントは、Linuxを載せたNote PC(VAIO)、レーザーレンジファインダ(Top-URG)、デジタルコンパスモジュール、台車となるラジコンバギー、台車を制御するマイコンボード(SH2)です。ナビゲーションを担当するノートPCにすべてのコンポーネントがUSBやUSB-232C変換ケーブル経由でつながります。だから、もうケーブルのジャングル状態。

Pap_0000 Pap_0003

とりあえず全部つないで通信はできてる、データはちゃんととれる、モータやステアリングは動く、というところでこの日の接続テストを終了しました。左の写真から見てもわかるように、このままじゃ屋外を走れないので、接続図を書いて、バッテリをどうするか、どの部品をどこに配置するかなどを検討して、この日の打ち合わせを終了しました。

打ち合わせ後、近所の模型屋さんでサスペンション用の固めのスプリングやバッテリコネクタを、ホームセンターですべてのコンポーネントを台車に積みこむための材料を調達して、それで力尽きました。なにせ、金曜日の夜から半徹状態でプログラムの修正をしていたので、もう気力も体力も目いっぱいでした。

そうそう、このところ忙しくてブログに書きそびれていたのですが、新しく届いたマクソンのモータを台車に載せて動作実験をしてみたところ、すごくあっさり座布団を乗り越えました。速度の制御は比例制御のみ。お金を使って解決できる問題はお金で解決することで開発時間を短縮するという戦略は正しかったようです。ただし、ロボットの全備重量を6kgとして計算するとバッテリ電圧が 7.2Vでは走行速度が50cm/s程度しか出ないので、時速 4km (=111cm/s)を得るには 14.4V のバッテリが必要です。

« 2008年8月 | トップページ | 2008年10月 »

最近の写真