最終更新日 2010年05月05日

コンピューター工房


MCR HOME 画像処理 SOFT


★ 来年度の競技会に向け、早速始動

  屈辱を晴らすべく、早速来年度競技会に向け始動しました。(本年度は、8月ごろ秋葉原で全国大会が有る様ですが、じっくり調整して
  来年2月ごろの電通大杯に参戦したいと思います。)
  今回は、車体重量が重いという事もありますが、モータートルクが小さい事が要因、思い切ってRCカーの車体を購入してきました。
  要は、メカに弱いので、車体はメーカー品を使い、マイコンを含めたハードウエアとソフトの製作に力を集中したいと考えています。


             
           シャーシ              送信機+アンプ+サーボ     センサー式MCR(右上に7個のセンサー)

  本当は、F1レース用(ドリフト設計)車体を購入したかったのですが、車体が低く10度の上り坂、下り坂で車体がこする可能性があり
  また、車検に通らない可能性があり、やもなくジープにしました。 逆に車高が高すぎると、これまた車検に通りません。
  従いまして、車体カバーはなくメカ丸出しとして車高を低くする工夫が必要となります。

  右側の送信機はマイコン制御の為使用しませんが、サーボ、アンプへ供給するPWM信号の周期、デューティを測定する必要から、
  もったいないが、セット購入しました。(メーカーは公開していなし、資料もない)
  解析できましたら公開します。


  < 検討中案 >

  1. 上記右側写真のセンサー式のスピードの1/5程度目標にする。(1m/sec)
     その為、直線部分は画像取得を少なくして、実際の車と同様な構造の前輪構造として直線安定性を高める。
     上記、左写真のシャーシを使用する。


  2. ラインの画像を安定させる為、自己照明(LED)を行う。
     照明とカメラを同相波を取り込み外乱光を遮断する。(偏光フィルタ取り付け)
     赤外線LED+赤外透過フィルタをカメラレンズに取り付け

  3. 駆動系と画像処理部を、別CPUで処理する。

  4. センターライン・トレースを止めて、コース両端を検出する
     レーンチェンジ、クランクの対応がしやすい

  5. 車高を低くするのと、横方向を見るのにミラーを検討。
     カメラを水平に置き、45度角度にミラーを設置、ミラーはサーボ機構で回転させ、前・左右横を見る事が出来る。
     クランク等は、ミラーをクランク方向に回転させる。(回転中の死角を無くす)
     ミラー加工が課題


  ● シャーシの組み立て

      
   左が今回、右が前回      車長は1.5倍      今回小型カメラ

  RCリモコンの内部PWM信号解析

     
     接続状況             アンプを分解                  受信機

  受信機には、電源入力端子(7.2V)1個と、PWM出力端子2個があります。
  PWM出力端子2個には、サーボでも、モーターでも関係なくどの場所でも接続OKです。
  不思議に思ったのですが、波形を観測して理解できました。
  どの出力も、同一波形です。
  周期は、16msです。 
  デューティは、サーボ動作では、1.5ms±250μs、モーター動作では、1.5ms±500μsでした。
  今回購入したアンプ(モータ駆動用)は、正転のみですので、1.0ms〜1.5msが有効で+部分は
  PWM信号は動作していますが、出力は(ドライブしていない)停止しています。

  シャーシが完成しましたので、これからは以下の内容で作業を進めていきたいと思っています。


  (1) 画像取込み時間の測定
      車速と画像取込み時間の関係を把握していないと、1回の画像取込みでどれだけ車が進むか理解してソフト作成
      (アルゴリズム)が変わってくる。


  (2) PWM信号の発生
      RCカーがベースとなっているので、受信機(無線)からマイコンに変えるとPWM信号の発生が別途必要となる。

  (3) カメラのレンズ選定
      今回、車体とカメラの小型化を図った事に加え、中央ライン・トレースからコース両脇検出に変えたことで撮像視野
      を広く取る必要が出てきた。
      模擬コース(画用紙)を撮像してカメラ角度、カメラ取付け高さ、レンズ選定を行う。
      ミラーを前方、左右に振った時の画像調査


  (4) LED照明の数、方向、並べる方向(縦、横)の検討
      コースの端を照らす事と、コースの何処まで照らす必要が有るかを調査(カメラ角度との関係)

  ★ 画像取込み時間測定

     出力ポートのBit1をONにする。
     画像の取込み
     出力ポートのBit1をOFFする。

     上記をループさせて、出力ポートBit1をオシロスコープで観測し、ON時間を測定すれば画像取込み時間が
     測定できる。
     早速、測定して見たが、Bit1がONのままでOFFしない。 画像取込み処理はFPGAなので高速ではあるが、
     画像はNTSC信号なので、約16ms(1フレーム)程度は掛るはずである。 理解できない。
     <要調査>後日報告

     <ひょとして>
     1回の処理だけ見ていれば一見良い様に見えるが、連続して処理を書けば、OFFして即ONしているので
     見えない可能性あり
     
     出力ポートのBit1をONにする。
     画像の取込み
     出力ポートのBit1をOFFする。
     画像の取込み

     これをループさせないといけないのかも!!

     解決しました。


     測定の結果 : 70msでした。 
 
     通常、NTSC信号は奇数フレームと偶数フレームで1つの画像が作られる為、33msが必要でこれに露光時間が加算される。
     今回のカメラは、自動露光の為、最悪条件(レンズを塞ぎ真っ暗な状態で測定)しての結果です。

  ★ アンプを取付 + 2個目のバッテリーを搭載

      

  ★ 画像処理ユニットと走行コントロールとの約束事(プロトコル)

     今回は、画像処理は前回競技大会に使用したFPGA+H8SXのユニットを画像処理専用に使用
     PWM信号発生とか走行コントロールは、別のH8/3048Fボードを使用します。
     従いまして、この間のプロトコル(信号のやり取りの約束事)を決めておかないとハードが決まらないので、
     大凡下記の内容で進めて問題がでれば修正して行こうと思っています。

     画像処理ユニットからは、出力ポートが少なく、8Bit + 4Bit しか有りません。

     
     4Bitで、コースパターン指示 ( 直線、 カーブ、 左右クランク、 左右レーンチェンジ )
     8Bitで、走行パターン指示 をしたいと思います。 (前輪切り角度、車速コントロール、LED点灯)

     この2つのポート情報から、H8/3048FはPWM信号とサーボをコントロールします。
     具体的な、指示内容は画像パターンを調査後決定する。


     試案 信号配置

  ★ ハードの製作(走行コントロール用マイコン基板関連)
 
     PWM信号発生には、走行コントロール用マイコンで発生させ、ドライブ回路までのインターフェイスは自作の予定。
     ( 電圧変換:5V−>7.2Vレベル変換、 正転、逆転制御回路 )


     ここで問題が発生、マイコン基板のコネクタはオムロン製(?)で、大阪日本橋では入手出来ないので
     一般的によく使われている日本圧着端子製造の物に交換して今後のメンテナンス性を高める。
     画像処理ユニットを仮置きしたら、
高さが150mmを上回ってしまった。(ユニットを裸にする必要あり)

         
     上側のコネクタは、RS232C通信用(これはボードに添付されてくるのでそのまま使用)
     右側のコネクタが、+5V電源供給用コネクタ(ボード側がオムロン、ケーブル側が日圧製コネクタ)


       
        画像処理BOX        内部構造       使用基板(FPGA+H8SX1653)

     1号機には、上記左側のBOXを搭載していたが、2号機は車高の関係で右側の基板を裸で搭載予定。
     モーターの真上に位置するので、耐ノイズ性を高める様にシールドを要検討(以前はケースに入ていた為ノイズに強い)

     やってしまいました!!! ( 臭い 焦げた )


     

     コネクタ交換後、挿抜確認でコネクタを挿したとたん煙が発生。 ( コネクタに―5Vが加わっていた。 )
     これで2回目、まともにH8/3048Foneを使った事がない。(相性がない)
     作業中断。 新たに基板発注すべきか? 別のマイコンを使うか?
     
     機器組み込みタブで紹介しています様にトラ技術増刊号の今すぐ使える! H8マイコン基板を購入したので、
     この基板を使うか迷っている。(使用マイコン :
 H8SX1655
     CDで供給されてるプロジェクトソフトが読込出来ない、結局CQ出版のHPで修正ソフトがアップされていたが
     大きな時間のロスであった。

     
     H8SXを走行コントロールのみに使用するのは高機能すぎてもったいないが今後の勉強の為、採用する事とする。
     IO関係を取りだすのに、上記基板用拡張基板を発注(マルツパーツ館)
     部品入手の間、新しい開発環境を構築。
     今までは、RENESAS製
HEW+KPIT・Toolchainsであったが、今回はEclipseの環境下にZylin・EmbeddedとJavaを
     インクルードして、Cygwin経由で、KPIT・GNU・Toolchainを組み込んだ統合環境を作りトライする。(全て無償ツール)

     上記MB(メインボード)用、拡張基板が入荷 チェック
  機器組込タブで紹介

     完成後、高さが35mmになっている、これにユニバーサル基板に載せる必要があるので50mmとなると全高は
     150mmを超えてしまう。(実装方法の検討が必要)

     話が前後しますが、撮像方向を前方、左右に可変する為のミラーを検討する中、小型ミラーを特注しようとしてHPを
     見ていると、標準品があった。(標準品の最低が40mm角:これを更に半分の20mm角に切って貰い購入)
     (有)M&Gキタデ
  http://www.mgkitade.com/
     価格は、10枚セット(1枚でも同価格) ¥3,465-です。(消費税含む、送料別)送料・代引き手数料込では、¥4410−
     このミラーをアクリル板に張り付けこの様に加工予定
     これも当日発送、本日入荷(H22/03/12)
     予想以上の出来栄えでした。 ( 実際使用するのは1枚なので、少し高いですが )

     ダイソーで、ミラー取付冶具用部材を物色、子供用木ブロックの三角を購入(30mm辺の三角)

     
        
        裏面/表面            完成        木工ブロックの穴が見える

     ミラーは、10枚入荷しています。使用数は1枚、作業中の事故等の対応用として予備を1枚としても、8枚余ります
     ので、何方か実験用等で御希望があれば
無償提供させて頂きます。TOPページのアドレスまで連絡ください。
     但し、送料は御負担ください。

     先ほど、(有)M&Gキタデ の北出社長様よりメールを頂き、社長様の会社でもロボコンに参加され準優勝をされた
     との事で、それを紹介するURLをお送り頂けました。

     
     http://robonable.typepad.jp/news/2010/02/14matec.html  (画像処理とは関係有りませんが、御参考まで)

     カメラを借り取付して画像チェック、カメラは小型ながらレンズが少し大きく撮像範囲を確認すると約1mm程度しか
     余裕が無く、90度回転させるとミラーの回転軸とレンズセンターの合わせ込みが非常に難しい事が判明。
     高速に走行させた時は、軸ブレも考えられ樹脂ボディでは強度が弱い。
     せっかくのミラー方式を見直し、直接サーボにカメラを固定する方式に切り変える。
     その場合は、サーボを車体の底面に張り付ける必要がある(車高150mm以下の規定)のと、回転させても視覚を
     確保する必要があり取付場所が難しい。(下写真の形となる)


         

     左右に90度カメラを振った時は、映像が斜めに映る為、画像変換が必要となる。

     これでやっと本来のPWM発生に掛る事が出来るが、H8の内容を理解していないのでH8/3048Fのサンプルを
     H8SXに置き換える事ができない。
     まずは、H8SXのPWMもどきのサンプルを、RENESASから探す事から始めます。

     サンプル1 :
  8Bit パルス発振(H8SX)
     サンプル2 : 16Bit パルス発振(H8SX)
     サンプル3 : PPGを用いた4相パルス発振(H8SX)
     サンプル4 : 2相ステッピングモータ(H8SX)
     サンプル5 : 15相任意デューティ設定可PWM(H8SX)
     サンプル6 : 15相PWM発振(H8SX)
     サンプル7 : 16BitTPUパルス発振(H8SX)

     ここらを参考に作っていきます。(失敗談も出来ればUPします)

     どうやら、今回の目的にはサンプル5の
15相任意デューティ設定可PWMが良さそうで、これをベースに修正を行う。
     ソース : 
15相任意デューティ設定可PWM

     1cH : サーボ(前輪操舵)
     2cH : カメラ回転サーボ(撮像方向回転)
     3cH : モータ駆動


     PWM信号発生には時間が掛る様に思われるので、別ページで進捗を記載します。 PWM信号発生トライページへ

     平行して、画像解析用に画像処理ユニットからホストPCでデータを取りだし解析するツールが必要となり準備開始。
     1号機の時は、データ取り出しには、ハイパーターミナルでReadコマンドを送信し、垂れ流しで送られてきた内容を
     コピーしてCSV形式としてExcleに読込、ハンドで解析したいた。(前頁のデータ解析内容参照)

     今回は、データ量が多いのと効率アップの為、VC++内の配列に取込み解析はVC++内で実行出来る様なツールを
     考えていますが技術が伴わないので、参考になるソフトを探してみます。
     (この分野の先輩である大湯様に相談:快く配列取込みまでのソフトを検討頂いています。)
     画像処理は、やはり技術的には敷居が高いので出来るだけ出来たソフトは公開しお互い切磋琢磨してレベルアップ
     を図れたら良いなとおもいます。

     この内容は、
SOFTタブで紹介して行きます。

     今回は、クランク、レーンチェンジ、カーブにおけるミラーの回転方向決定とそれより得られる画像からの処理方法を
     検討する必要があり画像データは膨大になる。

 
 ★ 車体が完成間際に手動確認を行った所、クランクで4回の切り返しが必要で実質競技には不向き(中断)

     中断を決意した物の、完成度が高かったので、最後の雄姿を写真に収めた。

  
   

    



   このページのトップへ移動

カウンター