やること
サーボモーターのパワーを外部的に減速しトルクを稼ぐという長穴減速という技があります。
今回はその減速比を解きます。
ちなみに「減速」というのは例えばモーターの回転数に対して間にギアなどを挟み最終的な回転数を下げてそのかわりトルク(力、ねじり強さ)を上げていくような仕組みのことです。
そもそも長穴減速とはどんな機構か
図のように、モーターの軸に固定され末端にスライダピンがついたリンクAと、そのピンを受け末端がフリーの回転軸に留められたリンクBがあるとします。
リンクAのスライダピンは円を描く回転運動になり、リンクBはスライダを上下するピンに従って左右に揺動します。
このとき、モーターの回転量とフリー回転軸の回転量には差が生じるため、これを減速機として利用することができるというわけです。
つい長穴減速という名前で読んでしまいますが、「揺動スライダクランク機構(oscillating slider crank mechanism)」というのが正式名称のようです。
上記の長穴減速を図示する
図のようにリンクAの長さをa、モーター軸からフリー軸までの長さをb。また、リンクAの角度をθ1、リンクB(図ではcの線)の角度をθ2としてみます。
θ2の角度を任意の角度にしたい場合にθ1を何度動かすべきかというのが、ロボットを動かす上で知りたい情報となります。
迷わずこれを使うべき。減速比が常に1/2となるa=b型。
aの長さとbの長さが同じ場合にかぎり、特殊な挙動になります。
辺a,辺bからなる三角形は二等辺三角形となり、また外角の定理より、
常にθ1 = 2*θ2の関係が成り立つようになります。
つまり減速比も角度に限らず常に1/2となります。
特別な事情がない限り、この減速比で設計してしまうのが一番よいでしょう。
やむを得ず他の減速比で使う場合
正弦定理で解いていきます。
正弦定理とは、
三角形ABCの外接円の半径をRとしたとき、
\frac{a}{\sin A}=\frac{b}{\sin B}=\frac{c}{\sin C}=2R\\
が成り立つという公式です。
これを今回の機構にあてはめると、
正弦定理より
\\
\frac{a}{\sin\theta_2}=\frac{b}{\sin\theta_3}\\
\\
\sin\theta_3=\frac{b\sin\theta_2}{a}\\
\\
\theta_3=\arcsin(\frac{b\sin\theta_2}{a})\\
\\
外角の定理より \\
\\
\theta_1=\theta_2+\theta_3\\
\\
よって\\
\\
\theta_1=\theta_2+\arcsin(\frac{b\sin\theta_2}{a})\\
となり、θ2の角度とa,bの長さからθ1が求まります。
逆にサーボ角度からリンク角度を求める場合
θ1を決めてからそれに応じたθ2を求める場合には、タンジェントを使います。
(他の方法の方がよいかも?)
\tan\theta_2=(\frac{a \sin\theta_1}{a \cos\theta_1+b})\\
\\
\theta_2=\arctan(\frac{a \sin\theta_1}{a \cos\theta_1+b})\\
となります。たぶん。
謝辞
関先生、正弦定理を使った解法を教えていただきありがとうございました。
次回
これをProcessing3上でシミュレーションできるプログラムを備忘のために記事にしておこうと思います。
次回記事:長穴減速をProcessingでシミュレート
へんなところがあったらご指摘ください。