3Dプリンタで作る垂直多関節ロボットアームの設計

3Dプリンターで作る垂直多関節ロボットの設計

こんにちは! けい(Twitter)です。

今回は、ロボットアーム企画の第4弾、「ロボットアーム全体設計編」です。

前回は、Arduinoでグリッパを電動化して動かしたので、今回はロボットアーム全体を3DCADで設計していきたいと思います。

この記事は「3Dプリンターで作るロボットアーム」シリーズの4つ目の記事です。
以前の記事を読んでいない方はぜひこちらのリンクから覗いてみてください。]

垂直多関節ロボットの設計

構想

設計するにあたってこれらの事を意識しました。

  • シンプルなデザイン
  • 3Dプリンタで「出力しやすい形状」

シンプルなデザイン

私は、〇や□といった単純な幾何学模様が好きなので、それらの要素を組み合わせたシンプルなデザインにしました。

3Dプリンタで「出力しやすい形状」

どれだけ凝った設計をしても、実際に3Dプリントしてみると上手くいなかなかったり、強度が足りなかったりする問題が出てきます。

また、サポート材が多くなればなるほど煩わしさが増え、再現性が失われてしまいます。

さらに、複数のパーツを組み合わせるのでパーツ同士の固定方法を考える必要があります。

そこで、3Dプリンターで出力することを考えて、サポート材が極力少なくなること強度がある程度保たれること一種類のねじで固定できるような設計を意識しました。

外観

今回設計するロボットアームは3軸の垂直多関節ロボットです。

「軸」はロボットの関節の数を表しており、多ければ多いほど自由自在な動作が可能になります。

3軸あれば可動域内の3次元空間で任意の場所に移動させることが出来るため、3軸としました。

サーボモータのモデル

サーボモータのモデルは3軸全て同じ形状で設計しました。

使用するサーボモータは、ゾースカイのDS3218シリーズです。

DS3218は、20kgcmの高トルク仕様のサーボモータで、PWMで制御することができます。

また、他のモデルと形状が同じという点でこのサーボモータを採用しました。
例えば、同じシリーズでDS3225(25kgcm)や、DS3230(30kgcm)などがありますが、これらは形状が全く同じです。
そのため、トルク不足でも設計を変更せずにモータだけ変えれば動作するという利点があります。

3Dモデルはこちらを使用しました。

1軸目

一軸目はサーボモータが底面にあり、ロボットアーム全体がサーボホーンに乗っかるような形にしました。

初めは、1つのボディで作ろうとしていましたが、サポート材が大量になってしまいプリントが不安定だったため、3つのパーツに分けました。

1つ目のパーツとサーボホーンをねじでしっかり固定することができます。

1つ目のパーツと2つ目のパーツも2つのねじ穴で固定されます。

2つ目のパーツに挟み込むような形で3つ目のパーツを挿入し、4つのねじで固定できます。

2軸目

2軸目は、2つのリンク同士をそれぞれサーボモータとサーボホーンで固定します。

サーボモータがアームにピッタリとはまるようにしています。

3軸目も2軸目と同様の構造なので割愛します。

ハンド先端の接合部

物体を水平方向で掴むために、ハンドの先端を90°回転させました。

この部分も初めは一体成型で設計していましたが、実際に3Dプリンターで出力すると強度が弱くなってしまったので、二枚の板を合体させる形で設計しました。

幅が狭い面を積層面にすることで強度を上げています。

ねじが無くても十分に固定できますが、両サイドからねじで固定することでさらに強度を上げています。

ロボットアームに必要なトルクを計算する

続いて、ロボットアームを動作させるために必要なサーボモータのトルクを計算していきます。

必要なトルクが分かれば、使用するサーボモータを決定できます。

トルクとは

トルク(英語: torque)とは、力学において、ある固定された回転軸を中心にはたらく、回転軸の周りの力のモーメントである。一般的には「ねじりの強さ」として表される。力矩、ねじりモーメントとも言う。

出典:wikipedia

トルクは、回転軸に働く力のモーメントのことです。

ロボットアームで言えば、アームを回転させるために必要な力を表します。

例えば、下図のように黒丸は固定されていて物体Mがアームの先端にあるとします。
この時、時間の経過により物体Mは振り子のように動き黒丸を中心とした回転運動をします。

これは物体に重力が働くからであり、物体を静止させるためには「力」が必要です。

この「力」がトルクであり、計算により求めることができます。

多関節ロボットのトルクの計算方法

1軸での計算

下の図のように1軸でのトルクを考えてみましょう。

物体が静止した状態でのトルクを考えます。加速度が加わった時のトルクを計算すると手間がかかるので、今回は省略します。

物体が静止しているときトルクτは、

$$τ=M\times L\cosθ + W\times \frac{1}{2} L \cosθ$$

ここで、cosθ=1となるとき、つまりθ=0°のときにτが最大となります。

$$τ=ML + \frac{1}{2} WL$$

これ以降は、θ=0°のときのトルクを考えます。

2軸での計算

次に、軸を増やしてみましょう。

\(τ_{1} =M1L1 + \frac{1}{2} W1L1 \)

\(τ_{2} =M2L2 + \frac{1}{2} W2L2 + M1(L1+L2) + W1(\frac{1}{2}L1+L2) \)

このようにトルクを計算できます。

\(τ_{1}\)よりも\(τ_{2}\)の方が、必要なトルクが大きいことが分かります。

軸を3個以上に増やしても同様に計算することができます。

実環境でのトルク概算

今回私が設計したロボットアームの重量を調べ、必要なトルクを概算してみます。

スライサーソフトで使用するフィラメントの長さと重量[g]が表示されるので、この数値を記録します。
また、使用するねじの重量も計測しました。

それらの情報を元に重量を決定しました。(下の図はねじの重量を含めていません。)

サーボに最大のトルクがかかる状態で先ほどと同様にモデル化します。
一番下のサーボモータは回転方向に重力がかからないので、計算には含めていません。

また、M1 = 0.5kg として計算しています。

\(τ_{1} =M1L1 + \frac{1}{2} W1L1
\\=(0.5kg × 12.5cm) + (0.058 kg×12.5/2 cm)
\\=6.62kgcm \)

\(τ_{2} =M2L2 + \frac{1}{2} W2L2 + M1(L1+L2) + W1(\frac{1}{2}L1+L2)
\\={0.06kg × 12.5cm} + \frac{1}{2} (0.042kg × 12.5cm) + {0.5kg × (12.5+12.5)cm} + {0.058 kg×(12.5+12.5/2)cm}
\\=14.6kgcm\)

よって、設計したロボットアームの静止トルクが最大でも15kgcm程度だということが分かりました。

これに運動が加わればさらに大きなトルクが必要となりますが、20kgcm程度あれば十分に重いものでも持ち上げることが出来そうです。

サーボモータの選定

トルクの計算を元に、サーボモータの選定を行います。

今回CADで設計したサーボモータのシリーズには複数のトルクのサーボがあります。

ゾースカイのサーボモータ

20kgサーボ DS3218

25kgサーボ DS3225

30kgサーボ DS3230

35kgサーボ DS3235

ゾースカイ 35KGコアレスデジタルサーボ RCカー用高トルクコアレスモーターサーボステンレスSG防水デジタルサーボ ロボットDIY 防水サーボ バハのラジコン対応 (180°)
ゾースカイ

1軸目と3軸目はそこまでトルクが必要ないので20kgcmのDS32182軸目は25kgcmのDS3225を使用することにします。

最後に

今回は、ロボットアーム作成の第4弾ということでロボットアームの全体設計を行い、サーボモータの仕様を決定しました。

次回は、今回設計したロボットアームを実際に3Dプリンターで出力し、動作させていきたいと思います。