ロビの頭のXZ軸角度
2016年4月26日


 ロビモーションシミュレーターでロビの頭部のX軸角(ピッチ角)とZ軸角(ロール角)は2つのサーボ(ID14とID15)で構成されています。
 ちなみにY軸角(ヨー角)はサーボ(ID13)が直結なのでサーボの角度がそのままY軸の角度となります。



 まずサーボID15の動きに注目します。
 このサーボアームと反対側に同様のアームが付いていてそこに頭が接続されていて頭を上下させます。
 反対側のアームはサーボアームと同じ動きをするのサーボID15の角度をそのまま頭部のX軸角(上下方向)としてもよさそうです。

 問題はZ軸角(左右方向)です。



 Z軸角を決定するのサーボID15です。
 このサーボのアームの接続部は固定されていなくスライドします。
 これはのサーボのアームの接続部は固定されていなくスライドします。
 アームの接続部は垂直に動き橙色の線の長さは一定です。
 ロビで実測すると1橙色の線の長さは4mmです。
 なおシミュレーターの3Dデータの大きさは実物のロビと同じではありませんがここでは角度を求めているため大きさは関係ないので便宜上実寸を使用します。

 ここでZ軸の動きに関係してくるのが高さ(水色の線)です。
 高さは橙色の線に対する正接(tan)で求められます。

 最初のサーボID15の写真に戻ります。
 このサーボでZ軸の動きに関係してくるのが高さ(赤線)です。
 このサーボのアームの接続部は固定されているのでサーボ軸からの距離は一定です。
 高さは緑色の線に対する正弦(sin)で求められます。

 ロビで実測すると緑色の線は14mmです。



 ロビの頭の後方にあるZ軸の回転を行う機構です。
 2つのサーボホーンの結合部分を結んだ線(白線)の傾きがロビの頭のZ軸角度となります。
 なおサーボID15の結合部分はサーボホーンとは反対側になりますがサーボホーンと平行に動くので高さ(赤線)は同じになります)

 白線の傾きは先程求めた高さの合計(水色線+赤線)と白線の長さから正弦の逆三角関数(asin)で求められます。
 ロビで実測すると白線は32mmです。
 なおサーボID14のサーボアームとの結合部分には遊びがあるので角度によって長さが異なってきますがここでは長さが変わらないものとして計算します。
 また部品のZ方向の移動による距離のずれは考慮していません。

  Z軸の角度の計算式をまとめると下記のようになります。

   h1(水色) = tan(サーボID14角度) * 14mm(橙)
   h2(赤) = sin(サーボID15角度) * 14mm(緑)
   r(Z軸の角度) = asin((h1 + h2) / 32mm(白))

 式の角度はラジアン
 高さh1 + h2の三角形と写真の三角形は相似形になるため傾きは変わらない

 サーボID14とサーボID15は連動するため片方のサーボの位置によってもう片方の稼働範囲が変わってきます。
 ロビモーションシミュレーターでは稼働範囲を越えないようにしてリモート接続した時にサーボに無理な負荷がかからないようにしています。

 これらのサーボの連携については以前miconoさんがブログでまとめられています。
 今回そこに書かれている表を参考にして稼働範囲を計算しました。
 厳密には前述のように三角関数が関係してくるので複雑な計算式になると思いますが範囲の設定なので簡略化した計算式にします。
 サーボID14の角度とサーボID15の角度の和が-27°〜36°を稼働範囲としました。


 実際この計算式でシミュレーションを行った時の動画です。

     

目次に戻る