生産技術者サラリーマンの日々

社畜サラリーマンが生産技術やお金の悩みを徒然と書くブログです。私の備忘録が共有できるとうれしいです

【Python】カメラ座標からロボシリンダー座標系への変換方法

1.背景

新しい生産技術といいますか、工法の開発も本業の傍ら、ほそぼそと

やっています。

超部分的ですが、要素毎にまとめて行こうと思います

(よく、どうやってやったけ??っと思い返すのに時間がかかるため・・・

 がさつな性格がよくないのですが)

 

2. システムの構成と課題

 f:id:inusan0424:20190925224839j:plain

 

 

画像処理にて検出した画像上の特徴点(x1,y1)からロボシリンダーの座標X

を求めたい。

 

3.方法

3.1 キャリブレーション

  事前に画像座長系x-yとロボット座標系Xとの関係(変換)式を求める

①画像座標とその時のロボット座標を求める。

 

x y X
536.00 295.00 51.00
514.00 296.00 53.34
471.00 296.00 58.02
451.00 299.00 60.36
405.00 299.00 65.04
363.00 303.00 69.72
298.00 308.00 76.74

 

②関係式を求める

 画像座標のxとロボシリンダーXの関係は、1次関数で表せる。

 X=ax + b

f:id:inusan0424:20190925230801j:plain

これをサクッとPythonで解くと

A = np.array([X,np.ones(len(X))])

A = A.T

a,b = np.linalg.lstsq(A,X)[0]

※X,xは、画像座標値xとロボット座標値XがN点配列に入っている。

 

3.2 座標変換

  求めた関係式X=ax + bを用いて、検出した特徴点の画像座標から

 ロボット座標系に変換することで、現在値Xを算出できる

 

 

 

 

https://blog.hatena.ne.jp/inusan0424/inusan0424.hatenablog.com/config/design/detail