自重補償バネを設計する

週一ブログチャレンジはやっていませんが,先週に引き続きロボットの脚について
この脚の膝部分にはばねが入っていて,自重補償に良さそうなばねを選定する(摩擦が支配的な気もするけど
f:id:Libra23:20210528204936j:plain

ばねのポテンシャルエネルギを追加
 E_p = -m_1gl_{g1}cos(q_1)-m_2gl_1cos(q_1)-m_2gl_{g2}cos(q_1+q_2)+\frac{1}{2}k_2q_2^2
ラグランジュの運動方程式
 M\begin{pmatrix} \ddot{q_1} \\ \ddot{q_2} \end{pmatrix}+h(q, \dot{q})+g(q)=\begin{pmatrix} \tau_1 \\ \tau_2 \end{pmatrix}

 M = \begin{pmatrix}
m_1l_{g1}^2+m_2(l_1^2+2l_1l_{g2}cos(q_2)+l_{g2}^2)+I_1+I_2 & m_2(l_1l_{g2}cos(q_2)+l_{g2}^2)+I_2 \\
m_2(l_1l_{g2}cos(q_2)+l_{g2}^2)+I_2 & m_2l_{g2}^2+I_2 \\
\end{pmatrix}
 h(q, \dot{q}) = \begin{pmatrix} -m_2l_1l_{g2}(2\dot{q_1}+\dot{q2})sin(q_2)\dot{q_2} \\
m_2l_1l_{g2}\dot{q_1}^2sin(q_2)+k_2q_2
\end{pmatrix}
 g(q) = \begin{pmatrix} m_1gl_{g1}sin(q_1)+m_2g(l_1sin(q_1)+l_{g2}sin(q_1+q_2)) \\
m_2gl_{g2}sin(q_1+q_2)
\end{pmatrix}

ボディ全体の質量をmとして,脚が設置した状態で加速度a = 0と仮定してボディを上下させる
 k_2=0の場合
横軸が関節角度 q_2 [rad.],縦軸が必要トルク \tau_2 [N mm](真ん中のニョロニョロは移動開始時のスムージングの跡なので無視)
f:id:Libra23:20210528202513p:plain
 k_2=100 [N mm/rad.]の場合(真ん中のニョロニョロは,,,
f:id:Libra23:20210528202922p:plain

必要なトルクを1/6程度まで減らすことができる
今回はばね定数1.8 [N mm/deg.]のねじりスプリングをモノタロウさんで購入
線径 1Φmm、ばね定数(N・mm[deg]) 1.8、33-0834、1袋(2個) - ねじりスプリング 1袋(2個) サミニ 【通販モノタロウ】 07500115

歩行する場合は常に設置しているわけではないので,脚の本数と歩容から妥当な値を設定するのが良さそう