機械学習AI外観検査システムを開発中。

私の会社で使う簡易検査機を開発しまして、幾つか使えるものが出来ました。
実際に現場の方にも御利用頂いております。
他の製品の検査への展開をする事になったのですが、職場だけでは開発が難しく思いましたので、自宅にて似たような検査システムを組んで実験を行えるようにしてみました。

アルミニウム フレームに小型のタッチ スクリーンとUSBカメラが組み付けられている。カメラの下方には金属製のボール ベアリング付き回転台が置かれ、その板上にはステンレス ボルトとナットが置かれている。ディスプレイには回転台が映し出されている。
簡易外観検査システム。

仕事の絡みがあるので詳細は記載出来ないのですが、凡そこんな感じのものです。
構成は、小型のタッチ スクリーン4K解像度のUSBカメラUbuntu PCRaspberry Pi 4 Model BRaspberry Pi Picoサーヴォモーターなどなど。
機械学習フレームワークはPyTorch
昔ながらのconvolutional neural network系ですが、Raspberry Piで動作出来るよう、処理を限界まで軽くする為に沢山のノウハウを盛り込んであります。
Metric learninghard example miningeasy exampleの省略、ネットワーク構造などなど、工夫を凝らしました。

上の動画は、別の机の脇にある高性能なミドル タワー型Ubuntu PCのPythonスクリプトとMatplotlibでランダム ウォークのグラフを生成し、タッチ スクリーンに表示しながらRaspberry Pi PicoにUSBケーブルPySerialの通信で値を転送し、LEDをPWM点灯させているところです。
これ自体には特に意味は無く、基本的な機能の実験です。

現在は、複雑な形状で固定位置での撮影が難しい製品を回転させながら撮影しようかと電子工作をしているところです。

“Raspberry Pi Pico” とサーヴォ モーターによるロボット アーム。

サーヴォ モーターとボール ベアリングの回転板アルミニウム フレームと金具でロボットアームを試作してみました。
対象物を把持するグリッパーの指部分とその他2軸の回転軸を凡そ一致させてあります。
まだ回転台の連結部をどう作るか試行錯誤しましたが、どうにか巧く出来ました。
Raspberry Pi PicoのMicroPythonプログラムも作り込みました。
正確かつ滑らかに駆動し、ガタつきません。

“Raspberry Pi Pico” とサーヴォ モーターによるロボット アーム。

ロボット アームの指部分にスポンジ ゴム圧力センサーを取り付けました。
圧力センサーは抵抗器との分圧により抵抗値の変化を電圧値の変化にしてRaspberry Pi Picoでアナログ/デジタル変換しています。
圧力センサーの端子の片方をRaspberry Pi PicoのADC_VREF端子に接続。
もう片方を1kΩの抵抗器ADC2端子に接続。
抵抗器のもう一端をAGND端子に接続しました。
対象物を圧力センサーに接触させるとそれを検知してUSBケーブル経由でUbuntu PCに信号を送信します。
そしてPCからRaspberry Pi Picoにサーヴォ モーターの制御コマンドを送信し、Raspberry Pi Picoがモーターを駆動します。

Raspberry Pi Picoと赤色と緑色の被覆線を接続したフィルム状の圧力センサーであるFSR400が緑色のマットの上に置かれている様子を撮影した写真。
“Raspberry Pi Pico” と圧力センサー “FSR400″。

フィルム状の圧力センサーである “FSR400” に被覆線をハンダ付けして熱収縮チューブを被せました。
基板との接続にはQIコネクター(2550コネクター)を使用しています。

QIコネクターのコンタクト ピンにハンダ付けしてある赤色の被覆線と、QIコネクターのハウジングに差し込まれたコンタクト ピンの付いた緑色の被覆線の写真。
被覆線とコンタクト ピンをハンダ付けしたQIコネクター。

QIコネクターのコンタクト ピンと被覆線との接続は通常は圧着工具で圧着するのですが、この時点では適切な圧着工具を持っていなかったので、ラジオ ペンチで芯線バレルと被覆バレルを少し丸めてからハンダ付けで接続してあります。

緑色のユニヴァーサル基板の裏面に錫メッキ線と白色と黄色の被覆線がハンダ付けされて配線が施されている様子を撮影した写真。
配線を施したユニヴァーサル基板の裏面。

ユニヴァーサル基板の裏面に被覆線の配線を追加しました。
出来れば圧力センサーと分圧の抵抗器の配線も錫メッキ線で行いたかったのですが、錫メッキ線を使い切ってしまったので已む無く被覆線で済ませました。

圧力センサーで取得した電圧値の時系列縦棒グラフ。大きな値が検出された領域が3箇所ある。
圧力センサーで取得した電圧値の時系列縦棒グラフ。

圧力センサーに指で触れた時の分圧抵抗による電圧値をRaspberry Pi PicoのADCで取得してPCに送信してCVSファイルにしてLibreOffice Calcで時系列縦棒グラフにしてみました。
はっきりと3回の接触を検出出来ています。
但し、指の腹で触れると軽い接触でもこのグラフの様にはっきりと検出出来るのですが、物体の平らな面を圧力センサーの面に平行に当てても少々力を加えないと値が変化しませんでした。
ですので、圧力センサーの検出面に小さく丸く打ち抜いた薄いプラスティック板を両面テープで貼って圧力を伝えやすくしました。

Raspberry Pi PicoPWM信号を出力してサーヴォモーターを駆動する場合、通常は目的の角度に対応したデューティー比のPWM信号を出したらサーヴォモーターは等速度でその角度まで回転して停止します。
従って、回転前後で反動があり、また、突然動き出すので装置の使用者は驚くかもしれません。
私は頭を捻り、思案してこのサーヴォモーターの回転速度を滑らかに曲線的に遷移させる制御に成功しました。
動画の様に、回転の始まりは緩やかで、その後加速し、停止間際に再び回転速度が遅くなって停止します。
この制御により、反動を低減し、人に優しい動きにする事が出来ました。
また、低速領域でもガタつかない様にPWM周波数割り込みタイマー周波数を高く設定してあります。
関数により曲線的な速度変化をしますが、凝ったプログラムにより正確な駆動を実現しています。
Raspberry Pi PicoからのPWM信号によるサーヴォモーターの速度制御としてはかなり良く出来た方ではないでしょうか。

Raspberry Pi Picoの基板が緑色のゴム マットの上に横向きに置かれている写真。
“Raspberry Pi Pico” の基板の写真。
Raspberry Pi Picoの基板が緑色のゴム マットの上に縦向きに裏返しで置かれている写真。
“Raspberry Pi Pico” の基板の裏面の写真。
緑色のゴム マットの上にRaspberry Pi Picoの基板やユニヴァーサル基板、サーヴォモーター、各種工具類、LEDやキャパシターなどが散乱している様子を撮影した写真。
工作場面。
緑色のユニヴァーサル基板の裏面に錫メッキ線と白色の被覆線がハンダ付けされて配線が施されている様子を撮影した写真。
ユニヴァーサル基板に配線をしたところ。

そして、2023年10月15日時点で、自宅で試作した外観検査機のロボット アームを急遽サンプル画像の撮影に使用する為に職場に持ち込む事になりました。
ロボット アームを設置して検査対象物を撮影する為にディスプレイとカメラの取り付け位置を変更しました。

アルミニウム フレームの奥の上方に小型のタッチ スクリーンと手前の下方にUSBカメラが組み付けられている。中央にはアルミニウム フレームと金具とサーヴォ モーターで作られたロボット アームが設置されている。ロボット アームの金属の指が黒色のプラスティック製のデヴァイスを把持している。ディスプレイにはロボット アームが映し出されている。
外観検査システム。

ロボット アームの指部分の金具に検査対象物を接触させると圧力センサーが接触を検知して自動的に対象物を把持します。

アルミニウム フレームの奥の上方に小型のタッチ スクリーンと手前の下方にUSBカメラが組み付けられている。中央にはアルミニウム フレームと金具とサーヴォ モーターで作られたロボット アームが設置されている。ロボット アームの金属の指が黒色のプラスティック製のデヴァイスを把持している。ディスプレイにはロボット アームが映し出されている。
外観検査システム。

サンプル画像撮影は半自動で行う必要があるので、PC側からキーボード入力でコマンドを送ってロボット アームを任意の角度で回転させて撮影を実行します。

アルミニウム フレームの奥の上方に小型のタッチ スクリーンと手前の下方にUSBカメラが組み付けられている。中央にはアルミニウム フレームと金具とサーヴォ モーターで作られたロボット アームが設置されている。ロボット アームの金属の指が黒色のプラスティック製のデヴァイスを把持している。ディスプレイにはロボット アームが映し出されている。
外観検査システム。

サーヴォ モーターは3個使われており、指は90°弱、回転台とロールは180°の回転が可能です。

アルミニウム フレームの奥の上方に小型のタッチ スクリーンと手前の下方にUSBカメラが組み付けられている。中央にはアルミニウム フレームと金具とサーヴォ モーターで作られたロボット アームが設置されている。ロボット アームの金属の指が黒色のプラスティック製のデヴァイスを把持している。ディスプレイにはロボット アームが映し出されている。
外観検査システム。

ケーブルの保護などを行う必要がありますが、今回は間に合いませんでした。
職場でサンプル画像の撮影が済んだら自宅に持ち帰るかもしれません。
その場合は職場で新たに材料を購入して貰って組み立てる事になると思います。

コメント

タイトルとURLをコピーしました