JH8CHUのホームページ>自己紹介>マイクロマウス大会2016参戦記

マイクロマウス大会2016参戦記


参戦記掲載。(201712/09)

マイクロマウス大会2016の参戦記です。
ロボ・トレース競技に参加しました。
以下、時間の経過と共にブログ風に記載しています。

  1. キックオフ

    	今年もマイクロマウス大会が近づいてきました。
    	ホームページで参加登録が開始されています。
    
    	が、今年も、まだほとんど準備が進んでいません。(ToT)
    	本年度は、基本的にロボットのメカは昨年と同じとしますが、
    	改善項目として最低限以下の4点は実施することを目標としています。
    
    	(1)田宮のギヤ・ボックスの減速比を下げて
    	 ロボットの高速化を図る。
    
    	(2)モーターの電源電圧を見直す。
    	 これもロボットの高速化が目的です。
    
    	(3)CPUをR8マイコンからH8マイコンに変更。
    	元々、このロボットはH8マイコンを使用することを想定して
    	いました。ので、本来の仕様であるH8マイコンに変更します。
    	但し、H8マイコンは当初想定していたH8/4048Fではなく
    	H8/3069にします。
    	
    	(4)CPUの変更に伴い、制御プログラムを仮想機械上で動作する
    	VTL、アセンブラまたはFORTHで記述する。
    	
    	
    	ちなみに、これの改善をやることにより、ロボットの名称を
    	昨年の「シリコン・スピリット(暫定版)」
    	から 「シリコン・スピリット(零号機)」
    	に変更する予定です。(^^;
    	
  2. CPU変更

    	本来、シリコン・スピリットは秋月のH8/3048Fを使用することを
    	想定して製作を始めました。しかし、急遽マイクロマウス大会に
    	出場を決定した昨年は、ハードもソフトも開発が間に合わず、
    	結局CPUはシングル・チップであるR8マイコンに変更しました。
    	今年は、これを、本来のH8マイコンに戻す計画なのですが、
    	実は、その後の検討により、後々シリアル回線が
    	3-チャンネル欲しくなることが判明しました。
    	秋月のH8マイコンボードでシリアル回線が3-チャンネルあるのは
    	H8/3069FかH8/3067Fのみとなります。
    
    	しかも、遠い将来(?)、簡易OSも搭載したいと欲が出てきました。
    	そうなると、外付けD-RAMが接続出来るタイプにしたい、
    	と言う話になります。しかし、そうなると、使用出来るポートの
    	数が減少し、その割り付けもどうするか、一から検討になります。
    	いろいろやることが増えてしまいました。(-_-;;
    
    	
    	

  3. 拡張ボード構成

    	H8マイコンのピンの接続を検討しました。
    	外付けD-RAMを使用するので、D-RAMとの接続信号は決まりです。
    	また、H8/3069Fはシリコン・スピリット以外の目的でも
    	使用する予定であり、極力仕様を統一したいと考えています。
    	このため、H8マイコンのバス信号は一通り外部に引き出すことに
    	しました。具体的にはアドレス16本、データ8本、制御信号(RD、
    	HWR、WAIT、CSx、IRQyなど)約9本(?)。
    
    	そうすると、I/Oポートとしては、少なくともP4(8bit)、P5(4bit)
    	P7(8bit)、PA(8bit)が使用できることが判りました。
    	その他、PBポートの一部なども使用できそうです。
    	一方、シリコン・スピリットに必要なのはモータ制御(4bit)、
    	センサー入力(8bit)、DIPスイッチ入力(4bit)、LED出力(4 or 8bit)
    	ですので、当面4ポートあれば足りる勘定です。
    
    	LEDは多いに越したことはないのですが、電源が電池駆動の場合、
    	LEDの消費電流は馬鹿になりません。
    	ので、ポート、コネクタ、配線は8bitを用意しつつも、
    	当面は4bitのLEDで運用することにしました。
    
    	以上、検討した結果、まずは添付図のようなブロック構成とすることに
    	しました。この中で、モータ・ドライブ、DIP-SW、赤外線センサ基板は
    	昨年の流用、LED基板も実験用に製作したものを流用します。
    	中継基板は昨年と同じものが流用出来ると良かったのですが、
    	実装面積が足りず、小型のものを再製作しなければならない見通しです。
    
    	
    	

  4. 拡張ボード製作&CPU動作確認

    	うわぁ。
    	気が付くと、大会まで、あとひと月を切りました。
    	結局、今年もロボットの製作が遅れております。(>_<)
    
    	まず、不慣れなH8/3069Fボードの立ち上げに難儀しました。
    	フラッシュ・メモリにプログラムを書き込むところから
    	トラブったため、数日を費やしました。
    
    	でも、まあ、どうにか、LEDの点滅とシリアル通信をするところまで
    	漕ぎつけましたので、ここまで来れば、当面、プログラムの制作作業を
    	進められそうです。
    
    	また、とりあえずマイクロマウス大会のホームページで、
    	テクニカルデータの登録も済ませました。
    	ロボットのPR文や自己PR文とかも書かなくてはならないのですが、
    	「ロボット製作で苦労した点」なんて、まだ製作の真っ最中なのに
    	書くことないなぁ。(^^;
    	テクニカルデータは後で修正出来るので、とりあえずPRの欄は
    	「後報」と書き込んでしまいました。(^^;
    	「正式登録が完了しました」とメールが飛んできたので、
    	まずは暫定でも何か書き込んでおけば、正式登録になるようです。
    
    	
    	
  5. ギヤ・ボックスの減速比変更

    	本来、シリコン・スピリットはロボット・アーム付きの無線誘導
    	ロボットを想定して企画したものです。
    	その際、ロボットアームの関節には高価なサーボモータではなく
    	安価なステッピング・モータを使えないかと考えました。
    	ところが、サンプルで入手したステッピング・モータは
    	ひどく重たいもので、これを数個ロボットに搭載すると
    	重量がかなりのものになりました。そこで、移動用モータの
    	負荷を軽くするために、田宮のギヤボックスの減速比を
    	一番遅くなるような設定(203:1)にして使用しました。
    	シリコン・スピリットが鈍足である最大の理由はここに
    	ありました。そこで本年は、減速比を小さく(58:1)して高速化
    	を図ることにしました。
    
    	予選の持ち時間は3分で、この間に最大3回走行が可能です。
    	昨年は、予選コースの走行に1分59秒かかりました。
    	つまり持ち時間の間に1回しか走行出来ない計算です。
    	そこで、せめて持ち時間内に2回は走行出来るように
    	今年はスピードアップを図りたい、とゆう訳です。
    
    	使用している田宮のギヤーボッスクNo.97は、組み立て方によって
    	減速比を二通り選択出来ます。で、今年は、減速比の小さい
    	58:1にして使用します。単純に減速比だけで比較すると、
    	昨年より3倍の速度になる計算です。
    
    	
    	
  6. 仮想機械移植 & 作戦変更

    	大会まで、あと2週間をきりました。(゜_゜;;
    
    	ようやくH8マイコン上で仮想機械が動作しました。
    	一部、シリコン・スピリットで使用しない数命令は後回し
    	としました。この後、パソコン上と同様に、H8マイコン上で
    
    	VTL → マイクロエディタ → アセンブラ
    
    	と順次立ち上げていく予定でしたが、ぶっちゃけ、もう
    	時間がありません。(>_<)
    
    	止む無く、本年は、パソコン上でプログラムをアセンブルし
    	仮想機械と一緒にオブジェクトをH8マイコンのフラッシュメモリ
    	に書き込む方法でしのぐことにしました。
    	まあ、手順的にはC言語でプログラムするのとあまり変わりません。
    	もちろんアセンブラだと生産性が落ちるのですが。
    
    	と言う訳で、とりあえず本年は、f-codeアセンブラで
    	シリコン・スピリットの制御プログラムを記述することが
    	決定しました。
    
    	プログラム環境はどうにか出来たので、ハード製作の残作業に
    	着手します。具体的にはH8マイコンとセンサ基板を接続する
    	ケーブルの中継基板と、そして、各基板間の接続ケーブルの
    	製作及び動作確認です。
    
    	
    	
  7. 簡易シミュレータ

    	大会まであと、10日をきりました。
    	時間との闘いになってきております。(^^;
    
    	ハードの製作については、中継基板とケーブルの製作が終わりました。
    	あとはポート5の配線だけなので、もう一息です。
    
    	さて、H8/3069FのROMの書き換えは、あまり簡単ではありません。
    	ROMを書き換えるときは、まずH8マイコン・ボード上のDIPスイッチを
    	切り換えて復電します。その後、パソコン側でROM書き換えの
    	プログラムを起動します。ROMの書き換えが完了したら、H8マイコンの
    	電源を落として、DIPスイッチを変更して、復電すると実行されます。
    
    	しかし、何故か、ROMの書き換えプログラムがしばしば途中で停止して
    	しまいます。およそ2回か3回に1回しか成功しません。
    
    	このようにROMの書き換えには手間がかかり、プログラムをデバッグを
    	する上でたいへんなストレスとなると同時に、時間がかかる要因とも
    	なっています。(やはり、H8マイコンにアセンブラを搭載したかった・・・)
    
    	そこで、最初からROMの書き換えの度にロボット全体を動作される
    	のではなく、最初、まず、I/Oを模擬する装置(シミュレータ)を使用して
    	簡単なバグは取り除いておいた方が、むしろ時間の節約になると考えました。
    	シミュレータと言うと大げさに聞こえますが、要するに
    	センサの代わりにプッシュ・スイッチを、またモータの代わりに
    	LEDを接続するだけです。(^^;
    
    	この状態で、まず、可能な限りプログラムの動作を確認することに
    	しました。
    
    	
    
    	
    	
  8. テストコース

    	大会まで、あと1週間をきりました。
    	まだ、ハードの組立が終わっていません。
    	間に合うのかいな? (>_<)
    
    	昨年は、大会前日に3:00までデバッグしてもうまく動作せず、
    	ロボットの調整に苦しみました。後で判ったことは、テスト・
    	コースに問題があった、とゆうことです。
    	昨年は、プリンタ用紙に黒のテープを貼り付けて、コースを
    	作りました。しかし、紙のコースでは表面が凸凹となり、センサとの
    	距離が不安定になったことが誤動作の原因となったようです。
    	そこで、本年は何かいいものはないかとホームセンタで物色したところ
    	発泡スチロールの板が安価に手に入ることが判り、これを使用してみる
    	ことにしました。(390mm×540mm×厚さ7mmで@200\弱)
    
    	このコースを使用してCPUは昨年同様R8マイコンのまま、ギヤ比は58:1に
    	して実験したところ、なんと、大問題が・・・・。
    	ギヤ比を下げ過ぎたせいか、ロボットがスタートしません。(>_<)
    	本体を持ち上げると車輪が回り始めます。急遽、新たにギヤ・ボックスを
    	購入して、ギヤ比を少し上げて115:1にしてどうにか走行するように
    	なりました。これでも、昨年の203:1よりは約2倍近い速度アップに
    	なるはずなので、ギヤ比はこれで行くことにしました。
    	一方、発泡スチロール製のコースは安定していてなかなかgoodのようです。
    
    	模擬I/Oを使用したH8マイコンプログラムの制作は、そこそこ(?)効果が
    	あったようで、とりあえずほぼほぼ単純なパグを取り除けたと思われます。
    	自動停止の処理も一応実装しました。
    	ようやく、H8マイコンとロボットを組み合わて試験する準備が出来た
    	ところです。
    
    	
    	
  9. 走行順番発表

    	マイクロマウス大会のホームページに走行順番が発表されました。
    	今年のロボ・トレース競技へのエントリー・マシン数は123台。
    	シリコン・スピリットは61番目です。
    
    	この順番からすると、発走は昼食後の午後1時〜2時頃でしょうか。
    	走行順があまり遅いと、待ちで飽きてきてしまうのですが、
    	あまり早いと、マシンの調整時間が取れないので、
    	61番目はちょうど良い頃の順番になったと思います。
    
    	マシンの組立はようやく完了し、テスト走行を始めました。
    	なかなか苦戦しておりますが、(>_<)
    	どうにかラインをトレースし始めました。
    	
  10. 組合せ試験

    	大会まで、あと2日です。
    	苦戦、苦戦、苦戦・・・・。(T_T)
    
    	やはり、マシンのスピードが上がると、昨年までは考慮する必要の
    	なかった問題が次々と発生します。
    	しかも、仮想機械のバグ、アセンブラによる制御プログラムの
    	バグが次々と発覚・・・・。
    
    	そして、今年もまた停止処理でトラブっています。
    	しかし、今年は、間違いなくプログラムの問題と思われます。
    	また、前日は徹夜かも・・・・。(>_<)
    
    	
    	
  11. 前日

    	いよいよ明日です。会場は日野市にある明星大学です。
    
    	しかし、停止処理がいまだに安定しません。
    	本日、最終調整を実施します。
    	最悪、棄権もあります。(T_T)
    
    	昨年もそうでしたが、工具一式を持参します。
    	これは、会場まで行く間にロボットやケーブルが破損してしまう恐れが
    	あると思い、万が一に備えてのことでした。
    	昨年は、この準備が幸いし、会場でセンサ高さの調整をするために
    	ラジオペンチが活躍しました。今年も同様の準備して参加します。
    
    	では、とりあえず行ってきます。(^^)/~
    	
  12. 大会当日〜自己ベスト

    	今年もマイクロマウス大会のロボ・トレース競技に参加してきました!
    
    	結果は、完走77台中76位、タイムは51秒51で、昨年の1分59秒から
    	大幅にタイムを縮め、自己ベストです!
    
    	(て、おいおい、昨年が悪過ぎたんだろう。(笑))
    
    	もっともタイムの単純比較は、コース長が異なるので、あまり意味が
    	ありませんが。(昨年:13.7m、今年:13.0m)
    
    
    	さて、大会前日の状況ですが、前日になってもまだ新たなプログラムの
    	バグが見つかる状態で、その上、テスト・コースにも問題があることが
    	判り、改善が続きました。この結果、ゴール後の自動停止は
    	かなり安定してきましたが、それでも、まだときどき、
    	失敗する状況でした。その場合、原因がよく判りませんでしたが、
    	車体が大きく蛇行してしまい、ゴール・マーカを検出出来ない
    	状態になるようでした。それでも、速度の改善により、
    	2回走行出来れば、1回は完走出来る可能性が高い、と思われたので
    	本年は、この状態で参加することにしました。
    
    
    	大会当日です。
    	本年も、5:39分の常磐線特急「ときわ」に乗り込み、山手線、中央線
    	と乗り継ぎ、立川から初めて多摩モノレールに乗りました。
    	あいにくの雨で窓が曇り、景色は見えませんでした。(^^;
    	「中央大学・明星大学」駅で降りると、駅のすぐ隣が明星大学です。
    
    	9:00過ぎに会場の体育館に着くと、すでに受け付けは始まっていて
    	会場は、参加者でいっぱいでした。当然、机は残っていないので、
    	昨年と同じく、壁際に荷物を置き、車検のためにロボットを机上に
    	置きました。今年は大型のロボットは少なく、少なくとも
    	高さにおいてはシリコン・スピリットは一位か二位だった思います。(^^;
    
    	開会式後、10:30よりロボ・トレース競技予選開始。お昼近くになって
    	シリコン・スピリットの順番(61番)が近づいてきました。
    	マシンを持ってコースの近くに行くと、スタッフが寄ってきて、
    	「午前中は60番までで、61番以降は午後からになります。」
    
    	「えっ?」
    
    	午後一番の出走なんて、なんか緊張しちゃうよな。(^^;
    	(ちなみに、ゼッケンを着けているので、参加者であることと
    	 順番はすぐに判ってしまいます。)
    
    	さあ、いよいよシリコン・スピリットの出走です。
    	1回目。
    	スタート・マーカー、クロス、R15(cm)の180度ターンを順調にこなし
    	いよいよゴール。
    	「頼む!。止まってくれ!」
    
    
    
    	止まりました。\(^o^)/
    
    	タイムは、51秒51。目標としていた1分を切りました。
    	引き続き2回目の走行。2回目も順調に走行しましたが、
    	ゴール直前のR10のカーブを曲がったところで、車体が蛇行(!)。
    	ゴール・マーカーを認識出来ず、停止で来ませんでした。(T_T)
    	この結果、2回目はリタイア扱い。
    	周回のタイムは1分を切りましたが、スタート前に少し時間が必要なので
    	2回目終了時点で、2分30秒が経過し、持ち時間は3分なので、
    	3回目の走行は断念。それでも、結果1回目の走行タイム、
    	51秒51が公式タイムとなり、無事完走となりました。
    
    
    	大会の結果はこちら
    
    	
    
    	
    
    	
    	
  13. 反省、来年の計画

    	来年に向けての反省と計画です。
    
    	まず最優先は、プログラム開発環境の整備です。
    	ROMの書き換えの成功は、当初、3回に1回程度でしたが、
    	すぐに成功率が下がり、10回以上連続して失敗(書込み
    	途中で停止していまう)することもしばしばとなって
    	しまいました。それでも、今年はこの方法しかなかったので
    	我慢して使用しましたが、今後はやっていられません。
    	来年はH8マイコン上でプログラムの修正が出来るように
    	開発環境の改善を進めます。
    
    	もうひとつの大きな問題は、やはり、今の車体では重すぎて
    	これ以上の速度の改善が難しいことです。もともと
    	シリコン・スピリット(零号機)はリモート制御を企図した
    	ロボットの実験機ですので、まあ、鈍足なのは当然なのですが。
    	今年計画していたモーター電圧の変更は、時間がなくて
    	実行出来なかったので、これとギヤ比を小さくすることで、
    	若干の改善の余地はありそうですが、その後は車体の全面変更
    	が必要と感じました。
    
    	車体をフル・モデル・チェンジするとすれば、まずは、プリント
    	基板をワン・ボード化することが必要です。ただ、まだ
    	ワン・ボード化するためには、検討する必要のある課題が
    	残っています。
    	また、電池がかなり重たいのも問題です。CPUの電源は単三×6本を
    	使用しましたが、今年は結局、デバッグ段階から本番まで、
    	一度も交換しませんでしたので、意外と長持ちでした。
    	それならば、006Pの9V電池1個にすれば、かなりの軽量化を
    	実現出来そうです。ちなみに、モータ用の電池はかなり消耗します
    	ので、出来れば、こちらはニッケル水素電池などの二次電池に
    	変更したいところです。
    
    	テスト・コースは今年は発泡スチロールを使用して、大幅な
    	改善が見られましたが、はやりコース長もある程度必要なことが
    	判ってきました。自宅でのテストになるため、なかなか場所が
    	とれないのですが、来年はもう少し延長します。
    
    
    	
    
    	
    
    	
    	
  14. 車体の考察

    	車体の構造について、今年、気が付いたことを記録に
    	残しておきます。
    
    	実は、車体についてはギヤ・ボックスの減速比の他に、
    	構造変更した点がありました。それは、昨年はギヤ・ボックスが
    	車体前方にあったのに対して、今年は後方に移動したことです。
    
    	シリコン・スピリットの車輪はギヤ・ボックスの二輪と
    	キャスタによる三輪構成です。
    
    	シリコン・スピリットにおいて、もっともクリティカルな構造は
    	センサ基板と床面との距離です。センサ基板を、もしキャスタ側
    	に取り付けると、左右のバランスが悪くなると考え、
    	昨年のシリコン・スピリット(暫定版)では、センサ基板と
    	ギヤ・ボックスをともに車体前方に配置しました。
    
    	しかし、今年は、車速が上がることにより、センサの信号は
    	なるべく早くCPUに届いた方がよいのではないかと考え、
    	ギヤ・ボックスをセンサとは反対の後方に移しました。
    	ギヤ・ボックスを使用しているので、CPUから見たときの
    	動力輪の反応速度が鈍いのではないかとの心配もありました。
    	ちなみに、センサ基板の水平は調整でなんとか保てました。
    
    	ところが、このように変更した結果と思われますが、
    	極率半径(R)の小さいカーブを曲がるとき、車体がきれいに
    	ラインをトレース出来ず、はみ出すことが判ってきました。
    	シリコン・スピリットがたまに大きく蛇行してしまうのも
    	このセンサと動力輪との位置関係が問題なのではないかと
    	推定しています。
    	(自動制御は苦手なので、理屈はよく解りませんが・・・) (^^ゞ
    
    	なので、来年も今の車体を使用する場合、センサ基板と
    	ギヤ・ボックスの位置は、昨年と同じ前方に戻そうと考えています。
    
    	
    
    	
    
    	
    	
  15. おまけ

    	2017年は多忙なため、棄権となりました。(T_T)
    	


JH8CHUのホームページ>自己紹介>マイクロマウス大会2016参戦記


Copyright (C)2017 Masahiro.Matsuda(JH8CHU), all rights reserved.