(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022113567
(43)【公開日】2022-08-04
(54)【発明の名称】制御装置、位置推定方法及びプログラム
(51)【国際特許分類】
B25J 19/06 20060101AFI20220728BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021009887
(22)【出願日】2021-01-25
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(74)【代理人】
【識別番号】100161702
【弁理士】
【氏名又は名称】橋本 宏之
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(74)【代理人】
【識別番号】100196689
【弁理士】
【氏名又は名称】鎌田 康一郎
(72)【発明者】
【氏名】井川 友博
(72)【発明者】
【氏名】▲徳▼山 享大
(72)【発明者】
【氏名】村田 直史
(72)【発明者】
【氏名】光畑 幸史
(72)【発明者】
【氏名】久川 恭平
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS06
3C707AS12
3C707BS10
3C707HS27
3C707KS12
3C707KS20
3C707KS31
3C707KX05
3C707LS15
3C707LW05
3C707MS07
(57)【要約】
【課題】マニピュレータの動作中に障害物と接触した際に、障害物位置を推定する方法を提供する。
【解決手段】制御装置は、マニピュレータのアームが障害物へ接触したことを検知する接触検知部と、前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定する位置推定部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
マニピュレータのアームが障害物へ接触したことを検知する接触検知部と、
前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定する位置推定部と、
を備える制御装置。
【請求項2】
前記位置推定部は、前記アームが備える関節の動作状況に応じて、前記代表点を設定する、
請求項1に記載の制御装置。
【請求項3】
前記接触が検知されたリンクに接続された関節のうち、先端側の前記関節を動かしているときに前記障害物との接触が検知された場合、
前記位置推定部は、前記リンクの先端側の前記関節を前記代表点として設定する、
請求項2に記載の制御装置。
【請求項4】
前記接触が検知されたリンクに接続された関節のうち、基端側の前記関節だけを動かしているときに前記障害物との接触が検知された場合、
前記位置推定部は、前記リンクの基端側の前記関節を前記代表点として設定する、
請求項2または請求項3に記載の制御装置。
【請求項5】
前記接触検知部は、前記アームを構成するリンクの中の前記障害物への接触が検知された前記リンクのうち、最も先端側の前記リンクを前記障害物へ接触したリンクであると特定する、
請求項1から請求項4の何れか1項に記載の制御装置。
【請求項6】
前記代表点から前記障害物までの距離に前記アームを構成するリンクの半径の長さを設定する、
請求項1から請求項5の何れか1項に記載の制御装置。
【請求項7】
前記位置推定部は、推定した前記障害物の位置を記憶部に記録する、
請求項1から請求項6の何れか1項に記載の制御装置。
【請求項8】
前記記憶部に記録された前記障害物の位置に基づいて、前記障害物の形状を推定する形状推定部、
をさらに備える請求項7に記載の制御装置。
【請求項9】
マニピュレータのアームが障害物へ接触したことを検知し、
前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定する、
位置推定方法。
【請求項10】
コンピュータに、
マニピュレータのアームが障害物へ接触したことを検知し、
前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定する処理、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御装置、位置推定方法及びプログラムに関する。
【背景技術】
【0002】
マニピュレータの制御では、手先の位置と姿勢が所望の目標軌道に追従するように、各関節の角度及び角速度を制御している。マニピュレータが物と接触した場合、障害物によりマニピュレータの駆動が妨げられるため、作業を継続しようとすると、モータやマニピュレータ本体、または障害物が損傷する可能性がある。特許文献1には、マニピュレータのリンク(関節と関節の間の部位)の外乱トルクを推定し、推定した外乱トルクからマニピュレータと障害物との接触を検知して、元の位置へ戻したり、停止させたりすることによって、衝突緩和を行う制御が開示されている。マニピュレータが障害物に接触した場合、単に衝突緩和を行うだけではなく、それ以外の動作(例えば、障害物を回避して目的位置へ到達する等)を柔軟に選択できるような制御方法が求められている。なお、非特許文献1には、マニピュレータと障害物との接触を検知する方法、接触があったリンクを特定する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【非特許文献1】A. D. Luca et al, “Collision Detection and Safe Reaction with the DLR-III Lightweight Manipulator Arm”, IEEE/RSJ International Conference on Intelligent Robots and Systems, 2006.
【発明の概要】
【発明が解決しようとする課題】
【0005】
マニピュレータが障害物に接触した後に、その後の動作を様々に選択できるようにするためには、障害物の位置を把握する必要がある。
【0006】
本開示は、上記課題を解決することができる制御装置、位置推定方法及びプログラムを提供する。
【課題を解決するための手段】
【0007】
本開示の一実施形態によれば、制御装置は、マニピュレータのアームが障害物へ接触したことを検知する接触検知部と、前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定する位置推定部と、を備える。
【0008】
本開示の一実施形態によれば、位置推定方法は、マニピュレータのアームが障害物へ接触したことを検知するステップと、前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定するステップと、を有する。
【0009】
本開示の一実施形態によれば、プログラムは、コンピュータにマニピュレータのアームが障害物へ接触したことを検知し、前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定する処理を実行させる。
【発明の効果】
【0010】
上述の制御装置、位置推定方法及びプログラムによれば、障害物の位置を推定することができる。
【図面の簡単な説明】
【0011】
【
図1】実施形態に係るマニピュレータの一例を示す図である。
【
図2】第一実施形態に係る障害物接触時の制御の流れを示すフローチャートである。
【
図3】第一実施形態に係る障害物位置の推定処理のフローチャートである。
【
図4】第一実施形態に係る障害物位置の推定処理の一例を説明する第1の図である。
【
図5】第一実施形態に係る障害物位置の推定処理の一例を説明する第2の図である。
【
図6】第一実施形態の係る障害物位置の推定結果の一例を説明する図である。
【
図7】第二実施形態の係る障害物の形状を推定する処理について説明する図である。
【
図8】実施形態の制御装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0012】
<実施形態>
以下、本開示のマニピュレータについて、
図1~
図8を参照しながら説明する。
【0013】
(構成)
図1は、実施形態に係るマニピュレータの一例を示す図である。
図1に示すマニピュレータ100は、制御装置10とアーム20とを含む。アーム20は、リンク201A~201Dと関節202A~202Cを備える。リンク202Dの基端部は、移動体などの土台となる装置30に固定されている。リンク201Dの先端部は関節202Cを介してリンク201Cの基端部に接続される。リンク201Cの先端部は関節202Bを介してリンク201Bの基端部と接続される。リンク201Bの先端部は関節202Aを介してリンク201Aの基端部と接続される。リンク201Aの先端部には、図示しないエンドエフェクタ等の作業用ツールが取り付けられる。リンク201A~201Dを総称してリンク201、関節202A~202Cを総称して関節202と記載する場合がある。アーム20は、異なる数のリンク、異なる数の関節を備えていてもよい。関節202には、モータ203と角度センサ204が内蔵されている。モータ203の回転によって関節102に接続されるリンク201の姿勢が制御される。角度センサ204によって、関節202の角度や角速度が計測される。制御装置10は、角度センサ204が計測する関節202の角度や角速度を監視しながら、モータ203を制御し、アーム20の姿勢を制御する。制御装置10は、アーム20(例えばリンク201D)の内部に設けられていてもよいし、アーム20とは別に設けられていてもよい。なお、アーム20の外部には、障害物などとの接触を検知するセンサ類が設けられていない。
【0014】
制御装置10は、センサ情報取得部11と、アーム制御部12と、接触検知部13と、障害物位置推定部14と、記憶部15と、障害物形状推定部16と、を備える。
センサ情報取得部11は、角度センサ204が検出した角度や角速度を所定の時間間隔で継続的に取得する。
アーム制御部12は、アーム20先端の目標位置やアーム20の目標姿勢などについての指示情報を受け付けて、アーム20の動作を制御する。例えば、アーム制御部12は、アーム20の目標軌道、各関節202の目標角度などを算出し、センサ情報取得部11が取得する角度や角速度が目標値となるようにモータ203を制御する。アーム制御部12が関節202の制御を行う方法は公知の任意の制御方法であってよい。
【0015】
接触検知部13は、リンク201の障害物への接触を検知する。接触検知部13は、リンク201に生じる外乱トルクを計算し、その値が所定の閾値(例えば0、あるいは0とみなせる値)以上であれば、リンク201が障害物へ接触したと判定する。この判定によって、障害物への接触が検知される。リンク201に生じる外乱トルクの計算方法や障害物との接触検知の方法については、特許文献1や非特許文献1に記載がある。例えば、接触検知部13は、これら文献に記載されたものと同様の方法によって、障害物への接触を検知する。非特許文献1に記載があるように、接触検知部13は、リンク201ごとに障害物への接触を検知する。
【0016】
障害物位置推定部14は、障害物の位置を推定し、推定した位置の情報を記憶部15に記録する。障害物位置の推定方法については後述する。
記憶部15は、アーム20の制御に必要な情報を記憶する。また、記憶部15は、障害物位置推定部14が推定した障害物位置の情報を記憶する。
障害物形状推定部16は、記憶部15が記憶する障害物位置の情報に基づいて、障害物の形状や範囲を算出し、障害物の形状や障害物が存在する範囲を示す情報を出力する。
【0017】
<第一実施形態>
第一実施形態は、障害物位置の推定処理に関する。
図2~
図6を用いて、マニピュレータ100の障害物の位置推定処理について説明する。
【0018】
(動作)
図2は、第一実施形態に係る障害物接触時の制御の流れを示すフローチャートである。
アーム制御部12が指示情報に基づいてアーム20の動作制御を行う間、並行して、制御装置10は、センサ情報取得部11が取得する角度センサ204の値を監視して、以下の処理を継続的に繰り返し行う。
接触検知部13が、各リンク201A~201Dに発生する外乱トルクを推定する(ステップS11)。例えば、接触検知部13は、角度センサ204が計測した値に基づいて、特許文献1や非特許文献1に記載の方法で、各リンク201に生じる外乱トルクを推定する。次に接触検知部13は、外乱トルクの値が閾値以上か否かによって接触判定を行う(ステップS12)。閾値とは、例えば、0とみなせる値である。接触検知部13は、外乱トルクが閾値以上の場合は接触が生じたと判定し、外乱トルクが閾値未満の場合は接触が生じていないと判定する。接触検知部13は、リンク201A~201Dの各々について、この接触判定を行う。全てのリンク201にて接触が生じていないと判定した場合(ステップS12;No)、本処理フローを終了する。
【0019】
何れかのリンクで接触が生じたと判定した場合(ステップS12;Yes)、接触検知部13は、接触リンクを特定する(ステップS13)。接触リンクとは、障害物と接触したと特定するリンク201のことである。例えば、リンク201Bで障害物との接触が発生すると、多くの場合、リンク201B、201C、201Dで閾値以上の外乱トルクが検知される。接触検知部13は、閾値以上の外乱トルクが検出されたリンク201のうち、先端側のリンクを接触トルクとして特定する。この例の場合、接触検知部13は、リンク201Bを接触リンクとして特定する。つまり、複数のリンクで外乱トルクが閾値を超えた場合、接触検知部13は、最も先端側のリンクを接触リンクと特定する。
【0020】
次に障害物位置推定部14が、障害物位置を推定する(ステップS14)。障害物位置推定部14は、接触が検知された時間にアーム20が移動していた方向に障害物があるとして、
図3に示す手順で障害物を検知する。
図3は、第一実施形態に係る障害物位置の推定処理のフローチャートである。まず、障害物位置推定部14は、代表点を設定する(ステップS21)。代表点とは、ステップS13で特定した接触リンク201に接続された関節202である。関節202が両端にある場合、障害物位置推定部14は、その何れかを代表点として特定する。両端の関節202のうちの何れを代表点とするかについては、後に
図4、
図5を用いて説明する。次に障害物位置推定部14は、代表点の移動方向を算出する(ステップS22)。障害物位置推定部14は、接触検知時のアーム20の関節角又は関節角速度から、障害物に接触しているリンク201(接触リンク)の代表点の移動方向を計算する。次に障害物位置推定部14は、ステップS22で算出した移動方向上に存在する1点を、障害物位置として推定する(ステップS23)。
【0021】
ここで、
図3のフローチャートで示した処理について具体例を挙げて説明する。
図4は、第一実施形態に係る障害物位置の推定処理の一例を説明する第1の図である。
図4に、接触リンクの先端側(手先側)の関節202を代表点とし、その代表点の移動方向に障害物位置を推定する方法を示す。
図4は、アーム20全体の関節202を動かしながら手先を矢印YA1が示す斜め左下向きに移動させているときに、リンク201Bに障害物400が接触した状況を示している。このとき、ステップS13により、リンク201Bが接触リンクとして特定される。全ての関節202を動かしてアーム20を移動している間に、あるいは、接触リンクから見てアーム20の先端側の関節202を動かしている間に、接触検知部13が、障害物との接触を検知した場合、障害物位置推定部14は、特定された接触リンクの先端側の関節202を代表点として設定する(ステップS21)。
図4において、接触リンクはリンク201Bであるから、障害物位置推定部14は、関節202Aを代表点として設定する。
【0022】
次に障害物位置推定部14は、代表点の移動方向を次のようにして算出する(ステップS22)。アーム20の関節角度q、関節角速度q・(微分を表すドット)とする。ここで、関節角度q、関節角速度q・は、アーム20の全ての関節202の角度、角速度の和のベクトルである。すると、代表点の位置は、以下の式(1)で表すことができる。
代表点の位置:xk=fk(q) ・・・(1)
ここで、fk(q)は代表点の位置の幾何式である。
代表点の速度は、以下の式(2)で表すことができる。
【0023】
【0024】
ここでJは、非特許文献1の「III.DETECTION AND REACTION WITH RIGID ROBOTS」に開示があるヤコビ行列である。
障害物位置推定部14は、以下の式(3)から代表点の移動方向を算出する。
【0025】
【0026】
次に障害物位置推定部14は、次のようにして障害物位置を推定する(ステップS23)。障害物位置推定部14は、ステップS22の式(3)で算出した移動方向に基づいて、以下の式(4)により、障害物位置μを推定する。なお、dは、接触リンクから障害物400までの距離(最短距離)を示す(
図4のd)。距離dには、例えば、アーム20のリンク201Bの半径R(
図4のR1÷2)を設定する。なお、リンク半径Rを距離dに設定することは一例であって、距離dには他の値を設定してもよい。
【0027】
【0028】
全ての関節202の角度センサ204により計測された角度や角速度を式(2)に代入し、また、リンク半径Rを式(4)のdに代入することにより、障害物位置μを算出することができる。算出された障害物位置の位置を、
図4の障害物位置μ0に示す。障害物位置推定部14は、所定のリンク半径R、接触検知時にセンサ情報取得部11が取得した各関節202の角度や角速度から代表点の位置x
kや代表点の移動方向(式(3))を算出し、式(4)によって、障害物位置μ0を算出する。障害物位置μ0は、例えば、3次元の位置情報である。
【0029】
次に
図5を参照する。
図5は、第一実施形態に係る障害物位置の推定処理の一例を説明する第2の図である。
図5に、接触リンクの基端側(ベース側)の関節202の移動方向に障害物位置を推定する方法を示す。
図5は、アーム20の手首関節202Aを動かすことなく、肘関節202Bを矢印YA2の方向へ移動させているときに障害物401に接触した状況を示している。このとき、ステップS13により、リンク201Bが接触リンクとして特定される。手首関節202Aが固定されているにもかかわらず、肘関節202Bを動かす動作を行う場合、手首関節202Aの移動方向に障害物位置を推定するのが適切でない場合がある。そこで、アーム20の動きに応じて、代表点を変更することで、より正確な障害物位置推定を行う。例えば、接触リンクから見て先端側の関節202を動かさずに、基端側の関節202を動かしている間に、接触検知部13が、障害物401との接触を検知した場合、障害物位置推定部14は、特定された接触リンクの基端側の関節202を代表点として設定する(ステップS21)。
図5において、接触リンクはリンク201Bであるから、障害物位置推定部14は、関節202Bを代表点として設定する。
【0030】
次に障害物位置推定部14は、上記の式(3)によって代表点の移動方向を算出する(ステップS22)。次に障害物位置推定部14は、上記の式(4)によって障害物位置μ1を推定する(ステップS23)。
【0031】
図4、
図5の説明では、障害物400、401と接触が検知されたときに、接触リンクの先端側の関節202Aが動いている場合は接触リンクの先端側の関節202Aを代表点とし、接触リンクの先端側の関節202Aが動いておらず基端側の関節202Bが動いている場合は接触リンクの基端側の関節202Bを代表点とすると説明したが、代表点の決定方法はこの方法に限らない。状況によっては、接触リンクの先端側の関節202Aが動いている場合であっても、基端側を代表点として設定してもよいし、接触リンクの先端側の関節202Aが動いていない場合でも、先端側の関節202Aを代表点として設定してもよい。例えば、接触リンクの先端側の関節202Aを代表点として障害物位置μを推定する処理と、接触リンクの基端側の関節202Bを代表点として障害物位置μを推定する処理の両方を行い、複数回の障害物位置推定処理の結果、より確からしい方向に推定された障害物位置μを障害物位置であるとして選択し、その場合の代表点を以降の同じ接触リンクに対する接触検知の際の代表点として定めてもよい。
【0032】
図2に戻る。
図3の処理により、障害物位置μを推定すると、障害物位置推定部14は、推定した障害物位置μを記憶部15に記録する(ステップS15)。推定した障害物位置μを図示した例を
図6に示す。
図6の線300やその他の同様の線は、アーム20を様々に動作させている間のアーム20の姿勢の履歴を示している。また、障害物位置μ2~μ5は、アーム20の姿勢を様々に変化させている間に障害物402との接触が検知された際に、ステップS14の処理によって推定された障害物位置を示す。障害物位置推定部14は、アーム20の動作中に推定した複数の障害物位置μ2~μ5を記憶部15に記録する。
【0033】
また、障害物位置推定部14は、障害物位置μを記憶部15に記録するとともに、障害物位置μをアーム制御部12へ出力する。アーム制御部12は、障害物位置μに基づいて、接触後の処理を実行する(ステップS16)。例えば、アーム制御部12は、アーム20を停止したり、アーム20を障害物との接触が生じない元の位置へ戻したりといった衝突緩和の制御を実行してもよい。さらに障害物位置μが把握できると、アーム20により積極的な動作を行わせることができる。例えば、アーム制御部12は、障害物位置μに基づいて、障害物を回避しつつ、アーム20の先端を目標位置へ近づけるような動作を行ってもよい。その際のアーム20の制御には、目標位置へ到達させる方法、障害物を回避させる方法にそれぞれ公知の技術を用いても良い。例えば、障害物位置μが判明している場合に障害物を回避させる方法の一例として、ポテンシャル法が知られている。アーム制御部12は、ポテンシャル法を適用して、障害物を回避するようアーム20を制御してもよい。また、目標位置へ到達させる方法についても、アーム制御部12は、マニピュレータを目標位置へ到達させる公知の技術を用いて、アーム20の制御を行ってもよい。障害物位置μの推定結果を取得することにより、アーム制御部12は、障害物接触後のアーム20の動作を選択することができる。
【0034】
以上、
図2~
図6を用いて説明したように、第一実施形態によれば、接触リンク上に設定した代表点の位置、速度を基に、障害物の位置を推定することができる。障害物位置を認識することで、障害物に対する公知の回避技術を適用でき、接触後に巻き戻しや停止以外の動作をアーム20に行わせることができる。これにより、従来技術であれば、障害物に接触した場合、停止などの衝突緩和の後にアーム20の軌道を調整する等の手間が必要となるところ、本実施形態によれば、障害物を回避しつつ目標動作を行わせることを自動化することができるので、マニピュレータ100を用いた作業効率が向上する。また、アーム20の動作状況(手首関節202Aを動かすか否か等)に応じて代表点の設定を切り換えることで、障害物位置をより正確に推定することができる。また、本実施形態によれば、マニピュレータ100に、接触検知や障害物位置推定用の外界センサ(接触センサ、カメラ等)を設置しなくても障害物との接触を検知し、障害物位置を推定することができる。外界センサが不要なので、狭隘部にてアーム20を動作させるような場合でもセンサ類によって動作空間を圧迫し、狭めることが無く、また、センサ類の故障や破損などを気にする必要が無い。例えば、本実施形態の制御方法は、カメラを設置できない環境でのマニピュレータの制御に適用することができる。また、外界センサを必要としないことで、コストや重量等を低減することができる。
【0035】
<第二実施形態>
第二実施形態は、第一実施形態の方法で推定した障害物位置に基づいて、障害物の形状や範囲を推定する処理に関する。
図7を参照して、第二実施形態の説明を行う。
【0036】
図7は、第二実施形態の係る障害物の形状を推定する処理について説明する図である。
図2のステップS15で説明したように、アーム20の運転を継続すると、記憶部15には、障害物位置μが複数(例えば、障害物位置μ2~μ5)記録される。障害物形状推定部16は、複数の障害物位置μから障害物402の形状や範囲を推定してその推定結果を出力する。
図7の左
図701は、記憶部15に記録された障害物位置μ2~μ5をその位置情報に基づいてプロットした図である。障害物形状推定部16は、障害物位置μ2~μ5に基づいて、障害物の形状を推定する。例えば、障害物形状推定部16は、障害物位置μ2~μ5をすべて内包し、その体積が最小となる直方体や円柱などを算出し、算出した直方体の形状を障害物の形状、算出した直方体が占める空間を障害物が存在する範囲であると推定する。また、障害物形状推定部16は、推定した直方体等とその位置関係を表示装置や電子ファイル等に出力する。障害物形状推定部16による障害物形状の推定結果およびその出力例を
図7の右
図702に示す。右
図702の障害物u6は、障害物形状推定部16によって推定された障害物の形状や範囲を示している。推定結果を表示することで、障害物との実際の接触履歴に基づく障害物形状とマニピュレータ100との位置関係を容易に把握することができる。また、障害物形状推定部16が推定した障害物範囲の位置情報をアーム制御部12へ渡すことにより、アーム制御部12は、効率的に障害物を回避する制御が可能になる。
【0037】
第二実施形態では、障害物位置推定部14が推定した複数の障害物位置μのそれぞれが、障害物全体のある部分(点)であると考え、これらを統合して、障害物全体の形状を推定する。これにより、これまで障害物位置μとして推定されていない位置についても、その位置が障害物の一部であるかどうかを判断することができる。これにより、障害物の一部である可能性がある位置を予測して回避しつつ、アーム20を動作させることができるので、目標位置に向けて、スムーズにアーム20を動作させることができる。
【0038】
なお、アーム20の制御を効率化するために、作業開始時にアーム20を様々な方向(例えば、全方向に亘って網羅的に)に動作させて意図的に障害物と接触させ、障害物位置推定部14によって障害物位置推定およびその位置情報の記録を行い、さらに障害物形状推定部16によって障害物の形状を推定させる処理を行うようにしてもよい。作業の最初の段階で、障害物の形状や範囲を把握することにより、それ以降のマニピュレータ100の制御を効率化することができる。
【0039】
図8は、実施形態の制御装置のハードウェア構成の一例を示す図である。
コンピュータ900は、CPU901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備える。
上述の制御装置10は、コンピュータ900に実装される。そして、上述した各機能(センサ情報取得部11、アーム制御部12、接触検知部13、障害物位置推定部14、μ16)は、プログラムの形式で補助記憶装置903に記憶されている。CPU901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。
【0040】
なお、制御装置10の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各機能部による処理を行ってもよい。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、CD、DVD、USB等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0041】
以上のとおり、本開示に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0042】
<付記>
各実施形態に記載の制御装置10、位置推定方法及びプログラムは、例えば以下のように把握される。
【0043】
(1)第1の態様に係る制御装置10は、マニピュレータ100のアーム20が障害物400、401等へ接触したことを検知する接触検知部13と、前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向(式(3))と、前記代表点から前記障害物までの距離dと、に基づいて前記障害物(μ0~μ5)の位置を推定する障害物位置推定部14と、を備える。
これにより、マニピュレータ100の外界を検出するセンサを設けなくても、障害物との接触を検知し、その位置を推定することができる。障害物の位置を推定することができるので、その位置情報を用いて、障害物との接触検知後のマニピュレータ100の動作を任意に制御することができる。
【0044】
(2)第2の態様に係る制御装置10は、(1)の制御装置10であって、前記障害物位置推定部14は、前記アーム20が備える関節202の動作状況に応じて、前記代表点を設定する。
これにより、アーム20の動かし方に応じて、代表点を設定することにより、正確に障害物位置を推定することができる。
【0045】
(3)第3の態様に係る制御装置10は、(2)の制御装置10であって、前記接触が検知されたリンク(
図4の201B)に接続された関節202のうち、先端側の関節202Aを動かしているときに前記障害物400との接触が検知された場合、前記障害物位置推定部14は、前記リンクの先端側の関節202Aを前記代表点として設定する。
本開示の第一実施形態では、接触リンクの移動方向に障害物があると推定するが、例えば、接触リンクの先端側の関節202を動かしているときに障害物と接触した場合(接触リンクの先端側の関節のさらに先のリンクでは外乱トルクが検知されていない)、接触リンクの先端側の関節の移動方向が基端側の移動方向よりも障害物位置に関係が深い(より適切に障害物位置を表す)と仮定し、接触リンクの先端側の関節を代表点として設定する。これにより、障害物位置を適切に推定する。
【0046】
(4)第4の態様に係る制御装置10は、(2)~(3)の制御装置10であって、前記接触が検知されたリンク(
図5の201B)に接続された関節202のうち、基端側の関節202Bだけを動かしているときに前記障害物401との接触が検知された場合、前記障害物位置推定部14は、前記リンクの基端側の関節202Bを前記代表点として設定する。
本開示の第一実施形態では、接触リンクの移動方向に障害物があると推定するが、例えば、接触リンクの基端側の関節202のみを動かしているときに障害物と接触した場合、接触リンクの基端側の関節の移動によって接触が生じたとすると、接触リンクの基端側の移動方向が先端側の移動方向よりも障害物位置に関係が深いと考え、接触リンクの基端側の関節を代表点として設定する。これにより、障害物位置を適切に推定する。
【0047】
(5)第5の態様に係る制御装置10は、(1)~(4)の制御装置10であって、前記接触検知部は、前記アームを構成するリンクの中の前記障害物への接触が検知された前記リンクのうち最も先端側の前記リンクを前記障害物へ接触したリンクであると特定する。
アームが障害物と接触すると、接触があったリンクと、それよりも基端側(ベース側)のリンクにて外乱トルクが観測される。従って、外乱トルクが観測されたリンクのうち、最も先端側のリンクを接触リンクと特定することで、実際に接触があったリンクを誤りなく特定できる確率が高まり、これにより、障害物位置の推定精度を確保することができる。
【0048】
(6)第6の態様に係る制御装置10は、(1)~(5)の制御装置10であって、前記代表点から前記障害物までの距離に前記アームを構成するリンクの半径の長さを設定する。
代表点から障害物までの距離は不明であるところ、大きく違わない値としてリンク半径を距離に設定することで障害物位置の推定が可能になる。
【0049】
(7)第7の態様に係る制御装置10は、(1)~(6)の制御装置10であって、前記位置推定部は、推定した前記障害物の位置を記憶部に記録する。
障害物位置を記録することで、障害物全体の形状や範囲の推定を行うための基礎データを蓄積することができる。
【0050】
(8)第8の態様に係る制御装置10は、(7)の制御装置10であって、前記記憶部に記録された前記障害物の位置に基づいて、前記障害物の形状を推定する形状推定部、をさらに備える。
障害物の形状を推定することで、障害物の回避が可能になる。これにより、マニピュレータ100による作業効率を向上することができる。
【0051】
(9)第9の態様に係る位置推定方法は、マニピュレータのアームが障害物へ接触したことを検知するステップと、前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定するステップと、を有する。
【0052】
(10)第10の態様に係るプログラムは、コンピュータ900に、マニピュレータのアームが障害物へ接触したことを検知し、前記アームのうちの前記接触が検知されたリンク上に設定された代表点の移動方向と、前記代表点から前記障害物までの距離と、に基づいて前記障害物の位置を推定する処理を実行させる。
【符号の説明】
【0053】
10・・・制御装置
11・・・センサ情報取得部
12・・・アーム制御部
13・・・接触検知部
14・・・障害物位置推定部
15・・・記憶部
16・・・障害物形状推定部
20・・・アーム
100・・・マニピュレータ
201、201A、201B、201C、201D・・・リンク
202、202A、202B、202C・・・関節
203・・・モータ
204・・・角度センサ
900・・・コンピュータ
901・・・CPU
902・・・主記憶装置
903・・・補助記憶装置
904・・・入出力インタフェース
905・・・通信インタフェース