(57)【特許請求の範囲】
【請求項１】
ハンドルのスライド操作で被操作機器の操作を開始したかを判定する操作開始判定部と、
前記操作開始判定部により開始したスライド操作を終了する操作終了判定部と、
前記操作開始判定部の開始により、前記ハンドル上の手の動きおよび位置から前記ハンドル上の手の相対的な動きを計算し、前記ハンドル上の手が輪の横方向操作、輪の縦方向ねじれ操作のうち、少なくとも何れか一つの操作に基づき、前記ハンドル上の操作内容の判定を処理する操作処理部と、
前記操作処理部により判定された操作内容に基づき前記被操作機器を駆動する駆動部と、を備える運転支援装置。
【請求項２】
前記操作処理部は、前記ハンドル上を押し当てた手のひらで、横方向操作、縦方向操作、奥行き方向操作、ねじれ操作のうち、少なくとも何れか一つの操作が行われたかを判定した、請求項１記載の運転支援装置。
【請求項３】
非回転部に固定されたカメラは、前記ハンドル周辺の被回転部の形状や取り付けたマークにより、振動による前記カメラの向きを測定し、振動をキャンセルするまたは、振動したときには操作しないと判定する操作処理部を備えた、請求項１または２記載の運転支援装置。
【請求項４】
非回転部に固定されたカメラは、前記ハンドルの形状や該ハンドル上に取り付けたマークにより、陀角によるハンドルの回転の動きを測定し、前記ハンドルの回転をキャンセルするまたは、前記ハンドルが回転したときは操作しないと判定する操作処理部を備えた、請求項１または２記載の運転支援装置。
【請求項５】
前記操作処理部は、前記ハンドルの半径と角度の次元にベクトル変換し、前記ハンドルの半径分オフセットを加えてハンドルの形状を直線に見えるように変換した、請求項１または２記載の運転支援装置。
【請求項６】
前記操作処理部は、左右の手で違う操作判定をするようにした、請求項１または２記載の運転支援装置。
【請求項７】
さらに前記操作処理部は、前記ハンドル上の握り具合により、前記被操作機器を異なる内容の駆動を可能とした、請求項１記載の運転支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の実施形態は、運転の安全性を確保できる入力インターフェースで車両内の被操作機器を操作する運転支援装置に関する。
【背景技術】
【０００２】
従来、運転支援装置では、ハンドルの真ん中にタッチパッドを配置し、被操作機器を操作するものが知られている。この場合、一度視線をタッチパッドに向けて位置を確認する必要があるほかにハンドルから手を離す必要がある。
【０００３】
また、自動車内に配置されたプロジェクターによって表示された画像のどの部分に触れているのかを検出する入力装置が知られている。この場合、入力操作のために画像に触れる必要があり、画像に触れるために位置を確認する必要があるほかにハンドルから手を離す必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１１７７４８号公報
【特許文献２】特開２００４−２６２３６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術は、入力操作するために一度視線を向けて確認する必要があるほかに、ハンドルから手を離す必要があることから安全上の問題があった。
【０００６】
この実施形態では、運転の安全性を確保することのできる入力インターフェースで被操作機器を操作可能とした運転支援装置を提供する。
【課題を解決するための手段】
【０００７】
実施形態によれば、ハンドルのスライド操作で被操作機器の操作を開始したかを判定する操作開始判定部と、前記操作開始判定部により開始したスライド操作を終了する操作終了判定部と、前記操作開始判定部の開始により、前記ハンドル上の手の動きおよび位置から前記ハンドル上の手の相対的な動きを計算し、前記ハンドル上の手が輪の横方向操作、輪の縦方向にねじれ操作のうち、少なくとも何れか一方の操作に基づき、前記ハンドル上の操作内容の判定を処理する操作処理部と、前記操作処理部により判定された操作内容に基づき前記被操作機器を駆動する駆動部と、を備える。
【図面の簡単な説明】
【０００９】
【図１】運転支援装置に関する第１の実施形態について説明するための概略的なシステム構成図である。
【図２】動作について説明するためのフローチャートである。
【図３】振動成分キャンセルの具体的なマーカ設置位置について説明するための説明図である。
【図４】座標系とカメラと画面の位置について説明するための説明図である。
【図５】マークの位置とハンドルの位置と向きについて説明するための説明図である。
【図６】ハンドルに対するベクトル取得位置について説明するための説明図である。
【図７】ハンドル上スライド操作について説明するための説明図である。
【図８】相対動作計算部の検出結果について説明するための説明図である。
【図９】ハンドル円上に取り付けたマークについて説明するための説明図である。
【図１０】ハンドル円の半径取得について説明するための説明図である。
【図１１】手のひら操作の操作例について説明するための説明図である。
【図１２】ハンドルと手のひらの影について説明するための説明図である。
【図１３】手のひらによるハンドル移動について説明するための説明図である。
【図１４】手のひらによるハンドル移動について説明するための説明図である。
【図１５】手のひらによるハンドル移動について説明するための説明図である。
【図１６】真上方向に補正する前の状態について説明するための説明図である。
【図１７】真上方向に補正した後の状態について説明するための説明図である。
【発明を実施するための形態】
【００１０】
以下、実施形態について、図面を参照しながら詳細に説明する。
【００１１】
（第１の実施形態）
図１は、運転支援装置に関する第１の実施形態について説明するための概略的なシステム構成図を示す。この実施形態は、ドライバーが手をハンドル上でスライドさせることで、そのスライド動作を読み取ることにより、カーナビゲーションなどの被操作機器を、ボタンやタッチパネルを操作することなしに操作を可能とするものである。
【００１２】
図１において、運転支援装置は、ドライバー１０がハンドルのスライド操作を開始したかを判定する操作開始判定部１１、スライド操作を処理する操作処理部１２、スライド操作に基づきウインドウの上げ下げやナビなど表示装置のカーソル位置移動やヘッドアップディスプレイの輝度調整や位置調整などを行う駆動部１３、スライドによる機器操作の終了を判定する操作終了判定部１４を備える。
【００１３】
操作処理部１２は、ハンドル上の手の動きを測定する手動作測定部１２１、ハンドルの動きを測定するハンドル位置測定部１２２、ハンドル上の手の動きがハンドルに対して相対的に動いていることを判断するための相対動作計算部１２３、どんなスライド操作をしたかを判定する操作判定部１２４を備える。
【００１４】
これにより、ドライバーが被操作機器を見る必要がなく、ハンドルから手を離す必要がなく、操作量を手で感じることができるアナログ的な操作を可能とする。スライド操作が簡単であるため誤動作を防止するために、操作開始判定部１１と操作終了判定部１４を備える。基本的な動作を図２のフローチャートに示す。
【００１５】
＜操作開始判定部１１について＞
操作開始判定部１１では、ハンドルのスライド操作で被操作機器の操作を開始するかを判定する。例えば「○○を操作する」ということをドライバーが音声を発することにより、音声認識部２１が被操作機器：○○を対象としたスライド操作の開始であることを認識する。
【００１６】
スライド操作の開始を判定する手段としては、音声によるスライド操作開始判定の他に、ハンドルからメータ等を撮像する、例えばドライバーの前方に設置されたカメラ２２により指の上げ下げやジェスチャーや口の動きを読み取ってスライド操作の開始を判定してもよい。また、操作開始をしてよいかの再確認をヘッドアップディスプレイなどの表示部２３や音声案内部２４によって行い、それに対してドライバーが声やジェスチャーによって再操作することにより、はじめて操作開始としてもよい。そうすることにより誤って操作してしまうのを防ぐことができる。
【００１７】
＜操作処理部１２について＞
操作処理部１２は、スライド操作の開始判定があってから操作の終了判定があるまでの間、ハンドル上の手の動きを読み取り、それが被操作機器：○○を操作させる動作かを判定する。操作処理部１２には、手動作測定部１２１、ハンドル位置測定部１２２、相対動作計算部１２３、および操作判定部１２４を備える。
【００１８】
以下、操作処理部１２の各部について説明する。
【００１９】
＜手動作測定部１２１について＞
手動作測定部１２１においてハンドルの位置に対して直接相対的な動作を読み取る場合には、ハンドル位置測定部１２２と相対動作計算部１２３は必要としない。その方法として、ハンドル上のタッチパッド２５を使用して手の動きを読み取る方法や、ハンドルの回転物やハンドルの輪の内部にカメラを取り付けて手の動きを読み取る方法がある。その場合、ハンドルの輪のすべてをタッチパッド２５にしてもよいし、ハンドルの回転部やハンドルの輪の内部に複数のカメラを設置してもよい。
【００２０】
絶対的な手の動作を読み取る場合には、ハンドル位置測定部１２２と相対動作計算部１２３を必要とする。その方法として、ハンドルに向けてカメラを取り付けて手の動きを読み取る方法がある。その場合、複数のカメラをハンドルに向けて設置し、ハンドル上のどこを握っていても操作を認識できるようにしてもよい。
【００２１】
カメラで手の動きを読み取る方法としては、公知である勾配法やブロックマッチング等の画像処理により行う。
【００２２】
＜ハンドル位置測定部１２２について＞
ハンドル上の手の動作をハンドルに対して相対的に読み取るためには、手動作測定部１２１で絶対的な手の動きを測定することに加え、ハンドルの絶対的な動きを読み取る必要がある。ハンドルの動きを読み取るためには、例えばＣＡＮなどの車内ＬＡＮ２６による陀角情報やカメラ２２によってハンドルの形状を読み取ってその動きを測定する。
【００２３】
または、車体１５の振動成分をキャンセルするために、ハンドルＨＤの回転で回転しない部分にマークを取り付け、ハンドルの回転成分をキャンセルするためにハンドルの回転する部分にマークを複数取り付け、その位置を読み取ってハンドル位置を測定してもよい。そうすることにより、車体１５の振動でのカメラからの角度ずれや、ハンドルの回転角度を読み取ることができる。
【００２４】
具体的には振動成分をキャンセルするために、車体内に図３に示すように振動キャンセル用の固定位置を示すマークＭ１を、ハンドルＨＤの回転角度を測定するためにマークＭ２をそれぞれ取り付ける。以下、マークＭ１，Ｍ２の取り付け位置とマークＭ１，Ｍ２に基づき振動成分のキャンセルについて説明する。
【００２５】
まず、振動成分をキャンセルするためのマークＭ１について説明する。図４に示すように、カメラ２２の位置とハンドルＨＤの回転する部分より手前の動かない部分にマークＭ１を取り付けるか特徴点を見つけておく。公知である勾配法やブロックマッチング等の画像処理により、カメラ２２に対してそのマークＭ１の動作を相対的に読み取る。振動でのカメラ２２から見える位置ずれは、カメラ２２の向く方向のみ変わりカメラ２２とマークＭ１との相対的な位置ずれは発生しないものとして、カメラ２２の角度ずれを計算する。
【００２６】
図５のような取得画像位置までの焦点距離をｆとして、取得画像位置でのマークＭ１の位置を（ｘ１、ｙ１、f）、振動などによりずれ位置を（ｘ２,ｙ２、ｆ）とした場合、角度ずれの係数を（Ｒｘ、Ｒｙ、Ｒｚ）とし、角度ずれは微量であるため計算を一次近似した場合下記のように表される。
【００２７】
ｘ２−ｘ１＝−(ｘ１・ｙ１／ｆ)・Ｒｘ＋(ｆ・ｆ＋ｘ１・ｘ１)・(１／ｆ)・Ｒｙ−ｙ１・Ｒｚ
ｙ２−ｙ１＝−(ｆ・ｆ＋ｙ１・ｙ１)・(１／ｆ)・Ｒｘ＋(ｘ１・ｙ１／ｆ)・Ｒｙ＋ｘ１・Ｒｚ
上記は、マークを２点必要とするが、計算を簡単にするために画面への方向であるｚ軸の角度ずれは起きないとした場合次のようになり、マークを１点として計算することができる。
【００２８】
ｘ２−ｘ１＝−（ｘ１・ｙ１／ｆ）・Ｒｘ＋（ｆ・ｆ＋ｘ１・ｘ１）・（１／ｆ）・Ｒｙ
ｙ２−ｙ１＝−（ｆ・ｆ＋ｙ１・ｙ１）・（１／ｆ）・Ｒｘ＋（ｘ１・ｙ１／ｆ）・Ｒｙ
以上の計算結果から振動による影響をキャンセルする。
【００２９】
次に、ハンドルの回転成分をキャンセルするためのマークＭ２について説明する。ハンドルＨＤの回転角度は車内ＬＡＮ２６から取得する方法や、カメラ２２の映像から取得する方法がある。カメラ映像から取得する場合、マークＭ２を回転するハンドル上（握るところに限らず）に取り付けておいて公知である勾配法やブロックマッチング等により、カメラ２２に対してそのマークの動作を相対的に読み取る。ハンドルＨＤを回転させてもマークＭ２が見えるようにするために、複数マークを回転するハンドル上（握るところに限らず）に取り付ける。上記の振動による影響をキャンセルさせた後のマークＭ２の位置を（ｘ２，ｙ２，ｆ）とする。
【００３０】
次に、ハンドルＨＤの動きが画面上ではどのような動きになるかを特定するために、マークＭ２の位置からハンドルＨＤの回転量を測定する。マークＭ２のハンドル回転による中心位置を（Ｍｐｘ,Ｍｐｙ、Ｍｐｚ）とし、ハンドルＨＤの軸の向き(ハンドル面に対して垂直方向)を（Ｈｄｘ,Ｈｄｙ,Ｈｄｚ）とした場合、面の式は、
Ｈｄｘ・（ｘ−Ｍｐｘ）＋Ｈｄｙ・（ｙ−Ｍｐｙ）＋Ｈｄｚ・（ｚ−Ｍｐｚ）＝０
となり、マークのハンドル回転によりできる面上のカメラに対する位置（Ｅｘ,Ｅｙ，Ｅｚ）へのベクトルは（ｘ２,ｙ２,ｆ）となるので、
Ｅｘ＝ｘ２・ｔ
Ｅｙ＝ｙ２・ｔ
Ｅｚ＝ｆ・ｔ
となり、その値をマークＭ２のハンドル回転によりできる面の式に代入してtを導き出し、（Ｅｘ，Ｅｙ，Ｅｚ）が求まる。
【００３１】
次にハンドル円の面を、ハンドル円の中心を（０，０，０）でｚ＝０の面に変換するために、(Ｅｘ，Ｅｙ，Ｅｚ)をハンドルの中心で引いて（ｘ３，ｙ３，ｚ３）、ｘ軸回転し（ｘ４，ｙ４，ｚ４）、ｙ軸回転させる（ｘ５，ｙ５，ｚ５）。ｘ軸回転の回転角度を、Ｒｈｘ、ｙ軸の回転角度をＲｈｙとすると、
ｘ３＝Ｅｘ−Ｍｐｘ
ｙ３＝Ｅｙ−Ｍｐｙ
ｚ３＝Ｅｚ−Ｍｐｚ
ｘ４＝ｘ３
ｙ４＝ｙ３・cos(Ｒｈｘ)−ｚ３・sin(Ｒｈｘ)
ｚ４＝ｚ３・cos(Ｒｈｘ)＋ｙ３・sin(Ｒｈｘ)
ｘ５＝ｘ４・cos(Ｒｈｙ)＋ｚ４・sin(Ｒｈｙ)
ｙ５＝ｙ４
ｚ５＝ｚ４・cos(Ｒｈｙ)−ｘ４・sin(Ｒｈｙ)
となり、ここでのそれぞれの回転角度は下記のとおりである。なお、ハンドル円とは、ハンドルＨＤの太さの大小に関係なく、ハンドルＨＤの中心部分で描かれる円である。
【００３２】
Ｒｈｘ＝atan(Ｈｄｙ／Ｈｄｚ)
Ｒｈｙ＝−atan(Ｈｄｘ／(Ｈｄｚ・cos(Ｒｈｘ)＋Ｈｄｙ・sin(Ｒｈｘ)))
次に、マークＭ２のｚ軸回転角度位置を取得し、回転していないときの角度を引いた値が、そのときのハンドルの回転角度（Ｒｈｚ）となる。
【００３３】
上記の変換によるハンドルの回転角度の取得は、予めマークの位置ごとにLook Up Tableや射影変換式を用意しておいて取得してもよい。
【００３４】
＜相対動作計算部１２３について＞
相対動作計算部１２３は、手動作測定部１２１で取得した絶対的な手の動きを、画像上から複数のベクトルＡ群として手動作測定部１２１より検出する。そのベクトルＡ群をハンドル位置測定部１２２で取得した絶対的なハンドル位置とから、ハンドルに対する手の相対動作をベクトルＨ群として変換し求める。一つのベクトルＨは（Ｈｘ，Ｈｙ，Ｈｕ，Ｈｖ）(＝（画面上のｘ位置，画面上のｙ位置、１フレームでのｘ方向移動量、１フレームでのｙ方向移動量）)の４つのパラメータからなる。
【００３５】
画面上で取得できる手の動きベクトルは複数取得でき、その複数のベクトルを使用することになるが、変換計算は一つのベクトルのみで説明する。
【００３６】
画面上で取得した１つの絶対的な手の動きベクトルＡを（Ａｘ， Ａｙ，Ａｕ，Ａｖ）(＝(画面上のｘ位置、画面上のｙ位置、１フレームでのｘ方向移動量、１フレームでのｙ方向移動量))とし、車体の振動による影響をキャンセルしたベクトルＢを（Ｂｘ，Ｂｙ，Ｂｕ，Ｂｖ）(＝(画面上のｘ位置、画面上のｙ位置、１フレームでのｘ方向移動量、１フレームでのｙ方向移動量))とし、今の振動の回転量を（Ｒ１ｘ，Ｒ１ｙ，Ｒ１ｚ）(＝(ｘ軸回転量、ｙ軸回転量、ｚ軸回転量))とし、１フレーム前の回転量を（Ｒ０ｘ，Ｒ０ｙ，Ｒ０ｚ）とした場合、Ｂｘ，Ｂｙは、
Ｂｘ＝Ａｘ−(−(Ａｘ・Ａｙ／ｆ)・Ｒ１ｘ＋(ｆ・ｆ＋Ａｘ・Ａｘ)・(１／ｆ)・Ｒ１ｙ−Ａｙ・Ｒ１ｚ)
Ｂｙ＝Ａｙ−(−(ｆ・ｆ＋Ａｙ・Ａｙ)・(１／ｆ)・Ｒ１ｘ＋(Ａｘ・Ａｙ／ｆ)・Ｒ１ｙ＋Ａｘ・Ｒ１ｚ)
となり、一つ前のフレームでの振動の影響をキャンセルする前の位置（Ｃｘ,Ｃｙ）は、
Ｃｘ＝Ａｘ−Ａｕ
Ｃｙ＝Ａｙ−Ａｖ
なので、一つ前のフレームでの振動の影響をキャンセルした位置（Ｄｘ，Ｄｙ）は、
Ｄｘ＝Ｃｘ−(−(Ｃｘ・Ｃｙ／ｆ)・Ｒ０ｘ＋(ｆ・ｆ＋Ｃｘ・Ｃｘ)・(１／ｆ)・Ｒ０ｙ−Ｃｙ・Ｒ０ｚ)
Ｄｙ＝Ｃｙ−(−(ｆ・f＋Ｃｙ・Ｃｙ)・(１／ｆ)・Ｒ０ｘ＋(Ｃｘ・Ｃｙ／ｆ)・R０ｙ＋Ｃｘ・Ｒ０ｚ)
なので（Ｂｕ，Ｂｖ）は、
Ｂｕ＝Ｂｘ−Ｄｘ
Ｂｖ＝Ｂｙ−Ｄｙ
となる。
【００３７】
次に、ハンドルの動きが画面上ではどのような動きになるかを特定する。ハンドル回転中心位置を（Ｈｐｘ，Ｈｐｙ，Ｈｐｚ）とし、ハンドルの軸の向き（ハンドル面に対して垂直方向）を（Ｈｄｘ，Ｈｄｙ，Ｈｄｚ）とした場合、面の式は、
Ｈｄｘ・（ｘ−Ｈｐｘ）＋Ｈｄｙ・（ｙ−Ｈｐｙ）＋Ｈｄｚ・（ｚ−Ｈｐｚ）＝０
となり、車体の振動による影響をキャンセルしたベクトル（Ｂｘ，Ｂｙ，Ｂｕ，Ｂｖ）のハンドル面上のカメラに対する位置（Ｅｘ，Ｅｙ，Ｅｚ）へのベクトル量は、（Ｂｘ，Ｂｙ，ｆ）となるので、
Ｅｘ＝Ｂｘ・ｔ
Ｅｙ＝Ｂｙ・ｔ
Ｅｚ＝ｆ・ｔ
となり、その値をハンドル面の式に代入してｔを導き出し、（Ｅｘ，Ｅｙ，Ｅｚ）が求まる。
【００３８】
そして、ハンドル面をハンドル円の中心を（０，０，０）でｚ＝０の面に変換するために、（Ｅｘ，Ｅｙ，Ｅｚ）をハンドルの中心で引いて（ｘ３，ｙ３，ｚ３）、ｘ軸回転し（ｘ４，ｙ４，ｚ４）、ｙ軸回転させる（ｘ５，ｙ５，ｚ５）。ｘ軸回転の回転角度をＲｈｘ，ｙ軸の回転角度をＲｈｙとすると、
ｘ３＝Ｅｘ−Ｈｐｘ
ｙ３＝Ｅｙ−Ｈｐｙ
ｚ３＝Ｅｚ−Ｈｐｚ
ｘ４＝ｘ３
ｙ４＝ｙ３・cos(Ｒｈｘ)−ｚ３・sin(Ｒｈｘ)
ｚ４＝ｚ３・cos(Ｒｈｘ)＋ｙ３・sin(Ｒｈｘ)
ｘ５＝ｘ４・cos(Ｒｈｙ)＋ｚ４・sin(Ｒｈｙ）
ｙ５＝ｙ４
ｚ５＝ｚ４・cos(Ｒｈｙ)−ｘ４・sin(Ｒｈｙ)
となり、ここでのｘ軸およびｙ軸の回転角度は、下記のとおりである。
【００３９】
Ｒｈｘ＝atan(Ｈｄｙ／Ｈｄｚ)
Ｒｈｙ＝−atan(Ｈｄｘ／(Ｈｄｚ・cos(Ｒｈｘ)＋Ｈｄｙ・sin(Ｒｈｘ)))
今のハンドルＨＤの回転角度をＲｈ１ｚとし、１フレーム前のハンドルの回転角度をＲｈ０ｚとした場合、1フレームでのハンドル回転角度Ｒｈｄｚは、
Ｒｈｄｚ＝Ｒｈ１ｚ−Ｒｈ０ｚ
となり、ｚ＝０の面にしておいたベクトルの座標を−Ｒｈｄｚ分z軸回転させて（ｘ６，ｙ６，ｚ６）、１フレーム前の座標を特定する。
【００４０】
ｘ６＝ｘ５・cos(−Ｒｈｄｚ)−ｙ５・sin(−Ｒｈｄｚ)
ｙ６＝ｙ５・cos(−Ｒｈｄｚ)＋ｘ５・sin(−Ｒｈｄｚ)
ｚ６＝ｚ５
その値をｚ＝０への変換の逆を行う。つまり、−Ｒｈｙ分ｙ軸回転し、−Ｒｈｘ分ｘ軸回転し、ハンドル回転中心位置（Ｈｐｘ，Ｈｐｙ，Ｈｐｚ）を加算する。その値を（Ｆｘ，Ｆｙ，Ｆｚ）とし、ベクトルを検出した面へ展開した座標を（Ｇｘ，Ｇｙ）とすると、
Ｇｘ＝ｆ・Ｆｘ／Ｆｚ
Ｇｙ＝ｆ・Ｆｙ／Ｆｚ
となり、ハンドルの回転成分をキャンセルしたベクトルＨ（Ｈｘ，Ｈｙ，Ｈｕ，Ｈｖ）は、
Ｈｘ＝Ｂｘ
Ｈｙ＝Ｂｙ
Ｈｕ＝Ｂｕ−(Ｂｘ−Ｇｘ)
Ｈｖ＝Ｂｖ−(Ｂｙ−Ｇｙ)
となり、このベクトルＨ（Ｈｘ，Ｈｙ，Ｈｕ，Ｈｖ）を利用する。
【００４１】
しかしながら、このままではまだ扱いづらい。そのため、図６（ｂ），（ｃ）の太線に示すように、ハンドル円を直線に伸ばして処理させる。ベクトルの頂点とそのベクトルの１フレーム前の位置をそれぞれ、上記したとおり、ハンドル面の３次位置への変換、ハンドルの中心座標減算，Ｒｈｘ分ｘ軸回転、Ｒｈｙ分ｙ軸回転した位置での半径とｚ軸回転角度θを取得する。そのz軸回転角度θにハンドルの回転角度の絶対量Ｒｈｚをキャンセルして、ハンドルの位置に対する手の位置とする。
【００４２】
そして、半径をｙ軸、角度をｘ軸として変換させる。次に、ハンドルの形が楕円だった場合には、z軸回転角度ごとにハンドルの半径ずれ分オフセットを加えて、ハンドルの形状が直線に見えるように変換し、ハンドル位置が０になるようにする。以上の変換により操作の判定をわかりやすくさせる。このときのベクトルＩを（Ｉｘ，Ｉｙ，Ｉｕ，Ｉｖ）とすると、それぞれの意味は下記のようになり、このベクトルを操作判定部１２４に送り、操作を判定させる。
【００４３】
Ｉｘ：ハンドルの輪の方向（輪の中心に対しての角度)の位置
Ｉｙ：ハンドルの輪の中心に対しての方向の位置（０はハンドルの輪の位置）
Ｉｕ：ハンドルの輪の方向(輪の中心に対しての角度)の移動量
Ｉｖ：ハンドルの輪の中心に対しての方向の移動量
上記の変換は、予め元の画像位置ｘ，ｙに対して半径とｚ軸回転角度のLook Up Tableを用意しておきベクトルを線形補間などで展開して、ハンドルの回転角度分シフトさせて、ハンドルの形が楕円だった場合にはオフセットを加えて変換させてもよい。
【００４４】
また、ｚ軸回転角度ごとにハンドルの形が楕円だった場合を考慮したLook Up Tableを用意して、画像をそのLook Up Tableで展開し、その画像からベクトルを検出させてもよい。その場合、元画像から振動成分をキャンセルした位置からLook Up Tableで展開させる。
【００４５】
＜操作判定部１２４について＞
操作判定部１２４では、相対動作計算部１２３からベクトルＩを複数もらうことになるが、そのベクトルＩ群からスライド操作の内容を判断して、それに応じた被操作機器へのアナログ的な操作量、方向、もしくは操作指令コードを出力する。この出力は音声などで指定した被操作機器によって特定となる。
【００４６】
図７に示すように、表示部２３上の縦方向へのアナログ移動操作指令と横方向へのアナログ移動操作指令を行う場合について説明する。表示部２３の縦の操作を自動二輪車のアクセルのようにハンドルをねじる方向７ａ、表示部２３の横の操作をハンドルの輪のある方向に動かす方向７ｂとする。そうした場合、相対動作計算部１２３でのベクトルＩ群の検出結果は、図８のようになる。
【００４７】
まずハンドル上の手のある位置を特定する。ハンドルの輪の楕円がｙ＝０の直線に展開されているので、輪の太さ分の領域（ｙ＝０付近）にある程度の大きさのベクトルが多数存在していれば、そのｘの範囲ａ１＜ｘ＜ａ２でベクトルの分布を測定する。そうすることにより、ハンドル上の操作のベクトルとそうでないベクトルとの切り分けを行う。また、色情報により手の色と特定してもよい。
【００４８】
縦の操作は、同じｙ位置Ｉｙとなるもの同士が同じｙ方向の移動量Ｉｖとなっており、ハンドルの位置（ｙ＝０）で一番大きく、上下（ｙ≠０）で小さい状態になり、操作の移動量はハンドル位置（ｙ＝０）でのy方向のベクトル量で計算する。例えばハンドルの輪の付近の範囲をRange１(−ｂ１＜ｙ＜ｂ１)、ハンドルの輪の外側の範囲をRange２(ｂ１＜ｙ＜ｂ２)、ハンドルの輪の中側の範囲をRange３(−ｂ２＜ｙ＜−ｂ１)とする。まずベクトルの大きさＩｖがほぼ０となるベクトルは除去する。そして残った個数が少ない場合はスライド操作ではないと判定する。そしてRange１にあるベクトルのＩｖの平均Ｊ１ｖを求める。Range１のＩｖの分散（例えば平均からのずれ量（|Ｉｖ−Ｊ１ｖ|）がある閾値より大きい個数を全体の個数で割った割合）が大きい場合、ばらついているためスライド操作ではないと判定する。同様にRange２の平均Ｊ２ｖと分散を計算し、分散が大きい場合は、ばらついているためスライド操作ではないと判定する。
【００４９】
同様にRange３の平均Ｊ３ｖと分散を計算し、分散が大きい場合は、ばらついているためスライド操作ではないと判定する。次に、３つの平均（Ｊ１ｖとＪ２ｖとＪ３ｖ）が同じ極性ではない場合はスライド操作ではないと判定する。
【００５０】
次に、Range１での大きさ（|Ｊ１ｖ|）が他の範囲での大きさ（|Ｊ２ｖ|と|Ｊ３ｖ|）に対する割合が、ある範囲で大きくなっている場合（(ｃ１＜|Ｊ１ｖ|／|Ｊ２ｖ|＜ｃ２)かつ（ｃ１＜|Ｊ１ｖ|／|Ｊ３ｖ|＜ｃ２）、ただしｃ１，ｃ２は１以上）に、スライド操作とする。そして縦操作の移動量はＪ１ｖにある係数をかけた値で計算する。
【００５１】
横の操作は、手のある位置にあるすべてのベクトルがほぼ同じｘ方向の移動量Ｉｕとなっており、操作の移動量はハンドル位置（ｙ＝０）でのｘ方向のベクトル量で計算する。例えば、まずベクトルの大きさＩｕがほぼ０となるベクトルは除去する。そして残った個数が少ない場合はスライド操作ではないと判定する。そしてRange１にあるベクトルのＩｕの平均Ｊ１ｕを求める。Range１のＩｕの分散（例えば平均からのずれ量（|Ｉｕ−Ｊ１ｕ|）がある閾値より大きい個数を全体の個数で割った割合）が大きい場合、ばらついているためスライド操作ではないと判定する。同様にRange２の平均Ｊ２ｕと分散を計算し、分散が大きい場合は、ばらついているためスライド操作ではないと判定する。同様にRange３の平均Ｊ３ｕと分散を計算し、分散が大きい場合は、ばらついているためスライド操作ではないと判定する。
【００５２】
次に、３つの平均Ｊ１ｕとＪ２ｕとＪ３ｕが同じ極性ではない場合は、スライド操作ではないと判定する。次に、Range１での大きさ|Ｊ１ｕ|が他の範囲での大きさ|Ｊ２ｕ|と|Ｊ３ｕ|に対する割合がある範囲に収まっている場合、（(ｄ１＜|Ｊ１ｕ|／|Ｊ２ｕ|＜ｄ２)かつ(ｄ１＜|Ｊ１ｕ|／|Ｊ３ｕ|＜ｄ２)、ただしｄ１は１以下,ｄ２は１以上）に、スライド操作とする。そして横操作の移動量はＪ１ｕにある係数をかけた値で計算する。カメラはドライバーに対して逆向きとしている場合には、横操作は左右逆方向となる。
【００５３】
ここでの操作をアナログ的な移動量や方向とした場合、縦操作と横操作を合わせたのが移動量、方向となる。たとえば操作の移動量、方向が表示部２３上のカーソルの移動量、方向に変換される。
【００５４】
ここでの操作を操作指令とした場合には、１フレーム間の移動量ではなく複数フレームでの累計移動量が指定した閾値を超えた場合に操作指令とする。たとえば縦操作の累計移動量が指定した閾値を超えた場合に、表示部２３上の表示を違う画像に切り替える。
【００５５】
操作範囲が不足する場合には、一度手を離して位置を戻し、再び掴んで操作させる。手をハンドルから離しているときは操作していないことにすることで、スライドを限りなく行うことができる。
【００５６】
この実施形態のいろいろな操作方法例を（１）〜（１２）に示し説明する。
【００５７】
（１）アナログ操作だけではなく、縦方向操作を上下にすばやく行いＹｅｓ（決定、選択）判定、横方向操作を左右にすばやく行いＮｏ（キャンセル）判定としてもよい。  
（２）ハンドル上で手がべたついて滑らない場合を想定した場合、手の肉が変形する分だけの小さなねじれと輪の方向の動きとなる。その場合(すべる場合でも)では、最初の手の位置を基準として、基準位置からの手のずれ量により、操作の移動速度として操作してもよい。また、横方向は握った手の手首をねじる動作で決めてもよい。また、上下や左右のように手の肉の変形とそれを戻す動作を一連の動作とし、最初に移動させた方向を操作移動方向としてもよい。  
（３）ハンドルを強く握ったとき（ベクトルの大きさがどれも小さく、向きがばらばら(手の中心方向)で、移動後すぐにもとの位置に戻る(移動終了時の画像と移動開始時の画像でのベクトルが出ない)）に決定とし、手首をねじった時(ある程度大きいベクトルが多く、向きがばらばら(手の中心に回転方向)で、移動後すぐにもとの位置に戻る)、または手首をねじるのを左右素早く行う、または、手を軽く開いたとき(ある程度大きいベクトルが多く、向きがばらばら(手の中心から離れる方向)で、移動後すぐにもとの位置に戻る)でキャンセルとしてもよい。  
（４）ハンドルを親指側で強く握った場合決定とし、小指側で強く握った場合キャンセルとしてもよい。また、強く握った指ごとに操作を変えてもよい。  
（５）両手を使い、それぞれの手が上下逆の場合は回転操作とし、それぞれの手を近づける場合は縮小操作とし、それぞれの手を遠ざける場合は拡大操作として、操作を拡張させてもよい。  
（６）指を上げて操作し、上げる指によって操作対象を変更してもよい。また、指を上げたときに操作対象が何であるか音声で知らせてもよい。その場合、片方の手で指を上げて操作対象、もう一方の手でアナログ操作としてもよい。  
（７）左と右の手で違う操作系としてもよい。  
（８）片方の手の位置を基準とした相対距離での操作としてもよい。  
（９）右手で上下と左右、左手で奥行きとねじれ方向(奥行き方向の軸の回転)や時間方向など、左右の手を使用して３次元や４次元操作としてもよい。  
（１０）ハンドルをつかんだ手の位置もしくは、操作開始したときの手の位置を基準として、そこからの相対距離によって操作される移動の速度を変更してもよい。  
（１１）ハンドル上の決められた位置を最初につかむことにより、操作系を変えてもよい。  
（１２）手の大きさを検出してその大きさによって、カーソルや移動したかの閾値や移動量の正規化をさせてもよい。そうすることにより、人によっての操作間隔のずれが軽減される。
【００５８】
＜駆動部１３について＞
駆動部１３は、操作される装置である。例えば、操作した場合、車内ＬＡＮ２６経由でウインドウの上げ下げや、ナビなど表示装置のカーソル位置移動や、ヘッドアップディスプレイの輝度調整や位置調整などを行う。
【００５９】
操作したかどうかをドライバーに知らせるために、音声で案内させてもよい。例えば、アナログ操作では、決められた移動量に対して音を１回鳴らし、その量の数倍の移動をした場合には現在どの状態かを音声で案内すればよい。例えば、車内温度を操作した場合、１度ごとに「ポン」という音を鳴らし、５度分解能になったときに「１５度です」というように音声で案内する。また、操作する方向(温度を上げるか下げるか)によって案内する音の音質を変更してもよい。また、操作したかどうかだけであれば音声で操作したことを知らせればよい。
【００６０】
操作される装置は他に、音楽のボリュームや、選曲リスト、ナビの操作や、ワイパー速度やウインドウ開閉などの車内環境や、スマートフォンなどの持込機器でもよい。また、インターネット経由で家や会社などの車外の操作を行ってもよい。また、車両に取り付けられたカメラの表示の切り替えやその俯瞰画像の視点の切り替えなど運転状況により異なる状態をドライバーが操作してもよい。
【００６１】
＜キャリブレーションについて＞
上記の動作を実現するためには、ハンドルＨＤ上のマークＭ２の回転中心位置（Ｍｐｘ,Ｍｐｙ，Ｍｐｚ）とハンドルＨＤが回転していないときの角度（Ｒｈｚ）、ハンドル面の垂直方向（Ｈｄｘ，Ｈｄｙ，Ｈｄｚ）、ハンドル面の回転中心位置（Ｈｐｘ，Ｈｐｙ，Ｈｐｚ）、ハンドルＨＤの角度ごとの半径がわかっている必要がある。そのためそれぞれの位置を取得するために、最初にキャリブレーションする必要がある。カメラ２２の取り付け位置や角度、マークまでの距離やハンドルの位置や向きを実測してもよいが、ここでは簡単にキャリブレーションする方法を説明する。
【００６２】
まず、図９および図３に示すように、マークＭ３をハンドルＨＤ上に取り付け、ハンドルＨＤが回転していない状態でそのマークＭ３の取り付け位置を取得する。ハンドルＨＤが回転していない（陀角がない）状態は目視して判断してもよいが、車内ＬＡＮ２６をしようとして回転していないと判断してもよい。その位置を基準として、ハンドルＨＤを回転させてマークＭ３の取り付け位置を複数取得する。画像上のマークＭ３の取り付け位置を（Ｍ３ｘ,Ｍ３ｙ,ｆ）、３次元空間上の位置を（Ｈｍｘ，Ｈｍｙ，Ｈｍｚ）とすると、
Ｈｍｘ＝Ｍ３ｘ・ｔ
Ｈｍｙ＝Ｍ３ｙ・ｔ
Ｈｍｚ＝ｆ・ｔ
ｘ３＝Ｈｍｘ−Ｈｐｘ
ｙ３＝Ｈｍｙ−Ｈｐｙ
ｚ３＝Ｈｍｚ−Ｈｐｚ
ｘ４＝ｘ３
ｙ４＝ｙ３・cos(Ｒｈｘ)−ｚ３・sin(Ｒｈｘ)
ｚ４＝ｚ３・cos(Ｒｈｘ)＋ｙ３・sin(Ｒｈｘ)
ｘ５＝ｘ４・cos(Ｒｈｙ)＋ｚ４・sin(Ｒｈｙ）
ｙ５＝ｙ４
ｚ５＝ｚ４・cos(Ｒｈｙ)−ｘ４・sin(Ｒｈｙ)
となる。ここでのそれぞれの回転角度は、下記のとおりである。
【００６３】
Ｒｈｘ＝atan（Ｈｄｙ／Ｈｄｚ）
Ｒｈｙ＝−atan（Ｈｄｘ／(Ｈｄｚ・cos(Ｒｈｘ)＋Ｈｄｙ・sin(Ｒｈｘ))）
Sqrt（）を、√（ルート）演算とすると、
cos(Ｒｈｘ)＝Ｈｄｚ／sqrt(Ｈｄｙ・Ｈｄｙ＋Ｈｄｚ・Ｈｄｚ)
sin(Ｒｈｘ)＝Ｈｄｙ／sqrt(Ｈｄｙ・Ｈｄｙ＋Ｈｄｚ・Ｈｄｚ）
代入すると、
Ｒｈｙ＝-atan(Ｈｄｘ／sqrt(Ｈｄｙ・Ｈｄｙ＋Ｈｄｚ・Ｈｄｚ))
cos(Ｒｈｙ)＝ sqrt(Ｈｄｙ・Ｈｄｙ＋Ｈｄｚ・Ｈｄｚ)／sqrt(Ｈｄｘ・Ｈｄｘ＋Ｈｄｙ・Ｈｄｙ＋Ｈｄｚ・Ｈｄｚ)
sin(Ｒｈｙ)＝−Ｈｄｘ／sqrt（Ｈｄｘ・Ｈｄｘ＋Ｈｄｙ・Ｈｄｙ＋Ｈｄｚ・Ｈｄｚ)
となる。ハンドル上の点であるので下記の条件が満たされる。
【００６４】
ｚ５＝０
ｒ・ｒ＝ｘ５・ｘ５＋ｙ５・ｙ５（ｒ(半径)は一定）
Ｈｄｘ・(Ｈｍｘ−Ｈｐｘ)＋Ｈｄｙ・(Ｈｍｙ−Ｈｐｙ)＋Ｈｄｚ・(Ｈｍｚ−Ｈｐｚ)＝０（ｔを計算する）
画像上から見える物体の大きさは相対的であるため、ハンドルＨＤ上のマークＭ３の回転の半径ｒやハンドル面の回転中心のz座標Ｈｐｚを定数（例えば１）として計算し、条件にあうハンドル面の垂直方向（Ｈｄｘ，Ｈｄｙ,Ｈｄｚ）、ハンドル面の回転中心位置（Ｈｐｘ，Ｈｐｙ，Ｈｐｚ）を導き出す。
【００６５】
次に、図１０のように、ハンドルを回転していない状態（ａ）で、ハンドル面をｚ＝０、ハンドル面の回転中心を（０，０，０）とした変換位置での、ｘ＝０，ｚ＝０の直線上のハンドル円上に近い２点Ｐ１,Ｐ２を選び、画像上での位置Ｑ１，Ｑ２に変換する。この画像上の２点が作る直線上のハンドルの位置を読み取ることにより、ハンドル位置をキャンセルさせることができるようになる。ハンドル位置を読み取る方法として例えば、まず、ハンドルＨＤとは違う色、例えば緑などのシート１０１をカメラ２２から見てハンドルＨＤの裏側になるように配置する。なお、シート１０１を配置しなくても判断できる場合は、特に必要としない。
【００６６】
そして、ハンドルＨＤが回転していない状態で、ハンドル円上のマークＭ３の角度θ０を導き出す。次に、画面上の直線Ｑ１，Ｑ２上にあるハンドルＨＤの輪の内外位置Ｑ３，Ｑ４を読み取り、真ん中の位置Ｑ５を計算する。その位置をｚ＝０の面になるように変換したときの位置Ｐ５がハンドルの半径ｙ５となりそのときの角度がθ＝０となる。ハンドルの輪の形が真円ではない場合は、次からはハンドルの輪の外側と直線の交点のみ読み取って、ハンドルが回転していない状態で取得したハンドルの輪の外側と中心の距離分だけずらした位置をハンドルの輪の中心とする。そうする理由は、ハンドルの輪からハンドル回転中心へ向かうハンドルの輪を支える部分がある場合、境界を見つけられないためである。そして、ｚ＝０の面になるように変換Ｐ６してハンドルの半径ｙ５と、ハンドル円上のマークの角度θ１をハンドルが回転していない状態で取得した角度θ０でキャンセルした角度をθとする。それを複数プロットし半径の曲線を作り出す。
【００６７】
次に、ハンドルの回転物上のマークＭ２の回転中心位置（Ｍｐｘ，Ｍｐｙ，Ｍｐｚ）とハンドルが回転していないときの角度（Ｒｈｚ）もハンドル円上のマークＭ３を導き出した計算と同様の計算で導き出す。
【００６８】
以上の方法により必要なパラメータを最初に取得しておく。ハンドル円上のマークＭ３は、ドライバーが触るハンドル円上に設置したため、キャリブレーションが終了したら取り外す。
【００６９】
＜操作終了判定部１４について＞
操作終了判定部１４によるスライド操作終了の判定は、たとえば、ドライバーが「操作終了」と発したことを音声認識部２１が認識することにより行う。
【００７０】
操作終了を判定する手段は、音声認識部２１による音声認識の他に、カメラ２２やタッチパッド２５により操作する側の手ではない方の手がハンドルから離れたと判定された場合や、車内ＬＡＮ２６によりブレーキを踏んだ場合や、アクセルの踏み込み具合を変えた場合や、急にハンドルを回した場合や、大きくハンドルを回した場合や、全く違うジェスチャーや、全く違う声を発した場合にも、操作終了の判定としてもよい。
【００７１】
さらに、操作時間を設けてその時間が過ぎたら自動的に操作終了判定としてもよい。また、表示部２３などにカーソルを表示させて操作する場合は、目線をある時間以上進行方向から離して表示部２３を見ていたときは危険であるため強制的に操作終了としてもよい。また、被操作機器とも進行方向とも関係ないところに目線を移した場合にも、操作終了としてもよい。また、特定の手の指を上げているときのみ操作開始とし、指が下がったら操作終了としてもよい。また、車両が静止しているときのみ操作を許した場合、車両が動いた場合やブレーキを踏まなくなった場合に操作終了としてもよい。また、目を見開いたり、口を大きく開けたり、びっくりした表情など表情を変化した場合にも、操作終了としてもよい。
【００７２】
このように、ハンドルＨＤ上で位置も特定されないので目線を外す必要がなく、また、ハンドルＨＤから手を離さないため安全である。ハンドルＨＤを握っている位置で操作可能であるため、最小限の手の動きで操作可能である。また、２次元のアナログ操作を可能としているため、操作の自由度があるといえる。停止中にも操作するものに手を伸ばす必要がなく、楽に操作することができる。
【００７３】
この実施形態では、ハンドルから手を離さず、視線を車外から離すことなく安全に運転しながら操作することができる。また、操作量を手で感じることができる。また、操作開始と終了を指定することにより誤動作を防止することができる。
【００７４】
（第２の実施形態）
図１１〜図１７は、それぞれ駐車支援装置に関する第２の実施形態を示す。第１の実施形態では、ハンドルを握った状態の操作であったが、この実施形態ではハンドルを握らず指を広げて手のひらで操作する、というものである。
【００７５】
手のひらをハンドルの輪の外側や内側に接しさせた場合、図１１の破線円（ａ）に示すように手を奥や手前に動かす奥行き操作と、ハンドルの輪の方向に移動させる横操作が可能である。また、手のひらの中心に対して手のひらを回転させる方向のねじれ操作も可能となる。
【００７６】
図１１の破線円（ｂ）に示すように、手のひらをハンドルの手前側に接しさせた場合、手を上下に動かす縦操作と、手を左右に動かす横操作が可能である。また、手のひらの中心に対して手のひらを回転させる方向のねじれ操作も可能となる。
【００７７】
このように、この実施形態では手のひらのみをハンドルに接することにより、より直感的に操作することを可能とさせるものであり、手のひらをハンドルに接させるという条件を入れることにより、安全な運転を維持することができる。以下第１の実施形態とは異なる部分について説明する。
【００７８】
＜相対動作計算部１２３について＞
この実施形態での相対動作計算部１２３では、ハンドル面の回転中心を（０，０，０）として、ハンドル面をｚ＝０とした状態の手の動きを利用する。そのときハンドル円は、ハンドルを1フレームでの回転分回転させておく。
【００７９】
＜操作判定部１２４について＞
この実施形態での操作判定部１２４では、まず手がハンドルと接しているかの判定は、図１２に示すように、ハンドルＨＤそのものをタッチパッドにするか、もしくはカメラ２２でハンドルＨＤの輪と手の外側か内側の境界１２ａ，１２ｂで、手側の境界がある程度暗くなるかで判定する。
【００８０】
手がハンドルから離れている場合、手側の境界で暗くなることは無いためである。影を捕らえられやすいように、カメラの位置をずらすか、カメラを複数取り付けてもよい。また、ライトを取り付けてもよい。影を取得する場合には、第１の実施形態で記載したように、ハンドルの輪の曲線を真横に変換してから取得してもよいし、元画像でのハンドルの位置で取得してもよい。
【００８１】
手のひらをハンドルの輪の外側に接地させた場合には、図１３〜図１５に示すように、得られたベクトルが図１３のようにハンドルの輪の中心付近から外に向かう方向で外ほど大きい場合には、手を奥に移動させたと判定する。逆に、得られたベクトルが図１４に示すように外側からハンドルの輪の中心付近に向かう方向で外ほど大きい場合には手を手前に移動させたと判定する。
【００８２】
図１５のように奥行き方向の移動のみの場合には、車の進行方向を基準とした操作方向の場合、カメラ画像上での自車の真後ろ方向をｚ＝０の面に変換した位置での収束点（ＦＯＥＷｘ，ＦＯＥＷｙ）になり(ハンドルの回転角度によって位置がずれる)、ハンドルの輪の面を基準とした操作方向の場合には、収束点は（ＦＯＥＨｘ，ＦＯＥＨｙ）となる。自車の真後ろの収束点（ＦＯＥＷｘ，ＦＯＥＷｙ）は、カメラから自車の真後ろ方向へのベクトルを（ＶＣｘ，ＶＣｙ，ＶＣｚ）とし、画面上の収束点を（ＶＣｆｘ，ＶＣｆｙ，ｆ）とすると、
ＶＣｆｘ＝ｆ・ＶＣｘ／ＶＣｚ
ＶＣｆｙ＝ｆ・ＶＣｙ／ＶＣｚ
となる。上記の画面上の収束点を第１の実施形態のように、ハンドル面の回転中心を（０，０，０）として、ハンドル面をｚ＝０とし、ハンドルを1フレームでの回転分回転させる。そのときのｘ座標とｙ座標が(ＦＯＥＷｘ，ＦＯＥＷｙ)となる。
【００８３】
また、ハンドルの輪の面を基準とした垂直方向の収束点（ＦＯＥＨｘ,ＦＯＥＨｙ）は、ハンドルの面の垂直方向のベクトルが（Ｈｄｘ，Ｈｄｙ，Ｈｄｚ）であるため、画面上の収束点（ＶＨｆｘ，ＶＨｆｙ，ｆ）とすると、
ＶＨｆｘ＝ｆ・Ｈｄｘ／Ｈｄｚ
ＶＨｆｙ＝ｆ・Ｈｄｙ／Ｈｄｚ
となる。上記の画面上の収束点を第１の実施形態のように、ハンドル面の回転中心を（０，０，０）として、ハンドル面をｚ＝０とし、ハンドルを1フレームでの回転分回転させる。そのときのｘ座標とｙ座標が（ＦＯＥＨｘ，ＦＯＥＨｙ）となる。
【００８４】
次に、操作方向を導き出す。奥行き方向以外に縦や横方向の移動も同時に操作した場合収束点がずれる。そのためまず下記の計算式を使用し最小２乗解などで、画面に対しての操作方向（Ｔｘ，Ｔｙ，Ｔｚ）を導き出す。得られるベクトルＩ群の１つを（Ｉｘ,Ｉｙ,Ｉｕ，Ｉｖ）(＝(画面上のｘ位置、画面上のｙ位置、１フレームでのｘ方向移動量、１フレームでのｙ方向移動量))とすると、
Ｈｆ・Ｔｘ−Ｉｘ・Ｔｚ＝Ｉｕ・Ｈｆ
Ｈｆ・Ｔｙ−Ｉｙ・Ｔｚ＝Ｉｖ・Ｈｆ
Ｈｆ＝sqrt(Ｈｐｘ・Ｈｐｘ＋Ｈｐｙ・Ｈｐｙ＋Ｈｐｚ・Ｈｐｚ)  （Ｈｆはハンドルの輪の中心までの距離）
このとき分散が大きい場合は操作とはしない。
【００８５】
得られた操作方向（Ｔｘ，Ｔｙ，Ｔｚ）は、車の進行方向を基準とした操作方向の場合、自車の真後ろ方向の収束点分、操作方向を回転させる必要がある。回転後の操作方向を（ＴＡｘ,ＴＡｙ,ＴＡｚ）とすると
ｘ３＝Ｔｘ
ｙ３＝Ｔｙ
ｚ３＝Ｔｚ
ｘ４＝ｘ３
ｙ４＝ｙ３・cos(Ｒｆｘ)−ｚ３・sin(Ｒｆｘ)
ｚ４＝ｚ３・cos(Ｒｆｘ)＋ｙ３・sin(Ｒｆｘ)
ＴＡｘ＝ｘ４・cos(Ｒｆｙ)＋ｚ４・sin(Ｒｆｙ）
ＴＡｙ＝ｙ４
ＴＡｚ＝ｚ４・cos(Ｒｆｙ)−ｘ４・sin(Ｒｆｙ）
ここでのそれぞれの回転角度は下記のとおりである。
【００８６】
Ｒｆｘ＝atan(ＦＯＥＷｙ／Ｈｆ)
Ｒｆｙ＝−atan(ＦＯＥＷｘ／(Ｈｆ・cos(Ｒｆｘ)＋ＦＯＥＷｙ・sin(Ｒｆｘ)))
ハンドルの輪の面を基準とした操作方向の場合は、(ＦＯＥＷｘ,ＦＯＥＷｙ)が（ＦＯＥＨｘ,ＦＯＥＨｙ）に置き換えた計算とすればよい。回転後の操作方向（ＴＡｘ,ＴＡｙ,ＴＡｚ）はカメラからの向きであるため、カメラはドライバーに対して逆向きとしている場合には（−ＴＡｘ,ＴＡｙ,−ＴＡｚ）となる。
【００８７】
横方向は地面に対して水平方向とする場合には、図１６に示すように、地面に対して垂直方向を上方向となるように操作方向をｚ軸回転させる。地面に対して垂直方向は、カメラ画像上のハンドルの輪の回転中心から真上の位置を、ハンドルの輪の平面上の回転しない部分もしくはハンドルの輪の平面上の回転させていないときに取得しておいた部分を１点選んでおき、その頂点をｚ＝０の面になるように変換したときのその点の方向である。
【００８８】
また、輪のある方向の移動を横方向とする場合には、図１７に示すように、ベクトル群の中心位置を読み取ってその位置に対しての輪のある方向分、操作方向を回転させる。
【００８９】
また、ハンドルの輪をｚ＝０の面とはせずに取得した画面上で、操作方向を計算してもよい。特にカメラの位置がハンドルの中心からハンドルの面に対して垂直方向に無い場合や、ハンドル面に対してカメラが近すぎる場合に有効となる。その場合、車の進行方向を基準とした操作方向の場合には、（ＦＯＥＷｘ,ＦＯＥＷｙ,Ｈｆ）を画面上の収束点（ＶＣｆｘ,ＶＣｆｙ,ｆ）に置き換えて計算すればよい。また、ハンドルの輪の面を基準とした操作方向の場合には、（ＦＯＥＷｘ,ＦＯＥＷｙ,Ｈｆ）を画面上の収束点（ＶＨｆｘ,ＶＨｆｙ,ｆ）に置き換えて計算すればよい。
【００９０】
この実施形態のいろいろな操作方法例を（１）〜（４）に示し説明する。  
（１）ハンドルの輪の周りのベクトルが時間の経過につれ大きくなり、ハンドルの輪と手の境界に影ができてとまった場合、ハンドルをたたいたと判別し、Ｙｅｓ判定させてもよい。  
（２）ハンドルの輪の外側ほどベクトルが大きく向きは輪の中心方向で、輪の付近ではベクトルが小さい場合、手のひらを中心に手の平を倒したと判別し、Ｙｅｓ判定させてもよい。  
（３）ハンドルの輪を横方向に横切るベクトルが時間的に連続していて、一度ハンドルの輪と手の境界に影ができて、その影が無くなる場合、ハンドルの輪を払う動作と判別し、No(キャンセル)判定としてもよい。  
（４）ハンドルの輪の一部分を中心にベクトルが回転方向に分布している場合、手のひらを中心に手をねじらせていると判別し、Ｎｏ(キャンセル)判定としてもよい。
【００９１】
＜拡張形態について＞
第１、第２の実施形態において考えられる拡張形態の例を下記の（１）〜（１６）に示し説明する。  
（１）ハンドルの回転部分にカメラを設置して、操作を取得してもよい。その場合、振動を吸収するためにハンドルの回転部分にマークを設置して、振動分を吸収する。また、ハンドルの回転部分ではない固定された部分にマークを取り付け、ハンドルの回転角度を取得する。そうすることにより操作取得範囲は狭くなるが、操作を精度良く取得することができ、計算量が削減される。その場合、カメラが回転部に設置されるため、計算上、ハンドルの回転部分ではない固定部に取り付けられたマークを回転部分として計算させる。
（２）検出したベクトルを回転や移動計算させたが、取得したマークの位置で振動と回転をキャンセルした後に画像を変換させて、変換した画像よりベクトルを検出させてもよい。  
（３）回転や移動計算は射影変換なので、予め４点を変換させて下記の射影変換式を作成しておき、その変換式によって変換させてもよい。  
ｘ＝（Ａ・ｘ＋Ｂ・ｙ＋Ｃ）／(Ｇ・ｘ＋Ｈ・ｙ＋１）
ｙ＝（Ｄ・ｘ＋Ｅ・ｙ＋Ｆ）／(Ｇ・ｘ＋Ｈ・ｙ＋１)
（４）手の位置を検出しやすいように遠赤外線を使用してもよい。また、可視光カメラの赤成分のみを使用してもよい。  
（５）ハンドルの輪の部分をすべて見られるようにするために、カメラを複数の場所に取り付け、それに伴いマークも取り付け処理してもよい。そうすることにより、ハンドル上であればどこでも操作が可能となる。  
（６）手袋や指輪など特徴的なマークを手に取り付けて、検出精度を上げてもよい。  
（７）爪先や、指の付け根、指隙間の溝、指の関節位置、指のしわなどを読み取ることにより、より正確に手の動きを検出してもよい。  
（８）ハンドルの特定箇所のみ(ハンドルの真上や真横など)操作できるようにしてもよい。そうすることにより、より操作したか運転したかの区別をすることができる。  
（９）ハンドルの輪の中にカメラを取り付けて、ハンドルを透明にして操作を取得してもよい。  
（１０）１フレーム間の操作で判断せず、時間的な連続性やそのばらつきによって操作と判定してもよい。  
（１１）スマートフォンなどのカメラや音声認識や処理性能を使用して処理してもよい。  
（１２）自車が停止中のときに限定して使用するのであれば、振動成分を吸収する処理や、そのとき使用するマークをキャリブレーションの後に取り除いてもよい。また、ハンドルの回転も行われていないとして、ハンドルの回転角度をキャンセルする処理も省いてもよい。その場合、振動を吸収しないので、ハンドルの輪が真正面、つまり中心が（０，０，０）で、ハンドル面がｚ＝０となるように変換するLook Up Tableを作成しておき、画像を変換し、その画像よりベクトルを取得してもよい。また、ハンドルの形が真円であれば、ハンドルの回転角度を取得する処理や、その時使用するマークをキャリブレーションの後に取り除いてもよい。その場合、ハンドルの回転角度は必要としないので、Look Up Tableを最初からハンドルの輪を線に伸ばした状態にしておいて画像を変換し、その画像よりベクトルを取得してもよい。  
（１３）計算を軽くするためにマークを確認して振動成分を吸収する処理が行われない時限定としてもよい。また、マークを確認してハンドルの回転角度が回転中でない時、つまり相対移動量を計算しなくていい時に限定としてもよい。  
（１４）運転中の眠気防止や気分転換のために、ハンドルを人や動物に見立てて、記載した一連の操作をすることにより、そのハンドルの反応を楽しんでもよい。例えばハンドルを人の肩と見立てて、ハンドルを強く握る動作をすることにより、ハンドルが「気持ちいい」などの気持ちよさそうなリアクションをさせる。他に、ハンドル子供を回転車に乗せていると見立てて、左右の手で上下逆の動きなどでひねる操作をし、子供の喜ぶ声でリアクションさせる。また、ハンドルを握った手の手首をねじる動作でガラガラを鳴らし子供をあやしてもよい。そのとき、あやし続けなければ泣かせてもよい。他に、ハンドルを猫などの動物と見立てて、ハンドルをさする操作をすることにより、猫などが気持ちよさそうに鳴くようなリアクションをさせる。  
（１５）自転車やバイクのグリップに使用してもよい。  
（１６）パソコンやゲームのマウスやタッチパッドの代わりの操作系として使用してもよい。その場合、握るための棒をキーボードの下などに収納しておいて、使用するときのみ飛び出す使用としてもよい。その場合、棒は横向きでもよいし縦向きでもよい。
【００９２】
この実施形態では、簡単な手の動きでアナログ操作が可能となり、安全である。また、すぐにハンドルを握れるため安全である。ねじれ方向が加わりより多次元な操作が可能となる。
【００９３】
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９４】
１１  操作開始判定部
１２  操作処理部
１２１  手動作測定部
１２２  ハンドル位置測定部
１２３  相対動作計算部
１２４  操作判定部
１３  駆動部
１４  操作終了判定部
２１  音声認識部
２２  カメラ
２３  表示部
２４  音声案内部
２５  タッチパッド
２６  社内ＬＡＮ
Ｍ１〜Ｍ３  マーク
ＨＤ  ハンドル
【図１】
0005838061.tif 000002
【図２】
0005838061.tif 000003
【図３】
0005838061.tif 000004
【図４】
0005838061.tif 000005
【図５】
0005838061.tif 000006
【図６】
0005838061.tif 000007
【図７】
0005838061.tif 000008
【図８】
0005838061.tif 000009
【図９】
0005838061.tif 000010
【図１０】
0005838061.tif 000011
【図１１】
0005838061.tif 000012
【図１２】
0005838061.tif 000013
【図１３】
0005838061.tif 000014
【図１４】
0005838061.tif 000015
【図１５】
0005838061.tif 000016
【図１６】
0005838061.tif 000017
【図１７】
0005838061.tif 000018