Arduinoを用いたオープンキャンパスプロジェクト2013
ボール&プレート(中村・八木澤・古橋)
目次
はじめに
構造
目的
ボール&プレートの概要
画像認識の方法
ブロック線図
動画
はじめに
このページではボール&プレートについての説明をしています.
構造
ボール&プレートとは,平面の上にボールを置き,その平面の傾きを変化させ,
ボールを任意の位置(目標位置)に追従させる制御をするものです.
平面に取り付けられたアームをRCサーボで上下することで,傾きを変えます.
目的
平面上のボールを落とさないように任意の位置に追従させる.
ボール&プレートの概要
平面上のボールの位置をwebカメラで読み取り,それをパソコンに取り込みます.
その位置情報と目標位置の偏差から,制御信号を生成します.
その信号を,Arduinoから出力しRCサーボを駆動しています.
下図右では,プレートの中心にある赤いバツ印の場所を目標位置とします.
画像認識の方法
Processing という画像処理・描画のプログラミングを簡単に行うことができる Javaベースのプログラミング環境を用いて画像認識を行っている.Procesingによる画像認識
1.ProcessingのVideoライブラリを用いてWebカメラの画像を読み込む(Videoカメラを使うにはQuicktimeのインストールが必要)
(Webカメラを使うにはWinVDIG1.01のインストールが必要)
2.読み込んだ画像からボールの色(RGB)を調べる
(マウスでクリックした位置のRGBを記憶するようにする)
3.調べた色と同じ色の領域をWebカメラの画像全体で調べ,その領域の中心をボールの位置として認識する.
補足
・ボールの位置により色は多少異なる(光の当たり方など)ので、同色領域の認識にはある程度許容範囲を持たせて色を認識する必要がある.
・色の違いでボールの位置を認識しているので,Webカメラで読み込んだ画像内にボールと似た色のものがあると認識する位置がボールの中心とずれてしまいます.
ProcessingからSimulinkへの位置情報の伝送
・位置情報伝送は仮想COMポート接続により実現している
・
例えばCOM9とCOM10を接続した状態で,Processingで位置情報(x,y)をCOM9へ送り,SimulinkでCOM10の情報を読み込む
・仮想COMポート接続はcom0comというフリーソフトを用いている
ブロック線図
①ボールの座標位置と目標位置との偏差からPID制御を行う
今回,比例,積分,微分それぞれのゲインは,極指定法により設計を行いました.
②制御信号によりRCサーボを駆動しプレートの傾きを制御する
制御器により生成した制御信号をArduinoから出力し,RCサーボを駆動しています.
これにより,RCサーボに取り付けられたアームを上下することでプレートの傾きを変化させ,ボールの位置を制御しています.
③平面上のボールの位置をwebカメラによって読み取る.
上記で示した画像認証により,webカメラを用いて平面上でのボールの位置を検出しています.
④ピクセルによる座標表現から長さによる座標表現へ変換する
カメラから取り込んだ座標は,ピクセル数の座標のためこれを長さ(cm)の単位に変換します.
動画
ボール&プレートの動画です.
外乱を加えても目標値に追従していることがわかります.
ボール&プレート(wmv)