(57)【要約】【課題】球体ロータを自由に回転できるようにする。【解決手段】球体ロータを回転させるときは、球体ロータのグレースケールの画像を２値化し（ステップＳ１０３）、球体ロータの突極に相当する画像をマーカとして抽出し、その面積重心位置から３次元座標を算出する（ステップＳ１０４）。球体画像の中心に最も近い基準マーカとその周囲の周回マーカを抽出し、それらの幾何学的な関係から配置パターンとマーカの種類を識別する（ステップＳ１０５）。回転中は画像中のマーカのナンバー及び座標を参照して、ナンバーを継承し、又は新たにナンバーリングを行ってマーカを特定し（ステップＳ１０６）、球体ロータの回転情報を算出する（ステップＳ１０７）。【選択図】図６
2008220052.tif 000002
【特許請求の範囲】
【請求項１】
所定の球体に内接する多面体を構成する多角形の平面の頂点に相当する位置と、隣り合う２つの前記頂点を結ぶ前記多角形の辺の中点に相当する位置とのそれぞれに突極を配設した球体ロータと、
コイルを有するステータ極が複数配設され、前記球体ロータの一部を覆うステータと、
前記ステータから露出する前記球体ロータに向けて配置され、前記球体ロータの複数の前記突極を撮像可能な撮像装置と、
前記撮像装置で取得した画像に含まれる前記突極の画像の位置及び配置に基づいて、前記ステータ側に配置された前記球体ロータの前記突極の位置を特定し、その前記突極を励磁するように前記ステータへの通電制御をする制御装置と、
を有することを特徴とする多自由度電動機。
【請求項２】
前記制御装置は、前記撮像装置が撮像した前記球体ロータの画像中心に最も近い前記突極を基準マーカとし、前記基準マーカの周囲にある他の前記突極を周回マーカとし、隣り合う２つの前記周回マーカが前記基準マーカとの間になす角度を算出して前記突極の配置を分類することを特徴とする請求項１に記載の多自由度電動機。
【請求項３】
前記制御装置は、前記撮像装置が撮像した前記球体ロータの画像中心に最も近い前記突極に付与したナンバーと、そのナンバーの前記突極の周囲に配置される他の前記突極のナンバーとを関連付けたテーブルを有することを特徴とする請求項１又は請求項２に記載の多自由度電動機。
【請求項４】
所定の球体に内接する多面体を構成する多角形の平面の頂点に相当する位置と、隣り合う２つの前記頂点を結ぶ前記多角形の辺の中点に相当する位置とのそれぞれに突極を配設した多自由度電動機の回転制御方法であって、
前記ステータから露出する球体ロータに向けて配置された撮像装置で前記球体ロータの複数の前記突極を含む画像を撮像するステップと、
撮像した画像データから前記突極を示すマーカを抽出し、その面積重心位置を算出するステップと、
前記画像中で球体ロータの中心に最も近い前記突極を基準マーカとし、前記基準マーカの周囲にある他の前記突極を周回マーカとし、隣り合う２つの前記周回マーカが前記基準マーカとの間になす角度を算出して前記突極の配置を分類し、前記基準マーカと前記周回マーカが多角形の頂点の位置にあるマーカであるのか、中点の位置にあるマーカであるのかを特定するステップと、
前記基準マーカにナンバーを付与し、このナンバーを基準にして他の前記突極にナンバーを付与してステータに面する前記突極の位置を特定するステップと、
特定した前記突極を励磁するように前記ステータへの通電パターンを決定するステップと、
を有することを特徴とする多自由度電動機の回転制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、球体ロータを有する多自由度電動機、多自由度電動機の回転制御方法に関する。
【背景技術】
【０００２】
１本の回転軸を有するモータでは、ホール素子やロータリーエンコーダを用いてロータの回転位置を検出することが知られている。ところが、球体状のロータをステータに自由に回転自在に支持したモータでは、シャフトを有しないので、前記したような位置検出装置を使用することはできない。
例えば、特許文献１に開示されているモータでは、球体ロータに歪ゲージを取り付けた屈曲素子を２つ用い、球体ロータの回転位置を検出している。屈曲素子は、屈曲方向が互いに直交するように端部同士を接続され、球体ロータの内部に収容される。屈曲端子の一方の端部は、球体ロータの内面に固定され、他端は球体ロータ外の静止部分に固定される。球体ロータが回転すると、屈曲素子が屈曲して歪ゲージから信号が出力される。この信号を処理することで球体ロータの回転角度が検出される。
【特許文献１】特開平６−２１０５８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の回転位置検出方法では、球体ロータが回転可能な範囲が屈曲素子が変形可能な範囲に制限されてしまうので、球体ロータを自由に回転させることができなかった。
この発明は、このような事情に鑑みてなされたものであり、球体ロータを自由に回転できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００４】
上記の課題を解決する本発明の請求項１に係る発明は、所定の球体に内接する多面体を構成する多角形の平面の頂点に相当する位置と、隣り合う２つの前記頂点を結ぶ前記多角形の辺の中点に相当する位置とのそれぞれに突極を配設した球体ロータと、コイルを有するステータ極が複数配設され、前記球体ロータの一部を覆うステータと、前記ステータから露出する前記球体ロータに向けて配置され、前記球体ロータの複数の前記突極を撮像可能な撮像装置と、前記撮像装置で取得した画像に含まれる前記突極の画像の位置及び配置に基づいて、前記ステータ側に配置された前記球体ロータの前記突極の位置を特定し、その前記突極を励磁するように前記ステータへの通電制御をする制御装置と、を有することを特徴とする多自由度電動機とした。
この多自由度電動機は、制御装置は、撮像装置から取り込んだ球体ロータの画像を画像処理して突極を特定する。突極の配置は予め定まっているので、ステータ側の突極の位置を算出し、回転方向に合わせて必要な突極を励磁する。
【０００５】
請求項２に係る発明は、請求項１に記載の多自由度電動機において、前記制御装置は、前記撮像装置が撮像した前記球体ロータの画像中心に最も近い前記突極を基準マーカとし、前記基準マーカの周囲にある他の前記突極を周回マーカとし、隣り合う２つの前記周回マーカが前記基準マーカとの間になす角度を算出して前記突極の配置を分類することを特徴とする。
この多自由度電動機は、基準マーカと周回マーカの配置を調べることで、突極の配置パターンを分類する。マーカの配置パターンを分類することで、球体ロータ側の突極を特定し易くなる。
【０００６】
請求項３に係る発明は、請求項１又は請求項２に記載の多自由度電動機において、前記制御装置は、前記撮像装置が撮像した前記球体ロータの画像中心に最も近い前記突極に付与したナンバーと、そのナンバーの前記突極の周囲に配置される他の前記突極のナンバーとを関連付けたテーブルを有することを特徴とする。
この多自由度電動機は、球体ロータが回転したときには、同じ突極についてはナンバーを承継することで球体ロータの位置や回転情報を算出し易くなる。
【０００７】
請求項４に係る発明は、所定の球体に内接する多面体を構成する多角形の平面の頂点に相当する位置と、隣り合う２つの前記頂点を結ぶ前記多角形の辺の中点に相当する位置とのそれぞれに突極を配設した多自由度電動機の回転制御方法であって、前記ステータから露出する球体ロータに向けて配置された撮像装置で前記球体ロータの複数の前記突極を含む画像を撮像するステップと、撮像した画像データから前記突極を示すマーカを抽出し、その面積重心位置を算出するステップと、前記画像中で球体ロータの中心に最も近い前記突極を基準マーカとし、前記基準マーカの周囲にある他の前記突極を周回マーカとし、隣り合う２つの前記周回マーカが前記基準マーカとの間になす角度を算出して前記突極の配置を分類し、前記基準マーカと前記周回マーカが多角形の頂点の位置にあるマーカであるのか、中点の位置にあるマーカであるのかを特定するステップと、前記基準マーカにナンバーを付与し、このナンバーを基準にして他の前記突極にナンバーを付与してステータに面する前記突極の位置を特定するステップと、特定した前記突極を励磁するように前記ステータへの通電パターンを決定するステップと、を有することを特徴とする多自由度電動機の回転制御方法とした。
この多自由度電動機の回転制御方法は、球体ロータの画像を取得し、突極に相当する画像を基準マーカと周回マーカとに分類し、マーカの配置からマーカの種類を特定し、それらの位置情報から球体ロータの回転情報を算出する。それにより撮像装置には写らないステータ側の突極の配置を特定し、次に励磁する突極を選択し、その位置にあるステータのコイルに通電する。
【発明の効果】
【０００８】
本発明によれば、ステータから露出する球体ロータの突極の位置を撮像した画像から球体ロータの回転情報を取得して回転制御を行うようにしたので、球体ロータを自由に回転させることができる。
【発明を実施するための最良の形態】
【０００９】
発明を実施するための最良の形態について図面を参照しながら詳細に説明する。
図１及び図２は、多自由度電動機の利用形態の一例として、電動台車の構成を示している。電動台車１は、荷物を搭載可能な車体２を有し、車体２の下面の中心に多自由度電動機３が取り付けられている。車体２の四隅近くには、フリーローラ４が多自由度電動機３を囲むように４つ取り付けられている。フリーローラ４は、回転自在な車輪４Ａを有し、支持軸４Ｂ周りに自転可能に構成されており電動台車１の自立を補助する。
【００１０】
多自由度電動機３は、車体２に下向きに固定されたステータ１１と、ステータ１１に一部が収容された球体ロータ１２とを有し、球体ロータ１２の回転位置を検出するカメラ１３が支持部１４によって所定位置に取り付けられている。球体ロータ１２は、回転時に電動台車１に駆動力を与えるように床面等に接地可能に配置されており、電動台車１の動力源になっている。
【００１１】
図２に示すように、球体ロータ１２の表面には、ロータ極２４が配設されている。ロータ極２４の外周面が略円形の突極であり、ロータ極２４の間が樹脂で埋められている。後述する処理によって球体ロータ１２の回転位置を検出するために、樹脂は、ロータ極２４に比べて十分に暗く、白黒画像でもロータ極２４を識別可能なものが使用されている。また、識別を容易にするためにロータ極２４の外周面を塗装してもよい。
ステータ１３は、球体ロータ１２に対向する内球面にコイル２５が巻装された電磁石からなるステータ極２６が複数配設されている。これらステータ極２６は、制御装置２７に接続されている。
撮像装置であるカメラ１３は、球体ロータ１２の白黒の画像を例えば１秒間に１０００フレーム撮像できるような高速度カメラが用いられる。
【００１２】
球体ロータ１２は、正２０面体の頂点に相当する位置と、各辺の中点に相当する位置のそれぞれにロータ極２４が配設されている。より詳細には、球体ロータ１２でのロータ極２４の配置は、図３に示すように正２０面体３０をベースにしている。正２０面体３０は、頂点３０Ａの数を１２個有し、正三角形の平面２０枚から構成されている。正２０面体３０の頂点１２個と、正三角形の辺の中点と球の中心を通る直線、及び正２０面体３０に外接する球面の交点（以下、中点という）３０個との計４２個の位置にロータ極が配置されている。
ここで、図４に示すように、正２０面体の頂点１個と中点２個で構成される三角形３１は、二等辺三角形になっている。このような三角形３１は、球体ロータ１２全体で６０個形成される。中点３個で構成される三角形３２は、正三角形になり、球体ロータ１２全体で２０個形成される。ロータ極２４は、それら８０枚の三角形で構成される８０面体の頂点に配置される。
【００１３】
図５に球体ロータ１２のベースとなった正２０面体の展開図を示す。図５には、ロータ極２４に相当する位置にナンバーが付与されている。ナンバーは、正２０面体の１２個の頂点にナンバー１〜１２が白丸で付与され、正三角形の辺の中点４０個にナンバー１３〜４２が黒丸で付与されている。このようにロータ極２４に付与したナンバーは、後述するナンバーリング（番号付け）の際に使用される。
【００１４】
ここで、正２０面体３０を半径１の単位長さの球体に内接させたときに、正２０面体３０の頂点、及び辺の中点と球の中心を通る直線と球との交点（以降、これを中点という）の３次元座標を算出した結果の一例を表１に示す。表１におけるナンバーは、図５のナンバーに対応させてあるので、表１には正規化された全マーカ（ロータ極）の３次元座標値が示されていることになる。各座標値に球体ロータ１２の半径Ｒを乗じた値が球体ロータ１２の中心を原点とする３次元座標でのマーカの座標値となり、各マーカがその位置にあるときを球体ロータ１２の原点位置または仮の原点位置として、マーカのナンバーリング処理や全マーカの位置や回転情報の算出に使用する。
【００１５】
【表１】
2008220052.tif 000003
【００１６】
図２に示す制御装置２７は、後述する処理を行うために、２値化処理部２７Ａと、ラベリング部２７Ｂと、パターン設定部２７Ｃと、ナンバーリング部２７Ｄと、回転角算出部２７Ｅと、通電制御部２７Ｆとに機能分割することができる。
【００１７】
次に、多自由度電動機３の回転制御について説明する。
球体ロータ１２の回転制御は、図６に示すフローチャートに従って行われる。
最初に、初期化の要否を調べ（ステップＳ１０１）、必要に応じて初期化処理を実行する（ステップＳ１０２）。初期化処理は、システム起動時やナンバーリング処理でロータ極のナンバーが適切に継承できない場合などに実行され、図５に示すようにロータ極２４に付与されたナンバーが初期化される。例えば、ロータ極のナンバーを図５のように付与したときに、それらの３次元座標値が表１に示される位置にある場合を、球体ロータの原点位置とする。そしてカメラ１３で撮影した球体ロータ１２の静止画像でのロータ極２４の配置と原点位置座標から全ロータ極２４の位置の３次元座標値を算出し、これら３次元座標値を初期位置として定義する。
次に、制御装置２７の２値化処理部２７Ａが、カメラ１３から入力されるグレースケールの画像を適切な閾値で２値化する（ステップＳ１０３）。２値化処理によって作成される白黒画像は、ラベリング部２７Ｂによってラベリングが行われ、所定の面積範囲にある画像がマーカ（ロータ極）として抽出される。さらに、抽出されたマーカの面積重心位置から３次元座標が算出される（ステップＳ１０４）。
【００１８】
パターン設定部２７Ｃでは、球体画像の中心に最も近いマーカ（以下、基準マーカという）を抽出し、そこから所定の距離範囲内にあるマーカ（以下、周回マーカという）を抽出する。そして、これら抽出したマーカを位置検出に使用する対象マーカに設定する。対象マーカの配置パターンは、後述するように２種類に分類できるので、それらの幾何学的な関係から配置パターンとマーカの種類を識別する（ステップＳ１０５）。
球体ロータ２４が回転しているときは、ナンバーリング部２７Ｄが１つ前に撮像した画像での対象マーカのナンバー及びその３次元座標位置（以下、マーカ情報という）を参照して、ナンバーの継承、又は新たにナンバーリングを行って対象マーカを特定する（ステップＳ１０６）。
【００１９】
回転角算出部２７Ｅは、球体画像中の対象マーカを特定したら、基準マーカと周回マーカのいずれか１個のマーカ情報、又はそれらから算出した球体ロータ１２の回転角を表すデータ（以下、回転情報という）を算出する（ステップＳ１０７）。ここで、回転情報を算出する際に着目する対象マーカは、回転情報の算出精度を高めるためには球体画像の中心により近いものが望ましい。
そして、回転情報の出力処理を実施する（ステップＳ１０８）。ここでは、回転情報から全ロータ極２４の位置を算出し、ロータ極２４とステータ極２６の位置関係から通電制御部２７Ｆがステータ１３の励磁パターンを決定し、所定のステータ極２６のコイル２５に通電して、球体ロータ１２を所望する位置に回転させる。
【００２０】
以下、ステップＳ１０３以降の処理について、詳細に説明する。
ステップＳ１０３における２値化処理では、ロータ極２４に相当する明るい領域と、ロータ極２４以外の樹脂の暗い部分とを画像中で区分けする処理を行う。２値化のスレッショルド値は、入力画像から対象マーカの画像を抽出できる適切な値を予め定義する必要がある。しかし、照明などの条件が不安定な場合は、入力画面ごとに所定の画像領域のレベル（例えば、明暗の平均）を検出し、それを反映した値を定義して使用しても良い。
【００２１】
ステップＳ１０４は、ラベリング処理と、面積重心算出処理とに大別される。
ラベリング処理は、画像を探索する領域を球体画像領域に限定して行うと処理時間を短縮できる。さらに、ラベルを付与する注目画素に連結させる画素を探索する連結探索領域も水平走査ライン毎に必要な部分のみに設定する。このようなラベリング処理の方法として、特願２００６−２４８１６３に開示されている技術を用いると、ラベリング処理時間を大幅に短縮することができる。なお、ラベリング処理は、高速な公知の他の技術を使用しても良い。
ラベリング処理では、ロータ極２４に相当する明るい（白）画素を連結して抽出し、連結される画像（１つのマーカを構成する）のピクセル数と、それら１つ１つのピクセルの座標値を積算する。そして、連結された１つの画像についてラベリングが終了した時点で、そのピクセル数、すなわち面積が所定の範囲内であれば、マーカと判定する。
【００２２】
面積重心算出処理では、マーカと判定された画像の面積（ピクセル数）と積算した座標値からそのマーカの面積重心位置を算出する。面積重心位置は、球体の３次元座標系の座標値に変換して、マーカの識別、球体ロータ１２の回転角の算出などに用いる。
【００２３】
ここで、カメラ１３で撮像した画像の２次元座標系から、ロータ極２４の位置座標の３次元画像系に変換する処理の一例を説明する。なお、以下では、図７に示すような右手系の（ｕ，ｖ，ｗ）直交座標系を用いている。
図７に示すように、ｕ軸上のＦ点にカメラを設置し，半径Ｒの球体の中心を（ｕ，ｖ，ｗ）座標系の原点Ｏに置いたとき、カメラ位置から見える球体の範囲は、距離ＯＦに依存する。すなわち、Ｆ点が球体に近づくに従って球体は大きく見えるが、実際に見える球面の領域は小さくなる。
球体を半径Ｒの円に置き換え、Ｆ点からその円へ接する直線を引き、その接点をＱとすると、
【００２４】
【数１】
2008220052.tif 000004
【００２５】
となる。これより、ｖＡを求めると、
【００２６】
【数２】
2008220052.tif 000005
【００２７】
同様に、ｖ＝０の（ｕ，ｗ）平面についても考えると、対象が球体であることから、ｗＡ＝ｖＡになる。点Ａはカメラ１３（Ｆ点）から見て、点Ｑのｕ＝０の（ｖ，ｗ）平面への写像と考えることができる。この写像がカメラ１３側にある小さなカメラ画像面（撮影デバイス）へ縮小されて転写される。ディジタルカメラでは、ピクセル数で表現できるので、カメラ画像での原点ＯからＡ点までのピクセル数をｖＡ´とすれば、ｖＡ＝ｋ×ｖＡ´となる。ｋは、（縮）倍率ｋである。この式は、画像寸法とも言えるピクセル数ｖＡ´を実寸ｖＡ［ｍｍ］へ変化する次元変換式である。式（２）を用いてｋを求めると、
【００２８】
【数３】
2008220052.tif 000006
【００２９】
このように、点Ｑと点Ａを関連付けるアプローチは、マーカの３次元座標を算出するために必要である。実際には、このときカメラ１３の視点が球体ロータ１２の中心に向くように設置して球体ロータ１２を撮像し、球体の半径Ｒ［ｍｍ］、球体中心とカメラの距離：Ｆ［ｍｍ］、カメラ画像での球体画像の半径ｖＡ´［ピクセル数］を代入して倍率ｋを計算する。なお、レンズの収差などを考慮して、倍率ｋの値に補正を加えても良い。
【００３０】
カメラ画像には、ｕ軸を中心に最外周にある点Ｑまでの円形内の球面上の画像が写像されることになる。図８において、点Ｑより内側にある球面上、即ち半径Ｒの円周上にある点Ｐについて考える。直線ＦＢの式を、ｕ＝ａｖ＋Ｂと表すと、ｖ＝０のとき，ｕ＝Ｆであり、円との交点Ｐ（ｕＰ，ｖＰ）を通ることから、ａ＝（ｕＰ−Ｆ）／ｖＰになるので、ｕ＝０の点Ｂのｖ値は、
【００３１】
【数４】
2008220052.tif 000007
【００３２】
同様に（ｕ，ｗ）平面についても考えると、
【００３３】
【数５】
2008220052.tif 000008
【００３４】
これらは、ｕ＝０の（ｖ，ｗ）平面上の写像であり、カメラ画像上での値（ｖＢ´，ｗＢ´）は、前記した倍率ｋを使用して、（ｖＢ，ｗＢ）［ｍｍ］＝（ｋ・ｖＢ´，ｋ・ｗＢ´）に置き換える必要がある。式（４）及び式（５）のそれぞれをｖＰ，ｗＰについて解くと、
【００３５】
【数６】
2008220052.tif 000009
【００３６】
が得られる。交点Ｐの座標（ｕＰ，ｖＰ，ｗＰ）は、半径Ｒの球面上の点であるから、ｕＰ２＋ｖＰ２＋ｗＰ２＝Ｒ２となる。ｖＢ＝ｖ，ｗＢ＝ｗとしてｕＰ，ｖＰ，ｗＰを代入して整理すると、
【００３７】
【数７】
2008220052.tif 000010
【００３８】
これをｕＰについて解く。図８から、ｕＰ＞０であるから、
【００３９】
【数８】
2008220052.tif 000011
【００４０】
ここで、Ｓ＝（Ｆ−ｖＰ）／Ｆとし、式（８）をＳを用いて表すと、
【００４１】
【数９】
2008220052.tif 000012
【００４２】
このＳを使用すると、（ｕＰ，ｖＰ，ｗＰ）は次のように表すことができる。
【００４３】
【数１０】
2008220052.tif 000013
【００４４】
式（１０）は、２次元座標から３次元座標に変換するときの変換式に相当する。したがって、球体画像でマーカＰｎの面積重心位置の２次元座標（ｖｎ´，ｗｎ´）で求め、式（１０）を用いて３次元座標（ｕｎ，ｖｎ，ｗｎ）に変換する。このような２次元座標系から３次元座標系への変換を、球体画像から抽出された全マーカについて実行する。
【００４５】
次に、ステップＳ１０５の配置パターン及びマーカの種類の設定処理の詳細を説明する。
図９又は図１０に示すように、球体画像中心に最も近いマーカを抽出して基準マーカＰ０とし、更に基準マーカＰ０からの距離が所定の範囲内にある周回マーカＰｎ（Ｐ１〜Ｐ６；ｎは整数）も抽出する。基準マーカＰ０と周回マーカＰｎを加えたものが配置パターン及びマーカの種類を推定するのに使用する対象マーカになる。この球体ロータ１２では、対象マーカの配置パターンは図９又は図１０の２種類のいずれかに分類できる。
図９に示すＰＴ５パターンは、基準マーカＰ０が頂点Ｖで、周回マーカＰｎが最大で５個配置される。白丸と黒丸の表記は、図５に示す頂点と中点の表記方法に従っている。周回マーカＰｎは、全て中点Ｍからなる。ＰＴ５パターンの場合、隣り合う２つの周回マーカＰｎが基準マーカＰ０との間になす角度（内角；∠ＭＶＭ）は、全て同じ角度になる。さらに、各Ｖ−Ｍ間の距離も同じ値、例えば、球体ロータの直径が１００ｍｍの場合で約２７ｍｍになる。内角の算出方法として、３次元空間上の３つの点Ｐ０、Ｐｎ−１、Ｐｎを頂点とする三角形平面での∠Ｐｎ−１Ｐ０Ｐｎを求める方法と、３次元空間の原点Ｏを含めた２つの平面ＯＰ０Ｐｎ−１とＯＰ０Ｐｎのなす角度を求める方法がある。２つの平面のなす角度はそれぞれの平面の法線ベクトルのなす角度をベクトルの内積から求めることができる。例えば、２つの平面のなす角度で算出した場合の内角は、∠Ａ＝７２．０°になる。
図１０に示すＰＴ６パターンは、基準マーカＰ０が中点Ｍで、周回マーカＰｎが最大６個配置される。周回マーカＰｎは、頂点Ｖが最大で２個で、中点Ｍが最大で４個で構成される。ＰＴ６パターンの場合、２つの周回マーカＰｎが基準マーカＰ０との間になす角度（隣り合う２つの周回マーカＰｎ−１、Ｐｎを含む２つの平面ＯＰ０Ｐｎ−１とＯＰ０Ｐｎのなす角度）は、∠ＭＭＶ＝∠ＶＭＭ＝∠Ｂ≒５８．２８°と、∠ＭＭＭ＝∠Ｃ≒６３．４４°の２種類になる。また、直径１００ｍｍの球体ロータの場合、Ｖ−Ｍ間の距離は約２７ｍｍで、もう１つのＭ−Ｍ間の距離は約３１ｍｍとなる。
【００４６】
ロータ極２４の配置がＰＴ５パターンであるか、ＰＴ６パターンであるかを判定する処理を図１１のフローチャートに示す。
最初に、ラベリング処理で面積が所定の範囲内であり、マーカと判定された中から球体画像の中心に最も近いマーカを抽出し、そのマーカを基準マーカＰ０とする（ステップＳ２０１）。さらに、基準マーカＰ０からの距離が所定の範囲内、例えば２１〜３７ｍｍの範囲内にある周回マーカＰｎを全て抽出する（ステップＳ２０２）。
【００４７】
抽出された周回マーカの中から、基準マーカＰ０の次に最も球体画像の中心に近い周囲マーカを抽出し、これを周回マーカＰ１とする。そして、基準マーカＰ０を中心に周回マーカＰ１に対するその他の周回マーカＰｎを反時計回りに抽出し、順番に周回マーカＰ２〜Ｐ６とする。そして、周方向に隣り合う２つの周回マーカＰｎの内角、即ち平面ＯＰ０Ｐ１と平面ＯＰ０Ｐｎの為す角度θＰ１ｎを算出する。
例えば、Ｐ０に対する隣接する２つの周回マーカＰ１，Ｐ２の内角は、図１２に示すように、平面ＯＰ０Ｐ１と平面ＯＰ０Ｐ２のなす角度で定義される。２つの平面はＯＰ０を通る直線で交差するので、その直線を回転軸とし、平面ＯＰ０Ｐ１から平面ＯＰ０Ｐ２に向かって反時計回りに回転させて、平面ＯＰ０Ｐ１を平面ＯＰ０Ｐ２に重ねる場合の回転角が、２つの平面のなす角度になる。
【００４８】
図１３に示すように、平面ＯＰ０Ｐ１を平面ＯＰ０Ｐ２のそれぞれの法線ベクトルＡ、Ｂを夫々求め、その２つのベクトルのなす角度から回転θＰ１２を算出する。
平面ＯＰ０Ｐ１の法線ベクトルＡは、２つのベクトルＯＰ０とＯＰ１の外積から求める。
【００４９】
【数１１】
2008220052.tif 000014
【００５０】
平面ＯＰ０Ｐ２の法線ベクトルＢは、２つのベクトルＯＰ０，ＯＰ２の外積から求める。
【００５１】
【数１２】
2008220052.tif 000015
【００５２】
２つの法線ベクトルＡ，Ｂのなす角度θは、ベクトルＡ，Ｂの内積から求めることができる。
【００５３】
【数１３】
2008220052.tif 000016
【００５４】
ただし、この方法では回転方向が判別できないので、さらに２つのベクトルＡ，Ｂの法線ベクトルＣを考え、それがベクトルＯＰ０と同じ方向であるかをチェックする。前面に見える点Ｐ０の座標はｕＰ０＞０であるから、ベクトルＣのｕＣの正負でθを補正する。
【００５５】
【数１４】
2008220052.tif 000017
【００５６】
したがって、ｕＣ＝ｖＡｗＢ−ｗＡｖＢ≧０ならば、平面ＯＰ０Ｐ１と平面ＯＰ０Ｐ２の為す角度θＰ１２＝ｃｏｓ−1θとなる。ｕＣ＝ｖＡｗＢ−ｗＡｖＢ＜０ならば、θＰ１２＝−ｃｏｓ−1θ、又はθＰ１２＝２π−ｃｏｓ−1θになる。このようにして、周回マーカＰｎについて、順次、平面ＯＰ０Ｐ１と平面ＯＰ０Ｐｎの為す角度θＰ１ｎを算出したら、それを昇順に並べることでＰ１からの順番を付与する。次に連続（隣接）するマーカＰｎ−１−Ｐｎ間の内角θｎは、θｎ＝θＰ１ｎ−θＰ１ｎ-1から算出する。
その内角θｎは、前記の∠Ａ、∠Ｂ、∠Ｃのいずれかに相当することになるが、検出位置などの誤差もあるので、図１４に示すような所定の範囲内に対応して、内角ランクＲＡ、ＲＢ、又はＲＣのいずれかが設定され、配置パターンの判定に利用される。いずれの範囲内にも入らなければ、ランク外ＲＺとする。
【００５７】
設定された内角ランクを調べて、内角ランクＲＡが少なくとも２個あれば、ＰＴ５パターンと判断する。この場合は、基準マーカＰ０が頂点Ｖ、周回マーカＰｎが全て中点Ｍとなる。そして、図１５に示すように、他の周回マーカＰｎの位置番号（反時計回りの順番）も設定しておく。始点となるマーカはいずれでも良いが、ここでは内角算出の順番をそのまま流用している。もし、周回マーカＰｎの一部が欠落するような場合は、対応するマーカの位置番号は飛ばされる。
【００５８】
図１６に示すように、ＰＴ６パターンの判定は、基準マーカＰ０を軸として周回マーカＰｎの内角ランクを反時計回りにチェックする。
図１６で〔Ｉ〕に示すように、ランクＲＢが続く場合は、２番目のマーカが頂点Ｖと推定され、ＰＴ６パターンであると判定される。
〔ＩＩ〕に示すように、ランクＲＢの次にランクＲＣが続く場合は、最初のマーカが頂点Ｖと推定され、ＰＴ６パターンであると判定される。
〔ＩＩＩ〕に示すように、ランクＲＣの次にランクＲＢが続く場合は、最後（３番目）のマーカが、頂点Ｖと推定され、ＰＴ６パターンであると判定される。
このように、全ての周回マーカＰｎの内角を調べなくてもＰＴ６パターンとＰＴ５パターンの判定処理が行える。ＰＴ６パターンでは、頂点Ｖとなる周回マーカＰｎがわかれば、基準マーカＰ０を中心に１８０度回転した位置に周回マーカＰｎがあれば、それも頂点Ｖである。そして、それらの位置にない周回マーカＰｎは全て中点Ｍと推定できる。
この場合の周回マーカＰｎの位置は、最初に見つけた頂点Ｖの周回マーカを始点（Ｐ1）とし、そこから反時計回りに順番にマーカ位置番号を付与している。図１７に示すように、球体画像中で確認できずに、欠落した周回マーカの位置番号は飛ばす。
【００５９】
球体ロータ１２の回転方向、照明やカメラアングルなどによっては、欠落する周回マーカＰｎの位置が変化する。そして、配置パターンの判定には、ＰＴ５パターンでもＰＴ６パターンでも２つ以上の内角ランク情報が必要である。そのため、対象マーカが４個以下の場合は判定不能とする。また、対象マーカが４個以上あっても判定不能となった場合、以降の回転検出処理は実行されず、球体ロータ１２を適切に回転させることは困難になる。
この他にマーカ検出の障害となる場合としては、球面上に照明又は反射光が映り込んで、マーカと区別できなくなることがあげられる。配置パターンが推定できれば、対象マーカの配置関係から不適切なマーカを排除できるが、そのような映り込みがマーカと重なったり、接したりすると面積重心位置の算出に影響するので、そのような映り込みがないようにカメラ１３の位置が予め調整されている。
配置パターンと頂点Ｖのマーカが特定されれば、対象マーカ全ての種類を特定できる。そして、その中から１組の頂点Ｖと中点Ｍのマーカの位置から球体ロータ１２の全てのマーカ（ロータ極）の位置を算出することができる。
【００６０】
次に、ステップＳ１０６のマーカのナンバーリング処理の詳細について説明する。マーカ（ロータ極２４）のナンバーリングは、球体ロータ１２の回転情報、例えば回転方向と回転角などを算出する場合に必要となる。回転情報は、球体ロータ１２の回転位置制御では不可欠であり、またステータ極２６の励磁（回転）制御にも利用できる。
前記の処理で配置パターンと対象マーカそれぞれの種類（頂点／中点）を推定できたら、ナンバーリングを行う。図５のようにナンバーリングした例について考える。基準マーカＰ０に対する周回マーカＰｉの位置に対応するマーカのナンバーを調べた例を表２及び表３に示す。表２は、基準マーカＰ０が頂点Ｖの場合の基準マーカＰ０及び周回マーカＰｎのナンバーを示し、表３は基準マーカＰ０が中点Ｍの場合を示す。いずれの表でも任意の基準マーカＰ０の周回マーカＰｎの位置の始点をその周回マーカＰｎで最も小さい番号のマーカにして、そして基準マーカＰ０を中心に反時計回りに周回マーカ位置の順番を設定している（以下、周回マーカ位置という）。また、図５のナンバーリング方法および／または周回マーカＰｎの位置番号を付与する方法を変更しても良い。そして、それらに対応して、表２および表３を作成する。
【００６１】
【表２】
2008220052.tif 000018
【００６２】
【表３】
2008220052.tif 000019
【００６３】
前記したように、本システムを起動したときに実施される図６のステップＳ１０２では、最初の球体画像でナンバーリングの初期化を行っている。ナンバーリングの初期化の例を図１８及び図１９に示す。図１８は、ＰＴ５パターンにおいて、ナンバー１のマーカ（ロータ極２４）が画像中心にある状態を球体ロータ１２の初期位置としている。図１９は、ＰＴ６パターンの場合を示す。この例でも、ナンバー１のマーカ（ロータ極２４）が画像中心にある状態が球体ロータ１２の初期位置になることを想定しているが、ＰＴ６パターンであることから頂点Ｖのマーカは球体画像の中心からずれている。初期位置は前記原点位置または仮の原点位置をベースに設定される。なお、ロータ極２４は、マグネットが装着されないので、ステータ１１の励磁パターンを設定するときにそれらの位置情報以外は基本的に同等である。したがって、予めロータ極２４にナンバーを付与せずに、初期化する度に同じロータ極２４に異なるナンバーを付与しても良い。
【００６４】
前記したように、基準マーカＰ０と少なくとも１つの周回マーカＰｎのナンバーが決まれば、検出した対象マーカの全てにナンバーを設定できる。このため、位置検出処理を実行している間は、基準マーカＰ０と少なくとも１つの周回マーカＰｎのナンバーが前画像から継承できれば、そのナンバーの配置から他の全てのマーカを特定することができる。そのため、対象マーカのナンバー、種類（頂点／中点）及び位置情報を毎回記憶する必要がある。そして、新しく検出されたマーカの画像ピクセルが、前画像でのいずれかのマーカの面積重心位置と重なり、それらのマーカの種類が一致した場合には、そのナンバーを継承させる。
基準マーカＰ０と少なくとも１つの周回マーカＰｎのナンバーを継承できたら、表２または表３から他の周回マーカＰｎのナンバーリングを行うことができる。しかし、基準マーカＰ０と少なくとも１つの周回マーカＰｎのナンバーが継承できないときは、ナンバーリングの初期化を再度実行する。
【００６５】
図２０に動作中のナンバーリングの例を示す。ＰＴ６パターンで基準マーカＰ０が中点Ｍのマーカであり、周回マーカＰ１が頂点Ｖのマーカであるときに、前画像から基準マーカＰ０のナンバーに「２５」、周回マーカＰ１のナンバーに「８」を継承した場合である。
Ｐ１以降の周回マーカのナンバーを設定するには、表３から基準マーカがナンバー「２５」となるグループで、ナンバーが「８」の周回マーカ位置を検索する。この場合は、表３の周回マーカ位置４にナンバー「８」が格納されている。したがって、周回マーカＰ２にはナンバー「３４」が付与される。ただし、図２０では周回マーカＰ２は隠れてしまっているため、スキップされる。同様にして、残りの周回マーカＰｎも表３に格納されているナンバーを周回マーカ位置の順番に付与する。
【００６６】
具体的には、１つ目の周回マーカＰ１のナンバー「８」が周回マーカ位置４にあるので、その差である３（＝４−１）をオフセット値として、検出した周回マーカのＰｎの値を補正すれば、全ての周回マーカＰｎに適切なナンバーを設定できる。例えば、周回マーカＰ４では、周回マーカ位置はｎ＝４＋３＝７、ＰＴ６パターンではｎ＜６なので、ｎ＝７−６＝１となり、表３の周回マーカ位置１に格納されているナンバー「３」が付与される。同様に、周回マーカＰ５は、ｎ＝５＋３−６＝２で表３の周回マーカ位置２に格納されているナンバー「１８」が付与される。周回マーカＰ６は、ｎ＝６＋３−６＝３で表３の周回マーカ位置３に格納されているナンバー「２４」が付与される。
【００６７】
このように、制御装置２７は、前入力画像でのマーカ情報を継承しながら、現入力画像での対象マーカについてナンバーリングを行う。このようなナンバーリングを行えば、球面画像に写らないロータ極２４のマーカについてもナンバーリングが行えるので、ステータ極２６に対向しているロータ極２４を含めた全てのロータ極２４の位置が特定できるようになる。
【００６８】
次に、球体ロータ１２の回転をさせる方法について説明する。
少なくとも２つのマーカ、ここでは基準マーカＰ０と周回マーカＰｎの１つのナンバーとそれらの座標が求まれば、ロータ極２４同士の相対的な位置関係は既知なので残りの全てのマーカの位置が推定できる。それによりステータ１１との相対的な位置関係が決められ、適切なステータ極２６を選択励磁することで球体ロータ１２を回転させることができる。
全てのマーカの位置を推定するには、球体ロータ１２の原点位置からの回転方向と回転角を算出する必要がある。ただし、回転軸がない球体ロータ１２では、１組の回転方向（回転軸）と回転角だけで全ての回転を特定することはできない。その回転軸自体もある方向に回転している場合があるからである。そこで、２組の回転方向（回転軸）と回転角で球体ロータ１２の回転を特定する。
【００６９】
例えば、図２１に示すように、球体ロータ１２が任意に回転させられて、球面上の点Ｄ１が点Ｄ２に移動し、点Ｅ１が点Ｅ３に移動したものとする。この場合、最初に図２２に示すように、Ｄ１、Ｄ２及び原点Ｏ（０，０，０）を含む平面に垂直で原点Ｏを通る直線を第一の回転軸ｔ１として、点Ｄ１から点Ｄ２へ移動させる。
次に、点Ｅ１について考える。図２３に示すように、最初の回転で点Ｅ１は、Ｅ１（ｕＤ１，ｖＤ１，ＷＤ１）からＥ２（ｕＥ２，ｖＥ２，ｗＥ２）に移動したとすると、次に直線ＯＤ２を第二の回転軸ｔ２として、点Ｅ２を点Ｅ３まで回転させれば、図２１に示すような回転を実現できる。
その結果、球体ロータ１２の回転は、第一の回転軸ｔ１とその周りの回転角θ１、そして第二の回転軸ｔ２とその周りの回転角θ２の２組の回転パラメータで表現できる。
【００７０】
第一の回転軸ｔ１は、ＯＤ１Ｄ２で定義される平面に法線ベクトルと同じ向きで、右手系直交座標の条件であるベクトルＯＤ１とＯＤ２の外積から求めることができる。ベクトルＯＴ１の向きは図２２のように定義される。第一の回転軸ｔ１周りの回転角度θ１は、２つのベクトルＯＤ１，ＯＤ２のなす角度として算出される。
また、点Ｅ１，Ｅ３の位置座標から同様にして第二の回転軸ｔ２と回転角θ２を算出する。最初に第一の回転軸ｔ１で回転角θ１だけ回転させて、球面上の点Ｅ１が点Ｅ２に移動させる。この回転操作での回転行列を[ａ，ｂ，ｃ]と表すと、Ｅ２＝〔ａ，ｂ，ｃ〕Ｅ１ と表せる。
この縦行列〔ａ，ｂ，ｃ〕は、
【００７１】
【数１５】
2008220052.tif 000020
【００７２】
【数１６】
2008220052.tif 000021
【００７３】
【数１７】
2008220052.tif 000022
【００７４】
となる。ここで、点（ｕｔ１，ｖｔ１，ｗｔ１）は回転軸ｔ１の点で原点Ｏからの距離が１である。また、Ｓ＝ｓｉｎθ１、Ｃ＝ｃｏｓθ１と表している。
したがって、点Ｅ２（ｕＥ２，ｖＥ２，ｗＥ２）の座標は、次式で求められる。
【００７５】
【数１８】
2008220052.tif 000023
次に、直線ＯＤ２を第二の回転軸ｔ２として、点Ｅ２から点Ｅ３まで回転させる。その回転角θ２は、２つの平面ＯＤ２Ｅ２，ＯＤ２Ｅ３のなす角度として算出される。これはそれぞれの平面の法線ベクトルを求め、それらのベクトルの内積から算出することができる。
【００７６】
このように球体ロータ１２の回転は、基本的には２つのマーカの回転前後の位置（座標）から、２回の回転操作に分割することができる。それでその２回の回転操作を全ロータ極２４（マーカ）に実行することにより、全ロータ極２４の座標を算出することができる。
より精度の高い回転情報を得るためには、カメラ視点を球体中心に合わせ、マーカの配置パターンの判定に必要なマーカ数を確保しながら可能な限り近接した位置にカメラ１３が設置される。さらに、回転情報算出は、球体画像中心に近い２つのマーカの座標を利用する。
【００７７】
次に、ステータ極の励磁方法について説明する。
ロータ極２４の位置が求まれば、ロータ極２４とステータ極２６の位置関係から、任意の方向に球体ロータ１２を回転させるために励磁すべきステータ極２６を選定することができる。しかし、常に任意の方向に回転させるには、ステータ極２６を個別に励磁する必要がある。
このため、ステータ極２６ごとに回転方向にあるロータ極２４を探索し、駆動トルクを発生できる位置にあるロータ極２４を選出する。そして、そのステータ極２６を励磁した場合の駆動ベクトルを考え、そのベクトルを回転方向の成分とそれに垂直な方向の成分に分離する。垂直な方向のベクトルは回転方向を曲げることになるので、励磁する全ステータ極２６での回転方向に垂直なベクトル成分の総和をゼロにする必要がある。
このようにして球体ロータ１２を回転制御したとき、その駆動力は、回転方向のベクトル成分の総和となる。
【００７８】
この実施の形態では、マーカの配置に特徴があることに着目してロータ極２４の配置をＰＴ５パターン又はＰＴ６パターンのような幾何学的な特徴で捉えてロータ極２４の座標を特定するようにしたので、球体ロータ１２の回転位置を高速に算出することができる。幾何学的な特徴を捉える際に、球体画像の中心に最も近いマーカを用いてパターンマッチングを行うので、球体ロータ１２を２次元画像に取得したときの位置誤差を抑制し、精度の良い位置検出が行えるようになる。また、周回マーカＰｉの内角を平面の法線ベクトルを利用して算出するようにしたので、３次元に配置されているマーカの内角の算出誤差を抑制することができる。
球体ロータ１２のロータ極２４の配置の特徴を利用してロータ極２４にナンバーリングを行うようにしたので、ステータ１１側でカメラ１３から隠れているロータ極２４を特定することができる。球体ロータ１２が回転したときには、ロータ極２４のナンバーを承継することで球体ロータ１２の回転位置制御が容易に行える。
【００７９】
なお、本発明は、前記の実施の形態に限定されずに広く応用することができる。
例えば、球体ロータの外形は、球に内接する多面体を構成する面の多角形の頂点と、隣り合う頂点間を結ぶ辺の中点とにロータ極が配置されていれば良く、８０面体構造に限定されない。
多自由度電動機３の用途は、球体ロータ１２の回転によって発生する動力を利用可能な装置であれば良く、電動台車１に限定されない。
【図面の簡単な説明】
【００８０】
【図１】本発明の実施の形態に係る多自由度電動機を備える電動台車の側面図である。
【図２】多自由度電動機の構成を示す断面図である。
【図３】球体ロータのロータ極の配置を説明するための正２０面体を示す図である。
【図４】球体ロータのロータ極の配置を説明するための８０面体を示す図である。
【図５】正２０面体の展開図であって、ロータ極にナンバーリングをした図である。
【図６】球体ロータの回転制御の概要を示すフローチャートである。
【図７】カメラの２次元画像から３次元画像に変換する過程を説明する図である。
【図８】カメラの２次元画像から３次元画像に変換する過程を説明する図である。
【図９】基準マーカと周回マーカの配置を示す図であって、ＰＴ５パターンの図である。
【図１０】基準マーカと周回マーカの配置を示す図であって、ＰＴ６パターンの図である。
【図１１】配置パターンとマーカの種類を設定する処理のフローチャートである。
【図１２】基準マーカを中心にした場合の周回マーカの内角を説明する図である。
【図１３】２つの平面の法線ベクトルのなす角度を示す図である。
【図１４】内角ランクの設定基準の一例を示す図である。
【図１５】ＰＴ５パターンにおけるマーカの配置例を示す図である。
【図１６】ＰＴ６パターンの判定方法を説明するための図である。
【図１７】ＰＴ６パターンにおけるマーカの配置例を示す図である。
【図１８】ＰＴ５パターンにおけるナンバーリングの初期化の例を示す図である。
【図１９】ＰＴ６パターンにおけるナンバーリングの初期化の例を示す図である。
【図２０】ナンバーリングの例を示し、一部の周回マーカが特定できない場合を示す図である。
【図２１】球体ロータの回転を算出する方法を説明する図であって、回転操作によるマーカの移動を示す図である。
【図２２】ｔ１軸回りの回転を説明する図である。
【図２３】ｔ２軸回りの回転を説明する図である。
【符号の説明】
【００８１】
１      電動台車
３      多自由度電動機
１１      ステータ
１２      球体ロータ
１３      カメラ
２４      ロータ極（突極）
２５      コイル
２６      ステータ極
２７      制御装置
２７Ａ      ２値化処理部
２７Ｂ      ラベリング部
２７Ｃ      パターン設定部
２７Ｄ      ナンバーリング部
２７Ｅ      回転角算出部
２７Ｆ      通電制御部
Ｐ０      基準マーカ
Ｐｉ      周回マーカ
ＰＴ５，ＰＴ６      配置パターン
【図１】
2008220052.tif 000024
【図２】
2008220052.tif 000025
【図３】
2008220052.tif 000026
【図４】
2008220052.tif 000027
【図５】
2008220052.tif 000028
【図６】
2008220052.tif 000029
【図７】
2008220052.tif 000030
【図８】
2008220052.tif 000031
【図９】
2008220052.tif 000032
【図１０】
2008220052.tif 000033
【図１１】
2008220052.tif 000034
【図１２】
2008220052.tif 000035
【図１３】
2008220052.tif 000036
【図１４】
2008220052.tif 000037
【図１５】
2008220052.tif 000038
【図１６】
2008220052.tif 000039
【図１７】
2008220052.tif 000040
【図１８】
2008220052.tif 000041
【図１９】
2008220052.tif 000042
【図２０】
2008220052.tif 000043
【図２１】
2008220052.tif 000044
【図２２】
2008220052.tif 000045
【図２３】
2008220052.tif 000046