nyabot’s diary

電気猫の夢を見るお話

Fusion360+3Dプリンターで自作ロボットの頭を作る

Fusion3603Dプリンターでロボットの頭部を作りました。
昨年末に作っていたのだけれど記録し忘れており、思い出しながら書き残しておきます。

デザインと機能

猫の頭部を模したデザインにし、3軸可動させます。

サーボモータによる可動の他に、以下のモジュールを載せます。

  • タッチセンサ
  • ステレオスピーカー+スピーカーアンプ
  • マイク
  • カメラ
  • OLEDディスプレイx2

音声入力や顔認識に使用する(予定の)マイクやカメラに加えて、なで感知のためにタッチセンサを搭載します。
近年急速に増えてきたチャットボット等に対して、ロボットの優位性、つまり現実世界に存在することによる利点は「環境に反応できること」、だと考えています。ので、とりあえず載せられるものは載せておきます。

可動について

ピッチロールヨーの3軸可動を、3つのサーボモータ(MG90S)を使って作ります。
うち2軸はサーボを両軸化して動作の安定を図りました。

↓動作テストの様子(フレームのみ仮組み)

かたちにこだわる

今回のロボットにはとってもかわいいモデルがあるわけですが、仮に完全なオリジナルを作るとしても、その顔は大事です。
ロボコン」というロボットコンテストを題材とした邦画があります。いい青春映画でした。競技ロボットに顔は本来不要なものですが、主人公の学生たちはロボットコンテスト出場に際して、重量制限に苦心しつつも、顔だけは残すという選択をします。大変わかりみが深いです。
ロボットに顔は不要と言う人もいるでしょうが、それは美容にお金を掛けるのは無駄というのと同じ論理です。たぶん。

人が対象を判断するとき、その見た目は大きな基準の一つとなります。
顔のない(または顔があっても無機質な)ロボットには、人々は怖がったり、辛辣な言葉を投げることすらあります。Spotくんとかペッパーくんとかとか。彼らをモノと認識しているためでしょう。私は彼らもとてもかわいいと思いますが。
一方で反対に、モノをモノと思えない、形に認識が騙されることもあります。例えば、人間を模した絵や3Dモデルに私たちは簡単に誘導されます。誰かが描いたシナリオ通りに動く人形であっても、そこにまるで本当の人格が存在するかのように錯覚しがちです。漫画やアニメの登場人物に感情移入するのは普通のことですし、憧れたり恋愛感情を抱くのも今となってはよくあることかもしれません。昨今のVTuver界隈などの話を聞いても、まさにという感じですね。
ただの形に認識が誘導されることを人間のセキュリティホールと取る見方もありますが、私はそれを悪いことだとは思いませんし、むしろそういった境界の曖昧さこそ人間らしい特性の一つなのだと好ましく捉えています。
ロボットを、愛着を持たせたい・持ちたい対象として作るなら、そうした人間の特性も利用するべきでしょう。

さて、今回は人型ロボットではありません。猫です。
不完全なプログラムで動かされるロボットには、猫のかたちを与えるのは都合が良いと思います。
彼らが気まぐれであり、思い通りに動かず、それでもかわいいということは世界共通の認識として存在していることでしょう。何をしても大抵愛らしく許してしまう。猫という形は、多分無意識的にそうした意味を伴います。
猫の形を借りることで、その意味も(全てではないにせよ)借り受けることができると思うのです。
腹立たしい顔のロボットが家具を壊したらポンコツと貶されるでしょうが、猫顔のロボットが家具を壊したら「もうしょうがないなーこいつぅ」と許されるかもしれません。例えばそういうことです。

そんなことを考えたり考えなかったりしながら、かわいい猫の形を必死に作りました。

設計と印刷

設計には3DCADソフトのFusion360を使用して、作成したデータをFDM方式の3Dプリンターで印刷します。
1号では頭部をアルミ板で作りましたが、いかにも試作機といった風貌でした。3Dプリンターを利用することで曲面も多用することができ、手加工と比べてより精度の高いものができるはずです。

懐かしの1号のあたま。かわいい

設計の流れ

まず、頭部内部に収める必要のあるパーツをモデリングします。
次に、胴部の大きさから割り出した頭部の予想サイズに基づき、頭部外装のモデリングを行います。
並行して、全体が頭部外装の内側に収まるよう配置し、土台を設計します。

文字にするとこれだけですが、実際にはスカルプトモデリングのやり方を学び、外装を可愛くなるよう何度も手直ししたり、サーボを干渉を抑えつつ両軸化したり、OLEDパネル等の実物に寸法を合わせて調整したり、となかなか骨が折れました。
印刷可能で組み立てと動作時に各パーツが干渉しないデータを作る、というのも大変。

印刷時間と印刷制度のバランス

印刷サイズは縦横高さ18cmくらい。積層ピッチ0.2mmで10時間程度。1.5mmやそれ以下ならより積層を目立たなくできるはずだけれど、印刷時間が伸びれば予期しない原因で失敗するリスクも高くなるという経験則もあり。フィラメントも200gくらい使うので、できれば一発で決めたい。

失敗と調整

印刷した結果、大成功とは言い難い出力物ができあがりました。
表面は荒れ、ところどころ割れている箇所もあり、設計より少し歪んでいます。

原因は、形状を薄くしすぎたことによる強度不足だと思われます。PLAほどの硬さのないPETGを素材として使用したことも原因の一つでしょう。壁面の厚み1.2mmくらいで直径18cmほどの大きな球形を印刷したため、途中から出力物の自重やプリンターヘッドとの摩擦等で出力物が揺れてしまっていました。
形状を工夫するか、印刷速度を遅くするか、素材を変えるかなどすればもう少し上手く印刷できたかもしれません。
まぁなんとかなるだろうと思いそのまま進めます。

印刷中。

印刷完了。左耳部分は別パーツとして印刷します。

また、内部フレームでも一度失敗しました。
こちらは、サーボのトルクが重量に負けて、頭部を指定の角度で保持できないというものでした。修正が必要です。
トルクが不足するということは、重すぎるか、頭部の重心がサーボの可動軸から離れすぎている、ということです。
軽くするのは難しいので、サーボの位置を微調整しフレームを設計し直すことで、軸を重心に近づけ、角度保持できるようにしました。

塗装

積層痕を消したり、見た目をイメージに近づけたりするために塗装をします。

やすりがけ

全体にやすりをかけます。印刷時にできたダマを落としたり、積層痕を薄くしたり、塗料の定着を良くする目的です。

f:id:sizohu:20210416150256j:plain

プラサフ

プライマー&サーフェイサーでプラサフと呼ぶらしいです。
塗料の食いつきをよくする下地だそうなので、吹いておきます。

アクリル塗料で塗装

プラスチック用のアクリル塗料で色を乗せていきます。
下地の色がかなり出てしまうので、何度も重ねて塗り直します。

f:id:sizohu:20210416150144j:plain

組み立て

パーツの印刷が終わったら、いよいよ組み立てます。
うまくできるように設計し作っているのですが、実際に完成させるまでは不安が拭えません。
塗装前に一度仮組みをし、塗装後にセンサー等の取り付けと配線をして組み上げます。

↓仮組みしたところ

f:id:sizohu:20210416150826j:plain

f:id:sizohu:20210416150815j:plain

今回はここまで。

設計や印刷から塗装まで、一通りやってみると新しい発見や学びがありますね。
次は確実にもっとうまくできるはず。
100点の出来じゃなくても、まずは完成を目指し先に進みます。

つづく。