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

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

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

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