0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

垂直多関節ロボットアーム制御-xz平面アーム2軸

Posted at

概要

アーム3+手首3軸垂直多関節ロボットアームを制作した。その制御を行う。
まず、xz平面においてアーム部の2軸制御のみを行う(なので制御は比較的平易)。

計算

\displaylines{
\begin{align}
&R_1=\sqrt{x_e^2+z_e^2},\ R_2=\sqrt{L_1^2+l^2}\\
&\phi_1=\arctan2(L_1,l),\ \phi_2=\arccos(\frac{L_2^2+R_2^2-R_1^2}{2L_2R_2})\\
&\theta_3=\pi-\phi_1-\phi_2\\
&\phi_3=\arctan2(z_e,x_e),\ \phi_4=\arccos(\frac{R_1^2+R_2^2-L_2^2}{2R_1R_2}),\ \phi_5=\arctan2(l,L_1)\ (=\frac{\pi}{2}-\phi_1)\\
&\theta_2=\frac{\pi}{2}-(\phi_3+\phi_4+\phi_5)\ (=\phi_1-\phi_3-\phi_4)
\end{align}
}

上図で、求めたい角$\theta_{2,3}$は上記の式で求められる。
0除算防止や角度制限は別途かける必要がある。

シミュレーション


pythonを用いてシミュレーションを行った。
先述の式で求めたphi1~5を用いて、腕L1,l,L2の端点座標は簡単に求められる。

実機動作

実際に制作したロボットアームを制御する。
image.png
制御系は上図のように実装した。

描画付き計算・通信コード(未掲載)
padSerial.py
#清書してから

動作の様子。

3軸もしくは手首制御
(あくまで人間が手動操作しやすくすることを目的としているため満足すればここで終わり)

余談

当初、腕L1の垂直オフセット成分、lを考慮していなかったが、この場合実機でシミュレーション上の動きと著しく乖離した動きを見せた。全体に対して十分短いと考えていたため、簡単のために無視していたのだが案外影響が大きかった。

ログ

2025-06-21 試動作成功
2025-06-23 記事ほぼ完成
2025-06-24 記事投稿

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?