機体前方に設置したカメラを用いてライントレース走行を行う。
カメラから得た映像を解析する手法をとったため、一般的なフォトリフレクタを使う方式より複雑になった。しかしその広い視野を活かして交差点を認識してからの走行、転回など多彩な機能を搭載でき、またラインへの復帰が容易となったため、高速走行が可能で急なカーブにも対応するなど、高いパフォーマンスを発揮できた。
対象プログラム:linetrace.cpp l_judge.cpp
本機体は、原則としてライントレースを用いて走行するが、最大4方向の一般的な交差点を用意し、そこを直進、右折、左折することで、目的地まで到達するように設計されている。これを実現するために、機体の現在地と目的地から経路を設定し、通行する各交差点でどちらに向かうか算出するのが本プログラムである。
経路設定プログラムは非常に複雑で、作業が難航したが、よほど複雑な地形でない限り経路設定ができるようになった。また、経路を取得するために用意する地図に拡大したドット絵を用いることにより、視覚的にわかりやすく、扱いやすいようにできた。
対象プログラム:recept.cpp
今回接続するモジュールをArduinoで制御するため、複数のArduinoとの接続が可能になるように標準機のプログラムを改良した。
複数のArduinoとの接続は、想定よりも問題が発生したが、プログラム自体は正常に動作した。
対象プログラム:arduino.c raspi.ino slave.ino
体温測定モジュールを用いて体温測定を行い、その結果をスプレッドシートへ送信する。
モジュールに付属したLEDが点灯した際に、体温測定が可能で、測定完了すると消灯するように、設計を変更した。これにより、体温測定の成否をわかりやすくし、精度の高い測定が行えるようになった。スプレッドシートとの連携は4に記す。
対象プログラム:tmp.c main1.ino tmp_kansei.ino
LINEから入力された情報をGoogleスプレッドシートに保存し、その情報をMIRSに取り込み、またMIRSからスプレッドシートへ情報を送信できるようにした。
手順:
1.スプレッドシートからMIRS(テキストファイル)へ
2.テキストファイルと各プログラム間
スプレッドシートとの連携が必要な各プログラム(main.c navi.c recept.c standby.c tmp.c)では、1つのテキストファイルに対して、それぞれランダムアクセスを用いて情報をやり取りした。しかし、少しのミスでそのテキストファイルが崩れ、使えなくなる問題があった。
3.MIRS(テキストファイル)からスプレッドシートへ
対象プログラム:
txt_gspread.py nfc_reader.py main.c navi.c recept.c standby.c tmp.c
予定していた開発スケジュールをfig.5に示す。
fig.5 予定していたスケジュール1
fig.6 予定していたスケジュール2
機体に用いたキャスターによる外乱が大きかったこと、外装の作成に手間取ったことにより、ライントレース走行制御の調整が間に合わなかった。また、モジュールの完成が遅れ、統合時に複数のArduinoの管理がひるようだったために、全体での統合が遅れることとなった。
MIRS2202 開発完了報告書
MIRS2202 開発完了報告書(メカニクス)
MIRS2202 開発完了報告書(エレクトロニクス)
MIRS2202ドキュメント管理台帳へ