IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社スリーディーの特許一覧

特開2024-118160ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム
<>
  • 特開-ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム 図1
  • 特開-ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム 図2
  • 特開-ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム 図3
  • 特開-ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム 図4
  • 特開-ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム 図5
  • 特開-ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118160
(43)【公開日】2024-08-30
(54)【発明の名称】ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラム
(51)【国際特許分類】
   G06F 3/01 20060101AFI20240823BHJP
【FI】
G06F3/01 560
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023024432
(22)【出願日】2023-02-20
(71)【出願人】
【識別番号】596158950
【氏名又は名称】株式会社スリーディー
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100169199
【弁理士】
【氏名又は名称】石本 貴幸
(72)【発明者】
【氏名】佐々木 貴浩
(72)【発明者】
【氏名】中野 裕介
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA08
5E555BA01
5E555BB01
5E555BC04
5E555BE17
5E555CA03
5E555CA24
5E555CB02
5E555CB19
5E555CB21
5E555CC22
5E555CC26
5E555DA24
5E555DB53
5E555DC19
5E555DC30
5E555EA14
5E555FA00
(57)【要約】      (修正有)
【課題】ユーザが動かす作動部に生じる発振を抑制できる、ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラムを提供する。
【解決手段】ハプティクスシステム10において、ハプティクス装置14は、ユーザがスタイラス12を動かすことによって、シミュレータ20がシミュレートした仮想空間におけるオブジェクトに力を作用させ、当該作用によって生じる反力をスタイラス12に与える。ハプティクス装置14は、スタイラス12の実位置を算出し、仮想空間におけるオブジェクトに力を作用させる目標位置と算出した実位置との差分に基づいて、スタイラス12に与える反力を算出する。
【選択図】図2
【特許請求の範囲】
【請求項1】
ユーザが作動部を動かすことによって、情報処理装置がシミュレートした仮想空間におけるオブジェクトに力を作用させ、当該作用によって生じる反力を前記作動部に与えるハプティクス装置の制御装置であって、
前記作動部の現実の位置を算出する位置算出手段と、
前記位置算出手段で算出された前記位置と前記仮想空間における前記オブジェクトに力を作用させる目標位置との差分に基づいて、前記作動部に与える反力を算出する反力算出手段と、
を備えるハプティクス装置の制御装置。
【請求項2】
前記反力算出手段は、
前記差分の比例要素に基づく力を算出する比例演算手段と、
前記差分の微分要素に基づく力を算出する第1微分演算手段と、
前記比例要素に基づく力と前記微分要素に基づく力との和を前記反力として算出する加算手段と、
を備え、
前記第1微分演算手段は、所定の周波数未満の正弦波入力に対して1階微分に漸近し、前記所定の周波数以上の正弦波入力に対して定数倍に漸近する値を出力する、
請求項1に記載のハプティクス装置の制御装置。
【請求項3】
前記位置算出手段で算出された前記位置の微分要素に基づく力を算出する第2微分演算手段を備え、
前記加算手段の出力値から前記第2微分演算手段の出力値を減算した値を前記反力として算出する減算手段と、
を備える請求項2に記載のハプティクス装置の制御装置。
【請求項4】
前記第1微分演算手段で用いる第1粘性係数と前記第2微分演算手段で用いる第2粘性係数との和を所定値とし、
前記第1粘性係数と前記第2粘性係数との比率を可変とする、請求項3に記載のハプティクス装置の制御装置。
【請求項5】
前記情報処理装置は、前記仮想空間のシミュレーション機能、及び前記目標位置の算出機能を備え、
前記シミュレーション機能と前記算出機能とが分離される、
請求項1又は請求項2に記載のハプティクス装置。
【請求項6】
請求項1又は請求項2に記載の制御装置を備えたハプティクス装置。
【請求項7】
ユーザが作動部を動かすことによって、情報処理装置がシミュレートした仮想空間におけるオブジェクトに力を作用させ、当該作用によって生じる反力を前記作動部に与えるハプティクス装置が有するコンピュータに、
前記作動部の現実の位置を算出する位置算出手段と、
前記位置算出手段で算出された前記位置と前記仮想空間における前記オブジェクトに力を作用させる目標位置との差分に基づいて、前記作動部に与える反力を算出する反力算出手段と、
を実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラムに関する。
【背景技術】
【0002】
近年、ハプティクス技術(触覚技術)の研究開発が進んでいる。ハプティクス技術は、ハプティクス装置のユーザに力、振動、及び動き等をフィードバックさせるものである。例えば、シミュレートされた仮想空間におけるオブジェクトを、ユーザがハプティクス装置を用いて移動や切除等した場合に、その反力をハプティクス装置が再現してユーザにフィードバックする。
【0003】
例えば、特許文献1には、ユーザが握るように構成されたスタイラスがユーザに触覚フィードバック(反力)を与える装置が記載されている。このスタイラスは、複数のジョイントで回転自在に接続された複数の回転要素の先端に取り付けられている。
【0004】
特許文献1のように、ハプティクス装置のユーザは、一例としてスタイラスを握って動かすことで、シミュレートされた仮想空間におけるオブジェクトを移動等する。シミュレーションは、仮想空間においてオブジェクトを移動させることで生じる反力を算出する。そして、ハプティクス装置は、スタイラスが先端に取り付けられた回転要素を駆動するサーボモータの動力によって、算出した反力を再現してユーザが握っているスタイラスに与える。これにより、ユーザは、スタイラスで仮想空間のオブジェクトを移動等した場合に生じる反力を感じ取ることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特表2007-510232号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ハプティクス装置は、上記のようにしてスタイラスに反力を与えるが、反力が安定せずに、スタイラスに発振が生じる場合がある。図6に示すハプティクス装置100の機能ブロック図を参照してこの発振について説明する。
【0007】
図6のFextはユーザがスタイラス102に加える力(以下「加力」という。)であり、Fsimはスタイラス102の位置xに基づいてシミュレータ110によって算出された反力値である。反力値Fsimは、一例として、バネ係数Kと位置xとの積(Fsim=-Kx)から算出される。ハプティクス装置100が備えるサーボモータ104は、算出された反力値Fsimを再現した反力Foutをスタイラス102に与える。
【0008】
そして、加力Fextと反力Foutとの和がハプティクス装置100へ入力される力(以下「合力」という)Fとなり、スタイラス102の位置xは、合力Fに基づいて位置算出部106によって算出される。算出された位置xは、シミュレータ110に入力され、反力値Fsimの算出に用いられる。このような反力値Fsimの算出によるスタイラス102に対する反力Foutの付与は、シミュレーションの継続中に繰り返し行われる。
【0009】
図6に示すように、スタイラス102の位置xはフィードバック制御と同様に制御される。そして、遅れ要素や無駄時間要素がない理想的な場合には、スタイラス102の位置変位を打ち消すように、反力Foutが出力されてスタイラス102は目的の位置xで安定する。
【0010】
しかし、現実にはシミュレーションループ、サーボモータ104及び制御回路等による遅れ要素や無駄時間等が存在する。このため、位相遅れ等が生じてスタイラス102の位置変位が大きくなるように反力Foutが出力され、これによりスタイラス102の発振が生じる可能性がある。
【0011】
そこで本発明は、スタイラス等のユーザが動かす作動部に生じる発振を抑制できる、ハプティクス装置の制御装置、ハプティクス装置、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の一態様のハプティクス装置の制御装置は、ユーザが作動部を動かすことによって、情報処理装置がシミュレートした仮想空間におけるオブジェクトに力を作用させ、当該作用によって生じる反力を前記作動部に与えるハプティクス装置の制御装置であって、前記作動部の現実の位置を算出する位置算出手段と、前記位置算出手段で算出された前記位置と前記仮想空間における前記オブジェクトに力を作用させる目標位置との差分に基づいて、前記作動部に与える反力を算出する反力算出手段と、を備える。
【0013】
本構成によれば、ユーザが動かす作動部(例えばスタイラス)の現実の位置と仮想空間におけるオブジェクトに力を作用させる目標位置との差分に基づいて、作動部に与える反力を算出する。これにより、本構成は、作動部に生じる発振を抑制できる。
【0014】
上記の制御装置において、前記反力算出手段は、前記差分の比例要素に基づく力を算出する比例演算手段と、前記差分の微分要素に基づく力を算出する第1微分演算手段と、前記比例要素に基づく力と前記微分要素に基づく力との和を前記反力として算出する加算手段と、を備え、前記第1微分演算手段は、所定の周波数未満の正弦波入力に対して1階微分に漸近し、前記所定の周波数以上の正弦波入力に対して定数倍に漸近する値を出力してもよい。
【0015】
本構成によれば、入力が所定の周波数未満である場合には、第1微分演算手段は入力を微分した値を出力する。一方で、入力が所定の周波数以上である場合には、第1微分演算手段は微分を行わずに、入力を定数倍した値を出力する。本構成は、このような微分演算により、発振を抑制しつつ、高周波のノイズの増加を抑制することができる。
【0016】
上記の制御装置は、前記位置算出手段で算出された前記位置の微分要素に基づく力を算出する第2微分演算手段を備え、前記加算手段の出力値から前記第2微分演算手段の出力値を減算した値を前記反力として算出する減算手段と、を備えてもよい。
【0017】
本構成によれば、作動部の動きをより滑らかにできる。
【0018】
上記の制御装置は、前記第1微分演算手段で用いる第1粘性係数と前記第2微分演算手段で用いる第2粘性係数との和を所定値とし、前記第1粘性係数と前記第2粘性係数との比率を可変としてもよい。
【0019】
本構成によれば、作動部に与える反力をユーザの好みに応じて簡易に調整できる。
【0020】
上記の制御装置において、前記情報処理装置は、前記仮想空間のシミュレーション機能、及び前記目標位置の算出機能を備え、前記シミュレーション機能と前記算出機能とが分離されてもよい。
【0021】
本構成によれば、作動部に生じる発振を抑制しつつ、安定した制御が可能となる。
【0022】
本発明の一態様のハプティクス装置は、上記記載の制御装置を備える。
【0023】
本発明の一態様の制御プログラムは、ユーザが作動部を動かすことによって、情報処理装置がシミュレートした仮想空間におけるオブジェクトに力を作用させ、当該作用によって生じる反力を前記作動部に与えるハプティクス装置が有するコンピュータに、前記作動部の現実の位置を算出する位置算出手段と、前記位置算出手段で算出された前記位置と前記仮想空間における前記オブジェクトに力を作用させる目標位置との差分に基づいて、前記作動部に与える反力を算出する反力算出手段と、を実行させる。
【発明の効果】
【0024】
本発明によれば、ユーザが動かす作動部に生じる発振を抑制できる。
【図面の簡単な説明】
【0025】
図1】本実施形態のハプティクスシステムの概略構成図である。
図2】本実施形態のスタイラスに与える反力に関する機能ブロック図である。
図3図2に示す機能ブロック図の詳細図である。
図4】伝達関数の周波数特性を示したグラフであり、(A)は微分の周波数特性を示し、(B)は本実施形態の1次HPF型の伝達関数の周波数特性を示す。
図5】メインシミュレータとサブシミュレータとの更新周期を示す模式図である。
図6】従来のスタイラスに与える反力に関する機能ブロック図である。
【発明を実施するための形態】
【0026】
以下、本実施の形態のハプティクス装置の制御装置、ハプティクス装置、及び制御プログラムについて図面を参照して説明する。なお、以下の説明はあくまでも好ましい態様の一例を示したものであり、特許請求の範囲に記載された発明を限定する意図ではない。
【0027】
図1は、本実施形態のハプティクスシステム10の概略構成図である。本実施形態のハプティクスシステム10は、スタイラス12を有するハプティクス装置14及びシミュレータ20を備える。
【0028】
ハプティクスシステム10は、ユーザがスタイラス12を動かすことによって、シミュレータ20がシミュレートした仮想空間におけるオブジェクトに力を作用させ、当該作用によって生じる反力をスタイラス12に与える。これにより、ユーザは、スタイラス12を動かして仮想空間におけるオブジェクトの移動や切除等の動作を行った場合に、スタイラス12に与えられる反力によって仮想空間でおこなった動作に応じた感覚を現実に得ることができる。なお、ハプティクスシステム10は、例えば、手術のシミュレーション等に用いられ、スタイラス12は仮想空間におけるメスを模擬することとなる。
【0029】
ハプティクス装置14は、スタイラス12、アーム16、及び本体部18を備える。
【0030】
スタイラス12は、複数の関節を有するアーム16の先端部に設けられるペン形状であり、ユーザが握って動かす作動部である。
【0031】
アーム16は、先端にスタイラス12が回動可能に設けられ、他端が本体部18に回動可能に接続される。アーム16は、ユーザがスタイラス12に加える力(以下「加力」という。)に応じて関節が回動する。なお、アーム16が有する関節の数や関節の回動範囲は限定されない。
【0032】
アーム16及び本体部18の少なくとも一方には、関節を回動させるためのサーボモータ38(図2参照)が設けられる。サーボモータ38は、シミュレータ20が算出した反力をスタイラス12に与えるように駆動する。
【0033】
本体部18は、接続されているアーム16の回動に応じてスタイラス12の現実の位置(以下「実位置」という。)を算出し、シミュレータ20へ出力する。なお、実位置は、スタイラス12の先端12Aに対応する。
【0034】
シミュレータ20は、情報処理装置であり、シミュレートした仮想空間におけるオブジェクトをスタイラス12の動作に応じて移動させたり、切除したりする。このため、シミュレータ20は、仮想空間におけるオブジェクトに力を作用させる目標位置を算出する。この目標位置は、一例として、スタイラス12の先端12Aに対応する。
【0035】
ここで、従来のハプティクス装置100は、図6に示されるように、スタイラス102にユーザが与える加力Fextとスタイラス102にサーボモータ104が与える反力Foutとの和である合力Fに基づいてスタイラス102の実位置xを算出する。そして、シミュレータ110が実位置xに基づいて反力値Fsimを算出する。
【0036】
しかしながら、種々の遅れ要素や無駄時間要素等が原因となり、スタイラス102に与える反力Foutに発振が生じ、その結果、スタイラス102そのものが発振して制御が不安定となる場合があった。
【0037】
そこで、本実施形態のハプティクス装置14は、スタイラス12の発振を抑制するために、図2の機能ブロック図に示すような制御を行なう。図2は、スタイラス12に与える反力に関する機能ブロック図である。
【0038】
図2に示すように、ハプティクス装置14が備えるコントローラ30は、位置算出部32、減算部34、及び反力算出部36を備える。なお、コントローラ30が備える各部で実行される各機能は、一例としてプログラムが起動することによって、コントローラ30が備えるコンピュータで実行されてもよいし、ASIC(Application Specific Integrated Circuit)等の個別のハードウェアによって実現されてもよい。
【0039】
位置算出部32は、スタイラス12の現実の位置である実位置xrを算出する。実位置xrは、スタイラス12に与えられた合力Fに基づいて算出される。ここで、スタイラス12は、換言すると、入力である合力F(F=Fout+Fext)を受け付け、合力Fを位置に変換する機能を有していると考えることもできる。そして、位置算出部32は、スタイラス12の先端12Aの位置を、ポテンションメータやアナログ/デジタル変換器等及び幾何学的な演算によって、シミュレータ20で利用可能な数値データに変換し、実位置xrとして出力する。
【0040】
減算部34は、仮想空間におけるオブジェクトに力を作用させる目標位置xtと位置算出部32で算出された実位置xrとの差分xt-rを算出する。なお、目標位置xtは、シミュレータ20に入力された位置xに基づいて、シミュレータ20によって算出される。目標位置xtの算出方法は、従来既知の方法でよい。
【0041】
反力算出部36は、減算部34で算出された差分xt-rに基づいて、スタイラス12に与える反力値Fcalを算出する。
【0042】
反力算出部36によって算出された反力値Fcalは、サーボモータ38に入力されて反力Foutとしてスタイラス12に与えられる。そして、ユーザがスタイラス12に加える加力Fextと反力Foutとが合力Fとされる。
【0043】
図2に示す本実施形態のコントローラ30によれば、ユーザが動かすスタイラス12の実位置xrと仮想空間におけるオブジェクトに力を作用させる目標位置xtとの差分xt-rに基づいて、スタイラス12に与える反力値Fcalを算出する。すなわち、本実施形態では、従来のようにシミュレータ20が反力値を算出するのではなく、シミュレータ20は目標位置xtをコントローラ30に出力する。具体的には、コントローラ30が差分xt-rに対する位相とゲインを調整することにより、シミュレータ20によるオブジェクトの移動や変形等を原因とする時間遅れ等の要素に起因したスタイラス12に生じる発振を抑制できる。
【0044】
なお、図2に示すように本実施形態のハプティクス装置14は、従来のようにシミュレータ20で算出した反力値Fsimをサーボモータ38の入力としていないため、本来必要とする反力を直接指定していないようにも考えられる。
【0045】
ここで、反力算出部36が算出する反力値Fcalは、下記数式1のように算出される。なお、Kはバネ係数である。数式1は、スタイラス12が静止した状態、すなわち反力値Fcal(反力Fout)とスタイラス12の実位置xrとに変化がなく一定値という条件で成立する。
【0046】
【数1】
【0047】
この数式1から目標位置xtは、下記数式2のように表される。
【0048】
【数2】
【0049】
ここで、直接指定したい反力値Ftargetが有る場合、数式2のFcalにFtargetを代入して算出した目標位置xtを設定することにより、スタイラス12が静止した状態で直接指定したい反力値Ftargetを出力することができる。一方、動的な状態では、反力算出部36等に含まれる微分器(微分演算部42、フィルタ48、及び微分演算部50)の出力値が“0”とならないため、数式1が成立しない。このため、数式2のFcalにFtargetを代入して算出した目標位置xtをシミュレータ20が出力しても、反力値Ftargetと実際に出力される反力値Fcalとは異なる値となり、ずれが生じる。このずれはスタイラス12に生じる発振を抑制するためのトレードオフとなる。
【0050】
次に、図3を参照して、本実施形態のコントローラ30及びシミュレータ20の構成を詳細に説明する。
【0051】
シミュレータ20は、メインシミュレータ22及びサブシミュレータ24を備える。
【0052】
シミュレータ20は、物理演算やオブジェクトの形状の変形等を行うものであり、質点やオブジェクトの数が増加すると、例えば1kHz以上の高速で演算することが困難となる。そこで、本実施形態のシミュレータ20は、機能が各々異なるメインシミュレータ22とサブシミュレータ24とで構成される。なお、メインシミュレータ22及びサブシミュレータ24は、位置算出部32から出力される実位置xrが入力され、同期して演算を行う。
【0053】
メインシミュレータ22は、仮想空間のシミュレーション機能を備える。具体的には、メインシミュレータ22は、通常のシミュレーションと同様の物理演算やオブジェクトの形状の変形に関する演算を行う。なお、シミュレーションに用いられるスタイラス12の実位置xrは、フレームの最新の値とされる。
【0054】
サブシミュレータ24は、目標位置xtを算出する目標位置算出機能を備える。具体的には、サブシミュレータ24は、スタイラス12の目標位置xtの更新に必要な最低限の干渉計算のみを行う。すなわち、サブシミュレータ24は、スタイラス12に対応するオブジェクト以外の物理演算や形状の変形に関する演算は行わず、目標位置xtの算出を可能な限り高速に行う。
【0055】
このように、本実施形態のシミュレータ20は、シミュレーション機能と目標位置算出機能とを備え、このシミュレーション機能と目標位置算出機能とが分離される。これにより、シミュレータ20は、メインシミュレータ22が不安定にならない、換言するとメインシミュレータ22で演算するオブジェクトが発振しない限り、スタイラス12の発振を抑制した安定した制御が可能となる。
【0056】
なお、シミュレーション機能と目標位置算出機能との分離とは、例えば、シミュレーション機能と目標位置算出機能とを異なるプロセッサコアで実行することであるが、これに限らず、シミュレーション機能と目標位置算出機能とを高速で実行できれば他の手法でもよい。
【0057】
次に本実施形態の反力算出部36は、比例演算部40、微分演算部42、及び加算部44を備える。
【0058】
比例演算部40は、差分xt-rの比例要素に基づく力Fpを算出する。力Fpは係数Kpを用いて算出される。
【0059】
微分演算部42は、差分xt-rの微分要素に基づく力Fdを算出する。力Fdは係数Kdを用いて算出される。
【0060】
加算部44は、力Fpと力Fdとの和を反力値として算出する。
【0061】
なお、時間領域で比例演算部40と微分演算部42とによる算出値を説明すると、比例演算部40は、目標位置xtと実位置xrとの距離に比例した力Fpを算出することとなる。このため、係数Kpはバネ定数として捉えられる。また、微分演算部42は、目標位置xtと実位置xrと距離の時間微分に比例した力Fdを算出することとなる。このため、係数Kdは粘性係数として捉えられる。
【0062】
これら係数Kp及び係数Kdは任意に設定されるものであり、例えば、比例係数である係数Kpを大きくすることで、制御の応答性が良くなる。粘性係数である係数Kdを大きくすることで、ユーザはスタイラス12の動きに粘性を感じ易くなる。
【0063】
ここで、係数Kdを大きく設定した場合における発振の周波数を計測すると、係数Kd=0とした場合におけるハプティクス装置14の固有振動数に比較して、発振の周波数が大きくなる可能性がある。この理由は、微分要素の伝達関数sのゲインが発振の周波数に比例して大きくなるためと、無駄時間による位相遅れは発振の周波数が高い方がより大きくなるためである。なお、上記のことは、一例として、発振をシミュレートすることにより得られた知見である。
【0064】
このように、微分要素を用いて反力を算出すると、発振の周波数に比例してゲインが大きくなる特性と無駄時間要素による影響で、発振せずに使える係数Kdの範囲が小さくなる。また、発振しない範囲で係数Kdを設定しても、上記特性により高周波成分を拾いノイズが発生する可能性がある。
【0065】
そこで、本実施形態の微分演算部42は、入力される差分xt-rの所定の周波数未満の成分に対して1階微分に漸近し、所定の周波数以上の成分に対して定数倍に漸近する値を出力する。なお、定数の値は所定の周波数に比例する値である。
【0066】
具体的には、微分演算部42は、入力信号(差分xt-r)の所定の周波数未満の成分に対して微分動作を行い粘性項として働く値を出力することで、該当する所定の周波数未満の発振を抑制する。ここで仮に微分演算部42が、単純な微分演算手段で構成されると入力信号の周波数が高くなればなるほどゲインが大きくなり、これがノイズとなり発振を生じさせる。そこで、微分演算部42は、入力信号(差分xt-r)の所定の周波数以上の成分に対して比例動作を行うことにより、ノイズの増大を抑制することができる。
【0067】
上記機能を本実施形態の微分演算部42が得るために、微分要素の伝達関数をsとし、周波数応答をj2πfとし、この微分要素に下記数式3をかけることで、伝達関数は数式4となり、周波数応答は数式5となる。
【0068】
【数3】
【0069】
【数4】
【0070】
【数5】
【0071】
なお、foは所定の周波数であり、発振の周波数をfとすると、f<<foで微分要素sに漸近し、f>>foで定数2πfoに漸近する。すなわち、数式4に示される伝達関数は、1次ハイパスフィルター(HPF)に係数をかけたものとなる。図4は、伝達関数の周波数特性の一例を示したグラフであり、図4(A)が微分の周波数特性を示し、図4(B)が本実施形態の1次HPF型の伝達関数の周波数特性を示す。
【0072】
以上のことから、微分演算部42で算出される力Fdは、粘性係数Khpfに定数2πfhpfを掛けることで下記数式6から算出される。このように構成された微分演算部42の微分演算により、発振を抑制しつつ、高周波のノイズの増加を抑制することができる。
【数6】
【0073】
また、本実施形態の反力算出部36は、減算部46及びフィルタ48を備える。
【0074】
減算部46は、加算部44の出力値から後述する微分演算部50の出力値を減算する。
【0075】
フィルタ48は、ハプティクス装置14の固有振動による発振を抑制するためのノッチフィルタ等の各種フィルタであり、減算部46からの出力値をフィルタ処理し、反力値Fcalとしてサーボモータ38へ出力する。なお、コントローラ30にフィルタ48が設けられずに、減算部46からの出力値を反力値Fcalとしてサーボモータ38へ出力してもよい。
【0076】
ここで、上記のように微分演算部42に1次HPF要素を与えて力Fを出力しても、応答性を良くするために粘性係数を大きくした場合に、発振以外にノイズが生じる可能性がある。このノイズは、サブシミュレータ24による目標位置xtの変位に対する応答性が速い一方で、メインシミュレータ22の更新周期が遅い場合に、メインシミュレータ22によるオブジェクトの位置等の更新タイミングで生じるものである。
【0077】
図5の模式図を参照して、ノイズの発生について具体的に説明する。シミュレーションにおいてスタイラス12'(現実のスタイラス12をシミュ―ションで模擬したもの)がオブジェクト60に接触すると(図5(A))、スタイラス12'によるオブジェクト60への干渉が始まることで反力が発生する(図5(B))。そして、図5(C),(D)のように、スタイラス12’のオブジェクト60への侵入深度と速度に比例して反力が大きくなる。この図5(A)~(D)の間はサブシミュレータ24による目標位置xtの更新が行われる。そして、図5(E)においてメインシミュレータ22によるオブジェクト60の位置等の更新が行われると、オブジェクト60が移動して急激に反力が小さくなる。その後、スタイラス12’がオブジェクト60に接触し続けることで、再び反力が大きくなる(図5(F))。
【0078】
このように、サブシミュレータ24の更新頻度に比べて、メインシミュレータ22の更新頻度が遅いと、反力の急減が生じ、これがノイズとして表れる。なお、このノイズとは、スタイラス12に与える反力が急激に変化することで、スタイラス12が滑らかに動かないことをいう。
【0079】
ここで、微分演算部42において、目標位置xtが一定値であると仮定すると、微分演算部42の出力である力Fは下記数式7で表される。
【0080】
【数7】
【0081】
数式7で表される力Fは、数式8で表すように実位置xrの微分要素の反数と等価である。数式8には目標位置xtが含まれていないため、目標位置xtにノイズが含まれても数式8の出力に表れない。
【0082】
【数8】
【0083】
そこで、本実施形態のコントローラ30は、シミュレーションの更新とは関係なく、実位置xrの微分要素(粘性)を反力としてスタイラス12に与える。この機能を有する構成が微分演算部50であり、目標位置xtに基づいて算出された反力値をバイパスするように設けられ、位置算出部32で算出された実位置xrの微分要素に基づく力を算出する。これにより、スタイラス12には実位置xrのみに基づく粘性が反力として常に与えられることとなる。
【0084】
なお、微分演算部50は、微分演算部42と同様に、入力信号(差分xt-r)の所定の周波数未満の成分に対して1階微分に漸近し、入力信号(差分xt-r)の所定の周波数以上の成分に対して定数倍に漸近する値を出力する。
【0085】
以上のことから、微分演算部50で算出される力Fd2は、バネ定数Kbypassに定数2πfhpfを掛けることで下記数式9から算出される。
【0086】
【数9】
【0087】
さらに、目標位置xtが一定値の場合には、微分演算部42と微分演算部50の1次HPF要素は同じ出力となる。このため、2つのバネ定数を足し合わせた値であるKhpf+Kbypassが変化しなければ、粘性係数Khpfと粘性係数Kbypassとの比率を変えても、制御の安定性は変わらない。すなわち、Khpf+Kbypassを一定値にして粘性係数Khpfと粘性係数Kbypassとの比率を変えることで、制御の安定性に変化を与えずに以下の調整が可能となる。
【0088】
・粘性係数Khpfの比率を大きくする : ノイズが発生し易いが、干渉がない時の粘性が小さい。
・粘性係数Kbypassの比率を大きくする : ノイズが発生し難いが、常に粘性を感じるようになる。
【0089】
このように、本実施形態のコントローラ30は、微分演算部42で用いる粘性係数Khpfと微分演算部50で用いる粘性係数Kbypassとの和を所定値(一定値)とし、粘性係数Khpfと粘性係数Kbypassとの比率を可変とする。これにより、シミュレータ20の出力が図5を参照して説明したノイズを発生させる場合でも、ユーザが常に粘性を感じることを許容するので、コントローラ30は、スタイラス12に与える反力(Fout)のノイズを低減することができる。
【0090】
また、さらに、バネ係数Kpをデフォルトの設定値よりも1.0以上に定数倍してもよい。これにより、制御は不安定になるが、応答性が良くなる。また、粘性係数Khpfと粘性係数Kbypassとの和をデフォルトの設定値よりも1.0以下に定数倍してもよい。これにより、制御は不安定になるが、粘性が小さくなる。
【0091】
このように、本実施形態のコントローラ30は、粘性係数Khpf、粘性係数Kbypass、及びバネ係数Kpの値をユーザの好みに応じて任意の値や比率とするための係数設定機能を有している。ユーザは、例えば、シミュレータ20によるシミュレーションを実行する前に、シミュレータ20の設定機能を介して粘性係数Khpfと粘性係数Kbypassとの和を設定し、バネ係数Kpの値を設定する。そして、ユーザは、粘性係数Khpfと粘性係数Kbypassと比率を任意に設定する。これにより、スタイラス12に与える反力をユーザの好みに応じて簡易に調整できる。
【0092】
以上、本発明を、上記実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更又は改良を加えることができ、該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。
【0093】
上記実施形態では、シミュレータ20をメインシミュレータ22とサブシミュレータ24に分離する形態について説明したが、本発明はこれに限られない。例えば、シミュレータ20がシミュレーション機能と目標位置算出機能とを同時に1kHz以上の高速で実行可能な場合には、シミュレータ20をメインシミュレータ22とサブシミュレータ24とに分離しなくてもよい。なお、メインシミュレータ22とサブシミュレータ24を分離しない形態の場合、1つのシミュレータ20が複数のハプティクス装置14を使用したシミュレーションを行ってもよい。
【0094】
上記実施形態ではメインシミュレータ22が1つのハプティクス装置14と1つのサブシミュレータ24に接続される形態について説明したが、本発明はこれに限られない。例えば、メインシミュレータ22が、複数のハプティクス装置14とサブシミュレータ24との組み合わせに接続され、1つのメインシミュレータ22が複数のハプティクス装置14を使用したシミュレーションを行ってもよい。
【0095】
上記実施形態では、コントローラ30が微分演算部50を備える形態について説明したが、本発明はこれに限られず、コントローラ30は微分演算部50を備えない形態としてもよい。
【0096】
上記実施形態では、ユーザが動かす作動部をペン形状のスタイラス12とする形態について説明したが、本発明はこれに限られず、作動部はユーザが動かすことができれば、スタイラス12のようにペン形状に限らず、他の形状でもよい。また、作動部は、ユーザの手で動かすものに限らず、例えばユーザの足等で動かすものでもよい。
【符号の説明】
【0097】
12 スタイラス(作動部)
14 ハプティクス装置
20 シミュレータ(情報処理装置)
30 コントローラ(制御装置)
32 位置算出部(位置算出手段)
36 反力算出部(反力算出手段)
40 比例演算部(比例演算手段)
42 微分演算部(第1微分演算手段)
46 減算部(減算手段)
50 微分演算部(第2微分演算手段)
図1
図2
図3
図4
図5
図6