2014年3月17日月曜日

RAPIRO(ラピロ)

RAPIRO(ラピロ)というロボットを購入してみました。

ロボットというとディアゴスティーニの週刊ロビが有名かもしれません。ロビに比べてラピロは以下のような特徴があります。
  1. 安い(ラピロは約45,000円、ロビは全部で約150,000円)
  2. 組み立てが簡単(ラピロはモーター数が12軸、ロビは20軸程度らしい)
  3. シンプル(音声認識、会話、ゲーム機能など一切なし)、初期の動きも8種類のみ。
  4. Raspberry Piが搭載できる
  5. 勉強用(プログラミングが可能)
目的はロビと違っており、ロビがロボット自体を楽しむことに主眼が置かれているのに対して、ラピロは5番にあるように、ロボットを勉強することに主眼が置かれています。

さらに、Raspbery Piが搭載できたり、モータ制御にはオープンソースハードウェアであるArduinoが使用されていたり、パーツを3Dプリンタで作成出来たりと汎用性を最大限に考えられています。

悪く言えば、機能はロビに比べて非常に劣っていますが、勉強し、工夫することによっては色々なことができるようになる可能性を持ったものがラピロと言えるかもしれません。

ラピロの購入に際して


ラピロ自体はAmazonやスイッチサイエンスから購入が可能です。

組み立てにはNo.0,No.1のプラスドライバーが必要です。奥の細い所のネジ締めをするところが数カ所あるので、軸の長さが少し長めのがあった方が良いです。また少し力がいる所もあるので、グリップは太めの方がいいです。

また、単3電池5本が必要ですが、大きな電流が必要なようで、eneloopが奨励されています。私の場合通常の単3電池ではモーターが動かなかったため、下記の8個入りのeneloopを買い足しました。


ラピロを組み立ててみる


組み立て方法については、公式サイトに詳しく書かれているので、ざっくりと感想を含めて書いてみます。

中身全部は以下のようになっています。ガンダムなどのプラモデルより簡単そうに見えます。



まずは、モーターにシールを貼っていきます。大きいモータ6つ、小さいモーター6つにモーター側と端子側で同じ名前のシールを貼っていきます。大きい方には青いシールを小さい方にはピンクのシールを貼ります。なかなか綺麗に貼ることができず、いらついてしまいましたが、だいたい15分ぐらいです。


次は電池ボックスを組み立て、モータを接続し、軸の位置の初期化を行います。ここで公式サイトの説明ではモーターを全部繋いているのですが、とりあえず使った電池ではウィーンと音が鳴り続けて軸が動作する様子がなく、結局2つのモータずつをつないで初期化することにしました。上手く初期化されるなら一瞬で軸は動作します。抜き差しを何度もしたためか20分ぐらいここで、かけました。



ここまでが準備で、本体の組み立てに入ります。まずは腰にモーターを3つとりつけ、その後に、足を取り付けて足の中にモーターを2つ入れます。モーターのネジ締めは締め過ぎるはダメとのことですが、グラグラしなければOKと思っています。足の中のモーター取り付けは少し苦戦しました。モーターの軸を初期化した位置から回転させずに理想の傾きで取り付ける必要があるためですが、私が不器用なだけで普通は問題ないと思います。50分ぐらい掛けて、腰下が完成です。


次に、腰の上に胸を取り付け、肩のモータを取り付け、腕を取り付けます。いきなり写真が完成に近づくのは、作るのに夢中になって写真を撮り忘れたためです。腕の辺りは苦戦はしませんでしたが、後から後悔することが2点ありました。一つは肩パーツの取り付け位置。公式の説明では「水平にはめ込めない場合は、後ろ手になる側に傾く角度で」とあるのですが、意識して後ろ手になる側に傾く角度で取り付けたほうが良かったです。もう一点はモーターを取り付け間違えたところです。きちんと確認したつもりだったのですが・・・。結局腕を作りなおして時間ロスすることになりました。ここでは40分ぐらいの時間が掛かっています。



そして、Arduinoの胸部に基板を取り付け、その基板にモーターを接続、背中にバッテリーを接続して、胸部の蓋を閉めます。モーター線が多いので挟まないように胸部に収めるのが少し難しいです。完成が見えてきました。ここで先ほど失敗した腕の作り直しも含めて50分ぐらい掛かっています。


残りの頭部は難しい取り付けもなく、20分ぐらいで完成です。


不器用な私でもだいたい3時間ぐらいで組み立てることができました。失敗などがなければもっと早く組み立てられたと思います。

Arduino IDEを使ってラピロを動かす


パソコンとラピロをつないで、プログラムを書き込んだり、指示をすることでラピロが動きます。プログラムを書き込むにはArduino IDEというソフトウェア開発環境を使います。まずは、Arduino IDEをインストールします。

Fedoraの場合は以下でインストール完了です。ドライバはインストールする必要は無かったです。Ubuntuでもyumではなくapt-getコマンドを使えば同等と思われます。FedoraでArduino IDEを起動したときに、dialoutとlockの権限の追加を聞かれた場合には、Addで追加してログインしなおしてください。

$ sudo yum install arduino

Windowsの場合には、Arduinoのダウンロードページから、最新版のWindows Installerをダウンロードして、インストールします。

ラピロの背中にあるmicroUSB端子からUSBケーブルでパソコンに繋ぎます。スマホとパソコンを接続するときにケーブルがそのまま使用できます。つなぐとラピロの目が光ります。 ここでラピロのバッテリーの電源を入れるとラピロのモーターが初期位置に移動します。

Arduino IDEのメニューの「ツール」→「シリアルポート」→「/dev/ttyUSB0」にチェックを入れてください。次にメニューの「ファイル」→「開く」からダウンロードしたRAPIRO_ver0_0.inoを開きます(このとき、RAPIRO_ver0_0.inoはRAPIRO_ver0_0のフォルダ内にある必要があります)。


ここで、trim[MAXSN]の部分でモータの微調整をします。入力する値はDegreeの角度のようです。ラピロの腕や足などが綺麗に正しい位置になるように数値を変更します。正しい位置になったかどうか確認するには、メニューの「ファイル」→「マイコンボードに書き込む」を実行します(ツールバーの左から2つ目のボタンも同じ意味です)。コンパイルが行われ、ボードにプログラムが書かれ、ラピロのモーターの位置か変わります。

微調整が終わったらメニューの「ツール」→「シリアルモニタ」でモニタ画面を開きます。ここで#M8を入力して、「送信」ボタンを押してください。赤く目がひかり、左手を降る動作をすればOKです。


#M0で初期値に戻ります。#M1〜#M9まで動作がありますので、試してみてください。歩く動作もあります。

ところで、普通に立っているだけでもモーター音がジーと鳴り続けることがあるのが気になります。調整がうまくいっていないからだろうか・・・

Raspberry PIを接続する


ここから頭脳であるRaspberry Piを接続します。まずはRaspberry PiがRAPIROで使えるようにセットアップをします。 OSはRaspberry Piで一番一般的なRaspbianを入れます。OSの入れ方はここなどを参考にしてください。

Raspberry PiとラピロのArduinoとはUARTというシリアルポート(ピンはTXD,RXD)を使用します。このシリアルポートは初期状態ではコンソールでログインできるように設定されているので無効化して、ラピロのみに使えるようにします。

/boot/cmdline.txtが以下のように

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

なっているのを

dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait

と変更します。また、/etc/inittabにおいて、以下の

TO:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

なっている行を

#TO:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

のように先頭に#をつけて無効化します。

また、ラピロが無線で動作するように、WiFiの設定をしておきます。私が使用したWiFiアダプタはPLANEXの無線LAN USBアダプタ 150Mbps GW-USNANO2Aです。これはドライバのインストールも要らず楽です。また白色で小さいのでラピロの外観にも合うのではないかと思います。RAPIRO公式ではBT-Micro3H2Xが使われていたようでしたが、残念ながら売り切れでした。





Wifiの設定はデスクトップにある「Wifi Config」アイコンから起動するソフトで行えば簡単です。Scanボタンで無線LANアクセスポイントのリストが出るので、選んでパスワードの設定を行うのみです。



IPアドレスは自動で振られますが、大体同じ番号になるのでIPアドレスを控えておくと後で接続しやすいです。例えばIPアドレスが192.168.1.10であるとして今後説明をします。

設定が終わったら、一旦電源を切り、ラピロの頭の中にRaspberry Piをセットします。6本ケーブルの黒い部分を奥にして、一番手前左側の6本のピンに指します。ちなみにここから電源供給もされるようです。



これで、ラピロの電源をいれるとRaspberry Piも起動します。WiFiでネットワークが繋がっていれば、SSHでRaspberry Piに入れるため、遠隔操作ができるようになります。

Fedora等のLinuxからSSHでラピロのRaspberry Piにつなぐには以下のようにします。パスワードが聞かれますので初期のままであればraspberryと入れてください。WindowsではTera Term等のSSHクライアントソフトを使ってください。

$ ssh pi@192.168.1.10

動作をさせるためにRaspberry PiからラピロのArudinoにコマンドを送るにはシリアル通信をしますが、今回はcuコマンドを使ってみます。まずはcuコマンドをインストールします。

$ sudo apt-get install cu

cuコマンドを使ってArduinoに接続します。

$ cu -s 57600 -l /dev/ttyAMA0

Connectedと表示され、接続がされたら後は#M8など先ほどのようにコマンドを打ち込んでください。打ち込んだ文字が表示されないタイミングがありますが、気にしないでください。 cuコマンドを終了したい場合には、Enterキー,~(チルダ)キー、.(コンマ)キーを順に押してください。それとラピロの電源を切る前に、sudo haltのコマンドでRaspberry Piを終了しておいたほうが安全です。 これでラピロが遠隔操作できたと思います。Nexus5のようなAndroidスマホでは、ConnectBotというSSHクライアントがGoogle Playから無料でインストールできますので、Androidからラピロを操作することもできます。

ラピロの基本的な設定は以上です。この後はカメラを付けたり、センサーを付けたり、Raspberry Pi側やArduino側のプログラムを変えて動作を増やしたり、色々と楽しめるのではないかと思います。

0 件のコメント:

コメントを投稿