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

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

▶ 新明工業株式会社の特許一覧

<>
  • 特開-ロボット制御システム 図1
  • 特開-ロボット制御システム 図2
  • 特開-ロボット制御システム 図3
  • 特開-ロボット制御システム 図4
  • 特開-ロボット制御システム 図5
  • 特開-ロボット制御システム 図6
  • 特開-ロボット制御システム 図7
  • 特開-ロボット制御システム 図8
  • 特開-ロボット制御システム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110131
(43)【公開日】2024-08-15
(54)【発明の名称】ロボット制御システム
(51)【国際特許分類】
   B25J 5/00 20060101AFI20240807BHJP
   B25J 13/00 20060101ALI20240807BHJP
【FI】
B25J5/00 E
B25J13/00 Z
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023014519
(22)【出願日】2023-02-02
(71)【出願人】
【識別番号】000191353
【氏名又は名称】新明工業株式会社
(74)【代理人】
【識別番号】110000394
【氏名又は名称】弁理士法人岡田国際特許事務所
(72)【発明者】
【氏名】村田 勇樹
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707CS08
3C707HS27
3C707KS21
3C707KX10
3C707WA15
3C707WK04
(57)【要約】
【課題】ロボットが備える複数のマニプレータの中の2つが互いに重なった結果として一方のマニプレータの作動が他方のマニプレータによって妨げられることを回避できるロボット制御システムを提供することを目的とする。
【解決手段】胴体に変位可能に連結された第1及び第2マニプレータの変位量に基づいて、第1及び第2マニプレータを仮想平面に投影すると重なるか否かを判定し、仮想平面にて重なる第1及び第2マニプレータにおける対応位置の仮想平面に対する高さの大小関係に基づいて第1及び第2マニプレータの一方を他方よりも先に変位させる、制御部を備えるロボット制御システム。
【選択図】図5
【特許請求の範囲】
【請求項1】
ロボット制御システムであって、
胴体に変位可能に連結された第1及び第2マニプレータと、
前記第1及び第2マニプレータを変位させる第1及び第2アクチュエータと、
前記胴体に対する前記第1及び第2マニプレータの変位量を取得する第1及び第2センサと、
前記第1及び第2マニプレータを制御する制御部を有し、前記制御部は、
前記第1及び第2マニプレータの前記変位量に基づいて、前記第1及び第2マニプレータを仮想平面に投影すると重なるか否かを判定し、
前記仮想平面にて重なる前記第1及び第2マニプレータにおける対応位置の前記仮想平面に対する高さの大小関係に基づいて前記第1及び第2マニプレータの一方が他方よりも先に変位するように前記第1及び第2アクチュエータを制御する、ロボット制御システム。
【請求項2】
請求項1に記載のロボット制御システムであって、
前記第1マニプレータは、第1リンクを有し、
前記第2マニプレータは、第2リンクを有し、
前記制御部は、
前記第1リンクを表す線分及び前記第2リンクを表す線分を前記仮想平面に投影すると交差する場合に前記第1及び第2マニプレータが重なると判定する、ロボット制御システム。
【請求項3】
請求項1に記載のロボット制御システムであって、
前記胴体に変位可能に連結された第3マニプレータと、
前記第3マニプレータを変位させる第3アクチュエータと、
前記胴体に対する前記第3マニプレータの変位量を取得する第3センサを有し、
前記制御部は、
前記第3マニプレータの前記変位量に基づいて、前記第3マニプレータ及び前記胴体を前記仮想平面に投影すると重なるか否かを判定し、
前記第1及び第2マニプレータの少なくとも一方よりも後に前記胴体に重なる前記第3マニプレータが変位するように前記第1乃至第3アクチュエータを制御する、ロボット制御システム。
【請求項4】
請求項1乃至請求項3の何れか一項に記載のロボット制御システムであって、
前記制御部は、前記第1及び第2マニプレータの先端を地面に接地させ、更に前記胴体を前記地面に対して移動させる、ロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システムに関する。例えば、ロボットが備えるマニプレータどうしの重複状態に基づいてマニプレータの変位量を制御するロボット制御システムに関する。
【背景技術】
【0002】
複数のマニプレータ(例えば、ロボットの胴体に連結された脚)を備えるロボットの制御に関して種々の提案がなされている。例えば特許文献1には、転倒した場合に鉛直下方に位置する下側脚が動作可能となるように、鉛直上方に位置する上側脚を地面に対して動作させて姿勢を変更する多脚ロボットが開示されている。この多脚ロボットによれば、転倒した場合、地面又は胴体によって動作が妨げられる可能性が高い下側脚ではなく、上側脚を用いることによって胴体の姿勢を自ら矯正することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017-64835号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、複数のマニプレータの中の2つが互いに交差していると、マニプレータの一方の動作(変位)が他方によって妨げられる可能性がある。マニプレータの交差は、例えば、作動開始時に操作者によってロボットが正しく配置されなかったことにより発生する。しかしながら、特許文献1には、マニプレータが互いに交差した場合の矯正方法は開示されていない。
【0005】
本発明は、このような点に鑑みて創案されたものであり、ロボットが備える複数のマニプレータの中の2つが互いに重なった結果として一方のマニプレータの作動が他方のマニプレータによって妨げられることを回避できるロボット制御システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の1つの特徴によると、ロボット制御システムは、胴体に変位可能に連結された第1及び第2マニプレータと、前記第1及び第2マニプレータを変位させる第1及び第2アクチュエータと、前記胴体に対する前記第1及び第2マニプレータの変位量を取得する第1及び第2センサと、前記第1及び第2マニプレータを制御する制御部と、を有する。前記制御部は、前記第1及び第2マニプレータの前記変位量に基づいて、前記第1及び第2マニプレータを仮想平面に投影すると重なるか否かを判定し、前記仮想平面にて重なる前記第1及び第2マニプレータにおける対応位置の前記仮想平面に対する高さの大小関係に基づいて前記第1及び第2マニプレータの一方が他方よりも先に変位するように前記第1及び第2アクチュエータを制御する。
【0007】
第1マニプレータ及び第2マニプレータ(即ち、ロボットが備えるマニプレータの中の2つ)が互いに重なっていると(典型的には、互いに交差していると)、一方のマニプレータを変位させたときに他方のマニプレータに接触して当該一方のマニプレータの変位が妨げられる可能性が高い。この場合、本特徴に係る制御部は、先に変位させるべきマニプレータを仮想平面に対する高さに基づいて決定する。仮想平面に対する高さが高いマニプレータと、高さの低いマニプレータと、の何れを選択するかは、マニプレータの構造及び変位の態様に応じて決定され得る。従って、本特徴によれば、第1マニプレータ及び第2マニプレータが互いに重なった結果として一方のマニプレータの作動が他方のマニプレータによって妨げられる事象の発生を回避できる可能性が高くなる。
【0008】
本開示の他の特徴によると、前記第1マニプレータは、第1リンクを有し、前記第2マニプレータは、第2リンクを有し、前記制御部は、前記第1リンクを表す線分及び前記第2リンクを表す線分を前記仮想平面に投影すると交差する場合に前記第1及び第2マニプレータが重なると判定する。
【0009】
本特徴に係る制御部は、例えば、第1マニプレータを構成するリンクの1つ(即ち、第1リンク)、及び第2マニプレータを構成するリンクの1つ(即ち、第2リンク)のそれぞれを仮想平面に仮想的に投射する。次いで、制御部は、投射された線分が仮想平面にて交差しているか否かに応じて第1マニプレータ及び第2マニプレータの重複の有無を判定する。従って、本特徴によれば、制御部は、第1マニプレータと第2マニプレータとが互いに重なっているか否かを容易に判定することができる。
【0010】
本開示の他の特徴によると、前記胴体に変位可能に連結された第3マニプレータと、前記第3マニプレータを変位させる第3アクチュエータと、前記胴体に対する前記第3マニプレータの変位量を取得する第3センサを有し、前記制御部は、前記第3マニプレータの前記変位量に基づいて、前記第3マニプレータ及び前記胴体を前記仮想平面に投影すると重なるか否かを判定し、前記第1及び第2マニプレータの少なくとも一方よりも後に前記胴体に重なる前記第3マニプレータが変位するように前記第1乃至第3アクチュエータを制御する。
【0011】
胴体と第3マニプレータ(即ち、ロボットが備えるマニプレータの1つ)とが互いに重なっていると(典型的には、胴体の下方にまで第3マニプレータが延在していると)、第3マニプレータを変位させたときに胴体又は地面によって第3マニプレータの変位が妨げられる可能性が高い。この場合、本特徴に係る制御部は、第3マニプレータの変位の前に、他のマニプレータ(例えば、第1マニプレータ及び/又は第2マニプレータ)を変位させる。一例として、制御部は、第3マニプレータ以外のマニプレータを変位させて胴体と地面との間に第3マニプレータが変位できる空間を確保した後、第3マニプレータを変位させる。従って、本特徴によれば、胴体と第3マニプレータとが互いに重なっている場合であっても、第3マニプレータを円滑に変位できる可能性が高くなる。
【0012】
本開示の他の特徴によると、前記制御部は、前記第1及び第2マニプレータの先端を地面に接地させ、更に前記胴体を前記地面に対して移動させる。
【0013】
本特徴によれば、第1マニプレータ及び第2マニプレータを歩行脚として用いてロボットを歩行させることができる。
【図面の簡単な説明】
【0014】
図1】実施形態に係るロボット制御システムに含まれるロボットの斜視図である。
図2】ロボット及びロボットの操作端末のブロック図である。
図3】ロボットが備える脚のリンク及び回転関節を示した概略図である。
図4】ロボット及びロボットの脚先の到達可能領域を示した平面図である。
図5】ロボットの脚の1つが胴体と重なり、且つ脚の2つが互いに重なっている状態を胴体の輪郭、及び脚を構成するリンクを表す線分により示した図である。
図6図5に示された胴体の輪郭及び線分を仮想平面に投影して得られる図である。
図7図5に示された互いに重なる脚のリンクを表す線分のそれぞれを含む2つの直線と、2つの直線の共通垂線を示した図である。
図8】ロボットの制御装置が実行する「重複判定処理ルーチン」を示したフローチャートである。
図9】制御装置が実行する「基準姿勢移行処理ルーチン」を示したフローチャートである。
【発明を実施するための形態】
【0015】
本発明の実施形態を図1~9を参照しながら説明する。説明中の同じ符号(参照番号)は、重複する説明をしないが同じ機能を有する同じ要素を意味する。本実施形態に係るロボット制御システム1は、ロボット2及び操作端末7を含んでいる。
【0016】
図1に示されるように、ロボット2は、胴体3、及び胴体3に連結された複数の脚4(マニプレータ)を含んでいる。脚4は、左前脚41、左中脚42、左後脚43、右前脚44、右中脚45及び右後脚46を含んでいる。即ち、ロボット2は6脚歩行ロボットである。
【0017】
以下の説明において、胴体座標系(胴体座標値)が用いられる。胴体座標系は、胴体3の幾何学的中心が原点Oであり、胴体3に対して前後方向がX軸であり、左右方向がY軸であり、上下方向がZ軸である直交座標系である。X軸座標は、原点Oに対して胴体3の前方において正の値となる。Y軸座標は、原点Oに対して胴体3の左方において正の値となる。Z軸座標は、原点Oに対して胴体3の上方において正の値となる。
【0018】
図2から理解されるように、ロボット2は、制御装置5(制御部)、カメラ51、IMU52、無線通信装置53及びスイッチ54を備えている。制御装置5は、CPU、RAM及び不揮発性メモリを備えた汎用マイクロコンピュータを主要素として含んでいる。
【0019】
CPUは、所定のプログラム(ルーチン)を逐次実行することによってデータの読み込み、数値演算、及び演算結果の出力等を行う。RAMは、CPUによって参照されるデータを一時的に記憶する。不揮発性メモリは、ROM、及びデータの書き換え可能なフラッシュメモリ等により構成され、CPUが実行するプログラム及びプログラムの実行時に参照されるルックアップテーブル(マップ)等を記憶する。
【0020】
カメラ51は、胴体3の前部突出部に配設されている(図4を参照)。カメラ51は、胴体3の前方領域の映像である前方画像を取得(撮影)し、前方画像を表す信号を制御装置5へ送信する。
【0021】
IMU52は、X軸、Y軸及びZ軸のそれぞれの方向の加速度であるX軸加速度Ax、Y軸加速度Ay、及びZ軸加速度Az、並びにX軸、Y軸及びZ軸のそれぞれの方向の回転速度(角速度)であるX軸角速度ωx、Y軸角速度ωy、及びZ軸角速度ωzを検出する。IMU52によって検出されるこれらの値の組合せは、胴体移動値M(Ax,Ay,Az,ωx,ωy,ωz)とも表記される。IMU52は、周知の慣性計測装置により構成されている。
【0022】
無線通信装置53は、操作端末7に含まれる無線通信装置72とのデータ通信を行う。具体的には、無線通信装置53は、制御装置5から入力された情報(データ)を無線通信装置72へ送信する一方、無線通信装置72から受信した情報を制御装置5へ出力する。
【0023】
スイッチ54は、ロボット2の作動を開始又は終了させるために操作者によって押下されるブッシュ式スイッチ(ボタン)である。スイッチ54は、胴体3の上面に配設されている(図1図4を参照)。制御装置5は、スイッチ54の操作状態(即ち、押下されているか否か)を検知することができる。
【0024】
更に、ロボット2は、脚4のそれぞれを胴体3に対して変位(稼働)させるモータ61a~61t(アクチュエータ)、及び脚4のそれぞれの変位量を取得する角度センサ62a~62tを含んでいる。モータ61a~61tのそれぞれは、周知のDCサーボモータによって構成されている。角度センサ62a~62tのそれぞれは、周知のレゾルバによって構成されている。モータ61a~61t及び角度センサ62a~62tについて、脚4のそれぞれの構造と共に具体的に説明する。
【0025】
図3に示されるように、左前脚41は、リンク41a~41c及び基部41dを含んでいる。基部41dの一端は、胴体3に固結されている。基部41dの他端は、リンク41aの一端と回転関節(第1関節)を介して互いに連結されている。リンク41aの他端は、リンク41bの一端と回転関節(第2関節)を介して互いに連結されている。リンク41bの他端は、リンク41cの一端と回転関節(第3関節)を介して互いに連結されている。リンク41cの他端(即ち、左前脚41の先端であり、図3に点Ptとして示される)は、地面(又は、床面)と接するようになっている。
【0026】
基部41dは、上面視において胴体3から左方且つ前方に延在している。第1関節の回転軸とX軸とのなす角度は60°であり、第1関節の回転軸とZ軸とのなす角度は45°である。第1関節の回転軸と、第2関節の回転軸と、は互いに垂直である。第2関節の回転軸と、第3関節の回転軸と、は互いに平行である。
【0027】
第1関節の回転角度(即ち、基部41dに対するリンク41aの回転角度)である回転角度αは、モータ61aが発生させるトルクによって制御される。第2関節の回転角度(即ち、リンク41aに対するリンク41bの回転角度)である回転角度βは、モータ61bが発生させるトルクによって制御される。第3関節の回転角度(即ち、リンク41bに対するリンク41cの回転角度)である回転角度γは、モータ61cが発生させるトルクによって制御される。以下、回転角度α、回転角度β及び回転角度γの組合せは、回転角度L(α,β,γ)とも表記される。
【0028】
角度センサ62aは、左前脚41の回転角度αを検出し、回転角度αを表す信号を制御装置5へ出力する。角度センサ62bは、左前脚41の回転角度βを検出し、回転角度βを表す信号を制御装置5へ出力する。角度センサ62cは、左前脚41の回転角度γを検出し、回転角度γを表す信号を制御装置5へ出力する。制御装置5は、回転角度L及びリンク41a~リンク41cそれぞれの長さ等に基づき、周知の方法により左前脚41の脚先(先端位置)の胴体座標値である脚先位置Fp(xf,yf,zf)を取得(算出)する。
【0029】
ロボット2が「基準姿勢」であるときの左前脚41の脚先が到達可能な地面上の領域(即ち、左前脚41の先端の移動先となり得る範囲)は、図4の領域R1により簡略化して示されている。基準姿勢は、ロボット2が平坦で水平な地面を歩行していて、且つ胴体3が地面に対して水平であって地面と胴体重心Gbとの距離が所定の基準距離Dsである状態である。胴体重心Gbは、胴体3の質量重心(質量中心)であり、本実施形態において、胴体3の幾何学的中心(即ち、胴体座標系における原点O)に略等しい。図1及び図4に示されるロボット2は、基準姿勢にある。
【0030】
左中脚42、左後脚43、右前脚44、右中脚45及び右後脚46のそれぞれは、左前脚41と同様の構成を有している。左中脚42は、リンク42a~42cを含んでいる。左中脚42の基部42dは、上面視において真横(即ち、Y軸と平行な方向)に延在している。左中脚42の第1関節の回転軸とZ軸とのなす角度は45°である。
【0031】
制御装置5は、左中脚42が備えるモータ61d~61fを制御することにより、左中脚42の回転角度L(α,β,γ)を制御する。制御装置5は、角度センサ62d~62fによって検出された回転角度L(α,β,γ)に基づいて左中脚42の脚先位置Fp(xf,yf,zf)を取得する。ロボット2が基準姿勢にある場合における左中脚42の脚先の地面上の到達可能領域は、図4の領域R2により簡略化して示されている。
【0032】
左後脚43は、リンク43a~43cを含んでいる。左後脚43の基部43dは、上面視において左方且つ後方に延在している。左後脚43の第1関節の回転軸とX軸とのなす角度は60°であり、第1関節の回転軸とZ軸とのなす角度は45°である。
【0033】
制御装置5は、左後脚43が備えるモータ61g~61iを制御することにより、左後脚43の回転角度L(α,β,γ)を制御する。制御装置5は、角度センサ62g~62iによって検出された回転角度L(α,β,γ)に基づいて左後脚43の脚先位置Fp(xf,yf,zf)を取得する。ロボット2が基準姿勢にある場合における左後脚43の脚先の地面上の到達可能領域は、図4の領域R3により簡略化して示されている。
【0034】
右前脚44は、リンク44a~44cを含んでいる。右前脚44の基部は、上面視において右方且つ前方に延在している。右前脚44の第1関節の回転軸とX軸とのなす角度は60°であり、第1関節の回転軸とZ軸とのなす角度は45°である。
【0035】
制御装置5は、右前脚44が備えるモータ61j~61k及びモータ61mを制御することにより、右前脚44の回転角度L(α,β,γ)を制御する。制御装置5は、角度センサ62j~62k及び角度センサ62mによって検出された回転角度L(α,β,γ)に基づいて右前脚44の脚先位置Fp(xf,yf,zf)を取得する。ロボット2が基準姿勢にある場合における右前脚44の脚先の地面上の到達可能領域は、図4の領域R4により簡略化して示されている。
【0036】
右中脚45は、リンク45a~45cを含んでいる。右中脚45の基部は、上面視において真横(即ち、Y軸と平行な方向)に延在している。右中脚45の第1関節の回転軸とZ軸とのなす角度は45°である。
【0037】
制御装置5は、右中脚45が備えるモータ61n及びモータ61p~61qを制御することにより、右中脚45の回転角度L(α,β,γ)を制御する。制御装置5は、角度センサ62n及び角度センサ62p~62qによって検出された回転角度L(α,β,γ)に基づいて右中脚45の脚先位置Fp(xf,yf,zf)を取得する。ロボット2が基準姿勢にある場合における右中脚45の脚先の地面上の到達可能領域は、図4の領域R5により簡略化して示されている。
【0038】
右後脚46は、リンク46a~46cを含んでいる。右後脚46の基部は、上面視において右方且つ後方に延在している。右後脚46の第1関節の回転軸とX軸とのなす角度は60°であり、第1関節の回転軸とZ軸とのなす角度は45°である。
【0039】
制御装置5は、右後脚46が備えるモータ61r~61tを制御することにより、右後脚46の回転角度L(α,β,γ)を制御する。制御装置5は、角度センサ62r~62tによって検出された回転角度L(α,β,γ)に基づいて右後脚46の脚先位置Fp(xf,yf,zf)を取得する。ロボット2が基準姿勢にある場合における右後脚46の脚先の地面上の到達可能領域は、図4の領域R6により簡略化して示されている。
【0040】
操作端末7は、操作制御装置71、無線通信装置72、ディスプレイ73及び入力装置74を含んでいる。操作制御装置71は、制御装置5と同様にCPU、RAM及び不揮発性メモリを含む汎用コンピュータによって構成されている。
【0041】
無線通信装置72は、ロボット2に含まれる無線通信装置53とのデータ通信を行う。具体的には、無線通信装置72は、操作制御装置71から入力された情報(データ)を無線通信装置53へ送信する一方、無線通信装置53から受信した情報を操作制御装置71へ出力する。
【0042】
ディスプレイ73に表示される画像は、操作制御装置71によって制御される。入力装置74は、キーボード及びマウスを含んでいる。入力装置74は、操作者が入力装置74に対して行った操作を表す信号を操作制御装置71へ出力する。
【0043】
(歩行時の制御)
ロボット2が歩行しているとき、操作制御装置71は、カメラ51によって撮影された前方画像を制御装置5から無線通信装置72を介して受信し且つディスプレイ73に連続的に表示させる。操作者は、ディスプレイ73に表示された映像(動画像)を見ながらロボット2の進行方向(直進、及び左方又は右方への旋回の何れか)、及びロボット2を旋回させる場合はその旋回半径に相関する値を決定し、入力装置74を操作してそれらの情報を操作制御装置71に入力する。操作制御装置71は、入力された情報を制御装置5へ無線通信装置72を介して送信する。
【0044】
制御装置5は、操作者によって入力(要求)された進行方向へ向けて歩行するように「次接地脚」の目標接地位置を決定する。次接地脚は、左前脚41及び右前脚44の一方であって次に脚先が地面に接触(接地)する脚である。目標接地位置は、脚先が接触する地面上の目標位置である。制御装置5は、その目標接地位置に次接地脚の脚先が接地(到達)するように次接地脚の脚先位置Fp(換言すれば、回転角度L)を制御し、且つ新たな次接地脚(即ち、左前脚41及び右前脚44の他方)の目標接地位置を決定する。
【0045】
加えて、制御装置5は、左前脚41及び右前脚44以外の脚(即ち、左中脚42、左後脚43、右中脚45及び右後脚46であり、以下、「追従脚」とも総称される。)の目標接地位置を「接地点追従法」により決定する。接地点追従法は、追従脚の目標接地位置として、追従脚と胴体3に対して前方に隣接する脚の接地位置の近傍の位置を取得(決定)する方法である。
【0046】
例えば、左中脚42の目標接地位置は、胴体3に対して前方に隣接する左前脚41の接地位置の近傍となる。同様に、右後脚46の目標接地位置は、胴体3に対して前方に隣接する右中脚45の接地位置の近傍となる。従って、左前脚41及び右前脚44の目標接地位置がロボット2の進行方向に応じて決定されると、追従脚の目標接地位置もそれに倣って定められる。
【0047】
次接地脚である左前脚41の脚先が接地して接地脚となり、更に左前脚41の脚先を(他の接地脚と共に)胴体3に対して後方へ移動させることによりロボット2が前進(歩行)する。次いで、左前脚41の脚先が地面から離れて遊脚となると、左中脚42の脚先が(左前脚41の脚先が接地していた地面上の位置の近傍に)接地して接地脚となり、更に左中脚42の脚先が胴体3に対して後方に移動させることによりロボット2が前進する。
【0048】
換言すれば、制御装置5は、目標接地位置を決定し、目標接地位置に脚先を接地させ、更に接地した脚先を胴体3に対して後方に移動させる処理を、左前脚41~右後脚46のそれぞれに対して繰り返し実行し、その結果、ロボット2が歩行する。
【0049】
ロボット2の歩行制御についてより具体的に述べると、制御装置5は、胴体重心Gbの目標位置である目標重心位置Gt(xg,yg,zg)を所定の制御周期Δtが経過する毎に取得する。目標重心位置Gtは、次接地脚の脚先が目標接地位置に到達した時点における胴体重心Gbの胴体座標の目標値である。
【0050】
目標重心位置Gtが取得されると、制御装置5は、現時点から制御周期Δtが経過するまで期間における胴体3の移動量の目標値である目標胴体移動値ΔC(xc,yc,zc,Δφ,Δψ,Δθ)を取得する。目標胴体移動値ΔCは、制御周期Δt経過後の胴体重心Gbの胴体座標(xc,yc,zc)並びに制御周期Δt経過後の胴体3のX軸周りの回転角度Δφ、Y軸周りの回転角度Δψ、及びZ軸周りの回転角度Δθの組合せによって表される。
【0051】
制御装置5は、胴体重心Gbが目標重心位置Gtに接近し且つロボット2が基準姿勢に近づくように目標胴体移動値ΔCを取得する。この際、制御装置5は、ロボット2(具体的には、胴体3)の前進速度(歩行速度)が目標歩行速度Stと等しくなり且つΔφ、Δψ及びΔθのそれぞれの大きさが所定の回転上限値を超えないように目標胴体移動値ΔCを取得する。
【0052】
目標胴体移動値ΔCが取得されると、制御装置5は、接地脚のそれぞれの脚先移動値Fd(xd,yd,zd)を取得する。脚先移動値Fdは、胴体3が目標胴体移動値ΔCによって表される移動及び回転をした時点における接地脚の脚先の胴体座標値である。接地脚のそれぞれの脚先移動値Fdが取得されると、制御装置5は、制御周期Δt経過後の脚先位置Fpが脚先移動値Fdと等しくなるように接地脚の回転角度Lを制御する。
【0053】
接地脚の回転角度Lを制御しながら制御周期Δtが経過すると、制御装置5は、制御周期Δtが経過する間の胴体3の実際の移動量を胴体移動値Mに基づいて取得する。次いで、制御装置5は、胴体3の実際の移動量と目標胴体移動値ΔCとの差分に基づいて、新たな目標重心位置Gtを取得する。
【0054】
(始動時の制御)
ロボット2が作動を停止しているときにスイッチ54が押下されると、制御装置5は、ロボット2を「待機姿勢」に遷移させた後、基準姿勢に遷移させる。待機姿勢は、脚4のそれぞれの回転角度Lが待機角度Lw(αw,βw,γw)となっている状態である。待機角度Lwは、脚4のそれぞれに対して予め定められている。その後、制御装置5は、操作者による操作端末7への操作に応じてロボット2を歩行させる。
【0055】
図3には、左前脚41の回転角度Lが待機角度Lwとなっている様子が破線により示されている。図3から理解されるように、左前脚41の回転角度Lが待機角度Lwとなっているとき、左前脚41の先端(即ち、点Pt)が基部41dよりも上方に位置している。同様に、左前脚41以外の脚4の回転角度Lが待機角度Lwとなっているとき、脚先が基部よりも上方にある。換言すれば、ロボット2が待機姿勢にあるとき、胴体3(より具体的には、脚4のそれぞれの基部)が地面に接している。
【0056】
次いで、制御装置5は、ロボット2を基準姿勢に遷移させる。具体的には、制御装置5は、脚4のそれぞれの回転角度Lを基準角度Ls(αs,βs,γs)とする。基準角度Lsは、脚4のそれぞれに対して予め定められている。脚4のそれぞれの回転角度Lが待機角度Lwから基準角度Lsとなると、胴体3が地面から離れてロボット2が基準姿勢となる。
【0057】
(重複判定処理)
ところで、ロボット2による歩行の開始に先立ち、操作者が地面上の所望の位置にロボット2を配置する場合がある。この際、脚4の1つが他の1つと重なっていると(典型的には、交差していると)、一方の脚4が他方の脚4の変位の妨げとなり、ロボット2が基準姿勢に遷移できずに転倒する可能性がある。或いは、脚4の1つが胴体3と重なっていると(典型的には、胴体3の下方に脚4の1つがあると)、胴体3又は地面がその脚4の変位の妨げとなる可能性がある。
【0058】
そこで、制御装置5は、「判定開始条件」が成立したとき「重複判定処理」を実行する。重複判定処理は、後述されるように、互いに重なる脚4を抽出する処理、及び胴体3と重なる脚4を抽出する処理を含んでいる。
【0059】
判定開始条件は、以下の(条件a)~(条件c)の何れか1つが成立したときに成立する。
(条件a)ロボット2が作動を停止しているときにスイッチ54が押下された
(条件b)ロボット2が転倒した
(条件c)脚4の何れかの変位が妨げられている
【0060】
制御装置5は、ロボット2の歩行中にIMU52によって検出されたX軸加速度Ax、Y軸加速度Ay、Z軸加速度Az、X軸角速度ωx、Y軸角速度ωy及びZ軸角速度ωzの何れかの大きさが所定の閾値を超えると、(条件b)が成立したと判定する。加えて、制御装置5は、ロボット2の歩行中にモータ61a~61tの何れかを制御したとき、対応する角度センサ62a~62tの1つの予想される変化量と実際の変化量との差分の大きさが所定の閾値よりも小さい状態が所定時間継続すると、(条件c)が成立したと判定する。
【0061】
(重複判定処理-互いに重なる脚に関する処理)
制御装置5は、「脚交差条件」が成立していると、互いに交差した(従って、互いに重なる)脚4があると判定する。脚交差条件は、脚4の1つ(便宜上、「第1マニプレータ」とも称呼される)と、脚4の他の1つ(便宜上、「第2マニプレータ」とも称呼される)と、を「仮想平面」に投影(正射影)すると、第1マニプレータと第2マニプレータとが仮想平面にて重なっている可能性が高い場合に成立する条件である。仮想平面は、胴体3に基づいて定まる平面であり、本実施形態において、Z軸と直交する(即ち、X軸及びY軸のそれぞれと平行な)平面である。
【0062】
より具体的に述べると、制御装置5は、仮想平面に投影された第1マニプレータに係る「第1線分」と第2マニプレータに係る「第2線分」とが互いに交差していると、脚交差条件が成立していると判定する。第1線分は、第1マニプレータを構成するリンクの1つ(便宜上、「第1リンク」とも称呼される)を表す線分である。第2線分は、第2マニプレータを構成するリンクの1つ(便宜上、「第2リンク」とも称呼される)を表す線分である。
【0063】
図5では、左前脚41~左後脚43を構成するリンク及び基部のそれぞれが互いに連結された線分によって表されている。なお、図5及び図6において、右前脚44~右後脚46に係る各線分の図示は省略されている。加えて、各線分における胴体3に隠れた区間は破線によって示されている。
【0064】
図5の例では、左中脚42(第1マニプレータ)と左後脚43(第2マニプレータ)とが、重なっている。より具体的に述べると、図6に示されるように、仮想平面に投射されると、左中脚42のリンク42b(第1リンク)と、左後脚43のリンク43b(第2リンク)と、が仮想平面における点Pc1にて互いに交差している。即ち、この場合、脚交差条件が成立している。
【0065】
このように、制御装置5は、第1マニプレータ及び第2マニプレータのそれぞれを構成する3つのリンクを互いに連結された線分で表し且つこれらの線分を仮想平面に仮想的に投影する。次いで、制御装置5は、第1マニプレータに係る線分の1つと、第2マニプレータに係る線分の1つと、が仮想平面にて互いに交差していれば(即ち、脚交差条件が成立していれば)、第1マニプレータと第2マニプレータとが互いに重なっていると判定する。
【0066】
例えば、第1リンクが左中脚42のリンク42bであれば、第1線分は、リンク42bの軸線と略等しく且つ左中脚42の第2関節から第3関節へ延びる線分である。制御装置5は、左中脚42の回転角度Lに基づいて左中脚42の第2関節及び第3関節の胴体座標値を取得し、取得された2つの胴体座標値に基づいてリンク42bを表す線分(即ち、本例における第1線分)を特定する。
【0067】
このように、制御装置5は、第1線分及び第2線分(並びに、後述される第3線分)を、対応する脚4の回転角度Lに基づいて取得する。即ち、制御装置5は、角度センサ62a~62tの中の第1マニプレータ及び第2マニプレータに対応するセンサ(便宜上、「第1センサ」及び「第2センサ」とも称呼される)によって取得された回転角度Lに基づいて、第1線分及び第2線分のそれぞれの一端及び他端を特定する。
【0068】
制御装置5は、脚交差条件が成立している場合、第1マニプレータの及び第2マニプレータの一方を「上位脚」として抽出する。上位脚は、互いに重なる第1マニプレータ及び第2マニプレータにおける対応位置(即ち、仮想平面にて重なっている箇所、重複位置)が胴体3に対して高い方の脚である。
【0069】
加えて、制御装置5は、上位脚を変位させた後、他の脚4(即ち、第1マニプレータの及び第2マニプレータの他方であり、「非上位脚」とも称呼される)を変位させる。即ち、制御装置5は、モータ61a~61tの中の第1マニプレータ及び第2マニプレータのそれぞれに対応するモータ(便宜上、「第1アクチュエータ」及び「第2アクチュエータ」とも称呼される)を制御する。より具体的には、非上位脚の変位に際して上位脚が妨げとなる可能性が高いので、制御装置5は、上位脚を非上位脚よりも先に変位させる。
【0070】
上位脚を抽出するため、制御装置5は、第1線分及び第2線分に係る最短距離ベクトルを取得する。最短距離ベクトルを取得するため、制御装置5は、第1線分を含む直線(第1直線)と、第2線分を含む直線(第2直線)と、の共通垂線を特定する。図5の例におけるリンク42b(第1線分)及びリンク43b(第2線分)を抽出した図7では、リンク42bを含む直線L42b、リンク43bを含む直線L43b、及び直線L42b及び直線L43bの共通垂線Lfが示されている。
【0071】
図7において、直線L42bにおけるリンク42bと重複する区間(即ち、点Pd1から点Pd2までの区間)は実線により示され、リンク42bと重複しない区間は一点鎖線により示されている。直線L43bにおけるリンク43bと重複する区間(即ち、点Pe1から点Pe2までの区間)は実線により示され、リンク43bと重複しない区間は一点鎖線により示されている。
【0072】
共通垂線Lfの直線L42b(即ち、第1リンクを含む直線)への足は、点Pf1である。共通垂線Lfの直線L43b(即ち、第2リンクを含む直線)への足は、点Pf2である。図7から理解されるように、点Pf1は、直線L42bにおけるリンク42bに対応する区間に含まれている。点Pf2は、直線L43bにおけるリンク43bに対応する区間には含まれていない。
【0073】
本例において、制御装置5は、点Pf1が始点であり且つ点Pf2が終点であるベクトルを最短距離ベクトルとして取得する。即ち、制御装置5は、共通垂線の第1リンクへの足の位置が始点となり且つ第2リンクへの足の位置が終点となるように最短距離ベクトルを取得する。
【0074】
加えて、制御装置5は、取得された最短距離ベクトルが胴体3に対して下方へ向いていれば、第1マニプレータ(即ち、第1リンクに係る脚4)を上位脚として抽出する。一方、制御装置5は、最短距離ベクトルが胴体3に対して上方へ向いていれば、第2マニプレータ(即ち、第2リンクに係る脚4)を上位脚として抽出する。
【0075】
図7の例では、点Pf1の胴体座標値は(x1,y1,z1)であり、点Pf2の胴体座標値は(x2,y2,z2)である。従って、最短距離ベクトルの各成分は(x2-x1,y2-y1,z2-z1)と表される。本例において、点Pf1のZ軸座標値z1は、点Pf2のZ軸座標値z2よりも小さい(即ち、z2-z1>0)。従って、最短距離ベクトルは胴体3に対して上方へ向いている。そのため、制御装置5は、リンク43b(第2リンク)に係る左後脚43を上位脚として抽出する。
【0076】
(重複判定処理-胴体と重なる脚に関する処理)
制御装置5は、「胴体重複条件」が成立している場合に胴体3と重なる脚4があると判定する。胴体重複条件は、脚4の1つ(便宜上、「第3マニプレータ」とも称呼される)と胴体3とを仮想平面に投影すると、胴体3と第3マニプレータとが仮想平面にて重なっている可能性が高い場合に成立する条件である。
【0077】
制御装置5は、仮想平面に投影された胴体3の外形を表す輪郭線と、第3マニプレータに含まれるリンクを表す「第3線分」と、が仮想平面にて互いに交差していると、胴体重複条件が成立していると判定する。制御装置5は、胴体重複条件が成立していれば、胴体3と重なっている脚4(即ち、第3マニプレータ)を「胴体重複脚」として抽出する。
【0078】
図5の例では、左前脚41(第3マニプレータ)のリンク41c(便宜上、「第3リンク」とも称呼される)が胴体3と重なっている。より具体的には、図6において、胴体3の輪郭線とリンク41cを表す線分(即ち、第3線分)とが点Pc2にて互いに交差している。従って、この場合、胴体重複条件が成立しており、制御装置5は、左前脚41を胴体重複脚として抽出する。
【0079】
制御装置5は、胴体重複条件が成立していると、胴体重複脚以外の脚4を変位させた後、胴体重複脚を変位させる。より具体的には、胴体重複脚の変位に際して胴体3又は地面が妨げとなる可能性が高いので、制御装置5は、他の脚4を変位させた後、胴体重複脚を変位させる。
【0080】
なお、角度センサ62a~62tの中の第3マニプレータに対応するセンサは、便宜上、「第3センサ」とも称呼される。制御装置5は、第3センサによって検出された第3マニプレータの回転角度Lに基づいて第3線分の一端及び他端を特定する。モータ61a~61tの中の第3マニプレータに対応するモータは、便宜上、「第3アクチュエータ」とも称呼される。
【0081】
(具体的作動)
制御装置5の具体的作動について説明する。制御装置5のCPU(以下、単に「CPU」とも称呼される)は、上述した判定開始条件が成立すると、図8にフローチャートにより示された「重複判定処理ルーチン」を実行する。図8のルーチンの処理が完了すると、CPUは、図9にフローチャートにより示された「基準姿勢移行処理ルーチン」を実行する。
【0082】
判定開始条件が成立していると、CPUは、図8のステップ800から処理を開始してステップ805に進み、脚4の1つを「対象脚」を選択する。対象脚は、他の脚と重なっているか否か、及び胴体重複脚であるか否かが判定される脚である。
【0083】
次いで、CPUは、ステップ810に進み、対象脚から「対象リンク」を選択する。具体的には、CPUは、対象脚を構成する3つリンクの中の1つを対象リンクとして選択する。
【0084】
更に、CPUは、ステップ815に進み、対象リンクが胴体3と重複しているか否かを判定する。具体的には、CPUは、対象リンクを表す線分の一端及び他端の胴体座標値を、対象脚の回転角度Lに基づいて特定する。加えて、CPUは、特定された対象リンクを表す線分と、胴体3の外形線(具体的には、図4及び図6に示される上面視における胴体3の輪郭線)と、を仮想平面に仮想的に投影する。
【0085】
対象リンクを表す線分と胴体3の外形線とが仮想平面にて互いに交差していれば(即ち、脚交差条件が成立していれば)、CPUは、ステップ815にて「Yes」と判定してステップ820に進み、対象脚(第3マニプレータ)を胴体重複脚として制御装置5のRAMに記憶する。次いで、CPUは、ステップ825に進む。
【0086】
一方、対象リンクを表す線分が胴体3の外形と仮想平面にて交差していなければ、CPUは、ステップ815にて「No」と判定してステップ825に直接進む。
【0087】
ステップ825にてCPUは、脚4の1つを「参照脚」として選択する。参照脚は、対象脚と重なっているか否かが判定される脚である。
【0088】
具体的には、CPUは、対象脚の胴体3に対して左右反対側にある脚は、ロボット2の構造上(即ち、脚4のそれぞれの可動域の制約により)重ならないので、参照脚として選択しない。例えば、対象脚が左前脚41である場合、CPUは、左前脚41の胴体3に対して左右反対側にある右前脚44~右後脚46を参照脚として選択しない。
【0089】
加えて、CPUは、重なっているか否かが既に判定された脚4の中の2つの組合せとなるような脚は、参照脚として選択しない。例えば、対象脚として左前脚41が選択され且つ参照脚として左中脚42が選択された後、対象脚として左中脚42が選択されている場合、CPUは、左前脚41を参照脚として選択しない。
【0090】
次いで、CPUは、ステップ830に進み、参照脚から「参照リンク」を選択する。即ち、CPUは、参照脚を構成する3つのリンクの中の1つを選択する。
【0091】
更に、CPUは、ステップ835に進み、対象リンク及び参照リンクが互いに重複しているか否かを判定する。即ち、CPUは、対象リンクを表す線分(即ち、第1線分)及び参照リンクを表す線分(即ち、第2線分)を仮想平面に投影すると互いに交差しているか否か(脚交差条件が成立しているか否か)を判定する。
【0092】
具体的には、CPUは、第1線分を含む第1直線及び第2線分を含む第2直線のそれぞれを仮想平面に投影して得られる2つの直線の交点を算出する。その交点が、第1直線における第1線分に対応する区間、及び第2直線における第2線分に対応する区間のそれぞれに含まれている場合、脚交差条件が成立しているので、CPUは、対象リンク(第1マニプレータ)及び参照リンク(第2マニプレータ)が互いに重複していると判定する。
【0093】
対象リンク及び参照リンクが互いに重複していれば(即ち、脚交差条件が成立していれば)、CPUは、ステップ835にて「Yes」と判定してステップ840に進み、対象脚及び参照脚から上位脚を抽出し、抽出された上位脚の情報を制御装置5のRAMに記憶する。
【0094】
具体的には、CPUは、対象リンクに係る第1直線と参照リンクに係る第2直線との共通垂線を特定する。加えて、CPUは、特定された共通垂線と第1直線との交点(即ち、垂線の足の一方)から共通垂線と第2直線との交点(即ち、垂線の足の他方)へ延びる最短距離ベクトルを取得する。最短距離ベクトルのZ軸成分が0以上の値であれば、CPUは、参照脚を上位脚として抽出する。一方、最短距離ベクトルのZ軸成分が負の値であれば、CPUは、対象脚を上位脚として抽出する。次いで、CPUは、ステップ845に進む。
【0095】
一方、対象リンク及び参照リンクが互いに重複していなければ、CPUは、ステップ835にて「No」と判定してステップ845に直接進む。
【0096】
ステップ845にてCPUは、未処理の参照リンクが存在しているか否かを判定する。即ち、CPUは、参照脚を構成する3つのリンクの中で、参照リンクとして未だ選択されていないリンクがあるか否かを判定する。未処理の参照リンクが存在していれば、CPUは、ステップ845にて「Yes」と判定してステップ830に進み、参照脚を構成する3つのリンクの中から未処理のリンクを新たに選択する。
【0097】
未処理の参照リンクが存在していなければ、CPUは、ステップ845にて「No」と判定してステップ850に進み、未処理の参照脚が存在しているか否かを判定する。即ち、CPUは、脚4の中で、対象脚と重複する可能性があり且つ対象脚との重複の有無が未だ判定されていない脚があるか否かを判定する。未処理の参照脚が存在していれば、CPUは、ステップ850にて「Yes」と判定してステップ825に進み、脚4の中から未処理の参照脚を新たに選択する。
【0098】
未処理の参照脚が存在していなければ、CPUは、ステップ850にて「No」と判定してステップ855に進み、未処理の対象リンクが存在しているか否かを判定する。即ち、CPUは、対象脚を構成する3つのリンクの中で、対象リンクとして未だ選択されていないリンクがあるか否かを判定する。未処理の対象リンクが存在していれば、CPUは、ステップ855にて「Yes」と判定してステップ810に進み、対象脚を構成する3つのリンクの中から未処理のリンクを新たに選択する。
【0099】
未処理の対象リンクが存在していなければ、CPUは、ステップ855にて「No」と判定してステップ860に進み、未処理の対象脚が存在しているか否かを判定する。即ち、CPUは、脚4の中で、重複の有無が判定されていない脚があるか否かを判定する。例えば、脚4の中から5つの脚が既に対象脚として既に選択されていれば、脚4の全てについて重複の有無が判定されているので、未処理の対象脚は存在していない。
【0100】
未処理の対象脚が存在していれば、CPUは、ステップ860にて「Yes」と判定してステップ805に進み、脚4の中から未処理の対象脚を新たに選択する。一方、未処理の対象脚が存在していなければ、CPUは、ステップ860にて「No」と判定してステップ895に進み、本ルーチンの処理を終了する。
【0101】
次に、図9の基準姿勢移行処理ルーチンについて説明する。CPUは、図8の重複判定処理ルーチンの処理を終了すると(即ち、図8のステップ895に進むと)、図9のステップ900から処理を開始してステップ905に進み、上位脚が抽出されているか否かを判定する。
【0102】
具体的には、CPUは、図8の重複判定処理ルーチンの処理が前回実行されたとき(即ち、図8のルーチンが最後に実行されたとき)にステップ840の処理によってRAMに記憶された上位脚の情報が存在しているか否かを判定する。上位脚が抽出されていれば、CPUは、ステップ905にて「Yes」と判定してステップ910に進み、上位脚のそれぞれの上方脚数Nuを取得する。上方脚数Nuは、上位脚の更に上方にある脚の数である。
【0103】
例えば、右前脚44(第1マニプレータ)及び右中脚45(第2マニプレータ)が互いに重なり且つ右中脚45が上位脚であり、更に、右中脚45(第1マニプレータ)及び右後脚46(第2マニプレータ)が互いに重なり且つ右後脚46が上位脚である場合、右後脚46よりも上方にある脚は存在していない。従って、右後脚46の上方脚数Nuは「0」となる。右中脚45の上方脚数Nuは、右中脚45の更に上方に右後脚46があるので、「1」となる。即ち、ある脚と重複しているために上位脚(第1上位脚)として抽出された脚が、更に別の脚と重複しており且つその別の脚が上位脚(第2上位脚)として抽出されていれば、第1上位脚の上方脚数Nuは「1」となり、第2上位脚の上方脚数Nuは「0」となる。
【0104】
一方、右前脚44及び右中脚45が互いに重なり且つ右前脚44が上位脚であり、更に、右中脚45及び右後脚46が互いに重なり且つ右後脚46が上位脚である場合、右前脚44~右後脚46の上方脚数Nuは何れも「0」となる。換言すれば、脚4の中の3つが順に重なっていた場合に、上方脚数Nuが「1」となる上位脚(即ち、脚4の1つに対して上位脚であり且つ脚4の他の1つに対して非上位脚である脚)が存在する。
【0105】
次いで、CPUは、ステップ915に進み、上方脚数Nuが「1」である上位脚が存在しているか否かを判定する。上方脚数Nuが「1」である上位脚が存在していれば(即ち、脚4の中の3つが順に重なっていれば)、CPUは、ステップ915にて「Yes」と判定してステップ920に進み、上方脚数Nuが「0」である上位脚の回転角度Lが待機角度Lwとなるようにその上位脚に係るアクチュエータ(即ち、モータ61a~61tの何れか)を制御する。上方脚数Nuが「1」である上位脚が2つ存在していれば(即ち、左前脚41~左後脚43の1つと、右前脚44~右後脚46の1つと、の上方脚数Nuが何れも「1」であれば、CPUは、上方脚数Nuが「0」である2つの上位脚(即ち、左前脚41~左後脚43の他の1つ、及び右前脚44~右後脚46の他の1つ)のそれぞれに係るアクチュエータを制御する。
【0106】
次いで、CPUは、ステップ925に進み、上位脚の回転角度Lが待機角度Lwとなるように上位脚に係るアクチュエータを制御する。従って、ステップ925の処理が実行されると、(上方脚数Nuの値に依らず)上位脚として抽出された全ての脚の回転角度Lが待機角度Lwと略等しくなっている。
【0107】
更に、CPUは、ステップ930に進み、胴体重複脚が抽出されているか否かを判定する。具体的には、CPUは、図8の重複判定処理ルーチンが前回実行されたときにステップ820の処理によってRAMに記憶された胴体重複脚の情報が存在しているか否かを判定する。
【0108】
胴体重複脚が抽出されていなければ、CPUは、ステップ930にて「No」と判定して以下に説明するステップ950及びステップ955の処理を順に実行する。次いで、CPUは、ステップ995に進み、本ルーチンの処理を終了する。
【0109】
ステップ950:CPUは、脚4の全ての回転角度Lが待機角度Lwとなるようにアクチュエータを制御する。従って、ステップ950の処理が実行されると、(上位脚の有無及び上方脚数Nuの値に依らず)脚4の全ての回転角度Lが待機角度Lwと略等しくなっている。換言すれば、ロボット2が待機姿勢となり、脚4のそれぞれの基部の下面が地面に接している。
【0110】
ステップ955:CPUは、脚4の全ての回転角度Lが基準角度Lsとなるようにアクチュエータを制御する。従って、ステップ955の処理が実行されると、脚4の全ての回転角度Lが基準角度Lsと略等しくなり、ロボット2が基準姿勢となっている。
【0111】
一方、胴体重複脚が抽出されていれば、CPUは、ステップ930にて「Yes」と判定して以下に説明するステップ935乃至ステップ945の処理を順に実行する。次いで、CPUは、ステップ995に進む。
【0112】
ステップ935:CPUは、胴体重複脚以外の脚の回転角度Lが待機角度Lwとなるように対応するアクチュエータを制御する。従って、ステップ935の処理が実行されると、(上位脚の有無及び上方脚数Nuの値に依らず)胴体重複脚以外の全ての脚の回転角度Lが待機角度Lwと略等しくなっている。
【0113】
ステップ940:CPUは、胴体重複脚以外の脚の回転角度Lが基準角度Lsとなるように胴体重複脚に係るアクチュエータを制御する。従って、ステップ940の処理が実行されると、胴体重複脚以外の脚によって胴体3が地面から離れている可能性が高い。換言すれば、胴体重複脚の変位が胴体3又は地面によって妨げられる可能性が低くなっている。
【0114】
ステップ945:CPUは、胴体重複脚の回転角度Lが基準角度Lsとなるようにアクチュエータを制御する。従って、ステップ945の処理が実行されると、ロボット2が基準姿勢となっている。
【0115】
なお、ステップ905の判定条件が成立していなければ(即ち、図8の重複判定処理ルーチンの処理によって上位脚が抽出されていなければ)、CPUは、ステップ905にて「No」と判定してステップ930に直接進む。加えて、ステップ915の判定条件が成立していなければ(即ち、上方脚数Nuが「1」である上位脚が存在していなければ)、CPUは、ステップ915にて「No」と判定してステップ925に直接進む。
【0116】
以上、説明したように、判定開始条件が成立したとき、脚交差条件が更に成立していれば、制御装置5は、上位脚の回転角度Lを待機角度Lwとした後、非上位脚を含む他の脚4の回転角度Lを待機角度Lwとする。即ち、制御装置5は、上位脚が上位脚に係る所定状態となるように変位させた後、非上位脚を含む他の脚4のそれぞれを、それぞれの所定状態となるように変位させる。
【0117】
この際、制御装置5は、それらの脚における交差位置(重複部分)の胴体3に対して上方にある脚を上位脚として抽出する。具体的には、制御装置5は、互いに重なっている脚4の中の2つにおける対応位置の仮想平面に対する高さ(即ち、胴体座標系におけるZ軸座標として表される胴体3に対する高さ)の大小関係に基づいて上位脚を抽出する。換言すれば、制御装置5は、互いに重なる脚4の中の2つにおける重複位置の何れが仮想平面と直交する特定方向(本実施形態において、Z軸方向)側にあるかを判定し、特定方向側にある重複位置に係る脚(即ち、重複位置のZ座標値が大きい方の脚)を上位脚として抽出する。
【0118】
仮に、非上位脚を上位脚よりも先に変位させると仮定する。例えば、非上位脚の回転角度Lを待機角度Lwに一致させようとすると、多くの場合、非上位脚の各リンクの一部又は全部が胴体3に対して上方に変位する。その結果、非上位脚のリンクが(非上位脚よりも上方にある)上位脚のリンクに接触して非上位脚の変位が妨げられる可能性が高い。一方、非上位脚の各リンクの一部又は全部を胴体3に対して下方に変位させようとすると、非上位脚の変位が地面によって妨げられる可能性が高い。
【0119】
そのため、制御装置5は、脚4の中の2つが互いに重なっていると判定された場合、非上位脚よりも先に上位脚を変位させる。従って、ロボット制御システム1によれば、脚4の中の2つ(又は、2つ以上)が互いに重なっている場合であっても脚4の変位を円滑に行える可能性が高くなる。
【0120】
加えて、制御装置5は、脚交差条件が成立していれば、脚4の中の2つが互いに重なっていると判定する。即ち、制御装置5は、脚4のそれぞれを構成するリンクのそれぞれを表す線分(即ち、第1線分及び第2線分)が仮想平面にて交差しているか否かに基づいて脚4の中の2つが互いに重なっているか否かを判定する。そのため、制御装置5は、演算負荷が過大となることを回避しながら脚4が重なっているか否かを容易に判定することができる。
【0121】
更に、制御装置5は、胴体重複脚が存在していれば、胴体重複脚以外の脚4を変位させた後(即ち、回転角度Lを待機角度Lwとし、更に基準角度Lsとした後)、胴体重複脚を変位させる。そのため、胴体3又は地面が胴体重複脚の変位の妨げとなる可能性が低くなる。
【0122】
以上、本発明の実施形態を上記の構造を参照して説明したが、本発明の目的を逸脱せずに多くの交代、改良、変更が可能である。従って本発明の形態は、添付された請求項の精神と目的を逸脱しない全ての交代、改良、変更を含み得る。本発明の形態は、前記特別な構造に限定されず、例えば下記のような変更が可能である。
【0123】
制御装置5は、脚4のそれぞれが備えるリンクのそれぞれを表す線分(即ち、第1線分及び第2線分)が仮想平面にて交差しているか否かに基づいて脚4が交差しているか否かを判定していた。これに代わり、制御装置5は、脚4のリンクのそれぞれを表す(始点と終点を有する)曲線が仮想平面にて交差しているか否かに基づいて脚4が交差しているか否かを判定しても良い。この場合、リンクを表す曲線は、そのリンクの形状(例えば、リンクに含まれる湾曲部の位置)に基づいて決定されても良い。
【0124】
或いは、制御装置5は、仮想平面に投影されたリンクの外形(輪郭)が仮想平面にて重なっているか否かに基づいて脚4が交差しているか否かを判定しても良い。この場合、仮想平面に投影されたリンクは、直線又は曲線ではなく、リンクの形状が反映された領域となる。
【0125】
本実施形態における仮想平面はZ軸と直交する平面であった。これに代わり、仮想平面は、Z軸に依らずに特定される平面であっても良い。例えば、仮想平面は、ロボット2が接している地面(又は、地面と平行な平面)であっても良い。この場合、制御装置5は、IMU52によって取得された胴体移動値Mに基づいて胴体3と鉛直下方(即ち、重力方向)とのなす角度(即ち、胴体3の傾斜角度)を取得し、取得された胴体3の傾斜角度に基づいて仮想平面を特定しても良い。
【0126】
制御装置5は、脚交差条件が成立したとき、上位脚を抽出し且つ上位脚を非上位脚よりも先に変位させていた。即ち、制御装置5は、互いに重なった脚4の中の2つにおける対応位置の仮想平面に対する高さ(即ち、重複位置のそれぞれのZ軸座標)が大きい方の脚を他の脚4よりも先に変位させていた。これに代わり、制御装置5は、脚交差条件の成立時、対応位置の仮想平面に対する高さが低い方の脚(下位脚)を他方の脚(非下位脚)よりも先に変位させても良い。
【0127】
例えば、制御装置5は、作動開始時にロボット2を(待機姿勢を経ずに)基準姿勢に直接的に遷移させる場合、脚交差条件が成立していれば、下位脚を非下位脚よりも先に変位させても良い。即ち、制御装置5は、非下位脚の変位が下位脚によって妨げられる可能性が高ければ、下位脚を非下位脚よりも先に変位させても良い。
【0128】
制御装置5は、最短距離ベクトルを用いて第1マニプレータ及び第2マニプレータの一方を上位脚として抽出していたが、他の方法により上位脚を抽出しても良い。例えば、制御装置5は、第1線分と第2線分との仮想平面における交点(図6の例において、点Pc1)に対応する第1線分及び第2線分における座標値を取得し、これらの座標のZ軸座標が大きい線分を上位脚に係る線分として抽出して良い。一例として、制御装置5は、以下のような処理によって上位脚を抽出しても良い。即ち、制御装置5は、第1線分における対応位置の座標(x3,y3,z3a)、及び第2線分における対応位置の座標(x3,y3,z3b)を取得する。次いで、制御装置5は、これらの座標のZ軸座標(即ち、Z軸座標値z3a及びZ軸座標値z3b)が大きい方の線分に係る脚4を、上位脚として抽出する。
【0129】
ロボット2は、6脚歩行ロボットであった。これに代わり、ロボット2が備える脚(マニプレータ)の数は「6」とは異なっていても良く、例えば、ロボット2が8脚ロボットであっても良い。更に、ロボット2が備えるマニプレータの数に依らず、マニプレータの一部又は全部は、対象物の把持及び移動等に用いられるロボットアームであっても良い。或いは、ロボット2が備えるマニプレータの一部又は全部は、一端が接地して歩行に用いられる歩行脚とロボットアームとを兼ねても良い。
【0130】
ロボット2における上方脚数Nuが取り得る値の最大値は「1」であった。換言すれば、脚4の中の4つが順に重なることはなかった。これに代わり、ロボット2は、4つ以上の脚が順に重なり得るように構成されても良い。例えば、脚4のそれぞれは、胴体3の左側及び右側に連結される代わりに、胴体3から放射状に略等角度にて延在するように胴体3に連結されていても良い。或いは、ロボット2は、「6」よりも大きな数のマニプレータを備えていても良い。
【0131】
この場合、制御装置5は、図9の基準姿勢移行処理ルーチンを実行するとき、上方脚数Nuが小さい順に上位脚として抽出された脚のアクチュエータを制御しても良い。例えば、上方脚数Nuの最大値が「2」となっていれば、制御装置5は、以下に記載するような処理を実行しても良い。即ち、制御装置5は、先ず、上方脚数Nuが「0」である脚の回転角度Lが待機角度Lwとなるようにアクチュエータを制御する。次いで、制御装置5は、上方脚数Nuが「1」である脚の回転角度Lが待機角度Lwとなるようにアクチュエータを制御する。更に、制御装置5は、上方脚数Nuが「2」である脚の回転角度Lが待機角度Lwとなるようにアクチュエータを制御する。
【0132】
ロボット2は脚4のそれぞれの変位量(即ち、回転角度L)を取得する角度センサ62a~62tを備えていたが、これらの変位量センサは省略されても良い。例えば、モータ61a~61tのそれぞれが周知のステッピングモータにより構成され、制御装置5は、これらのステッピングモータへ出力した駆動信号に基づいて脚4の変位量を取得しても良い。即ち、この場合、脚4の変位量センサの機能は、制御装置5によって実現される。
【0133】
脚4のそれぞれが備える第1関節~第3関節のそれぞれは、回転関節であった。これに代わり、脚4が備える関節の一部又は全部は、長さが変化し得る直動関節(スライド関節)であっても良い。この場合、変位量センサは、対応する直動関節の長さを取得する。
【0134】
制御装置5は、ロボット2に搭載されていた。これに代わり、制御装置5によって実現される上述した機能の一部又は全部は、操作制御装置71によって実現されても良い。
【符号の説明】
【0135】
1…ロボット制御システム
2…ロボット
3…胴体
4…脚
41…左前脚
41a~41c…リンク
41d…基部
42…左中脚
42a~42c…リンク
42d…基部
43…左後脚
43a~43c…リンク
43d…基部
44…右前脚
44a~44c…リンク
45…右中脚
45a~45c…リンク
46…右後脚
46a~46c…リンク
5…制御装置
51…カメラ
52…IMU
53…無線通信装置
54…スイッチ
61a~61t…モータ
62a~62t…角度センサ
7…操作端末
71…操作制御装置
72…無線通信装置
73…ディスプレイ
74…入力装置
図1
図2
図3
図4
図5
図6
図7
図8
図9