2021.9.25 Coskx Lab
micro:bitをコントローラとして使ったカートを,前方の壁までの距離を測定しながら,目的の位置に止めることを目標です。
距離を測定しながらカートを目標の位置に止める制御は位置決め制御と呼ばれています。
位置決め制御の実現方法はいろいろ考えることができます。この解説では直感的な方法や,工夫を凝らした方法を考えていく中で,自然に位置決め制御のイメージを学んでいけるようにします。
位置決め制御のイメージをつかめた後で,フィードバック制御や制御工学を学ぶようにすると,自然でスムースな学習につながると思います。
カートが走行するフィールドは水平面で,前方に壁があります。
次の動画に示すように,全力走行中のカートを,壁の手前の目標位置で止めることを目指します。
この動画には少ししか写っていないのですが,右側には壁があります。この壁に衝突しないように止めます。
具体的には,壁までの距離を測定しながら,壁の手前50cm(黒いスケールの左の辺の延長上)にカートの前輪の中心を止めることが目標です。
ここでは取り上げませんが,距離センサを2つ使い,左側の壁までの距離と,壁に対するカートの傾きを測定してコントロールすると,次の動画のように壁に沿った走行動作もできます。
micro:bitカートは次のように出来ています。
使用したカートは次のような姿をしています。
目のように見えるのは超音波距離センサです。しかしこれはcm単位の測距精度しかないため使用していません。
その下の左にある緑色の四角い部分がレーザ距離センサです。これはmm単位の測距精度があるため,こちらを使用しています。
このレーザ距離センサで前方の壁までの距離を測定します。
開発に使用したものは次の通りです。
位置決め制御は,現在位置を一定の時間間隔で知らされて,それをもとにDCモータに指令値を与えることで行います。
モータ指令値は数値で与えることにし,+-の符号付き数で前進後退指令となります。
指令値として大きな値を与えると,モータは元気よく回りますが,指令値通りの速度になるわけではありません。モータに与えている電圧を変化させているような感じです。
制御アイディアの検討は次のような構成になっています。
直感的な制御アイディアをイメージしてそれをグラフなどで表します。
それを数式化して,さらにプログラムにして動作させます。
カートの動きを動画で見ます。
その様子をグラフで表して,制御の様子を確認します。
はじめの一歩は次のような制御アイディアの構成になっています。
目次に従って,順番に読み進めると良いでしょう。
(0)表紙ページ フィードバック制御はじめの一歩(このページ) | ≫ |
(1)ある位置に到達したらモータを止める | ≫ |
(2)目標位置前なら前進,行き過ぎたら後退 | ≫ |
(比例制御) (3)目標までの距離に比例したモータ指令値を作る |
≫ |
(比例微分制御) (4)目標までの距離と速度からモータ指令値を作る |
≫ |