2010年12月27日 (月)

SI2010終了

12/25(土)は、東北大で開催されているSI2010で発表してきました。今年もろくに走れなかったので、恥をかきに行ったようなもんです。

発表では、ロボット開発が間に合わなかった理由として、開発の進捗管理などが全然できていなかったことを挙げました。油田先生から開発にどれくらい時間を使ったかというご質問がありましたが、そもそもマネジメントができていないのでそれが全然把握わからない。これ、仕事ではちゃんと何にどれくらい時間を使ったか記録しているので、自分の生産性とかも把握しています。でも、自宅でやる趣味のロボット開発ではやっていなかった。

ということで、来年度はつくばチャレンジには参加できないと思いますが、これから自宅で勉強するにしてもロボット開発するにしても、作業ログをとるようにして進捗管理ができるようにしたいと思います。

2010年12月23日 (木)

SI2010の発表準備

先週の日曜日、というか実際には月曜日の午前4時くらいにつくばチャレンジの参加レポートを提出して、現在、今週末のSI2010の発表用スライドを作っています。発表内容は予行原稿と全然関係なくなってます。

発表内容は今年度の反省的なことするつもりなのですが、次回はこうします、という下りをどうしようか迷っています。というのは、まだ決まったわけではないのですが、仕事の都合上、来年度はつくばチャレンジに参加できなくなりそうだからです。考えようによっては来年一年間じっくり仕込みができるとも言えるわけですが、再来年はつくばチャレンジ自体が無くなっていると思うので、仕込んでも出す先が無くなりそうなわけです。

再来年、つくばチャレンジが今とは形を変えて続けられる可能性はあるとしても、マイクロマウス、ETロボコン、知能ロボコン、マイコンカーラリー、ロボットグランプリのロボットランサーとか大道芸とか、いろいろやってみたいことはあります。

そんな感じで、これからどうしようかな~と迷っています。

2010年12月17日 (金)

やっぱりPWMの周波数は関係ありそう

かなり追い込まれぎみなので、21:30に残業を終わりにして帰ってきてから今日はモータドライバの波形計測をしてみました。前回はTA8440Hを使って実験用の回路を作ったのですが、TA8440H自体が大きな電流を流せないためあまり意味の無い実験結果だったかもしれません。ということで、今回はロボットに使っている回路そのもので実験しました。

ん~、やっぱりPWMの周期はモータのトルクに効いてます。具体的にはf=10KHzのときがもっともトルクが太くて、20KHz、50KHz、100KHzと周波数が上がるにつれてトルクが細くなってしまいました。

何が読み取れるかわかりませんが、念のためDCモータの端子とPower Groundの間の電圧をデジタルオシロで計測した結果画像を載せておきます。

まずは周波数 10KHz、デューティ20%、無負荷。モータは適度に回ります。

F_10k_d_20_noload_2 

続いて周波数 20KHz、デューティ20%、無負荷。すでにモータが回りません。

F_20k_d_20_noload

周波数 20KHz、デューティ50%、無負荷ならモータが回ります。

F_20k_d_50_noload

周波数 20KHz、デューティ80%、無負荷だと、こんな感じになります。

F_20k_d_80_noload

周波数 100KHz、デューティ50%、無負荷だとモータが回りません。

F_100k_d_50_noload

いろいろなパターンを計測してみましたが、波形を見ても私にはなぜ周波数が上がるとモータのトルクが細くなってしまうのか見当がつきません。アドバイスをいただけると幸いです。

私の予想としては、フライホイールダイオードに使っているダイオードが間違って小信号用のものになっているので、そこが原因かなぁと。そう思うのですが、その物的証拠がつかめずにいます。とりあえず、今週末はこのダイオードを3A程度流せるものに付け替えて、再度実験してみる予定です。

2010年12月10日 (金)

モータトルク不足の原因はダイオードか?

ずっと未解決のまま引きずっている、DCモータのトルク不足問題。昨日、仕事中に閃いてしまいました。トルク不足の原因は、モータドライバIC(L6203)の1番ピン、3番ピンにつながるダイオードにあるのでないかと。

そう考えたのには次の理由があります。

  • PWMで周波数チョッピングしなければ非常に大きなトルクを得られるので、モータドライバICそのものや、バッテリ、回路上の配線が流せる電流には問題無い。
  • チョッピングをするととたんにトルクが細くなる。
  • 宮田さんROBO-ONEテクニカルカンファレンスの資料のpage 22によると、PWM信号の立下りでコイルに溜まったエネルギを帰還させるルートが無いと、PWMのパルス幅を増やしても電流が増えないとのこと。このひげが出てる波形に見覚えがある。
  • モータドライバをFETで自作している人たちの書いた資料をみると、このようなエネルギをにがすためにショットキーバリアダイオードを入れるらしい。一般的はこのようなダイオードはフライホイールダイオードと呼ばれるらしい。
  • 自分で描いた回路図を見直してみると、確かにモータと並列にダイオードが入っている。でも、設計した時はこれが何のために入っているのか理解しておらず、L6203のデータシートのリファレンスをそのまま真似してダイオードを入れただけだった。
  • このダイオード(1N5401)は3A程度の電流が流せるらしい。どこだかやっぱりFETでモータドライバを自作している人のサイトで、フライホイールダイオードが熱くなるという話が書いてあった。結構電流が流れるようだ。
  • ん!! 今の回路に載っているダイオード、ちょっと小さかったような? 回路図では3Aくらい流せるダイオードを載せるように書いてあるのに、実装してあるダイオードは小信号用になってるぞ!!

そう考えると、今まで発生していた現象を矛盾なく説明できます。

12月いっぱい残業を目いっぱいやる予定なので、なかなかこちらに手が回りません。でも、なんとかこの問題を解決できそうなので、これだけは解決して、SI2010の発表にまにあわせたいと思います。

2010年12月 8日 (水)

モータのトルク不足とPWMのチョッピング周波数は無関係のようだ

今年度のつくばチャレンジが終わってからもう2週間以上たっていますが、まだSI2010の発表資料の作成やテクニカルレポート作成に着手できていません。

昨日は会社から帰った後、DCモータ(Maxon RE35)のトルク測定実験をしてみました。実験の目的は、「PWMのチョッピング周期によってモータのトルクが変わるかどうか試すこと」です。ロボットの制御回路に載せてあるL6203は手元に在庫が無かったので、TA8440Hで簡単な回路を作って実験しました。

結論は日記のタイトル通り、関係無いという結論でした。

電源電圧を10V、PWMのデューティを50%にして周波数を100kHzから1kHzまで振って見ましたが、モータのトルクはほとんど変わりませんでした。ちなみにモータのトルクは、モータの軸に直径4cmのプーリをとりつけ、プーリでタコ糸を巻き取って、バネばかりを引っ張って計測しました。(モータのトルク)=(バネばかりの目盛り)×(プーリ半径)です。デューティ50%では、周波数によらずモータのトルクは 0.5 kgf/cm 程度でした。

しかし、モータのトルクがほとんど変わらなかったのは、使用したモータドライバICがTA8440Hで電流を1A程度しか流せなかったからではないかという疑いもあります。デューティを100%にすると、電流は2A程度流れてモータのトルクも 8 kgf/cm 程度になるのですが、あっという間にモータドライバICが熱くなって回路の保護動作に入ってしまいます。ちなみに、モータを電源に直結した場合、電源電圧10Vで電流は6A程度、モータのトルクは32kgf/cmくらいでした。電源電圧を13.8Vまで上げると、電流は8A程度、モータのトルクは40kgf/cmまで上がりました。これがこのモータが持っている本来のトルクです。

なんだか振り出しに戻った気分です。ファームウェアにPWMの周波数とデューティを変えるテストモードを追加して、もういちど本来の回路でモータのトルクを測り直してみようと思います。

ああでも、今週末は既に予定入ってるな。SI2010の発表は12/25。発表内容をまとめるほうが先かな。

2010年12月 2日 (木)

次の締め切り

今年度のつくばチャレンジのテクニカルレポート。MLで締め切りが12/19(日)という連絡がありました。

ちょうどそのころには、SI2010で発表する内容をまとめてプレゼン資料を作り終えているはずなので、SI2010の発表原稿にするくらいのつもりでテクニカルレポートを作成したいと思います。

2010年11月30日 (火)

USB-シリアル変換モジュールのソケットが取れていた

放送大学の中間レポート(通信添削)を送ったので、今年度のつくばチャレンジの反省に戻ってきました。今日はDCモータのトルク不足問題を再調査しようとして、ロボットの筺体をあけてみたら。本番の走行ログでファームがハングアップしているように見えた原因がわかりました。

こいつが犯人です。

Usb_socket_broken

写真に写っているのは、秋月で買ってきたUSB-シリアル変換モジュールです。制御用PCと台車制御回路基板上のマイコンとは、このモジュールを介して通信しています。そのモジュールのUSBソケットが取れているではありませんか! おそらく、USBケーブルが中途半端な高さに浮いた状態でバッテリなどに押されて、USBソケットに無理な力が繰り返し働いたのだと思います。USBソケットがとれていれば通信できないのは当たり前なので、制御用PCからみたらファームがハングアップしているようにみえるのは納得できます。去年からずっと同じ状態で使っていたので、潜在的に壊れる可能性がずっとあったわけです。

修理するのは簡単ですが、再発防止策をしっかり考えておかないことには同じことを何度も繰り返すことになります。USBケーブルがUSBソケットのみで保持されていることに原因があるので、理想的にはUSBケーブルが回路基板に触れる状態になっていれば無理な力がかからなくてよい。もっといえば、USBケーブルそのものがないのが一番いい。

USBケーブルが無いってことは無線ですか。Bluetoothモジュールが手元にあるのでやればできなことは無いと思います。しかし、無線は無線でいろいろ難しいところがありますから、もうちょっと対策を考えてみます。

中間レポート提出完了

つくばチャレンジ2010が終わってから怒涛の攻撃で、なんとか3科目のレポート(通信添削)を提出しました。三島から放送大学本部のある千葉までは葉書なら翌日には届くそうなので、ぎりぎり12/1には届くと思います。

放送大学のレポートが終わったら、次はSI2010の発表準備とつくばチャレンジ2010のテクニカルレポート作成です。発表内容は、グダグダだった今期の反省にせざるを得ません。なので、これから2週間で未解決だった問題点をちゃんと解決して、次につなげる反省にしたいと思います。そして、SI2010の発表内容を文章に起こして、つくばチャレンジ2010のテクニカルレポートに仕立てる予定です。

そんなわけで、これから年末にかけて仕事も趣味もプライベートも忙しくなりそうです。

2010年11月24日 (水)

2010年度の反省

今年度のつくばチャレンジが終わりました。結果は、今年も去年とほぼ同じ。まったく進歩がありません。開発が全然間に合ってない状態でトライアルに臨んでしまったのですから、当然の結果です。

具体的に何をしようとして、実際には何がおきて、結果どうなったのか。現在まとめを書いている途中です。時間軸で振り返って見ると、こんな感じ。

  • 1~3月 スキーとか情報処理技術者試験の勉強とか。ロボット開発は何もしてない。
  • 4月 参加登録。
  • 5月 URGLibをC#で一から作ろうとした。しかし途中で断念。
  • 6月 URGLibはC/C++で配布されているものを使用することにしたので、合わせてAIモジュールもC++で作り直すことにした。そのために、log4cxxやboostライブラリに手を出した。しかし、C++からジョイスティックを扱うのが大変で、boost::threadの問題が解決せずに7月の最初の試走会(兼、説明会)を迎えた。結局、C++で作り直す案も断念。
  • 7月 作戦を変更して、URGLibをC#から使えるようにするためにWrapper DLLを作成。これはまあまあ上手くいった。
  • 8月 秋月の3軸地磁気センサを扱えるようにした。しかし、お盆明けから仕事が急に忙しくなって、9月半ばまでロボット開発がほぼ中断。
  • 9月 3軸地磁気センサでデータが取れるようになった。
  • 10月 ロボット制御用のPCでセンサデータのログをとろうとすると、URGLib wrapper DLLに近いところでバグが発生。SI2010の予稿原稿を提出して、試走会でセンサデータログ収集した。モータのトルクが細すぎる問題の調査に時間をかけたが結局解決せず。
  • 11月 走行軌跡をGoogle Map上に表示するプログラムを作成。3軸地磁気センサをうまく使いこなせない。ナビゲーションの処理は去年のものをそのまま使ってトライアルに出走。

こうしてみると、URGと地磁気センサを使えるようにするだけで7カ月くらい使ってしまっています。さらに、モータのトルクが出ない問題が未解決のままです。この調子では、あと1年あっても走れないだろうと思います。

では、開発が間に合わなかった真の原因はどこにあるのかと問われると、その時点その時点で間違ったことをしていたわけでもないので、なんとも言えません。このあたりはもう少し深いところまで踏み込んで原因を追及したいと思います。

2010年11月17日 (水)

トライアルまであと1日

トライアルまであと1日です。しかし、トライアル突破どころか、まだ自律走行できる状態ではありません。逃げ出したい気分です。しかし、来月東北大で開催されるSI2010に申し込んでしまったので、ここで逃げるわけにもいきません。反省するのは大会後にして、次の目標をSI2010の発表までに何とかまともに走れることに切り替えて、立て直しを図ります。

現在の状況です。

  • とりあえずカルマンフィルタのチューニングは不満はたくさんあってもこれで無理やりOKとします。かなりGPS頼みです。
  • ナビゲーション部分は昨年作ったのをそのまま使いまわします。検証は全然できていません。
  • レーザーレンジスキャナからデータを取り込むことはできますが、障害物回避は全然手つかずです。あと3日あったとしても、おそらく状況はそれほど変わっていないと思います。

もっと細々としたところでは、

  • 車体用のナンバープレート作成完了
  • 以前試走会で指摘された点2か所(非常停止スイッチの周りに黄色いテープを貼る、ファンに指を突っ込めないようにメッシュを貼る)の改善完了
  • バッテリは現在充電中
  • 宿の手配も完了

17日(水)は定時で退社した後、荷物を車に積んでつくばに向けて出発します。なので、プログラムをいじっている時間はありません。

苦しいな。

より以前の記事一覧

最近の写真