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

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

▶ 日本電気株式会社の特許一覧

<>
  • 特許-制御装置、制御方法及びプログラム 図1
  • 特許-制御装置、制御方法及びプログラム 図2
  • 特許-制御装置、制御方法及びプログラム 図3
  • 特許-制御装置、制御方法及びプログラム 図4
  • 特許-制御装置、制御方法及びプログラム 図5
  • 特許-制御装置、制御方法及びプログラム 図6
  • 特許-制御装置、制御方法及びプログラム 図7
  • 特許-制御装置、制御方法及びプログラム 図8
  • 特許-制御装置、制御方法及びプログラム 図9
  • 特許-制御装置、制御方法及びプログラム 図10
  • 特許-制御装置、制御方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-14
(45)【発行日】2025-04-22
(54)【発明の名称】制御装置、制御方法及びプログラム
(51)【国際特許分類】
   B25J 9/16 20060101AFI20250415BHJP
   B25J 13/00 20060101ALI20250415BHJP
【FI】
B25J9/16
B25J13/00 Z
【請求項の数】 10
(21)【出願番号】P 2022577875
(86)(22)【出願日】2021-01-27
(86)【国際出願番号】 JP2021002820
(87)【国際公開番号】W WO2022162783
(87)【国際公開日】2022-08-04
【審査請求日】2023-07-20
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【弁理士】
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【弁理士】
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【弁理士】
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】小川 雅嗣
(72)【発明者】
【氏名】一圓 真澄
(72)【発明者】
【氏名】若山 永哉
【審査官】臼井 卓巳
(56)【参考文献】
【文献】特開2019-025566(JP,A)
【文献】国際公開第2018/034252(WO,A1)
【文献】特開2003-211096(JP,A)
【文献】米国特許出願公開第2016/0039550(US,A1)
【文献】国際公開第2019/121338(WO,A1)
【文献】米国特許出願公開第2020/0023514(US,A1)
【文献】特開2014-231420(JP,A)
【文献】特開2020-203361(JP,A)
【文献】韓国登録実用新案第20-0455226(KR,Y1)
【文献】米国特許出願公開第2017/0225330(US,A1)
【文献】米国特許出願公開第2018/0273296(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/16-19/04
B65B 35/58
B65G 1/137
H01L 21/68
(57)【特許請求の範囲】
【請求項1】
複数の物品を当該物品の分類に基づき複数の第1仕分容器に移動させるピックアンドプレイスの作業に関するロボットの動作計画を決定する動作計画手段と、
前記第1仕分容器の配置のずれを伴う第2仕分容器が補充されたか否か判定する判定手段と、を有し、
前記動作計画手段は、前記第2仕分容器が補充された場合、補充後の前記第1仕分容器及び前記第2仕分容器の配置に基づき、前記動作計画を更新する、制御装置。
【請求項2】
前記ロボットは、第1ロボットと第2ロボットとを含み、かつ、前記第1ロボットの可動範囲と前記第2ロボットの可動範囲とが重複しており、
前記動作計画手段は、前記第1ロボットと前記第2ロボットとの間での前記物品の受渡しに関する動作を含む前記動作計画を決定する、請求項1に記載の制御装置。
【請求項3】
前記第1ロボットの可動範囲内に存在しない前記第1仕分容器が前記第2ロボットの可動範囲内に存在し、
前記動作計画手段は、前記第1ロボットの可動範囲内に存在し、かつ、前記第2ロボットの可動範囲外に存在する物品を、前記第1ロボットにより前記第2ロボットの可動範囲に移動させる動作を含む前記動作計画を決定する、請求項2に記載の制御装置。
【請求項4】
前記第1仕分容器の搬出及び前記第2仕分容器の補充を制御する仕分容器制御手段をさらに有する、請求項1~3のいずれか一項に記載の制御装置。
【請求項5】
前記仕分容器制御手段は、前記複数の物品のいずれかの物品の移動先となる前記第1仕分容器が所定の基準状態である場合、当該第1仕分容器の搬出及び前記第2仕分容器の補充を行う、請求項4に記載の制御装置。
【請求項6】
前記仕分容器制御手段は、前記複数の物品のいずれかの物品の移動先の候補が前記複数の第1仕分容器に存在しない場合、前記複数の第1仕分容器のいずれかの仕分容器の搬出及び前記第2仕分容器の補充を行う、請求項4に記載の制御装置。
【請求項7】
前記仕分容器制御手段は、前記いずれかの仕分容器を、前記複数の第1仕分容器の各々の物品の収容数又は収容率に基づき、前記複数の第1仕分容器から選択する、請求項6に記載の制御装置。
【請求項8】
前記動作計画手段は、前記動作計画として、前記ロボットが実行すべき目的となる目的タスクを時相論理により表した論理式に基づき、前記ロボットのタイムステップ毎の動作を表す動作シーケンスを生成する、請求項1~7のいずれか一項に記載の制御装置。
【請求項9】
コンピュータが、
複数の物品を当該物品の分類に基づき複数の第1仕分容器に移動させるピックアンドプレイスの作業に関するロボットの動作計画を決定し、
前記第1仕分容器の配置のずれを伴う第2仕分容器が補充されたか否か判定し、
前記第2仕分容器が補充された場合、補充後の前記第1仕分容器及び前記第2仕分容器の配置に基づき、前記動作計画を更新する、制御方法。
【請求項10】
複数の物品を当該物品の分類に基づき複数の第1仕分容器に移動させるピックアンドプレイスの作業に関するロボットの動作計画を決定し、
前記第1仕分容器の配置のずれを伴う第2仕分容器が補充されたか否か判定し、
前記第2仕分容器が補充された場合、補充後の前記第1仕分容器及び前記第2仕分容器の配置に基づき、前記動作計画を更新する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットに作業させるタスクに関する処理を行う制御装置、制御方法及び記憶媒体の技術分野に関する。
【背景技術】
【0002】
ロボットに作業させるタスクが与えられた場合に、当該タスクを実行するために必要なロボットの制御を行う制御手法が提案されている。例えば、特許文献1には、ハンドを有するロボットにより複数の物品を把持して容器に収容する場合に、ハンドが物品を把持する順序の組み合わせを決定し、組み合わせ毎に算出した指標に基づき、収容する物品の順序を決定するロボット制御装置が開示されている。また、特許文献2には、バラ品の詰め合わせ計画に従って、バラ品の仕分パレットへの詰め合わせをロボットに実行させるシステムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-051684号公報
【文献】特開2010-202291号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
段ボールなどの箱に収容された複数種類の物品を種類又はロット別に仕分ける作業は、箱から物品の取り出し、物品の種類等に応じた仕分容器(トレイ)への移動、トレイの搬送などの複数の作業が絡んでおり、ロボットによる作業自動化のための動作計画の策定が困難であった。
【0005】
本発明の目的の1つは、上述した課題を鑑み、物品の仕分けに関するタスクをロボットに好適に実行させることが可能な制御装置、制御方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0006】
制御装置の一の態様は、
複数の物品を当該物品の分類に基づき複数の第1仕分容器に移動させるピックアンドプレイスの作業に関するロボットの動作計画を決定する動作計画手段と、
前記第1仕分容器の配置のずれを伴う第2仕分容器が補充されたか否か判定する判定手段と、を有し、
前記動作計画手段は、前記第2仕分容器が補充された場合、補充後の前記第1仕分容器及び前記第2仕分容器の配置に基づき、前記動作計画を更新する、制御装置である。
【0007】
制御方法の一の態様は、
コンピュータが、
複数の物品を当該物品の分類に基づき複数の第1仕分容器に移動させるピックアンドプレイスの作業に関するロボットの動作計画を決定し、
前記第1仕分容器の配置のずれを伴う第2仕分容器が補充されたか否か判定し、
前記第2仕分容器が補充された場合、補充後の前記第1仕分容器及び前記第2仕分容器の配置に基づき、前記動作計画を更新する、制御方法である。
【0008】
プログラムの一の態様は、
複数の物品を当該物品の分類に基づき複数の第1仕分容器に移動させるピックアンドプレイスの作業に関するロボットの動作計画を決定し、
前記第1仕分容器の配置のずれを伴う第2仕分容器が補充されたか否か判定し、
前記第2仕分容器が補充された場合、補充後の前記第1仕分容器及び前記第2仕分容器の配置に基づき、前記動作計画を更新する処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0009】
物品の仕分けに関するタスクをロボットに好適に実行させることができる。
【図面の簡単な説明】
【0010】
図1】第1実施形態における仕分制御システムの構成の一例を示す。
図2】制御装置のハードウェア構成の一例を示す。
図3】バラ仕分けの作業空間の俯瞰図の一例である。
図4】制御装置の機能ブロックの一例である。
図5】アプリケーション情報のデータ構造の一例を示す。
図6】動作計画部の機能ブロックの一例である。
図7図3に示すバラ仕分けの作業を簡略化したピックアンドプレイスの作業空間の俯瞰図の一例を示す。
図8】第1実施形態において制御装置が実行するロボット制御処理の概要を示すフローチャートの一例である。
図9】変形例における仕分制御システムの構成の一例を示す。
図10】第2実施形態における制御装置のブロック構成の一例である。
図11】第2実施形態において制御装置が実行するフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、制御装置、制御方法及び記憶媒体の実施形態について説明する。
【0012】
<第1実施形態>
(1)システム構成
図1は、第1実施形態に係る仕分制御システム100の構成を示す。仕分制御システム100は、倉庫に運ばれた薬品などの物品(製品)を種類別又はロット別に仕分ける作業(「バラ仕分け」とも呼ぶ。)を自動又は半自動により実行するシステムであって、主に、制御装置1と、計測装置4と、被制御機器5と、を備える。制御装置1と計測装置4と被制御機器5とは、通信網3を介してデータ通信を行う。
【0013】
制御装置1は、計測装置4から供給される計測信号「S1」に基づき、バラ仕分けを実行するために必要な制御信号「S2」を、ロボット51等の被制御機器5に対して供給する。この場合、制御装置1は、ロボット51に実行させるタスク(「目的タスク」とも呼ぶ。)を設定し、設定した目的タスクを実行するためのロボット51の動作計画を時相論理に基づき策定する。この場合、制御装置1は、ロボット51が受付可能なタスクのタイムステップ(時間刻み)毎のシーケンスに目的タスクを変換する。そして、制御装置1は、生成した動作シーケンスを表す制御信号S2をロボット51に供給することで、ロボット51を制御する。以後では、ロボット51が受付可能な単位により目的タスクを分解したタスク(コマンド)を、「サブタスク」とも呼び、目的タスクを達成するためにロボット51が実行すべきサブタスクのシーケンスを「動作シーケンス」と呼ぶ。なお、本実施形態では、一例として、時相論理に基づき動作計画を策定する処理について説明するが、時相論理に基づく動作計画の策定に限らず、制御装置1は、他の任意の方法により動作計画を策定してもよい。
【0014】
計測装置4は、バラ仕分けの作業空間内の状態を検出するセンサである。計測装置4は、例えば、カメラ41と、BCR(Bar-Code Reader)42とを含んでいる。計測装置4は、生成した計測信号S1を、通信網3を介して制御装置1に供給する。なお、計測装置4は、作業空間内で移動する自走式又は飛行式のセンサ(ドローンを含む)を含んでもよい。また、計測装置4は、ロボット51などの被制御機器5に設けられたセンサ、及び作業空間内の他の物体に設けられたセンサなどを含んでもよい。また、計測装置4は、作業空間内の音を検出するセンサを含んでもよい。このように、計測装置4は、作業空間内の状態を検出する種々のセンサであって、任意の場所に設けられたセンサを含んでもよい。
【0015】
被制御機器5は、バラ仕分けの作業空間において設けられ、制御装置1から供給される制御信号S2等に基づき制御される機器である。本実施形態では、一例として、被制御機器5は、ロボット51と、倉庫内において物品を搬送する搬送機械(コンベア)52と、ロボット51が仕分けた物品を収容するトレイなどの仕分容器の補充を行う仕分容器補充機構53とを有している。ロボット51は、作業空間において複数台存在し、バラ仕分けに関するタスクを必要に応じて協働して実行する。ロボット51は、垂直多関節型ロボット、水平多関節型ロボット、又はその他の任意の種類のロボットであってもよい。ロボット51は、ロボット51の状態を示す状態信号を制御装置1に供給してもよい。この状態信号は、ロボット51全体又は関節などの特定部位の状態(位置、角度等)を検出するセンサの出力信号であってもよく、ロボット51の制御部が生成したロボット51のサブタスクの進捗状態を示す信号であってもよい。
【0016】
なお、図1に示す仕分制御システム100の構成は一例であり、当該構成に種々の変更が行われてもよい。例えば、制御装置1は、計測装置4及び被制御機器5と、通信網3を介すことなく、無線若しくは有線による直接通信により、データ通信を行ってもよい。また、制御装置1とロボット51とは、一体に構成されてもよい。また、制御装置1は、複数の装置から構成されてもよい。この場合、制御装置1を構成する複数の装置は、予め割り当てられた処理を実行するために必要な情報の授受を、これらの複数の装置間において行う。また、ロボット51には、制御装置1の少なくとも一部又は全ての機能が組み込まれていてもよい。
【0017】
(2)ハードウェア構成
図2は、制御装置1のハードウェア構成を示す。制御装置1は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12及びインターフェース13は、データバス10を介して接続されている。
【0018】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、制御装置1の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。
【0019】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、制御装置1が実行する処理を実行するためのプログラムが記憶される。また、メモリ12は、アプリケーション情報IAと、仕分情報IBとを有する。
【0020】
アプリケーション情報IAは、ロボット51が実行すべきシーケンスである動作シーケンスを目的タスクから生成するために必要な種々の情報である。仕分情報IBは、物品の仕分けに関する情報であり、例えば、各物品に付されるバーコードから読み取られる物品の識別情報(ID)と商品の仕分上の分類とが紐付けられた情報である。上述の分類は、同一の仕分容器に区分け可能か否かに基づく分類であり、例えば、物品の種類又はロットに基づく分類である。なお、仕分容器にID(識別情報)が付されている場合には、仕分情報IBは、バーコードから読み取られる物品のIDと当該物品の仕分先となる仕分容器のIDとを紐付けた情報であってもよい。
【0021】
なお、メモリ12が記憶する情報の一部は、制御装置1と通信可能な1又は複数の外部記憶装置により記憶されてもよく、制御装置1に対して着脱自在なフラッシュメモリなどの記憶媒体により記憶されてもよい。
【0022】
インターフェース13は、制御装置1と他の装置とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0023】
なお、制御装置1のハードウェア構成は、図2に示す構成に限定されない。例えば、制御装置1は、表示装置、入力装置又は音出力装置の少なくともいずれかと接続又は内蔵してもよい。
【0024】
(3)バラ仕分けの概要
図3は、仕分制御システム100によるバラ仕分けの一例を概略的に表した作業空間の俯瞰図である。図3では、仕分けの対象となる複数種類の物品を梱包した梱包箱6がメーカ等から配送された倉庫内において、梱包箱6から取り出した物品7(7A~7G,…)を複数の仕分容器8(8A~8D,…)により仕分けする作業が概略的に示されている。カメラ41は、この作業空間が撮影範囲に含まれるように設置されている。なお、カメラ41は、撮影範囲が異なる複数台のカメラであって、作業空間の状態認識に必要な個所を分担して夫々撮影するものであってもよい。
【0025】
図3に示す作業空間には、搬送機械52の一態様である、第1搬送機械52Aと、第2搬送機械52Bと、第3搬送機械52Cとが存在している。図3では、第1搬送機械52A、第2搬送機械52B、及び第3搬送機械52Cに対し、搬送方向を補助的に表した矢印を付加している。
【0026】
第1搬送機械52Aは、例えばベルトコンベアなどであり、梱包箱6から作業者又はロボットにより取り出された物品7(7A~7G,…)をロボットアーム51Aの可動範囲「RA」又はロボットアーム51Bの可動範囲「RB」が存在する方向に搬送する。第1搬送機械52Aには、ロボットアーム51A、51Bの可動範囲に到達する前に各物品のバーコードを読み取るBCR42が設けられており、梱包箱6から取り出された各物品7は、バーコードが付された面が上向きとなるように第1搬送機械52Aに載置される。第1搬送機械52Aによる搬送速度は、一定速度であってもよく、制御装置1等の制御に基づき調整が行われてもよい。例えば、ロボットアーム51Aとロボットアーム51Bとが物品7の受渡しを行う場合、制御装置1の制御に基づき、受渡し作業中において、第1搬送機械52Aは、一時停止又は減速するように調整されてもよい。なお、上述の受渡しの期間に限らず、ロボットアームの全般的な動作期間等において、第1搬送機械52Aは、一時停止又は減速するように調整されてもよい。
【0027】
第2搬送機械52Bは、仕分けされた物品7を収容した仕分容器8を、仕分容器8を収容する棚が存在するエリアに搬送するマテリアルハンドリング(マテハン)である。
【0028】
第3搬送機械52Cは、例外的な処理が必要となる物品7をロボットアーム51Cの可動範囲が存在する方向に搬送する。第3搬送機械52Cには、例えば、バーコードが付されていない物品7(例えば物品7D)又はサイズなどの属性情報の登録がされておらず検品処理が必要な物品7が第1搬送機械52Aから運ばれる。なお、このような物品7を第3搬送機械52Cに運ぶ作業は、ロボットアーム51Bにより実行されてもよく、ロボットアーム51B以外の機械により実行されてもよく、手作業により実行されてもよい。同様に、第3搬送機械52Cに運ばれた物品7に対するバーコードの貼り付け処理又は検品処理は、ロボットアーム51Cにより実行されてもよく、ロボットアーム51C以外の機械により実行されてもよく、手作業により実行されてもよい。
【0029】
また、第1搬送機械52Aと第2搬送機械52Bとの間には、仕分容器8が載置される仕分容器台54が設けられている。仕分容器台54は最大4個の仕分容器8を載せることが可能であり、仕分容器台54には、ロボットアーム51A、51Bが仕分けに使用する仕分容器8(8A~8D)が載置されている。同様に、第3搬送機械52Cと第2搬送機械52Bとの間には、仕分容器台55が設けられている。
【0030】
仕分容器台54に載置される仕分容器8には、同一の仕分容器8について同一種類又は同一のロットとなる物品7が収容される。仕分容器8は、所定の条件が満たされた場合に、第2搬送機械52Bに搬出される。具体的には、所定の基準状態(例えばさらなる物品7の収容ができない状態)となった仕分容器8が存在する場合、又は、追加の仕分容器8を仕分容器台54に載置する必要が生じた場合に、仕分容器8が仕分容器台54から第2搬送機械52Bに搬出される。この搬出作業は、仕分容器台54により行われてもよく、ロボットアーム51A又はロボットアーム51Bにより行われてもよい。前者の場合、仕分容器台54は、例えば、仕分容器8の各々に対して個別にスライド自在な機構を有し、制御装置1から供給される制御信号S2に基づき、指定された仕分容器8を第2搬送機械52Bの方向にスライドさせることで当該仕分容器8を第2搬送機械52Bに移動させる。後者の場合、ロボットアーム51A又はロボットアーム51Bは、制御装置1から供給される制御信号S2に基づき、対象の仕分容器8を押し出す動作又はピックアッププレイスにより第2搬送機械52Bに移動させる。
【0031】
仕分容器台55においても、ロボットアーム51Cが仕分けに使用する仕分容器8が載置されている。そして、仕分容器台55上の仕分容器8には、バーコードの貼り付け又は/及び検品処理等の例外処理が行われた物品7がロボットアーム51Cにより載置される。なお、例外処理が行われる物品7については、数が少ないため、例えば、1個の仕分容器8につき1個の物品7が使用される。従って、物品7が収容された仕分容器8は、ロボットアーム51C又は仕分容器台55により、第2搬送機械52Bに搬出される。
【0032】
仕分容器補充機構53は、仕分容器台54及び仕分容器台55に載置する仕分容器8を補充する機構である。仕分容器補充機構53は、例えば、仕分容器台54又は仕分容器台55のいずれかの仕分容器8が第2搬送機械52Bに搬出された場合に、仕分容器8が搬出された仕分容器台54又は仕分容器台55に対し、補充用の仕分容器8を供給する。この場合、仕分容器補充機構53は、例えば、補充用の仕分容器8を保持する機構と、補充用の仕分容器8を供給先の仕分容器台54又は仕分容器台55に押し出す(スライドさせる)ことで仕分容器8を供給する機構とを有する。この場合、例えば、図3の仕分容器8B~仕分容器8Dのいずれかが搬出された場合には、仕分容器補充機構53は、補充用の仕分容器8を仕分容器台54に供給することで仕分容器8Aを図3の仕分容器8Bの位置に押し出し、補充用の仕分容器8を仕分容器8Aが存在していた位置に配置する。なお、仕分容器補充機構53は、補充用の仕分容器8を搬送するコンベアから補充用の仕分容器8の供給を受ける構成であってもよい。
【0033】
ロボットアーム51Aとロボットアーム51Bは、第1搬送機械52Aを挟んで向かい合う位置に設けられている。図3では、ロボットアーム51Aの可動範囲RAとロボットアーム51Bの可動範囲RBとが破線円により示されている。ロボットアーム51Aとロボットアーム51Bは、夫々、「第1ロボット」及び「第2ロボット」の一例である。
【0034】
図3に示すように、ロボットアーム51Aの可動範囲RAとロボットアーム51Bの可動範囲RBとは、第1搬送機械52A上において一部重複しており、かつ、互いの可動範囲外となる第1搬送機械52A上の範囲をカバーする位置に設けられている。これにより、ロボットアーム51A又はロボットアーム51Bの少なくともいずれかが第1搬送機械52A上の物品7を把持可能となっている。具体的には、第1搬送機械52Aにより搬送される物品7A、物品7C、物品7F等は、これらがロボットアーム51Aの正面(ここでは、ロボットアーム51Aの位置から第1搬送機械52Aへ引いた仮想的な垂線の方向とする)付近まで運ばれた場合であっても可動範囲RAの範囲外となる。一方、これらの物品は、ロボットアーム51Bの正面付近まで運ばれた場合に可動範囲RBの範囲内となる。また、第1搬送機械52Aにより搬送される物品7B及び物品7G等は、ロボットアーム51Bの正面(ここでは、ロボットアーム51Bの位置から第1搬送機械52Aへ引いた仮想的な垂線の方向とする)付近に運ばれた場合であっても、可動範囲RBの範囲外となる。一方、これらの物品は、ロボットアーム51Aの正面付近まで運ばれた場合に可動範囲RAの範囲内となる。
【0035】
また、ロボットアーム51A又はロボットアーム51Bの少なくともいずれかは、仕分容器台54上に載置される仕分容器8A~8Dに物品7を置くことが可能となっている。図3の例では、仕分容器8Cと仕分容器8Dは、ロボットアーム51Aの可動範囲RAの範囲内かつロボットアーム51Bの可動範囲RBの範囲外となり、仕分容器8Aと仕分容器8Bは、ロボットアーム51Aの可動範囲RAの範囲外かつロボットアーム51Bの可動範囲RBの範囲内となる。
【0036】
このように、可動範囲RAと可動範囲RBが重複することで、ロボットアーム51Aとロボットアーム51Bは、互いに物品7の受渡しを行うことが可能となる。詳しくは、一方のロボットアームは、自身が届かない仕分容器8に収容すべき物品7が存在し、かつ、当該物品7が他方のロボットアームの可動範囲外である場合、当該物品7を他方のロボットアームの可動範囲内に移動させる。この場合、他方のロボットアームは、一方のロボットアームが移動させた物品7をピックアンドプレイスにより適切な仕分け先の仕分容器8に移動させる。制御装置1は、このような動作をロボットアーム51A、51Bの動作計画に組み込むことで、ロボットアーム51A、51Bは、第1搬送機械52A上の任意の位置に載置された物品7を、適切な仕分容器8に載置するように仕分け作業を行うことができる。
【0037】
上述の受渡しの具体例について図3を参照して説明する。例えば、物品7Aは、仕分け先が仕分容器8Cであり、可動範囲RAの範囲外かつ可動範囲RBの範囲内に存在している。この場合、制御装置1は、物品7Aをロボットアーム51Bによるピックアンドプレイスにより可動範囲RA内に移動させ、移動後の物品7Aをロボットアーム51Aによるピックアンドプレイスにより仕分容器8Cに移動させるように、ロボットアーム51A、51Bの動作計画を策定する。同様に、物品7Bは、仕分け先が仕分容器8Aであり、可動範囲RBの範囲外かつ可動範囲RAの範囲内に存在している。この場合、制御装置1は、物品7Bをロボットアーム51Aによるピックアンドプレイスにより可動範囲RBに移動させ、移動後の物品7Bをロボットアーム51Bによるピックアンドプレイスにより仕分容器8Aに移動させる。
【0038】
なお、受渡しの要否判定等において、制御装置1は、物品7が最もロボットアームに近づく位置(図3では正面位置)まで第1搬送機械52Aにより運ばれた時点での当該位置に基づき、当該物品7がロボットアームの可動範囲内か否か判定するとよい。例えば、物品7Dは、図3に示す時点では可動範囲RA、RBの範囲外であるが、ロボットアーム51A、51Bの正面位置まで運ばれた時点では可動範囲RA、RBの範囲内となるため、制御装置1は、受渡しの要否判定等においては、物品7Dを可動範囲RA、RBの範囲内とみなす。
【0039】
ロボットアーム51Cは、バーコードの貼り付け又は/及び検品処理等の例外処理がなされた第3搬送機械52C上の物品7を、ピックアンドプレイスにより仕分容器台55上に載置された仕分容器8に移動させる。
【0040】
(4)機能ブロック
図4は、制御装置1の処理の概要を示す機能ブロックの一例である。概略的には、制御装置1は、物品7を適切な仕分容器8に仕分けるためのロボット51の動作計画を行い、かつ、仕分容器8の補充が行われた場合には当該動作計画の更新(再決定)を行う。これにより、制御装置1は、仕分容器8の配置変更等が生じた場合であっても、物品7を適切な仕分け先となる仕分容器8に仕分けるようにロボット51を動作させる。制御装置1のプロセッサ11は、機能的には、ロボット制御部14と、動作計画部15と、判定部16と、仕分容器制御部17とを有している。なお、図4では、データの授受が行われるブロック同士を実線により結んでいるが、データの授受が行われるブロックの組合せは図4に限定されない。後述する他の機能ブロックの図においても同様である。
【0041】
ロボット制御部14は、制御信号S2をロボット51に送信することで、動作計画部15が決定した動作計画に従いロボット51を動作させるようにロボット51を制御する。具体的には、ロボット制御部14は、動作計画部15が動作計画により生成した動作シーケンスを構成する各サブタスクを、夫々定められた実行タイミング(タイムステップ)でロボット51が実行するための制御(例えばロボット51の関節の位置制御又はトルク制御など)を実行する。また、ロボット制御部14は、動作シーケンスに基づくロボット51の制御中に、更新された動作シーケンスが動作計画部15から供給された場合、更新された動作シーケンスに基づき、ロボット51の動作制御を行う。
【0042】
なお、ロボット制御部14に相当する機能を、制御装置1に代えてロボット51が有してもよい。この場合、ロボット51は、動作計画部15が生成した動作シーケンスを表す制御信号S2を受信することで、当該動作シーケンスを実現するための関節の位置制御又はトルク制御などを実行する。
【0043】
動作計画部15は、アプリケーション情報IAと、仕分情報IBと、計測信号S1とに基づき、仕分け対象の物品7の分類に応じて仕分容器8に移動させるピックアンドプレイスに関するロボット51の動作シーケンスを生成する。そして、動作計画部15は、生成した動作シーケンスを、ロボット制御部14に供給する。ここで、動作シーケンスには、各サブタスクの実行順序及び実行タイミングを示す情報が含まれている。
【0044】
また、動作計画部15は、仕分容器8が補充されたことを示す判定結果を判定部16から受信した場合には、未だ仕分容器8に仕分けられていない仕分け対象の物品7のピックアンドプレイスに関する動作計画の更新(再決定)を行い、ロボット51の動作シーケンスを生成する。
【0045】
ここで、上述の動作計画の更新の必要性について補足説明する。仕分容器8が補充された場合、補充された空の仕分容器8を物品7の仕分け先として設定するというロボット51の動作計画上の選択肢が増え、かつ、仕分容器8の補充に伴い既存の仕分容器8についても配置がずれる(スライドする)場合がある。以上を勘案し、動作計画部15は、仕分容器8が補充された場合に、未だ仕分容器8に仕分けられていない仕分け対象の物品7のピックアンドプレイスに関する動作計画の更新(再決定)を行う。これにより、動作計画部15は、物品7を適切な仕分け先となる仕分容器8に移動させるようにロボット51の動作計画を好適に策定することができる。
【0046】
判定部16は、仕分容器8が補充されたか否か判定し、その判定結果を動作計画部15に供給する。この場合、判定部16は、計測装置4から供給される計測信号S1に基づき、仕分容器8が補充されたか否か判定してもよく、仕分容器制御部17から供給される信号に基づき、仕分容器8が補充されたか否か判定してもよい。前者の場合、判定部16は、例えば、カメラ41が撮影した画像に基づき、新たな仕分容器8が所定の場所(図3では仕分容器台54)に配置されたことを検知した場合に、仕分容器8が補充されたと判定する。また、後者の場合、判定部16は、仕分容器8を補充する処理の実行完了を通知する信号を仕分容器制御部17から受信した場合に、仕分容器8の補充が行われたと判定する。
【0047】
なお、図3の例において、判定部16は、仕分容器台54での仕分容器8の補充の有無に関する判定のみを行い、例外処理が行われた物品7を収容する仕分容器8の補充の有無に関する判定を行わなくともよい。この場合、動作計画部15は、仕分容器台55において仕分容器8の補充がされた場合であっても、ロボットアーム51A及びロボットアーム51Bに対する動作計画を更新しなくともよい。この場合、動作計画部15は、例えば、ロボットアーム51A及びロボットアーム51Bの動作計画と、ロボットアーム51Cの動作計画とを、夫々独立して実行する。以後で述べる動作計画の決定及び更新については、特に言及しない限り、ロボットアーム51A及びロボットアーム51Bに関する動作計画を対象とするものとし、例外処理のライン(ロボット51C、第3搬送機械52C、仕分容器台55)の状態については考慮しないものとする。
【0048】
仕分容器制御部17は、仕分容器8の搬出及び補充に関する制御を行う。図3の例では、仕分容器制御部17は、所定の条件が満たされた場合に、制御信号S2に基づき、仕分容器補充機構53及び仕分容器台54を制御することで、仕分容器台54上の仕分容器8を第2搬送機械52Bに搬出し、新たな仕分容器8を仕分容器台54上に補充する。
【0049】
仕分容器8の搬出・補充の第1の例では、仕分容器制御部17は、更なる物品7の収容ができない状態(「基準状態」とも呼ぶ。)になった仕分容器8が存在する場合、当該仕分容器8を搬出対象として認識し、当該仕分容器8を第2搬送機械52Bに搬出し、かつ、新たな仕分容器8を補充する制御を行う。この場合、仕分容器制御部17は、仕分容器8が基準状態になったか否かを、計測装置4の計測信号S1に基づき判定してもよく、ロボット制御部14が策定した動作計画の進捗度合いに基づき判定してもよい。前者の判定方法では、仕分容器制御部17は、例えば、計測信号S1に基づき対象の仕分容器8に収容された物品7の種類及び個数を認識し、認識した種類に応じた収容上限個数に達しているか否かを判定する。この場合、例えば、メモリ12等には、上述の物品7の種類毎の仕分容器8の収容上限個数に関する情報が予め記憶されている。後者の判定方法では、仕分容器制御部17は、動作計画部15が策定した動作計画の進捗状況に基づき、現在の時刻において仕分容器8に載置されている物品7の種類及び個数を推定し、当該推定結果と上述の収容上限個数の情報とを照合することで、基準状態か否か判定する。
【0050】
仕分容器8の搬出・補充の第2の例では、仕分容器制御部17は、仕分け対象となる物品7が、仕分容器台54上に載置された仕分容器8A~8Dのいずれにも仕分けできない新たな分類に属する場合、当該物品7の仕分け先の候補が存在しないと判定する。この場合、例えば、仕分容器制御部17は、BCR42から供給される仕分け対象の物品7の識別情報と、仕分情報IBとに基づき、当該物品7が仕分容器8A~8Dに収容されている物品7と異なる分類である(かつ仕分容器8A~8Dがいずれも空ではない)場合に、仕分け先の候補が存在しないと判定する。そして、仕分容器制御部17は、仕分容器8A~8Dのいずれかを第2搬送機械52Bに搬出し、新たな仕分容器8を仕分容器補充機構53に補充する制御を行う。この場合、仕分容器制御部17は、例えば、仕分容器8A~8Dのうち最も物品7の収容率(収容上限個数に対する実際の収容数の比率)が高い、又は物品7の収容数が最も多い仕分容器8を、第2搬送機械52Bに搬出する対象として選択する。これにより、仕分容器制御部17は、使用する仕分容器8の個数をなるべく少なくするようにしつつ、物品7の仕分けが適切に実行されるように仕分容器8の搬出及び補充を好適に制御することができる。
【0051】
なお、上述した仕分容器8の搬出・補充の判定処理は、動作計画部15が目的タスクを設定する際に実行されてもよい。この場合、仕分容器制御部17は、動作計画部15からの仕分容器8の搬出・補充の要求に応じて、仕分容器8の搬出・補充を実行する。目的タスクの設定時における搬出・補充の要否判定については図6を参照して後述する。
【0052】
ここで、ロボット制御部14、動作計画部15、判定部16及び仕分容器制御部17の各構成要素は、例えば、プロセッサ11がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記憶しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(Field-Programmable Gate Array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)、ASIC(Application Specific Integrated Circuit)又は量子コンピュータ制御チップにより構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
【0053】
(5)動作計画の詳細
次に、動作計画部15が実行するロボット51の動作計画の詳細について説明する。以下では、一例として、時相論理により表した目標状態に基づきロボット51のタイムステップごとのサブタスクのシーケンスである動作シーケンスを生成する方法について説明する。
【0054】
(5-1)アプリケーション情報
まず、動作計画部15による動作計画において使用するアプリケーション情報IAのデータ構造について説明する。
【0055】
図5は、アプリケーション情報IAのデータ構造の一例を示す。図5に示すように、アプリケーション情報IAは、抽象状態指定情報I1と、制約条件情報I2と、動作限界情報I3と、サブタスク情報I4と、抽象モデル情報I5と、物体モデル情報I6とを含む。
【0056】
抽象状態指定情報I1は、動作シーケンスの生成にあたり定義する必要がある抽象状態を指定する情報である。この抽象状態は、作業空間内における物体の抽象的な状態であって、後述する目標論理式において使用する命題として定められる。
【0057】
制約条件情報I2は、目的タスクを実行する際の制約条件を示す情報である。制約条件情報I2は、例えば、目的タスクがピックアンドプレイスの場合、障害物にロボット51(ロボットアーム)が接触してはいけないという制約条件、ロボット51(ロボットアーム)同士が接触してはいけないという制約条件などを示す。
【0058】
動作限界情報I3は、制御装置1により制御が行われるロボット51の動作限界に関する情報を示す。動作限界情報I3は、例えば、ロボット51の速度、加速度、又は角速度の上限を規定する情報である。なお、動作限界情報I3は、ロボット51の可動部位又は関節ごとに動作限界を規定する情報であってもよい。
【0059】
サブタスク情報I4は、ロボット51が受付可能なサブタスクの情報を示す。例えば、目的タスクがピックアンドプレイスの場合には、サブタスク情報I4は、ロボット51のロボットアームの移動であるリーチングと、ロボットアームによる把持であるグラスピングとをサブタスクとして規定する。
【0060】
抽象モデル情報I5は、作業空間におけるダイナミクスを抽象化した抽象モデルに関する情報である。例えば、抽象モデルは、後述するように、現実のダイナミクスをハイブリッドシステムにより抽象化したモデルにより表されている。抽象モデル情報I5は、上述のハイブリッドシステムにおけるダイナミクスの切り替わりの条件を示す情報を含む。切り替わりの条件は、例えば、対象物をロボット51が掴んで所定位置に移動させるピックアンドプレイスの場合、対象物はロボット51により把持されなければ移動できないという条件などが該当する。
【0061】
物体モデル情報I6は、計測装置4が生成した計測信号S1から認識すべき作業空間内の各物体の物体モデルに関する情報である。上述の各物体は、例えば、ロボット51、障害物、ロボット51が扱う工具その他の対象物、ロボット51以外の作業体などが該当する。物体モデル情報I6は、例えば、上述した各物体の種類、位置、姿勢、現在実行中の動作などを制御装置1が認識するために必要な情報と、各物体の3次元形状を認識するためのCAD(Computer Aided Design)データなどの3次元形状情報とを含んでいる。前者の情報は、ニューラルネットワークなどの機械学習における学習モデルを学習することで得られた推論器のパラメータを含む。この推論器は、例えば、画像が入力された場合に、当該画像において被写体となる物体の種類、位置、姿勢等を出力するように予め学習される。
【0062】
なお、アプリケーション情報IAは、上述した情報の他、動作シーケンスの生成処理に関する種々の情報を記憶してもよい。
【0063】
(5-2)動作計画部の機能ブロック
図6は、動作計画部15の処理の概要を示す機能ブロックの一例である。動作計画部15は、機能的には、目的タスク設定部70と、抽象状態設定部71と、目標論理式生成部72と、タイムステップ論理式生成部73と、抽象モデル生成部74と、制御入力生成部75と、動作シーケンス生成部76と、を有する。
【0064】
目的タスク設定部70は、物品7から供給される計測信号S1と、仕分情報IBとに基づき、目的タスクを設定する。この場合、目的タスク設定部70は、仕分け対象となる物品7の決定、及び、物品7の仕分け先となる仕分容器8の決定を行う。
【0065】
抽象状態設定部71は、計測装置4から供給される計測信号S1と、抽象状態指定情報I1と、物体モデル情報I6と、に基づき、作業空間内の抽象状態を設定する。この場合、抽象状態設定部71は、ロボット51の作業において考慮する必要がある作業空間内の物体(物品7、仕分容器8等)を認識し、当該物体に関する認識結果「Im」を生成する。そして、抽象状態設定部71は、認識結果Imに基づいて、ロボット51の作業において考慮する必要がある各抽象状態に対し、論理式で表すための命題を定義する。抽象状態設定部71は、設定した抽象状態を表す情報(「抽象状態設定情報IS」とも呼ぶ。)を、目標論理式生成部72に供給する。
【0066】
目標論理式生成部72は、抽象状態設定情報ISに基づき、目的タスクを、最終的な達成状態を表す時相論理の論理式(「目標論理式Ltag」とも呼ぶ。)に変換する。この場合、目標論理式生成部72は、アプリケーション情報IAの制約条件情報I2を参照することで、目的タスクの実行において満たすべき制約条件を、目標論理式Ltagに付加する。そして、目標論理式生成部72は、生成した目標論理式Ltagを、タイムステップ論理式生成部73に供給する。
【0067】
タイムステップ論理式生成部73は、目標論理式生成部72から供給された目標論理式Ltagを、各タイムステップでの状態を表した論理式(「タイムステップ論理式Lts」とも呼ぶ。)に変換する。そして、タイムステップ論理式生成部73は、生成したタイムステップ論理式Ltsを、制御入力生成部75に供給する。
【0068】
抽象モデル生成部74は、アプリケーション情報IAの抽象モデル情報I5と、抽象状態設定部71から供給される認識結果Imとに基づき、作業空間における現実のダイナミクスを抽象化した抽象モデル「Σ」を生成する。この場合、抽象モデル生成部74は、対象のダイナミクスを連続ダイナミクスと離散ダイナミクスとが混在したハイブリッドシステムとみなし、ハイブリッドシステムに基づく抽象モデルΣを生成する。抽象モデルΣの生成方法については後述する。抽象モデル生成部74は、生成した抽象モデルΣを、制御入力生成部75へ供給する。
【0069】
制御入力生成部75は、タイムステップ論理式生成部73から供給されるタイムステップ論理式Ltsと、抽象モデル生成部74から供給される抽象モデルΣとを満たし、評価関数(例えば、ロボットによって消費されるエネルギー量を表す関数)を最適化するタイムステップ毎のロボット51への制御入力を決定する。そして、制御入力生成部75は、ロボット51へのタイムステップ毎の制御入力を示す情報(「制御入力情報Icn」とも呼ぶ。)を、動作シーケンス生成部76へ供給する。
【0070】
動作シーケンス生成部76は、制御入力生成部75から供給される制御入力情報Icnと、アプリケーション情報IAのサブタスク情報I4とに基づき、サブタスクのシーケンスである動作シーケンスを生成し、動作シーケンスをロボット51へ供給する。
【0071】
(5-3)目的タスク設定部
目的タスク設定部70は、仕分け対象となる物品7及び当該物品7の仕分け先となる仕分容器8を決定し、仕分け対象の物品7をピックアンドプレイスにより仕分け先の仕分容器8へ移動させるという目的タスクを設定する。
【0072】
ここで、仕分け対象となる物品7及び仕分け先となる仕分容器8の決定方法について説明する。まず、目的タスク設定部70は、例えば、BCR42を通過した物品7を仕分け対象となる物品7として特定し、特定した物品7に対するBCR42の読み取り結果と仕分情報IBとに基づき、当該物品7の仕分上の分類(例えば種類又はロットによる分類)を行う。例えば、仕分情報IBが物品7のIDと仕分上の分類との対応関係を示す場合、目的タスク設定部70は、BCR42により読み取った物品7のIDと、上述の対応関係とに基づき、物品7の仕分け上の分類を認識する。なお、BCR42により読み取られる情報が物品7の仕分上の分類を示す場合には、目的タスク設定部70は、仕分情報IBを用いることなく、BCR42の読み取り結果に基づき、仕分け対象となる物品7の仕分け上の分類を認識する。
【0073】
次に、仕分け対象の物品7の分類に基づく仕分け先の仕分容器8の決定方法の具体例について場合分けして説明する。目的タスク設定部70は、例えば、仕分け対象の物品7と同一仕分け先(即ち同一分類)となる物品7が既にいずれかの仕分容器8に収容されている場合、仕分け対象の物品7の仕分け先を当該仕分容器8に設定する。ここで、目的タスク設定部70は、仕分容器8に既に収容されている物品7の分類を、例えば、過去の動作計画の策定時での当該物品7の分類の認識結果に基づき特定する。なお、仕分け先として特定した仕分容器8が基準状態である場合の対応については後述する。
【0074】
また、目的タスク設定部70は、仕分け対象の物品7と同一仕分け先となる物品7がいずれの仕分容器8にも収容されておらず、かつ、空の仕分容器8が存在する場合には、当該空の仕分容器8を仕分け対象の物品7の仕分け先として決定する。
【0075】
また、目的タスク設定部70は、仕分け対象の物品7と同一仕分け先となる物品7がいずれの仕分容器8にも収容されておらず、かつ、空の仕分容器8が存在しないと判定した場合、いずれかの仕分容器8の搬出及び新たな仕分容器8の補充が必要であると判定する。よって、この場合、目的タスク設定部70は、仕分容器8に関する搬出及び補充の要求信号を、仕分容器制御部17に供給する。そして、目的タスク設定部70は、空の仕分容器8が補充されたことを計測信号S1又は仕分容器補充機構53からの補充完了通知等に基づき検知した場合に、補充された空の仕分容器8を、仕分け対象の物品7の仕分け先として決定する。
【0076】
また、目的タスク設定部70は、仕分け対象の物品7と同一仕分け先となる物品7が既にいずれかの仕分容器8に収容され、かつ、当該仕分容器8が基準状態の場合、仕分容器8の搬出及び補充が必要であると判定する。よって、この場合、目的タスク設定部70は、基準状態の仕分容器8の搬出及び新たな仕分容器8の補充の要求信号を、仕分容器制御部17に供給する。そして、目的タスク設定部70は、空の仕分容器8が補充されたことを計測信号S1又は仕分容器補充機構53からの補充完了通知等に基づき検知した場合に、補充された空の仕分容器8を仕分け対象の物品7の仕分け先として決定する。なお、目的タスク設定部70は、空の仕分容器8が存在する場合には、上述の搬出及び補充を待つことなく、当該空の仕分容器8を仕分け先として目的タスクを設定し、動作計画の策定を進めてもよい。
【0077】
なお、仕分容器8に識別情報(ID)が割り当てられており、各仕分容器8に収容すべき物品7の分類(種類又はロット)が仕分情報IBにおいて指定されていた場合には、目的タスク設定部70は、仕分対象の物品7から読み取ったバーコードの読み取り情報と、仕分情報IBとに基づき、仕分け先の仕分容器8を認識する。この場合、各仕分容器8は、ARマーカなどが付されることにより、カメラ41等による計測に基づいて、固有の識別情報(ID)が識別可能となっている。
【0078】
そして、目的タスク設定部70は、仕分け対象となる物品7及び当該物品7の仕分け先となる仕分容器8の決定結果を、目的タスクに関する情報として目標論理式生成部72等に供給する。これにより、設定した目的タスク毎に動作計画が策定され、仕分け対象となった物品7に対するロボット51の動作シーケンスが逐次的に生成される。なお、目的タスク設定部70は、BCR42を通過した物品7毎に目的タスクを設定する代わりに、BCR42を所定期間(例えば所定秒数ごとに定まる期間)において通過した物品7毎に、目的タスクを設定してもよい。この場合、制御装置1は、動作計画時及びロボット51の動作時では、第1搬送機械52Aによる搬送を停止させてもよい。この場合、制御装置1は、例えば、動作計画の策定、動作計画に基づくロボット51の動作、及び第1搬送機械52Aによる所定期間の搬送等を含むサイクルを繰り返し実行する。
【0079】
(5-4)抽象状態設定部
まず、抽象状態設定部71は、物体モデル情報I6を参照し、作業空間の環境を認識する技術によりカメラ41等の外界センサの出力信号である計測信号S1を解析することで、認識結果Imを生成する。上述の作業空間の環境を認識する技術は、画像処理技術、画像認識技術、音声認識技術、RFID(Radio Frequency Identifier)を用いる技術等のいずれであってもよい。認識結果Imには、作業空間内の物体(仕分け対象の物品7を含む)の種類、位置、及び姿勢などの情報が含まれている。作業空間内の物体は、例えば、ロボット51、物品7、障害物及び他作業体(ロボット51以外に作業を行う人又はその他の物体)などである。なお、抽象状態設定部71は、例えば、BCR42が物品7のバーコードの読み取りを行った時点でBCR42がバーコードを読み取り可能な位置に存在する物品7を、仕分け対象の物品7として認識する。
【0080】
次に、抽象状態設定部71は、認識結果Imと、アプリケーション情報IAの抽象状態指定情報I1とに基づき、作業空間内の抽象状態を設定する。この場合、まず、抽象状態設定部71は、抽象状態指定情報I1を参照し、作業空間内において設定すべき抽象状態を認識する。
【0081】
図7は、図3に示すバラ仕分けの作業を簡略化したピックアンドプレイスの作業空間の俯瞰図を示す。図7に示す作業空間には、2つのロボットアーム51a、51bと、搬送機械52aに載置された4つの物品7(7a~7d)と、障害物9と、物品7の目的地である仕分容器8aとが存在している。このように、図7では、仕分容器8を説明の簡略化のため1個としている。以後では、物品7を置くべき仕分容器8aの内部領域を「領域G」とも呼ぶ。ロボットアーム51a、51bは、夫々、「第1ロボット」及び「第2ロボット」の一例である。
【0082】
この場合、まず、抽象状態設定部71は、物品7の状態、障害物9の存在範囲、ロボット51の状態、領域Gの存在範囲等を認識する。
【0083】
ここでは、抽象状態設定部71は、物品7a~7dの各々の中心の位置ベクトル「x」~「x」を、物品7a~7dの位置として認識する。また、抽象状態設定部71は、ロボットアーム51aのロボットハンドの位置ベクトル「xr1」と、ロボットアーム51bのロボットハンドの位置ベクトル「xr2」とを、ロボットアーム51aとロボットアーム51bの位置として認識する。なお、物品7a~7dが搬送機械52aにより所定の搬送速度により搬送されている場合には、抽象状態設定部71は、位置ベクトルx~xを、認識結果Imが示す初期位置と、搬送機械52aの搬送速度と、初期位置からの経過時間長とをパラメータとする所定のモデル(関数)により表してもよい。上述のモデル(関数)の情報は、例えばアプリケーション情報IAに予め含まれている。また、動作計画時及びロボット51の作動時に搬送機械52aによる搬送を制御装置1が停止させている場合には、抽象状態設定部71は、位置ベクトルx~xを、認識結果Imに基づく固定値に定める。
【0084】
同様に、抽象状態設定部71は、物品7a~7dの姿勢、障害物9の存在範囲、領域Gの存在範囲等を認識する。なお、抽象状態設定部71は、例えば、障害物9を直方体とみなし、領域Gを矩形とみなす場合には、障害物9及び領域Gの各頂点の位置ベクトルを認識する。
【0085】
また、抽象状態設定部71は、抽象状態指定情報I1を参照することで、目的タスクにおいて定義すべき抽象状態を決定する。この場合、抽象状態設定部71は、作業空間内に存在する物体に関する認識結果Im(例えば物体の種類毎の個数)と、抽象状態指定情報I1とに基づき、抽象状態を示す命題を定める。
【0086】
図7の例では、抽象状態設定部71は、認識結果Imにより特定される物品7a~7dに対し、夫々識別ラベル「1」~「4」を付す。また、抽象状態設定部71は、物品「i」(i=1~4)が最終的に載置されるべき目標地点である領域G内に存在するという命題「g」を定義する。また、抽象状態設定部71は、障害物9に対して識別ラベル「O」を付し、物品iが障害物Oに干渉しているという命題「o」を定義する。さらに、抽象状態設定部71は、ロボットアーム51a、51bが互いに干渉するという命題「h」を定義する。
【0087】
このように、抽象状態設定部71は、抽象状態指定情報I1を参照することで、定義すべき抽象状態を認識し、当該抽象状態を表す命題(上述の例ではg、o、h等)を、物品7の数、ロボット51の数、障害物9の数等に応じてそれぞれ定義する。そして、抽象状態設定部71は、抽象状態を表す命題を示す情報を、抽象状態設定情報ISとして目標論理式生成部72に供給する。
【0088】
(5-5)目標論理式生成部
まず、目標論理式生成部72は、目的タスク設定部70により設定された目的タスクを、時相論理を用いた論理式に変換する。
【0089】
例えば、図7の例において、「最終的に物品(i=2)が領域Gに存在する」という目的タスクが与えられたとする。この場合、目標論理式生成部72は、目的タスクを線形論理式(LTL:Linear Temporal Logic)の「eventually」に相当する演算子「◇」と、抽象状態設定部71により定義された命題「g」と用いて、論理式「◇g」を生成する。また、目標論理式生成部72は、演算子「◇」以外の任意の時相論理の演算子(論理積「∧」、論理和「∨」、否定「¬」、論理包含「⇒」、always「□」、next「○」、until「U」等)を用いて論理式を表現してもよい。また、線形時相論理に限らず、MTL(Metric Temporal Logic)やSTL(Signal Temporal Logic)などの任意の時相論理を用いて論理式を表現してもよい。
【0090】
次に、目標論理式生成部72は、制約条件情報I2が示す制約条件を、目的タスクを示す論理式に付加することで、目標論理式Ltagを生成する。
【0091】
例えば、図7に示すピックアンドプレイスに対応する制約条件として、「ロボットアーム同士が常に干渉しない」、「物品iは障害物Oに常に干渉しない」の2つが制約条件情報I2に含まれていた場合、目標論理式生成部72は、これらの制約条件を論理式に変換する。具体的には、目標論理式生成部72は、図7の説明において抽象状態設定部71により定義された命題「o」及び命題「h」を用いて、上述の2つの制約条件を、夫々以下の論理式に変換する。
□¬h
□¬o
【0092】
よって、この場合、目標論理式生成部72は、「最終的に物品(i=2)が領域Gに存在する」という目的タスクに対応する論理式「◇g」に、これらの制約条件の論理式を付加することで、以下の目標論理式Ltagを生成する。
(◇g)∧(□¬h)∧(∧□¬o
【0093】
なお、実際には、ピックアンドプレイスに対応する制約条件は、上述した2つに限られず、「ロボットアームが障害物Oに干渉しない」、「複数のロボットアームが同じ物品を掴まない」、「物品同士が接触しない」などの制約条件が存在する。このような制約条件についても同様に、制約条件情報I2に記憶され、目標論理式Ltagに反映される。
【0094】
(5-6)タイムステップ論理式生成部
タイムステップ論理式生成部73は、目的タスクを完了するタイムステップ数(「目標タイムステップ数」とも呼ぶ。)を定め、目標タイムステップ数で目標論理式Ltagを満たすような各タイムステップでの状態を表す命題の組み合わせを定める。この組み合わせは、通常複数存在するため、タイムステップ論理式生成部73は、これらの組み合わせを論理和により結合した論理式を、タイムステップ論理式Ltsとして生成する。上述の組み合わせは、ロボット51に命令する動作のシーケンスを表す論理式の候補となり、以後では「候補φ」とも呼ぶ。
【0095】
ここで、図7の説明において例示した「最終的に物品(i=2)が領域Gに存在する」という目的タスクが設定された場合のタイムステップ論理式生成部73の処理の具体例について説明する。
【0096】
この場合、以下の目標論理式Ltagが目標論理式生成部72からタイムステップ論理式生成部73へ供給される。
(◇g)∧(□¬h)∧(∧□¬o
この場合、タイムステップ論理式生成部73は、命題「g」をタイムステップの概念を含むように拡張した命題「gi,k」を用いる。ここで、命題「gi,k」は、「タイムステップkで物品iが領域Gに存在する」という命題である。ここで、目標タイムステップ数を「3」とした場合、目標論理式Ltagは、以下のように書き換えられる。
(◇g2,3)∧(∧k=1,2,3□¬h)∧(∧i,k=1,2,3□¬oi,k
【0097】
また、◇g2,3は、以下の式に示すように書き換えることが可能である。
【0098】
【数1】
【0099】
このとき、上述した目標論理式Ltagは、以下に示す4つの候補「φ」~「φ」の論理和(φ∨φ∨φ∨φ)により表される。
【0100】
【数2】
【0101】
よって、タイムステップ論理式生成部73は、4つの候補φ~φの論理和をタイムステップ論理式Ltsとして定める。この場合、タイムステップ論理式Ltsは、4つの候補φ~φの少なくともいずれかが真となる場合に真となる。
【0102】
次に、目標タイムステップ数の設定方法について補足説明する。
【0103】
タイムステップ論理式生成部73は、例えば、メモリ12等に予め記憶された作業の見込み時間に基づき、目標タイムステップ数を決定する。この場合、タイムステップ論理式生成部73は、メモリ12等に予め記憶された、1タイムステップ当たりの時間幅の情報に基づき、上述の見込み時間から目標タイムステップ数を算出する。他の例では、タイムステップ論理式生成部73は、設定すべき目標タイムステップ数を表す情報がメモリ12等に予め記憶されている場合には、当該情報を参照することで、目標タイムステップ数を決定する。
【0104】
好適には、タイムステップ論理式生成部73は、目標タイムステップ数を所定の初期値に設定する。そして、タイムステップ論理式生成部73は、制御入力生成部75が制御入力を決定できるタイムステップ論理式Ltsが生成されるまで、目標タイムステップ数を徐々に増加させる。この場合、タイムステップ論理式生成部73は、設定した目標タイムステップ数により制御入力生成部75が最適化処理を行った結果、最適解を導くことができなかった場合、目標タイムステップ数を所定数(1以上の整数)だけ加算する。
【0105】
(5-7)抽象モデル生成部
抽象モデル生成部74は、抽象モデル情報I5と、認識結果Imとに基づき、抽象モデルΣを生成する。ここで、抽象モデル情報I5には、抽象モデルΣの生成に必要な情報が記録されている。例えば、物品の位置や数、物品を置く領域の位置、ロボット51の台数等を特定しない汎用的な形式の抽象モデルが抽象モデル情報I5に記録されている。そして、抽象モデル生成部74は、抽象モデル情報I5に記録された、ロボット51のダイナミクスを含む汎用的な形式の抽象モデルに対し、認識結果Imを反映することで、抽象モデルΣを生成する。これにより、抽象モデルΣは、作業空間内の物体の状態と、ロボット51のダイナミクスとが抽象的に表されたモデルとなる。作業空間内の物体の状態は、物品の位置及び数、物品を置く領域(仕分容器8)の位置及び数、ロボット51の台数等を示す。
【0106】
なお、制御対象となるロボット51以外の他作業体が存在する場合、他作業体の抽象化されたダイナミクスに関する情報が抽象モデル情報I5に含まれてもよい。この場合、抽象モデルΣは、作業空間内の物体の状態と、ロボット51のダイナミクスと、他作業体のダイナミクスとが抽象的に表されたモデルとなる。
【0107】
ここで、ロボット51による目的タスクの作業時においては、作業空間内のダイナミクスが頻繁に切り替わる。例えば、ロボットアームが物品iを掴んでいる場合には、当該物品iを動かすことができるが、ロボットアームが物品iを掴んでない場合には、当該物品iを動かすことができない。
【0108】
以上を勘案し、本実施形態においては、物品iを掴むという動作を論理変数「δ」により抽象表現する。この場合、例えば、抽象モデル生成部74は、図7に示す作業空間に対して設定すべき抽象モデルΣを、以下の式(1)により定めることができる。
【0109】
【数3】
【0110】
ここで、「u」は、ロボットハンドj(「j=1」はロボットアーム51aのロボットハンド、「j=2」はロボットアーム51bのロボットハンド)を制御するための制御入力を示し、「I」は単位行列を示し、「0」は零行例を示す。なお、制御入力は、ここでは、一例として速度を想定しているが、加速度であってもよい。また、「δj,i」は、ロボットハンドjが物品iを掴んでいる場合に「1」であり、その他の場合に「0」である論理変数である。また、「xr1」、「xr2」は、ロボットハンドj(j=1、2)の位置ベクトル、「x」~「x」は、物品i(i=1~4)の位置ベクトルを示す。また、「h(x)」は、物品を掴める程度に物品の近傍にロボットハンドが存在する場合に「h(x)≧0」となる変数であり、論理変数δとの間で以下の関係を満たす。
δ=1 ⇔ h(x)≧0
この式では、物品を掴める程度に物品の近傍にロボットハンドが存在する場合には、ロボットハンドが物品を掴んでいるとみなし、論理変数δを1に設定している。
【0111】
ここで、式(1)は、タイムステップkでの物体の状態とタイムステップk+1での物体の状態との関係を示した差分方程式である。そして、上記の式(1)では、把持の状態が離散値である論理変数により表わされ、物体の移動は連続値により表わされているため、式(1)はハイブリッドシステムを示している。
【0112】
式(1)では、ロボット51全体の詳細なダイナミクスではなく、物品を実際に把持するロボット51の手先であるロボットハンドのダイナミクスのみを考慮している。これにより、制御入力生成部75による最適化処理の計算量を好適に削減することができる。
【0113】
また、抽象モデル情報I5には、ダイナミクスが切り替わる動作(ピックアンドプレイスの場合には物品iを掴むという動作)に対応する論理変数、及び、認識結果Imから式(1)の差分方程式を導出するための情報が記録されている。よって、抽象モデル生成部74は、物品の位置や数、物品を置く領域(仕分容器8)の位置や数、ロボット51の台数等が変動する場合であっても、抽象モデル情報I5と認識結果Imとに基づき、対象の作業空間の環境に即した抽象モデルΣを決定することができる。
【0114】
なお、抽象モデル生成部74は、式(1)に示されるモデルに代えて、混合論理動的(MLD:Mixed Logical Dynamical)システムまたはペトリネットやオートマトンなどを組み合わせたハイブリッドシステムのモデルを生成してもよい。
【0115】
(5-8)制御入力生成部
制御入力生成部75は、タイムステップ論理式生成部73から供給されるタイムステップ論理式Ltsと、抽象モデル生成部74から供給される抽象モデルΣとに基づき、最適となるタイムステップ毎のロボット51に対する制御入力を決定する。この場合、制御入力生成部75は、目的タスクに対する評価関数を定義し、抽象モデルΣ及びタイムステップ論理式Ltsを制約条件として評価関数を最小化する最適化問題を解く。評価関数は、例えば、予めメモリ12に記憶されている。
【0116】
例えば、ピックアンドプレイスを目的タスクとした場合、制御入力生成部75は、運ぶ対象となる物品と当該物品を運ぶ目標地点との距離「d」と制御入力「u」とが最小となる(即ちロボット51が費やすエネルギーを最小化する)ように評価関数を定める。上述の距離dは、「最終的に物品(i=2)が領域Gに存在する」という目的タスクの場合には、物品(i=2)と領域Gとのタイムステップkでの距離に相当する。
【0117】
この場合、制御入力生成部75は、全タイムステップにおける距離dのノルムの2乗と制御入力uのノルムの2乗との和を評価関数として定める。そして、制御入力生成部75は、抽象モデルΣ及びタイムステップ論理式Lts(即ち候補φの論理和)を制約条件とする以下の式(2)に示す制約付き混合整数最適化問題を解く。
【0118】
【数4】
【0119】
ここで、「T」は、最適化の対象となるタイムステップ数であり、目標タイムステップ数であってもよく、後述するように、目標タイムステップ数よりも小さい所定数であってもよい。この場合、好適には、制御入力生成部75は、論理変数を連続値に近似する(連続緩和問題とする)。これにより、制御入力生成部75は、計算量を好適に低減することができる。なお、線形論理式(LTL)に代えてSTLを採用した場合には、非線形最適化問題として記述することが可能である。このような最適化により、ロボット51同士の物品7の受渡しを必要に応じて含んだロボット51の動作を規定する制御入力が決定される。
【0120】
また、制御入力生成部75は、目標タイムステップ数が長い場合(例えば所定の閾値より大きい場合)、最適化に用いるタイムステップ数を、目標タイムステップ数より小さい値(例えば上述の閾値)に設定してもよい。この場合、制御入力生成部75は、例えば、所定のタイムステップ数が経過する毎に、上述の最適化問題を解くことで、逐次的に制御入力uを決定する。
【0121】
好適には、制御入力生成部75は、目的タスクの達成状態に対する中間状態に相当する所定のイベント毎に、上述の最適化問題を解き、使用すべき制御入力uを決定してもよい。この場合、制御入力生成部75は、次のイベント発生までのタイムステップ数を、最適化に用いるタイムステップ数に設定する。上述のイベントは、例えば、作業空間におけるダイナミクスが切り替わる事象である。例えば、ピックアンドプレイスを目的タスクとした場合には、ロボット51が物品を掴む、ロボット51が運ぶべき複数の物品のうちの1つの物品を目的地点へ運び終える、などがイベントとして定められる。イベントは、例えば、予め定められており、イベントを特定する情報がメモリ12等に予め記憶されている。
【0122】
(5-9)動作シーケンス生成部
動作シーケンス生成部76は、制御入力生成部75から供給される制御入力情報Icnと、アプリケーション情報IAのサブタスク情報I4とに基づき、動作シーケンスを生成する。この場合、動作シーケンス生成部76は、サブタスク情報I4を参照することで、ロボット51が受け付け可能なサブタスクを認識し、制御入力情報Icnが示すタイムステップ毎の制御入力をサブタスクに変換する。
【0123】
例えば、サブタスク情報I4には、ピックアンドプレイスを目的タスクとする場合にロボット51が受け付け可能なサブタスクとして、ロボットハンドの移動(リーチング)とロボットハンドの把持(グラスピング)の2つのサブタスクを示す関数が定義されている。この場合、リーチングを表す関数「Move」は、例えば、当該関数実行前のロボット51の初期状態、当該関数実行後のロボット51の最終状態、及び当該関数の実行に要する所要時間をそれぞれ引数とする関数である。また、グラスピングを表す関数「Grasp」は、例えば、当該関数実行前のロボット51の状態、及び当該関数実行前の把持対象の物品の状態、論理変数δをそれぞれ引数とする関数である。ここで、関数「Grasp」は、論理変数δが「1」のときに掴む動作を行うこと表し、論理変数δが「0」のときに放す動作を行うこと表す。この場合、動作シーケンス生成部76は、関数「Move」を、制御入力情報Icnが示すタイムステップ毎の制御入力により定まるロボットハンドの軌道に基づき決定し、関数「Grasp」を、制御入力情報Icnが示すタイムステップ毎の論理変数δの遷移に基づき決定する。
【0124】
そして、動作シーケンス生成部76は、関数「Move」と関数「Grasp」とにより構成される動作シーケンスを生成し、当該動作シーケンスをロボット51に供給する。例えば、目的タスクが「最終的に物品(i=2)が領域Gに存在する」の場合、動作シーケンス生成部76は、物品(i=2)に最も近いロボットハンドに対し、関数「Move」、関数「Grasp」、関数「Move」、関数「Grasp」の動作シーケンスを生成する。この場合、物品(i=2)に最も近いロボットハンドは、1回目の関数「Move」により物品(i=2)の位置まで移動し、1回目の関数「Grasp」により物品(i=2)を把持し、2回目の関数「Move」により領域Gまで移動し、2回目の関数「Grasp」により物品(i=2)を領域Gに載置する。
【0125】
(6)処理フロー
図8は、第1実施形態において制御装置1が実行する処理の概要を示すフローチャートの一例である。
【0126】
まず、制御装置1は、仕分け対象となる物品7を検出する(ステップS11)。この場合、制御装置1は、例えば、計測装置4が生成する計測信号S1に基づき、所定範囲に存在する物品7を仕分け対象の物品7として検出する。
【0127】
次に、制御装置1は、ステップS11で検出した物品7の仕分け先となる仕分容器8を決定する(ステップS12)。この場合、制御装置1は、例えば、計測信号S1と仕分情報IBとに基づき、ステップS11で検出した物品7の各々の仕分先となる仕分容器8を決定する。なお、ステップS11及びステップS12の処理は、例えば、上述した動作計画部15の目的タスク設定部70の処理に相当する。
【0128】
次に、制御装置1は、仕分容器8の搬出及び補充が必要か否か判定する(ステップS13)。そして、制御装置1は、仕分容器8の搬出及び補充が必要と判定した場合(ステップS13;Yes)、仕分容器8の搬出及び補充を実現するための制御を行う(ステップS14)。ステップS13及びステップS14の処理は、例えば、仕分容器制御部17の処理に相当する。
【0129】
そして、制御装置1は、仕分容器8が補充されたか否か判定する(ステップS15)。ステップS15の処理は、例えば、判定部16の処理に相当する。そして、制御装置1は、仕分容器8が補充されたと判定した場合(ステップS15;Yes)、補充後の仕分容器8の配置に基づき、動作計画の更新を行う(ステップS16)。このように、制御装置1は、仕分容器8の補充が行われた場合、最新の仕分容器8の配置に基づき、物品7を仕分けるための動作計画の更新(再決定)を行う。これにより、制御装置1は、最新の仕分容器8の配置に基づき、物品7の仕分けを的確に行うことができる。なお、この場合、例えば、制御装置1は、ステップS11で検出した物品7に対するピックアンドプレイスの動作計画を新たに策定すると共に、動作計画済みであって仕分容器8に移動前の物品7に対するピックアンドプレイスの動作計画を更新用の動作計画として策定する。ステップS16の処理は、例えば、目的タスク設定部70以外の動作計画部15の処理に相当する。一方、制御装置1は、仕分容器8が補充されていない場合(ステップS15;No)、引き続きステップS14の処理を継続する。
【0130】
一方、ステップS13において、仕分容器8の搬出及び補充が必要でない場合(ステップS13;No)、制御装置1は、動作計画の決定を行う(ステップS17)。ステップS17の処理は、例えば、目的タスク設定部70以外の動作計画部15の処理に相当する。
【0131】
そして、制御装置1は、ステップS16又はステップS17で決定した動作計画に基づくロボット51の制御を行う(ステップS18)。なお、制御装置1は、ステップS18でのロボット制御を、決定した動作計画が完了するまで継続して実行したまま、次のステップに移行してもよい。ステップS18の処理は、例えば、ロボット制御部14の処理に相当する。
【0132】
そして、制御装置1は、ロボット51等の制御処理を終了すべきか否か判定する(ステップS19)。例えば、制御装置1は、ロボット51等の制御処理を停止すべき旨の外部入力等を検知した場合、ロボット51等の制御処理を終了すべきと判定する。そして、制御装置1は、ロボット51等の制御処理を終了すべきと判定した場合(ステップS19;Yes)、フローチャートの処理を終了する。一方、制御装置1は、ロボット51等の制御処理を終了すべきでない場合(ステップS19;No)、ステップS11に処理を戻す。
【0133】
(7)変形例
次に、第1実施形態の変形例について説明する。以下の変形例は任意に組み合わせて適用してもよい。
【0134】
(変形例1)
図6に示す動作計画部15のブロック構成は一例であり、種々の変更がなされてもよい。
【0135】
例えば、ロボット51に命令する動作のシーケンスの候補φの情報がメモリ12に予め記憶され、動作計画部15は、当該情報に基づき、制御入力生成部75の最適化処理を実行する。これにより、動作計画部15は、最適な候補φの選定とロボット51の制御入力の決定を行う。この場合、動作計画部15は、抽象状態設定部71、目標論理式生成部72及びタイムステップ論理式生成部73に相当する機能を有しなくともよい。このように、図6に示す動作計画部15の一部の機能ブロックの実行結果に関する情報がアプリケーション情報IAの一部として予め記憶されていてもよい。
【0136】
他の例では、アプリケーション情報には、目的タスクに対応する動作シーケンスを設計するためのフローチャートなどの設計情報が予め含まれており、動作計画部15は、当該設計情報を参照することで、動作シーケンスを生成してもよい。なお、予め設計されたタスクシーケンスに基づきタスクを実行する具体例については、特開2017-39170号に開示されている。
【0137】
(変形例2)
図3に示す作業空間は一例であり、図3に示す作業空間に対して種々の変更がなされてもよい。
【0138】
例えば、作業空間には、BCR42が設けられていなくともよい。この場合、例えば、目的タスク設定部70は、カメラ41により得られた画像に対して画像認識技術を適用することで、第1搬送機械52A上の物品7の種類及び位置を認識し、所定の位置に存在する物品7を仕分け対象となる物品7として特定する。また、目的タスク設定部70は、認識した物品7の種類に基づき、仕分け対象となる物品7の仕分け先となる仕分容器8を特定する。この場合、カメラ41による画像認識結果である物品7の種類に応じて物品7の仕分けを行うため、仕分情報IBを利用する必要がない。
【0139】
他の例では、梱包箱6から取り出された物品7は、ロボット51の可動範囲内に直接置かれてもよい。この場合、図3における第1搬送機械52Aは存在しなくともよい。さらに別の例では、仕分容器補充機構53は、仕分容器台54又は仕分容器台55から仕分容器8が搬出されたことを自センサの出力等に基づき検出し、制御装置1からの制御信号S2に依らずに自律的に仕分容器8の補充作業を行ってもよい。
【0140】
さらに別の例では、仕分容器補充機構53は、仕分容器台54と仕分容器台55とに対して夫々設けられてもよい。この場合、仕分容器補充機構53は、仕分容器台54又は仕分容器台55に対して図3に示す位置と反対側に夫々設けられてもよい。また、仕分容器台54及び仕分容器台55は、仕分容器補充機構53に相当する機能を有してもよい。この場合、仕分容器台54及び仕分容器台55は、例えば、いずれかの仕分容器8が第2搬送機械52Bに搬出された場合に、当該仕分容器8が存在した位置に補充用の仕分容器8を内部から送り出す機構を有してもよい。また、仕分容器補充機構53に代えて、ロボットアーム51A~51Cが仕分容器8を補充する作業を行ってもよい。
【0141】
また、倉庫内における入荷商品の仕分け作業に限らず、組み立て製造業、食品製造業、又は物流業での入荷作業等においても、図4及び図8等に示されるロボット51等の制御処理は好適に適用される。
【0142】
(変形例3)
仕分制御システム100には、倉庫管理システム(WMS:Warehouse Management System)が含まれ、制御装置1は倉庫管理システムと連携してバラ仕分けに関する処理を実行してもよい。
【0143】
図9は、変形例3における仕分制御システム100Aの概略構成図である。図9に示されるように、仕分制御システム100Aは、倉庫管理システムにおける情報を管理する倉庫管理装置2を含んでいる。そして、制御装置1と倉庫管理装置2は、図1に示す制御装置1が実行する処理を協働して実行する。例えば、倉庫管理装置2は、BCR42によるバーコードの読み取り結果及び仕分情報IBを管理し、制御装置1は、カメラ41等によりBCR42を通過した物品7を検出し、当該物品7の仕分け先となる仕分容器8に関する情報を倉庫管理装置2から受信する。このように、本変形例によれば、制御装置1は、倉庫管理装置2とデータ通信を行うことで、物品7の仕分け先となる仕分容器8を好適に決定し、上述した実施形態に基づくロボット51の動作計画を策定することができる。
【0144】
<第2実施形態>
図10は、第2実施形態における制御装置1Xの概略構成図である。図10に示すように、制御装置1Xは、主に、動作計画手段15Xと、判定手段16Xと、を有する。なお、制御装置1Xは、複数の装置から構成されてもよい。
【0145】
動作計画手段15Xは、複数の物品を複数の仕分容器に仕分ける作業に関するロボットの動作計画を決定する。ここで、「複数の物品を複数の仕分容器に仕分ける」とは、複数の物品を各物品の分類に従って区分けした状態となるように仕分容器内に移動させることを指す。動作計画手段15Xは、例えば、第1実施形態における動作計画部15とすることができる。
【0146】
判定手段16Xは、仕分容器が補充されたか否か判定する。ここで、「仕分容器の補充」は、物品の仕分け先の候補となる空の仕分容器を新たに設置することを指す。判定手段16Xは、例えば、第1実施形態における判定部16とすることができる。
【0147】
そして、動作計画手段15Xは、仕分容器が補充された場合、補充後の仕分容器の配置に基づき、動作計画を更新する。ここで、「動作計画を更新する」とは、仕分容器の補充前の仕分容器の状態に基づいて策定された動作計画の代わりとして、補充後の仕分容器の配置に基づいて新たな動作計画を策定することを指す。この場合には、仕分け作業が行われていない物品を対象として動作計画が策定される。
【0148】
図11は、第2実施形態において制御装置1Xが実行するフローチャートの一例である。まず、動作計画手段15Xは、複数の物品を複数の仕分容器に仕分ける作業に関するロボットの動作計画を決定する(ステップS21)。そして、判定手段16Xは、仕分容器が補充されたか否か判定する(ステップS22)。そして、仕分容器が補充された場合(ステップS22;Yes)、補充後の仕分容器の配置に基づき、動作計画を更新する(ステップS23)。なお、仕分容器が補充されない場合(ステップS22;No)、引き続きステップS22において、判定手段16Xは、仕分容器が補充されたか否か判定する。なお、動作計画が正常に実行された場合等には、制御装置1Xは、ステップS23を実行することなく本フローチャートの処理を終了してもよい。
【0149】
第2実施形態の構成によれば、制御装置1Xは、仕分容器の補充があった場合においても的確な動作計画を策定し、物品の仕分け作業をロボットに好適に実行させることができる。
【0150】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0151】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0152】
[付記1]
複数の物品を複数の仕分容器に仕分ける作業に関するロボットの動作計画を決定する動作計画手段と、
前記仕分容器が補充されたか否か判定する判定手段と、を有し、
前記動作計画手段は、前記仕分容器が補充された場合、補充後の前記仕分容器の配置に基づき、前記動作計画を更新する、制御装置。
[付記2]
前記ロボットは、第1ロボットと第2ロボットとを含み、かつ、前記第1ロボットの可動範囲と前記第2ロボットの可動範囲とが重複しており、
前記動作計画手段は、前記第1ロボットと前記第2ロボットとの間での前記物品の受渡しに関する動作を含む前記動作計画を決定する、付記1に記載の制御装置。
[付記3]
前記第1ロボットの可動範囲内に存在しない前記仕分容器が前記第2ロボットの可動範囲内に存在し、
前記動作計画手段は、前記第1ロボットの可動範囲内に存在し、かつ、前記第2ロボットの可動範囲外に存在する物品を、前記第1ロボットにより前記第2ロボットの可動範囲に移動させる動作を含む前記動作計画を決定する、付記2に記載の制御装置。
[付記4]
前記仕分容器の搬出及び補充を制御する仕分容器制御手段をさらに有する、付記1~3のいずれか一項に記載の制御装置。
[付記5]
前記仕分容器制御手段は、前記複数の物品のいずれかの物品の仕分け先となる前記仕分容器が所定の基準状態である場合、当該仕分容器の搬出及び新規の仕分容器の補充を行う、付記4に記載の制御装置。
[付記6]
前記仕分容器制御手段は、前記複数の物品のいずれかの物品の仕分け先の候補が前記複数の仕分容器に存在しない場合、前記複数の仕分容器のいずれかの仕分容器の搬出及び新規の仕分容器の補充を行う、付記4に記載の制御装置。
[付記7]
前記仕分容器制御手段は、前記いずれかの仕分容器を、前記複数の仕分容器の各々の物品の収容数又は収容率に基づき、前記複数の仕分容器から選択する、付記6に記載の制御装置。
[付記8]
前記動作計画手段は、前記動作計画として、前記ロボットが実行すべき目的となる目的タスクを時相論理により表した論理式に基づき、前記ロボットのタイムステップ毎の動作を表す動作シーケンスを生成する、付記1~7のいずれか一項に記載の制御装置。
[付記9]
前記目的タスクは、前記複数の物品を、当該物品の分類に基づき前記複数の仕分容器に移動させるピックアンドプレイスのタスクである、付記8に記載の制御装置。
[付記10]
コンピュータが、
複数の物品を複数の仕分容器に仕分ける作業に関するロボットの動作計画を決定し、
前記仕分容器が補充されたか否か判定し、
前記仕分容器が補充された場合、補充後の前記仕分容器の配置に基づき、前記動作計画を更新する、制御方法。
[付記11]
複数の物品を複数の仕分容器に仕分ける作業に関するロボットの動作計画を決定し、
前記仕分容器が補充されたか否か判定し、
前記仕分容器が補充された場合、補充後の前記仕分容器の配置に基づき、前記動作計画を更新する処理をコンピュータに実行させるプログラムが格納された記憶媒体。
【0153】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0154】
1、1X 制御装置
2 倉庫管理装置
3 通信網
4 計測装置
5 被制御機器
41 カメラ
42 BCR
51 ロボット
52 搬送機械
53 仕分容器補充機構
100、100A 仕分制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11