自立制御ロボット制作

情報技術科 No.33 前島佑星

①研究の背景

 部活でロボットを制作してきたため、それらの知識を課研に生かせると思ったから。また、部活の時間に加えて課研の時間もロボット制作にあてられるため、長い時間費やすことができ、1から制御プログラムを組むことができる。そうすることにより、処理系の理解が深まり、より高度な制御ができると考えたから

②仮説とねらい

 自立制御ロボットにはセンサー処理、モーター制御、シーケンス制御等様々な制御が使われている。こういった制御はマイコンを通して行われる。
 マイコンには現在様々な電子機器に利用されており、そのマイコンを使って制作していけば、授業以外のマイコンを使った高度な制御の知識が得られるため、将来の選択の幅が広がると考えたから。

③研究内容

 静岡県高校生ロボット競技大会自立制御ロボット部門に出場する為のロボットを制作。そのために各種センサーの制御をするための基板、車体を作り、その車体をマイコンを通して制御する。

④技術的知識

 ハードの授業で学んだビットフィールドを用いてセンサーのデータを管理しやすくする。
 基本的に部活の内容と同じなので、部活で培った知識を活用する。また実習書に必要な知識が乗っていると思うので、それらも活用し理解を深める。

⑤取り組んだ内容

1.基盤の設計
  kicadによって先生からもらった回路図をもとに基板に付ける部品の配置を行った。

↑フィンガー基板の回路図

2.基盤の作成
  昨年は基板の信頼性による接触不良が起きていた。その問題を解決するため、kicadで作成した回路図をもとに外部発注し信頼性を上げた。基板は、メイン基板を1枚、センサー基板を5枚、モータードライバを6枚、フィンガー基板を1枚、いろいろな信号等をまとめるヘッダー基板1枚等を作成していった。

↑メイン基板
↑センサー基板
↑モータードライバ
↑フィンガー基板
↑ヘッダー基板

3.車体作成
  3Dプリンタを使ってパーツを出力し、それらを組み合わせて車体を完成させた。

4.プログラム作成
  フィンガーから下の駆動部を担当した。
→ライントレース
 5つのセンサーを用いてラインを読み取り、走行修正しながらまっすぐ走るプログラム。昨年は、真ん中を軸にして走行する方法をとっていた。

 ですが、スピードを上げると振れ幅が大きくなりラインからはずれるという問題点がありました。今回はセンサーを3つ使っていたので一昨年の方式であったラインのあるなしだけを判断する単純なものを用いることでスピードを上げても安定すると思い採用した。

ですがこの方式は最後安定してゴール置き場の前に止まることができませんでした。

ここならブロックをとれる場所
だが、こうなってしまう場合がありブロックの位置に正確に行くことができていない

 そこで、最初は一昨年の端を合わせる方法、最後はスピードを落とし、昨年の、センサーの真ん中を軸に合わせる方法をとりました。​この真ん中を軸として調整する方式は、スピードが遅ければ、振れ幅が大きくなることはなく、安定して走行することができます。​このように、一昨年と昨年の2つの方式の良いところをつなげあわせ、スピードが速くそして、安定したライントレースが可能となりました。​
 ですが、コースの状況や車体の重心によって不安定になることもあります。ですので、より安定させるためには、​ジャイロセンサーで向きを検知し、動きそのものを制御することをする必要がありそうです。​
 またセンサーがラインの左に来たらー1、右に来たら1をflgの中に入れておくことで、ライン上からセンサーが外れた時にでも修正をかけられるようになり、さらにライントレース安定につながると思いました。

rl_flg=~FRB_3*1+~FRB_1*(-1)

→アームの制御
 ブロックをキャッチする際にブロックの位置に持っていくもの。こちらはボリュームの値を用いてアームの座標を管理しその座標に合わせてモータをまわすことを行った。

→シーケンス制御
 各種制御を組み合わせてブロックを3つ運ぶルーチンとブロックを1つ運ぶルーチンを作成した。
 ライントレース等それ単体で制御を調整していたため、他の制御と組み合わせた際、動き方が変わってしまった。(アームの移動によって重心が変わることによるもの)今後は単体で調整を進めていくのではなく、ある程度組み合わせて制御を進めていくべきだと感じた。

→問題
 デバックをしていくなかで問題が発生しました。​ライントレースの修正が利かなくなり、明らかにおかしい挙動をしました。​まずソフトに間違いがないか確認をした後、ハードを疑いました。コースで手で押して走らせてタイヤの状態を確認したところ、アームの位置やコースの場所によって前輪が浮いていることを発見しました。​そこでベースプレートとシャーシの前のほうの間にスペーサをかませて再度走らせたところ、直りました。今回はこれで直りましたが、ほかに自律制御ロボットを製作していた人は直しても安定しないときがあり、逐次アームの位置を変えることで重心を一定に保つ必要がありました。ですので、安定させるためには、ジャイロセンサーを使う必要があると感じました。

⑥結果

 以上の行いから自律制御ロボットが完成しました。
 そして、優勝することができました。ですが、ブロックは9個しか置けず、12個を置くことができませんでした。原因は距離センサーがうまく動作しなかったことによってブロックの前に止まることができなかったことです。
 今回大会が行われた会場は、ビルの中から体育館に変わりました。それにより、水銀灯や日光という環境の変化が出てきたため、ブロックを検知する距離センサーの誤動作を予知することができすこのような結果となってしまいました。 
​ この事例から、実際の大会の環境を事前に調べ、そしてその環境を用意して調整することの大切さを痛感しました。

⑦感想・考察

 今回目標としていた12個ブロックを置くパーフェクト優勝をすることができませんでしたが、課題研究を通して
・問題が出た時の原因発見、解決する能力を培えたこと
・納期内の製品開発という実際社会に出た時に経験することに触れられたこと
・ハードを理解することで早期の問題特定につながったり、ソフトの開発や調整が速くなったりと、発揮できる力が2倍にも3倍にもなることを身をもって知ることができたこと
等の経験を得ることができました。
 この課題研究を通して培うことのできた経験は社会にでても役立つものばかりなので、得られたものはとても大きいと感じました。

コメントを残す

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