JP2006015430A - ロボット制御方法およびロボットシステム - Google Patents

ロボット制御方法およびロボットシステム Download PDF

Info

Publication number
JP2006015430A
JP2006015430A JP2004193361A JP2004193361A JP2006015430A JP 2006015430 A JP2006015430 A JP 2006015430A JP 2004193361 A JP2004193361 A JP 2004193361A JP 2004193361 A JP2004193361 A JP 2004193361A JP 2006015430 A JP2006015430 A JP 2006015430A
Authority
JP
Japan
Prior art keywords
robot
target
calculated
representative point
reference position
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004193361A
Other languages
English (en)
Other versions
JP4488811B2 (ja
Inventor
Hitoshi Hasunuma
仁志 蓮沼
Katsumi Nakajima
勝己 中嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Heavy Industries Ltd
Original Assignee
Kawasaki Heavy Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Heavy Industries Ltd filed Critical Kawasaki Heavy Industries Ltd
Priority to JP2004193361A priority Critical patent/JP4488811B2/ja
Publication of JP2006015430A publication Critical patent/JP2006015430A/ja
Application granted granted Critical
Publication of JP4488811B2 publication Critical patent/JP4488811B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract


【課題】 自由度の高いロボットの各軸の値を短時間に求めることができるロボット制御方法を提供する。
【解決手段】 ステップS1では、遠隔操作装置からの作業目標、たとえば手先の移動先の指示位置を取得する。ステップS2では、手先、肩、および腰が、それぞれ腕部32a、胴体部33、および脚部34aの動作目標を満たす条件に合致する位置を、それぞれの参照位置として計算する。ステップS3では、計算された参照位置に基づいて、作業目標を達成するために設定された動作目標の優先度に従って、手先、肩、および腰の目標位置を計算する。この場合、動作目標の優先度は、脚部34a、胴体部33、腕部32aの順である。ステップS4では、計算された目標位置に基づいてロボットの各軸の値を計算する。ステップS5では、計算された各軸の値をロボットの各軸に指令して終了する。
【選択図】 図2

Description

本発明は、ヒューマノイドなどの自由度の高いロボットをリアルタイムで制御することができるロボット制御方法に関する。
昨今、研究教育分野あるいはエンターテイメント分野での人間型ロボットが脚光を浴びている。しかし、これらの人間型ロボットは、自由度が少なく、人間が行う作業をそのまま肩代わりしてくれるものではない。人間が作業を行う環境と同じ環境で、人間が行う作業をそのまま肩代わりすることができる人間型ロボットの実用化が期待されている。
図24は、人間型ロボットの概略の構成を示す図である。ロボット1は、人間型ロボットであり、頭部2、腕部3a,3b、胴体部4、脚部5a,5b、手部6a,6bを含んで構成される。頭部2は、人間の頭に相当する部位であり、1つのリンクと1つの連結部からなる。腕部3a,3bは、人間の腕に相当する部位であり、それぞれ2つのリンクと3つの連結部からなり、胴体部4は、人間の胴体に相当する部位であり、2つのリンクと1つの連結部からなる。脚部5a,5bは、人間の脚に相当する部位であり、それぞれ3つのリンクと3つの連結部からなり、手部6a,6bは、人間の手に相当する部位であり、1つのリンク部と1つの連結部からなる。連結部は、1つまたは複数のジョイントから構成され、リンクとリンクとを連結する部位である。このジョイントは、1つの自由度を有する。
人間型ロボットは、さらに指などの自由度を含めると、自由度が30自由度を超えることもあり、20自由度以上のロボットを超多自由度ロボットと呼ぶことがある。このような超多自由度ロボットは、実際の作業を行うために必要な自由度に比べ、多くの冗長な軸に自由度を有する。ロボットを動作させるためには、ロボットの位置と姿勢をロボットに指示する必要がある。具体的には、その位置と姿勢を実現するロボットの各軸の値、たとえば角度を計算して、計算した値をロボットの各軸に指令する必要がある。軸の値が既知の軸以外の軸について、各軸の値を求める方法として、評価関数を用いて、各軸の値を変化させて評価関数が最適な値になる各軸の値を導出し、導出された各軸の値をロボットの各軸に指令する各軸の値として求める方法がある。
図25は、評価関数を用いてロボットの各軸の値を求める方法を説明するための図である。作業目標情報(以下作業目標という)、たとえば手先の移動先の位置が指示され、ロボットの各軸の値を求めるときに本処理が行われる。ステップA1では、作業目標が指示される。ステップA2では、冗長軸に対する各軸の値に初期値を設定する。ステップA3では、評価関数に各軸の値を代入して評価値を計算する。ステップA4では、評価関数が最適な評価値になる各軸の値が求まったか否か判定する。最適な評価値になる各軸の値が求まったときは、ステップA5に進み、最適な評価値になる各軸の値が求まらなかったときは、ステップA6に進む。
ステップA5では、求めた各軸の値をロボットに指令して終了する。ステップA6では、冗長軸に対する各軸の値を変更して、ステップA3に戻る。このように、評価値が最適になる各軸の値を、計算を繰り返すことによって求めることができる。
人間が指示することができる自由度は、高々12自由度であり、たとえば、マスターアームなどの操縦装置を用いて指示する場合でも12自由度であり、残りの自由度については、計算で求める必要がある。人間型ロボットの場合、残りの自由度は18自由度以上である。このような計算は、上述した評価関数を用いて繰り返し計算で行われるため、計算時間がかかる。そのため計算能力の高いコンピュータを用いてオフラインで計算する必要があり、実時間で計算して、つまり指示が与えられると即時に各軸の値を計算して人間型ロボットに指令することは難しい。
人間型ロボットを制御する第1の従来技術として、人間の意識動作に対応する動作を操作者によるジョイスティック操作によってロボットに指示を与え、人間の無意識動作に対応する動作をロボットの自律制御で実現する方法を提案している。この方法は、意識して動かしたい部位をスイッチで切替えて選択して指示する方法であって、作業目的に応じてロボットの自律制御を実現する方法を示したものではない(たとえば非特許文献1参照)。
人間型ロボットを制御する第2の従来技術として、人間型ロボットの手先に対して目標位置と目標外力が与えられた場合、ロボットが転倒しないように脚部を自律制御によって動作させる実時間制御方法がある。この方法では、評価関数を用いて最急降下法による繰り返し計算で肩の最適な位置を計算し、2次元モデルのロボットの最適な姿勢を求めているものであり、ロボットの自由度が増大すれば、評価するパラメータは増え、ロボット全体姿勢の評価に対する最適化計算は、非常に計算量が多くなり、実時間性を損なう可能性がある(たとえば非特許文献2参照)。
人間型ロボットを実時間で操作するときに、操作者の意図通りにロボットの動作を実現するためには、操作者からのロボットの一部に対する指示に基づいて、他の冗長度のある軸の値を短時間で計算する必要がある。特に、遠隔操作によってロボットを制御するときは、ロボットと遠隔操作装置との間の通信の実時間性だけでなく、ロボットに搭載されたコンピュータによって、ロボットの各軸の値を計算する計算周期毎にロボットへの指示を行なうことができる実時間性が重要である。人間型ロボット以外のロボットについても、ロボットの各軸の値の計算は評価関数を用いているので、自由度が20自由度以上になると、計算時間がかかる。
Neo Ee Sian、他4名、「ヒューマノイドロボットの全身遠隔操作-モーメンタム・コントロールを用いた全身運動生成-(Whole Body Teleoperation of a Humanoid Robot-A Method of Integrating Operator's Intention and Robot's Autonomy-)」、Proc. IEEE Int. Conf. Robotics and Automation、2003年 井上健司、他2名、「腕で作業をしながら移動する人間型ロボットの実時間制御(Sagittal Plane内の運動の制御)」、日本ロボット学会誌18巻1号、2000年1月、P75−86
しかしながら、上述した第1の従来技術は、人間の無意識動作に対応する動作をロボットの自律制御で実現する1つの方法を提案しているが、作業目標に応じた自律制御をどのように実現するかについては示していない。
上述した第2の従来技術は、ロボットに指令するための各軸の値を、評価関数を用いた繰り返し計算によって求めているために計算時間がかかり、実時間制御を行うことができないという課題がある。
本発明の目的は、自由度の高いロボットにおいて、作業目標に応じた自律制御を行うためのロボットの各軸の値を短時間に求めることができるロボット制御方法およびロボットシステムを提供することである。
本発明は、複数のリンクと各リンクを相互に連結する複数の連結部によって構成されるロボットにこのロボットが行うべき動作を示す作業目標情報が指示されたときに、前記ロボットを制御対象として分割した複数の制御対象領域毎に、前記作業目標情報を達成するために優先度が設定された複数の動作条件を、前記作業目標情報に応じて抽出する抽出工程と、
前記制御対象領域毎に、前記制御対象領域に含まれる部位のうちで前記制御対象領域の移動先位置が計算される部位である代表点が前記動作条件に合致する位置を、前記代表点の移動先位置の候補である参照位置として計算する参照位置計算工程と、
前記参照位置計算工程で代表点毎に計算された参照位置に基づいて、前記動作条件の優先度に従って、前記各代表点を移動させるべき位置である目標位置を計算する目標位置計算工程と、
前記目標位置計算工程で計算された目標位置に基づいて前記ロボットの各軸の値を計算する各軸値計算工程と、
前記各軸値計算工程で計算された各軸の値をロボットの各軸に指令する指令工程とを含むことを特徴とするロボット制御方法である。
本発明に従えば、まず、リンクと各リンクを連結する連結部とから構成されるロボットにこのロボットが行うべき動作を示す作業目標情報が指示されたときに、前記ロボットを制御対象として分割した複数の制御対象領域毎に、前記ロボットが行うべき動作を示す作業目標情報を達成するために、優先度が付された動作条件を抽出し、前記ロボットに作業目標情報が指示されたときに、前記制御対象領域毎に、前記制御対象領域に含まれる部位のうちで前記制御対象領域の移動先位置が計算される部位である代表点が前記動作条件に合致する位置を、前記代表点の移動先位置の候補である参照位置として計算する。次に、代表点毎に計算された参照位置に基づいて、前記動作条件の優先度に従って、前記各代表点を移動させるべき位置である目標位置を計算し、計算された目標位置に基づいて前記ロボットの各軸の値を計算し、計算された各軸の値をロボットの各軸に指令する。
このように、ロボットの各軸の値を制御対象領域毎に計算するので、ロボット全体としての繰り返し計算が不要になり、自由度の高いロボットにおいて、作業目標に応じた自律制御を行うためのロボットの各軸の値を短時間に求めることができる。
また本発明は、前記目標位置計算工程では、前記参照位置計算工程で代表点毎に計算された参照位置が、各代表点が移動することができる移動可能範囲内の所定の範囲である移動許諾範囲内にあるときは、各代表点の参照位置を各代表点の目標位置として計算し、
前記参照位置計算工程で代表点毎に計算された参照位置が対応する代表点の移動許諾範囲内にないときは、前記移動許諾範囲内の位置であって、各制御対象領域の所定の条件を満たす位置を、各代表点の目標位置として計算することを特徴とする。
本発明に従えば、制御対象領域毎に計算した参照位置が代表点の移動許諾範囲内でないときも、移動許諾範内の位置に目標位置を計算するので、許容される範囲内で動作が可能な各軸の値を短時間に求めることができる。
また本発明は、前記目標位置計算工程では、優先度の高い動作条件が設定された制御対象領域の代表点の目標位置を計算し、次に優先度の高い動作条件が設定された制御対象領域の代表点の目標位置を基準として、隣接する制御対象領域の代表点の目標位置を計算することを特徴とする。
本発明に従えば、隣接する制御対象領域の代表点の目標位置の計算を、優先度の高い動作条件が設定された制御対象領域の目標位置を基準に計算しているので、すなわち、他の制御対象領域との関係を考慮する必要がないので、計算量を少なくでき、ロボットの各軸の値を短時間に求めることができる。
また本発明は、前記各代表点の移動許諾範囲を対応する移動可能範囲で除した割合が、優先度の高い動作条件が設定された制御対象領域のほうが優先度の低い動作条件が設定された制御対象領域より小さいことを特徴とする。
本発明に従えば、優先度の高い動作条件が設定された制御対象領域の代表点の移動可能範囲に対する移動許諾範囲の割合を、優先度の低い動作条件が設定された制御対象領域より小さくしているので、優先度の高い動作条件が設定された制御対象領域の代表点の目標位置の影響を少なくすることができる。
また本発明は、前記参照位置計算工程では、以前前記ロボットに指示された作業目標情報に対して前記目標位置計算工程で計算された目標位置と前記各軸値計算工程で計算された各軸の値に基づいて参照位置が計算されることを特徴とする。
本発明に従えば、以前に求めた目標位置と以前に求めた各軸の値とに基づいて新たな目標位値を求めるので、動作しているロボットの現在の状態に基づいた次の目標位置を計算できる。
また本発明は、前記目標位置計算工程では、計算された目標位置を、以前前記指令工程で各軸の値をロボットの各軸に指令したことによって生じたロボットの動作に起因する動的要素の情報に基づいて再計算することを特徴とする。
本発明に従えば、ロボットの動作に起因する動的要素、たとえば、動作しているロボットの慣性を考慮して目標位置を再計算するので、より安定した目標位置を計算でき、ロボットの安定性を向上することができる。
また本発明は、前記制御対象領域毎の代表点の参照位置を並行して計算することを特徴とする。
本発明に従えば、制御対象領域毎の代表点の参照位置を並行して計算するので、参照位置の計算時間を短時間に行うことができ、さらにロボットの各軸の値を短時間に求めることができる。
また本発明は、前記制御対象領域内の各軸の値を制御対象領域毎に並行して計算することを特徴とする。
本発明に従えば、制御対象領域内の各軸の値を制御対象領域毎に並行して計算するので、ロボット全体の各軸の値の計算時間を短時間に行うことができる。
また本発明は、前記ロボットは、20自由度以上の自由度を有することを特徴とする。
本発明に従えば、繰り返し計算を行わないので、20自由度以上の自由度を有するロボットについて、従来技術による計算時間に比べて、ロボットの各軸の値をより短時間に求めることができる。
また本発明は、前記制御対象領域の自由度は、6自由度以下であることを特徴とする。
本発明に従えば、制御対象領域の自由度が6自由度以下であるので、つまり制御対象領域内の自由度が少ないので、冗長な自由度を少なくでき、制御対象領域内の各軸の値の計算時間を短くでき、さらにロボットの各軸の値を短時間に求めることができる。
また本発明は、前記ロボットは、人間の腕に相当する腕部、人間の胴体に相当する胴体部、人間の脚に相当する脚部とを含む人間型ロボットであり、前記腕部、前記胴体部、および前記脚部をそれぞれ制御対象領域とすることを特徴とする。
本発明に従えば、人間型ロボットを腕部、胴体部、および脚部の制御対象領域に分割するので、30自由度以上の自由度の人間型ロボットにも適用することができる。
また本発明は、前記人間型ロボットの制御対象領域毎の動作条件が、腕部は作業目標情報に応じた動作を実現すること、胴体部は腕部の動作範囲を広く保つこと、脚部は全体のバランスを維持することおよび胴体部の動作範囲を広く保つことであることを特徴とする。
本発明に従えば、それぞれの部位に作業目標情報を達成するための動作条件を設定しているので、ロボット全体として、ロボットのバランスを維持し、手先の動作範囲を広く保ち、さらに作業目標情報に応じた動作を実現することができる。
また本発明は、前記人間型ロボットは、人間の頭に相当する頭部を含み、頭部の動作条件が作業に必要な視野を確保すること、および前記胴体部は頭部の動作範囲も広く保つことであることを特徴とする。
本発明に従えば、人間型ロボットの頭部も制御対象領域として分割するので、頭部の動作条件を実現することができ、頭部の動作範囲を広く保つことができる。
また本発明は、前記人間型ロボットは、前記腕部の代表点が手先、前記胴体部の代表点が肩、および前記脚部の代表点が腰であり、前記制御対象領域の代表点の移動許諾範囲の移動可能範囲に対する割合が、腰の代表点の割合が肩部の代表点の割合より小さく、かつ肩の代表点の割合が手先の代表点の割合より小さいことを特徴とする。
本発明に従えば、腰の移動可能範囲に対する移動許諾範囲の割合を肩より小さくし、かつ肩の移動可能範囲に対する移動許諾範囲の割合を手先より小さくしているので、優先度の高い動作条件が設定された脚部の代表点である腰の目標位置の影響を肩および手先より、および肩の目標位置の影響を手先より少なくすることができる。
また本発明は、前記参照位置計算工程で、腰の参照位置を計算する際、腰の速度が肩の速度に比例した速度に計算することを特徴とする。
本発明に従えば、腰の移動速度を肩の移動速度に比例させているので、胴体部の前屈量を抑えることができる。
また本発明は、複数のリンクと各リンクを相互に連結する複数の連結部によって構成されるロボットに、前記ロボット制御方法を実行するコンピュータを搭載したことを特徴とするロボットシステムである。
本発明に従えば、ロボットに前記ロボット制御方法を実行するコンピュータを搭載しているので、外部の遠隔操作装置から指示する制御情報が作業目標情報に関する情報だけでよく、ロボットシステムと遠隔操作装置との通信情報量を少なくすることができ、さらにロボットの各軸の値を短時間に求めることができる。
また本発明は、前記ロボットは、作業目標情報を決定するための検知手段を有し、前記検知手段で検知された情報に基づいて作業目標情報を生成し、生成された作業目標情報を前記ロボットの作業目標情報とすることを特徴とする。
本発明に従えば、ロボットが有する検知手段からの情報に基づいてロボットシステムが生成した新たな作業目標情報をロボットへの新たな作業目標情報とすることができるので、より自律したロボットシステムを実現することができ、さらにロボットの各軸の値を短時間に求めることができる。
また本発明は、複数のリンクと各リンクを相互に連結する複数の連結部によって構成されるロボットを制御対象とする複数の制御対象領域に分割する分割工程と、
前記制御対象領域毎に、前記制御対象領域に含まれる部位のうちで前記制御対象領域の移動先位置が計算される部位である代表点を決定する決定工程と、
前記制御対象領域毎に、前記ロボットが行うべき動作を示す作業目標情報を達成するために、優先度を付けた動作条件を設定する設定工程と、
前記ロボットに作業目標情報が指示されたときに、前記制御対象領域毎に、前記代表点が前記動作条件に合致する位置を、前記代表点の移動先位置の候補である参照位置として計算する参照位置計算工程と、
前記参照位置計算工程で代表点毎に計算された参照位置に基づいて、前記動作条件の優先度に従って、前記各代表点を移動させるべき位置である目標位置を計算する目標位置計算工程と、
前記目標位置計算工程で計算された目標位置に基づいて前記ロボットの各軸の値を計算する各軸値計算工程と、
前記各軸値計算工程で計算された各軸の値をロボットの各軸に指令する指令工程とを含むことを特徴とするロボット指令決定方法である。
本発明に従えば、ロボットを複数に制御対象に分割した制御対象領域を想定し、制御対象領域毎に作業目標情報を達成するための動作条件を優先度を付けて設定し、制御対象領域を移動する位置の候補である参照位置を計算し、計算された参照位置に基づいて、優先度に従って目標位置を計算し、計算された目標位置に基づいてロボットの各軸の値を計算するので、ロボットの制御対象への分割の仕方を変えれば、種々のロボットに適用可能であり、さらにロボット全体としての繰り返し計算が不要になり、ロボットの各軸の値を短時間に求めることができる。
本発明によれば、ロボットの各軸の値を短時間に求めることができるので、ロボットを実時間で制御することができ、オフラインでの各軸の値の決定に使用すれば、オフラインでの計算時間を短くすることができる。
図1は、本発明の実施の一形態であるロボット制御方法が適用されるロボットシステム10の構成を示す図である。ロボットシステム10は、ロボット部11、制御部12、通信部13を含んで構成される。ロボット部11は、撮像部14を含み、複数のリンクと各リンクを相互に連結する複数の連結部によって構成されるロボットであり、たとえば、頭部31、腕部32、胴体部33、脚部34などのサブシステムから構成される人間型ロボットである。撮像部14は、CCDカメラなどの映像を撮影する部位であり、たとえば人間型ロボットの場合、ロボット部11の頭部31に搭載され、撮影した映像を制御部12に送信する。
制御部12は、ロボットシステム10全体を制御する部位であり、OS(Operating
System)が稼動するコンピュータによって実現される。コンピュータは、ロボット部11に搭載され、図2または図21に示すロボット制御方法を実行することができる。制御部12は、遠隔操作装置20からロボットが行うべき動作を示す作業目標情報(以下作業目標という)作業目標を受信すると、作業目標を実現するためのロボットの各軸の値を、図2または図21に示すロボット制御方法によって計算し、計算した各軸の値をロボット部11に指令する。制御部12は、通信部13を介して、撮像部14からの映像を遠隔操作装置20に送信する。
通信部13は、遠隔操作装置20と通信を行う部位であり、遠隔操作装置20から受信した情報を制御部12に送信し、制御部12からの情報を遠隔操作装置20に送信する。
遠隔操作装置20は、操作者が入力したロボットシステム10への指示をロボットシステム10に送信するための装置であり、入力部21、制御部22、通信部23、および表示部24を含んで構成される。ロボットシステム10との通信は、有線・無線を問わず、たとえば、ネットワークを介した通信でもよく、専用の通信回線を用いてもよい。
入力部21は、マスターアームあるいはジョイスティックなどの入力装置から構成され、キーボードおよびマウスなどの入力装置を併用してもよい。入力部21は、これらの入力装置から入力された情報を制御部22に送信する。
制御部22は、遠隔操作装置20全体を制御する部位であり、入力部21から入力された情報のうちロボットシステム10に送信する必要がある情報を通信部23に送る。制御部22は、ロボットシステム10から通信部23を介して受信した情報のうち、表示部24に表示する情報を表示部24に送信する。
通信部23は、ロボットシステム10と通信を行う部位であり、ロボットシステム10から受信した情報を制御部22に送信し、制御部22からの情報をロボットシステム10に送信する。
表示部24は、液晶ディスプレイなどの表示画面を有する表示装置であり、制御部22から送信された情報を表示画面に表示する。操作者は、表示画面に表示された映像をみながら、入力装置から作業目標を指示しロボットを操作することができる。
ロボットに前記ロボット制御方法を実行するコンピュータを搭載しているので、外部の遠隔操作装置から指示する制御情報が作業目標に関する情報だけでよく、ロボットシステムと遠隔操作装置との通信情報量を少なくすることができ、さらにロボットの各軸の値を短時間に求めることができる。
ロボットシステム10に作業目標を決定するための検知手段、たとえば距離を測るセンサを搭載し、制御部12は、搭載されたセンサで検出された情報に基づいて作業目標を生成し、遠隔操作装置20から受信した作業目標の代わりに、制御部12が生成した作業目標をロボットの作業目標としてもよい。あるいは撮像部14からの情報を基に、制御部12で手先位置を認識し、手先位置が目的の位置に到達していないとき、目的の位置に近づけるための位置を新たな作業目標として生成し、生成した作業目標をロボットの作業目標としてもよい。この場合、作業目標をロボットシステム10自体で生成することができるので、より自律したロボットシステムを実現することができる。
図2は、本発明の実施の一形態であるロボット制御方法の工程を示すフローチャートである。本処理は、ジョイスティックなどの入力装置を有する遠隔操作装置から作業目標、つまりロボットが実現すべき動きが指示されたときに開始される。このロボット制御方法は、ロボットの手先、たとえば図24に示したロボットの腕部3aの先端を移動させるという作業目標を、ロボットに指示したときのロボットの各軸の値、たとえば、ロボットの連結部を構成するジョイントの角度を求め、求めた角度をロボットの各軸に指令する方法である。
ステップS1では、遠隔操作装置からの作業目標、たとえば手先の移動先の指示位置を取得する。ステップS2では、手先が、たとえば腕部3aに設定された動作条件である動作目標に合致する位置を参照位置として計算し、肩、たとえば図24に示したロボットの腕部3aと胴体部4との連結部が、胴体部4に設定された動作目標に合致する位置を参照位置として計算し、腰、たとえば図24に示したロボットの胴体部4と脚部5aとの連結部が、脚部5aの動作目標に合致する位置を、それぞれの参照位置として計算する。
動作目標は、遠隔操作装置から指示される作業目標に応じて制御対象領域毎、つまりサブシステム毎に設定される目標であり、たとえばそれぞれのサブシステムに設定された動作目標は、腕部3aは、「作業目標に応じた動作を実現すること」、胴体部4は、「手先の到達範囲を拡大すること」、脚部5aは、「全身のバランスを維持することと上下方向に対する手先の到達範囲を拡大すること」である。それぞれの部位に作業目標を達成するための動作目標を設定しているので、ロボット全体として、ロボットのバランスを維持し、手先の動作範囲を広く保ち、さらに作業目標に応じた動作を実現できる。
サブシステムは、1または複数のリンクが変位可能に連結部で連結されたまとまりであり、たとえば図24に示したロボットでは、腕部3a、胴体部4、脚部5aなどがサブシステムである。参照位置は、手先、肩、腰などの代表点を移動させる位置の候補である。代表点は、ロボット全体の動作を決定する各軸の値を計算するために、ロボットの部位のうちで移動させる位置が最初に計算される部位であり、作業目標によって指示が与えられる部位とサブシステムの連結部とが代表点となり、各サブシステムに1つ設定される。
ステップS3では、計算された参照位置に基づいて、作業目標を達成するために設定された動作目標の優先度に従って、手先、肩、および腰の目標位置を計算する。動作目標の優先度は、作業目標に応じて決定され、脚部5a、胴体部4、腕部3aの順である。目標位置は、代表点を移動させる位置である。ステップS4では、計算された目標位置に基づいてロボットの各軸の値を計算する。ステップS5では、計算された各軸の値をロボットの各軸に指令して終了する。この実施例では、図24に示した、腕部3a、胴体部4、脚部5aにのみ着目して説明したが、他のサブシステム、たとえば頭部2、腕部3b、脚部5bなどについても動作目標と優先度を設定して計算する。
図3は、図2に示すロボット制御方法が適用されるロボット30のサブシステムへの分割の一例を示す図である。図3(a)は、ロボット30の概観図である。ロボット30は、頭部31、腕部32、胴体部33、および脚部34を含んで構成される。ロボット30は、机61の上にある対象物62に対して、右腕の手先を移動するところを示している。視野31sは、ロボットの頭部31に搭載された撮像部の視野を示している。
図3(b)は、ロボット30を側方から見た図であり、ロボット30は、腕部32、胴体部33、および脚部34を含んで構成され、3つのサブシステムに分割されている。脚部34については、左脚部は右脚部と重なった状態であり、腕部については、左腕部は右腕部に重なった状態である。手部35と頭部31を省略しているが、手部35および頭部31をそれぞれ1つのサブシステムとして含めてもよい。
腕部32は、手先41、肘42、および第1のリンク51と第2のリンク52を含み、第1のリンク51と第2のリンク52の連結部が肘42である。胴体部33は、肩43、胸44、および第3のリンク53と第4のリンク54を含み、第2のリンク52と第3のリンク53の連結部が肩43であり、第3のリンク53と第4のリンク54の連結部が胸44である。脚部34は、腰45、膝46、および第5のリンク55と第6のリンク56を含み、第4のリンク54と第5のリンク55の連結部が腰45であり、第5のリンク55と第6のリンク56の連結部が膝46である。足47は、いずれにも属さない部位であり、基準点とする。連結部は、変位可能である。
腕部32の代表点は手先41、胴体部33の代表点は肩43、脚部34の代表点は腰45である。この代表点は、ロボット全体の動作を決定する各軸の値を計算するために、ロボットの部位のうちで移動させる位置が最初に計算される部位であり、作業目標によって指示が与えられる部位とサブシステムの連結部が代表点となり、各サブシステムに1つ設定される。この例では、作業目標によって指示が与えられる部位が手先41であり、サブシステムの連結部が肩43と腰45である。
ロボット30は、床面あるいは地面などの水平面60上の足47の位置でバランスが取れた状態、つまり、転倒しない状態であり、以下の説明では、「足の位置を動かさない状態での手先操作」について説明するが、足を動かす場合についても実施可能である。
図4は、人間型ロボットの各部の自由度を説明するための図である。図4(a)、図4(b)は、図4(c)〜図4(g)に用いられている記号を説明するための図である。図4(a)は、軸方向を中心に回転する同軸ジョイント380を説明するための図である。同軸ジョイント380は、リンク部材381とリンク部材382とを連結し、リンク部材382がリン部材ク381に対して、リンク部材381の軸方向を中心に回転する。図4(b)は、両方のリンク部材の軸を含む平面に垂直な直線でジョイントの中心を通る直線を中心に一方のリンク部材を他方のリンク部材に対して回転させる屈曲ジョイント390を説明するための図である。屈曲ジョイント390は、リンク部材392の中心軸を含む平面上でリンク部材393を屈曲ジョイント390の軸391を中心に回転させる。同軸ジョイント380と屈曲ジョイント390は、それぞれ1つの自由度を有する。
図4(c)は、頭部31の自由度を示す図であり、同軸ジョイント311と屈曲ジョイント312の2つの軸があり、合計2自由度である。同軸ジョイント311と屈曲ジョイント312が頭部31と胴体部33の連結部である首に相当する。図4(d)は、腕部32の自由度を示す図であり、同軸ジョイント321,323,325、屈曲ジョイント322,324,326の6つの軸があり、合計6自由度である。同軸ジョイント321,323、および屈曲ジョイント322が肩に相当し、屈曲ジョイント324が肘に相当し、同軸ジョイント325および屈曲ジョイント326が手首に相当する。
図4(e)は、胴体部33の自由度を示す図であり、屈曲ジョイント331と同軸ジョイント332の2つの軸があり、合計2自由度である。屈曲ジョイント331と同軸ジョイント332が、胸に相当する。図4(f)は、脚部34の自由度を示す図であり、同軸ジョイント341,343,344,345、同軸ジョイント342,346の6つの軸があり、合計6自由度である。同軸ジョイント341,343、および屈曲ジョイント342が腰、同軸ジョイント344が膝、同軸ジョイント345と屈曲ジョイント346が足首に相当する。図4(g)は、手部35の自由度を示す図であり、屈曲ジョイント351の1つの軸があり、合計1自由度である。屈曲ジョイント351は指の関節に相当し、指の開閉を行う。
図5は、図2に示すロボット制御方法が適用されるロボット30への作業目標の指示とその指示によるロボットの変位の一例を示す図である。ロボット30への作業目標は、マスターアームあるいはジョイスティックなどの入力部を有する遠隔操作装置から指示される。この例では、作業目標は、手先41を手先の指示位置41aの位置に移動させることである。作業目標を実現するロボットの各軸の値を求めて、求めた各軸の値をロボットの各軸に指令することによって、手先41のロボットの位置と姿勢から、手先が指示位置41aに移動したときの位置と姿勢に変化させる。
図6は、図2に示すロボット制御方法での手先41の参照位置の計算のフローチャートである。手先41の参照位置の計算を行うときに本処理が行われる。ステップS10では、遠隔操作装置から指示された手先41の指示位置を手先41の参照位置として終了する。
図7は、図2に示すロボット制御方法での肩43の参照位置の計算のフローチャートである。肩43の参照位置の計算を行うときに本処理が行われる。胴体部33の動作目標は、「手先の到達範囲を拡大すること」であり、手先41の参照位置と現在位置および肩43の現在位置から肩43の参照位置を求める。
ステップS20では、肩43の現在位置、つまり前回ロボットの各軸への指令によって移動した位置と手先41の参照位置との距離Larmを計算する。ステップS21では、計算した距離Larmが所定の最大距離Lmaxより長いか否か判定する。計算した距離Larmが所定の最大距離Lmaxより長いときは、ステップS24に進み、計算した距離Larmが所定の最大距離Lmaxより長くないときは、ステップS22に進む。
ステップS22では、計算した距離Larmが所定の最小距離Lminより短いか否か判定する。計算した距離Larmが所定の最小距離Lminより短いときは、ステップS23に進み、計算した距離Larmが所定の最小距離Lminより短くないときは、ステップS25に進む。ステップS23では、図7に示すように、肩43の参照位置を、肩43と手先41とを結ぶ直線上で手先41から肩43の方向と反対方向のベクトルと、腰45と肩43とを結ぶ方向と直角方向であって手先41と反対方向のベクトルとの合成ベクトルの方向に肩43を移動させる位置として終了する。
ステップS24では、肩43の参照位置を、肩43を手先41の方向に一定速度で移動させる位置として終了する。この場合、一定速度で移動させる位置とは、前回計算した目標位置に移動した際の速度を維持することができる位置のことである。ステップS25では、肩43の現在位置を肩43の参照位置として終了する。
このように、手先41が腕部32の伸びる方向に移動したときは、肩43も追随するので、さらに腕部32を伸ばすことができ、逆に手先41が肩43に近づくときは、胴体部33が手先41の現在位置から離れる方向に移動して、腕部32と胴体部33との干渉、つまり接触または衝突を回避することができる。
図8は、図2に示すロボット制御方法での肩43の参照位置の計算を説明するための図である。肩43の現在位置と手先41の参照位置との距離Larmが所定の距離Lmaxより長いとき、肩43の移動方向は、手先41から肩43への方向ベクトル80と、腰45と肩43を結ぶ直線81に直角の方向ベクトル82との合成ベクトル83の方向である。
図9は、図2に示すロボット制御方法での腰45の参照位置の計算のフローチャートである。腰45の参照位置の計算を行うときに本処理が行われる。脚部34の動作目標は、「人間型ロボットの全身のバランスを維持すること」と「上下方向に対する手先の到達範囲を拡大すること」の2点であり、ロボットの重心位置、手先41の指示位置、および手先41と肩43と腰45の現在位置から腰45の参照位置を求める。
ステップS30では、現在の重心位置を計算する。重心位置の計算は、胴体部33と脚部34の動作がロボット動作の動的な動きに大きく影響しない程度の速度で動作を行うと仮定して、つまり、ロボットの動作に伴う慣性を考慮しなくてもよい程度の速度で動作を行うと仮定して行う。全身の重心位置を床面に投影した位置である床面投影点(床面重心点ともいう)が、両足裏で構成される多角形である支持多角形内の所定の範囲内にあるか否かで、腰45の参照位置の水平成分の位置を求める。ロボットの重心位置の求め方については、後述する。
ステップS31では、計算された重心位置、つまり床面投影点が、支持多角形の中心点から所定以上の距離か否か判定する。所定以上の距離のときは、ステップS36に進む。所定以上の距離でないときは、ステップS32に進む。ステップS32では、肩43の移動方向が下方向か否か判定する。肩43の移動方向が下方向のときは、ステップS37に進み、肩43の移動方向が下方向でないときは、ステップS33に進む。
ステップS33では、肩43の移動方向が上方向か否か判定する。肩43の移動方向が上方向のときは、ステップS34に進み、肩43の移動方向が上方向でないときは、ステップS39に進む。ステップS34では、腰45の現在位置と肩43の現在位置との距離Lbodyが所定の胴体距離L以上か否かを判定する。距離Lbodyが所定の胴体距離L以上のときは、ステップS35に進み、距離Lbodyが所定の胴体距離L以上でないときは、ステップS39に進む。ステップS35では、腰45の参照位置の垂直成分を肩43の移動速度の垂直成分に比例した速度で上方向に移動する位置として終了する。
ステップS36では、腰45の参照位置の水平成分を、支持多角形の中心方向に、中心からの距離に比例した速度で移動する位置としてステップS32に進む。ステップS37では、後述する胴体部33の傾きθが鉛直方向から所定の角度θ以上傾いているか否か判定する。所定の角度θ以上傾いているときは、ステップS38に進み、所定の角度θ以上傾いていないときは、ステップS39に進む。
ステップS38では、腰45の参照位置の垂直成分を肩43の移動速度の垂直成分に比例した速度で下方向に移動する位置とする。手先41が下方に移動するとき、腰45の位置を動かさずに、胴体部33を深く曲げる動作も考えられるが、脚部関節の動作範囲制限があって実現は難しく、腰45を肩45の動きに連動させて移動させる。ステップS39では、腰の現在位置を腰の参照位置として終了する。
図10は、腰45の移動を肩43の移動と連動させることについて説明するための図である。図10(a)は、胴体部33の傾きθを説明するための図である。胴体部33の傾きθは、鉛直方向84に対する腰45と肩43とを結ぶ直線81の傾きである。この傾きθが所定の角度θ以上のときに、肩43に連動させて腰45の参照位置を下げる。図10(b)は、腰45を移動しない場合の胴体部33の動き、図10(c)は、腰45を肩43の移動速度に比例した速度で移動した場合の胴体部33の動き、図10(d)は、腰45を一定速度で移動した場合の胴体部33の動きを説明するための図である。
図10(b)は、腰45を移動しないで、肩43を肩43aの位置まで矢印86aの方向に移動したとき、胸44と肩43とのリンク53の傾きがθ変化している。これに対して、図10(c)は、肩43が肩43aの位置まで矢印86aの方向に移動したときに、腰45は、腰45aの位置まで矢印87aの方向に移動するので、リンク53の角度は、θだけしか変化せず、図10(b)の腰を固定したときのリンクの傾きの変化θより小さくすることができる。つまり、胴体部33が傾く速度を抑えることができ、胴体部の前屈量も抑えることができる。特に、胴体部33が伸びきっているときは、胸44を中心とした肩の回転角度は、腰45を中心とした肩43の回転角度より大きくなる。胴体部33が大きく傾いているとき、たとえば胴体部33の傾きθが45度以上傾いているとき、ロボット全体の質量に占める割合の多い胴体部33の回転速度が大きくなるので、動的な動作の影響、つまり慣性の影響が大きくなり、ロボットが転倒しやすくなる。転倒を防止するために、胴体部33の回転速度を抑えることは、人間型ロボットの安定な制御動作を実現するために効果がある。
図10(d)は、腰45を肩43の動きとは独立して一定速度で移動する場合を示しており、この場合は、胴体部33が傾く速度を必ずしも抑えることができるとは限らない。肩43が方向86bの方向、つまり、前方方向に移動したときは、肩43は肩43bの位置に移動するが、腰45が方向87bに移動して腰45bの位置に来ると、肩43は43cの位置に移動することになり、肩の参照位置を実現できなくなることがある。従って、肩43が下方に移動するときは、腰45を肩43の移動速度に比例した速度で移動させる必要がある。
ロボットの重心位置は、ロボットの各軸の値、つまり角度と、リンクの重心情報から計算する。たとえばロボット30の前後方向をx軸方向とすると、x軸方向の重心位置Xは、式(1)で求めることができる。
X=(M+M+…+M)/(M+M+…+M
…(1)
ここに、Mは、リンクiの重量であり、Xは、リンクiの重心座標である。iは、1〜nの自然数であり、Xは、ロボットが直立状態のときのロボットのx座標を基準としたときのリンクiの重心座標の値である。
水平面上でロボットのx軸方向と直角の方向であるy軸方向の重心位置Yについても同様に、式(2)で求めることができる。
Y=(M+M+…+M)/(M+M+…+M
…(2)
ここに、Yは、リンクiのy軸方向の重心座標であり、ロボットが直立状態のときのロボットのy座標を基準としたときのリンクiの重心座標の値である。
図11は、リンクの重心位置の求め方を説明するための図である。リンクA90とリンクB91は、ジョイント92によって連結されている。ジョイント92は、リンクB91と一体であり、ジョイント92を構成する回転軸93は、リンクA90と一体である。この場合、回転軸93の重量は、リンクA90に含まれる。すなわち、ジョイント部分の重量は、一体であるほうのリンクに含めて計算する。それぞれのリンクの重量と重心位置は、3次元CADの設計データなどから求めることができる。
図12は、ロボットの座標系を説明するための図である。人間型ロボットについての、参照位置と目標位置は、ロボットの絶対座標系Σからみた座標系で表す。ロボットの絶対座標系Σは、ロボットを初期設定する際に、ロボットの腰座標系Σから鉛直下方向の床面に固定された座標系とする。手先の位置および姿勢の指示は、ロボットの絶対座標系Σからみた手先座標系Σの位置姿勢を指示する。3次元でみると、ロボットの腰座標系Σは、図24に示すように、左右脚の股関節の中間点8である。
リンクのジョイント部分の位置は、ロボットの各軸の値、つまり角度から順変換計算式によって求める。順変換計算式は、ロボット各部のリンク構造に依存した幾何学的関係を利用して作成される。
図13は、脚部34の各軸の値から位置姿勢を求める際の各軸の座標系を説明するための図である。ジョイント341〜ジョイント346の角度と座標系を、それぞれθ〜θ、Σ〜Σとし、足首の座標系をΣとする。図13では、ロボットの基準座標系Σは、同軸ジョイント341,343、および屈曲ジョイント342の回転軸の交点であり、図24に示す連結部7の位置である。
距離L〜距離Lは、それぞれ屈曲ジョイント342から屈曲点350まで長さ、屈曲点350から同軸ジョイント344までの長さ、同軸ジョイント344から同軸ジョイント345までの長さを表している。同軸ジョイント345から屈曲ジョイント346までの長さは0である。
順変換は、各軸、つまりジョイント341〜ジョイント346の角度が与えられたときの基準座標系Σからみた足首の座標系Σの位置姿勢を求めるものである。位置姿勢を行列で表すと、式(3)として表せる。
Figure 2006015430
ただし、
11=C345−S345
12=S345+C345−S
13=S345+C345+S
21=S345+C345
22=−C345+S345+C
23=−C345+S345−C
31=−C345
32=C345+S
33=C345−S
X=−L(S+C)−L34−L34
+L
Y=L(C−S)+L34−L34
−L
Z=−L−L34−L
=sin(θ)、C=cos(θ)、nは自然数、
345=sin(θ+θ+θ)、C345=cos(θ+θ+θ
である。
肩43、手先41の座標についても、順変換計算式を用いて計算することができる。
図14は、支持多角形100と床面投影点103との関係を説明するための図である。床面投影点103は、上述したx、y座標を用いることによって、全身の重心位置を床面に投影した位置(x、y)として表すことができる。支持多角形100は、両足裏で構成される多角形であり、床面投影点103が支持多角形内の所定の範囲内にあるか否かで、腰45の参照位置の水平成分の位置を求める。
ロボットの重心位置、つまり床面投影点103が、支持多角形100の中心点102から所定以上の距離、つまり範囲101外か否か判定する。範囲101外のときは、腰45の参照位置の水平成分を、支持多角形100の中心方向105に、中心からの距離Lに比例した速度で移動する位置とする。範囲101外でないときは、腰45の現在位置の水平成分を腰45の参照位置の水平成分とする。
図15は、図2に示すロボット制御方法での腰45の目標位置の計算のフローチャートである。腰45の目標位置の計算を行うときに本処理が行われる。ステップS40では、腰45の参照位置が腰45の後述する移動許諾範囲内か否か判定する。移動許諾範囲内のときは、ステップS41に進み、移動許諾範囲内にないときは、ステップS42に進む。ステップS41では、腰45の参照位置を腰45の目標位置として終了する。ステップS42では、腰45の移動許諾範囲内であって、腰45の現在位置から水平方向で、腰45の参照位置に最も近い位置を、腰45の目標位置として終了する。
図16は、代表点の移動許諾範囲を説明するための図である。図16(a)は、腰45の移動許諾範囲を説明するための図である。腰45の移動許諾範囲110は、腰45が移動することができる移動可能範囲内の所定の範囲である。この場合、腰45の参照位置111が移動許諾範囲110内にないので、腰45の目標位置は、腰45の水平方向113の方向で、かつ移動許諾範囲110内で、参照位置111に最も近い位置112を目標位置とする。腰45の参照位置が移動許諾範囲110内のときは、参照位置がそのまま目標位置になる。移動許諾範囲110は、移動可能範囲114の所定の範囲である。
図16(b)は、肩43の動作許諾範囲を説明するための図である。肩43の移動許諾範囲120は、肩43が移動することができる移動可能範囲内の所定の範囲である。この場合、肩43の参照位置121が移動許諾範囲120内にないので、肩43の目標位置は、移動許諾範囲120内の参照位置121に最も近い位置122を目標位置とする。肩43の参照位置が移動許諾範囲120内のときは、参照位置がそのまま目標位置になる。移動許諾範囲120は、移動可能範囲123の所定の範囲である。
図17は、図2に示すロボット制御方法での肩43の目標位置の計算のフローチャートである。肩43の目標位置の計算を行うときに本処理が行われる。ステップS50では、肩43の参照位置が肩43の移動許諾範囲内か否か判定する。移動許諾範囲内のときは、ステップS51に進み、移動許諾範囲内にないときは、ステップS52に進む。ステップS51では、肩43の参照位置を肩43の目標位置として終了する。ステップS52では、肩43の移動許諾範囲内で、肩43の参照位置に最も近い位置を、肩43の目標位置として終了する。
図18は、図2に示すロボット制御方法での手先41の目標位置の計算のフローチャートである。手先41の目標位置の計算を行うときに本処理が行われる。手先41の移動許諾範囲は、手先41が移動することができる移動可能範囲内の所定の範囲である。ステップS60では、手先41の参照位置が手先41の移動許諾範囲内か否か判定する。移動許諾範囲内のときは、ステップS61に進み、移動許諾範囲内にないときは、ステップS62に進む。ステップS61では、手先41の参照位置を手先41の目標位置として終了する。ステップS62では、手先41の移動許諾範囲内で、手先41の参照位置に最も近い位置を、手先41の目標位置として終了する。
隣接するサブシステムの代表点の目標位置の計算を、優先度の高い動作目標が設定されたサブシステムの目標位置を基準に計算しているので、すなわち、他のサブシステムとの関係を考慮する必要がないので、計算量を少なくでき、ロボットの各軸の値を短時間に求めることができる。
さらに、以前に求めた目標位置と以前に求めた各軸の値とに基づいて新たな目標位値を求めるので、動作しているロボットの現在の状態に基づいた次の目標位置を計算できる。
さらに、優先度の高い動作目標が設定されたサブシステムの代表点の移動可能範囲に対する移動許諾範囲の割合を、優先度の低い動作目標が設定されたサブシステムより小さくしているので、優先度の高い動作目標が設定されたサブシステムの代表点の目標位置の影響を少なくすることができる。
代表点の移動可能範囲に対する移動許諾範囲の割合は、腰45の割合は肩43の割合より小さく、肩43の割合は手先41の割合より小さくする。たとえば、腰45、肩43、手先41の割合が、それぞれ70%、80%、90%という割合である。これは、優先度の高い動作目標が設定されたサブシステムから目標位置を決めるので、腰45の影響が、肩43の影響より大きく、肩43の影響が手先41の影響より大きくなるためであり、影響の大きいサブシステムの移動許諾範囲を厳しくしている。
腰の移動可能範囲に対する移動許諾範囲の割合を肩より小さくし、かつ肩の移動可能範囲に対する移動許諾範囲の割合を手先より小さくしているので、優先度の高い動作目標が設定された脚部の代表点である腰の目標位置の影響を肩および手先より、および肩の目標位置の影響を手先より少なくすることができる。
このように、目標位置の計算は、参照位置が移動許諾範囲内にあれば、その参照位置を目標値とするので、計算量を少なくすることができる。サブシステム毎に計算した参照位置が代表点の移動許諾範囲内でないときも、移動許諾範内の位置に目標位置を計算するので、許容される範囲内で動作が可能な各軸の値を短時間に求めることができる。つまり、従来技術のように最適な値を求めるのではなく、一定の評価基準の範囲内にあればよいとして計算するので、ロボットの実時間制御を行うことができる。
手先41、肩43、および腰45の目標位置が計算されると、これらの目標位置と足の位置との情報に基づいて、ロボットの各軸の値、たとえば角度が、逆運動学計算によって求められる。逆運動学計算は、ロボット各部のリンク構造に依存した幾何学的関係式を利用して、変換式を作成して計算する。具体的には、上述した順変換計算式(3)と、リンク構造に依存して導かれるリンクの位置関係式から、各軸の角度を一意に計算することができる式を解くことによって、ロボットの各軸の値を求める。
手先41、肩43、および腰45の目標位置は、ロボットの基準座標系Σからみた位置姿勢であるので、たとえば腕部32の逆変換を行なう場合は、肩43の座標系から見た手先41の座標系の位置姿勢を計算して、これを腕の逆変換計算式に用いることで、腕の各軸の角度を計算する。具体例として、図13を用いて順変換について説明した脚部34の逆変換について説明する。基準座標系Σからみた足首の座標系Σの位置姿勢が与えられたときのジョイント341〜ジョイント346の角度θ〜角度θを求める。
基準座標系Σから基準座標系Σからみた足首の座標系Σの位置姿勢は、式(3)で与えられ、行列Rを式(4)で表すと、式(5)の関係式が成立する。
Figure 2006015430
Figure 2006015430
このとき、足首の座標(x、y、z)には、次の関係がある。
x=−L−L45 …(6)
y=(L+L45)S+L …(7)
z=(L+L45)C−L …(8)
式(7)と式(8)から次式が成立し、ジョイント346の角度θが求まる。
y−Sz=L
式(6)〜式(8)から次式が成立し、ジョイント344の角度θが求まる。
+y+z=L +L +L +2L
式(6)を変形すると、次式が成り立ち、同様に式(8)を変形し、角度θと角度θを代入してSとCを計算することができる。
x=(−L−L)S−L
とCからジョイント345の角度θを計算することができる。
θ=−atan2(S,C
次に、上述した順変換の関係式から、次式が成り立ち、ジョイント342の角度θを計算することができる。
=R32−R33
同様に上述した順変換の関係式から、次式が成り立ち、S345とC345を計算することができる。
345=−R31/C
345=(R33+S)/(C
345とC345から計算したθ345にθとθを代入して、ジョイント343の角度θを計算することができる。
θ345=atan2(S345,C345)=θ+θ+θ
上述した順変換の関係式から、次式が成り立ち、SとCを計算することができる。
=(−S34511+C34521
/(C345 +S 345
=(C34511+S34521
/(C345 +S 345
とCから計算してジョイント341の角度θを計算することができる。
θ=atan2(S,C
図19は、図2に示すロボット制御方法での参照位置の計算から各軸の値の計算までのアルゴリズムを示す図である。第1の参照位置計算工程70は、手先41の参照位置の計算を行う工程であり、遠隔操作装置から取得した作業目標である手先41の指示位置が入力として与えられると、与えられた手先41の指示位置を手先41の参照位置として出力する。第2の参照位置計算工程71は、肩43の参照位置の計算を行う工程であり、手先41の指示位置と目標位置保持工程76で保持されている手先41の現在位置と肩43の現在位置が入力として与えられると、それらの情報に基づいて肩43の参照位置を計算して出力する。
第3の参照位置計算工程72は、腰45の参照位置の計算を行う工程であり、目標位置保持工程76で保持されている肩43の現在位置と腰45の現在位置、および重心位置計算工程78で計算された現在の重心位置が入力として与えられると、それらの情報に基づいて腰45の参照位置を計算して出力する。先41、肩43、および腰45の参照位置の計算は、並行して計算される。
サブシステム毎の代表点の参照位置を並行して計算するので、参照位置の計算時間を短時間に行うことができ、さらにロボットの各軸の値を短時間に求めることができる。
第1の目標位置計算工程73は、腰45の目標位置の計算を行う工程であり、第3の参照位置計算工程72の出力である腰45の参照位置と、基準の位置である固定されている足の位置とが入力として与えられると、腰45の目標位置を計算して出力する。第2の目標位置計算工程74は、肩43の目標位置の計算を行う工程であり、第2の参照位置計算工程71の出力である肩43の参照位置と、第1の目標位置計算工程73の出力である腰45の目標位置とが入力として与えられると、肩43の目標位置を計算して出力する。
第3の目標位置計算工程75は、手先41の目標位置の計算を行う工程であり、第1の参照位置計算工程70の出力である手先41の参照位置と、第2の目標位置計算工程74の出力である肩43の目標位置とが入力として与えられると、手先41の目標位置を計算して出力する。
目標位置保持工程76では、第3の目標位置計算工程75の出力である手先41の目標位置、第2の目標位置計算工程74の出力である肩43の目標位置、および第1の目標位置計算工程73の出力である腰45の目標位置が入力として与えられると、それらの情報を保持するとともに出力する。各軸値計算工程77は、腕部32、胴体部33、脚部34の各軸の値を計算する工程であり、目標位置保持工程76の出力である手先41の目標位置、肩43の目標位置、腰45の目標位置、および足の位置が入力として与えられると、逆運動学計算を行ってロボットの各軸の値を求めて、求めた各軸の値をロボットの各軸に指令する。各軸値計算工程77の出力は、重心位置計算工程78に入力される。重心位置計算工程78では、入力されたロボットの各軸の値に基づいてロボットの重心位置を計算する。各軸値計算工程77での各軸の値の計算は、サブシステム毎に並行して行う。サブシステム内の各軸の値をサブシステム毎に並行して計算するので、ロボット全体の各軸の値の計算時間を短時間に行うことができる。
上述した実施の形態は、ロボット動作の動的な動きに大きく影響しない程度の速度で動作を行うと仮定した場合、つまり、ロボットの動作に伴う慣性を考慮しなくてもよい程度の速度で動作を行うと仮定した場合について、ロボットの全体のバランスを維持することができる。ロボットの動作を速く行うためには、ロボットの動作に伴う動的要素、つまり慣性を考慮する必要がある。目標位置を計算する際に、計算した目標位置を、ロボットの動作に伴う重心移動の慣性に基づいて、目標位置を再計算することによって、動的要素を考慮したロボットの各軸の値を計算することができる。
ロボットの動作に起因する動的要素、たとえば、動作しているロボットの慣性を考慮して目標位置を再計算するので、より安定した目標位置を計算でき、ロボットの安定性を向上することができる。
上述した実施の形態では、頭部31をサブシステムとして含めていないが、頭部31をサブシステムとして含める場合は、優先度を低くした動作目標を「頭部の動作目標が作業に必要な視野を確保すること」とし、この場合は、胴体部33は「頭部の動作範囲も広く保つこと」も動作目標とする。人間型ロボットの頭部もサブシステムとして分割すれば、頭部の動作目標を実現することができ、頭部の動作範囲を広く保つことができる。
図20は、本発明の実施の他の形態であるロボット制御方法が適用されるロボット200のサブシステムへの分割の一例を示す図である。ロボット200は、サブシステムA201、サブシステムB202、およびサブシステムC203を含んで構成される。サブシステムA201は、リンク220と連結部210、サブシステムB202は、リンク221と連結部211、およびサブシステムC203は、リンク222と連結部212を含み、連結部213によって床面などの水平面230に固定されている。これらのサブシステムの代表点は、それぞれ連結部210、211、212である。この例では、1つのリンクには、複数のリンクを代表して表現している。
これらのサブシステムは、サブシステムC203を最下層とする階層構造を形成している。たとえば人間型ロボットであれば、サブシステムA201が腕部32、サブシステムB202が胴体部33、およびサブシステムC203が脚部34に対応し、それぞれの代表点は、手先41、肩43、および腰45に対応する。
代表点を移動させる位置である参照位置は、「作業目標に応じて評価がよくなるような位置」である。たとえば、人間型ロボットであれば、サブシステムC203に対応する脚部34の実現すべき動作目標を「全身のバランスをとること」とした場合、代表点である連結部212に対応する腰45の参照位置は、全体の重心が前方に移動したときは、腰45の位置を後方に引くように、腰45の現在位置より後方の位置を腰45の参照位置とする。このとき、各サブシステムの代表点の参照位置は、独立に計算する。
これらのサブシステムは、お互いに連結部を有するが、それぞれの参照位置を独立に計算しているので、各サブシステムの制約条件、具体的には、隣接するサブシステムの代表点の位置、リンクの構造、代表点の移動許諾範囲、周囲との干渉回避などの制約条件によって、お互いの連結部が計算した参照位置で実現できない場合がある。
たとえば人間型ロボットの場合、代表点である連結部210に対応する手先41が、前方に移動しようとするとき、サブシステムB202に対応する胴体部33は手先41の動作範囲を拡大することができるように、代表点である連結部211に対応する肩43の参照位置を手先41が移動する方向に変更する。サブシステムC203に対応する脚部34は、全体のバランスを維持するために、前方に移動している全体の重心位置を基準位置213に戻すために、代表点である連結部212に対応する腰45の参照位置を後方に変更する。
このとき、全体のバランスを維持することがロボットの最重要の動作目標であるので、まず、代表点である連結部212に対応する腰45の参照位置が実現可能か否か判定する。腰45の参照位置が腰45の移動許諾範囲内にあるときは、腰45の参照位置は実現可能であるので、腰45の参照位置を腰45の目標位置とする。
次に、代表点である連結部211に対応する肩43の参照位置が実現可能か否か判定する。肩43の参照位置が肩43の移動許諾範囲内にあるときは、肩43の参照位置は実現可能であるので、肩43の参照位置を肩43の目標位置とする。腰45の参照位置あるいは肩43の参照位置が、それぞれの移動許諾範囲内にないときは、それぞれの参照位置に最も近い移動許諾範囲内の位置を目標位置とする。
このように、階層構造の下位のサブシステムの代表点を基準に1つ上のサブシステムの制約条件を考慮して、代表点の目標位置を決めていく。すべての代表点の目標位置が決まれば、逆運動計算を行い、サブシステムの各軸の値を計算する。
図21は、本発明の実施の他の形態であるロボット制御方法の工程を示すフローチャートである。本処理は、ジョイスティックなどの入力装置である遠隔操作装置などから作業目標が与えられたときに開始される。ステップS70では、指示された作業目標を取得する。ステップS71では、それぞれのサブシステムに設定された動作目標を満たす条件に合致する位置を、それぞれの参照位置として計算する。
ステップS72では、計算された参照位置に基づいて、作業目標を達成するために設定された動作目標の優先度に従って、各サブシステムの代表点の目標位置を計算する。ステップS73では、計算された目標位置に基づいてロボットの各軸の値を計算する。ステップS74では、計算された各軸の値をロボットの各軸に指令して終了する。
図22は、図21に示すロボット制御方法での参照位置の計算から各軸の値の計算までのアルゴリズムを示す図である。遠隔操作指示入力工程250では、遠隔操作装置などから与えられた作業目標を取得すると、取得した作業目標をサブシステムA参照位置計算工程252に入力する。サブシステムA参照位置計算工程252では、入力された作業目標に基づいて、サブシステムAに設定された動作目標を満たす条件に合致する位置を、サブシステムAの代表点の参照位置として計算する。
各代表点現在位置工程251では、各サブシステムの代表点の現在位置を前回計算した目標位置、つまり、サブシステムA目標位置計算工程257、サブシステムB目標位置計算工程256、およびサブシステムC目標位置計算工程255の出力である目標位置を取得して、取得した各サブシステムの代表点の現在位置をサブシステムB参照位置計算工程253とサブシステムC参照位置計算工程254に入力する。サブシステムB参照位置計算工程253とサブシステムC参照位置計算工程254では、それぞれ、入力された各サブシステムの代表点の現在位置に基づいて、各サブシステムに設定された動作目標を満たす条件に合致する位置を、各サブシステムの代表点の参照位置として計算する。サブシステムA参照位置計算工程252、サブシステムB参照位置計算工程253、およびサブシステムC参照位置計算工程254での計算は、並行して実行される。
サブシステムC目標位置計算工程255では、基準位置と、サブシステムC参照位置計算工程254から出力された参照位置とに基づいて、参照位置が実現可能か否か、つまり参照位置がサブシステムCの代表点の移動許諾範囲に入っているか否か判定する。参照位置が実現可能、つまり参照位置が移動許諾範囲に入っているときは、その参照位置をサブシステムCの代表点の目標位置とする。参照位置が実現可能ではない、つまり参照位置が移動許諾範囲に入っていないときは、移動許諾範囲の中で、参照位置にもっとも近い位置を目標位置とする。
サブシステムB目標位置計算工程25では、サブシステムC目標位置計算工程255から出力された目標位置と、サブシステムB参照位置計算工程253から出力された参照位置とに基づいて、参照位置が実現可能か否か、つまり参照位置がサブシステムBの代表点の移動許諾範囲に入っているか否か判定する。参照位置が実現可能、つまり参照位置が移動許諾範囲に入っているときは、その参照位置をサブシステムBの代表点の目標位置とする。参照位置が実現可能ではない、つまり参照位置が移動許諾範囲に入っていないときは、移動許諾範囲の中で、参照位置にもっとも近い位置を目標位置とする。
サブシステムA目標位置計算工程257では、サブシステムB目標位置計算工程256から出力された目標位置と、サブシステムA参照位置計算工程252から出力された参照位置とに基づいて、参照位置が実現可能か否か、つまり参照位置がサブシステムAの代表点の移動許諾範囲に入っているか否か判定する。参照位置が実現可能、つまり参照位置が移動許諾範囲に入っているときは、その参照位置をサブシステムAの代表点の目標位置とする。参照位置が実現可能ではない、つまり参照位置が移動許諾範囲に入っていないときは、移動許諾範囲の中で、参照位置にもっとも近い位置を目標位置とする。この場合、各サブシステムに設定された動作目標の優先度が、サブシステムC、サブシステムB、サブシステムAの順序であるので、目標位置の計算は、その順序で行われる。
各サブシステム各軸指令値計算工程258では、サブシステムA目標位置計算工程257、サブシステムB目標位置計算工程256、およびサブシステムC目標位置計算工程255から出力されたそれぞれのサブシステムの目標位置を基に、ロボットの各軸の値を計算する。計算した各軸の値は、ロボットの各軸に指令される。
このように、本発明の実施の形態によれば、人間型ロボットをサブシステムに分割することによって、作業目標に対する計算を並行処理することができ、さらに最適値を検索するような繰り返し計算を行うことがないので、ロボットを制御するための計算量を少なくすることができる。サブシステム毎に用意する参照位置の計算アルゴリズムを、作業目標に応じて切替えて組み合わせることによって、多様な作業目標に対応することが可能である。
上述したいずれのロボット制御方法も、それぞれのロボット制御方法をコンピュータに実行させるプログラムとして実現される。コンピュータは、種々の制御を行う図示していないCPU(Central Processing Unit)と、CPUで処理が行われるために用いられる図示していないメモリ、たとえば、ROM(Read Only Memory)またはRAM(Random
Access Memory)を含んで構成され、ロボット制御方法をコンピュータに実行させるプログラムは、このメモリに格納される。
ロボット制御方法をコンピュータに実行させるプログラムは、コンピュータで読取り可能な記録媒体に格納されておればよく、上述した実施の形態では、記録媒体として、メモリを用いたが、外部記憶装置としてプログラム読取装置が設けられ、そこに記録媒体を挿入することによって読取り可能となるような記録媒体であってもよい。記録媒体に格納されているプログラムは、CPUがアクセスして実行可能な構成であればよい。あるいは、ロボット制御方法をコンピュータに実行させるプログラムは、ネットワークに接続されているコンピュータの記憶装置などに格納されておればよく、記録媒体あるいは記憶装置などに格納されているプログラムを読出し、読出したプログラムを図示されていないプログラム記録エリアにダウンロードして、プログラムを実行する構成であればよい。このダウンロード用のプログラムは、予めROMに格納しておく。
記録媒体がコンピュータと分離可能に構成される場合、記録媒体は、磁気テープ/カセットテープなどのテープ系、フレキシブルディスク/ハードディスクなどの磁気ディスクまたはCD−ROM(Compact Disk-Read Only Memory)/MO(Magneto Optical Disk)/MD(Mini Disk)/DVD(Digital Versatile Disk)などの光ディスクのディスク系、IC(Integrated Circuit)カード(メモリカードを含む)/光カードなどのカード系、あるいはマスクROM/EPROM(Erasable Programmable Read Only Memory)/フラッシュROMなどによる半導体メモリを含め、固定的にプログラムを保持する記録媒体であればよい。
上述した実施の形態は、人間型ロボットについて説明したが、多くの自由度を有するロボットについても同様に適用できる。特に、20自由度以上のロボットについては、計算時間を短縮できる効果が大きい。繰り返し計算を行わないので、20自由度以上の自由度を有するロボットについて、従来技術による計算時間に比べて、ロボットの各軸の値をより短時間に求めることができる。30自由度以上の人間型ロボットに適用しても、サブシステムの自由度を6自由度以下とし、サブシステム内の自由度が少ないので、冗長な自由度が少なくなり、サブシステム内の各軸の値の計算時間を短くでき、さらにロボットの各軸の値を短時間に求めることができる。
上述した人間型ロボットでは、各軸の値は、角度であったが、直線方向に変位する軸を有するロボットについては、角度の代わりに、直線方向の変位量を用いれば適用可能である。
図23は、本発明を適用することができる他のロボットシステム150の構成の一例を示す図である。ロボットシステム150は、門構形移動装置151と門構形移動装置151に搭載された6軸垂直多関節型ロボット152から構成される。門構形移動装置151は、レール153とレール154に沿って移動することができる。6軸垂直多関節型ロボット152は、溶接などを行うツールが手首に取り付けられ、ライン155上を移動するワーク160に対する加工を行うことができる。
門構形移動装置151のリンクは、可動部151a〜可動部151cであり、連結部は、レール153,154と可動部aとの連結部、可動部151aと可動部151bとの連結部、可動部151bと可動部151cとの連結部、および可動部151cと6軸垂直多関節型ロボット152との連結部である。門構形移動装置151は、走行軸170、横行軸171、昇降軸172、および旋回軸173の4軸を有し、6軸垂直多関節型ロボット152は、6軸を有するので、ロボットシステム150は、自由度10のロボットである。この場合、サブシステムとして、門構形移動装置151と6軸垂直多関節型ロボット152との2つに分割し、つまり自由度4と自由度6の2つのサブシステムに分割する。
ロボットシステム150への作業目標は、たとえばツールをワーク160の加工位置に移動することである。動作目標として、たとえば「手先位置の作業範囲を拡大すること」と「干渉を回避すること」とし、優先度は、「干渉を回避すること」、「手先位置の作業範囲を拡大すること」の順序として設定することによって、本発明を適用することができる。
さらに、宇宙ステーションなどで作業を行うロボットにも適用可能である。この場合、ロボットは、宇宙ステーションを構成するトラス構造の構造物などにつかまって作業を行う。つまり、トラスにつかまった腕で体を支えて、他の腕によって作業を行う。このロボットは、人間型ロボットの変形であり、自由度も多く、本発明を適用することができる。この場合、体を支える腕を1つのサブシステムとし、作業を行う腕を1つのサブシステムとする。作業目標は、作業を行う腕の手先を作業位置に移動することであり、動作目標としては、たとえば、「トラスをつかむこと」、「干渉を回避すること」、および「手先位置の作業範囲を拡大すること」を設定する。優先度は、「干渉を回避すること」を優先する。
海中で作業を行うロボットについても、海中に浮いているロボットの体を移動しない状態に保ちながら、作業を行うことになり、本発明を適用することができる。この場合、動作目標としては、たとえば、「海流に流されないことおよび腕などの動作の反動で体が移動しないこと」と「手先位置の作業範囲を拡大すること」を設定する。
本発明の実施の一形態であるロボット制御方法が適用されるロボットシステム10の構成を示す図である。 本発明の実施の一形態であるロボット制御方法の工程を示すフローチャートである。 図2に示すロボット制御方法が適用されるロボット30のサブシステムへの分割の一例を示す図である。 人間型ロボットの各部の自由度を説明するための図である。 図2に示すロボット制御方法が適用されるロボット30への作業目標の指示とその指示によるロボットの変位の一例を示す図である。 図2に示すロボット制御方法での手先41の参照位置の計算のフローチャートである。 図2に示すロボット制御方法での肩43の参照位置の計算のフローチャートである。 図2に示すロボット制御方法での肩43の参照位置の計算を説明するための図である。 図2に示すロボット制御方法での腰45の参照位置の計算のフローチャートである。 腰45の移動を肩43の移動と連動させることについて説明するための図である。 リンクの重心位置の求め方を説明するための図である。 ロボットの座標系を説明するための図である。 脚部34の各軸の値から位置姿勢を求める際の各軸の座標系を説明するための図である。 支持多角形100と床面投影点103との関係を説明するための図である。 図2に示すロボット制御方法での腰45の目標位置の計算のフローチャートである。 代表点の移動許諾範囲を説明するための図である。 図2に示すロボット制御方法での肩43の目標位置の計算のフローチャートである。 図2に示すロボット制御方法での手先41の目標位置の計算のフローチャートである。 図2に示すロボット制御方法での参照位置の計算から各軸の値の計算までのアルゴリズムを示す図である。 本発明の実施の他の形態であるロボット制御方法が適用されるロボット200のサブシステムへの分割の一例を示す図である。
本発明の実施の他の形態であるロボット制御方法の工程を示すフローチャートである。 図21に示すロボット制御方法での参照位置の計算から各軸の値の計算までのアルゴリズムを示す図である。 本発明を適用することができる他のロボットシステム150の構成の一例を示す図である。 人間型ロボットの概略の構成を示す図である。 評価関数を用いてロボットの各軸の値を求める方法を説明するための図である。
符号の説明
1,30 ロボット
2,31 頭部
3,32 腕部
4,33 胴体部
5,34 脚部
6 手部
10 ロボットシステム
11 ロボット部
12,22 制御部
13,23 通信部
14 撮像部
20 遠隔操作装置
21 入力部
24 表示部
41 手先
42 肘
43 肩
44 胸
45 腰
46 膝
47 足
51〜56 リンク
150 ロボットシステム
151 門構形移動装置
152 6軸垂直多関節型ロボット
153,154 レール
155 ライン
160 ワーク
170 走行軸
171 横行軸
172 昇降軸
173 旋回軸

Claims (18)

  1. 複数のリンクと各リンクを相互に連結する複数の連結部によって構成されるロボットにこのロボットが行うべき動作を示す作業目標情報が指示されたときに、前記ロボットを制御対象として分割した複数の制御対象領域毎に、前記作業目標情報を達成するために優先度が設定された複数の動作条件を、前記作業目標情報に応じて抽出する抽出工程と、
    前記制御対象領域毎に、前記制御対象領域に含まれる部位のうちで前記制御対象領域の移動先位置が計算される部位である代表点が前記動作条件に合致する位置を、前記代表点の移動先位置の候補である参照位置として計算する参照位置計算工程と、
    前記参照位置計算工程で代表点毎に計算された参照位置に基づいて、前記動作条件の優先度に従って、前記各代表点を移動させるべき位置である目標位置を計算する目標位置計算工程と、
    前記目標位置計算工程で計算された目標位置に基づいて前記ロボットの各軸の値を計算する各軸値計算工程と、
    前記各軸値計算工程で計算された各軸の値をロボットの各軸に指令する指令工程とを含むことを特徴とするロボット制御方法。
  2. 前記目標位置計算工程では、前記参照位置計算工程で代表点毎に計算された参照位置が、各代表点が移動することができる移動可能範囲内の所定の範囲である移動許諾範囲内にあるときは、各代表点の参照位置を各代表点の目標位置として計算し、
    前記参照位置計算工程で代表点毎に計算された参照位置が対応する代表点の移動許諾範囲内にないときは、前記移動許諾範囲内の位置であって、各制御対象領域の所定の条件を満たす位置を、各代表点の目標位置として計算することを特徴とする請求項1に記載のロボット制御方法。
  3. 前記目標位置計算工程では、優先度の高い動作条件が設定された制御対象領域の代表点の目標位置を計算し、次に優先度の高い動作条件が設定された制御対象領域の代表点の目標位置を基準として、隣接する制御対象領域の代表点の目標位置を計算することを特徴とする請求項1または2に記載のロボット制御方法。
  4. 前記各代表点の移動許諾範囲を対応する移動可能範囲で除した割合が、優先度の高い動作条件が設定された制御対象領域のほうが優先度の低い動作条件が設定された制御対象領域より小さいことを特徴とする請求項1〜3のいずれか1つに記載のロボット制御方法。
  5. 前記参照位置計算工程では、以前前記ロボットに指示された作業目標情報に対して前記目標位置計算工程で計算された目標位置と前記各軸値計算工程で計算された各軸の値に基づいて参照位置が計算されることを特徴とする請求項1〜4のいずれか1つに記載のロボット制御方法。
  6. 前記目標位置計算工程では、計算された目標位置を、以前前記指令工程で各軸の値をロボットの各軸に指令したことによって生じたロボットの動作に起因する動的要素の情報に基づいて再計算することを特徴とする請求項5に記載のロボット制御方法。
  7. 前記参照位置計算工程では、前記制御対象領域毎の代表点の参照位置を並行して計算することを特徴とする請求項1〜6のいずれか1つに記載のロボット制御方法。
  8. 前記各軸値計算工程では、前記制御対象領域内の各軸の値を制御対象領域毎に並行して計算することを特徴とする請求項1〜7のいずれか1つに記載のロボット制御方法。
  9. 前記ロボットは、20自由度以上の自由度を有することを特徴とする請求項1〜8のいずれか1つに記載のロボット制御方法。
  10. 前記制御対象領域の自由度は、6自由度以下であることを特徴とする請求項1〜9のいずれか1つに記載のロボット制御方法。
  11. 前記ロボットは、人間の腕に相当する腕部、人間の胴体に相当する胴体部、人間の脚に相当する脚部とを含む人間型ロボットであり、前記腕部、前記胴体部、および前記脚部をそれぞれ制御対象領域とすることを特徴とする請求項1〜10のいずれか1つに記載のロボット制御方法。
  12. 前記人間型ロボットの制御対象領域毎の動作条件が、腕部は作業目標情報に応じた動作を実現すること、胴体部は腕部の動作範囲を広く保つこと、脚部は全体のバランスを維持することおよび胴体部の動作範囲を広く保つことであることを特徴とする請求項11に記載のロボット制御方法。
  13. 前記人間型ロボットは、人間の頭に相当する頭部を含み、頭部の動作条件が作業に必要な視野を確保すること、および前記胴体部は頭部の動作範囲も広く保つことであることを特徴とする請求項11または12に記載のロボット制御方法。
  14. 前記人間型ロボットは、前記腕部の代表点が手先、前記胴体部の代表点が肩、および前記脚部の代表点が腰であり、前記制御対象領域の代表点の移動許諾範囲の移動可能範囲に対する割合が、腰の代表点の割合が肩部の代表点の割合より小さく、かつ肩の代表点の割合が手先の代表点の割合より小さいことを特徴とする請求項11〜13のいずれか1つに記載のロボット制御方法。
  15. 前記参照位置計算工程で、腰の参照位置を計算する際、腰の速度が肩の速度に比例した速度に計算することを特徴とする請求項14に記載のロボット制御方法。
  16. 複数のリンクと各リンクを相互に連結する複数の連結部によって構成されるロボットに、請求項1〜15のいずれか1つに記載のロボット制御方法を実行するコンピュータを搭載したことを特徴とするロボットシステム。
  17. 前記ロボットは、作業目標情報を決定するための検知手段を有し、前記検知手段で検知された情報に基づいて作業目標情報を生成し、生成された作業目標情報を前記ロボットの作業目標情報とすることを特徴とする請求項16に記載のロボットシステム。
  18. 複数のリンクと各リンクを相互に連結する複数の連結部によって構成されるロボットを、制御対象とする複数の制御対象領域に分割する分割工程と、
    前記制御対象領域毎に、前記制御対象領域に含まれる部位のうちで前記制御対象領域の移動先位置が計算される部位である代表点を決定する決定工程と、
    前記制御対象領域毎に、前記ロボットが行うべき動作を示す作業目標情報を達成するために、優先度を付けた動作条件を設定する設定工程と、
    前記ロボットに作業目標情報が指示されたときに、前記制御対象領域毎に、前記代表点が前記動作条件に合致する位置を、前記代表点の移動先位置の候補である参照位置として計算する参照位置計算工程と、
    前記参照位置計算工程で代表点毎に計算された参照位置に基づいて、前記動作条件の優先度に従って、前記各代表点を移動させるべき位置である目標位置を計算する目標位置計算工程と、
    前記目標位置計算工程で計算された目標位置に基づいて前記ロボットの各軸の値を計算する各軸値計算工程と、
    前記各軸値計算工程で計算された各軸の値をロボットの各軸に指令する指令工程とを含むことを特徴とするロボット指令決定方法。
JP2004193361A 2004-06-30 2004-06-30 ロボット制御方法およびロボットシステム Active JP4488811B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004193361A JP4488811B2 (ja) 2004-06-30 2004-06-30 ロボット制御方法およびロボットシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004193361A JP4488811B2 (ja) 2004-06-30 2004-06-30 ロボット制御方法およびロボットシステム

Publications (2)

Publication Number Publication Date
JP2006015430A true JP2006015430A (ja) 2006-01-19
JP4488811B2 JP4488811B2 (ja) 2010-06-23

Family

ID=35790119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004193361A Active JP4488811B2 (ja) 2004-06-30 2004-06-30 ロボット制御方法およびロボットシステム

Country Status (1)

Country Link
JP (1) JP4488811B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007313592A (ja) * 2006-05-24 2007-12-06 Toyota Motor Corp 経路作成装置及び経路作成方法
JP2008023604A (ja) * 2006-07-18 2008-02-07 Advanced Telecommunication Research Institute International アンドロイド制御システム
JP2014508660A (ja) * 2011-03-21 2014-04-10 本田技研工業株式会社 人型ロボットの転倒損傷低減制御法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03217906A (ja) * 1990-01-23 1991-09-25 Yaskawa Electric Mfg Co Ltd 多関節形ロボットの制御方法
JPH054177A (ja) * 1991-06-28 1993-01-14 Takenaka Komuten Co Ltd マニピユレータの制御装置
JPH07164360A (ja) * 1993-12-16 1995-06-27 Yuseisho Tsushin Sogo Kenkyusho マニピュレーターの制御方法
JP2000084877A (ja) * 1998-09-14 2000-03-28 Yaskawa Electric Corp 走行軸付ロボットのオフラインティーチング方法
JP2004148491A (ja) * 2002-10-10 2004-05-27 Sony Corp ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03217906A (ja) * 1990-01-23 1991-09-25 Yaskawa Electric Mfg Co Ltd 多関節形ロボットの制御方法
JPH054177A (ja) * 1991-06-28 1993-01-14 Takenaka Komuten Co Ltd マニピユレータの制御装置
JPH07164360A (ja) * 1993-12-16 1995-06-27 Yuseisho Tsushin Sogo Kenkyusho マニピュレーターの制御方法
JP2000084877A (ja) * 1998-09-14 2000-03-28 Yaskawa Electric Corp 走行軸付ロボットのオフラインティーチング方法
JP2004148491A (ja) * 2002-10-10 2004-05-27 Sony Corp ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007313592A (ja) * 2006-05-24 2007-12-06 Toyota Motor Corp 経路作成装置及び経路作成方法
JP2008023604A (ja) * 2006-07-18 2008-02-07 Advanced Telecommunication Research Institute International アンドロイド制御システム
JP2014508660A (ja) * 2011-03-21 2014-04-10 本田技研工業株式会社 人型ロボットの転倒損傷低減制御法

Also Published As

Publication number Publication date
JP4488811B2 (ja) 2010-06-23

Similar Documents

Publication Publication Date Title
KR101953113B1 (ko) 로봇 및 그 제어방법
US9334002B2 (en) Balance control apparatus of robot and control method thereof
US9193072B2 (en) Robot and control method thereof
US7769491B2 (en) Obstacle avoiding apparatus, obstacle avoiding method, obstacle avoiding program, and mobile robot apparatus
US9827675B2 (en) Collision avoidance method, control device, and program
JP3972854B2 (ja) ロボットの運動制御装置
US8855814B2 (en) Robot and control method thereof
US9014854B2 (en) Robot and control method thereof
JP2007015037A (ja) ロボットのモーション編集装置及びモーション編集方法、コンピュータ・プログラム、並びにロボット装置
JP6228097B2 (ja) 移動ロボット
US20220193894A1 (en) Supervised Autonomous Grasping
JP4810880B2 (ja) ロボットとその制御方法
JP7035309B2 (ja) マスタスレーブシステム
JP2020093364A (ja) 軌道生成装置
Corsini et al. Nonlinear model predictive control for human-robot handover with application to the aerial case
US20110264265A1 (en) Robot, control system, and recording medium for control program
JP4488811B2 (ja) ロボット制御方法およびロボットシステム
KR102350193B1 (ko) 확장 작업 공간을 활용한 휴머노이드 제어방법
Diftler et al. Robonaut mobile autonomy: Initial experiments
Mayol et al. Designing a miniature wearable visual robot
JP5310236B2 (ja) 脚式ロボットとその制御方法
JP2015058493A (ja) 制御装置、ロボットシステム、ロボット、ロボット動作情報生成方法及びプログラム
Rodriguez-Angeles et al. An online inertial sensor-guided motion control for tracking human arm movements by robots
JP6647143B2 (ja) 機能装置ならびにその制御装置および制御方法
JP4525325B2 (ja) 超冗長自由度ロボットの動作制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100323

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100330

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4488811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150409

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250