Arduinoでロボットを作ってみました!【11】首関節の構造見直し

RCサーボの制動性能

首痙攣の治療法を検討するに当たって、先ずは首を動かしているMicro Servo 9g SG90の制動性能を確認します。

SG90に円盤を取付け、おもりを載せることで慣性モーメントを変化させ、SG90を設定した角度まで動かした際に円盤を停止させることができるかを観察します。

f:id:msdesign-tokyo:20160721160306p:plain

      f:id:msdesign-tokyo:20160721160440p:plain

f:id:msdesign-tokyo:20160721173049p:plain

実際の動きを動画で示します。                 

     
この結果から、

  SG90で制動可能な慣性モーメント < 2.36E-5 kgm^2

を設計仕様として対策を検討していきます。

 

スコープユニットの慣性モーメント

f:id:msdesign-tokyo:20160721162210p:plain

スコープユニットの重心回りの慣性モーメントは

  α軸方向:3.9E-5 kgm^2 > 2.36E-5 kgm^2

  β軸方向:3.3E-5 kgm^2 > 2.36E-5 kgm^2

であり、αステージ、βステージ共に回転軸を重心位置と一致させたとしても、SG90での直接駆動(ダイレクトドライブ)は不可ということが分かります。従って、SG90に減速機構を追加して、増力することを考えます。

 

αβステージ構造

f:id:msdesign-tokyo:20160721165353p:plain

αステージ、βステージそれぞれの駆動特性を見ていきます。

αステージ

f:id:msdesign-tokyo:20160722131443p:plain

       f:id:msdesign-tokyo:20160721165614p:plain

f:id:msdesign-tokyo:20160721165720p:plain

    f:id:msdesign-tokyo:20160721165851p:plain

       f:id:msdesign-tokyo:20160721165912p:plain

f:id:msdesign-tokyo:20160721170219p:plain

βステージ

f:id:msdesign-tokyo:20160722131546p:plain

       f:id:msdesign-tokyo:20160721170327p:plain

 

f:id:msdesign-tokyo:20160721170422p:plain

 f:id:msdesign-tokyo:20160721170439p:plain

     f:id:msdesign-tokyo:20160721170457p:plain

f:id:msdesign-tokyo:20160721170948p:plain

以上の結果からαステージ、βステージ共に駆動軸換算等価慣性モーメントはSG90で制動可能な慣性モーメント2.36E-5 kgm^2よりも十分に小さく、首が痙攣する問題を解決できそうです。

 

固有振動数の確認

今回の改良設計でのスコープ取付テーブルの固有振動数を確認しておきます。

f:id:msdesign-tokyo:20160721171546p:plain

f:id:msdesign-tokyo:20160721171607p:plain

前回と同様に両端固定梁の固有振動数計算に置き換えて計算すると、

スコープ取付テーブルの固有振動数: f = 68.9Hz

となり、振動源の周波数 50Hzから 18.9Hz離れていますので、こちらも問題にならないかと思います。

 

首関節の動作試験

中立位置の設定

αステージ、βステージ駆動用のRCサーボ SG90の設定角度を90°とすると、少し傾いているようです。

f:id:msdesign-tokyo:20160722105747j:plain f:id:msdesign-tokyo:20160722105811j:plain

そこで、αステージ、βステージが水平になるように、SG90の設定角度を調整してみました。

f:id:msdesign-tokyo:20160722110241j:plain f:id:msdesign-tokyo:20160722110304j:plain

 αステージ駆動用SG90設定角度:80°

 βステージ駆動用SG90設定角度:100°

この角度を中立位置として、αステージ、βステージ駆動用のSG90の可動範囲を以下のように設定します。

 αステージ駆動用SG90:20°~140°

 βステージ駆動用SG90:30°~170°

 

首振り動作試験

以下のスケッチで首振り動作試験を行ってみました。

#include <Servo.h>      // ライブラリの読み込み<Servo.h>
Servo servo0,servo1,servo2; // Servo型の変数は「servo0」~「servo2」とする
void setup()             // 初期設定
{
  servo0.attach(4);       // Servo型の変数は「servo0(θ)」をピン4に割り当てる
  servo1.attach(5);       // Servo型の変数は「servo1(α)」をピン5に割り当てる
  servo2.attach(6);       // Servo型の変数は「servo2(β)」をピン6に割り当てる
}

void loop()               // メインの処理
{
// 中立位置に戻す
  servo0.write(90);       // θ中立位置90°
  delay(1000);
  servo1.write(80);       // α中立位置80°
  delay(1000);
  servo2.write(100);      //  β中立位置100°
  delay(1000);
 
// θステージの首振り
  servo0.write(45);
  delay(1000);
  servo0.write(135);
  delay(1000);
  servo0.write(45);
  delay(1000);
  servo0.write(135);
  delay(1000);

  servo0.write(90);
  delay(1000);

// αステージの首振り
  servo1.write(20);
  delay(1000);
  servo1.write(140);
  delay(1000);
  servo1.write(20);
  delay(1000);
  servo1.write(140);
  delay(1000);

  servo1.write(80);
  delay(1000);

// βステージの首振り
  servo2.write(30);
  delay(1000);
  servo2.write(170);
  delay(1000);
  servo2.write(30);
  delay(1000);
  servo2.write(170);
  delay(1000);

  servo2.write(100);
  delay(1000);
}

 

     

今回首関節の構造を見直すことにより、以前のように首が痙攣することなく、滑らかに動かすことができるようになりました。

 

次は【12】動作試験Part2:走行試験