コロンビア大学の研究チームが10万円以下の予算で作れるヒューマノイド「Eva」をオープンソースで公開しています。
Facially expressive humanoid robotic face
ラズパイやAdafruitのHAT、サーボモーターを駆使して表情を作っているのですが、サーボ制御用pythonコードや3Dプリンター用のCADデータが公開されていたので見てみました。
CADデータはSolidWorksのSLDPRTやSLDASM形式なっていました。WisteriaHillはこんな高価なソフト持っていないので、フリーのソフトやサービスを使ってデータを覗いてみます。
1:CADデータを見てみる
SLDPRTやSLDASM形式のデータを見るだけならSolidWorksのViewerがあります。
2:STL形式に変換する
3Dプリンターで出力する場合は、stl形式に変換しておきます(これがほぼほぼ標準形式)。
フリーのWebサービスを使います。
AnyConvとmiConvというサービスがありますが、後者はなぜかうまく出力してくれませんでした。
なんでこんなサービスが無料であるのか不思議ですが、CADデータ(特に3D)はうっかりするとマーケットに流れる可能性があります。今回のように端からオープンなもの以外は使わない方がいいかもしれません。
3:データが3Dプリンターで出力できるか確認
stl形式のデータは、それだけでは出力可能かは保証されません。ちゃんと変換されているか確認しましょう。
例えば、厚さ0 mmのstlデータは出力不可です。
以下のソフトならメッシュに破綻が無いかやデータの単位がmmなのかinchなのかを見てくれます。
見てみましょう。
例えば、Eye & Eyelid Mechanism (2-8-17)というフォルダーにはあごより上、目の周辺のパーツが格納されています。
eyelid_4_18_left.SLDPRTというデータをViewerで見てみます。「左のまぶた」に相当するパーツです。
これをAnyConvサービスでstl形式に変換します。
データを読み込みます。
変換実行。終了するとダウンロードボタンが現れますのでダウンロードします。
stlファイルをMiniMagicsで読み込んでデータを確認します。
こんな警告が出ます。ここでは変換します。
こんな感じで読み込まれます。トライアングルメッシュで表示してみます。
エラーを検証。
見た目、破綻しているメッシュは無いようです。
反転三角(裏表逆のメッシュ)もバッドエッジもありません。シェルが1になっているのは一体成型されているということで無問題です。これが2以上の値なら、一体成型になるように修正する必要があります。
公開されているCADデータのファイルは結構な数があります。では全部必要かというとそんなことはなく、不要なデータや重複データ、欠陥データも含まれています。また市販のもの(小ねじやラズパイ、サーボモータ、ホーンなど)もSLDPRTデータとして公開されています。
本当に出力に必要なパーツはどれなのか確認してみます。
SLDASMというアセンブリファイルを使います。
これをeDrawing Viewerで開きます。
例えば、Eye Assembly (v3).SLDASM
パーツ同士の関係が見えます。
一つづつピックアップしてみます。
こんなふうにSLDPRTファイル名が表示されます。
で、チェックが済んだものは非表示にしておけば、内部に隠れているようなパーツもチェックできると思います。
これで対応するパーツのstlを複数読み込んで確認するとこんな感じになります。
この辺のパーツです。
サーボモータはMG90Sが使われています。価格とトルク重視でこれが使われているのかな?
秋月電子で1個買いすると850円。まとめ買いすると安くなるところもあります(10個で4~5千円くらい)。
Bill of Materials の表の中ではAmazonで25個まとめ買いしてますが、現在AmazonでTower Pro のMG90sは扱って無いのかな?まとめ買いできるのはノーブランドか別ブランドのMG90sみたい(パッチもんか?)。
このページでSG90を使った時、ジージー・ジージーと結構うるさかった記憶があります。MG90Sは大丈夫なんでしょうか?
モーターのサイズは0.9 x 0.5 x 1.1 inches (22.8 x 12.2 x 28.5 mm)
Servo Bank (4-15-17).SLDPRTを見てみると0.1mmほど狭い、大丈夫か?
Facially expressive humanoid robotic faceを見ると「ボーデンチューブを通して鋼線を使う」とあるのですが、Fig2のイラストと写真では使っているサーボバンクが違う。イラストではServo Bank (2-5-17).SLDPRTを使うようですが写真ではServo Bank (4-15-17).SLDPRTを使っている。どっちが正解?
朱色のところで判断
sldasmファイルを見ると、25個のモーターはこんな具合に使われるようです。
各モーターが表情筋や骨格筋の役割を果たしているようですが、どれが何を担当しているかは、まだ分かりません(調査中)。
鋼線(steel wire)はこんな具合につなぐそうです(表情筋としての可動域は15mm)。
この鋼線の長さを調整するのはとっても大変そうな予感がします。
Stewart Platform(スチュワート プラットフォーム:6自由度パラレルリンク機構) は首全体を動作させるものですが、カメラのマウントとして、これ単体で動かしても面白いかもしれません。
サーボモーターの可動域は0~180ですが、360度回転させることも可能なようです。その場合、base platformにモータを追加してターンテーブル化してもいいかも(ただMG90のパワーだとギアをうまく組み合わせないと動かない?)。顔認識AIと組み合わせればあなたのお顔を追跡してくれます。
ところで、ここで一番気になるパーツはcustom spacer です。
ここ
厚さが0.6075 mmしかありません。
素材はPLAが指定されていますが、3Dプリント屋さんは受けてくれるでしょうか?
(ホームセンターで売ってる透明ABS丸パイプで代用できるかも。ラズパイのケースを手作りした時M2.6のスペーサー用に使えましたし、それよりちょっと太めのやつで….)
各モーターを一括制御するのがHATです。
Adafruit のServo HATはラズパイに2段スタックして使うようです。
この上にもう一枚乗っける。
adafruit/Adafruit_Python_PCA9685
Full Assembly.SLDASMを見ると、こういう具合にビルトインされるようです。
HATの使い方は、この辺を参考にします。
SourceにあるPythonコードも参照しましょう。
問題・課題
問題として、公開されているsldprt、sldasmを見ていて、どうも不足しているパーツがあるようです。
全部チェックしたわけではないですが、例えばSkull Back で使うラズパイを保持するパーツ(raspberry pi holder)のファイルが見当たりません。
Skull Support Assembly (Back)で見ると
この部分のパーツです。
他にもありますが、さてどうするか?
SolidWorksを使ったことがないので確かなことは分かりませんが、Skull Support Assembly (Back).sldasmというアセンブリファイルで表示・非表示できるくらいですから、このアセンブリファイルからsldprtファイルとして分離保存できそうな気もするのですが、どうでしょう(この程度の作業なら評価版でなんとかならない?)。
まぁ、他にはCADデータはUS仕様なのか単位はインチ(inch)ですので、STLを出稿する場合はmmに変更しておく必要があるでしょう。また、ねじなんかはM2.5が使われていて、あんまりその辺で売ってないとか….。
最大の課題はシリコンマスクの作成
これは電子工作とは関係なく、映画や芝居の小道具を作るような話です。
ポジ・ネガの型はMask Mold/Molding Rig (4.19.17)/Molds_with_attachments.SLDASMなどで見れます。
お顔の寸法はポジ・ネガの中間を取って、だいたい16.3 cm x 24.1 cm。
材質はSmooth-OnEcoFlex 00-30、日本ではサック(株)などで購入できるようですが、これは作った経験がないと難しい….かな。さて、どうしょう?
Facially expressive humanoid robotic faceには「Bill of Materials(部品表)」があります。
C1~C42まで総勢42点の部品と市販の価格、Webサイトなどが表示されています。全部USドルですが、日本で電子部品屋さんやホームセンターなどで手に入るものもあります。
圧縮ばね(Compression Spring)は見つけにくいかもしれません。ページ下段にスペックを置いておきました(サイトから取ってきたものです)。
ただ、Bill of Materialsの部品はほとんどAmazonかAdafruit、MacMasterで購入しているようです。McMasterはクレジットカードも使えるので、面倒ならアカウントを作って、まとめてここで購入してもいいかも。
パーツの出力を3Dプリント屋さんにお願いするとして、本当に10万円以下で作れるのでしょうか?
そもそも、どこをスタートラインにすればこの予算設定になるのかな?
CADシステムや3Dプリンター、レーザーカッターは当然持ってて使えるのが前提のようだし。
その他、ヒートセットインサート(熱圧入)用の工具とか、シリコンマスク作成用の道具類とか。
理系の研究者で厚さ0.08インチ(≒2 mm)のシリコンマスク作ったことのある人なんているのか(以前は映研に所属していてSFX担当してました…とか)?
おいおい検証してみます。
こういうのを使って、音声認識、音声合成、顔認識、物体認識などなど、エッジベースでのAIを使うと楽しいかもしれない(もしGPIOがHATに占有されている場合でもUSBポートは使われていないようですし)….。ラズパイ3が想定されているようですが4を使ってみましょう。
できるなら、CADデータを修正して、どうせしゃべるなら、ちょっと不気味な人型の顔より「チェシャ猫」型を使いたい思うのですが(^^)どうでしょう。
skullやjawのデータを見ると耳や目とか歯とか結構リアルなのでより不気味さが際立ちます。どうせ不気味なら猫耳とか猫目やギザギザの歯にすればいいのに….とか。チェシャ猫なら顔が青かろうが首だけがしゃべろうが違和感は無い。
圧縮ばねスペック
インチ表記の記号が変ですがUS仕様です。
McMASTER-CARR
Compression Springs(圧縮ばね)
inch(”)
OD | ID | Wd. , Thick. | Compressed
Lg@Max Load |
Max
Load, lbs
|
Rate、
lbs. / In. |
Material | End
Type |
|
0.406″ | 0.28″ | 0.063″ | 1.98″ | 19.95 | 38 | Spring-Tempered Steel | Closed and Ground | 9620K11 |
1 2 3 4 5 6 7 8 |
スプリングテンパー鋼 外径(OD) 0.406" 10.3124 mm 内径(ID) 0.28" 7.112 mm Wd. Thick. 0.063" 1.6002 mm 最大荷重 19.95 lbs 8.9775 kg 荷重負荷無し長さ 63.5 mm 最大荷重負荷時長さ 1.98" 50.292 mm |
End Type Closed and Ground(密着形研削)
Leave a Reply