自立制御ロボットの製作

情報技術科 No.38 村田 彩菜

①研究の背景

ロボットの自立制御にもともと興味があり、配線や機体の出力などのハードウェア分野からプログラムを組むソフトウェア分野まで自分の手で行うことができるのでこれをテーマに選んだ。また、先生からの紹介で、静岡県の高校生ロボット競技会を知り参加したいと思った。

②仮説とねらい

昨年度の先輩の反省点を改善し、基板を外部に発注したり車輪の数を変えることでよりよい機体を作り上げる。そして、ソフトウェア面でも機体に合わせてプログラムを構成し、最終的に優勝できるようなロボットを作り上げる。

③研究内容

ハードウェア(電子回路製図、組み立て、配線など)、ソフトウェア(フィンガー部分、横ライントレースなど)について学び昨年よりも良いロボットの製作を行う。

④技術的知識

・Kicadや3Dプリンタの使用方法

・センサーやシーケンス制御の知識

・C言語の知識

⑤取り組んだ内容

1.ハードウェア

昨年度の先輩方は基盤の不良が原因で大会を棄権するという結果になったので基盤の制度と強度を高めるためにkicadで設計を行い外注した。そしてそれらの基盤に部品のはんだ付けを行った。

また、ロボットはフィラメントを3Dプリンタを加工し製作を行ったため、軽量化できた。

完成したロボットの特徴は、
①三輪であるため斜め移動がしやすく設置点が3点であるため浮かない。
②駆動電圧の低いモータとギア比の低いギアボックスを用いたことで最速でブロックを掴むことができる

2.ソフトウェア

①フィンガー部分
・ブロックを運搬するために必要な、オープン、キャッチ、リリース、シャットの4つの動きのプログラムを条件分岐を用いて作成
・フィンガーの状態をメインプログラムに受け渡すというプログラムの作成

ハンドシェイクを正確に行うために、割り込み処理の中でackを強制的に命令が来たら1にし、すり抜けを防ぐようにした。
また、モーターの速度を速めた結果電池の消耗によって、ブロックをつかんだ途に完全に閉じ切らない問題が発生した。そのため、メインプログラム内のf_ack_waitで、フィンガーからの動作終了の信号を待っていたのに加えて、3秒以上動作が停止している場合も条件に加えることで対策ができた。

②横トレース
割り込み処理の中で、常に現在のセンサーの値と今までのセンサーの値を比べることにより、現在ラインに対してどのように脱線をしているかという状態を6パターンに分け制御を行った。

⑥まとめ

大会では1個しか置くことができなかった。
大会本番で最初の縦トレースで修正の動作が行われなくなりブロックをつかむ地点までたどり着くことができなった。

原因究明
仮説1
コートの状態が練習と本番で違い、対応しきれない

練習で使っていたコートは車輪の跡など汚れてしまっていたところがあった。
そこできれいな状態のステンレステープと、ライントレース用の黒いビニールテープを用意して、縦トレースを行った際の変化をみた。

結果からライントレースに大きな変化はなかった。
そのためコートの状態を除いてもライントレースの精度が低いことが分かった

仮説2
ライントレースのプログラムに抜けがあった

大会で使用したライントレースのプログラムと横トレースの際に用いた修正動作の強いプログラムで精度に差があるか調べた

結果、速度が遅い場合はどちらも正常に動作したが、速度が速くなるとどちらも修正がうまくいかなくなった。このことからライントレースのプログラムにぬけがあったのではなく、速度が速くなることによってセンサーがすり抜けてしまうのだろうと結論付けた。

仮説3
センサーのLEDの光が強く黒いテープと認識される部分が狭くなった

私たちは練習の環境に合わせて、汚れているコートでも正常に動くようライントレース用のセンサーのLEDの光を強くしていた。しかし、本番ではきれいなコートかつ照明が強かったので反射をして、黒いテープと認識される幅が狭くなったと考えた

しかし、実際のコートの状態に近づけることができず断念した。

⑦感想・考察

大会では納得のいく結果が出せなかった。しかし、ロボットの製作を1から行うことで、ハードウェアの知識、制御系の知識について詳しく知ることができた。
また、この活動を通して、作業を分担して行うときのコミュニケーションやスケジューリングの難しさや重要さを実感した。
これらの経験はこれからに生かしていきたいと思う。

コメントを残す

メールアドレスが公開されることはありません。