Nov11’s diary(自宅での開発環境作り )

3Dプリンタと切削加工機で工作した事をアップして行きます

自作したロボットアームを制御する(仮想現実での制御)(その4)計算により関節の角度を求める

自作したロボットアームのエド(2016年06月13日)のCadデータをVisualStudioとOpenGLを使用してVR(仮想現実)で自由に動かせる様になったので、目標位置に対して、各関節の角度を演算により求める事が出来るようにして、目標角度までをアニメーション表示出来るようにもしてみました

ついでに、移動目標が〇だと寂しいので、移動目標を飛行機(本当はヘリコプターにしたかったけど、難しかったので断念しました)にして、ロボットアームvs飛行機って感じのCGが、以下になります

[エド vs 飛行機]

f:id:Nov11:20161015095548j:plain


計算手順は、意外と簡単で、以下のように計算してみました

ロボットアームの基準座標を点P,飛行機の座標を点R,ロボットアームの関節座標を点Qとします
図で表すと、図ー1の様になり、簡略化した物が図ー2となってます
(注意)筆者は、図画工作系の人間なので、数学的表現が微妙となってます

[計算手順]
1)ロボットアームの基準座標と飛行機の座標との水平垂直角度を求める
  空間座標が分かっているので、atan(アークタンジェント)により求める
2)ロボットアームの基準座標と飛行機の座標との直線距離を求める
  「ピタゴラスの定理」で求める
3)点Rの座標を求めて、角度を算出する
  2)で求めた長さと1)で求めた垂直角度から、点Rの座標を求める
  肩から肘(P-Q)の長さ(A)と、肘から掴み(Q-R)の長さ(B)はわかっているので、
  点Pを中心に半径Aの円と点Rを中心に半径Bの円の交点を求めて、点Qとする
  後は、点P、Q、Rの角度を求めれば、計算完了となる
  言葉ではわかりずらいので、図ー3を参照してください

[図ー1]

f:id:Nov11:20161015095652j:plain

[図ー2]

f:id:Nov11:20161015095740j:plain

[図ー3]

f:id:Nov11:20161015095759j:plain

 

んで、計算し動作させると、こんな感じです

youtu.be
やっと、VR(仮想現実)とは言え、任意の空間座標にアームを動かせる様になったので、いよいよ画像認識に取り掛かろうと思うけど、複数の空間座標を通るようにしてからにするか迷うところです
迷う理由は、複数の空間座標を通す為に、3次元の補間計算プログラムを作成しないといけない...
結構大変な作業になりそうなので、悩ましぃとことです

なお、ブログの内容を参照して実行した結果に責任は負いかねますので、ご了承下さい