自動追尾型買い物カートの開発
6 年 A 組 川口 恭平

5 年 B 組 岡田 真太郎

5 年 B 組 中島 研人

4 年 B 組 西田 惇

4 年 C 組 樋口 幸太郎 4 年 C 組

前澤 俊哉

指導教諭 末谷 健志

１．要約
私たちは、独自に開発したモーションキャプチャシステムとモーターコントローラを組み合わせて、特定のマーカーを貼り付けた、人や車いすと一定の距離を保ちながら自動で追尾する買い物カートの製作に成功した。従来と異なり、この買い物カートはいちいち押す必要がなく、買い物中に常に両手が使えるというメリットがある。
キーワード モーションキャプチャ Web カメラ PIC DC モーター 買い物カート

２．研究の背景
スーパーでカートを押しながら買い物をみ合わせれば可能ではないかと思うようになり、研究を進めるようになった。

しているとき、カートの動作が非常に単純であることに気が付いた。買い物をしている自分の動きとカートとの動きは同じで、３．研究の目的
事前に登録したマーカーを人に貼り付け、自分とカートの距離は常にうでの長さであそのマーカーを自動で追尾する買い物カーる。そこで、買い物客との距離を一定に保トを開発する。このカートは、機能毎に大ちながら自動で追尾するカートを実現できまかに分けて次の３つの要素で構成される。

たら、買い物の最中にいちいちカートを押マーカーの三次元座標を取得するモーシす必要はないし、両手が常に使えて便利でョンキャプチャシステム、三次元座標情報あろうと考えるようになった。これらのメを解析して DC モーターを動かすパルス信

リットは、特に、車いすを利用している人号を生み出す制御システム、DC モーターにとっては大きいだろうと推測された。の動きを車輪に伝えるなどする駆動システ

以前から私たちは、1 台のカメラに映し出されたマーカーの三次元座標を取得する
モーションキャプチャシステムを研究するとともに、サーボモーターを利用したロボットの開発に取り組んできた。この自動追尾型買い物カートは、私たちが培ってきたハードウェアおよびソフトウェア技術を組ムである。
本レポートでは、それぞれの研究内容を報告したい。

図 1
研究１

モーションキャプチャシステムの開発
特定のパターンをもったマーカーの三次元座標を、精度よくリアルタイムに取得すどを検討し、製作する。
(2) 買い物かごを支える筐体を制作する。
システムを全て搭載し、荷物を置くことのできる筐体を検討し、製作する。

る。
研究２ 制御システムの開発

４．研究方法(1) 制御ハードウェア・ソフトウェアの開研究１

発

モーションキャプチャシステムの開発

モーターなど様々なデバイスを制御する

Ｃ言語を用いて、1 台の Web カメラに映ハードウェアの開発と、マーカーの三次元し出された映像を元に、マーカーの三次元座標から必要な動作を判断し、そのハード座標を精度よく、リアルタイムに取得するウェアに指示を出すソフトウェアを開発すシステムを開発する。

る。
(2) 制御ロジックの開発

その方法として、私たちは、“三点直角法”および“パターン認識法”を組み合わせたマーカーを一定の距離を保って追尾するものを採用した。これらの方法は、私たち動作ロジックおよび、カメラの視野からマが独自に開発したモーションキャプチャアーカーが外れたときに自動でマーカーを探ルゴリズムである。

し出す動作ロジックをそれぞれ開発する。

(1) 三点直角法

研究３ 駆動システムの開発(1) モーターとギアモーターの回転を車軸に伝えるギアな

三点直角法とは、図のように、直角二等辺三角形を形作るように配置された三つのマーカーを用いて、カメラから得られる見K = tanθ/ Sかけの二次元座標から、各マーカーの正確な三次元座標を求めるアルゴリズムである。

この K は正確なマーカーの Z 座標と組み合わせて、マーカーの見かけの二次元座標を正確な二次元座標に変換するための係数である。マーカーの見かけの二次元座標を
そ れ ぞ れ M0(X’0, Y’0), M1(X’1, Y’1),M2(X’2, Y’2)、正確な三次元座標をそれぞれ
M0(X0, Y0，Z0), M1(X1, Y1，Z1), M2(X2,Y2，Z2)とする。

図 2

M0M1 = L, M0M2 = L から

三つのマーカーM0,M1,M2 のうち、直角部分を形作っているマーカーを M0、それ( X1 - X0 ) 2 + ( Y1 - Y0 ) 2 + ( Z1 – Z0 ) 2 = L 2 ①以外のマーカーをそれぞれ M1、M2 とする。

( X2 - X0 ) 2 + ( Y2 - Y0 ) 2 + ( Z2 – Z0 ) 2 = L 2 ②

二等辺三角形であるから、M0M1、M0M2が成り立つ。

は等しく、またその長さを定数 L とする。
また、角 M1M0M2 が直角だから、ベクトルの内積が 0 になることから( X1 - X0 )( X2 - X0 ) + ( Y1 - Y0 )( Y2 - Y0 )+ ( Z1 - Z0 )( Z2 - Z0 ) = 0③が成り立つ。
一方、X0 は、定数 K および Z0,X’0 を用いると、次の関係式が成り立つ。
X0 = K * Z0 * X’0

他の Y0，X1，Y1，X2，Y2 も同様に求めることができるため、①,②,③はそれぞれ次のように書き換えられる。
①に関して
図 3

( X’1 * Z1 * K – X’0 * Z0 * K ) 2 + ( Y’1 * Z1 * K –こ

Y’0 * Z0 * K ) 2 + ( Z1 – Z0 ) 2 = L2

こで、カメラの固有定数である水平画角の②に関して半分θとカメラの横解像度 S を用いて、定( X’2 * Z2 * K – X’0 * Z0 * K ) 2 + ( Y’2 * Z2 * K –数 K を定義する。

Y’0 * Z0 * K ) 2 + ( Z2 – Z0 ) 2 = L2

③に関してを考えた。それがパターン認識法である。

( X’1 * Z1 * K - X’0 * Z0 * K )( X’2 * Z2 * K - X’0 *これは、図のようなパターンをつけた正Z0 * K ) +( Y’1 * Z1 * K - Y’0 * Z0 * K )( Y’2 * Z2 *方形のマーカーを用いることにより、形状

K - Y’0 * Z0 * K ) + ( Z1 - Z0 )( Z2 - Z0 ) = 0とパターンからノイズや他マーカーとの認識分けを行い、マーカーの４隅の座標を求最後の３つの方程式をよく見ると、未知めるアルゴリズムである。

数は Z0,Z1,Z2 の３つであるため、すべてのこれにより、ノイズを大幅にカットでき未知数を求めることが論理的に可能である。

るとともに、複数のマーカーがカメラに写

さらに、これらの Z 値から、全てのマーカった場合でも、特定のパターンのマーカーーの正確な三次元座標を求めることができのみをキャプチャすることが期待される。

る。
実際の作業としては、カメラからの映像から得られる、各マーカーの見かけ上の二次元座標をこれらの方程式に代入し、未知数を求めて、マーカーの三次元座標を取得することになる。
方程式の解を求める方法としては、二分法を用いて近似解を得る手法を採用した。

図 4

これらの一連の作業をソフトウェア上で、次々とカメラから送られてくる画像に対しまず、正方形マーカーの４隅の座標を得て行い、マーカーの三次元座標をリアルタる手順を以下に示す。

イムに取得する。

① 大まかに画像を走査し、マーカーが存在すると思われる二次元座標を見つける。

(2) パターン認識法② 見つけた二次元座標から任意の方向へカメラを用いてモーションキャプチャを走査していき、色が大幅に変わるところ、行った場合、その精度を大きく左右するのつまりマーカーと背景との境界を見つがノイズ処理である。マーカーを色の違いける。そこから境界線を追跡していき、のみで認識した場合、マーカーと同じ色を境界の二次元座標を記録していく。

もつ全ての物体がノイズとなる。ノイズが③ 記録された二次元座標を順に三つずつ入ると、マーカーの座標を正確に得ること調べていくと、その三つの座標が成す角ができなくなり、当然、買い物カートは、度が一定以下の座標と、そうでない座標あさっての方向に動いてしまう。カラフルとに分けることができる。

なパッケージの商品で満ちあふれているス④ 前者を辺とみなし、後者を角とみなす。

ーパーにおける実用化を考えた場合、このまた、連続する角は一つの角と見なす。

問題の解決は急務であった。

すると一つの境界線についてある多角私たちは、これを根本的に解決する方法形を得ることができる。

⑤ 得た多角形が正方形でなかった場合は、

研究２

制御システムの開発

マーカーではないと判断し、正方形を形(1) 制御ハードウェア・ソフトウェアの開発

作る境界線が見つかるまでは、①から④モーションキャプチャで取得したマーカの作業を繰り返す。

ーの三次元座標を解析し、動作に必要な命⑥ 最後に、見つけた４つの辺の座標群から令をモーターコントローラ基盤にシリアル

最小自乗法を用いて４つの直線方程式

通 信 する ソフ トウ ェアを 、 VisualStudioを求め、それらの四つの交点、すなわち2005 を用いて開発する。この開発言語は、正方形を形作る４隅の座標を求める。

シリアル通信する際のパッケージが標準装備されているなど、開発上のメリットが大きい。
シリアル通信で出力されるデータプロト
コルは、次のようなものである。

図 6
図 5

RS232C は一対一の通信しかできないため、多対多の通信が可能である RS485 を採用し以上の手順で得られた４隅の座標から、三点直角法を使ってマーカーの三次元座標を計算することができる。

た。
また、シリアル通信で送られてきたデータを元に、モーターなどを制御する信号を生成するハードウェアコントローラを PIC

次に、マーカーのパターンを取得する手により開発する。PIC とは、Microchip 社が順について以下に示す。

製造開発しているマイコンで、内部にプロ① 先の手順で画像から抜き出したマーカグラムを書き込むことにより様々な周辺機ーを格子に分割する。
② 格子の各点の色を求め、マーカー内のパターンを得る。
③ 登録したパターンと照合する。

器を制御できるものである。
このコントローラの概略図は次のようなものである。通信および全体を制御する PICに、DC モーターやサーボモーターなどを制御する PIC がぶら下がる形になっている。

これにより、複数のマーカーがカメラにこれにより、信号処理の負荷が分散され、写った場合でも、特定のパターンをもったマーカーの動きとカートの動きの間に生じマーカーのみをキャプチャすることが可能る時間的な遅れ（ディレイ）を軽減することなる。とをねらった。

② マーカー探査モード
カメラの視野からマーカーが外れたとき、自動でマーカーを検索する動きのロジック
は、次のようなものを考えた。これは人間が物を見失ったときに首を左右に振って探す、という動作から考えついた動きである。
このロジックは、制御ソフトに組み込んだ。

図 ７
また、モータードライブ IC の出力電流が小さいという問題については、FET を用いた H ブリッジ制御回路を採用した。
(2) 制御ロジックの開発① 通常追尾モード
マーカーと一定の距離を保って追尾する
動きのロジックは次のようなものを考えた。
このロジックは、制御ソフトに組み込んだ。

図 ９

研究３駆動システムの開発(1) モーターとギア自動追尾型カートの速度とトルクを考える際に、モーターと車輪をつなぐギヤ比の計算が必要である。
カートの最大速度としては、買い物という状況から判断して、人が歩く速度の半分つまり、50cm/sec が必要だろうと考えた。
タイヤの直径とモーターの回転数を計測
図 ８

した結果、次のようになった。
タイヤの直径 ＝モーターの回転数

7.5cm＝ 2.7 回/sec

モーターとタイヤの回転数を一致させた

また、このソフトウェアを実行している

場合、カートの速度は、次のようになる。

ノート PC（CPU;Core2Duo1.8GHz）におカートの速度 ＝7.5×π×2.7

いては、平均 20fps の処理速度を得た。

＝63.585(cm/sec)
これは必要な速度を満たしている。従って、特に速度を変換する必要は無いため、ギヤ比は１：１に決めた。

(2) パターン認識法
カメラの視野にマーカーと同色の大きなノイズが混じった場合でも、マーカーのみをうまく抜き出すことができた。

(2) 買い物かごを支える筐体の制作
DC モーターとタイヤそれぞれにギヤを取り付け駆動させることで、モーターの軸への負荷を減らし、重いものを乗せてもカートの移動ができるように工夫する。さらに、この方法により、モーターとタイヤを直付けするよりも、タイヤの空回りが少な

図 11

くなることが期待される。

また、マーカーのパターンを読み取るこ

５．研究結果とによって、複数のマーカーを識別するこ

研究１ モーションキャプチャの開発とができた。

(1) 三点直角法
1 台のカメラに映し出された 3 つのマーカーの三次元座標を得ることができた。
図は、3 つのマーカーを通る平面の法線ベクトルを表示している。それぞれのマーカーの正確な三次元座標を取得できていることが分かるであろう。

・
図 12
さらに、カメラからマーカーが少しはずれてしまい、角が少々欠けたとしても、うまく座標を抜き出すことができた。

図 10

図 13

研究２ 制御システムの開発

さらに、機能を分散させたことによって、(1) 制御ソフトウェア・ハードウェアの開発

複数の分散された最大 32 基の処理ユニッ制作した制御ソフトウェアは、次のようトが同時並行的に処理を行うことができる。になった。

このため、モーター制御だけでなく、センサ入力、液晶表示から画像認識、音声認識などのモジュールを“信号線 2 本をつなげるだけ”で容易に追加することができるため、新規開発の場面で短期間にロボット等を設計、開発することが可能となった。
(2) 制御ロジックの開発① 通常追尾モード
図 14

また、制作したモーターコントローラは、動作させた結果、マーカーがカメラの視野内にあれば、それと一定の距離を保ってカートをスムーズに動作させることができた。

次のようになった。

② マーカー探査モード動作させた結果、画面外に出たマーカーを自動的に探査し、再びとらえる時もあった。しかし、その頻度は低かった。
研究３駆動システムの開発(1) モーターとギア作成したギアおよび車輪部分は、次のよ
図 15うになった。

特に、モーターコントローラでは、複数の PIC を階層的に用いることによって、機能の分散を図った。実際に動かしてみると、一つの PIC で構築した場合に比べて、デー
タ通信の割り込み処理の内容が少なくなり、サーボモーターのジッタの問題が解決できた。
また DC モーター制御では、FET を用いた H ブリッジ制御回路によって電流不足の問題は解決された。

図 16

山が大きなギアを採用した結果、モータれにより、スーパーの中で、複数台の自動ーが空転する頻度が減り、確実にカートを追尾型買い物カートを走らせることが可能動作させることができた。さらに、摩耗をになった。

減らすことに成功した。

(2) 制御システムに関して(2) 筐体の製作

複数の PIC に処理を分散させることによ本体のフレームと駆動部を組み立てた結果次のようになった。って、安定してモーターを制御できるシステムを構築できた。また、このシステムにより、マーカーとカートの動きの時間差（ディレイ）を短くすることに成功した。
しかし、カメラがマーカーを見失ったときのカートの動作アルゴリズムにはまだ改良の必要がある。カメラの左右からはずれる場合以外にも、ものの陰になってしまう場合など、マーカーを見失う状況には様々あり、単純にカメラを左右に振っただけでは、マーカーを見つけ出すことは難しいこ

図 17
動作に必要な機材を全て搭載したところ、とが分かった。
(3) 駆動システムに関して想定値の 0.6m/s の速度で動作した。筐体の５kg 程度の負荷をかけた状態で、0.5m/s上に５kg 程度の荷物を乗せて動かすと、速の速度を得た。これは、十分に実用に耐え度は 0.5m/s になった。

うる速度である。

しかし、これ以上の負荷をかけると、重しかし、これ以上負荷をかけて動作させ心が上になりすぎて不安定になったり、ギるには難しく、さらに強力なモーターを採アが外れるなどした。

用したり、重心の位置を考慮した筐体を再検討する必要があることが分かった。

６．考察(1) モーションキャプチャに関して

７．まとめと今後の課題

私たちが独自に開発した三点直角法とパ

私たちは、特定のマーカーをつけた人まターン認識法の組み合わせによって、ノイ

たは車いすと、一定の距離を保って自動でズに強い、カメラ 1 台でマーカーの正確な追尾する買い物カートを開発するという研三次元座標を得るモーションキャプチャシ

究目標をある程度達成できたと考える。

ステムを開発することに成功した。
また、複数のマーカーが混在した場合でも、確実に特定のパターンをもったマーカーのみをキャプチャすることができた。こ

現時点において、カートに搭載されたカメラがマーカーをとらえているときは、比較的スムーズに目的の動作が行える。
しかし、カメラがマーカーを見失ったと

き、自動でマーカーを探査できるには至っ特徴

特定のマーカーを一定ていない。この他にも、最大積載量の問題の距離を保って自動でなど、いくつかの課題が明らかになった。

追尾する。

今後は、実用化に向けて、ソフトウェアおよびハードウェア両面にわたって、さら② 自動追尾型買い物カートの外観なる研究をチームで進めていきたい。

８．謝辞
この研究を進めるに当たり、ハードウェ
ア技術やプログラミング技術などに関して、私たちの研究班の顧問である物理の末谷先生には数々のご指導をいただきました。また、児玉先生には、工作技術を教えて頂きました。さらに、数学の川口先生には、近似計算の方法などを教えて頂きました。先生方に深く感謝します。
また、予算面などで、植野前校長先生、前川校長先生、吉田信也副校長先生に多大なご協力をいただきました。
お世話になった先生方、大変ありがとうございました。

９．参考文献[1]「Effective C++」、スコット・メイヤー
ズ著、ピアソン・エデュケーション(2006)③ コントローラ基板
MPU ：PIC18F8720

10．資料

動作電源：PIC9V① 自動追尾型買い物カートのスペック

外部 I/F：RS485*1、RS232C*1

最大速度0.5m/s最大搭載質量5kg

駆動部分

30W DC モーター×2

モ ー シ ョ ン キ 光学式、三次元座標取ャプチャ得、複数マーカーの識別が可能
CPU

ノート PC×2

カメラ

Web カメラ×1