みかんでも動くロボットの開発

１

３年 A 組樋口幸太郎

３年 B 組西田惇

３年 C 組

前澤俊哉

４年 A 組

中嶋研人

４年 A 組

岡田慎太郎

指導教論

末谷健志

要約

私たちは、中学生と高校生の共同研究として、モーションキャプチャシステムをコントローラとして採用した遠隔操作可能なロボットを開発した。通信に LAN ネットワークを利用しているため、原理的には地球の裏側からでも操作が可能であり、ロボットのカメラがとらえた映像を、離れた PC でも閲覧できることなどが、特徴として挙げられる。また、任意の物体をコントローラとすることができるため、このロボットはみかんでも操作が可能である。
コントローラに用いた自作したモーションキャプチャシステムは、USB 接続のカメラを利用して、人間や物体の動きを記録できる。このシステムの特徴は、一台のカメラで物体の 3 次元座標を取得することが可能な点である。これを利用すると、3 次元空間を操作できる新しいマウスを実現することができるなど、様々な応用が可能である。
このモーションキャプチャシステムに加えて、無線 LAN や PC、PIC、サーボモータなどを組み合わせ、自前で“０から”ロボットを作り上げた。
キーワード

２

ロボット、LAN、モーションキャプチャ、PIC、Web カメラ

研究の背景

キットを組み立てて動かすロボットが多数市販されるようになったが、その内部の仕組みを知ることは難しい。そこで私達は、有線リモコンで操作するロボットや二足歩行ロボットを０から製作してきたが、遠隔操作をするにはコードを延長するしかなかった。そこで、無線 LAN やシリアル通信を使うことによって離れた位置からロボットを操作できるのではないかと思うに至った。

３

研究の目的

無線 LAN やシリアル通信を使うことによって離れた位置から直感的に操作できるというロボットを実現するためには、いくつかの課題を解決する必要があった。そのうちの３つをここで示す。（図１）

研究Ⅰ
ユーザーから入力されたサーボモータの角度を、LAN ネットワークを経由して、ロボットと通信する。
研究Ⅱ
研究Ⅰで送られてきた命令を読み取って、ロボットのサーボモータを制御するシステムを構築する。
研究Ⅲ
ロボットを操作するためのモーションキャプチャシステムの開発を行う。

＜図１：研究＞

４研究内容(1) 概要と仮説＜研究Ⅰ

通信方法の研究＞① 概要＜研究Ⅱその１二足歩行ロボットの開発＞① 概要

ロボットのサーボモータを動かすためのサーボモータを制御する信号を生成する

Text ファイルの通信を Windows の共有フために、PIC を用いた。PIC とは、Microchip

ォルダ機能を用いて行った。これは、ネッTechnology 社が製造開発しているマイクロトワークプログラムより簡単な方法である。

コンピュータである。PC からプログラムが② 仮説可能で、非常に安価であるため、現在日本

Windows の共有フォルダ機能を用いて、で普及しているマイコンの一つである。今ロボットのサーボモータを動かすための回は 16F873A という PIC を用いた。
（図２）

Text ファイルを通信できる。

給が不安定になりプログラムがストップしてしまうと考えたからである。供給を安定して行うため 9Ｖ電池からの電圧を下げ、PIC が必要とする 5Ｖを供給している。また、外部ハードウェア、ソフトウェアと通信するためにシリアル通信用のレベル変換 IC＜図２：PIC マイコン＞また、サーボモータ(図３)とは、DC モータと違い、電圧と制御信号を与えることにを搭載している。これにより、PC との通信や他の機器との通信が可能になった。
② 仮説

よって正確に回転位置を決めることができ

PIC マイコンを用いて、サーボモータをるモータである。信号は、PWM と呼ばれる制御し、二足歩行型ロボットを製作できる。

信号を用いる。これは図４のようなパルス信号になっており、ON の時間を変化させる＜研究Ⅱその２ことで、モータの回転位置を定められる。

① 概要

PC と PIC の通信＞

PIC でサーボモータを制御する技術を応用し、PC と PIC をリンクさせ、クライアン
ト PC から LAN 経由で送られてきたテキストデータを、サーバ PC を経由して PIC に転送し、サーボモータの制御を行った。
（図５）＜図３：サーボモータ＞＜＞＜図５：通信＞＜図４：パルス信号＞② 仮説

サーボモータを制御する信号を生成する

ネットワークを利用してサーボモータユニットをサーボモータ用コントローラとの制御信号を送受信し、ロボットアームを呼ぶ。製作したコントローラはサーボ用の制御できる。

電源と PIC 用の電源と、分けてある。なぜなら、電源を一つにまとめた場合、モータ＜研究Ⅲ

は大電流を必要とするため PIC への電源供① 概要

モーションキャプチャの開発＞

私たちが開発したモーションキャプチャ
システムは、図６で示すような処理を行う（２）研究方法＜研究Ⅰ

通信方法の研究＞

ことで、物体の三次元座標を取得すること実際にテキストファイルを通信するプロができる。カメラに映し出された物体の色グラムを Borland C++Builder5 という開発情報をフィルタにかけ、私たちが”重心法”環境を用いて作成した。プログラムの手順や”弦法”などと称する方法を用いて物体としては、以下の通りである。（図７）の中心を計算する。このとき、物体が球に近似できる場合、球の半径を割り出すことができる。得られた半径は、カメラからの距離に逆比例すると考えられるので、奥行きを求めることができるのである。
ロボットのサーボモータを動かすためには、軸を回転させる角度を教えなければならない。その角度をモーションキャプチャ＜図７：通信＞

で得た物体の座標情報で与えることによって、物体の動きとロボットの動きをリンクさせることができるのではないかと考えた。

ⅰ

ネットワーク上のテキストファイルにPC１で入力されたデータを次々に保存していく。
ⅱ

ネットワーク上に保存されたテキストファイルを PC２で連続的に読み込む。
＜研究Ⅱその１二足歩行ロボットの開発＞
二足歩行ロボットを実際に製作し、歩行させた。歩行方法は、次に示す手順である。
ロボットの自由度が低いため、人間の歩きとはかなり違った歩き方をする。

＜図６：モーションキャプチャ＞② 仮説
モーションキャプチャシステムを用いて人間や物体の動きでロボットの動きをコントロールすることができる。

１つの足に、２つのサーボモータを配置した。

ⅰ

右足首を傾けるの数値から、数字の数値に変換する。次に、PIC に対して、①ID②数値の順にシリアルケーブルを経由して送信する。PIC は ID ごとに送られてきた数値を PWM に変換し、サーボモータを制御する。データ例を下記に示す。（図８）ⅱ

右足の太ももを回す＜図８：データ例＞＜研究Ⅲ

モーションキャプチャの開発＞

モーションキャプチャシステムによって取得した物体の三次元座標を、x 座標をロボットカメラの水平軸を制御するサーボモⅲ

右足の足首を元の位置に戻す

ータ、y 座標をロボットカメラの鉛直軸を制御するサーボモータ、z 座標（奥行き）をロボットの前進または後進を制御する DCモータにそれぞれ対応させた。
(3)研究の結果＜研究Ⅰ

通信方法の研究＞

図９のようなアプリケーションを開発す※右足も同様に行う。
※全体として、がに股歩行となる。

ることができた。
しかし、実験中にエラーが頻発した。これは、一つのファイルに対して保存と読み＜研究Ⅱその２

PC と PIC の通信＞込みを同時に行うため、命令が衝突するかクライアント PC から、サーバ PC のファらである。そこで、図１０のようなエラー

イルにサーボモータの ID(A～I)と数値をテ処理を行った。エラーが発生した場合、保キストに書き込み、保存する（これには、存・読み込みをする時間を与え、もう一度フォルダ共有機能を利用）。保存したテキス

プログラムの最初にもどって保存・読み込

トファイルをサーバ PC が、VB2005 で制作みをやり直す、というようにした。

したソフトで読み込み、ID ごとのテキスト

＜研究Ⅱその１二足歩行ロボットの開発＞
PIC でサーボモータを制御し、二足歩行ロボットを制御することができた（図１２）。
PIC用電源入力端子

PIC16F873A＜図９：アプリケーション＞―――――――――――――――――――
label1:// エラー処理
エラー処理
発振子

サーボ用電源入力

try {// エラー処理
エラー処理の処理の対象＜図１２：制作したコントロール部＞}
二足歩行ロボット製作を成功させて気づcatch(…) {Sleep(10);// 1/100 秒待つ
秒待ついたことであるが、歩行を実現するために

goto label1;// label1 へは、サーボモータに送る信号の微調整が頻}繁に必要であることが分かった。制作した―――――――――――――――――――

ロボット（図１３）の仕様を以下に示す（図＜図１０：エラー処理＞

１４）。

また、研究Ⅰを応用させて USB カメラの画像の通信も行うことができた。カメラの映像の保存は 0.１秒に一回の割合で行い、その結果、読み込み側の PC でリアルタイムの映像を見ることができるようになった。
（図１１）＜図１３：二足歩行ロボット＞―――――――――――――――――――CPU：

PIC16F873A

10MHz

プログラム：

自作（アセンブリ言語）

動作電源 ：

サーボ 6V,

PIC9V

外部 I/F ：シリアル通信(RS232C)×1
自由度構成 ：右足 2、左足 2製作費用 ：10000 円―――――――――――――――――――＜図１１：アプリケーション＞＜図１４：仕様＞

しかし、制御信号を微調整するためには、えてみると、PC の CPU はクロック数がプログラム上で変更し、PIC をコントロー

1GHz~2GHz と非常に高く、プログラム１命ラーから抜き差ししなければならないこと

令を実行する時間が極めて短い。しかし、がわかった。

PIC のクロック数は 10MHz であり、PC のク

そこで、PC と PIC をシリアルケーブルでロック数と比べると非常に低速である。こ接続し、PC で数値を変えながら、サーボモのため PIC が、PC から毎回送られてくるデータの位置を決めると効率が上がるのではータの間隔の速さについていけず、異常なないかと考えた。

PWM(電気信号)をサーボモータに対して送そこで、PIC-PC 通信を成功させ、PC で数信していると考えられる。

値を変更、それと同時にサーボモータが動

そこで、PC が PIC に毎回送信するデータくという環境を整え、歩行モーション制作の間隔をさらにあけた。このことでサーボの効率を向上させた。

モータの激しい振動は解消された。

＜研究Ⅱその２

PC と PIC の通信＞

＜研究Ⅲ

モーションキャプチャの開発＞

ネットワークを利用してサーボモータモーションキャプチャシステムのカメラの制御信号を送受信し、ロボットアームの前でみかんなどの物体を動かすことによを制御できた。って、ロボットの動きをコントロールする

図１５のソフトは VisualBasic2005 でことができた。

制作した。100 ミリ秒ごとに共有フォル
ダにあるリッチテキストファイルを読み５

考察込み、各 ID の数値を割り出し、PIC にサ制作したロボットは、モーションキャプーボモータごとの ID と数値をシリアルチャを利用することによって、従来のキーデータとして送信する。

ボードやマウスでロボットを制御するよりも、ずっと直感的で分かりやすい操作性がある。
しかもロボットとの通信は、共有フォルダ機能を利用したシンプルなファイル交換方式であるため、メンテナンスや機能の拡張も非常に楽であることが分かった。
つまり、“０から”制作したロボットは、＜図１５：ソフト＞

ポート操作性と機能の拡張にすぐれているといえる。

しかし、PIC に対して連続して同じ数値を送信した時、サーボモータが激しく振動することが分かった。
サーボモータが激しく振動した原因を考６

まとめと今後の課題

これらのシステムは、すでに開発に取り現在は、今までの研究成果をもとにして、かかっているが、手持ちのノート PC が重

図１６のようなロボットを実現することがすぎてロボットに搭載できないなどの問題できた。このロボットは、物体や人間の動が生じている。駆動系に強力なモータを用きでコントロールでき、無線で遠隔操作がいたり、小型で軽量なノート PC などを利できる。また、ロボットに搭載されたカメ用したりして、近い将来、実現させたいとラの映像を離れた PC にリアルタイムで送考えている。

ることができるなどの特徴を備える。

＜図１７＞
＜図１６＞

７

謝辞

今後は、図１７に示すように、ロボット

末谷先生には、理論面や技術面で大きなのカメラの映像をヘッドマウントディスプバックアップをいただきました。児玉先生

レイに映し出し、ロボットのカメラの動きには、技術指導や電気回路に関して様々なを、ヘッドマウントディスプレイを被った相談にのってくださいました。さらに、予人の頭の動きに合わせるなどして、より操算面で、植野校長先生や吉田信也先生に多作性の良いロボットを開発したいと思って大なご協力をいただきました。

いる。
また、モーションキャプチャシステムをロボットに搭載した PC に搭載することにより、完全に自立運動することのできるロボットを構築したいとも考えている。

お世話になった方々、大変ありがとうございました。