資料室 (FrontPage)  Index  Search  Changes  RSS  Login

作業メモ

MSPインタプリタの仕様

  • 20070119時点
    • インタプリタコマンドのXが「サーボPWM反映」なのは間違いだと思う

L-Card関連

無線関連

運動学まわり

leg_angle.png
図から
θ4 = θ3 + θ5
L34 * sinθ3 = L45 * sinθ5
(θ4の回転方向が逆だが符号は気にしないことにする)

式1)
∴ θ4 = θ3 + asin( sin(θ3) * L34 / L45 )
また、L34を延長し、∠J3,J4',J5が直角をなす点 J4'を仮定すると
L35^2 = L34'^2 + L4'5^2
L44' = L45 * cosθ4
L4'5 = L45 * sinθ4

式2)
∴  L35^2 = ( L34 + L45 * cosθ4 )^2 + ( L45 * sinθ4 )^2

これをJ4に対する式に変換する

右辺第1項を展開すると
L35^2 = L34^2 + 2 * (L34 * L45 * cosθ4) + (L45 * cosθ4)^2 +  (L45 * sinθ4)^2
      = L34^2 + 2 * (L34 * L45 * cosθ4) + L45^2  ∵ cosθ^2 + sinθ^2 = 1

左辺がθ4 になるように変換すると
2*(L34*L45*cosθ4) = L35^2 - L34^2 - L45^2
            cosθ4 = ( L35^2 - L34^2 - L45^2 )/(2 * L34 * L45)
式3) 
               θ4 = acos ( ( L35^2 - L34^2 - L45^2 )/( 2 * L34 * L45) )
さらにθ4の値からθ3を求めるため
θ4 = θ3 + asin(sinθ3 * L34/L45)
をθ3を左辺とした式に変換する。
 
sin(θ4-θ3) = sinθ3 * L34/L45
加法定理より
( sinθ4 * cosθ3 - cosθ4 * sinθ3 ) = sinθ3 * L34/L45
両辺をsinθ3で割ると
 sinθ4/tanθ3 - cosθ4 = L34/L45
          sinθ4/tanθ3 = L34/L45 + cosθ4
                 tanθ3 = sinθ4/(L34/L45 + cosθ4)
式4)
                    θ3 = atan( sinθ4 / (L34/L45 + cosθ4) )
Ruby で計算する場合 (Jx は θx のDegree値を持つ変数とする)

式1')
J4 = J3 + Math.asin(Math.sin(J3 * Math::PI/180) * L34/L45 ) / Math::PI*180

式2')
L35 = Math.hypot( L34 + L45 * Math.cos( J4 * Math::PI/180 ),
                   L45 * Math.sin( J4 * Math::PI/180 ) )
  ※) Math.hypot(x,y) は sqrt(x*x, y*y) を返すモジュール関数

式3')
J4 = Math.acos( ( L35**2 - L34**2 - L45**2 ) / ( 2 * L34 * L45) ) / Math::PI*180

式4')
J3  = Math.atan( Math.sin(J4 * Math::PI/180) / (L34/L45 + Math.cos(J4 * Math::PI/180)) ) / Math::PI*180
ServoCreationのDXFデータからサイズを拾うと
L34 = 39.0 mm + 30.0 mm = 69.0 mm
L45 = 39.0 mm + 39.0 mm = 78.0 mm 

腰と足首を同一平面上にする J3,J4,J5 を求める式

J5 = Math.asin(Math.sin(J3 * Math::PI/180) * L34/L45 ) / Math::PI*180
J4 = J3 + J5

L35が与えられたとき、J3,J4,J5 を求める式
J4  = Math.acos( ( L35**2 - 10845.0 ) / 10764.0 ) / Math::PI*180
J3  = Math.atan( Math.sin(J4 * Math::PI/180) / (L34/L45 + Math.cos(J4 * Math::PI/180) )
    • 行列演算ソフト
      • 20040804の日記 と cyber205さんのコメント
      • もっと最近にもあった気がする。

-----

  • Anchor to the attached file is {{attach_anchor(file name [, page name])}}.
  • Indication of the attached file is {{attach_view(file name [, page name])}}.
  • List of the attached pages and files is {{attach_map}}.

Last modified:2007/03/22 22:43:46
Keyword(s):
References:[SideMenu]