(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024043333
(43)【公開日】2024-03-29
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240322BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022148460
(22)【出願日】2022-09-16
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】津田 達也
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS02
3C707AS04
3C707DS01
3C707HS27
3C707KS03
3C707KS04
3C707KS07
3C707KS09
3C707KS21
3C707KS33
3C707KS37
3C707KT02
3C707KT06
3C707KX06
3C707KX10
3C707LU06
3C707MT08
(57)【要約】
【課題】適切なインピーダンスを設定することができる情報処理装置、情報処理方法及びプログラムを提供する。
【解決手段】実施形態によれば、情報処理装置は、画像インターフェースと、ロボットインターフェースと、プロセッサと、を備える。画像インターフェースは、物品を撮影した物品画像と作業空間を撮影した作業空間画像とを取得する。ロボットインターフェースは、前記物品を把持するロボットに接続する。プロセッサは、前記物品画像に基づいて前記物品の特性を判定し、前記作業空間画像に基づいて前記作業空間の特徴に関する作業状態を判定し、前記ロボットインターフェースを通じて、前記物品の特性と前記作業状態とに基づいて前記ロボットにインピーダンスを設定し、前記ロボットインターフェースを通じて、前記ロボットに前記物品を処理させる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
物品を撮影した物品画像と作業空間を撮影した作業空間画像とを取得する画像インターフェースと、
前記物品を把持するロボットに接続するロボットインターフェースと、
前記物品画像に基づいて前記物品の特性を判定し、
前記作業空間画像に基づいて前記作業空間の特徴に関する作業状態を判定し、
前記ロボットインターフェースを通じて、前記物品の特性と前記作業状態とに基づいて前記ロボットにインピーダンスを設定し、
前記ロボットインターフェースを通じて、前記ロボットに前記物品を処理させる、
プロセッサと、
を備える情報処理装置。
【請求項2】
前記ロボットインターフェースは、前記物品を把持した把持機構にかかる力を示す力覚情報を前記ロボットから取得し、
前記プロセッサは、前記力覚情報にさらに基づいて、前記物品の重量を含む前記物品の特性を判定する、
請求項1に記載の情報処理装置。
【請求項3】
前記物品の特性は、前記物品の形状又は寸法を含む、
請求項2に記載の情報処理装置。
【請求項4】
前記作業状態は、前記作業空間に積載されている物品の特性を含む、
請求項2に記載の情報処理装置。
【請求項5】
前記作業状態は、前記作業空間の充填率を含む、
請求項4に記載の情報処理装置。
【請求項6】
物品の特性と作業空間とに対応するインピーダンスを示す推定モデルを格納するメモリを備え、
前記プロセッサは、
前記推定モデルから、判定された前記物品の特性と判定された前記作業空間とに対応するインピーダンスを取得し、
前記ロボットインターフェースを通じて、前記インピーダンスを前記ロボットに設定する、
請求項2に記載の情報処理装置。
【請求項7】
前記ロボットインターフェースは、前記ロボットが前記物品を処理している間における、力覚情報と前記把持機構の角度に関する角度情報とを前記ロボットから取得し、
前記プロセッサは、
前記力覚情報と前記角度情報とに基づいてインピーダンスを算出し、
算出された前記インピーダンスに基づいて前記推定モデルを更新する、
請求項6に記載の情報処理装置。
【請求項8】
前記プロセッサは、前記ロボットインターフェースを通じて、前記ロボットに前記物品を前記作業空間へ積載させる、
請求項1乃至7の何れか1項に記載の情報処理装置。
【請求項9】
プロセッサによって実行される情報処理方法であって、
物品を撮影した物品画像と作業空間を撮影した作業空間画像とを取得し、
前記物品画像に基づいて前記物品の特性を判定し、
前記作業空間画像に基づいて前記作業空間の特徴に関する作業状態を判定し、
前記物品の特性と前記作業状態とに基づいて、前記物品を把持するロボットにインピーダンスを設定し、
前記ロボットに前記物品を処理させる、
情報処理方法。
【請求項10】
プロセッサによって実行されプログラムであって、
前記プロセッサに、
物品を撮影した物品画像と作業空間を撮影した作業空間画像とを取得する機能と、
前記物品画像に基づいて前記物品の特性を判定する機能と、
前記作業空間画像に基づいて前記作業空間の特徴に関する作業状態を判定する機能と、
前記物品の特性と前記作業状態とに基づいて、前記物品を把持するロボットにインピーダンスを設定する機能と、
前記ロボットに前記物品を処理させる機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
物品を把持して積み上げるロボットを制御するシステムが提供されている。そのようなシステムには、ロボットにインピーダンスを設定するものがある。
また、システムには、物品に十分な力を印加して積載することで物品間の隙間を減らすという要望と、物品を破損しないように力を加えすぎないという要望と、がある。
そこで、適切なインピーダンスを設定することが望まれている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の課題を解決するため、適切なインピーダンスを設定することができる情報処理装置、情報処理方法及びプログラムを提供する。
【課題を解決するための手段】
【0005】
実施形態によれば、情報処理装置は、画像インターフェースと、ロボットインターフェースと、プロセッサと、を備える。画像インターフェースは、物品を撮影した物品画像と作業空間を撮影した作業空間画像とを取得する。ロボットインターフェースは、前記物品を把持するロボットに接続する。プロセッサは、前記物品画像に基づいて前記物品の特性を判定し、前記作業空間画像に基づいて前記作業空間の特徴に関する作業状態を判定し、前記ロボットインターフェースを通じて、前記物品の特性と前記作業状態とに基づいて前記ロボットにインピーダンスを設定し、前記ロボットインターフェースを通じて、前記ロボットに前記物品を処理させる。
【図面の簡単な説明】
【0006】
【
図1】
図1は、実施形態に係るロボットシステムの構成例を概略的に示す図である。
【
図2】
図2は、実施形態に係るロボット制御装置の構成例を示すブロック図である。
【
図3】
図3は、実施形態に係る荷物特性データベースの構成例を示す図である。
【
図4】
図4は、実施形態に係る作業状態データベースの構成例を示す図である。
【
図5】
図5は、実施形態に係る推定モデルの構成例を示す図である。
【
図6】
図6は、実施形態に係るロボット制御装置の動作例を示す図である。
【
図7】
図7は、実施形態に係るロボット制御装置の動作例を示す図である。
【
図8】
図8は、実施形態に係るロボットシステムの他の構成例を概略的に示す図である。
【
図9】
図9は、実施形態に係るロボットシステムのさらに他の構成例を概略的に示す図である。
【発明を実施するための形態】
【0007】
以下、実施形態について、図面を参照して説明する。
実施形態に係るロボットシステムは、ロボットを用いて物品を把持してパレットなどの所定の場所に積載する。ロボットシステムは、既に積載されている物品の上又は横などにさらに物品を積載する。たとえば、ロボットシステムは、倉庫、物流センタなどで用いられる。
【0008】
図1は、実施形態に係るロボットシステム1の構成例を示す。ここでは、ロボットシステム1は、物品4をパレット5に積載する。
図1が示すように、ロボットシステム1は、カメラ2、カメラ3、ロボット制御装置10及びロボット20などを備える。
ロボット制御装置10は、カメラ2、カメラ3及びロボット20に接続する。
【0009】
カメラ2は、パレット5に積載される前の物品4を撮影する。カメラ2は、撮影領域2A内を撮影する。ここでは、カメラ2は、ロボット20が把持した物品4を撮影する。即ち、撮影領域2Aは、ロボット20が把持する物品4を含む領域である。カメラ2は、撮影された画像(物品画像)をロボット制御装置10に送信する。
【0010】
たとえば、カメラ2は、イメージセンサなどから構成される。また、カメラ2は、ロボット20が把持した物品4を照らす照明を備えるものであってもよい。
【0011】
カメラ3は、パレット5に積載されている物品4を含む領域(作業空間)を撮影する。カメラ3は、作業空間を含む撮影領域3A内を撮影する。ここでは、カメラ2は、パレット5とパレット5に積載されている物品4とを撮影する。即ち、撮影領域3Aは、パレット5とパレット5に積載されている物品とを含む領域である。カメラ3は、撮影された画像(作業空間画像)をロボット制御装置10に送信する。
【0012】
たとえば、カメラ3は、イメージセンサなどから構成される。また、カメラ3は、パレット5とパレット5に積載されている物品4とを照らす照明を備えるものであってもよい。
【0013】
ロボット20は、ロボット制御装置10の制御に従って、物品4を把持する。ロボット20は、把持した物品4をパレット5に積載する。また、ロボット20は、既にパレット5に積載されている物品4の上にさらに物品4を積載してもよい。
【0014】
ロボット20は、ロボットアーム21、把持部22及び力覚センサ23などから構成される。
【0015】
ロボットアーム21は、ロボット制御装置10の制御によって駆動するマニピュレータである。ロボットアーム21は、複数の棒状のフレーム211、各フレーム211を駆動するモータ、角度センサ212、電流センサなどから構成される。
【0016】
複数のフレーム211は、互いに回動可能に接続する。即ち、複数のフレーム211は、接続部において関節を構成する。
モータは、各関節においてフレーム211を回動する。
【0017】
角度センサ212は、フレーム211が形成する各関節の角度(フレーム211間の角度)を測定する。角度センサ212は、角度を示す角度情報をロボット制御装置10に送信する。角度情報は、把持部22の角度に関する情報として、プロセッサ11が把持部22の位置、及び、角度(姿勢)を算出するために用いられる。電流センサは、各関節に掛かるトルクを算出するために、各関節の動作時における電流値を測定する。
【0018】
把持部22(把持機構)は、ロボットアーム21の先端に設置されている。把持部22は、ロボットアーム21の移動に伴って移動する。把持部22は、ロボットアーム21が所定の方向に移動することにより、物品4を把持する位置まで移動する。
【0019】
把持部22は、物品4を把持する。ここでは、把持部22は、物品4を把持するグリッパから構成される。グリッパは、複数の指と、複数の指を連結している複数の関節機構とを備える。関節機構は、関節機構の動作に連動して指が動作するように構成される。グリッパは、例えば、複数の指による2点以上の接点で、対向する複数の方向から荷物に対して力を加える。これにより、把持部22は、指と物品4との間に生じる摩擦によって物品4を把持する。
【0020】
なお、把持部22は、吸着パットから構成されるものであってもよい。吸着パットは、物品に吸着する。たとえば、吸着パットは、真空吸着により物品に吸着する。吸着パットは、ロボット制御装置10からの制御に基づいて内部を負圧にする。吸着パットは、物品の表面に接した状態で内部を負圧にすることで物品の表面に真空吸着する。吸着パットは、内部の負圧を解除すると、物品を解放する。
【0021】
把持部22の構成は、物品4を把持可能な種々の把持機構を用いてよく、特定の構成に限定されるものではない。
【0022】
力覚センサ23は、把持部22に印加される力を測定する。即ち、力覚センサ23は、把持部22が把持している物品4に印加される力を測定する。力覚センサ23は、3軸方向の力を測定する。力覚センサ23は、測定された力を示す力覚情報をロボット制御装置10に送信する。なお、力覚センサ23は、3軸の回転モーメントをさらに測定するものであってもよい。
【0023】
また、ロボット20は、ロボット制御装置10からの制御に従って各部を制御するコントローラを備えるものであってもよい。
【0024】
ロボット制御装置10(情報処理装置)は、上位装置などの制御に従ってロボット20を制御する。ロボット制御装置10は、ロボット20のコントローラとして機能する。ロボット制御装置10は、ロボット20に、物品4の把持、移動及び開放などを指示する制御信号を送信する。たとえば、ロボット制御装置10は、WCS(Warehouse Management System)である。
【0025】
図2は、ロボット制御装置10の構成例を示すブロック図である。
図2が示すように、ロボット制御装置10は、プロセッサ11、ROM12、RAM13、NVM14、カメラインターフェース15、ロボットインターフェース16及び通信インターフェース17などを備える。
【0026】
プロセッサ11と、ROM12、RAM13、NVM14、カメラインターフェース15、ロボットインターフェース16及び通信インターフェース17と、は、データバスなどを介して互いに接続する。
なお、ロボット制御装置10は、
図2が示すような構成の他に必要に応じた構成を具備したり、ロボット制御装置10から特定の構成が除外されたりしてもよい。
【0027】
プロセッサ11は、ロボット制御装置10全体の動作を制御する機能を有する。プロセッサ11は、内部キャッシュ及び各種のインターフェースなどを備えてもよい。プロセッサ11は、内部メモリ、ROM12又はNVM14が予め記憶するプログラムを実行することにより種々の処理を実現する。
【0028】
なお、プロセッサ11がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであってもよい。この場合、プロセッサ11は、ハードウエア回路により実行される機能を制御する。
【0029】
ROM12は、制御プログラム及び制御データなどが予め記憶された不揮発性のメモリである。ROM12に記憶される制御プログラム及び制御データは、ロボット制御装置10の仕様に応じて予め組み込まれる。
【0030】
RAM13は、揮発性のメモリである。RAM13は、プロセッサ11の処理中のデータなどを一時的に格納する。RAM13は、プロセッサ11からの命令に基づき種々のアプリケーションプログラムを格納する。また、RAM13は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【0031】
NVM14は、データの書き込み及び書き換えが可能な不揮発性のメモリである。たとえば、NVM14は、たとえば、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はフラッシュメモリなどから構成される。NVM14は、ロボット制御装置10の運用用途に応じて制御プログラム、アプリケーション及び種々のデータなどを格納する。
【0032】
NVM14は、荷物特性データベース、作業状態データベース及び推定モデルを格納する。荷物特性データベース、作業状態データベース及び推定モデルについては、後述する。
【0033】
カメラインターフェース15(画像インターフェース)は、カメラ2及びカメラ3とデータを送受信するインターフェースである。たとえば、カメラインターフェース15は、カメラ2及びカメラ3からそれぞれ物品画像及び作業状態情報を取得しプロセッサ11に送信する。また、カメラインターフェース15は、カメラ2及びカメラ3に電力を供給するものであってもよい。
【0034】
なお、カメラインターフェース15は、カメラ2とデータを送受信するインターフェースと、カメラ3とデータを送受信するインターフェースと、から構成されるものであってもよい。
【0035】
ロボットインターフェース16は、ロボット20とデータを送受信するインターフェースである。たとえば、ロボットインターフェース16は、プロセッサ11の制御に従って種々の制御信号をロボット20に送信する。また、ロボットインターフェース16は、ロボット20から種々の情報を取得しプロセッサ11に送信する。たとえば、ロボットインターフェース16は、ロボット20から角度情報及び力覚情報などを取得しプロセッサ11に送信する。
【0036】
通信インターフェース17は、上位装置などの外部装置とデータを送受信するインターフェースである。たとえば、通信インターフェース17は、ネットワークなどを介して外部装置に接続する。たとえば、通信インターフェース17は、有線又は無線のLAN(Local Area Network)接続をサポートする。
【0037】
なお、カメラインターフェース15、ロボットインターフェース16及び通信インターフェース17(又はそれらの一部)は、一体的に構成されるものであってもよい。
【0038】
次に、物品特性データベースについて説明する。
図3は、物品特性データベースの構成例を示す。物品特性データベースは、物品4の特性を示すデータベースである。
図3が示すように、物品特性データベースは、物品4の特性としての「形状」、「寸法」及び「重量」と「画像」とを対応付けて格納する。
図3では、例として、物品特性データベースは、物品の特性A乃至Fと各特性に対応する画像とを示す。
【0039】
「形状」は、物品4の形状を示す。たとえば、「形状」は、直方体、立方体、円柱又は球などである。また、物品4が袋などの形が定まらないものである場合、「形状」は、不定形であってもよい。
【0040】
「寸法」は、物品4の外寸を示す。ここでは、「外寸」は、「大」、「中」又は「小」である。たとえば、「大」は、物品4の所定の辺の長さ(又は3辺の長さの合計)が所定の閾値以上であることを示す。また、「中」は、物品4の所定の辺の長さが所定の範囲であることを示す。また、「小」は、物品4の所定の辺の長さが所定の閾値以下であることを示す。なお、「寸法」は、物品4の3辺の長さであってもよい。
【0041】
「重量」は、物品4の重量を示す。ここでは、「重量」は、「重い」又は「軽い」である。たとえば、「重い」は、物品4の重量が所定の閾値以上であることを示す。また、「軽い」は、物品4の重量が所定の閾値未満であることを示す。なお、「重量」は、物品4の重量を数値(たとえば、kg)で示すものであってもよい。
【0042】
「画像」は、物品4を撮影した画像である。ここでは、「画像」は、カメラ2で撮影された物品画像から構成される。
【0043】
なお、物品特性データベースは、物品の特性として、変形しやすさ、堅さ、脆さなどを示すものであってもよい。物品特性データベースの構成は、特定の構成に限定されるものではない。
【0044】
次に、作業状態データベースについて説明する。
図4は、作業状態データベースの構成例を示す。作業状態データベースは、作業空間の特徴に関する作業状態を示す。
図4が示すように、作業状態データベースは、作業状態としての「充填率」、「品目数」及び「作業空間内の物品」と「作業状態の画像」とを対応付けて格納する。
図4では、例として、作業状態データベースは、作業状態A乃至Fと各作業状態に対応する「作業空間の画像」とを示す。
【0045】
「充填率」は、パレット5において物品4を積載可能な領域に対する、パレット5に現在積載されている物品4の領域の割合を示す。ここでは、「充填率」は、「高」又は「低」である。たとえば、「高」は、当該割合が所定の閾値以上であることを示す。また、「低」は、当該割合が所定の閾値未満であることを示す。なお、「充填率」は、当該割合を数値で示すものであってもよい。
【0046】
「品目数」は、パレット5に現在積載されている物品4の種類の個数を示す。物品4の種類は、物品の特性に対応する。たとえば、物品4の種類Aは、物品4の特性Aを有する。たとえば、「品目数」が2であれば、互いに異なる2つの特性を有する2種類の物品4がパレット5に積載されている。
【0047】
「作業空間内の物品」は、パレット5に現在積載されている物品4の特性を示す。パレット5に複数種類の物品4が積載されている(「品目数」が2以上である)場合、「作業空間内の物品」は、複数の物品4の特性を示す。なお、「作業空間内の物品」は、種類ごとに物品4の個数を示すものであってもよい。
【0048】
「作業空間の画像」は、対応する作業状態の画像を示す。ここでは、「作業空間の画像」は、カメラ3が撮影した作業空間画像から構成される。
【0049】
次に、推定モデルについて説明する。
図5は、推定モデルの構成例を示す。推定モデルは、ロボット20に設定するインピーダンスを推定する推定データを格納する。
図5が示すように、推定モデルは、推定データとして、「作業状態」、「物品の特性」及び「インピーダンス」とを対応付けて格納する。
図5では、例として、推定モデルは、推定データA乃至Eを示す。
【0050】
「作業状態」は、物品4が積載されるパレット5に関する作業状態を識別する識別子を示す。「作業状態」は、作業状態データベースにおける識別子(たとえば、作業状態A乃至F)に対応する。
【0051】
「物品の特性」は、ロボット20がパレット5に積載しようとする物品4の特性を識別する識別子である。「物品の特性」は、物品特性データベースにおける識別子(たとえば、物品の特性A乃至F)に対応する。
【0052】
「インピーダンス」は、ロボット20が、対応する「作業状態」において対応する「物品の特性」を有する物品4をパレット5に積載する場合、ロボット20に設定するインピーダンスを示す。即ち、「インピーダンス」は、上記の条件においてロボット20が物品4を適切に積載することができるインピーダンスである。ここでは、インピーダンスは、数値である。
【0053】
次に、ロボット制御装置10が実現する機能について説明する。ロボット制御装置10が実現する機能は、プロセッサ11がROM12又はNVM14などに格納されるプログラムを実行することで実現される。
【0054】
まず、プロセッサ11は、パレット5に積載する前の物品4を撮影した物品画像及び物品4の重量を取得する機能を有する。
【0055】
たとえば、プロセッサ11は、通信インターフェース17を通じて、物品4をパレット5に積載することを指示する制御信号を上位装置などから取得する。当該制御信号を取得すると、プロセッサ11は、ロボットインターフェース16を通じて、ロボット20に物品4を把持させる。
【0056】
ここでは、物品4は、ロボット20が把持可能な所定の領域に配置されているものとする。
ロボット20は、プロセッサ11からの制御に従って、把持部22を用いて物品4を把持する。物品4を把持すると、ロボット20は、力覚センサ23から力覚情報を取得する。力覚情報を取得すると、ロボット20は、力覚情報をロボット制御装置10に送信する。
【0057】
プロセッサ11は、ロボットインターフェース16を通じてロボット20から力覚情報を取得する。力覚情報を取得すると、プロセッサ11は、力覚情報に基づいて、物品4の重量を算出する。
【0058】
また、ロボット20が物品4を把持すると、プロセッサ11は、カメラインターフェース15を通じて、カメラ2から物品4を撮影した物品画像を取得する。
たとえば、カメラ2は、プロセッサ11からの制御に従って当該物品4を撮影する。物品4を撮影すると、カメラ2は、物品4を撮影した物品画像をロボット制御装置10に送信する。
【0059】
また、プロセッサ11は、物品4の特性を判定する機能を有する。
当該物品画像を取得すると、プロセッサ11は、所定の画像処理アルゴリズムに従って当該物品画像から物品4の特性(ここでは、特性の一部)を取得する。ここでは、プロセッサ11は、当該物品画像から、形状及び寸法などを取得する。
【0060】
プロセッサ11は、当該物品画像から得られた特性と算出された重量とを、物品4の特性(即ち、形状、寸法及び重量)として取得する。
【0061】
また、プロセッサ11は、判定された物品4の特性が物品特性データベースに含まれるかを判定する。即ち、プロセッサ11は、判定された物品4の特性に対応する物品4の特性が物品特性データベースに含まれるかを判定する。
【0062】
判定された物品4の特性が物品特性データベースに含まれないと判定すると、プロセッサ11は、判定された物品4の特性を物品特性データベースに登録する。
【0063】
なお、プロセッサ11は、物品特性データベースの画像から当該物品画像と整合する画像を検索してもよい。プロセッサ11は、物品4の特性として、検索された画像に対応する特性を取得してもよい。また、プロセッサ11は、当該物品画像と整合する画像が存在しない場合、上記の通り、物品4の特性を判定して物品特性データベースに登録してもよい。
【0064】
また、プロセッサ11は、現時点における作業空間の作業状態を判定する機能を有する。
物品4の特性を判定すると、プロセッサ11は、カメラインターフェース15を通じて、カメラ3から作業空間画像を取得する。
たとえば、カメラ3は、プロセッサ11からの制御に従って作業空間を撮影する。作業空間を撮影すると、カメラ2は、作業空間を撮影した作業空間画像をロボット制御装置10に送信する。
【0065】
当該作業空間画像を取得すると、プロセッサ11は、所定の画像処理アルゴリズムに従って当該作業空間画像から作業状態を判定する。ここでは、プロセッサ11は、作業状態として、充填率、品目数及び作業空間内の物品を取得する。
【0066】
また、プロセッサ11は、判定された作業状態が作業状態データベースに含まれるかを判定する。即ち、プロセッサ11は、判定された作業状態に対応する作業状態が作業状態データベースに含まれるかを判定する。
【0067】
判定された作業状態が作業状態データベースに含まれないと判定すると、プロセッサ11は、判定された作業状態を作業状態データベースに登録する。
【0068】
なお、プロセッサ11は、作業状態データベースにおける作業空間の画像から当該作業空間画像と整合する画像を検索してもよい。プロセッサ11は、当該作業空間画像の作業状態として、検索された画像に対応する作業状態を取得してもよい。また、プロセッサ11は、当該作業空間画像と整合する画像が存在しない場合、上記の通り、作業状態を判定して作業状態データベースに登録してもよい。
【0069】
また、プロセッサ11は、物品4の特性及び作業状態に基づいてロボット20に適用するインピーダンスを決定し、このインピーダンスを実現するようロボット20の各関節の駆動力を制御する機能を有する。
【0070】
作業状態を判定すると、プロセッサ11は、判定された物品4の特性が物品特性データベースに含まれており、かつ、判定された作業状態が作業状態データベースに含まれていたかを判定する。即ち、プロセッサ11は、物品4の特性を物品特性データベースに登録せず、かつ、判定された作業状態を作業状態データベースに登録しなかったかを判定する。
【0071】
判定された物品4の特性が物品特性データベースに含まれており、かつ、判定された作業状態が作業状態データベースに含まれていたと判定すると、プロセッサ11は、推定モデルをNVM14から取得する。
【0072】
推定モデルを取得すると、プロセッサ11は、推定モデルを参照して、判定された物品4の特性と判定された作業状態とに対応するインピーダンスを取得する。即ち、プロセッサ11は、判定された物品4の特性を示す識別子と判定された作業状態を示す識別子とに対応するインピーダンスを推定モデルから取得する。
【0073】
インピーダンスを取得すると、プロセッサ11は、ロボットインターフェース16を通じて、物品4をパレット5に積載する際のインピーダンスとして、取得されたインピーダンスをロボット20に設定する。
【0074】
また、判定された物品4の特性が物品特性データベースに含まれておらず、又は、判定された作業状態が作業状態データベースに含まれていなかったと判定すると、プロセッサ11は、ロボットインターフェース16を通じて、インピーダンスとして、既定値をロボット20に設定する。
【0075】
また、プロセッサ11は、ロボット20に、物品4をパレット5へ積載させる機能を有する。
ロボット20にインピーダンスを設定すると、プロセッサ11は、ロボットインターフェース16を通じて、ロボット20に、物品4をパレット5へ積載することを指示する制御信号を送信する。
【0076】
ロボット20は、当該制御信号を受信する。当該制御信号を受信すると、ロボット20は、設定されたインピーダンスに従って、把持された物品4をパレット5における所定の位置(積載位置)まで搬送する。把持された物品4を積載位置まで搬送すると、ロボット20は、物品4を開放して積載位置に積載する。
なお、積載位置は、既にパレット5に積載されている他の物品4の上であってもよい。
【0077】
また、プロセッサ11は、ロボット20が物品4を積載している間における角度情報及び力覚情報を取得する機能を有する。
【0078】
ここでは、ロボット20は、物品4を把持してから積載するまでの間において所定の間隔で角度情報及び力覚情報をロボット制御装置10に送信するものとする。
【0079】
プロセッサ11は、ロボットインターフェース16を通じて、所定の間隔で角度情報及び力覚情報をロボット20から取得する。
なお、プロセッサ11は、物品4の積載が完了した後に、ロボット20が物品4を積載している間における角度情報及び力覚情報をロボット20から取得してもよい。
【0080】
また、プロセッサ11は、取得された角度情報及び力覚情報に基づいて推定モデルを更新する機能を有する。
【0081】
物品4の積載が完了すると、プロセッサ11は、取得された角度情報及び力覚情報に基づいて、適切なインピーダンスを算出する。即ち、プロセッサ11は、判定された作業状態において判定された特性の物品4を積載位置に積載するために適切なインピーダンスを算出する。インピーダンスは、ロボット20に掛かる外力と、把持部22の位置及び角度と、慣性係数と、粘性係数と、ばね係数となどに基づいて算出される。
【0082】
たとえば、プロセッサ11は、角度情報に基づいて把持部22の角度を算出する。プロセッサ11は、把持部22の角度と力覚情報が示す力とに基づいてインピーダンスを算出する。
【0083】
インピーダンスを算出すると、プロセッサ11は、算出されたインピーダンスを用いて推定モデルを更新する。
【0084】
推定モデルからのインピーダンスをロボット20に設定した場合、プロセッサ11は、推定モデルにおいて、判定された物品4の特性と判定された作業状態とに対応するインピーダンスを算出されたインピーダンスに書き換える。
【0085】
また、インピーダンスとして既定値をロボット20に設定した場合、プロセッサ11は、推定モデルに、判定された物品4の特性を示す識別子と、判定された作業状態を示す識別子と、算出されたインピーダンスと、を対応付けて格納する。
【0086】
次に、ロボット制御装置10の動作例について説明する。
ロボット制御装置10のプロセッサ11は、ロボットインターフェース16を通じてロボット20に物品4を把持させる(S11)。ロボット20に物品4を把持させると、プロセッサ11は、カメラインターフェース15を通じて物品4を撮影した物品画像をカメラ2から取得する(S12)。ここで、プロセッサ11は、力覚情報をロボット20から取得してもよい。
【0087】
物品画像を取得すると、プロセッサ11は、物品画像及び力覚情報に基づいて物品4の特性を判定する(S13)。物品4の特性を判定すると、プロセッサ11は、判定された物品4の特性が物品特性データベースに含まれるかを判定する(S14)。
【0088】
判定された物品4の特性が物品特性データベースに含まれていないと判定すると(S14、NO)、プロセッサ11は、判定された物品4の特性を物品特性データベースに登録する(S15)。
【0089】
判定された物品4の特性が物品特性データベースに含まれていると判定した場合(S14、YES)、又は、判定された物品4の特性を物品特性データベースに登録した場合(S15)、プロセッサ11は、カメラインターフェース15を通じて作業空間を撮影した作業空間画像をカメラ3から取得する(S16)。
【0090】
作業空間画像を取得すると、プロセッサ11は、作業空間画像に基づいて作業状態を判定する(S17)。作業空間画像に基づいて作業状態を判定すると、プロセッサ11は、判定された作業状態が作業状態データベースに含まれるかを判定する(S18)。
【0091】
判定された作業状態が作業状態データベースに含まれていないと判定すると(S18、NO)、プロセッサ11は、判定された作業状態を作業状態データベースに登録する(S19)。
【0092】
判定された作業状態が作業状態データベースに含まれていると判定した場合(S18、YES)、又は、判定された作業状態を作業状態データベースに登録した場合(S19)、プロセッサ11は、判定された物品4の特性及び判定された作業状態が物品特性及び作業状態データベースにそれぞれ含まれているかを判定する(S20)。即ち、プロセッサ11は、S14及びS19の両者でNOであるかを判定する。
【0093】
判定された物品4の特性及び判定された作業状態が物品特性及び作業状態データベースにそれぞれ含まれていると判定すると(S20、YES)、プロセッサ11は、推定モデルを取得する(S21)。
【0094】
推定モデルを取得すると、プロセッサ11は、推定モデルを参照して、判定された物品4の特性及び判定された作業状態に対応するインピーダンスを取得する(S22)。インピーダンスを取得すると、プロセッサ11は、ロボットインターフェース16を通じて取得されたインピーダンスをロボット20に設定する(S23)。
【0095】
判定された物品4の特性又は判定された作業状態が物品特性又は作業状態データベースに含まれていないと判定すると(S20、NO)、プロセッサ11は、ロボットインターフェース16を通じてインピーダンスとして既定値をロボット20に設定する(S24)。
【0096】
取得されたインピーダンスをロボット20に設定した場合(S23)、又は、インピーダンスとして既定値をロボット20に設定した場合(S24)、プロセッサ11は、ロボットインターフェース16を通じてロボット20に物品4をパレット5へ積載させる(S25)。
【0097】
ロボット20に物品4をパレット5へ積載させると、プロセッサ11は、ロボット20が物品4をパレット5に積載している最中であるかを判定する(S26)。ロボット20が物品4をパレット5に積載している最中であると判定すると(S26、YES)、プロセッサ11は、ロボットインターフェース16を通じて角度情報をロボット20から取得する(S27)。
【0098】
角度情報をロボット20から取得すると、プロセッサ11は、ロボットインターフェース16を通じて力覚情報をロボット20から取得する(S28)。力覚情報をロボット20から取得すると、プロセッサ11は、S26に戻る。
【0099】
ロボット20が物品4をパレット5に積載したと判定すると(S26、NO)、プロセッサ11は、取得された角度情報及び力覚情報に基づいてインピーダンスを算出する(S29)。インピーダンスを算出すると、プロセッサ11は、算出されたインピーダンスに基づいて推定モデルを更新する(S30)。
推定モデルを更新すると、プロセッサ11は、動作を終了する。
【0100】
なお、プロセッサ11は、パレット5に積載する物品4がさらに存在する場合、S11乃至S30を繰り返し実行してもよい。
【0101】
また、カメラ3は、パレット5に積載された物品4が形成する最上段を撮影するものであってもよい。即ち、カメラ3は、物品4を積載する段を撮影する。たとえば、カメラ3は、パレット5を上方から撮影するものであってもよい。
また、カメラ2及びカメラ3は、1つのカメラであってもよい。たとえば、カメラ3は、ロボット20が把持する物品4と作業空間とを撮影するものであってもよい。プロセッサ11は、カメラ3の画像から物品4が写る物品画像と作業空間が写る作業空間画像とを抽出するものであってもよい。
【0102】
また、カメラ2は、ロボット20が把持する前に物品4を撮影するものであってもよい。
【0103】
また、ロボット20が物品4を積載している間において、ロボット制御装置10のプロセッサ11は、インピーダンスを設定し直してもよい。たとえば、プロセッサ11は、ロボット20が物品4を積載している間において、カメラ3から作業空間画像を取得し作業状態を判定し続ける。プロセッサ11は、作業状態が変化した場合、推定モデルから物品4の特性と変化後の作業状態とに対応するインピーダンスを取得する。インピーダンスを取得すると、プロセッサ11は、ロボットインターフェース16を通じて、取得されたインピーダンスをロボット20に設定する。また、プロセッサ11は、作業空間画像などに基づいて作業空間に人が近づいたことを検知すると、インピーダンスを下げてもよい。
【0104】
また、プロセッサ11は、判定された物品4の特性又は判定された作業状態が物品特性又は作業状態データベースに含まれていない場合、データベースに含まれていない物品4の特性又は作業状態と登録されている物品4の特性又は作業状態との類似度を算出してもよい。プロセッサ11は、最も類似度が高い2の物品4の特性又は作業状態に従って2つのインピーダンスを推定モデルから取得する。プロセッサ11は、2つのインピーダンスを線形補完して、ロボット20に設定されるインピーダンスを算出してもよい。
【0105】
また、推定モデルは、物品4の特性及び作業状態を入力するとインピーダンスを出力する関数又はネットワークなどであってもよい。
【0106】
次に、ロボットシステム1の他の例について説明する。
図8は、他の例であるロボットシステム1’の構成例を示す。ロボットシステム1’は、カメラ2、カメラ3、ロボット制御装置10及びロボット20などを備える。
図8が示すように、ロボットシステム1’は、ケース6に物品4を積載する。
【0107】
ケース6は、上面が開放している箱状に形成されている。
ここでは、ロボット20は、ケース6の上部から物品4をケース6内に積載する。
図8が示すように、ロボット20は、設定されたインピーダンスにより、ケース6内の物品4に力を印加しながら物品4をケース6内に積載する。
【0108】
次に、ロボットシステム1のさらに他の例について説明する。
図9は、さらに他の例であるロボットシステム1’’の構成例を示す。ロボットシステム1’’は、カメラ3、ロボット制御装置10及びロボット20などを備える。
図9が示す例では、ロボットシステム1’’は、物品4を格納するケース6から物品4をピッキングする。
【0109】
たとえば、ロボット制御装置10のプロセッサ11は、通信インターフェース17を通じて、物品4をピッキングすることを指示する制御信号を上位装置などから受信する。当該制御信号を受信すると、プロセッサ11は、カメラ3を用いてケース6内を撮影した作業空間画像を取得する。
【0110】
作業空間画像を取得すると、プロセッサ11は、所定の画像処理アルゴリズムに従って、作業空間画像から、ピッキングの対象となる物品4の画像(物品画像)を抽出する。物品画像を抽出すると、プロセッサ11は、前述の通り、物品画像に基づいて物品4の特性を判定する。ここでは、プロセッサ11は、物品4の特性として、形状及び寸法を判定する。また、プロセッサ11は、前述の通り、物品特性データベースに物品4の特性が含まれていない場合、物品4の特性を物品特性データベースに登録する。
【0111】
物品4の特性を判定すると、プロセッサ11は、前述の通り、作業空間画像に基づいて作業状態を判定する。また、プロセッサ11は、前述の通り、作業状態データベースに作業状態が含まれていない場合、作業状態を作業状態データベースに登録する。
【0112】
作業状態を判定すると、プロセッサ11は、判定された物品4の特性及び判定された作業状態が物品特性及び作業状態データベースにそれぞれ含まれているかを判定する。
【0113】
判定された物品4の特性及び判定された作業状態が物品特性及び作業状態データベースにそれぞれ含まれていると判定すると、プロセッサ11は、前述の通り、推定モデルからインピーダンスを取得する。インピーダンスを取得すると、プロセッサ11は、ロボットインターフェース16を通じてインピーダンスをロボット20に設定する。
【0114】
判定された物品4の特性又は判定された作業状態が物品特性又は作業状態データベースに含まれていないと判定すると、プロセッサ11は、ロボットインターフェース16を通じてインピーダンスとして既定値をロボット20に設定する。
【0115】
ロボット20にインピーダンスを設定すると、プロセッサ11は、ロボットインターフェース16を通じて、ロボット20に物品4をケース6からピッキングさせる。
【0116】
また、プロセッサ11は、ロボット20がピッキングしている間における角度情報及び力覚情報を取得する。角度情報及び力覚情報を取得すると、プロセッサ11は、角度情報及び力覚情報に基づいて適切なインピーダンスを算出する。インピーダンスを算出すると、プロセッサ11は、算出されたインピーダンスに基づいて推定モデルを更新する。
【0117】
なお、ロボット20は、ピッキングされた物品4を所定の場所に積載するものであってもよい。
【0118】
以上のように構成されたロボットシステムは、ロボットが把持する物品の特性及び作業空間の作業状態を判定する。ロボットシステムは、推定モデルを参照して、判定された特性及び作業状態に対応するインピーダンスをロボットに設定する。
【0119】
また、ロボットシステムは、作業が完了した後に、作業中におけるロボットの角度情報及び力覚情報に基づいて最適なインピーダンスを算出する。ロボットシステムは、算出されたインピーダンスに基づいて推定モデルを更新する。
【0120】
その結果、ロボットシステムは、適切なインピーダンスをロボットに設定することができる。
【0121】
本実施形態に係るプログラムは、電子機器に記憶された状態で譲渡されてよいし、電子機器に記憶されていない状態で譲渡されてもよい。後者の場合は、プログラムは、ネットワークを介して譲渡されてよいし、記憶媒体に記憶された状態で譲渡されてもよい。記憶媒体は、非一時的な有形の媒体である。記憶媒体は、コンピュータ可読媒体である。記憶媒体は、CD-ROM、メモリカード等のプログラムを記憶可能かつコンピュータで読取可能な媒体であればよく、その形態は問わない。
【0122】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0123】
1…ロボットシステム、1’…ロボットシステム、1’’…ロボットシステム、2…カメラ、2A…撮影領域、3…カメラ、3A…撮影領域、4…物品、5…パレット、6…ケース、10…ロボット制御装置、11…プロセッサ、12…ROM、13…RAM、14…NVM、15…カメラインターフェース、16…ロボットインターフェース、17…通信インターフェース、20…ロボット、21…ロボットアーム、22…把持部、23…力覚センサ、211…フレーム、212…角度センサ。