沼津高専 電子制御工学科
技術調査報告書
MIRS0401-TECH-0001
改訂記録
版数 作成日 作成者 承認 改訂内容
A01 2004.06.22 市川 坪内 初版
A02 2004.07.20 市川 坪内 第2版 超音波センサーのMIRS本体旋回時の誤差・PICの必要性を追加

--目次--
  1. ポスト獲得動作の検討
  2. 各ポスト獲得動作の利点・不利な点
  3. パーツに関する技術調査
    1. 超音波センサの調査
      1. 目的
      2. 調査内容
      3. 調査結果
      4. 考察
    2. 超音波センサーのMIRS本体旋回時の誤差
      1. 目的
      2. 測定方法
      3. 測定結果
      4. 考察
    3. PICとは
      1. PICの必要性
    4. 電子コンパスとは


ポスト獲得動作の検討


どのようなポスト獲得動作が適当か協議し、以下の3方法を検討した。

--直進型--

競技開始後、直進し反対側の白線を感知するまで直進続ける。 直進中にポストの位置関係を取得し、転回後はじめの位置に戻りながら近いポストからとってゆく。

--周回型--

競技開始後競技エリアを示している白線のところまで後退し、以後その白線に沿って競技エリアを周回しながらポストの位置を確認、取得する。

--中央型--

競技開始後競技エリアの中央に向かい、その場で旋回してポストの位置関係を取得する。その後ポストを取得しに行きまた中央に戻った後に別のポストを確認しに行くという動作試験用プログラムをベースにしたような動作。



各ポスト獲得動作の利点・不利な点


協議した結果考えられた、それぞれのポスト獲得動作についての利点・不利な点を示す。
直進型
利点・特に無し
不利・超音波センサーの最長の測定可能距離によっては競技エリアの隅のほうにおいてあるポストを感知できない可能性がある。
・競技エリアの中央にポストがあった場合この方法では対応できない。
・直進し転回する際の誤差や直進時の誤差により競技開始時の初期位置にもどることができない可能性がある。
・ポストを探索する際に自機位置から見てポストの後ろにポストが存在する場合そのポストを発見することができない。

周回型
利点・単調な動きのためプログラムを短くすることができる。
・基準となるラインがあるためポストの位置を記憶する際に誤差を少なくできる。
・基準となるラインがあるため現在位置の誤差が少なくなる。
不利・中央のポストを超音波センサーで探知できない可能性がある。
・周回するため移動量が大きくなり競技が時間制限で中断されてしまう可能性がある。

中央型
利点・無駄な動きが少ない。
・すでにベースとなるようなプログラムが存在する。
不利・自機からみて手前のポストの後ろ側にもポストがある場合探知できない。
・競技エリアの中央ににポストがあった場合この方法では対応できない。
・旋回動作が多いため自機の現在方向が誤差で正しく取得できない可能性がある。

さらに協議した結果、

・自機から見てポストの後ろにポストがある場合(直進・中央型)
 対策:ポスト獲得動作中に上記に該当するポストが存在していないか超音波センサーで確認する。
・競技エリアの中央にポストがあった場合(直進・中央型)
 対策:MIRS前面の超音波センサーもしくはタッチセンサで存在を確認した場合に初期位置を変更して動作開始すればよい。
・旋回動作が多いため現在方向が正しく取得できない(中央型)
 対策:中央位置においては2つ以上のポストの位置関係から計算して求めることができる。もしくは電子コンパスをMIRSに実装しそれを用いれば中央位置以外でも自機の方向を正しく把握することができる。

以上のことから、MIRS0401では中央型の動作方法を使用することにした。


パーツに関する技術調査


超音波センサの調査


  1. 目的
    この調査書はポスト探索動作において超音波センサがMIRS0401のシステム概要に適う基本性能を有しているかを確認する。

  2. 調査内容

    1. 適性検査・最大距離測定
      MIRS0401のポスト探索動作は競技場中央で360°回転し、超音波センサによりポストを発見することが基本である。
      MIRS2004競技規定より、競技場はfig.1(黄緑部分はポスト設置禁止範囲である)のようになる。


      つまり、競技場中央で360°回転し、ポストを探索する際にfig.2より、約1.9m(※)が測定可能であれば中央から競技場全域を探索することが可能である。
      ※本来はMIRS本体の大きさ、ポストの大きさなどを考慮するので必要な距離は1.9mより小さい。



      超音波センサが1.9m以上の距離を測定可能であることを確認した上で、測定可能距離の最大値を求める。

    2. 最小距離測定
      今後のMIRS0401の動作のプログラムを作成する際の資料とするため、超音波センサの測定可能な最小距離を求める。


  3. 調査結果
      調査1.2の結果は以下のtableに表す。

        table1.調査結果
        センサNo.Max[mm]Min[mm]
        13750230
        23750230
        33620230
        41150280

      ※備考
      センサNo.4に関しては1200mm以上または125mm以下ではタイムアウト値(999)になってしまう。
      また、測定距離は正確な値ではなく、ある程度の誤差が存在することを承知する。


  4. 考察
    1. 超音波センサのNo.4の動作が他の3つのセンサに比べ悪かった。
      問題がないか調査したい。

    2. 測定結果より、中央で360°回転し、ポストを探索する際に必要な距離(約1.9m)を大きく上回る距離を測定可能であることがわかった。
      これにより、MIRS0401の基本となるポスト探索動作は実行可能である。
      更に、競技場のポスト設置可能範囲は2.7m×2.7mであり、その対角距離は(2.7×√2)m≒3.8mである。
      超音波センサ(No.1〜3)は3.6mの距離を測定可能で、ポスト、MIRS本体の大きさを考えれば3.8mの距離を測定するのは可能である。
      したがって、MIRSとポスト間に障害物(他のポスト)がないことを前提とすれば、
      ポスト設置可能範囲内にMIRSがいれば競技場のすべてポストを探索することが可能である。

    3. 超音波センサの測定可能なMin値を実測で調べることができたので、プログラムを作成する際の参考値として活用したい。



超音波センサーのMIRS本体旋回時の誤差
  1. 目的

  2.  MIRS本体が旋回している時、超音波センサーに生じる誤差を求めた。

  3. 測定方法

  4.  下図のようにMIRSと遮蔽物を配置し、回転しながら選択した超音波センサーの返す値を設定した個数、設定した間隔で記録するプログラムを作成し(
    .cファイル実行ファイル使用マニュアル(.doc)へのリンク)それを用いてデータをとり、Excelにプロットし整理した。



    1mの距離を作るための遮蔽物となるものがあまりなかったため全体を囲うことはできなかった。しかしデータを見れば遮蔽物により1m測れたところと遮蔽物がなく1m以上の大きな値を出したところとはっきりとわかるので問題はない。

  5. 測定結果
  6. 測定結果1測定結果2測定結果3
    整理する前のデータ(単位:mm)

    測定結果1測定結果2測定結果3
    整理したあとのデータ(単位:mm)


  7. 考察

  8.  整理したあとのデータについて考察する。まず値が極端に小さい部分について、これは整理する前の図で最後のほうにある部分がソートすることにより前に出てきたもので、測定を終了するために実行中のプログラムを直接中断させようとした際に出たものであるため無視できる。また、データが1000よりも極端に大きいものはフィールドの配置図からわかる通り遮蔽物のない部分でのデータだというのは自明の理である。よってこの部分も無視できる。それらを無視してグラフを見てみると1000の部分で若干右肩上がりだがほぼ直線になっている。これよりわかることは回転中でも超音波センサーの返す値はかなり安定しているということである。1000前後での直線部分の右側は1050や1100という値が見られるが、これはフィールドに置いた遮蔽物が円筒だったり直方体だったりしたことによる遮蔽物の超音波があたる位置による中心からの距離の違いや、回転ていると若干最初の位置から動いてしまうことに起因すると思われる。
     これらの結果より、超音波線センサーはMIRSが移動中に用いても実用上十分な精度を保つことがわかった。


PIC(Peripheral Interface Controller)とは

PICはマイクロチップテクロノジー社(USA)が開発・販売をしている超小型のマイコン(マイクロコントローラー)で、
小さなICの周りはすべてI/Oというものです。
小型の特徴を生かし、小型の電子機器への組込やPLDの置き換え、
マスタCPUの補助処理や周辺回路などに組み込まれ大変便利な小型マイコンです。

この手のICは他にも存在しているようですが、現実的に利用しようとすると入手が困難だったり、
開発環境の整備に費用が高くつくなどのハードルにぶちあたってしまいます。
その点PICの場合はマイクロチップ社の主力製品であることから少量での入手もでき、
最低限必要な開発環境も安価に揃えることができます。

PICは一般のマイコンに比べ高速性を重視する設計から特殊なアーキテクチャーを持っています。
これはZ80などに比べると解りにくい構造になっていますが、命令数は少なく理解するまでに時間はかかりません。


以下にPICの特徴を要約すると、

高速動作 アーキテクチャーにRISC(Reduced Instruction Set Computer)を採用して高速動作
小型パッケージ 8〜40ピンと小型パッケージでメモリー・I/Oが内蔵されている
低電圧動作・低消費電力 2Vから動作し乾電池でも駆動できる
回路設計が容易 出力電流が大きいため直接LEDを駆動できる
安価 500円玉1つあればお釣りが来る 個人でも容易に入手できる
開発環境 パソコンとライターがあればOK! なおライターは自作、ソフトはフリーソフトでと開発環境が安価で構築できる
   
PICは早い クロック20MHzで動作するタイプのものもあり、しかもRISC構造を持つPICの高速性は体験しないとわからない。ゆっくり動かしたいときにスピードを抑えるのが大変だ。
プログラム構造を変えよう ピラミッド型のプログラム構造はPICには似合わない。スタックがあまりないので、「悪いプログラム」と言われる「ずらずら書き」のプログラムになるのはしかたない。しかし「ずらずら書きプログラム」は高速動作をすることは事実であるし、機密性が高い。プログラム構造の把握は記上デバッグでカバーする必要がある。
プログラムメモリは少ないか? 1命令1ワードなのでZ80よりはメモリ効率が高い。しかし、基本的な命令が35程度しかなく便利な命令がないので、1動作が数命令になったり、マクロの利用や、高速性からループをさけたりする場合がある。この点では効率が悪い。実際の感触としては、I/Oポートの数から仕様が限定されるので、その状況に見合ったメモリ容量であると言える。足りなくなることはあまりないと思われる。
ワークメモリは少ないか? ワークメモリはたしかに少ない。通信速度変換や、音声認識、データ収集の様なバッファメモリを多用するような開発ではメモリが不足する。通常の制御系の開発では問題ないと思われる。
プログラムメモリのポインタがない プログラムメモリのポインタは存在しない。LCD表示器などに文字列をどんどん表示するようなプログラムでは、メモリ内の文字データを効率よく取り出すことができない。PICはこの手の作業には向かない。
2バイト以上の演算は苦手 2バイト以上の演算が入り込むとやたらとメモリを消費する。よい命令がないだけにPICは2バイト演算が苦手だ。データ構造をじっくり考えて1バイトに抑えると、メモリ効率もスピードもアップする。
RC発振器は便利 PICはRC発振器を内蔵しているタイプがある。水晶は安いとはいえPICに匹敵する価格である。ヒューマンインタフェースでのプログラムでは、RC発振で充分である。
PICは教育用に最適 PICは教育用マイコンとして最適である。命令数が少ないため覚えやすい。周りがI/Oポートのため、バスやら、メモリやらの複雑なアーキテクチャーを無視してプログラムに取りかかれる。すぐにICに書き込み動作させることができる。開発装置を安価にそろえられる。などがポイントである。機械系、建築系、土木、化学などの、マイコンをブラックボックスとして体験するだけでよい分野の教育にはさらによい。

このPICを使って、超音波センサーの制御を行う。
PICと温度センサーを組み合わせることにより外気温に応じて自動的に誤差を補正するプログラムを作ることもできる。
PICを使ってこれらの事を行えば、FPGAの負荷を減らせるとともにFPGAのI/Oピンを節約することもできそうである。
FPGAと違いPICはプログラムによって扱うことができるのでFPGAに比べ数値計算に適している。
(ただしZ80等と比べると力不足ではある)
また、FPGAの論理回路としてFPGAに書き込むと巨大な回路になってしまうような機構でもPICを用いて簡略化することにより
I/Oピンの節約とともに他の論理回路を組み込む空き領域を作ることもできる。
上記の超音波センサー以外にもPICを用いてFPGA論理回路をより簡略化できる部分はありそうである。
ただしPICを用いるときはPICのOUTPUTをFPGAを介して同期させてからISAバスに出力しなければならないのがPICを使用する上での注意点である。

参考:
『XJO!Homepage』
PICの必要性
 PICを使い気温に応じて音速の設定を変え誤差を小さくする必要があるか考察する。

 音速(m/sec)=331.5+0.6×気温(℃) より音速が求まる。気温が20度変化したとき、超音波センサーで1mの距離を測って生じる誤差を求めると、0度が20度にになったときの音速の変化は+12(m/sec)である。
これにより超音波が1m進んで反射して返ってくるまでの時間の変化は-0.00010538310050254566052151461861197(sec)となる。
この時間は0度のとき超音波が0.034934497816593886462882096069845(m)進む時間である。この程度の誤差を訂正したところで他の部分の誤差が大きすぎるため現実的ではない。気温が20度変化しても必要十分な精度は満たしているためPICを用いての超音波センサーの制御は行わずに標準MIRSのままのものを使用することにする。

また、PICを使うことによりI/Oピンの節約ができるという利点もあるが、I/Oの数は十分足りているためあえてPICにする必要はない。よってこの部分においてもPICの使用はしない。



電子コンパスとは

地磁気の強さを適当な磁気センサを用いて測定し、その出力信号を処理し、方位を算出するもの。
地磁気の磁場強度を測定するにはFGセンサが用いられる。

電子コンパスの利点

電子コンパスを使用することでMIRSの制御に関して次のような利点が考えられる。
・基準となる方位を地磁場に合わせて定めることができ、ロータリエンコーダに比べ正確な方位を取ることができる。
・毎回の角度補正を地磁場に対して行うことで、誤差が蓄積されない。
・動作制御が不能になった場合、動作をリセットして電子コンパスから初期の方向を定めることができる。




沼津高専 電子制御工学科 市川陽平 Mail:ichikawa@eces.numazu-ct.ac.jp