Help us understand the problem. What is going on with this article?

ロボットの作り方

More than 3 years have passed since last update.

この記事はUEQareer Advent Calendar 2016 16日目の記事です。

はじめに

みなさんはロボットを作りたいなと思ったことはありますか?
実はここ最近になってロボットを簡単に作ることができるようになってきました。

今回は入門の一つ手前、そもそもどのような考え方で作っていけばいいのかなどの考え方について書いていこうかと思います。

実はロボットを作ってみたかったんだよねという方
ソフトだけじゃなくてハードもやってみたいなという方。
魔術師として使い魔が欲しいなという方。
そういった方の一助となれば幸いです。

ただし我流ですのでご留意ください。
いろんな用語が出てきますが詳細はGoogle先生に尋ねてみてください。

ロボットの要素

そもそもロボットを構成している要素には何があるのでしょうか。
個人的には
1. エネルギー源・・・いわゆるバッテリーなどのこと。人間でいうところの脂肪肝臓
2. 頭脳・・・いわゆるマイコンなどのこと。人間でいうところの脳みそ
3. 感覚器・・・いわゆるセンサーなどのこと。人間でいうところの
4. 骨格・・・いわゆるフレームなどのこと。人間でいうところの
5. 駆動装置・・・いわゆるモーターなどのこと。人間でいうところの筋肉
これらのものがあるんじゃないかと考えています。

逆に言えばこれらの要素を用意してしまえばロボットが作れちゃうってことです。

エネルギー源

エネルギー源として用意すべきはバッテリー類です。
簡単に入手できるのは乾電池ですかね。簡単なロボットならそれだけで動きます。
よりパワフルな動作をさせるときはラジコン用のバッテリー(Li-PoとかLi-Feとか)を用意しましょう。
選ぶ際はマイコンやモーターなどが必要とする電圧電流、ロボット自体の稼働時間に注意しましょう。電池の容量はmAh、放電レートはCといった単位で表されています。

頭脳

頭脳として用意すべきはマイコンパソコンなどだと思います。
実際問題センサーやモーターなどの制御が行えるだけの賢さがあればいいので、お好みでどうぞ。私の場合はレジスタをいじるのがかっこいいと思っていたのでSHマイコンRXマイコンを使っていましたが、手を出しやすいのはArduinoNucleoなどのmbed系かなと思います。
マイコンは入出力に使えるピンに限りがあるので、ロボットの規模に合わせてマイコン自体の数ピン数の選択を行いましょう。
プログラミング言語は使うデバイスごとに使えるものを使うといったことになると思います。私の場合はCC++が多いです。最近はPythonでも開発しています。

感覚器

感覚器として用意すべきはセンサー類です。
これはロボットに知らせたい情報が何なのかを考えて選びましょう。
ロボット自体の姿勢を知らせたければ加速度センサージャイロセンサー、目標物までの位置や距離を知らせたければカメラ測距センサーといった感じです。
その他にも温度センサー匂いセンサー光センサーなどなどやりたいことに合わせて選びましょう。
ちなみにラジコン感覚でロボットを操る場合は無くても良かったりします。その場合のセンサーは人間の目や耳、鼻になります。

骨格

骨格はまぁロボットが形を保てればなんでもいいと思います。
だったり段ボールだったりもなかなかいいですし、もっと強度が欲しければABS樹脂だったりアルミだったりといった感じです。
デザインは全体の形使うマイコンやモーターなどの位置に注意しながら行うことになると思います。例としてロボットハンドを作る場合であれば、全体の形は人間の腕のようにしてロボットの根元にマイコンを、各関節にモーターを設置、といった感じです。
設計は紙に手描きからCADを使うまでいろいろありますが、やはり便利なのは3DCADソフトでしょう。学生であればAutodeskInventorFusion360が無料で使えたり、FreeCADというオープンソースのソフトがあったりします。設計の仕方自体はそれらのソフトのチュートリアルをこなせば身につくはずです。
実際に骨格を作るとなった場合は手加工加工業者に頼むCNCフライスを買う3Dプリンタで出力するなどの手段があります。(余談ですが3Dプリンタは楽に造形ができるので最近多用しています。出力代行業者もあるので気になる方は試してみるのもいいかと。)

駆動装置(アクチュエーター)

駆動装置の代表はモーターです。一口にモーターといっても無限回転させるのか角度指定で動かすのかと用途は様々です。無限回転させるだけならばいわゆるDCモーターを使うのがいいでしょう。角度指定をする場合はサーボモーターステッピングモーターが便利です。DCモーター + ロータリーエンコーダーでも可能です。
選ぶ際は必要となる回転数だったりトルクだったりを考慮しましょう。この両者はよくトレードオフの関係になっているのでどちらが必要なのかをよく考える必要があります。
考えたくない場合は市販されているキットを使いましょう。タミヤギヤボックスタイヤキャタピラなどのキットを出していたりするので利用するとよいかと。
モーターの駆動にはモータードライバというICがよく使われます。というのもモーターは結構電流を流さなければならないのですが、マイコンに直に接続するとマイコンの性能を超えて電流を流そうとして最悪の場合(マイコンが)死に至るからです。

その他

上述した要素以外にあると便利なものとしてはディスプレイスピーカーなどのロボットからの出力を表示するものです。ロボットとコミュニケーションをとりたい場合などには必要になってくると思います。

ロボットのつくりかた

では実際にロボットをどのように作るのか、それは
1. コンセプトを決める
2. デザインを起こす
3. 必要なパーツを見繕う
4. パーツとの兼ね合いを見ながら詳細にデザインする
5. デザインからフレームを設計
6. フレームを加工
7. 全パーツを組立
8. プログラミング
9. デバッグ
10. 完成
こんな感じです。

例として茶運びロボットを作るとすると

コンセプト

お茶を運んでくれるロボット

デザイン

駆動部分はキャタピラ
湯呑を載せる荷台がある
キッチンからデスクまでお茶を運んでもらう

パーツを見繕う

頭脳はArduinoで十分かな
キャタピラのキットを買ってこよう
モータードライバも必要かな
荷台には湯呑検知用に圧力センサを用意しよう
キッチンからデスク線を引いてライントレースをしてもらうのにフォトセンサーを買ってこよう
それぞれの接続に配線やらネジやらを買おう

再デザイン

それぞれパーツの寸法をデザインに反映
キャタピラユニットの上にArduinoは縦置きにして設置その隣に荷台、防水対策もしておく
フォトセンサはキャタピラの前側下向きに設置

フレーム設計

Arduino設置フレームはL形でネジ穴の位置を合わせておく
荷台はただのトレイでいいかな

フレーム加工

3Dプリンタ出力代行業者に設計データをぽい
あとはよろしく

組立

パーツをデザイン通りに組み立てるだけ。

プログラミング

Arduinoさんにフォトセンサーと圧力センサーの処理を書き込み
モータードライバへの出力も忘れずに
フォトセンサーの値をモータードライバへの出力に反映させてライントレースさせよう

デバッグ

湯呑検知の閾値を変更
モーターの動きが激しいから緩やかにしよう

完成

茶運びロボットが完成
快適なお茶ライフ

こんな感じです。

さいごに

今回の記事ではロボットの要素つくりかたについて書いてみました。
かなりざっくばらんに書いているので詳しい話は他に解説をしている方がいるのでGoogle先生に尋ねてみたください。
ただこんな感じで難しく考えなくてもロボットができるんだということを知ってもらえればいいかなと思います。
ではでは

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away