detamamoruのブログ

興味を持ったことや勉強したことに関して記事を書きます。主に低レイヤー寄りの記事を公開。

初めてのロボットアーム作りに挑戦!3: 3リンクの運動学とアーム製作

出田守です。
アイアンマンを観て、ロボットアームが欲しくなりました。
勉強しながら、初めてのロボットアーム作りに挑戦します。

今回の目標

3リンクアームを製作する。

材料

  1. サーボモータ FS90 3個
  2. ESP32DevKitCv4 1個
  3. 単3×4電池ボックス 1個
  4. 単3電池 4本
  5. マイクロUSBケーブル 1本

3リンクにおける順運動学

f:id:detamamoru:20201123164657j:plain
3リンクの角度と位置


\begin{aligned}
x &= (L_2cos(\theta_2) + L_3cos(\theta_2 + \theta_3))cos(\theta_1)\\
y &= (L_2cos(\theta_2) + L_3cos(\theta_2 + \theta_3))sin(\theta_1)\\
z &= L_2sin(\theta_2) + L_3sin(\theta_2 + \theta_3) + L_1
\end{aligned}

3リンクにおける逆運動学

以下は、余弦定理を用いて導出しました。


\begin{aligned}
\overline{OP} &= \sqrt{x^2 + y^2}\\
\alpha &= cos^{-1}(\frac{L_2^2 + L_3^2 - \overline{OP}^2}{2L_2L_3})\\
\beta &= cos^{-1}(\frac{L_2^2 + \overline{OP}^2 - L_3^2}{2L_2\overline{OP}})\\
\gamma &= sin^{-1}(\frac{z - L_1}{\overline{OP}})\\
\theta_1 &= tan^{-1}(\frac{y}{x})\\
\theta_2 &= \gamma \mp\beta\\
\theta_3 &= \pm(\pi - \alpha)
\end{aligned}

3リンクアームシミュレータ

gist.github.com

3リンクアームの製作

今回は、アプリで3D操作をどうするか分からなかったので、単純に座標x, y, zを指定して送信するようにしました。
github.com

今回は動画無しです。