« 2006年11月 | トップページ | 2007年1月 »

2006年12月30日 (土)

真因追究 (^-^)

27日くらいからちょっと風邪ひいたかな~という感じが続いています。熱は無く、鼻づまりと咳が少々出る程度。それ以外は、頭の調子も気分もいい感じです。

午前中いっぱいは寝てしまったので、午後は大掃除をしました。ベランダから風呂、トイレ、キッチンまで。窓拭きは残ってます。

今年のマイクロマウスを締める前に、プログラムにドットマトリクスLED表示部の追加を行いました。これでプログラムがエラーを捕捉した時に’E’が表示されるようになり、かなり便利になりました。エラーで停止したらPCと通信ケーブルをつないでマウスのボタンを押すと、保存しておいた迷路情報とエラーログがPCに送られて表示されます。

そんなことをしていたら、前々からちょっとだけ気になっていた「何にも無いところで突然止まってしまうのに、エラーログには何も残っていない」という不具合の原因が見えてきました。原因は、2つあって、一つ目は壁の遠近判定の判定順序が間違っていたこと。二つ目は、N区画前進を中止する前壁判定の壁の距離が遠すぎたこと。この原因を包み隠していたのが、Cartにコマンドをセットする部分にエラー処理が抜けている部分があったこと。

不足していたエラー処理を追加したら、Cartにセットできるコマンドの最大数が足りていないことがその後捉えたエラーコードから発覚して、セットできるコマンドの最大数を増やしたら今度はスタックを壊したであろう動きがでてきて・・・かなりごちゃごちゃやりました。

不具合がでたときは現象だけみて現象が出ないようにするのではなく、どういう条件、どういう仕組みでその不具合が発生するのか証拠を押さえ、根本治療をして、同じ条件でその不具合が解消できたことを確認する必要があります。この手を抜くと、一時的に不具合が見えなくなるだけで、後で必ず再発して困る羽目になるからです。・・・というのは、趣味の世界だけでなく、仕事でプログラムかいててもまったく同じこと。ちゃんと真因追究をして克服しないと、心配でリリースできません。

今年のマウスは、サーキット走行以外は要求仕様書にある機能を一通り実装できたので、これでドキュメントを整備して開発を終えたいと思います。

次は何つくろうかな?

2006年12月28日 (木)

探索効率改善とトライアル走行

今日は年休を取ったので、すでに冬休みモードです。仕事のほうはボチボチで、業務を遂行しつつ回りの方からいろいろなことを教わっています。大変勉強になります。

さてマイクロマウス。先日の状態が完成ではなくて、1回目の走行(探索走行)が終わってスタート地点に帰ってきてから、2回目の走行(トライアル走行)ができて、やっと完成です。今回のマウスに実装している経路計画アルゴリズムを使えば探索走行もトライアル走行もまったく一緒でできてしまうので、サクッと実装しておきました。ついでに、探索走行で若干効率が悪かったところも改善。(効率が悪かった理由は、移動時の距離精度が出ていなかった頃に仕込んだある種のゴマカシが悪さをしていたため。今はそのゴマカシが必要ない。)

効率がどうよくなったかは、動きを見れば一目瞭然。先日のムービーと同じコースです。

「endeavor2006-12-28-no1.wmv」をダウンロード

もうちょっと違うコースだとこんな感じ。

「endeavor2006-12-28-no2.wmv」をダウンロード

これで当初予定していた機能は全て実装できたかなと思うので、ドキュメントをまとめて今年のマウス活動を締めようと思います。

2006年12月16日 (土)

仕事きっちり (^-^)

今日は半日、マイクロマウスのN区画前進コマンドの距離精度改善にチャレンジしました。制御プログラムを作り始めたときは15区画前進して0.5区画の誤差まで許容することを想定して、誤差の許容範囲を±3%以内としましたが、これが意外と大きいことが後になって分かりました。改めて許容範囲を±1%以内に定めて改善を行った結果、グラフのように改善できました。

1block_1 5block

図中のLSLはLower Secific Limit(下方仕様限界)、USLはUpper Specific Limit(上方仕様限界)の略です。実際の動きを見てもらうと、どれくらいきっちり動いているかが分かるかと思います。

「endeavor2006.wmv」をダウンロード

2006年12月11日 (月)

情報処理技術者試験の結果

今日、平成18年度秋季の情報処理技術者試験の結果が発表されました。

私が受験した区分は「ソフトウェア開発技術者試験」で、成績は午前630点、午後 I 570点、午後 II 採点なし。合格基準は午前、午後I、午後IIともに600点以上なのだそうで、結果不合格でした。午前問題が600点以上取れていたのはほとんどラッキーで、データベース系の問題は全滅だったはずなので不合格は当然だと思います。(業務でDB系のプログラム開発をすることは今後も無いと思うので、あまり勉強する気にもなりません。)

ソフトウェア開発は別に資格が無くてもできてしまうので、不合格でも仕事上何も不都合はありません。合格したから給料が上がるわけでもなし。でも、試験勉強をしてみると自分の知らないことが如何に多いかわかるので、自己啓発としてはいいんじゃないかと思います。

« 2006年11月 | トップページ | 2007年1月 »

最近の写真