(57)【特許請求の範囲】
【請求項１】
複数の関節軸を有する水平多関節型のロボットの制御装置において、
前記ロボットの制御点を教示することにより、前記制御点の開始位置と目標位置を記憶する記憶手段と、
前記ロボットが動作する前に、前記記憶手段から前記開始位置及び前記目標位置を読み出して、前記開始位置と前記目標位置とを結ぶ直線を求める演算手段と、
前記ロボットの特異点の周りに設定された速度調整領域を、前記直線が通過するか否かを判断する第１の判断手段と、
前記速度調整領域を前記直線が通過する場合、前記制御点から前記特異点までの距離に基づいて速度調整領域の通過を可能とする調整速度指令としての第１の速度指令を生成する第１の速度指令生成手段と、
を備えたことを特徴とするロボットの制御装置。
【請求項２】
前記記憶手段から読み出した前記開始位置、前記目標位置に基づいて前記制御点を所定の速度で補間する第２の速度指令を生成する第２の速度指令生成手段と、
前記第１の判断手段により前記直線が通過すると判断することにより、前記制御点の補間動作を実行しながら前記第１の速度指令と前記第２の速度指令を比較して低い方の速度指令を選択する選択手段と、
を備えたことを特徴とする請求項１に記載のロボットの制御装置。
【請求項３】
前記第１の速度指令生成手段は、前記特異点から前記制御点までの距離をＲとし、特異点の影響を受け速度調整の対象となる所定の関節軸の最高回転速度をΔθ1maxとし、前記直線補間の動作方向と水平方向の成す角をφとすると、前記第１の速度指令Ｖrcが下式となる
Ｖrc＝Ｒ・Δθ1max／cosφ
ことを特徴とする請求項１又は２に記載のロボットの制御装置。
【請求項４】
前記特異点の周りに設定されると共に、前記速度調整領域よりも狭い特異点領域を有し、前記ロボットが動作する前に、前記直線が該特異点領域を通過するか否かを判断する第２の判断手段と、
前記第２の判断手段によって前記直線が特異点領域を通過すると判断された場合に、警報を発生する警報手段と、
を備えたことを特徴とする請求項１に記載のロボットの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多関節型のロボットが特異点近傍を通過するロボットの制御装置の改良に関する。
【０００２】
【従来の技術】
ロボットの制御点の軌跡が直線を描くように動作させる直線補間動作は、動作開始位置と目標位置の位置と姿勢の情報（以下、直交データという）をロボットの制御装置に予め記憶しておき、それら２つの位置の間を制御点が直線を描くようにロボットの制御周期毎に直交データを算出し、その直交データから座標変換により各関節軸の角度（以下、関節データという）を求め、該関節データに一致するように各軸のモータを制御することにより実現している。
【０００３】
多関節型のロボットにおいては、直交データから関節データに座標変換する際、一意に関節データを求めることのできない特異点と呼ばれる位置が存在し、特異点又は特異点の近傍を通過する場合には、特定の関節軸において非常に大きな速度で回転しなければならないことが知られている。
そこで、補間動作中において、常に関節軸の速度指令を算出し、速度指令の増加率からロボットの制御点が特異点に近付いたか否かを判定し、近付いたと判断した場合、特異点近傍を通過できるような補間手段に処理を切り替えたり、特異点からの距離に応じて速度指令を補正して特異点近傍を通過させたりする手段が提案されている(特開平５−３２４０４４号公報)。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記のような技術的な手段は、補間動作中において、常に特異点近傍に対する判断処理、速度の補正処理が実行されている。このため、元々、特異点近傍を通過しない補間動作に対しては無駄な処理を実行しているので、補間動作の処理に時間が占有されることにより演算時間が増加する。したがって、迅速な制御が制約されるという問題点があった。
【０００５】
本発明は、上記の課題を解決するためになされたもので、補間動作の実行前に特異点近傍を通過するか否かを判断し、通過する場合のみ補間動作において特異点近傍通過のための処理を実行するロボットの制御装置を提供することを目的とするものである。
【０００６】
【課題を解決するための手段】
第１の発明に係るロボットの制御装置は、複数の関節軸を有する水平多関節型のロボットの制御装置において、前記ロボットの制御点を教示することにより、前記制御点の開始位置と目標位置を記憶する記憶手段と、前記ロボットが動作する前に、前記記憶手段から前記開始位置及び前記目標位置を読み出して、前記開始位置と前記目標位置とを結ぶ直線を求める演算手段と、前記ロボットの特異点の周りに設定された速度調整領域を、前記直線が通過するか否かを判断する第１の判断手段と、前記速度調整領域を前記直線が通過する場合、前記制御点から前記特異点までの距離に基づいて速度調整領域の通過を可能とする調整速度指令としての第１の速度指令を生成する第１の速度指令生成手段とを備えたことを特徴とするものである。
かかるロボットの制御装置によれば、直線補間動作を行う前に、第１の判断手段によりロボットの制御点が速度調整領域を通過するかどうか判断し、通過する場合には、制御点から特異点までの距離に基づいて第１の速度指令によりロボットの制御点が補間動作する。したがって、特異点近傍の速度調整領域を元々制御点が通過しない場合、特異点近傍を通過するための無駄な処理がロボットの動作中に実行されないので、演算の処理が円滑になるという効果がある。
【０００７】
第２の発明に係るロボットの制御装置は、記憶手段から読み出した前記開始位置、目標位置に基づいて制御点を所定の速度で補間する第２の速度指令を生成する第２の速度指令生成手段と、第１の判断手段により直線が通過すると判断することにより、制御点の補間動作を実行しながら第１の速度指令と第２の速度指令を比較して低い方の速度指令を選択する選択手段とを備えたことを特徴とするものである。
かかるロボットの制御装置によれば、選択手段が第１の速度指令と第２の速度指令を比較して低い方の速度指令を選択して制御点を補間動作させる。したがって、ロボットの制御点がより円滑に速度調整領域を通過できるという効果がある。
【０００８】
第３の発明に係るロボットの制御装置における第１の速度指令生成手段は、前記特異点から前記制御点までの距離をＲとし、特異点の影響を受け速度調整の対象となる所定の関節軸の最高回転速度をΔθ1maxとし、前記直線補間の動作方向と水平方向の成す角をφとすると、前記第１の速度指令Ｖrcが下式となる
Ｖrc＝Ｒ・Δθ1max／cosφ
ことを特徴とするものである。
かかるロボットの制御装置によれば、水平方向と併せて垂直方向の移動量も考慮するので、制御点が速度調整領域で水平方向に対して垂直方向に大きく動作する場合、水平方向のみ調整速度指令に対して、制御点の速度を適切に低下して速度調整領域を円滑に動作できるという効果がある。
【０００９】
第４の発明に係るロボットの制御装置は、特異点の周りに設定されると共に、前記速度調整領域よりも狭い特異点領域を有し、前記ロボットが動作する前に、前記直線が該特異点領域を通過するか否かを判断する第２の判断手段と、前記第２の判断手段によって前記直線が特異点領域を通過すると判断された場合に、警報を発生する警報手段とを備えたことを特徴とするものである。
ロボットの制御点が特異点領域を通過すると判断した場合は、通常の直線補間では動作できないので、動作開始前に警告を発する。かかる警告に基づいて、例えば、制御点の開始位置、目標位置を変更したり、直線補間を関節補間に変更したりすることにより制御点が特異点を通過しないようにすることができるという効果がある。
【００１０】
【発明の実施の形態】
実施の形態１．
本発明の一実施の形態を図１乃至図９によって説明する。図１において、多関節型のロボット１は、基柱３に設けられた上下方向に移動可能な直同軸Ｊ０と、回転可能な第１の関節Ｊ1と、回転可能な第２の関節Ｊ2と、第１の関節Ｊ1と第２の関節Ｊ2を連結させるアーム５と、先端に制御点Ｃpを有すると共に、第２の関節Ｊ2に連結されたアーム５と長さが等しいアーム７とから成っている。
【００１１】
図１に示すような、アーム５とアーム７の長さが等しい３自由度の水平多関節型ロボットでは、図２のようにアーム５とアーム７が折り重なった位置が特異点一つとなることが知られており、図３に示すように、状態１から状態７の制御点Ｃpにおける動作速度を一定に保ち、図２の特異点を通過するように直線補間の動作を実行しようとすると、状態４から状態５に移動する際、第１の関節Ｊ１は瞬時に１８０度回転しなければならない。このように制御点Ｃpが特異点近傍を通過しようとすると不具合が生じるので、かかる不具合を除去する補間処理の実行手段を以下に説明する。
【００１２】
図４において、補間処理手段は、教示により補間種類等を記憶した指令部１０と、制御点Ｃpの補間動作が特異点近傍の特異点領域Ａs又は、特異点領域Ａsよりも広い特異点速度調整領域Ａcを通過するか否かを判断する速度調整判断部１４と、補間処理を成す補間処理部１２と、速度調整判断部１４が特異点領域Ａsを通過すると判断することにより警報を発生する警報部１７と、算出された補間位置を各関節Ｊ0〜Ｊ2の位置指令に変換する座標変換部２６と、座標変換部２６からの指令に基づいて各関節Ｊ0〜Ｊ2のモータの位置を制御するサーボ制御部２８とを備えている。
【００１３】
指令部１０は、補間指令を記憶した記憶手段としてのＲＡＭから成っており、補間の種類を記憶した補間種類領域１０ａと、制御点Ｃpの動作すべき開始位置を記憶した開始位置領域１０ｂと、制御点Ｃpの目標位置を記憶した目標位置領域１０ｃとを有している。
補間処理部１２には、指令部１０からの補間指令に基づいて所望の第２の速度指令Ｖcを生成する第２の速度指令生成手段としての速度指令部１３と、特異点領域Ａs又は速度調整領域Ａcを通過するか否かを判断する第１及び第２の判断手段としての速度調整判断部１４と、速度調整領域Ａc、特異点領域Ａs、調整速度指令Ｖrcを求める演算式を記憶した速度調整生成部１６と、速度調整領域Ａcを通過すると判断した場合、速度調整領域Ａcの通過を可能とする第１の速度指令としての調整速度指令Ｖrcを生成する第１の速度指令生成手段としての速度調整指令部１８と、速度調整領域Ａcを通過すると判断すると、制御点Ｃpの補間動作において、調整速度指令Ｖrcと速度指令Ｖcとを比較してＶrc＜Ｖcであれば、切換スイッチ２２をａ端子側に投入し、Ｖrc≧Ｖcであれば、切換スイッチ２２をｂ端子側に投入する信号を発生する速度指令決定部１９と、速度指令Ｖc又は調整速度指令Ｖrcに基づいて補間位置を生成する補間位置生成部２４とを備えている。なお、速度指令決定部１９及び切換スイッチ２２により選択手段を成している。
【００１４】
速度調整生成部１６は、特異点から円形の領域であると共に、特異点領域Ａsよりも広い速度調整領域Ａcを記憶した速度調整領域１６aと、特異点から円形の領域となる特異点領域Ａsを記憶した特異点領域１６bと、制御点Ｃpが速度調整領域Ａcを通過する場合に調整速度指令Ｖrcを求める後述する所定の演算式が記憶された速度調整演算式領域１６ｃとを有するＲＡＭから成っている。
ここで、速度調整領域Ａcは、図１に示すロボットをＸ軸に沿って直線補間で水平動作させた場合、ロボットの制御点Ｃpが特異点の１つである第１の関節Ｊ1軸の位置に最も近付くのは、図５に示すように制御点ＣpがＹ軸上に達したときである。この達した瞬間における制御点Ｃpの速度を速度指令Ｖcとする。
ここで、図５に示すように第１の関節Ｊ１を中心とした半径Rの円を考え、第１の関節Ｊ１軸から距離Ｒ離れた位置において、第１の関節Ｊ１軸を回転することにより発生可能な最高速度Ｖrmax(ｍ／sec)は、第１の関節Ｊ１軸の最高回転速度をΔθ１ｍａｘ(rad／sec)とすると、下式となる。なお、Ｙ軸上では最高速度Ｖrmaxと速度指令Ｖcの方向が一致する。
Ｖrmax=Ｒ・Δθ１ｍａｘ      ・・・・・・(１)
速度指令Ｖcに対する円形の速度調整領域Ａcを、特異点を中心に定め、その半径Ｒcは、(１)式を変形して下式となる。
Ｒc =Ｖc／Δθ１ｍａｘ          ・・・・(２)
簡単のために、速度指令Ｖcを、ロボットの最高指令速度Ｖcmaxとした固定した値として上記(２)式に代入すると、半径Ｒcは下式となる。
Ｒc=Ｖcmax／Δθ１ｍａｘ    ・・・・(３)
また、速度調整領域Ａcの内側に設定する特異点領域Ａsの半径Ｒsは、下記の関係がある。
0＜Ｒs＜Ｒc            ・・・・(４)
この(４)式を満足する範囲で、半径Ｒsを大きな値にすると、ロボットの動作範囲が制限されるので、所定の範囲に設定される。半径Ｒsの値は、例えば２ｍｍである。
【００１５】
速度調整指令部１８は、制御点Ｃpの軌跡として開始位置と目標位置の軌跡が速度調整領域Ａcを通過する場合、調整速度指令Ｖrcを発生する。
また、図６に示すように制御点Ｃpを斜めに直線補間動作する場合は、制御点Ｃpの軌跡に沿って速度指令Ｖcが生成される。速度指令Ｖcは、水平方向の動作速度Ｖhに対するものであるので、直線補間の動作方向と水平方向のなす角をφとすると、下式となる。
Ｖh =Ｖc・cosφ                ・・・・(５)
この(５)式より、調整速度指令Ｖrcとすると、調整速度指令Ｖrcは、下式となり特異点からの制御点Ｃpまでの半径Ｒに比例する。
Ｖrc＝Ｒ・Δθ１ｍａｘ／cosφ      ・・・・(６)
【００１６】
速度調整判断部１４は、特異点領域Ａs、速度調整領域Ａcを通過する補間か否かを判断するもので、図７に示すように開始位置Ｐ1s〜Ｐ5sと目標位置Ｐ1t〜Ｐ5tをそれぞれ結んだ直線Ｌ1〜Ｌ5を求め(演算手段）、直線Ｌ1〜Ｌ5が速度調整領域Ａcを通過するか否かを判断し、速度調整領域Ａcを通過しないと判断した場合、切換スイッチ２２をｂ端子側に投入する。
【００１７】
教示された制御点Ｃpの開始位置と目標位置のＸ座標とＹ座標は任意の値を取るため、開始位置と目標位置を結んだ直線が速度調整領域Ａcを通過するか否か判断しにくい。したがって、図７に示すようにＸ座標方向の移動量ΔＸとＹ座標方向の移動量ΔＹとの傾きαを求め、傾きαを用い、次の式により直線Ｌ1，〜Ｌ5を原点周りに−α回転させたＸ´，Ｙ´を下式により求めて特異点領域Ａs、速度調整領域Ａcを通過するか否かを判断する。
【００１８】
【数１】
0003886842.tif 000002
【００１９】
このような座標変換することにより動作開始位置Ｐ1s´，Ｐ2s´，Ｐ3s´，Ｐ4s´，Ｐ5s´と目標位置Ｐ1t´，Ｐ2t´，Ｐ3t´，Ｐ4t´，Ｐ5t´をそれぞれ結んだ直線Ｌ1´，Ｌ2´，Ｌ3´，Ｌ4´，Ｌ5´が図８のようになる。
【００２０】
速度調整判断部１４は、直線Ｌ1´〜Ｌ5´が速度調整領域Ａc、特異点領域Ａsを通過するか否かを以下のようにして判断する。
▲１▼．直線Ｌ1´のＸ座標値Ｘ1S，Ｘ1tが速度調整領域Ａcの半径Ｒcよりも大きい場合、すなわち、Ｘ1S，Ｘ1t＞Ｒcの場合には、速度調整領域Ａcを通過しないと判断する。
▲２▼．直線Ｌ2´のＹ座標値Ｙ2s，Ｙ2tの積、すなわち、Ｙ2s・Ｙ2t≦0であれば、直線Ｌ2´がＸ軸を横切ると判断し、Ｘ座標値Ｘ2s，Ｘ2t＜Ｒcの場合には、速度調整領域Ａcを通過すると判断する。
同様に、直線Ｌ3´のＹ座標値Ｙ3s，Ｙ3tの積、すなわち、Ｙ3s・Ｙ3t≦0であれば、直線Ｌ3´がＸ軸を横切りと判断し、Ｘ座標値Ｘ3s，Ｘ3t＜Ｒｓの場合には、特異点領域Ａsを通過すると判断する。
▲３▼．直線Ｌｘ´の座標値Ｘxs´，Ｙｘs´，Ｘｘt´，Ｙｘt´が速度調整領域Ａcに存在する場合、すなわち、Ｌc1≦Ｒc 又はＬc2≦Ｒcの場合には、直線Ｌｘ´が速度調整領域Ａcを通過すると判断する。例えば、直線Ｌ4´が該当する。
ここに、Ｌc1＝(Ｘxs´２＋Ｙxs´２)１/２
Ｌc2＝(Ｘxt´２＋Ｙｘt´２)１/２
また、直線Ｌｘ´の座標値Ｘxs´，Ｙｘs´，Ｘｘt´，Ｙｘt´が特異領域Ａsに存在する場合、すなわち、Ｌc1≦Ｒs 又はＬc2≦Ｒsの場合には、直線Ｌｘ´が特異点領域Ａsを通過すると判断する。例えば、直線Ｌ5´が該当する。
【００２１】
上記のように構成されたロボットの制御装置の動作を図１乃至図９によって説明する。まず、作業者は、補間種類として直線補間を補間種類領域１０ａに記憶し、制御点Ｃpを教示して開始位置Ｐ1s〜Ｐ5sを開始位置領域１０ｂに記憶し、目標位置Ｐ1t〜Ｐ5tを目標位置領域１０ｃに記憶する。速度生成部１６の速度調整領域１６ａに速度調整領域Ａcを記憶し、特異点領域１６ｂに特異点領域Ａｓを記憶し、上記(６)式の速度調整の演算式を速度調整演算式領域１６ｃに記憶する。
【００２２】
速度調整判断部１４は、指令部１０の補間種類領域１０ａから直線補間を読み出し、開始位置領域１０ｂ、目標位置領域１０ｃからそれぞれ開始位置Ｐ1s、目標位置Ｐ1tを読み出してＸ，Ｙ座標の移動量ΔＸ，ΔＹにより傾きαを求めることにより上記(７)式の演算により直線Ｌ1を原点周りに−α回転させた直線Ｌ1´を求め、直線Ｌ1´の位置Ｐ1s´，Ｐ1t´のＸ，Ｙ座標値Ｘ1s´，Ｘ1t´，Ｙ1s´，Ｙ1t´を求める。速度調整判断部１４は、Ｘ座標値Ｘ1s´＞速度調整領域Ａcの半径Ｒcであるので、速度調整領域Ａｃを通過しないと判断し、切換スイッチ２２をｂ端子側に投入する。ロボットの動作を開始して、速度指令部１３からの速度指令Ｖcにより補間位置生成部２４、座標変換部２６、サーボ制御部２８を介して制御点Ｃpが直線補間動作する。
【００２３】
また、速度調整判断部１４は、上記のようにして開始位置Ｐ2s、目標位置Ｐ2tを読みして直線Ｌ2´を求め、直線Ｌ2´の位置Ｐ2s´，Ｐ2t´のＸ，Ｙ座標値Ｘ2s´，Ｘ2t´，Ｙ2s´，Ｙ2t´を求める。速度調整判断部１４は、Ｙ座標値Ｙ2s´とＹ2t´との積を求め、該積の値が負となるので、直線Ｌ2´がＸ軸を横切ると判断し、Ｘ座標値Ｘ1s´＜速度調整領域Ａcになることを判断する。すなわち、直線Ｌ2´が速度調整領域Ａcを通過すると判断する。
ロボットの動作を開始し、補間動作において速度指令決定部１９は、速度指令部１３からの速度指令Ｖcと速度調整指令部１８からの調整速度指令Ｖrcとを比較し、Ｖrc＜Ｖcであれば、切換スイッチ２２をａ端子側に投入し、Ｖrc≧Ｖcであれば、切換スイッチ２２をｂ端子側に投入することにより速度指令Ｖc、調整速度指令Ｖrcを適宜選択しながら補間位置生成部２４、座標変換部２６、サーボ制御部２８を介して制御点Ｃpが直線補間する。
【００２４】
また、速度調整判断部１４は、上記のようにして開始位置Ｐ3s、目標位置Ｐ3tを読み出して直線Ｌ3´を求め、直線Ｌ3´の位置Ｐ3s´，Ｐ3t´のＸ，Ｙ座標値Ｘ3s´，Ｙ3s´，値Ｘ3t´，Ｙ3t´を求める。速度調整判断部１４は、Ｙ座標値Ｙ3s´とＹ3t´との積を求め、該積の値が負となるので、直線Ｌ2´がＸ軸を横切ると判断し、Ｘ座標値Ｘ3s´＜特異点領域Ａsと判断する。すなわち、速度調整判断部１４は、直線Ｌ3´が特異点領域Ａsを通過すると判断するので、警報部１７から警報を発する。かかる警告に基づいて、例えば、制御点Ｃpの開始位置、目標位置を変更したり、直線補間を関節補間に変更したりすることにより制御点Ｃpが特異点を通過しないようにする。
【００２５】
また、速度調整判断部１４は、上記のようにして開始位置Ｐ4s、目標位置Ｐ4tを読み出して直線Ｌ4´を求め、直線Ｌ4´の位置Ｐ4s´，Ｐ4t´のＸ，Ｙ座標値Ｘ4s´，Ｙ4s´，値Ｘ4t´，Ｙ4t´を求め、直線Ｌ4´の座標値Ｘ4s´，Ｙ4s´が速度調整領域Ａcの半径Ｒcの範囲内となる。ロボットの動作を開始すると、上記の直線Ｌ2´のように制御点Ｃpが補間動作する。
【００２６】
また、速度調整判断部１４は、上記のようにして開始位置Ｐ5s、目標位置Ｐ5tを読みして直線Ｌ5´を求め、直線Ｌ5´の位置Ｐ5s´，Ｐ5t´のＸ，Ｙ座標値Ｘ5s´，Ｙ5s´，Ｘ5t´，Ｙ5t´を求める。直線Ｌ5´の座標値Ｘ5s´，Ｙ5s´が特異点領域Ａsの半径Ｒｓの範囲内であるので、警報部１７から警報を発する。
【００２７】
上記実施の形態では、速度調整判断部１４は、直線Ｌ1´〜Ｌ5´が速度調整領域Ａcを通過すると判断することにより、制御点Ｃpの補間動作を実行しながら速度指令決定部１９が速度指令Ｖcと調整速度指令Ｖrcを比較して低い方の速度指令を選択して制御点Ｃpの補間動作を実行した。しかしながら、速度調整判断部１４は、直線Ｌ1´〜Ｌ5´が速度調整領域Ａcを通過すると判断することにより、調整速度指令Ｖrcのみによって制御点Ｃpの補間動作を実行しても良い。
【図面の簡単な説明】
【図１】  本発明の一実施の形態を示す３自由度の水平多関節型ロボットの全体概念構成図である。
【図２】  図１に示すロボットのアームどうしが折り重なった状態を示す平面図である。
【図３】  図１に示すロボットが図２の特異点を直線補間で通過する際の水平アーム部の動きを表す図である。
【図４】  図１に示すロボットの制御点を補間処理させるブロック図である。
【図５】  図１に示すロボットの制御点が特異点に最も近付いたときの速度指令と、その位置においてＪ１軸の回転により生成される速度を表す図である。
【図６】  図１に示すロボットの制御点が斜めに直線補間動作する場合の水平方向と垂直方向の速度成分を示す図である。
【図７】  図１に示すロボットの制御点の開始位置と目標位置を結ぶ直線と速度調整領域との関係を表す図である。
【図８】  図７に示す直線Ｌ1〜Ｌ4を原点周りに回転させてＸ軸の値を一定とした例を表した図である。
【図９】  図１に示すロボットの制御点の開始位置と目標位置を結ぶ直線が速度調整領域を通過するか否かを判断するために用いる図である。
【符号の説明】
１０  指令部(ＲＡＭ，記憶手段)、１４  速度調整判断部(演算手段，第１及び第２の判断手段)、１７  警報部、１８  速度調整指令部(速度指令調整手段)。
【図１】
0003886842.tif 000003
【図２】
0003886842.tif 000004
【図３】
0003886842.tif 000005
【図４】
0003886842.tif 000006
【図５】
0003886842.tif 000007
【図６】
0003886842.tif 000008
【図７】
0003886842.tif 000009
【図８】
0003886842.tif 000010
【図９】
0003886842.tif 000011