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

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

▶ 東京ロボティクス株式会社の特許一覧

特開2024-150360搬送ロボット、装置、システム、方法及びプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024150360
(43)【公開日】2024-10-23
(54)【発明の名称】搬送ロボット、装置、システム、方法及びプログラム
(51)【国際特許分類】
   B25J 5/00 20060101AFI20241016BHJP
   B65G 1/04 20060101ALI20241016BHJP
【FI】
B25J5/00 A
B65G1/04 555Z
【審査請求】未請求
【請求項の数】21
【出願形態】OL
(21)【出願番号】P 2023063763
(22)【出願日】2023-04-10
(71)【出願人】
【識別番号】315014671
【氏名又は名称】東京ロボティクス株式会社
(74)【代理人】
【識別番号】100098899
【弁理士】
【氏名又は名称】飯塚 信市
(74)【代理人】
【識別番号】100163865
【弁理士】
【氏名又は名称】飯塚 健
(72)【発明者】
【氏名】加藤 健太
(72)【発明者】
【氏名】松尾 雄希
【テーマコード(参考)】
3C707
3F022
【Fターム(参考)】
3C707AS03
3C707BS10
3C707BT14
3C707CS08
3C707FS01
3C707JS03
3C707KS36
3C707KT02
3C707KT04
3C707WA16
3F022FF01
3F022JJ11
3F022KK18
3F022KK20
3F022MM26
3F022MM27
3F022MM35
3F022NN31
3F022NN42
3F022QQ17
(57)【要約】
【課題】物体回転時の干渉リスクを低減する。
【解決手段】搬送ロボット50は、物体60を回転させる駆動関節部J4と、物体60を並進移動させる全方位移動機構及び/又はロボットアーム52と、駆動関節部J4と全方位移動機構及び/又はロボットアーム52とを制御する制御部70と、を備え、制御部70は、物体60が取出され及び/又は収容されるY軸方向と交差するZ軸方向に沿う軸周りに物体60を回転させるよう駆動関節部J4を制御するとともに、軸周りの物体60の回転により物体60の一部が収容空間に存在する状態においてX軸方向に物体を並進移動させるよう並進機構を制御する。
【選択図】図11B
【特許請求の範囲】
【請求項1】
収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送ロボットであって、
前記物体を回転させる回転機構と、
前記物体を並進移動させる並進機構と、
前記回転機構と前記並進機構を制御する制御部と、を備え、
前記制御部は、
前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記回転機構を制御するとともに、
前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記並進機構を制御する、
搬送ロボット。
【請求項2】
前記制御部は、前記物体の回転と同期して前記物体を並進移動させるよう前記回転機構と前記並進機構とを制御する、
請求項1に記載の搬送ロボット。
【請求項3】
前記制御部は、前記物体の回転と前記物体の並進移動とを同期して実行する前又は実行した後に前記物体の回転を停止して前記物体を並進移動させるよう前記回転機構と前記並進機構を制御する、
請求項2に記載の搬送ロボット。
【請求項4】
前記制御部は、
前記物体の並進移動を停止した状態で前記物体の回転を前記回転機構が実行したときに前記物体と前記収容空間を定義する周辺環境物との干渉があるか否かを判定し、
前記干渉がないと判定した場合に前記物体の並進移動を停止して前記物体を回転させるよう前記回転機構と前記並進機構を制御する、
請求項2に記載の搬送ロボット。
【請求項5】
前記並進機構は、前記第2方向に前記物体を移動可能であり、
前記制御部は、前記物体の回転と並進移動とを同期して実行する前に前記物体を前記第2方向に移動させるよう前記並進機構を制御する、
請求項2に記載の搬送ロボット。
【請求項6】
前記制御部は、前記第2方向から前記収容空間を見て前記収容空間の開口縁どうしを結ぶ仮想線分と前記物体の外周面との交点の情報と、前記収容空間の開口縁の情報と、を用いて前記回転機構と前記並進機構を制御する、
請求項2に記載の搬送ロボット。
【請求項7】
前記制御部は、前記交点の一方と、前記収容空間の開口縁と、が一定距離を維持するように前記回転機構と前記並進機構を制御する、
請求項6に記載の搬送ロボット。
【請求項8】
前記制御部は、
前記物体の回転と並進移動とを同期して実行する前又は実行した後に前記物体の回転を停止して前記物体を前記一定距離分、並進移動させるよう前記回転機構と前記並進機構を制御する、
請求項7に記載の搬送ロボット。
【請求項9】
前記制御部は、前記交点どうしの中点と、前記収容空間の開口縁どうしの中点と、を一致させるように前記回転機構と前記並進機構を制御する、
請求項6に記載の搬送ロボット。
【請求項10】
前記制御部は、前記干渉の判定を、前記物体の回転と並進移動とを同期して実行している間に定期的に実行する、
請求項4に記載の搬送ロボット。
【請求項11】
前記制御部は、前記干渉の判定を、前記物体の回転と並進移動とを同期して実行する前に実行する、
請求項4に記載の搬送ロボット。
【請求項12】
前記制御部は、前記物体の寸法に関する情報と、前記物体と前記軸の相対位置姿勢に関する情報と、前記軸と前記収容空間の開口縁との距離に関する情報と、前記収容空間に関する情報と、を用いて前記回転機構と前記並進機構を制御する、
請求項1に記載の搬送ロボット。
【請求項13】
前記物体の寸法に関する情報として、前記物体の最大寸法値を用いる、
請求項12に記載の搬送ロボット。
【請求項14】
前記物体の寸法に関する情報として、実際の前記物体の寸法に安全マージンを加味した値を用いる、
請求項12に記載の搬送ロボット。
【請求項15】
前記相対位置姿勢に関する情報として、前記物体と前記軸の相対位置のばらつき範囲のうち、前記物体の中心が前記軸から最も離れたときの前記軸に対する前記中心の位置姿勢情報を用いる、
請求項12に記載の搬送ロボット。
【請求項16】
前記距離に関する情報として、前記第2方向に前記収容空間を見て前記収容空間の開口縁どうしを結ぶ仮想線分と前記物体の奥側の面とが重なったときの前記軸と前記線分との距離を用いる、
請求項12に記載の搬送ロボット。
【請求項17】
前記収容空間に関する情報は、前記第2方向に前記収容空間を見て前記収容空間の開口縁どうしを結ぶ仮想線分の長さを含み、前記仮想線分の長さとして、前記第3方向における前記物体の寸法を用いる、
請求項12に記載の搬送ロボット。
【請求項18】
収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送装置であって、
前記物体を回転させる回転機構と、
前記物体を並進移動させる並進機構と、
前記回転機構と前記並進機構を制御する制御部と、を備え、
前記制御部は、
前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記回転機構を制御するとともに、
前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記並進機構を制御する、
搬送装置。
【請求項19】
収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送システムであって、
前記物体を回転させる回転機構と、
前記物体を並進移動させる並進機構と、
前記回転機構と前記並進機構を制御する制御部と、を備え、
前記制御部は、
前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記回転機構を制御するとともに、
前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記並進機構を制御する、
搬送システム。
【請求項20】
搬送ロボットを用いて収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送方法であって、
前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記搬送ロボットへと指令を行うことと、
前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記搬送ロボットへと指令を行うことと、を備える、
搬送方法。
【請求項21】
搬送ロボットを用いて収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送プログラムであって、
前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記搬送ロボットへと指令を行うことと、
前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記搬送ロボットへと指令を行うことと、を備える、
搬送プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、物体を搬送する搬送ロボット、特に、倉庫等で用いられる搬送ロボット等に関する。
【背景技術】
【0002】
近年、労働人口の減少、Eコマースの拡大等に伴い、倉庫内に保管された様々な商品を出荷する作業の自動化が進められている。特許文献1には、複数の搬送対象場所の間で移動して物体を搬送する搬送車が開示されている。
【0003】
特許文献1に開示された搬送車は、走行部と、物体を把持する把持部と、把持部を鉛直方向に沿う軸周りに旋回させる旋回部と、を備えている。把持部が物体を把持した状態で旋回部が把持部を旋回させることで、物体が鉛直方向に沿う軸周りに旋回し、物体の姿勢が変更される。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2019-169566号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
倉庫等の空間では、搬送車等の搬送ロボットが通るための通路が狭いほど、棚等の収容空間をより多く設置でき、より多くの物体を保管することができる。このような理由から、通路幅を狭めることが求められている。
【0006】
しかしながら、通路幅を狭めると、収容空間から物体を引出した後、及び/又は収容空間に物体を収容する前に物体を通路で回転させる必要がある場合、物体が収容空間、倉庫の壁及び/又は収容空間に収容された他の物体と干渉するリスクがある。
【0007】
本発明は、上述の技術的課題に解決するためになされたものであり、その目的とするところは、物体回転時の干渉リスクを低減することにある。
【課題を解決するための手段】
【0008】
上述の技術的課題は、以下の構成を有する搬送ロボット、装置、システム、方法及びプログラム等により解決することができる。
【0009】
すなわち、本発明に係る搬送ロボットは、収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送ロボットであって、前記物体を回転させる回転機構と、前記物体を並進移動させる並進機構と、前記回転機構と前記並進機構を制御する制御部と、を備え、前記制御部は、前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記回転機構を制御するとともに、前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記並進機構を制御する。
【0010】
このような構成によれば、収容空間に存在する部分の軌道は、回転角が増加するにつれ、物体を並進移動させることなく回転させた場合の軌道から第3方向に離れていく。したがって、物体が周辺環境物と干渉するリスクを低減することができる。
【0011】
前記制御部は、前記物体の回転と同期して前記物体を並進移動させるよう前記回転機構と前記並進機構とを制御してもよい。
【0012】
このような構成によれば、物体の回転と並行して物体が並進移動するため、取出した物体の回転に要する時間を短縮することができる。
【0013】
前記制御部は、前記物体の回転と前記物体の並進移動とを同期して実行する前又は実行した後に前記物体の回転を停止して前記物体を並進移動させるよう前記回転機構と前記並進機構を制御してもよい。
【0014】
このような構成によれば、物体が収容空間の開口縁から一定の距離、離れるため、物体と開口縁との干渉リスクをより低減することができる。
【0015】
前記制御部は、前記物体の並進移動を停止した状態で前記物体の回転を前記回転機構が実行したときに前記物体と前記収容空間を定義する周辺環境物との干渉があるか否かを判定し、前記干渉がないと判定した場合に前記物体の並進移動を停止して前記物体を回転させるよう前記回転機構と前記並進機構を制御してもよい。
【0016】
このような構成によれば、物体の並進移動量が減るため、並進機構に要求されるリーチを短くすることができるとともに、取出した物体の回転に要する時間を短縮することができる。
【0017】
前記並進機構は、前記第2方向に前記物体を移動可能であり、前記制御部は、前記物体の回転と並進移動とを同期して実行する前に前記物体を前記第2方向に移動させるよう前記並進機構を制御してもよい。
【0018】
このような構成によれば、物体が周辺環境物よりも第2方向に離れるため、物体の回転時における物体と周辺環境物との干渉リスクを低減することができる。
【0019】
前記制御部は、前記第2方向に前記収容空間を見て前記収容空間の開口縁どうしを結ぶ仮想線分と前記物体の外周面との交点の情報と、前記収容空間の開口縁の情報と、を用いて前記回転機構と前記並進機構を制御してもよい。
【0020】
このような構成によれば、周辺環境物に対して物体の回転及び並進移動を制御する。したがって、物体が周辺環境物と干渉するリスクを低減することができる。
【0021】
前記制御部は、前記交点の一方と、前記収容空間の開口縁と、が一定距離を維持するように前記回転機構と前記並進機構を制御してもよい。
【0022】
このような構成によれば、物体と収容空間の開口縁とが一定距離、離れた状態で物体は回転する。したがって、物体と開口縁との干渉リスクをより低減することができる。
【0023】
前記物体の回転と並進移動とを同期して実行する前又は実行した後に前記物体の回転を停止して前記物体を前記一定距離分、並進移動させるよう前記回転機構と前記並進機構を制御してもよい。
【0024】
このような構成によれば、物体は、並進移動して収容空間の開口縁から離れる。したがって、物体の回転時に開口縁との干渉リスクをより低減することができる。
【0025】
前記制御部は、前記交点どうしの中点と、前記収容空間の開口縁どうしの中点と、を一致させるように前記回転機構と前記並進機構を制御してもよい。
【0026】
このような構成によれば、リ物体が開口縁の両方から等しく離れるため、物体と一方の開口縁との干渉リスクと、物体と他方の開口縁との干渉リスクと、の両方を低減することができる。
【0027】
前記制御部は、前記干渉の判定を、前記物体の回転と並進移動とを同期して実行している間に定期的に実行してもよい。
【0028】
このような構成によれば、物体の回転と並進移動とを同期して実行している状態から物体の並進移動を停止して物体の回転のみを行う状態に適切に切り替えることができる。したがって、物体の並進移動量を減らすことができ、並進機構に要求されるリーチを短くすることができるとともに、取出した物体の回転に要する時間を短縮することができる。
【0029】
前記制御部は、前記干渉の判定を、前記物体の回転と並進移動とを同期して実行する前に実行してもよい。
【0030】
このような構成によれば、物体の回転と並進移動とを同期して実行している状態から物体の並進移動を停止して物体の回転のみを行う状態に切り替えるタイミングを適切に把握することができる。したがって、物体の並進移動量を減らすことができ、並進機構に要求されるリーチを短くすることができるとともに、取出した物体の回転に要する時間を短縮することができる。
【0031】
前記制御部は、前記物体の寸法に関する情報と、前記物体と前記軸の相対位置姿勢に関する情報と、前記軸と前記収容空間の開口縁との距離に関する情報と、前記収容空間に関する情報と、を用いて前記回転機構と前記並進機構を制御してもよい。
【0032】
このような構成によれば、第2方向に沿う軸周りに物体を回転させる動作と、物体の一部が収容空間に存在する状態において第3方向に物体を並進移動させる動作と、に必要な指令値を算出できる。したがって、物体が周辺環境物と干渉するリスクをより低減することができる。
【0033】
前記物体の寸法に関する情報として、前記物体の最大寸法値を用いてもよい。
【0034】
このような構成によれば、物体の最大寸法値は、干渉リスクが比較的高い状態の情報である。したがって、物体が周辺環境物と干渉するリスクをより低減することができる。
【0035】
前記物体の寸法に関する情報として、実際の前記物体の寸法に安全マージンを加味した値を用いてもよい。
【0036】
このような構成によれば、実際の物体の寸法に安全マージンを加味した値は、干渉リスクが比較的高い状態の情報である。したがって、物体が周辺環境物と干渉するリスクをより低減することができる。
【0037】
前記相対位置姿勢に関する情報として、前記物体と前記軸の相対位置のばらつき範囲のうち、前記物体の中心が前記軸から最も離れたときの前記軸に対する前記中心の位置姿勢情報を用いてもよい。
【0038】
このような構成によれば、物体と軸の相対位置のばらつき範囲のうち、物体の中心が軸から最も離れたときの軸に対する中心の位置姿勢情報は、干渉リスクが比較的高い状態の情報である。したがって、物体が周辺環境物と干渉するリスクをより低減することができる。
【0039】
前記距離に関する情報として、前記第2方向に前記収容空間を見て前記収容空間の開口縁どうしを結ぶ仮想線分と前記物体の奥側の面とが重なったときの前記軸と前記線分との距離を用いてもよい。
【0040】
このような構成によれば、第2方向に収容空間を見て収容空間の開口縁どうしを結ぶ仮想線分と物体の奥側の面とが重なったときの軸と線分との距離は、干渉リスクが比較的高い状態の情報である。したがって、物体が周辺環境物と干渉するリスクをより低減することができる。
【0041】
前記収容空間に関する情報は、前記第2方向に前記収容空間を見て前記収容空間の開口縁どうしを結ぶ仮想線分の長さを含み、前記仮想線分の長さとして、前記第3方向における前記物体の寸法を用いてもよい。
【0042】
このような構成によれば、第2方向に収容空間を見て収容空間の開口縁どうしを結ぶ仮想線分の長さが第3方向における物体の寸法である状態は、干渉リスクが比較的高い状態である。したがって、物体が周辺環境物と干渉するリスクをより低減することができる。
【0043】
別の側面から見た本発明は、収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送装置であって、前記物体を回転させる回転機構と、前記物体を並進移動させる並進機構と、前記回転機構と前記並進機構を制御する制御部と、を備え、前記制御部は、前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記回転機構を制御するとともに、前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記並進機構を制御する。
【0044】
別の側面から見た本発明は、収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送システムであって、前記物体を回転させる回転機構と、前記物体を並進移動させる並進機構と、前記回転機構と前記並進機構を制御する制御部と、を備え、前記制御部は、前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記回転機構を制御するとともに、前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記並進機構を制御する。
【0045】
別の側面から見た本発明は、搬送ロボットを用いて収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送方法であって、前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記搬送ロボットへと指令を行うことと、前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記搬送ロボットへと指令を行うことと、を備える。
【0046】
更に別の側面から見た本発明は、搬送ロボットを用いて収容空間からの物体の取出し及び/又は前記収容空間への前記物体の収容を行う搬送プログラムであって、前記物体が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに前記物体を回転させるよう前記搬送ロボットへと指令を行うことと、前記軸周りの前記物体の回転により前記物体の一部が前記収容空間に存在する状態において前記第1方向と前記第2方向との両方に交差する第3方向に前記物体を並進移動させるよう前記搬送ロボットへと指令を行うことと、を備える。
【0047】
このような構成によれば、収容空間に存在する部分の軌道は、回転角が増加するにつれ、物体を並進移動させることなく回転させた場合の軌道から第3方向に離れていく。したがって、物体が周辺環境物と干渉するリスクを低減することができる。
【発明の効果】
【0048】
本発明によれば、収容空間に存在する部分の軌道は、回転角が増加するにつれ、物体を並進移動させることなく回転させた場合の軌道から第3方向に離れていく。したがって、物体が周辺環境物と干渉するリスクを低減することができる。
【図面の簡単な説明】
【0049】
図1図1は、本発明の第1実施形態に係る搬送ロボットの外観斜視図である。
図2図2は、図1に示す搬送ロボットを用いて棚から物体を取り出す場合の動作例に関する説明図である。
図3図3は、図1に示す搬送ロボットのハードウエア構成図である。
図4図4は、図1に示す搬送ロボットが活用される環境の例を示す平面図である。
図5図5は、図1に示す搬送ロボットを含む搬送システムの全体構成図である。
図6図6は、物体を保持した状態で、スライド部材をスライド移動させている搬送ロボットの平面図である。
図7図7は、物体の姿勢変更直後の状態を表す搬送ロボットの平面図である。
図8図8は、搬送タスクを実行する搬送ロボットの動作に関するゼネラルフローチャートである。
図9図9は、保管用の棚から物体を取出す処理の詳細フローチャートである。
図10図10は、取出した物体を並進移動させることなく回転させる動作に関する説明図であり、Z軸の正方向から見た状態を示す。
図11A図11Aは、物体を収容空間から取出した後であって、取出した物体を回転させる前の状態を示す。
図11B図11Bは、図11Aに続く動作を説明するための図である。
図11C図11Cは、図11Bに続く動作を説明するための図である。
図11D図11Dは、図11Cに続く動作を説明するための図である。
図11E図11Eは、図11Dに続く動作を説明するための図である。
図12図12は、取出した物体における角部の軌道を説明するための図である。
図13図13は、取出した物体を回転させる間に並進移動させるのに必要な幾何情報を説明するための図である。
図14図14は、取出した物体を回転させる間に並進移動させる動作に関するフローチャートである。
図15図15は、回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図16図16は、幾何情報の求め方を説明するための図である。
図17図17は、返却タスクを指令するロボット管理サーバの動作に関するゼネラルフローチャートである。
図18図18は、返却タスクを実行する搬送ロボットの処理に関するゼネラルフローチャートである。
図19図19は、保管用の棚への返却処理の詳細フローチャートである。
図20図20は、取出した物体を回転させる間に並進移動させる動作に関するフローチャートである。
図21図21は、回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートであり、S2101~S2106を示す。
図22図22は、回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートであり、S2201~S2210を示す。
図23図23は、第2実施形態に係るフローチャートであり、物体を保管用の棚から取出した後の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図24図24は、第2実施形態に係るフローチャートであり、物体を保管用の棚へ収容する前の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図25図25は、第3実施形態に係るフローチャートであり、物体を保管用の棚から取出した後の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図26図26は、第3実施形態に係るフローチャートであり、物体を保管用の棚へ収容する前の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図27図27は、第4実施形態に係るフローチャートであり、物体を保管用の棚から取出した後の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図28図28は、第4実施形態に係るフローチャートであり、物体を保管用の棚へ収容する前の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図29図29は、第5実施形態に係るフローチャートであり、物体を保管用の棚から取出した後の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
図30図30は、第5実施形態に係るフローチャートであり、物体を保管用の棚へ収容する前の回転角と第3方向軸座標値の目標軌道を算出する処理の詳細フローチャートである。
【発明を実施するための形態】
【0050】
以下、本発明の好適な実施の形態について添付の図面を参照しつつ詳細に説明する。
【0051】
(1.第1実施形態)
第1の実施形態として、本発明を、物体60を搬送する搬送ロボット50に適用した例について説明する。
【0052】
(1.1 搬送ロボットの構成)
図1は、搬送ロボット50の全体構成を示す外観斜視図である。同図右下には、互いに直交する3軸(X軸、Y軸、Z軸)から成る座標系が表示され、以下では、X軸の正方向を前方向、負方向を後ろ方向、Y軸の正方向を左方向、負方向を右方向、Z軸の正方向を上方向、負方向を下方向と呼ぶことがある。搬送ロボット50は、倉庫等の環境での活用が想定される。
【0053】
本実施形態において、搬送ロボット50は、少なくとも移動機能、マニピュレーション機能、及び搬送機能を有するモバイルマニピュレータである。本実施形態において、マニピュレーションには、所定領域からの物体60の取出し、所定領域への物体60の収容、所定領域への物体60の載置等が含まれる。
【0054】
同図から明らかな通り、搬送ロボット50は、略直方体の全体形状を有する本体部51と、本体部51の右側面に取付けられたロボットアーム52と、を備えている。本体部51の底面には、図示しない全方位移動機構が備えられている。この移動機構により搬送ロボット50は自在な向きで移動することができる。本実施形態では、全方位移動機構として、オムニホイールを採用している。
【0055】
なお、本実施形態においては、全方位への移動機構としてオムニホイールを採用するものの、本発明はこのような構成に限定されない。したがって、メカナムホイール等、全方位移動を可能とする他の構成を採用してもよい。また、移動機構は、全方位移動機構に限定されない。したがって、差動二輪等の移動方位が限定された他の移動機構を採用してもよい。また、車輪である必要はなく、脚部を用いるものであってもよい。更に、床面上を移動する必要はなく、ドローン等の飛行体として構成してもよい。
【0056】
本体部51には、左右一対のカメラ56と、LiDAR装置57と、が設けられている。これにより、倉庫内の環境地図、推定現在位置等に基づいて目的地まで自律走行することができる。
【0057】
また、本体部51には、3つのスロット55が設けられている。図1において、各スロット55には、直方体形状の物体60が収容されている。すなわち、本実施形態に係る搬送ロボット50は最大で3つの物体60を積載可能に構成されている。
【0058】
なお、本実施形態においては、搬送対象である物体60の大きさから、3つの物体60の搬送を最大として説明するものの、本発明は、そのような構成に限定されない。例えば、物体60がスロット55の大きさに比べて十分小さい場合には最大積載個数を4つ以上としてもよい。
【0059】
ロボットアーム52は、5つの駆動関節部(J1~J5)を備えたアームである。より詳細には、ロボットアーム52は、搬送ロボット50の右側面に回動可能に取り付けられたL字形状の第1リンク521と、第1リンク521の先端に回動可能に取り付けられた棒状の第2リンク522と、第2リンク522の先端に回動可能に取り付けられ屈曲した形状を有する第3リンク523と、第3リンク523の先端近傍に回動可能に取り付けられたスライドテーブル53と、を有している。
【0060】
第1リンク521の付け根、第1リンク521と第2リンク522の間、第2リンク522と第3リンク523の間には、それぞれ左右方向に延び床面に平行な軸回りに回動させる第1~第3の3つの駆動関節部(J1~J3)が備えられている。また、第3リンク523とスライドテーブル53との間には、第4の駆動関節部(J4)が備えられている。同図の例にあっては、第4の駆動関節部(J4)は、スライドテーブル53を第3リンク523に対して鉛直な(Z軸方向に沿う)軸回りに回動させる。
【0061】
図2は、搬送ロボット50を用いて棚90から物体60を取り出す場合の動作例に関する説明図である。図2では、スライドテーブル53が図1に示す状態から90°、回転した状態が示されている。同図から明らかな通り、スライドテーブル53は、物体60を吸引してスライドテーブル53の大面積面に対して平行にスライドする吸引部54を備えており、第5の駆動関節部(J5)を構成している。
【0062】
吸引部54は、真空ポンプ58(図3参照)に接続されている。吸引部54を物体60に接触させた状態で真空ポンプ58を駆動することにより、吸引部54は、物体60を吸引して保持する。物体60を保持した吸引部54がスライドテーブル53に対してスライドすると、物体60は、棚90から取出され及び/又は棚90に収容される。真空ポンプ58を停止することにより、吸引部54による物体60の吸引が解除され、保持が解除される。
【0063】
吸引部54が物体60を保持した状態で駆動関節部J4を駆動してスライドテーブル53を回転させると、物体60は、駆動関節部J4の軸周りに回転する。すなわち、駆動関節部J4は、物体60を回転させる回転機構を構成する。また、吸引部54が物体60を保持した状態で全方位移動機構及び/又はロボットアーム52を駆動してスライドテーブル53を並進移動させると、物体60は、並進移動する。すなわち、全方位移動機構及び/又はロボットアーム52は、物体60を並進移動させる並進機構を構成する。
【0064】
図示を省略するが、搬送ロボット50は、スライドテーブル53の向きを図1に示す向きとし吸引部54をスライドさせることにより、スロット55から物体60を取出し及び/又はスロット55へ物体60を収容することができる。
【0065】
図2では、搬送ロボット50が床面付近の段に収容された物体60にリーチングし物体60を取出している例が示されている。床面付近の段に収容された物体60を取出すには、搬送ロボット50は、まず、ロボットアーム52の手先位置を床面近付の物体60の正面付近に配置する。このとき、スライドテーブル53を、取出し対象となる物体60の底面に対して平行に配置する。次に、搬送ロボット50は、吸引部54をスライドさせて物体60を吸引する。最後に、搬送ロボット50は、吸引部54を、物体60との一体性を保持したまま、物体60を取出す方向にスライドさせる。これにより、物体60をスライドテーブル53上に取出することができる。なお、スライドテーブル53上に取出された物体60は、その後、スロット55に収容され搬送される。
【0066】
物体60を床面付近の段に収容するには、床面付近の段に収容された物体60を取出す動作と逆の動作を行えばよい。
【0067】
図示を省略するが、搬送ロボット50は、本体部51より高い位置にある物体60に対してリーチングし物体60を取出すことができる。本体部51より高い位置にある物体60を取出すには、搬送ロボット50は、まず、ロボットアーム52の手先位置を取出し対象となる物体60の正面付近に配置する。このとき、スライドテーブル53を、取出し対象となる物体60の底面に対して平行に配置する。次に、搬送ロボット50は、吸引部54をスライドさせて物体60を吸引する。最後に、搬送ロボット50は、吸引部54を、物体60との一体性を保持したまま、物体60を取出す方向にスライドさせる。これにより、物体60をスライドテーブル53上に取出すことができる。なお、スライドテーブル53上に取出された物体60は、その後、スロット55に収容されて搬送される。
【0068】
物体60を本体部51より高い位置に収容するには、本体部51より高い位置にある物体60を取出す動作と逆の動作を行えばよい。
【0069】
図3は、搬送ロボット50のハードウエア構成図である。同図から明らかな通り、搬送ロボット50は、全方位移動機構、駆動関節部J1~J5及び真空ポンプ58を制御する制御部70を備えている。制御部70は、認識処理用情報処理装置71と、制御用情報処理装置72の2つの情報処理装置を備えている。なお、認識処理用情報処理装置71と制御用情報処理装置72とを1つの情報処理装置で構成してもよい。
【0070】
認識処理用情報処理装置71と制御用情報処理装置72は、制御ユニット、記憶ユニット、通信ユニット等を備え、それらがバス又は回路を介して接続された情報処理装置である。例えば、認識処理用情報処理装置71と制御用情報処理装置72は、マイコンやパーソナルコンピュータである。制御ユニットは、プログラムの実行を行うCPU等の装置である。記憶ユニットは、プログラム又はデータの記憶を行うROM、RAM、ハードディスク、フラッシュメモリ等の装置である。通信ユニットは、外部装置との間で情報の通信を行う装置である。
【0071】
同図から明らかな通り、認識処理用情報処理装置71は、カメラ56とLiDAR装置57に接続されている。認識処理用情報処理装置71は、カメラ56とLiDAR装置57の情報から外部環境を認識し、移動、物体操作等を実行する。
【0072】
制御用情報処理装置72は、シリアル通信を行う一連のモータ制御部73~77と接続されている。モータ制御部73~77は、モータを制御するマイコンと、モータドライバとから構成されている。同図の例にあっては、モータ制御部73~76は、それぞれ2つのモータの制御を担っており、モータ制御部77は、1つのモータの制御を担っている。すなわち、モータ制御部73、74は、全方位移動機構の4つの車輪W1~W4の駆動を行う。また、モータ制御部75、76は、ロボットアーム52に係る4つの駆動関節部J1~J4の駆動を行う。更に、モータ制御部77は、駆動関節部J5の駆動を行う。
【0073】
制御用情報処理装置72は、また、真空ポンプ58と接続されており、真空ポンプ58を制御することができる。この制御により、吸引部54において吸引を行うか否か、吸引の程度等を制御することができる。
【0074】
なお、本実施形態においては、搬送ロボット50は、ロボットアーム52を備えるものとしたが、本発明はそのような構成に限定されない。したがって、物体60の取出し、搬送及び載置等ができれば他の機構を備えたロボット及び/又は装置であってもよい。例えば、搬送ロボット50は、吸引部54に代えて、物体60の奥側の面を引掛ける機構を備えていてもよい。
【0075】
図4は、搬送ロボット50が活用される環境の例を示す平面図である。搬送ロボット50は、所謂ケース搬送型GTP方式の搬送システムにおいて用いられる。倉庫内には、複数の保管用の棚90が配置される領域と、1又は複数の一時保管用の棚90が配置される領域がある。同図の例にあっては、保管用の棚90が3つ配置されており、一時保管用の棚90が1つ配置されている。以下において、3つの保管用の棚90を「棚90-1」、「棚90-2」及び「棚90-3」とも称し、1つの一時保管用の棚90を「棚90-T」とも称する。
【0076】
物体60は、ケースであり、物体60内には、例えば、1又は複数の商品が収容されている。作業者は一時保管用の棚90-Tの近傍にて一時保管用の棚90-Tから物体60を取出して、物体60内の商品の仕分け等の作業を行う。搬送ロボット50は、タスクとして保管用の棚90-1~90-3と一時保管用の棚90-Tとの間において1又は複数の物体60の搬送又は返却を行う。
【0077】
より詳細には、同図の例にあっては、3つの保管用の棚90-1、90-2、90-3が互いに長辺を平行に配置されている。保管用の棚90-1、90-2の間には直線的な通路が形成されている。保管用の棚90-3と倉庫の壁Wとの間にも直線的な通路が形成されている。
【0078】
保管用の棚90-1、90-2、90-3には、仮想的に収容空間(又は収容区画)が設定されている。例えば、保管用の棚90-1には、5つの収容空間A1~A5が設定されており、保管用の棚90-2には、5つの収容空間A6~A10が設定されており、保管用の棚90-3には、5つの収容空間A11~A15が設定されている。同図の例にあっては、各収容空間A1~A15には、それぞれ物体60が収容され保管されている。同図の例にあっては、物体60の間に隙間が形成されているが、物体60は、物体60の間に隙間が形成されないように収容され保管されていてもよい。
【0079】
一時保管用の棚90-Tには、仮想的に一時保管用の収容空間(又は一時収容区画)(A16~A20)が設定されており、これらの一時保管用の収容空間A16~A20にそれぞれ搬送された物体60が収容される。作業者は、物体60を一時保管用の棚90-Tから取出して商品の仕分け作業等を行い、再度、物体60を一時保管の棚90-Tの元の位置へと返却する。
【0080】
なお、本実施形態においては、収容手段又は保管手段として保管用の棚90及び一時保管用の棚90を採用するものの、他の収容手段又は保管手段を用いてもよい。したがって、例えば、テーブル、台又は箱等の物体60を保持可能な他の手段であってもよい。また、収容空間又は保管空間だけを設定し、当該空間内に台や棚等を何ら設けない構成としてもよい。
【0081】
また、本実施形態においては、物体60を一時的に保管することを想定するため便宜的に一時保管用の棚90と称呼するもののこのような名称に限定されない。したがって、一時保管用の棚90を単に収容棚等のように称呼してもよい。
【0082】
(1.2 搬送システムの構成)
図5は、搬送ロボット50を備えた搬送システム100の全体構成図である。同図から明らかな通り、搬送システム100は、倉庫管理システムサーバ10、ロボット管理サーバ20、一時保管棚管理サーバ30、及び複数の搬送ロボット50を備え、それらは互いにネットワークを介して接続され情報の授受が可能に構成されている。
【0083】
なお、搬送ロボット50の適用対象は、倉庫管理用の搬送システム100に限定されず、他の種々の搬送システムに適用することが可能である。
【0084】
倉庫管理システムサーバ10、ロボット管理サーバ20、一時保管棚管理サーバ30は、それぞれ、例えば、PC等の情報処理装置で構成される。各装置は、ROM、RAM、ハードディスク、フラッシュメモリ等を含みプログラムやデータ等を記憶する記憶部と、CPU、GPU等の演算装置から成りプログラムの実行処理等を行う制御部と、外部装置との間で通信を行う通信ユニットと、キーボード、マウス等からの入力信号を受け付ける入力部と、ディスプレイ等への出力を行う表示部と、スピーカ等への出力を行う音声出力部等を備えている。
【0085】
倉庫管理システムサーバ10は、所謂、WMS(Warehouse Management System)に係る情報を管理するサーバである。倉庫管理システムサーバ10は、商品オーダーに関する情報等を受領し又は生成する。また、倉庫管理システムサーバ10は、物体60(図3参照)の保管位置の情報を記憶している。本実施形態では、倉庫管理システムサーバ10は、オーダーされた商品に係る物体60が倉庫内のどの位置にあるかを判定することができる。倉庫管理システムサーバ10は、少なくとも、ロボット管理サーバ20との間で情報の授受を行う。
【0086】
なお、本実施形態においては、倉庫管理システムサーバ10が、物体60の保管位置の情報を記憶する構成について説明するものの、本発明はそのような構成に限定されない。したがって、例えば、ロボット管理サーバ20等の他の装置がそのような情報を記憶してもよいし、必要に応じて外部装置に対してリクエストする構成としてもよい。
【0087】
ロボット管理サーバ20は、倉庫管理システムサーバ10、一時保管棚管理サーバ30、複数の搬送ロボット50と接続され、搬送ロボット50や搬送ロボット50に割り当てられるタスク等の管理を行う。また、ロボット管理サーバ20は、搬送ロボット50の現在位置情報を搬送ロボット50から直接に又は間接に取得するとともに、搬送ロボット50へのタスク割り当てステータス情報等の管理を行う。
【0088】
なお、本実施形態においては、ロボット管理サーバ20は、搬送ロボット50から提供される通知に基づいてタスクの割り当てステータス情報等を更新するものの、本発明はそのような構成に限定されない。したがって、搬送ロボット50を監視し情報取得を行う他の装置等から情報を取得してもよい。
【0089】
一時保管棚管理サーバ30は、一時保管用の棚90のステータス情報、すなわち、一時保管用の棚90上の一時保管位置に配置されている物体60又は空きロケーションに関する情報、及び、物体60への作業ステータス情報等を管理する。また、一時保管棚管理サーバ30は、一時保管用の棚90上の一時保管位置に関する予約管理等を行う。なお、作業ステータス情報は、物体60への作業が完了したときに作業者から提供されるものであってもよい。一時保管棚管理サーバ30は、ロボット管理サーバ20及び搬送ロボット50との間で情報の授受を行う。
【0090】
なお、本実施形態においては、一時保管棚管理サーバ30は、搬送ロボット50から提供される通知に基づいて一時保管棚ステータス情報等を更新するものの、本発明はそのような構成に限定されない。したがって、一時保管用の棚90にセンサ等を設けて直接情報取得を行ってもよいし、又は一時保管用の棚90を監視し情報取得を行う他の装置等から情報を取得してもよい。
【0091】
搬送ロボット50は、ロボット管理サーバ20との間で情報の授受を行い、ロボット管理サーバ20から割り当てられるタスクを実行する。
【0092】
なお、このとき、物体60に関する作業の完了は、所定の手段を用いて、倉庫管理システムサーバ10、ロボット管理サーバ20、一時保管棚管理サーバ30等へと通知される。この通知を受けて、一時保管棚管理サーバ30は、当該物体60に関する作業ステータス情報を作業完了状態(又は返却待ち状態)へと更新する。所定の手段は、作業者による所定の装置への入力であってもよいし、何らかの認識手段を用いるものであってもよい。
【0093】
(1.3 保管用の棚から一時保管用の棚への物体搬送動作)
まず、搬送ロボット50が、保管用の棚90から物体60を取出し、一時保管用の棚90へと搬送する動作について説明する。
【0094】
図6は、オーダー情報に基づく搬送タスクリストの更新処理に関するフローチャートである。同図から明らかな通り、処理が開始すると、ロボット管理サーバ20は、倉庫管理システムサーバ10に対して商品のオーダー情報をリクエストする処理を行う(S61)。このリクエスト処理の後、ロボット管理サーバ20は、倉庫管理システムサーバ10からオーダー情報を受信するまで待機状態となる(S62NO)。
【0095】
倉庫管理システムサーバ10は、このリクエストを受領すると、オーダー情報をロボット管理サーバ20へと送信する。オーダー情報は、オーダーの識別情報、各識別情報に関連付けられる物体60、及び物体60の保管位置の情報を含む。
【0096】
ロボット管理サーバ20は、オーダー情報を受信すると(S62YES)、搬送タスクリストの生成処理とグループ化処理を行う(S63)。搬送タスクリストの生成処理とは、オーダー情報に基づいて、搬送対象となる物体60をその一時保管用の棚90上の収容空間の属する領域毎に分類する処理である。また、グループ化処理とは、搬送タスクリストに含まれる物体保管位置の属する領域(搬送元領域)が同一な単位搬送タスクを搬送ロボット50の最大積載個数に基づいてグループ化して搬送ロボット50へと割り当てる搬送タスクとする処理である。
【0097】
搬送タスクリストの生成処理とグループ化処理が完了すると、ロボット管理サーバ20は、搬送タスクリストに関するデータに他のプロセスがアクセス中であるか否かを判定する処理を行う(S64)。アクセス中である場合、所定の待機処理を行う(S64YES)。
【0098】
一方、他のプロセスがアクセス中でない場合(S64NO)、ロボット管理サーバ20は、オーダー情報に基づく搬送タスクを搬送タスクリストへと追加して搬送タスクリストを更新する処理を行う(S65)。この更新処理の後、再び一連の処理が繰り返される(S61~S65)。
【0099】
図7は、搬送タスクを指令するロボット管理サーバ20の動作に関するフローチャートである。処理が開始すると、ロボット管理サーバ20は、搬送タスクリストに関するデータに他のプロセスがアクセス中であるか否かを判定する(S71)。他のプロセスがアクセス中である場合(S71YES)、ロボット管理サーバ20は、所定の待機処理を行う。
【0100】
一方、他のプロセスがアクセス中でない場合(S71NO)、ロボット管理サーバ20は、搬送タスクリストを参照し、グループ化された搬送タスクのうちの1つを選択する処理を行う(S72)。その後、ロボット管理サーバ20は、選択した搬送タスクを搬送タスクリストから削除して搬送タスクリストを更新する処理を行う(S73)。
【0101】
搬送タスクリストの更新処理の後、ロボット管理サーバ20は、一時保管棚管理サーバ30へと一時保管用の棚90の空き状況に関する空きロケーション情報のリクエスト処理を行う(S74)。このリクエスト処理の後、ロボット管理サーバ20は、空きロケーション情報を受信するまで待機状態となる(S75NО)。
【0102】
一時保管棚管理サーバ30は、一時保管用の棚90の各一時収容空間に存在する物体60、及び、一時保管用の棚90の空きロケーション情報を管理している。一時保管棚管理サーバ30は、ロボット管理サーバ20から空きロケーション情報のリクエストを受領すると、ロボット管理サーバ20に対して、予約可能な空きロケーション情報を送信する。
【0103】
ロボット管理サーバ20は、一時保管棚管理サーバ30から空きロケーション情報を受信すると(S75YES)、選択した搬送タスクに係る物体60の個数分だけ一時保管用の棚90上の一時保管位置を選択し、一時保管棚管理サーバ30に対して、予約リクエストを送信する処理を行う(S76)。
【0104】
この予約リクエストを受信すると、一時保管棚管理サーバ30は、予約リクエストに応じて一時保管用の棚90の一時保管位置を予約する。すなわち、1つの一時収容空間に2つ以上の物体60が搬送されないように一時収容空間をブロックする。
【0105】
予約処理が完了すると、ロボット管理サーバ20は、搬送ロボット50の選択処理を行う(S77)。ロボット管理サーバ20は、各搬送ロボット50の現在位置情報、現在のタスク割り当てステータス等の情報を取得している。これらの情報に基づき、ロボット管理サーバ20は、現在、搬送タスクが割り当てられていない搬送ロボット50のうちから、任意の搬送ロボット50を選択する処理を行う。
【0106】
選択処理の後、ロボット管理サーバ20は、選択した搬送ロボット50に対して所定の指令処理を行う(S78)。指令は、搬送タスク情報及び予約した空きロケーションに関する情報を含むものである。また、このとき、ロボット管理サーバ20は、指令を行った搬送ロボット50がタスク実行中であるとしてタスク割り当てステータス情報を更新する。
【0107】
この指令処理の後、ロボット管理サーバ20は、搬送タスクリストに係るすべての搬送タスクを搬送ロボット50に対して指令したか否かを判定する(S79)。この判定の結果、未だすべての搬送タスクを搬送ロボット50に対して指令していない場合(S79NO)、ロボット管理サーバ20は、再度一連の処理(S72~S79)を実行する。
【0108】
一方、すべての搬送タスクを搬送ロボット50に対して指令した場合(S79YES)、ロボット管理サーバ20は、再度、搬送タスクリストの参照処理から一連の処理(S71~S79)を実行する。
【0109】
図8は、搬送タスクを実行する搬送ロボット50の動作に関するゼネラルフローチャートである。同図から明らかな通り、処理が開始すると、ロボット管理サーバ20から指令を受信するまで待機状態となる(S81NO)。
【0110】
その後、ロボット管理サーバ20から指令を受信すると(S81YES)、搬送ロボット50は、保管用の棚90から物体60を取出す処理を実行する(S82)。
【0111】
図9は、保管用の棚90から物体60を取出す処理の詳細フローチャートである。処理が開始すると、搬送ロボット50は、指令された搬送タスクに係る物体60を取り出す順序を決定する処理を実行する(S91)。この順序は、様々な手法で決定することができる。例えば、搬送ロボット50からの距離が近い順に取出していってもよい。或いは、所謂巡回セールスマン問題を解いて、全ての物体60の取出しに要する総距離が最小となるよう経路を計画して順序を決定してもよい。
【0112】
取出し順の決定処理の後、搬送ロボット50は、現在位置から最初の取出し対象となる物体60の前までの移動経路の計画処理を行う(S92)。この経路計画は既存の様々な手法により実現することができる。例えば、環境地図を用いて経路計画を行ってもよい。
【0113】
この経路計画処理の後、搬送ロボット50は、取出し対象の物体60の前へと移動する処理を行う(S93)。なお、このとき、搬送ロボット50の停止位置は事前設計しておいてもよい。
【0114】
取出し対象の物体60の前へと移動した後、搬送ロボット50は、カメラ56又は不図示の手先カメラを利用して取出し対象の物体60を認識し、取出し対象の物体60を取出す処理を実行する(S94)。
【0115】
取出し対象の物体60を取出す処理では、搬送ロボット50は、まず、初期姿勢をとる。初期姿勢は、本体部51の左側面(ロボットアーム52が取付けられていない側面)を保管用の棚90に対向させるように搬送ロボット50の前後方向(X軸方向)と保管用の棚90の側面とが平行になる姿勢である。
【0116】
初期姿勢をとった後、搬送ロボット50は、ロボットアーム52の姿勢を制御し、スライドテーブル53の位置及び姿勢が取出し対象の物体60に対して所定位置及び所定姿勢となるようにスライドテーブル53を配置する。このとき、カメラ56から撮影された画像情報等を使用してもよい。
【0117】
所定位置及び所定姿勢は、例えば、駆動関節部J5の軸が取出し対象の物体60の取出し方向と平行であり、駆動関節部J4の軸が鉛直であり、かつ、スライドテーブル53の高さが取出し対象の物体60の底面と同一又はそれよりやや低い位置及び姿勢である。
【0118】
スライドテーブル53を取出し対象の物体60に対して所定位置及び所定姿勢とした後、搬送ロボット50は、吸引部54を用いて取出し対象の物体60を棚90から取出す。より詳細には、搬送ロボット50は、まず、取出し対象の物体60に吸引部54が当接するまで、吸引部54をスライド移動させる。その後、搬送ロボット50は、真空ポンプ58を駆動し、吸引部54により目標の物体60を吸引し保持する。搬送ロボット50は、取出し対象の物体60を保持した状態で、吸引部54を逆方向にスライド移動させる。これにより、取出し対象の物体60は、スライドテーブル53上を吸引部54とともに移動し、棚90から取出される。
【0119】
取出し対象の物体60を棚90から取出した後、搬送ロボット50は、取出した物体60の姿勢を変更する動作を行う(S95)。より詳細には、本実施形態においては、取出した物体60の姿勢の変更は、スライドテーブル53を用いて行う。すなわち、駆動関節部J4を駆動して、スライドテーブル53を90°回転させることで、取出した物体60の長手方向軸をスロット55の開口部へと向ける。
【0120】
取出した物体60の姿勢を変更する処理として、取出した物体60を並進移動させることなく回転させることが考えられる。図10は、取出した物体60を並進移動させることなく回転させる動作に関する説明図であり、鉛直上方(Z軸の正方向)から見た状態を示す。図10において、二点鎖線は、姿勢変更後の目標の物体60を示し、二点鎖線の矢印は、取出した物体60の角部P1~P4の軌道を示す。角部P1~P4の軌道は、駆動関節部J4の軸(物体60の回転中心軸)を中心とする円弧である。また、図10において、搬送ロボット50の図示を省略している。
【0121】
図10に示す例では、取出した物体60の角部P1と、棚90に保管されている物体60(図10において下から2つ目の物体60)と、が干渉するリスクが最も高い。角部P1と周辺環境物との干渉を避けるためには、図10に示すように、駆動関節部J4の軸(物体60の回転中心軸)が角部P1と駆動関節部J4の軸との間の距離分、周辺環境物から離れるまで取出し対象の物体60を棚90から取出し、取出した物体60と収容空間との間にスペースを形成する必要がある。そのため、通路幅の狭小化が困難であり、収容効率の向上に限界がある。
【0122】
そこで、本実施形態では、取出した物体60を90°回転させる間に並進移動させる。図11A図11Eは、取出した物体60を90°回転させる間に並進移動させる動作の一例に関する説明図であり、図10に対応して示す。
【0123】
図11Aは、取出し対象の物体60を収容空間から取出した後であって、取出した物体60を回転させる前の状態を示す。図11Aに示す状態は、取出した物体60と収容空間との間にスペースが形成されていない点で、図10に示す状態とは相違する。
【0124】
取出した物体60を図11Aに実線で示す状態から90°回転させると角部P1と周辺環境物(図11Aにおいて収容空間の紙面下側の物体60)とが干渉する。そのため、本実施形態では、取出した物体60と周辺環境物とが干渉しない程度に、取出した物体60を回転させる。図11Aでは、約10°回転させた後の物体60が二点鎖線で示されている。同図から明らかなように、物体60の回転により、取出した物体60の角部P1が収容空間内に存在している。
【0125】
図11Bは、取出した物体60を約10°回転させた後の動作を説明するための図である。取出した物体60を図11Bに実線で示す状態から更に回転させることはできないため、取出した物体60を、X軸方向に並進移動させる。X軸方向は、取出し対象の物体60が取り出される第1方向(Y軸の負方向)と、駆動関節部J4の軸に沿う第2方向(Z軸方向)と、の両方に直交する第3方向に相当する。図11Bでは、並進移動後の物体60が二点鎖線で示されている。同図から明らかなように、取出した物体60の角部P1は、収容空間内に存在する。物体60の並進移動は、全方位移動機構及び/又はロボットアーム52の駆動により行われ、物体60の並進移動により、駆動関節部J4の軸も同方向に並進移動する。
【0126】
図11Cは、取出した物体60を並進移動させた後の動作を説明するための図である。取出した物体60を図11Cに実線で示す状態から同方向に更に並進移動させることはできないため、取出した物体60を、駆動関節部J4の軸を中心に回転させる。図11Cでは、約35°回転させた後の物体60が二点鎖線で示されている。同図から明らかなように、取出された物体60の角部P1は、収容空間に存在する。
【0127】
図11Dは、取出した物体60を更に約35°回転させた後の動作を説明するための図である。取出した物体60を図11Dに実線で示す状態から更に回転させることはできないため、取出した物体60をX軸の正方向に更に並進移動させる。図11Dでは、並進移動後の物体60が二点鎖線で示されている。同図から明らかなように、取出した物体60の角部P1は、収容空間内に存在する。物体60の並進移動は、全方位移動機構及び/又はロボットアーム52の駆動により行われ、物体60の並進移動により、駆動関節部J4の軸も同方向に並進移動する。
【0128】
図11Eは、取出した物体60を並進移動させた後の動作を説明するための図である。同図から明らかなように、取出した物体60を図11Eに実線で示す状態から回転させても、角部P1は、周辺環境物と干渉しない。したがって、取出した物体60と周辺環境との干渉なしに、取出した物体60を回転させることができる。図11Eでは、約45°回転させた後の物体60が二点鎖線で示されている。同図から明らかなように、取出した物体60は、図11Aに実線で示す状態から90°回転している。
【0129】
図12は、取出した物体60における角部P1の軌道を説明するための図である。図12において、実線の矢印は、取出した物体60を並進移動させつつ90°回転させた場合(図11A図11E参照)の角部P1の軌道を示し、破線の矢印は、取出した物体60を並進移動させることなく90°回転させた場合(図10参照)の角部P1の軌道を示す。同図から明らかなように、取出した物体60を並進移動させつつ90°回転させる場合の角部P1の軌道(実線)は、回転角が増加するにつれ、取出した物体60を並進移動させることなく回転させた場合の角部P1の軌道(破線)からX軸の正方向に離れることになる。したがって、取出した物体60が周辺環境物と干渉するリスクを低減することができる。これにより、通路幅の更なる狭小化が可能となり、収容効率を更に向上させることができる。
【0130】
図13は、取出した物体60を90°回転させる間に並進移動させるのに必要な幾何情報を説明するための図である。図13において、Z軸の正方向から収容空間を見たときに互いに間隔を空けて位置する収容空間の開口縁を「Q1」、「Q2」とする。Z軸の正方向から収容空間を見て、開口縁Q1、Q2を通る直線と、物体60の外周面と、の交点を「N1」、「N2」とする。駆動関節部J4による回転角を「θ」とし、駆動関節部J4の軸のX軸座標値を「Jx」とする。Z軸の正方向から収容空間を見て、取出した物体60の中心を「S」とする。
【0131】
幾何情報Lは、駆動関節部J4の軸と角部P1との間の距離である。幾何情報αは、駆動関節部J4の軸と角部P1とを通る直線と、X軸方向に対して回転角θ、傾いた直線と、の間の角度である。幾何情報Dは、駆動関節部J4の軸と、開口縁Q1、Q2を通る直線と、の間の距離である。幾何情報Q1xは、開口縁Q1のX軸座標値であり、幾何情報Q2xは、開口縁Q2のX軸座標値である。
【0132】
幾何情報L、αは、以下の(1)、(2)の情報を取得することにより算出することができる。
(1)取出した物体60の横幅寸法(回転前の状態におけるX軸方向の寸法)と奥行寸法(回転前の状態におけるY軸方向の寸法)
(2)取出した物体60と駆動関節部J4の軸との相対位置姿勢情報(すなわち、取出した物体60の中心Sと駆動関節部J4の軸との相対位置姿勢)
【0133】
幾何情報L、α、D、Q1x、Q2xを取得することにより、後述する式を用いて駆動関節部J4の回転角θとX軸座標値Jxのそれぞれの指令値を算出することができ、取出した物体60と周辺環境物との干渉なく物体60を回転させることができる。
【0134】
なお、上記(1)、(2)の情報及び幾何情報D、Q1x、Q2xは、干渉リスクが高い状態の情報を用いてもよい。あえて干渉リスクが高い状態の情報を用いることで、より干渉リスクを低減することができる。上記(1)の情報に関して干渉リスクが高い状態は、例えば、物体60の寸法が想定される最大寸法である場合や、物体60の寸法が安全マージンを加味した寸法の場合である。上記(2)の情報に関して干渉リスクが高い状態は、例えば、相対位置のばらつき範囲のうち、物体60の中心Sが駆動関節部J4の軸から最も離れた場合である。相対位置は、様々な要因でばらつく。例えば、カメラ56による物体60の認識誤差や、物体60が収容空間に収容されている状態での物体60の位置のずれなどが要因で相対位置はばらつく。幾何情報Dに関して干渉リスクが高い状態は、例えば、開口縁Q1、Q2を通る直線と物体60の奥側の面とが重なった場合である。幾何情報Q1x、Q2xに関して干渉リスクが高い状態は、開口縁Q1、Q2の間隔が取出した物体60の横幅寸法と同じ場合である。
【0135】
図14は、取出した物体60の姿勢を変更する処理(S95)の詳細フローチャートであり、取出した物体60を90°回転させる間に並進移動させる動作に関するフローチャートである。同図から明らかな通り、処理が開始すると、搬送ロボット50は、幾何情報L、αの算出に必要な情報、具体的には、上記(1)、(2)の情報と、幾何情報D、Q1x、Q2xと、を取得する処理を行う(S141)。
【0136】
上記(1)の情報である取出した物体60の横幅寸法と奥行寸法は、物体60の寸法をあらかじめ記憶した不図示の寸法記憶部から取得される。干渉リスクが高い状態の値を取得する場合には、物体60の最大寸法を寸法記憶部に記憶させておき、横幅寸法と奥行寸法のそれぞれの最大寸法を物体60の横幅寸法と奥行寸法として取得してもよい。また、干渉リスクが高い状態の情報を取得する場合には、寸法記憶部から取得した寸法に対し、所定のマージン値を加えた寸法を算出して物体60の横幅寸法と奥行寸法としてもよい。
【0137】
上記(2)の情報である取出した物体60と駆動関節部J4の軸との相対位置姿勢情報は、中心Sと当該軸との相対位置姿勢情報から取得される。中心Sと当該軸との相対位置姿勢情報は、物体60を正常に保持したときの代表的な相対位置姿勢情報を事前に不図示の寸法記憶部に記憶しておき、記憶部から読み出すことにより取得することができる。
【0138】
取出した物体60の中心Sと駆動関節部J4の軸との相対位置姿勢情報の取得に、吸引部54に対する中心Sの相対位置情報と、吸引部54に対する駆動関節部J4の軸の相対位置情報と、を用いてもよい。吸引部54に対する中心Sの相対位置情報は、吸引部54による物体60の保持位置と、物体60の寸法と、から算出可能である。吸引部54に対する駆動関節部J4の軸の相対位置情報は、設計情報から取得可能である。これらの算出又は取得された相対位置情報は、吸引部54を基準とするため、これらから、取出した物体60の中心Sと駆動関節部J4の軸との相対位置姿勢情報を取得することができる。
【0139】
吸引部54による物体60の保持位置情報の取得には、例えば、事前に設計された値を用いてもよいし、吸引部54の近傍に設けられた不図示の測距センサによって物体60の一辺の位置をセンシングして得られた値を用いてもよい。
【0140】
干渉リスクが高い状態の情報を取得する場合には、保持位置の取り得る最大誤差を事前に求めておき、前述の方法により取得した相対位置情報に対して、参照座標系と駆動関節部J4の軸との距離が大きくなる方向に最大誤差を加算した値を、吸引部54による物体60の保持位置情報として取得してもよい。保持位置のばらつきは、認識位置のばらつきとロボットアーム52のリーチングのばらつきの和として求めることができる。認識位置、リーチングそれぞれのばらつきの最大値を事前に見積もっておき、この最大値どうしの和が、保持位置のばらつきの最大値である。
【0141】
幾何情報Dは、搬送ロボット50の運動学モデルから取得することができる。具体的には、物体60を操作するときの、収容空間と物体60との位置関係は、事前に設計されている。また、搬送ロボット50の運動学モデルから、駆動関節部J4の軸の位置は算出できる。事前に設計された位置関係と、運動学モデルから算出される駆動関節部J4の軸の位置と、から、当該軸と収容空間の位置関係を算出することができる。この位置関係を事前に算出して不図示の記憶部に記憶し、記憶部から駆動関節部J4の軸と収容空間との間の距離を取得してもよい。
【0142】
また、幾何情報Dの取得において、収容空間の位置の代わりに、物体60の認識時に算出した物体60の前面の位置を用いてもよい。この場合には、搬送ロボット50の運動学モデルから算出される駆動関節部J4の軸の位置と、物体60の前面の位置と、の距離が、幾何情報Dとして取得される。
【0143】
更に、幾何情報Dの取得において、ArUcoマーカーを用いてもよい。具体的には、棚90の前面にArUcoマーカーを貼っておき、棚90の前面の位置を認識する。認識された位置と、搬送ロボット50の運動学モデルから算出される駆動関節部J4の軸の位置と、の距離が、幾何情報Dである。
【0144】
干渉リスクが高い状態の値を取得する場合には、開口縁Q1、Q2を通る直線と物体60の奥側面とが重なった状態での当該直線と駆動関節部J4の軸との距離を幾何情報Dとして取得すればよい。幾何情報Dは、幾何情報Lに幾何情報αの正弦を乗じることによっても算出される。幾何情報L、αは、後述するように上記(1)の情報及び上記(2)の情報から算出可能である。
【0145】
幾何情報Q1x、Q2xは、事前に設計された開口縁Q1、Q2の間隔を記憶部から読み出すことにより取得することができる。具体的には、物体60の認識位置を開口縁Q1、Q2の中心とし、開口縁Q1、Q2の間隔の半分を左右にオフセットした位置を幾何情報Q1x、Q2xとして取得する。又は、棚90の前面に設置されたArUcoマーカーの位置を開口縁Q1、Q2の中心とし、開口縁Q1、Q2の間隔の半分を左右にオフセットした位置を幾何情報Q1x、Q2xとして取得する。
【0146】
干渉リスクが高い状態の情報を取得する場合には、開口縁Q1、Q2の間隔として、上記(1)の情報として取得した、物体60の横幅を用いることができる。物体60の横幅を取得した後、物体60の横幅の半分を左右にオフセットした位置を幾何情報Q1x、Q2xとして取得する。
【0147】
上記(1)、(2)の情報と、幾何情報D、Q1x、Q2xと、を取得した後、搬送ロボット50は、幾何情報L、αを算出する処理を行う(S142)。
【0148】
幾何情報Lの算出には、まず、物体60の角部P1~P4のうち、物体60の回転により収容空間に存在する角部P1を選択する。その後、上記(1)、(2)の情報を用いることにより、角部P1と駆動関節部J4の軸との距離を算出することで、幾何情報Lが得られる。図13に示す例では、物体60が反時計回りに回転しているため角部P1が選択されるが、物体60が時計回りに回転する場合には、角部P2が選択される。
【0149】
幾何情報αは、上記(1)、(2)の情報から、駆動関節部J4の軸と角部P1と点Tとを頂点とする三角形の辺の長さを算出し、三角関数を用いることにより得られる。なお、点Tは、角部P1と角部P4とを通る直線と、駆動関節部J4の軸を通りX軸方向に対して回転角θ、傾いた直線と、の交点である。
【0150】
幾何情報L、αを算出した後、搬送ロボット50は、回転角θとX軸座標値Jxの目標軌道を算出する処理を行う(S143)。回転角θとX軸座標値Jxの目標軌道の算出において、開口縁Q1と交点N1を結ぶ線分の長さを「Q1N1」と表記し、開口縁Q2と交点N2を結ぶ線分の長さを「Q2N2」と表記する。
【0151】
図15は、回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jxを取得する処理を行う(S1501)。初期回転角θは、0(零)°であり、初期X軸座標値Jxは、取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0152】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、変数iを1に設定する処理を行う(S1502)。変数iを1に設定すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出する処理を行う(S1503)。回転角θは、回転角θi-1に予め定められた回転角変化量Δθを加算した値である。X軸座標値Jxは、X軸座標値Jxi-1と同値である。つまり、処理S1603において算出される回転角θ及びX軸座標値Jxは、物体60を並進移動させずに、回転角θi-1から回転角変化量Δθ分、物体60を回転させたときの値である。定められた回転角変化量Δθは、例えば1°である。
【0153】
回転角θ及びX軸座標値Jxを算出すると、搬送ロボット50は、長さQ2N2が0(零)より大きいか否かを判定する処理を行う(S1504)。長さQ2N2が0(零)より大きいことは、物体60が開口縁Q2と干渉しないことを意味する。
【0154】
図16は、長さQ2N2の求め方を説明するための図である。図16において、点N3は、角部P1から線分N1N2に下した垂線の足であり、点N4は、駆動関節部J4の軸から線分N1N2に下した垂線の足である。∠N1P1N3の角度及び∠P1N2N3の角度は、回転角θと同じになる。
【0155】
図16から明らかなように、点N3と点N4とを結ぶ線分の長さN3N4、角部P1と点N3とを結ぶ線分の長さP1N3の長さは、次の式から求められる。
N3N4=Lcos(α+θ) ・・・ (1)
P1N3=Lsin(α+θ)-D ・・・ (2)
【0156】
また、交点N1と点N3とを結ぶ線分の長さN1N3、交点N2と点N3とを結ぶ線分の長さN2N3は、次の式から求められる。
N1N3=P1N3×tanθ
=(Lsin(α+θ)-D)tanθ ・・・ (3)
N2N3=P1N3×cotθ
=(Lsin(α+θ)-D)cotθ ・・・ (4)
【0157】
交点N2と点N4とを結ぶ線分の長さN2N4は、長さN2N3から長さN3N4を引いた値であり、以下の式から求められる。
N2N4=N2N3-N3N4
=(Lsin(α+θ)-D)cotθ-Lcos(α+θ
・・・ (5)
【0158】
交点N2のX軸座標値N2xは、点N4のX座標値、すなわち駆動関節部J4の軸のX軸座標値Jxから長さN2N4を引いた値であり、以下の式から求められる。
N2x=Jx-N2N4
=Jx
-{(Lsin(α+θ)-D)cotθ-Lcos(α+θ)}
=Jx+Lcos(α+θ)-(Lsin(α+θ)-D)cotθ
・・・ (6)
【0159】
長さQ2N2は、交点N2のX軸座標値N2xから開口縁Q2の幾何情報Q2xを引いた値であり、以下の式から求められる。
Q2N2=N2x-Q2x
=Jx+Lcos(α+θ
-(Lsin(α+θ)-D)cotθ-Q2x ・・・(7)
【0160】
上記の式(7)のうち、幾何情報L、α、D及びX軸座標値Q2xは、処理S141及び処理S142により取得また算出される値である。したがって、式(7)から、処理S1505において用いられる長さQ2N2が得られる。
【0161】
図15に戻り、処理S1504において、長さQ2N2が0(零)よりも大きい場合(S1504YES)、回転角θi-1から回転角θへの回転動作が可能であるため、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S1505)。処理S1504において、長さQ2N2が0(零)よりも大きくない場合(S1504NO)、回転角θi-1から回転角θへの回転動作が不能であるため、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し直す処理を行う(S1506)。回転角θは、回転角θi-1と同値である。X軸座標値Jxは、X軸座標値Jxi-1に予め定められた並進移動量ΔJxを加算した値である。つまり、処理S1606において算出される回転角θ及びX軸座標値Jxは、物体60を回転させずに、X軸座標値Jxi-1から並進移動量ΔJx分、物体60を並進移動させたときの値である。
【0162】
回転角θ及びX軸座標値Jxを算出すると、搬送ロボット50は、長さQ1N1が0(零)より大きいか否かを判定する処理を行う(S1507)。長さQ1N1が0(零)より大きいことは、物体60が開口縁Q1と干渉しないことを意味する。
【0163】
図16から明らかなように、長さQ1N1は、開口縁Q1のX軸座標値Q1xから交点N1のX軸座標値N1xを引いた値である。交点N1のX軸座標値N1xは、点N4のX軸座標値、すなわち駆動関節部J4の軸のX軸座標値Jxに長さN3N4及び長さN1N3を加算した値である。したがって、交点N1のX軸座標値N1x及び長さQ1N1は、式(1)及び式(3)を用いて、以下の式から求められる。
N1x=Jx+N3N4+N1N3
=Jx+Lcos(α+θ
+(Lsin(α+θ)-D)tanθ ・・・ (8)
Q1N1=Q1x-N1x
=Q1x-{Jx+Lcos(α+θ
+(Lsin(α+θ)-D)tanθ
=Q1x-Jx-Lcos(α+θ
-(Lsin(α+θ)-D)tanθ ・・・ (9)
【0164】
上記の式(9)のうち、幾何情報L、α、D及びX軸座標値Q1xは、処理S141及び処理S142により取得また算出される値である。したがって、式(9)から、処理S1508において用いられる長さQ1N1が得られる。
【0165】
図15に戻り、処理S1507において、長さQ1N1が0(零)よりも大きい場合(S1507YES)、X軸座標値Jxi-1からX軸座標値Jxへの並進移動動作が可能であるため、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S1508)。また、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S1509)、再度、処理S1506及び処理S1507を行う。
【0166】
処理S1507において、長さQ1N1が0(零)よりも大きくない場合(S1507NO)、X軸座標値Jxi-1からX軸座標値Jxへの並進移動動作が不能であるため、搬送ロボット50は、回転動作に関連する一連の処理(S1503~S1505)を行う。
【0167】
回転動作に関連する一連の処理(S1503~S1505)を行うと、搬送ロボット50は、回転角θが最終目標角度以上であるか否かを判定する処理を行う(S1510)。最終目標角度は、90°である。回転角θが最終目標角度以上でない場合(S1510NO)、変数iを1だけインクリメントする処理を行い(S1511)、回転動作に関連する一連の処理(S1503~S1505)を行う。このときに、処理S1504において、長さQ2N2が0(零)よりも大きくない場合(S1504NO)、並進移動動作に関連する一連の処理(S1506~S1509)を再び行う。
【0168】
処理S1510において、回転角θが最終目標角度以上である場合(S1510YES)、回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)は終了する。
【0169】
図14に戻り、回転角θとX軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、算出した目標軌道にしたがって、駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理を行う(S144)。駆動関節部J1~J5及び/又は車輪W1~W4の駆動が完了すると、物体60の姿勢を変更する処理(S95)は終了する。
【0170】
図9に戻り、取出した物体60の姿勢を変更すると、搬送ロボット50は、物体60をスロット55に収容する処理を行う(S96)。
【0171】
物体60をスロット55に収容する処理では、搬送ロボット50は、まず、ロボットアーム52の姿勢を制御し、スライドテーブル53の高さをいずれかのスロット55の下端と同じ高さにする。このとき、カメラ56から撮影された画像情報等を使用してもよい。
【0172】
その後、搬送ロボット50は、吸引部54を用いて物体60をスロット55に収容する。より詳細には、搬送ロボット50は、物体60がスロット55内に十分に包含されるまで、吸引部54をスライド移動させ、その後、吸引を解除する。以上により、物体60をスロット55に収容する処理(S96)は終了する。
【0173】
物体60をスロット55に収容した後、搬送ロボット50は、選択したスロット55にどの物体60を収容したかを記憶部へと記憶する処理を行う(S97)。記憶処理の後、搬送ロボット50は、割り当てられた搬送タスクに係るすべての物体60を保管用の棚90から取出したか否かを判定する(S98)。未だすべての物体60を取出していない場合(S98NO)、取出し対象の物体60を次の順序の物体60へと変更する処理を行い(S99)、再度一連の処理(S92~S98)を実行する。すべての物体60を取出した場合(S98YES)、処理は終了する。
【0174】
図8に戻り、物体60の取出し処理の後、搬送ロボット50は、一時保管用の棚90上の予約した空きロケーションへの物体60の収容処理を実行する(S85)。空きロケーションへの収容処理の完了後、搬送ロボット50は、ロボット管理サーバ20へと割り当てられたタスクを完了したことを通知する処理を行う(S86)。この通知処理の後、再び、搬送ロボット50はロボット管理サーバ20からの指令を待機する状態となる(S81NO)。
【0175】
なお、ロボット管理サーバ20は、搬送ロボット50からタスク完了通知を受信すると、当該搬送ロボットがタスクが割り当てられていない状態へと変更されたとして、タスク割り当てステータス情報を更新する。
【0176】
(1.4 一時保管用の棚から保管用の棚への物体搬送動作)
次に、搬送ロボット50が、一時保管用の棚90から物体60を取出し、保管用の棚90へと搬送(返却)する動作について説明する。
【0177】
図17は、返却タスクを指令するロボット管理サーバ20の動作に関するゼネラルフローチャートである。同図から明らかな通り、処理が開始すると、ロボット管理サーバ20は、一時保管棚管理サーバ30に対して一時保管用の棚90のステータス情報をリクエストする処理を行う(S171)。このリクエスト処理の後、ロボット管理サーバ20は待機状態となる(S172NO)。
【0178】
一時保管棚管理サーバ30は、一時保管用の棚90の一時保管位置に現在収容されている物体60又は空きロケーションに関する情報と、作業ステータス情報、すなわち、収容された物体60について作業者による作業が完了しており返却待ち状態にあるか否かに関する情報を記憶・管理している。一時保管棚管理サーバ30は、ロボット管理サーバ20からステータス情報に関するリクエストを受信すると、ロボット管理サーバ20に対して一時保管用の棚90のステータス情報、すなわち、一時保管位置と、各一時保管位置に収容されている物体60、及び、その物体60に関する作業ステータス(作業が完了しているか否か)に関する情報を送信する。
【0179】
待機状態にあったロボット管理サーバ20は、一時保管棚管理サーバ30からステータス情報を受信すると(S172YES)、返却タスクリストの生成処理と返却タスクのグループ化処理を行う(S173)。
【0180】
返却タスクリストの生成処理とは、一時保管用の棚90のステータス情報と各物体60の保管位置情報に基づいて、返却先(すなわち、保管用の棚90における保管位置)の属する領域毎に搬送対象となる物体60を分類する処理である。また、返却タスクのグループ化処理とは、返却タスクリストに含まれ、返却先となる保管用の棚90における保管位置の属する領域が同一な単位返却タスクを搬送ロボット50の最大積載個数に基づいてグループ化して搬送ロボット50へと割り当てる返却タスクとする処理である。
【0181】
グループ化処理が完了すると、ロボット管理サーバ20は、グループ化された返却タスクのうちの1つを選択する処理を行う(S174)。この選択処理の後、ロボット管理サーバ20は、返却タスクリストから選択した返却タスクリストを削除して返却タスクリストを更新する処理を行う(S175)。
【0182】
更新処理の後、ロボット管理サーバ20は、搬送ロボット50の選択処理を行う(S176)。ロボット管理サーバ20は、各搬送ロボット50の現在位置情報、現在のタスク割り当てステータス等の情報を取得している。これらの情報に基づき、ロボット管理サーバ20は、現在、タスクが割り当てられていない搬送ロボット50のうちから、任意の搬送ロボット50を選択する処理を行う。
【0183】
選択処理の後、ロボット管理サーバ20は、選択した搬送ロボット50に対して所定の指令処理を行う(S177)。指令は、返却タスクに関する情報を含むものである。
【0184】
この指令処理の後、返却タスクリストに係るすべての返却タスクを搬送ロボット50に対して指令したか否かを判定する(S178)。この判定の結果、未だすべての返却タスクを搬送ロボット50に対して指令していない場合(S178NO)、再度一連の処理(S174~S178)を実行する。一方、すべての搬送タスクを搬送ロボット50に対して指令した場合(S178YES)、再度、一時保管棚ステータス情報の取得処理から一連の処理(S171~S178)を実行する。
【0185】
図18は、返却タスクを実行する搬送ロボット50の処理に関するゼネラルフローチャートである。同図から明らかな通り、処理が開始すると、搬送ロボット50は、ロボット管理サーバ20から指令を受信するまで待機状態となる(S181NO)。
【0186】
その後、ロボット管理サーバ20から指令を受信すると(S181YES)、搬送ロボット50は、一時保管用の棚90から返却対象の物体60を取出す処理を実行する(S182)。一時保管用の棚90からの物体60を取出した後、搬送ロボット50は、保管用の棚90への返却処理を実行する(S183)。
【0187】
図19は、保管用の棚90への返却処理の詳細フローチャートである。同図から明らかな通り、処理が開始すると、搬送ロボット50は、スロット55に収容した複数の物体60に関して保管用の棚90の保管位置への収容順を決定する処理を行う(S191)。この順序は、様々な手法で決定することができる。例えば、搬送ロボット50からの距離が近い順に収容していってもよい。
【0188】
収容順の決定処理の後、搬送ロボット50は、搬送ロボット50の現在位置から最初の目標位置となる保管用の棚90の保管位置の前までの移動経路の計画処理を行う(S192)。この経路計画は既存の様々な手法により実現することができる。例えば、環境地図を用いて経路計画を行ってもよい。
【0189】
この経路計画処理の後、搬送ロボット50は、目標となる返却位置の前へと移動する処理を行う(S193)。なお、このとき、搬送ロボット50の停止位置は事前設計しておいてもよい。搬送ロボット50は、本体部51の左側面(ロボットアーム52が取付けられていない側面)を保管用の棚90に対向させるように搬送ロボット50の前後方向(X軸方向)と保管用の棚90の側面とを平行にして停止する。
【0190】
目標となる返却位置の前へと移動した後、搬送ロボット50は、スロット55から物体60を取出す処理を行う(S194)。
【0191】
物体60をスロット55から取出す処理では、搬送ロボット50は、まず、ロボットアーム52の姿勢を制御し、スライドテーブル53の高さを取出し対象の物体60を収容しているスロット55の下端と同じ又はそれよりやや低い位置にする。また、搬送ロボット50は、駆動関節部J5の軸をスロット55からの物体60の取出し方向と平行にし、駆動関節部J4の軸を鉛直にする。このとき、カメラ56から撮影された画像情報等を使用してもよい。
【0192】
その後、搬送ロボット50は、吸引部54を用いて取出し対象の物体60をスロット55から取出す。より詳細には、搬送ロボット50は、まず、取出し対象の物体60に吸引部54が当接するまで、吸引部54をスライド移動させる。その後、搬送ロボット50は、真空ポンプ58を駆動し、吸引部54により目標の物体60を吸引し保持する。搬送ロボット50は、取出し対象の物体60を保持した状態で、吸引部54を逆方向にスライド移動させる。これにより、取出し対象の物体60は、スライドテーブル53上を吸引部54とともに移動し、スロット55から取出される。
【0193】
スロット55から取出し対象の物体60を取出した後、搬送ロボット50は、取出した物体60の姿勢を変更する処理を行う(S195)。物体60の姿勢を変更する処理では、保管用の棚90から取出した物体60の姿勢を変更する場合と同様に、取出した物体60を90°回転させる間に並進移動させる。そのため、角部P1の軌道は、回転角が増加するにつれ、取出した物体60を並進移動させることなく回転させる場合の角部P1の軌道からX軸方向に離れることになる。したがって、取出した物体60が周辺環境物と干渉するリスクを低減することができる。これにより、通路幅の更なる狭小化が可能となり、収容効率を更に構造させることができる。
【0194】
図20は、取出した物体60の姿勢を変更する処理の詳細フローチャートであり、取出した物体60を90°回転させる間に並進移動させる動作に関するフローチャートである。同図から明らかな通り、処理が開始すると、搬送ロボット50は、幾何情報L、αの算出に必要な情報と、幾何情報D、Q1x、Q2xと、を取得する処理を行う(S201)。
【0195】
幾何情報L、αの算出に必要な情報と、幾何情報D、Q1x、Q2xと、を取得した後、搬送ロボット50は、幾何情報L、αを算出する処理を行う(S142)。処理S201及び処理S202は、処理S141及び処理S142とほぼ同じであるため、ここではこれらの詳細は省略する。
【0196】
幾何情報L、αを算出した後、搬送ロボット50は、回転角θとX軸座標値Jxの目標軌道を算出する処理を行う(S203)。
【0197】
図21及び図22は、回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jxを取得する処理を行う(S2101)。初期回転角θは、90°であり、初期X軸座標値Jxは、スロット55から取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0198】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、変数iを1に設定する処理を行う(S2102)。変数iを1に設定すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出する処理を行う(S2103)。回転角θは、回転角θi-1と同値である。X軸座標値Jxは、X軸座標値Jxi-1に予め定められた並進移動量ΔJxを加算した値である。つまり、処理S2103において算出される回転角θ及びX軸座標値Jxは、物体60を回転させずに、X軸座標値Jxi-1から並進移動量ΔJx分、物体60を並進移動させたときの値である。
【0199】
回転角θ及びX軸座標値Jxを算出すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行い(S2104)、変数iを1だけインクリメントする処理を行う(S2105)。
【0200】
変数iを1だけインクリメントする処理を行うと、搬送ロボット50は、駆動関節部J4の軸と開口縁Q2とを結ぶ線分の長さJ4Q2が幾何情報L以下であるか否かを判定する処理を行う(S2106)。長さJ4Q2が幾何情報L以下であることは、物体60を回転させたときに物体60が開口縁Q2と干渉することを意味する。したがって、物体60の並進移動を継続する必要がある。
【0201】
図16から明らかなように、長さJ4Q2とX軸座標値Jxとの間には、次の関係がある。
(J4Q2)=(Jx-Q2x)+D ・・・ (10)
【0202】
上記の式(10)のうち、幾何情報D及びX軸座標値Q2xは、処理S201により取得される値である。したがって、式(10)から、処理S2106において用いられる長さJ4Q2が得られる。
【0203】
図21に戻り、処理S2106において、長さJ4Q2が幾何情報L以下の場合(S2106YES)、搬送ロボット50は、再度、処理S2103~処理S2105を行う。処理S2106において、長さJ4Q2が幾何情報L以下でない場合(S2106NO)、開口縁Q2との干渉なしに物体60の回転が可能であるため、搬送ロボット50は、回転動作に関する一連の処理を開始する。具体的には、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出する処理を行う(S2201)。回転角θは、回転角θi-1から予め定められた回転角変化量Δθを減算した値である。X軸座標値Jxは、X軸座標値Jxi-1と同値である。つまり、処理S2201において算出される回転角θ及びX軸座標値Jxは、物体60を並進移動させずに、回転角θi-1から回転角変化量Δθ分、物体60を回転させたときの値である。定められた回転角変化量Δθは、例えば1°である。
【0204】
回転角θ及びX軸座標値Jxを算出すると、搬送ロボット50は、長さQ1N1が0(零)より大きいか否かを判定する処理を行う(S2202)。長さQ1N1が0(零)より大きいことは、物体60が開口縁Q1と干渉しないことを意味する。長さQ1N1は、前述の式(9)を用いて算出される。
【0205】
長さQ1N1が0(零)よりも大きい場合(S2202YES)、回転角θi-1から回転角θへの回転動作が可能であるため、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2203)。処理S2202において、長さQ1N1が0(零)よりも大きくない場合(S2202NO)、回転角θi-1から回転角θへの回転動作が不能であるため、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し直す処理を行う(S2204)。回転角θは、回転角θi-1と同値である。X軸座標値Jxは、X軸座標値Jxi-1から予め定められた並進移動量ΔJxを減算した値である。つまり、処理S2204において算出される回転角θ及びX軸座標値Jxは、物体60を回転させずに、X軸座標値Jxi-1から並進移動量ΔJx分、物体60を並進移動させたときの値である。
【0206】
回転角θ及びX軸座標値Jxを算出すると、搬送ロボット50は、長さJ4Q2が長さJ4P2より大きいか否かを判定する処理を行う(S2205)。長さJ4Q2が長さJ4P2より大きいことは、回転時に物体60が開口縁Q2と干渉しないことを意味する。長さJ4Q2は、前述の式(10)を用いて算出される。長さJ4P2は、駆動関節部J4の軸と角部P2との間の距離であり、幾何情報Lと同様に、上記の(1)、(2)の情報を取得することにより算出することができる。
【0207】
長さJ4Q2が長さJ4P2よりも大きい場合(S2205YES)、X軸座標値Jxi-1からX軸座標値Jxへの並進移動動作が可能である(X軸座標値Jxへ並進移動しても、回転時に角部P2と開口縁Q2とが干渉しない)。そのため、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2206)。また、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S2207)、再度、処理S2204及び処理S2205を行う。
【0208】
処理S2205において、長さJ4Q2が長さJ4P2よりも大きくない場合(S2205NO)、X軸座標値Jxi-1からX軸座標値Jxへの並進移動動作が不能である(X軸座標値Jxへ並進移動すると、回転時に角部P2と開口縁Q2とがする)。そのため、搬送ロボット50は、X軸座標値Jxへの並進移動動作ではなく、回転動作に関連する一連の処理(S2201~S2202)を行う。
【0209】
回転動作に関連する一連の処理(S2201~S2202)を行うと、搬送ロボット50は、回転角θが最終目標角度以下であるか否かを判定する処理を行う(S2208)。最終目標角度は、0°である。回転角θが最終目標角度以下でない場合(S2208NO)、変数iを1だけインクリメントする処理を再び行い(S2209)、回転動作に関連する一連の処理(S2201~S2202)を行う。このときに、処理S2202において、長さQ1N1が0(零)よりも大きくない場合(S2202NO)、並進移動動作に関連する一連の処理(S2204~S2207)を再び行う。
【0210】
処理S2208において、回転角θが最終目標角度以下である場合(S2208YES)、搬送ロボット50は、長さQ1N1と長さQ2N2とが等しくなるまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する処理を行う(S2210)。その後、回転角θとX軸座標値Jxの目標軌道を算出する処理(S203)は終了する。
【0211】
図20に戻り、回転角θとX軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、算出した目標軌道にしたがって、駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理を行う(S204)。駆動関節部J1~J5及び/又は車輪W1~W4の駆動が完了すると、物体60の姿勢を変更する処理(S195)は終了する。
【0212】
図19に戻り、取出した物体60の姿勢を変更すると、搬送ロボット50は、吸引部54を用いて目標の物体60を保管用の棚90に収容する処理を行う(S196)。具体的には、取出した物体60が保管用の棚90内に十分に包含されるまで、吸引部54をスライド移動させ、その後、吸引を解除する。
【0213】
物体60を保管用の棚90内に収容した後、搬送ロボット50は、保管用の棚90にどの物体60を収容したかを記憶部へと記憶する処理を行う(S197)。記憶処理の後、搬送ロボット50は、割り当てられた搬送タスクに係るすべての物体60をスロット55から取出したか否かを判定する(S198)。未だすべての物体60を取出していない場合(S198NO)、取出し対象の物体60を次の順序の物体60へと変更する処理を行い(S199)、再度一連の処理(S192~S198)を実行する。すべての物体60を取出した場合(S198YES)、処理は終了する。
【0214】
図18に戻り、物体60の取出し処理の後、搬送ロボット50は、ロボット管理サーバ20へと割り当てられたタスクを完了したことを通知する処理を行う(S184)。この通知処理の後、再び、搬送ロボット50はロボット管理サーバ20からの指令を待機する状態となる(S181NO)。
【0215】
なお、ロボット管理サーバ20は、搬送ロボット50からタスク完了通知を受信すると、当該搬送ロボットがタスクが割り当てられていない状態へと変更されたとして、タスク割り当てステータス情報を更新する。
【0216】
(2.第2実施形態)
次に、本発明の第2実施形態について説明する。なお、以下では、第1実施形態と同一の構成については同一の符号が付与される。
【0217】
第1実施形態では、物体60の回転と、物体60の並進移動とを、交互に実行する。本実施形態では、物体60の回転と同期して物体60を並進移動させる点で、第1実施形態と相違する。物体60の回転と並行して物体60が並進移動するため、取出した物体60の姿勢の変更に要する時間を短縮することができる。
【0218】
また、本実施形態では、開口縁Q1と物体60とを接触させ続け、開口縁Q1と物体60とを接触させることができなくなったときに、物体60の並進移動を停止する。以下、本実施形態に係る物体60の姿勢を変更する処理について、詳述する。
【0219】
(2.1 保管用の棚から取出した物体の姿勢変更動作)
幾何情報L、αを算出する処理(S142)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S144)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0220】
図23は、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jxを取得する処理を行う(S2301)。初期回転角θは、0(零)°であり、初期X軸座標値Jxは、取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0221】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、変数iを1に設定する処理を行う(S2302)。変数iを1に設定すると、搬送ロボット50は、回転角θを算出する処理を行う(S2303)。回転角θは、回転角θi-1に予め定められた回転角変化量Δθを加算した値である。定められた回転角変化量Δθは、例えば1°である。
【0222】
回転角θを算出すると、搬送ロボット50は、X軸座標値JxがX軸座標値Jxi-1のときに駆動関節部J4の軸と開口縁Q1とを結ぶ線分の長さJ4Q1が幾何情報Lよりも小さいか否かを判定する処理を行う(S2304)。長さJ4Q1が幾何情報Lよりも小さいことは、開口縁Q1と物体60とが接触するX軸座標値Jxが存在することを意味する。長さJ4Q1は、次の式から算出可能である。
J4Q1=((Q1x-Jxi-1+D1/2 ・・・ (11)
【0223】
長さJ4Q1が幾何情報Lよりも小さい場合(S2304YES)、搬送ロボット50は、長さQ1N1が0(零)となるX軸座標値Jxを算出する処理を行う(S2305)。X軸座標値Jxは、前述の式(9)から算出可能である。長さJ4Q1が幾何情報Lよりも小さくない場合(S2304NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行う(S2306)。X軸座標値JxをX軸座標値Jxi-1とすることは、物体60を並進移動させないことを意味する。
【0224】
X軸座標値Jxを算出した後、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2307)。
【0225】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以上であるか否かを判定する処理を行う(S2308)。最終目標角度は、90°である。回転角θが最終目標角度以上でない場合(S2308NO)、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S2309)、再度一連の処理(S2303~S2308)を行う。回転角θが最終目標角度以上である場合(S2308YES)、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0226】
(2.2 保管用の棚へ収容する物体の姿勢変更動作)
幾何情報L、αを算出する処理(S220)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S204)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0227】
図24は、スロット55から取出した後保管用の棚90へ収容する前の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jxを取得する処理を行う(S2401)。初期回転角θは、90°であり、初期X軸座標値Jxは、スロット55から取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0228】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し記憶する処理を行う(S2402)。回転角θは、初期回転角θと同値である。X軸座標値Jxは、長さJ4Q1が幾何情報Lと一致する値である。X軸座標値Jxは、次の式から算出可能である。
Jx=Q1x+(L+D1/2
【0229】
回転角θ及びX軸座標値Jxを算出し記憶すると、搬送ロボット50は、初期X軸座標値JxからX軸座標値Jxまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する(S2403)。
【0230】
X軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、変数iを2に設定する処理を行い(S2404)、回転角θを算出する処理を行う(S2405)。回転角θは、回転角θi-1から予め定められた回転角変化量Δθを減算した値である。定められた回転角変化量Δθは、例えば1°である。
【0231】
回転角θを算出すると、搬送ロボット50は、長さQ1N1が予め定められた値δよりも小さいか否かを判定する処理を行う(S2406)。値δは、交点N1が開口縁Q1に十分に接近したか否かを判定可能な程度に小さいことが望ましい。長さQ1N1は、式(9)から算出可能である。なお、式(9)から長さQ1N1を求めるときに、JxをJx1-1とする。
【0232】
長さQ1N1が値δよりも小さい場合(S2406YES)、搬送ロボット50は、長さQ1N1が0(零)となるX軸座標値Jxを算出する処理を行い(S2407)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2408)。X軸座標値Jxは、前述の式(9)から算出可能である。長さQ1N1が値δよりも小さくない場合(S2406NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行い(S2409)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2408)。
【0233】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以下であるか否かを判定する処理を行う(S2410)。最終目標角度は、0°である。回転角θが最終目標角度以下でない場合(S2410NO)、変数iを1だけインクリメントする処理を行い(S2411)、再度一連の処理(S2405~S2410)を行う。回転角θが最終目標角度以上である場合(S2410YES)、搬送ロボット50は、長さQ1N1と長さQ2N2とが等しくなるまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する処理を行う(S2412)。その後、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0234】
(3.第3実施形態)
次に、本発明の第3実施形態について説明する。なお、以下では、第1、第2実施形態と同一の構成については同一の符号が付与される。
【0235】
第2実施形態では、開口縁Q1と物体60とを接触させ続け、開口縁Q1と物体60とを接触させることができなくなったときに、物体60の並進移動を停止する。本実施形態では、物体60を並進移動させずに回転させたとしても周辺環境物と干渉しない位置に到達したときに、物体60の並進移動を停止し物体60を回転させる点で、第2実施形態と相違する。本実施形態によれば、物体60の並進移動量が減る。したがって、ロボットアーム52に要求されるリーチを短くすることができるとともに、取出した物体60の姿勢の変更に要する時間を短縮することができる。以下、本実施形態に係る物体60の姿勢を変更する処理について、詳述する。
【0236】
(3.1 保管用の棚から取出した物体の姿勢変更動作)
幾何情報L、αを算出する処理(S142)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S144)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0237】
図25は、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jxを取得する処理を行う(S2501)。初期回転角θは、0(零)°であり、初期X軸座標値Jxは、取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0238】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、変数iを1に設定する処理を行う(S2502)。変数iを1に設定すると、搬送ロボット50は、回転角θを算出する処理を行う(S2503)。回転角θは、回転角θi-1に予め定められた回転角変化量Δθを加算した値である。定められた回転角変化量Δθは、例えば1°である。
【0239】
回転角θを算出すると、搬送ロボット50は、X軸座標値JxがX軸座標値Jxi-1のときに長さJ4Q2が幾何情報Lよりも小さいか否かを判定する処理を行う(S2504)。長さJ4Q2が幾何情報Lよりも小さいことは、開口縁Q2と物体60とが接触するX軸座標値Jxが存在することを意味する。長さJ4Q2は、前述の式(10)から算出可能である。
【0240】
長さJ4Q2が幾何情報Lよりも小さい場合(S2504YES)、搬送ロボット50は、長さQ1N1が0(零)となるX軸座標値Jxを算出する処理を行う(S2505)。X軸座標値Jxは、前述の式(9)から算出可能である。長さJ4Q2が幾何情報Lよりも小さくない場合(S2504NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行う(S2506)。X軸座標値JxをX軸座標値Jxi-1とすることは、物体60を並進移動させないことを意味する。
【0241】
X軸座標値Jxを算出した後、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2507)。
【0242】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以上であるか否かを判定する処理を行う(S2508)。最終目標角度は、90°である。回転角θが最終目標角度以上でない場合(S2508NO)、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S2509)、再度一連の処理(S2503~S2508)を行う。回転角θが最終目標角度以上である場合(S2508YES)、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0243】
(3.2 保管用の棚へ収容する物体の姿勢変更動作)
幾何情報L、αを算出する処理(S220)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S204)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0244】
図26は、スロット55から取出した後保管用の棚90へ収容する前の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jx0を取得する処理を行う(S2601)。初期回転角θは、90°であり、初期X軸座標値Jxは、スロット55から取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0245】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し記憶する処理を行う(S2602)。回転角θは、初期回転角θと同値である。X軸座標値Jxは、長さJ4Q2が幾何情報Lよりも大きくなる値である。X軸座標値Jxは、次の式を満たすように決定される。
Jx>Q2x+(L+D1/2
【0246】
回転角θ及びX軸座標値Jxを算出し記憶すると、搬送ロボット50は、初期X軸座標値JxからX軸座標値Jxまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する(S2603)。
【0247】
X軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、変数iを2に設定する処理を行い(S2604)、回転角θを算出する処理を行う(S2605)。回転角θは、回転角θi-1から予め定められた回転角変化量Δθを減算した値である。定められた回転角変化量Δθは、例えば1°である。
【0248】
回転角θを算出すると、搬送ロボット50は、長さQ1N1が予め定められた値δよりも小さいか否かを判定する処理を行う(S2606)。値δは、交点N1が開口縁Q1に十分に接近したか否かを判定可能な程度に小さいことが望ましい。長さQ1N1は、式(9)から算出可能である。なお、式(9)から長さQ1N1を求めるときに、JxをJx1-1とする。
【0249】
長さQ1N1が値δよりも小さい場合(S2606YES)、搬送ロボット50は、長さQ1N1が0(零)となるX軸座標値Jxを算出する処理を行い(S2607)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2608)。X軸座標値Jxは、前述の式(9)から算出可能である。長さQ1N1が値δよりも小さくない場合(S2606NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行い(S2609)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2608)。
【0250】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以下であるか否かを判定する処理を行う(S2610)。最終目標角度は、0°である。回転角θが最終目標角度以下でない場合(S2610NO)、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S2611)、再度一連の処理(S2605~S2610)を行う。回転角θが最終目標角度以上である場合(S2610YES)、搬送ロボット50は、長さQ1N1と長さQ2N2とが等しくなるまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する処理を行う(S2612)。その後、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0251】
(4.第4実施形態)
次に、本発明の第4実施形態について説明する。なお、以下では、第1~第3実施形態と同一の構成については同一の符号が付与される。
【0252】
第2及び第3実施形態では、開口縁Q1と物体60とを接触させ続けるように物体60の回転と並進移動を同期している。本実施形態では、物体60を開口縁Q1から一定の距離、離した状態で物体60の回転と並進移動を同期する点で、第2及び第3実施形態と相違する。本実施形態では、物体60が開口縁Q1から一定の距離、離れるため、物体60と開口縁Q1との干渉リスクをより低減することができる。以下、本実施形態に係る物体60の姿勢を変更する処理について、詳述する。
【0253】
(4.1 保管用の棚から取出した物体の姿勢変更動作)
幾何情報L、αを算出する処理(S142)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S144)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0254】
図27は、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jxを取得する処理を行う(S2701)。初期回転角θは、0(零)°であり、初期X軸座標値Jxは、取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0255】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し記憶する処理を行う(S2702)。回転角θは、初期回転角θと同値である。X軸座標値Jxは、初期X軸座標値Jxから予め定められた値ηを減算した値である。値ηは、物体60の角部P1が開口縁Q1、Q2と適度な距離をとるのに適した値であることが望ましい。
【0256】
回転角θ及びX軸座標値Jxを算出し記憶すると、搬送ロボット50は、初期X軸座標値JxからX軸座標値Jxまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する(S2703)。X軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、X軸座標値JxがJxのときの角部P1と開口縁Q1とを結ぶ線分の長さP1Q1を値ζとして算出する処理を行う(S2704)。
【0257】
値ζを算出すると、搬送ロボット50は、変数iを2に設定する処理を行い(S2705)、回転角θを算出する処理を行う(S2706)。回転角θは、回転角θi-1に予め定められた回転角変化量Δθを加算した値である。定められた回転角変化量Δθは、例えば1°である。
【0258】
回転角θを算出すると、搬送ロボット50は、X軸座標値JxがX軸座標値Jxi-1のときに長さJ4Q2が幾何情報Lよりも小さいか否かを判定する処理を行う(S2707)。長さJ4Q2が幾何情報Lよりも小さいことは、開口縁Q2と物体60とが接触するX軸座標値Jxが存在することを意味する。長さJ4Q2は、前述の式(10)から算出可能である。
【0259】
長さJ4Q2が幾何情報Lよりも小さい場合(S2707YES)、搬送ロボット50は、長さQ1N1が値ζとなるX軸座標値Jxを算出する処理を行う(S2708)。X軸座標値Jxは、前述の式(9)から算出可能である。長さJ4Q2が幾何情報Lよりも小さくない場合(S2707NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行う(S2709)。X軸座標値JxをX軸座標値Jxi-1とすることは、物体60を並進移動させないことを意味する。
【0260】
X軸座標値Jxを算出した後、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2710)。
【0261】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以上であるか否かを判定する処理を行う(S2711)。最終目標角度は、90°である。回転角θが最終目標角度以上でない場合(S2711NO)、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S2712)、再度一連の処理(S2706~S2711)を行う。回転角θが最終目標角度以上である場合(S2711YES)、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0262】
(4.2 保管用の棚へ収容する物体の姿勢変更動作)
幾何情報L、αを算出する処理(S220)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S204)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0263】
図28は、スロット55から取出した後保管用の棚90へ収容する前の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jx0を取得する処理を行う(S2801)。初期回転角θは、90°であり、初期X軸座標値Jxは、スロット55から取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0264】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し記憶する処理を行う(S2802)。回転角θは、初期回転角θと同値である。X軸座標値Jxは、長さJ4Q2が幾何情報Lよりも大きくなる値である。X軸座標値Jxは、次の式を満たすように決定される。
Jx>Q2x+(L+D1/2
【0265】
回転角θ及びX軸座標値Jxを算出し記憶すると、搬送ロボット50は、初期X軸座標値JxからX軸座標値Jxまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する処理を行う(S2803)。
【0266】
X軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、変数iを2に設定する処理を行い(S2804)、回転角θを算出する処理を行う(S2805)。回転角θは、回転角θi-1から予め定められた回転角変化量Δθを減算した値である。定められた回転角変化量Δθは、例えば1°である。
【0267】
回転角θを算出すると、搬送ロボット50は、長さQ1N1が予め定められた値ζよりも小さいか否かを判定する処理を行う(S2606)。値ζは、物体60の角部P1が開口縁Q1、Q2と適度な距離をとるのに適した値であることが望ましい。長さQ1N1は、式(9)から算出可能である。なお、式(9)から長さQ1N1を求めるときに、JxをJx1-1とする。
【0268】
長さQ1N1が値ζよりも小さい場合(S2806YES)、搬送ロボット50は、長さQ1N1が値ζとなるX軸座標値Jxを算出する処理を行い(S2807)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2808)。X軸座標値Jxは、前述の式(9)から算出可能である。長さQ1N1が値ζよりも小さくない場合(S2806NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行い(S2809)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2808)。
【0269】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以下であるか否かを判定する処理を行う(S2810)。最終目標角度は、0°である。回転角θが最終目標角度以下でない場合(S2810NO)、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S2811)、再度一連の処理(S2805~S2810)を行う。回転角θが最終目標角度以上である場合(S2610YES)、搬送ロボット50は、長さQ1N1と長さQ2N2とが等しくなるまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する処理を行う(S2812)。その後、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0270】
(5.第5実施形態)
次に、本発明の第5実施形態について説明する。なお、以下では、第1~第4実施形態と同一の構成については同一の符号が付与される。
【0271】
第2及び第3実施形態では、開口縁Q1と物体60とを接触させ続けるように物体60の回転と並進移動を同期し、第4実施形態では、開口縁Q1と物体60とが一定の距離を保つように物体60の回転と並進移動を同期している。本実施形態では、長さQ1N1と長さQ2N2とが等しくなるように物体60の回転と並進移動を同期する点で、第2~第4実施形態と相違する。長さQ1N1と長さQ2N2とが等しいことは、交点N1、N2どうしの中点と、収容空間の開口縁Q1、Q2どうしの中点と、が一致することと同義である。本実施形態では、物体60が開口縁Q1、Q2の両方から等しく離れるため、物体60と開口縁Q1との干渉リスクと、物体60と開口縁Q2との干渉リスクと、の両方を低減することができる。以下、本実施形態に係る物体60の姿勢を変更する処理について、詳述する。
【0272】
(5.1 保管用の棚から取出した物体の姿勢変更動作)
幾何情報L、αを算出する処理(S142)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S144)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0273】
図29は、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jxを取得する処理を行う(S2901)。初期回転角θは、0(零)°であり、初期X軸座標値Jxは、取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0274】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し記憶する処理を行う(S2902)。回転角θは、初期回転角θと同値である。X軸座標値Jxは、次の式により算出される値とする。
Jx=(Q1x+Q2x)/2-(Lcosα)/2 ・・・ (12)
式(12)により算出される値をX軸座標値Jxとすることにより、物体60の回転直後に長さQ1N1と長さQ2N2とが極めて等しくなる。
【0275】
回転角θ及びX軸座標値Jxを算出し記憶すると、搬送ロボット50は、初期X軸座標値JxからX軸座標値Jxまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する(S2903)。
【0276】
X軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、変数iを2に設定する処理を行い(S2904)、回転角θを算出する処理を行う(S2905)。回転角θは、回転角θi-1に予め定められた回転角変化量Δθを加算した値である。定められた回転角変化量Δθは、例えば1°である。
【0277】
回転角θを算出すると、搬送ロボット50は、X軸座標値JxがX軸座標値Jxi-1のときに長さJ4Q2が幾何情報Lよりも小さいか否かを判定する処理を行う(S2906)。長さJ4Q2が幾何情報Lよりも小さいことは、開口縁Q2と物体60とが接触するX軸座標値Jxが存在することを意味する。長さJ4Q2は、前述の式(10)から算出可能である。
【0278】
長さJ4Q2が幾何情報Lよりも小さい場合(S2906YES)、搬送ロボット50は、長さQ1N1と長さQ2N2とが等しくなるX軸座標値Jxを算出する処理を行う(S2907)。このようなX軸座標値Jxは、次式から算出可能である。
Jx=(Q1x+Q2x)/2-Lcos(α+θ
+{Lsin(α+θ)-D}(tanθ―cotθ)/2
・・・ (13)
【0279】
長さJ4Q2が幾何情報Lよりも小さくない場合(S2906NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行う(S2908)。X軸座標値JxをX軸座標値Jxi-1とすることは、物体60を並進移動させないことを意味する。
【0280】
X軸座標値Jxを算出した後、搬送ロボット50は、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S2909)。
【0281】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以上であるか否かを判定する処理を行う(S2910)。最終目標角度は、90°である。回転角θが最終目標角度以上でない場合(S2910NO)、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S2911)、再度一連の処理(S2905~S2910)を行う。回転角θが最終目標角度以上である場合(S2910YES)、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0282】
(5.2 保管用の棚へ収容する物体の姿勢変更動作)
幾何情報L、αを算出する処理(S220)までと、目標軌道にしたがって駆動関節部J1~J5及び/又は車輪W1~W4を駆動する処理(S204)以降は、第1実施形態と同じである。そこで、ここでは、保管用の棚90から物体60を取出した後の回転角θとX軸座標値Jxの目標軌道を算出する処理(S143)について詳述する。
【0283】
図30は、スロット55から取出した後保管用の棚90へ収容する前の回転角θとX軸座標値Jxの目標軌道を算出する処理の詳細フローチャートである。同図から明らかなように、処理が開始すると、搬送ロボット50は、初期回転角θ及び初期X軸座標値Jx0を取得する処理を行う(S3001)。初期回転角θは、90°であり、初期X軸座標値Jxは、スロット55から取出した物体60を並進移動させる前の駆動関節部J4の軸のX軸座標値である。
【0284】
初期回転角θ及び初期X軸座標値Jxを取得すると、搬送ロボット50は、回転角θ及びX軸座標値Jxを算出し記憶する処理を行う(S3002)。回転角θは、初期回転角θと同値である。X軸座標値Jxは、長さJ4Q2が幾何情報Lよりも大きくなる値である。X軸座標値Jxは、次の式を満たすように決定される。
Jx>Q2x+(L+D1/2
【0285】
回転角θ及びX軸座標値Jxを算出し記憶すると、搬送ロボット50は、初期X軸座標値JxからX軸座標値Jxまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する処理を行う(S3003)。
【0286】
X軸座標値Jxの目標軌道を算出すると、搬送ロボット50は、変数iを2に設定する処理を行い(S3004)、回転角θを算出する処理を行う(S3005)。回転角θは、回転角θi-1から予め定められた回転角変化量Δθを減算した値である。定められた回転角変化量Δθは、例えば1°である。
【0287】
回転角θを算出すると、搬送ロボット50は、長さQ1N1と長さQ2N2との差が予め定められた値δよりも小さいか否かを判定する処理を行う(S3006)。値δは、長さQ1N1と長さQ2N2とが十分に近い値になったか否かを判定可能な程度に小さいことが望ましい。長さQ1N1は、式(9)から算出可能であり、長さQ2N2は、式(7)から算出可能である。なお、式(9)及び式(7)から長さQ1N1及び長さQ2N2を求めるときに、JxをJx1-1とする。
【0288】
長さQ1N1と長さQ2N2との差が値δよりも小さい場合(S3006YES)、搬送ロボット50は、長さQ1N1と長さQ2N2とが等しくなるX軸座標値Jxを算出する処理を行い(S3007)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S3008)。このようなX軸座標値Jxは、前述の式(13)から算出可能である。長さQ1N1と長さQ2N2との差が値δよりも小さくない場合(S3006NO)、搬送ロボット50は、X軸座標値JxをX軸座標値Jxi-1とする処理を行い(S3009)、回転角θ及びX軸座標値Jxを組にして記憶する処理を行う(S3008)。
【0289】
回転角θ及びX軸座標値Jxを組にして記憶すると、搬送ロボット50は、回転角θが最終目標角度以下であるか否かを判定する処理を行う(S3010)。最終目標角度は、0°である。回転角θが最終目標角度以下でない場合(S3010NO)、搬送ロボット50は、変数iを1だけインクリメントする処理を行い(S3011)、再度一連の処理(S3005~S3010)を行う。回転角θが最終目標角度以上である場合(S3010YES)、搬送ロボット50は、長さQ1N1と長さQ2N2とが等しくなるまで物体60を並進移動させるX軸座標値Jxの目標軌道を算出する処理を行う(S3012)。その後、回転角θとX軸座標値Jxの目標軌道を算出する処理は終了する。
【0290】
(6.変形例)
上記第1~第5実施形態において、保管用の棚90から物体60を取出した後、ロボットアーム52の姿勢を変更して、物体60をZ軸の正方向に移動させ、その後、物体60を回転させてもよい。この場合には、物体60が保管用の棚90の棚板よりも高くなり、物体60の回転時における物体60と棚板との干渉リスクを低減することができる。
【0291】
同様に、上記第1~第5実施形態において、スロット55から物体60を取出した後、ロボットアーム52の姿勢を変更して、物体60をZ軸の正方向に移動させ、その後、物体60を回転させてもよい。この場合にも、物体60が保管用の棚90の棚板よりも高くなり、物体60の回転時における物体60と棚板との干渉リスクを低減することができる。
【0292】
Z軸正方向への移動は、ロボットアーム52の姿勢変更による形態に限られない。例えば、ロボットアーム52にZ軸方向に変位可能な直動機構を設け、直動機構により物体60をZ軸正方向へ移動させてもよい。
【0293】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。また、上記の実施形態は、矛盾が生じない範囲で適宜組み合わせ可能である。
【0294】
上記実施形態では、物体60を鉛直軸(Z軸)周りに回転させる場合について説明したが、本発明は、この形態に限られない。搬送ロボット50は、物体60が取出され及び/又は収容される第1方向と交差する第2方向に沿う軸周りに物体60を回転可能であればよく、例えば、水平軸周りに物体60を回転させてもよい。
【0295】
また、上記実施形態では、物体60を水平軸(X軸)周りに並進移動させる場合について説明したが、本発明は、この形態に限られない。搬送ロボット50は、第1方向と第2方向との両方に交差する第3方向に物体60を並進移動可能であればよく、例えば、鉛直方向に物体60を並進移動させてもよい。
【産業上の利用可能性】
【0296】
本発明は、少なくともロボット等を製造する産業において利用可能である。
【符号の説明】
【0297】
50 搬送ロボット
J4 駆動関節部(回転機構)
52 ロボットアーム(並進機構)
60 物体
70 制御部
100 搬送システム
N1 収容空間の開口縁どうしを結ぶ仮想線分と物体の外周面との交点
N2 収容空間の開口縁どうしを結ぶ仮想線分と物体の外周面との交点
P1 角部
Q1 開口縁
Q2 開口縁
X X軸方向(第3方向)
Y Y軸方向(第2方向)
Z Z軸方向(第1方向)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図11C
図11D
図11E
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30