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

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

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

特開2022-67995制御装置、ロボット制御システム、プログラム、および制御方法
<>
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図1
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図2
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図3
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図4
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図5
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図6
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図7
  • 特開-制御装置、ロボット制御システム、プログラム、および制御方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022067995
(43)【公開日】2022-05-09
(54)【発明の名称】制御装置、ロボット制御システム、プログラム、および制御方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20220426BHJP
【FI】
B25J13/08 Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2020176894
(22)【出願日】2020-10-21
(71)【出願人】
【識別番号】000191009
【氏名又は名称】新東工業株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】特許業務法人HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】田名網 克周
(72)【発明者】
【氏名】伊藤 康二
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707ES03
3C707ET08
3C707KS06
3C707KS33
3C707KW03
(57)【要約】
【課題】ワークの種類数に関わらず簡易な構成でワークの種類を判別する。
【解決手段】ロボット(30)は、力覚センサ(34)を介してアーム部(32)に固定されたハンド部(33)を含む。制御装置(10)が備える1または複数のプロセッサは、ハンド部(33)に把持されたワーク(90)の重心の位置、または、ワーク(90)およびハンド部(33)からなる系の重心の位置を、力覚センサ(34)の検出値に基づき算出し、算出した重心の位置を参照して、ワーク(90)の種類を判別する。
【選択図】図1
【特許請求の範囲】
【請求項1】
ロボットを制御する制御装置であって、1または複数のプロセッサを備え、
前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたハンド部とを含み、
前記1または複数のプロセッサは、
前記ハンド部に把持されたワークの重心の位置、または、前記ワークおよび前記ハンド部からなる系の重心の位置を、前記力覚センサの検出値に基づき算出する算出処理と、
前記重心の位置を参照して、前記ワークの種類を判別する判別処理と、
を実行する、制御装置。
【請求項2】
前記1または複数のプロセッサは、
前記算出処理において、前記検出値に基づき前記ワークの重量または前記系の重量をさらに算出し、
前記判別処理において、前記重量をさらに参照して前記ワークの種類を判別する、請求項1に記載の制御装置。
【請求項3】
前記1または複数のプロセッサは、
前記判別処理において前記ワークの種類を判別できない場合、異常発生を報知する報知処理をさらに実行する、請求項1または2に記載の制御装置。
【請求項4】
前記1または複数のプロセッサは、
前記ハンド部の把持力を、前記判別処理により判別した種類に応じた大きさに調整する調整処理をさらに実行する、請求項1から3の何れか1項に記載の制御装置。
【請求項5】
前記力覚センサは、6軸力覚センサである、請求項1から4の何れか1項に記載の制御装置。
【請求項6】
請求項1から5の何れか1項に記載の制御装置と、前記ロボットと、を含む、ロボット制御システム。
【請求項7】
請求項1から5の何れか1項に記載の制御装置を動作させるためのプログラムであって、前記1または複数のプロセッサに前記各処理を実行させるプログラム。
【請求項8】
1または複数のプロセッサがロボットを制御する制御方法であって、
前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたハンド部とを含み、
前記1または複数のプロセッサが、前記ハンド部に把持されたワークの重心の位置、または、前記ワークおよび前記ハンド部からなる系の重心の位置を、前記力覚センサの検出値に基づき算出する算出ステップと、
前記1または複数のプロセッサが、前記重心の位置を参照して、前記ワークの種類を判別する判別ステップと、を含む、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワークの種類を判別する技術に関する。
【背景技術】
【0002】
ワークの種類を判別する技術が知られている。例えば、特許文献1には、複数の近接スイッチを用いてワークの種類を判別する装置が記載されている。この装置は、種類に応じた配置パターンでワークにねじ込まれたワーク種判別用ドグを、各ドグのねじ込み位置に相対する位置に配置した近接スイッチを用いて検出する。そして、この装置は、オンになった近接スイッチの組み合わせに応じてワークの種別を判別する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平02-9553号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載された技術は、ワークの種類が多くなると、配置パターンを増やすためにドグのねじ込み位置が増え、判別に必要な近接センサの数が増える。この場合、配線が複雑になるという問題がある。また、そのために維持管理にコストがかかるという問題もある。
【0005】
本発明の一態様は、ワークの種類が増加しても構成を複雑化することなく、ワークの種類を判別する技術を実現することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様に係る制御装置は、ロボットを制御する制御装置であって、1または複数のプロセッサを備える。1または複数のプロセッサは、算出処理と、判別処理とを実行する。また、本発明の一態様に係る制御方法は、1または複数のプロセッサがロボットを制御する制御方法であって、算出ステップと、判別ステップとを含む。
【0007】
前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたハンド部とを含む。算出処理(算出ステップ)において、前記1または複数のプロセッサは、前記ハンド部に把持されたワークの重心の位置、または、前記ワークおよび前記ハンド部からなる系の重心の位置を、前記力覚センサの検出値に基づき算出する。判別処理(判別ステップ)において、前記1または複数のプロセッサは、前記重心の位置を参照して、前記ワークの種類を判別する。
【発明の効果】
【0008】
本発明の一態様によれば、ワークの重心の位置に応じて種類を判別するので、ワークの種類が増加しても構成を複雑化することなく、ワークの種類を判別することができる。
【図面の簡単な説明】
【0009】
図1】本発明の一実施形態に係るロボット制御システムの構成を示す模式図である。
図2】本発明の一実施形態に係るロボット制御システムの構成を示すブロック図である。
図3】本発明の一実施形態における力覚センサの検出値および接続形態の具体例を示す模式図である。
図4】本発明の一実施形態に係る制御方法の流れを示すフローチャートである。
図5】本発明の一実施形態における算出処理の具体例を説明する模式図である。
図6】本発明の一実施形態における種類データベースの一例を説明する図である。
図7】本発明の実施例で用いたワークを上方から見た様子を示す模式図である。
図8】本発明の実施例で用いたワークを下方から見た様子を示す模式図である。
【発明を実施するための形態】
【0010】
〔実施形態〕
以下、本発明の一実施形態に係るロボット制御システム1について、詳細に説明する。
【0011】
<ロボット制御システム1の概要>
ロボット制御システム1は、ロボットを制御するシステムであり、ロボットが把持したワークの種類を判別する。ここで、判別対象は、複数種類のワークの何れかである。換言すると、ロボット制御システム1は、ロボットが把持したワークの種類が、複数種類の何れであるかを判別する。
【0012】
制御対象のロボットは、アーム部と、力覚センサと、力覚センサを介してアーム部に固定されたハンド部とを含む。ロボット制御システム1は、ハンド部に把持されたワークの重心の位置、または、ワークおよびハンド部からなる系の重心の位置を、力覚センサの検出値に基づき算出し、算出した重心の位置を参照して、ワークの種類を判別する。
【0013】
このようなロボット制御システム1では、ワークの重心の位置に応じて種類を判別するので、ワークの種類が増加しても、判別に必要な力覚センサの数を増やす必要はない。その結果、ロボット制御システム1は、ワークの種類が増加しても構成を複雑化することなく、ワークの種類を判別することができる。
【0014】
<ロボット制御システム1の構成>
ロボット制御システム1の構成について、図1および図2を参照して説明する。図1は、ロボット制御システム1の構成を示す模式図である。図2は、ロボット制御システム1の構成を示すブロック図である。
【0015】
図1および図2に示すように、ロボット制御システム1は、専用コントローラ10と、ロボットコントローラ20と、ロボット30とを含む。ロボット制御システム1は、ロボット30が把持したワーク90の種類を判別するシステムである。なお、専用コントローラ10は、本発明における制御装置の一例である。
【0016】
(ロボット30の構成)
ロボット30は、台座31と、アーム部32と、ハンド部33と、力覚センサ34とを含む。
【0017】
台座31は、ロボット30の配置面に配置される。配置面は、例えば、床等であるが、これに限られない。台座31は、ロボットコントローラ20の制御に基づいて配置面を移動可能であってもよい。
【0018】
アーム部32は、4本のアームを含む。各アームの基端部は、他のアームの先端部または台座31に対して、定められた軸まわりに回転可能に連結される。ロボットコントローラ20の制御に基づいて、各アームが連結部分で回転制御されることにより、アーム部32全体の先端部の軌道が制御される。
【0019】
ハンド部33は、力覚センサ34を介してアーム部32に固定される。ハンド部33は、基部331と、基部331に接続された一対の指部332a、332bとを含む。ハンド部33は、ロボットコントローラ20の制御に基づいて、指部332a、332bを互いに離れるように開く動作と、互いに接近するよう閉じる動作とを行う。ハンド部33は、指部332a、332bの開閉によりワーク90を把持する。以降、指部332a、332bを開閉することを、ハンド部33を開閉するとも記載する。
【0020】
力覚センサ34は、自身に作用する力およびモーメントの方向および大きさを検出する。力覚センサ34の検出値について、図3を参照して説明する。図3は、力覚センサ34の検出値および接続形態の具体例を説明する模式図である。図3に示すように、力覚センサ34は、3軸(x軸、y軸、z軸)の各方向に作用する力の大きさ(Fx、Fy、Fz)と、各軸回りのモーメントの大きさ(Mx、My、Mz)とを検出する6軸力覚センサである。以降、Fx、Fy、Fz、Mx、My、Mzを、力の成分、または、単に検出値とも記載する。
【0021】
また、図3に示すように、力覚センサ34は、面341と面342とを有する。また、力覚センサ34は、面341を有する部材および面342を有する部材を連結する起歪体(不図示)を有する。力覚センサ34は、内部の起歪体の変形を検出する事により、自身に作用する力の各成分の値を算出する。
【0022】
また、「ハンド部33が力覚センサ34を介してアーム部32に固定される」接続形態の一例について、図3を参照して説明する。図3に示すように、アーム部32全体の先端部321は、力覚センサ34の面342に固定される。ハンド部33の基部331は、力覚センサ34の面341に固定される。これにより、ハンド部33がワーク90を把持した状態でワーク90に外力が加わると、力覚センサ34にも外力が加わる。したがって、力覚センサ34は、ワーク90に外力が加わると、自身に作用する力の各成分の値を検出する。
【0023】
(ロボットコントローラ20の構成)
ロボットコントローラ20は、ロボット30全体の動作を制御する装置である。図2に示すように、ロボットコントローラ20は、プロセッサ21と、一次メモリ22と、二次メモリ23と、通信インタフェース(IF)24と、入出力インタフェース(IF)25とを備える。プロセッサ21、一次メモリ22、二次メモリ23、通信インタフェース24、および入出力インタフェース25は、バスを介して相互に接続されている。
【0024】
二次メモリ23には、プログラムP2が格納されている。プログラムP2は、ロボット30全体の動作を制御する処理をプロセッサ21に実行させるためのプログラムである。プロセッサ21は、二次メモリ23に格納されているプログラムP2を一次メモリ22上に展開する。そして、プロセッサ21は、一次メモリ22上に展開されたプログラムP2に含まれる命令に従って、ロボット30全体の動作を制御する処理を実行する。ロボット30全体の動作を制御する処理の詳細については後述する。
【0025】
プロセッサ21として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ21は、「演算装置」と呼ばれることもある。
【0026】
また、一次メモリ22として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ22は、「主記憶装置」と呼ばれることもある。また、二次メモリ23として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy(登録商標) Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ23は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ23は、ロボットコントローラ20に内蔵されていてもよいし、通信インタフェース24を介してロボットコントローラ20と接続された他のコンピュータ(例えば、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、ロボットコントローラ20における記憶を2つのメモリ(一次メモリ22および二次メモリ23)により実現しているが、これに限定されない。すなわち、ロボットコントローラ20における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ22として利用し、そのメモリの他の記憶領域を二次メモリ23として利用すればよい。
【0027】
通信インタフェース24は、専用コントローラ10との通信を行うためのインタフェースである。通信インタフェース24の具体例としては、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。また、通信インタフェース24の他の具体例としては、イーサネット(登録商標)、Wi-Fi(登録商標)、シリアル通信システムなどのインタフェースが挙げられる。通信インタフェース24および後述する通信インタフェース14を接続するネットワークシステムの具体例としては、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。なお、専用コントローラ10は、入出力インタフェース25に接続されてもよい。
【0028】
入出力インタフェース25には、アーム部32およびハンド部33がそれぞれの駆動部(不図示)を介して接続される。入出力インタフェース25としては、例えば、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。また、入出力インタフェース25としては、例えば、シリアル通信、イーサネット、DeviceNet、CC-Link、PROFIBUS、EtherNet/IP、EtherCat(Ethernet for Control Automation Technology)などのインタフェースが挙げられる。なお、アーム部32およびハンド部33の一方または両方は、駆動部を介して通信インタフェース24に接続されてもよい。
【0029】
(ロボット30全体の動作を制御する処理)
ロボットコントローラ20がロボット30全体の動作を制御する処理は、移動制御処理、把持制御処理、および把持力制御処理を含む。移動制御処理は、アーム部32全体の先端部321を移動させる処理である。先端部321が移動すると、先端部321に力覚センサ34を介して固定されたハンド部33も移動する。以降、先端部321を移動させることを、ハンド部33を移動させるとも記載する。プロセッサ21は、アーム部32の各連結部分を駆動する駆動部に制御情報を送信することにより、ハンド部33を移動させる。プロセッサ21は、外部から受信した情報が示す位置までハンド部33を移動させてもよい。また、プロセッサ21は、外部から受信した情報が示す方向にハンド部33を移動させてもよい。
【0030】
把持制御処理は、ハンド部33にワーク90を把持させる処理である。プロセッサ21は、アーム部32の先端部321を昇降する昇降処理と、ハンド部33を開閉する開閉処理とを組み合わせることにより、把持制御処理を行う。プロセッサ21は、アーム部32の各連結部分を駆動する駆動部に制御情報を送信することにより、昇降処理を行う。また、プロセッサ21は、指部332a、332bを駆動する駆動部に制御情報を送信することにより、開閉処理を行う。
【0031】
把持力制御処理は、ハンド部33の把持力を制御する処理である。プロセッサ21は、指部332a、332bを駆動する駆動部に制御情報を送信することにより、把持力制御処理を行う。
【0032】
(専用コントローラ10の構成)
専用コントローラ10は、ワーク90の種類を判別するための各処理を実行する装置である。専用コントローラ10は、ハンド部33に把持されたワーク90の重心の位置、または、ワーク90およびハンド部33からなる系の重心の位置を、力覚センサ34の検出値に基づき算出する。また、専用コントローラ10は、算出した重心の位置を参照して、ワーク90の種類を判別する。
【0033】
図2に示すように、専用コントローラ10は、プロセッサ11と、一次メモリ12と、二次メモリ13と、通信インタフェース14と、入出力インタフェース15とを含む。プロセッサ11、一次メモリ12、二次メモリ13、通信インタフェース14、および入出力インタフェース15は、バスを介して相互に接続されている。
【0034】
二次メモリ13には、プログラムP1および種類データベース(DB)が格納されている。プログラムP1は、後述する制御方法Sをプロセッサ11に実行させるためのプログラムである。プロセッサ11は、二次メモリ13に格納されているプログラムP1を一次メモリ12上に展開する。そして、プロセッサ11は、一次メモリ12上に展開されたプログラムP1に含まれる命令に従って、制御方法Sに含まれる各ステップを実行する。種類データベースDBは、制御方法Sを実行するプロセッサ11によって参照される情報である。種類データベースの詳細については後述する。
【0035】
プロセッサ11として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。プロセッサ11は、「演算装置」と呼ばれることもある。
【0036】
また、一次メモリ12として利用可能なデバイスとしては、例えば、半導体RAM(Random Access Memory)を挙げることができる。一次メモリ12は、「主記憶装置」と呼ばれることもある。また、二次メモリ13として利用可能なデバイスとしては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ODD(Optical Disk Drive)、FDD(Floppy(登録商標) Disk Drive)、又は、これらの組み合わせを挙げることができる。二次メモリ13は、「補助記憶装置」と呼ばれることもある。なお、二次メモリ13は、専用コントローラ10に内蔵されていてもよいし、通信インタフェース14または入出力インタフェース15を介して専用コントローラ10と接続された他のコンピュータ(例えば、ロボットコントローラ20、または、クラウドサーバを構成するコンピュータ)に内蔵されていてもよい。なお、本実施形態においては、専用コントローラ10における記憶を2つのメモリ(一次メモリ12および二次メモリ13)により実現しているが、これに限定されない。すなわち、専用コントローラ10における記憶を1つのメモリにより実現してもよい。この場合、例えば、そのメモリの或る記憶領域を一次メモリ12として利用し、そのメモリの他の記憶領域を二次メモリ13として利用すればよい。
【0037】
通信インタフェース14は、ロボットコントローラ20との通信を行うためのインタフェースである。通信インタフェース14の具体例としては、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。また、通信インタフェース14の他の具体例としては、例えば、イーサネット(登録商標)、Wi-Fi(登録商標)、シリアル通信システムなどのインタフェースが挙げられる。通信インタフェース14および通信インタフェース24を接続するネットワークシステムの具体例としては、前述したように、PAN(Personal Area Network)、LAN(Local Area Network)、CAN(Campus Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)、GAN(Global Area Network)、又は、これらのネットワークを含むインターネットワークが挙げられる。インターネットワークは、イントラネットであってもよいし、エクストラネットであってもよいし、インターネットであってもよい。なお、ロボットコントローラ20は、入出力インタフェース15に接続されてもよい。
【0038】
入出力インタフェース15には、力覚センサ34が接続される。入出力インタフェース15としては、例えば、USB(Universal Serial Bus)、ATA(Advanced Technology Attachment)、SCSI(Small Computer System Interface)、PCI(Peripheral Component Interconnect)などのインタフェースが挙げられる。また、入出力インタフェース15としては、例えば、シリアル通信、イーサネット(登録商標)、USB、A/Dコンバータ、EtherCat(Ethernet for Control Automation Technology)などのインタフェースが挙げられる。なお力覚センサ34は、通信インタフェース14、または入出力インタフェース25に接続されてもよい。
【0039】
<制御方法Sの流れ>
ロボット制御システム1においてプロセッサ11が実行する制御方法Sについて、図4を参照して説明する。図4は、制御方法Sの流れを示すフローチャートである。図4に示すように、制御方法Sは、ステップS101からS110までを含む。
【0040】
(ステップS101)
ステップS101において、プロセッサ11は、ワーク90の把持位置までハンド部33を移動させる。把持位置は、事前に定められている。例えば、把持位置は、把持前のワーク90の配置位置の上方にある。
【0041】
具体的には、プロセッサ11は、把持位置を示す情報をロボットコントローラ20に送信して、当該位置までの移動制御処理を要求する。ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、ハンド部33を当該把持位置まで移動する。
【0042】
(ステップS102)
ステップS102において、プロセッサ11は、力覚センサ34をリセットする。力覚センサ34は、リセット時点の状態で各検出値としてゼロを出力する。
【0043】
(ステップS103)
ステップS103において、プロセッサ11は、ハンド部33にワーク90を把持させる。具体的には、プロセッサ11は、ロボットコントローラ20に把持制御処理を要求する。ロボットコントローラ20のプロセッサ21は、把持制御処理の要求を受信すると、ハンド部33を開いてワーク90の配置位置まで下降させる。そして、プロセッサ21は、ハンド部33を閉じてワーク90を把持させ、元の把持位置まで上昇させる。
【0044】
ここで、ハンド部33がワーク90を把持する部分は、同種類のワーク90間でほぼ同一であるものとする。ここで、「ワーク90を把持する部分」とは、ワーク90を把持する際に指部332a、322bが接触する部分である。例えば、同種類のワーク90について、把持前の配置位置と上述の把持位置とがあらかじめ定められており、かつ、当該種類のワーク90は所定部分を所定方向に向けて当該配置位置に配置されるとする。この場合、ハンド部33が把持位置から配置位置まで下降してワーク90を把持すれば、同種類のワーク90間ではハンド部33が把持する部分はほぼ同一になる。
【0045】
また、当ステップにおいて、プロセッサ11は、ハンド部33にワーク90を把持させる把持力を所定の大きさに制御する。所定の大きさとは、定められた値であってもよい。また、所定の大きさは、直近に同一または他のワーク90を把持した際に適用した把持力の大きさであってもよい。また、所定の大きさは、過去に把持した複数のワーク90の各々に適用した把持力の大きさから算出した値であってもよい。
【0046】
当該ステップの処理が完了すると、ワーク90は、ハンド部33に把持されて吊り下げられた状態となる。もし、ワーク90が吊り下げられた状態ではない場合、プロセッサ11は、ロボットコントローラ20に対して、吊り下げられた状態になるまでハンド部33を移動させる(例えば、上昇させる)移動制御処理を要求する。
【0047】
(ステップS104)
ステップS104において、プロセッサ11は、力覚センサ34から検出値を取得する。ここで、ワーク90が吊り下げられた状態であることにより、ワーク90には重力がかかる。これにより、力覚センサ34にも外力がかかるので、力覚センサ34は力の各成分を検出する。
【0048】
(ステップS105)
ステップS105において、プロセッサ11は、ワーク90の重心の位置および重量を、力覚センサ34の検出値に基づいて算出する。当ステップの処理は、本発明における算出処理の一例である。
【0049】
(算出処理の具体例)
算出処理の具体例について、図5を参照して説明する。図5は、算出処理の具体例を説明する模式図である。図5の上部は、ハンド部33に把持されたワーク90および力覚センサ34をy軸正方向から見た図である。また、図5の下部は、ハンド部33に把持されたワーク90および力覚センサ34をz軸負方向から見た図である。なお、図5では、説明を簡単にするため、ハンド部33の図示を省略している。また、鉛直方向下向きをz軸正方向としている。また、点Oは、力覚センサ34にワーク90が固定されている点である。また、点Gは、ワーク90の重心である。点Gの位置を、点Oを原点とする三次元座標系で(x1,y1,z1)と表す。
【0050】
例えば、プロセッサ11は、ハンド部33が静止した状態での検出値に基づいて、次式(1)~(2)により、x1,y1を算出する。
【0051】
x1=My/Fz・・・(1)
y1=Mx/Fz・・・(2)
ここで、「/」は除算を表す。また、Mx、Myの単位は「N・m」(ニュートンメートル)であり、Fzの単位は「N」(ニュートン)である。この場合、x1およびy1の単位は「m」(メートル)となる。
【0052】
また、例えば、プロセッサ11は、ハンド部33をy軸方向に移動させることにより得られた検出値に基づいて、次式(3)によりz1を算出する。ここで、ハンド部33を静止した状態からy軸方向に移動させると、力覚センサ34に対してx軸回りのモーメントが付与される。
【0053】
z1=ΔMx/(Fz/g)・・・(3)
ここで、ΔMxは、静止状態で得られたMxからの変位量を表す。また、gは、ハンド部33を移動させる際の加速度を表す。ΔMxの単位は「N・m」であり、gの単位は「m/s」である。この場合、z1の単位は「m」(メートル)となる。なお、z1は、ハンド部33を静止した状態からx軸方向に移動させることによっても算出可能である。この場合、力覚センサ34に対してy軸回りのモーメントが付与される。そこで、この場合、プロセッサ11は、式(3)において、ΔMxの代わりにΔMyを用いればよい。
【0054】
また、例えば、プロセッサ11は、力覚センサ34の検出値のうちFzをそのまま重量として算出する。
【0055】
なお、上述した算出処理により算出される重心の位置は、厳密には、ワーク90およびハンド部33からなる系の重心の位置および重量であり、ワーク90の真の重心の位置および真の重量とは異なる。ただし、その差が充分に小さければ、算出した重心の位置および重量をワーク90の重心の位置および重量とみなすことができる。あるいは、その差が無視できない場合でも、後述する種類データベースに、各種類のワーク90およびハンド部33からなる系に係る情報を格納しておけばよい。
【0056】
(ステップS106)
ステップS106において、プロセッサ11は、算出した重心の位置および重量を参照して、ワーク90の種類を判別する。当ステップの処理は、本発明における判別処理の一例である。
【0057】
(判別処理の具体例)
判別処理の具体例について、図6を参照して説明する。図6は、種類データベースの一例を説明する図である。図6において、種類データベースは、ワーク90の種類を示す情報と、当該種類のワーク90の重量の基準値と、重心の位置の基準値と、把持力の大きさとを関連付けて記憶している。例えば、種類が「OBJ1」のワーク90の重量の基準値はw1であり、重心の位置の基準値は(x1,y1,z1)である。また、種類が「OBJ1」のワーク90に適した把持力の大きさはf1である。また、例えば、種類が「OBJ2」のワーク90の重量の基準値はw2であり、重心の位置の基準値は(x2,y2,z2)である。また、種類が「OBJ2」のワーク90に適した把持力の大きさはf1である。
【0058】
このように、種類データベースには、判別の対象となる複数種類のワーク90について、種類OBJi(i=1,2,…)ごとに重量の基準値、重心の位置の基準値、および、適切な把持力の大きさが登録される。なお、把持力の詳細については後述する。
【0059】
プロセッサ11は、種類データベースを参照し、ステップS105で算出した重心の位置および重量がそれぞれの基準値から所定範囲内である種類を特定し、当該種類をワーク90の種類であると判別する。また、プロセッサ11は、ステップS105で算出した重心の位置および重量がそれぞれの基準値から所定範囲内である種類を特定できない場合には、何れの種類でもないと判別する。
【0060】
なお、種類データベースにあらかじめ登録する重量の基準値および重心の位置の基準値は、基準となるワーク90をハンド部33に把持させた状態で、プロセッサ11がステップS105と同様の手法で算出した値であってもよい。これにより、ハンド部33およびワーク90からなる系の重心の位置および重量と、ワーク90の真の重心の位置および重量との差が充分に小さいか否かに関わらず、当ステップでの判別処理が可能となる。
【0061】
(ステップS107)
ステップS107において、プロセッサ11は、ワーク90の種類が判別できたか否かを判断する。ステップS107においてYesと判断した場合、プロセッサ11は、次のステップS108~S109の処理を実行する。ステップS107においてNoと判断した場合、後述するステップS110の処理を実行する。
【0062】
(ステップS108)
ステップS108において、プロセッサ11は、ハンド部33の把持力を、判別処理により判別した種類に応じた大きさに調整する。本ステップの処理は、本発明における調整処理の一例である。具体的には、プロセッサ11は、判別した種類に応じた把持力の大きさを、種類データベースを参照して取得する。また、プロセッサ11は、取得した把持力の大きさをロボットコントローラ20に対して送信することにより、把持力制御処理を要求する。ロボットコントローラ20のプロセッサ21は、把持力制御処理の要求を受信すると、ハンド部33の把持力を受信した大きさに制御する。ここで、ハンド部33は、ステップS103では、所定の大きさの把持力でワーク90を把持するよう制御されていた。当該ステップの実行により、ハンド部33の把持力は、所定の大きさから種類に応じた大きさに変更される。
【0063】
(ワーク90の種類に応じた把持力)
上述したように、種類データベースには、ワーク90の種類に応じた把持力の大きさを示す情報が格納されている。例えば、ワーク90の重量に比べて把持力が不足していると、ハンド部33からワーク90が落下する可能性がある。そこで、ワーク90の重量が大きいほど、大きな把持力が必要となる。また、例えば、ワーク90の柔らかさに対して把持力が大きすぎると、ワーク90が傷つくなど破損する可能性がある。そこで、ワーク90が柔らかいほど、小さな把持力で把持する必要がある。このように、ワーク90の種類に応じて、適切な把持力の大きさが定められている。
【0064】
(ステップS109)
ステップS109において、プロセッサ11は、ワーク90を搬送する。具体的には、プロセッサ11は、ワーク90の目的位置をロボットコントローラ20に送信することにより、移動制御処理を要求する。ロボットコントローラ20のプロセッサ21は、移動制御処理の要求を受信すると、ハンド部33を当該目的位置まで移動する。ステップS109の処理を実行すると、プロセッサ11は、制御方法Sを終了する。
【0065】
(ステップS110)
ステップS110において、プロセッサ11は、異常発生を報知する報知処理を実行する。当該ステップは、ステップS107でNoと判断された場合、すなわち、判別処理においてワーク90の種類が判別できない場合に実行される。例えば、プロセッサ11は、ディスプレイ、スピーカ等といった出力装置に異常発生を示す情報を出力してもよい。また、例えば、プロセッサ11は、異常発生を示す情報を含めた電子メールを送信してもよい。この場合、送信先のメールアドレスがあらかじめ登録される。ステップS110の処理を実行すると、プロセッサ11は、制御方法Sを終了する。
【0066】
<本実施形態の効果>
上述した本実施形態に係るロボット制御システム1は、ワーク90の重心の位置に応じて種類を判別するので、判別すべき種類が増加しても力覚センサ34を増やす必要はない。その結果、本実施形態は、ワーク90の種類が増加しても構成を複雑化することなく、ワーク90の種類を判別することができる。
【0067】
また、本実施形態は、ワーク90の種類を判別する過程で重量を測定することができる。つまり、ハンド部33にワーク90を1回把持させるだけで、当該ワーク90の種類およびその重量を得ることができる。したがって、ワーク90の重量を得る必要がある場合に、ハンド部33に別途ワーク90を把持させる必要がない。このため、把持回数の増加によるワーク90またはハンド部33の破損可能性を低減することができる。
【0068】
また、本実施形態は、ハンド部33にワーク90を把持させるだけでその種類を容易に判別することができる。例えば、ビジョンセンサを用いてワーク90を検出してその種類を判別する場合、検出時に所定の制約(例えば、周囲の明るさ、粉塵量の調整等)を満たす必要がある。これに対して、本実施形態は、各種類のワーク90をハンド部33に把持させるだけでよい。したがって、より容易にワーク90の種類を判別することができる。
【0069】
また、本実施形態は、ワーク90またはハンド部33に異常が発生している可能性をユーザに報知することができる。発生する可能性がある異常としては、例えば、ワーク90が不良品である、ハンド部33が把持する部分が想定と異なっている、または、ハンド部33が故障している等といったケースが挙げられる。このような場合、算出処理で算出する重心の位置および重量の少なくとも一方が、基準値から所定範囲外になる可能性が高い。このため、本実施形態は、そのような異常が発生している可能性をユーザに知らせることができる。
【0070】
また、本実施形態は、ワーク90に対する把持力を適切な大きさに調整することで、ワーク90、ハンド部33または施設等が破損する可能性を軽減することができる。具体的には、例えば、把持力が小さすぎることによるワーク90の落下、落下によるワーク90の破損、施設の破損、または、把持力が大きすぎることによるワーク90の破損、ハンド部33の破損等といった事象の発生を軽減することができる。
【0071】
〔実施例〕
ロボット制御システム1を用いてワーク90の種類を判別した実施例について説明する。
【0072】
(ワーク90の種類)
実施例で用いたワーク90について、図7および図8を参照して説明する。図7は、実施例で用いた各種類のワーク90を上方から見た様子を示す模式図である。図8は、ある種類のワーク90を下方から見た様子を示す模式図である。実施例では、9種類(OBJ1~OBJ9)のワーク90を1つずつ用意した。以降、各種類のワーク90を、OBJi(i=1,2,…,9)と記載する。また、OBJiのワーク90の上方から見える面を「おもて面」と記載し、下から見える面を「うら面」と記載する。図7に示すように、OBJiのおもて面には、数字「i」が描画されている。数字「i」の上部を含むOBJiの領域を上側領域と記載し、数字「i」の下部を含むOBJiの領域を下側領域と記載する。また、図8に示すように、OBJiのうら面には、錘が取り付けられている。錘は、OBJiの下側領域に取り付けられる。各OBJiに取り付ける錘の重量を異ならせることにより、各OBJiの重量を異ならせた。例えば、OBJ2は、OBJ1より30グラム重い。同様に、OBJ3~OBJ9は、それぞれ、OBJ2~OBJ8より30グラム重い。また、各OBJiの重心の位置は、それぞれ異なるものとなっている。また、種類デーベースには、OBJ1~OBJ9についてそれぞれ、重量の基準値、重心の位置の基準値、および把持力の大きさを登録した。
【0073】
(実施例における判別結果)
本実施例では、ロボット制御システム1を用いて、9種類のワーク90をランダムな順序で順次把持させてその種類を判別した。また、判別した種類および算出した重心の位置を参照して、各ワーク90を数字「i」の昇順に向きをそろえて配置するよう搬送した。その結果、各ワーク90を数字「i」の昇順に向きをそろえて配置することができた。すなわち、本実施例では、OBJ1~OBJ9の全ワーク90についてその種類を正しく判別することができた。
【0074】
〔変形例〕
上述した実施形態において、アーム部32における関節の数は3つに限定されない。例えば、アーム部32は、2本のアームを1つの関節で連結した関節アームであってもよいし、3本又は5本以上のアームを2つまたは4つ以上の関節で連結した多関節アームであってもよい。
【0075】
また、上述した実施形態において、ハンド部33が有する指部の数は2本に限定されない。例えば、ハンド部33は、3本以上の指部を有していてもよい。
【0076】
また、上述した実施形態において、力覚センサ34は、アーム部32またはハンド部33に内蔵されていてもよい。また、力覚センサ34は、アーム部32またはハンド部33と一体に形成されていてもよい。
【0077】
また、上述した実施形態において、プロセッサ11は、上述した式(1)~(3)に限らず、力覚センサ34の検出値を用いて重心の位置を算出するその他の算出手法を用いて重心の位置を算出してもよい。
【0078】
また、上述した実施形態において、力覚センサ34は、必ずしも6軸全ての成分を検出するものでなくてもよい。例えば、上述した式(1)~(3)を用いる場合、力覚センサ34は、少なくともFz,Mx,Myの3成分を検出するものであればよい。また、力覚センサ34が検出する力の成分は、これに限らず、重心の位置の算出手法において必要な成分を少なくとも検出するものであればよい。
【0079】
また、上述した実施形態において、専用コントローラ10は、ロボットコントローラ20が実行する処理の一部を実行してもよい。また、ロボットコントローラ20は、専用コントローラ10が実行する処理の一部を実行してもよい。この場合、本発明における制御装置は、複数のプロセッサ11およびプロセッサ21を備える。また、この場合、本発明における制御方法は、複数のプロセッサ11およびプロセッサ21が実行する。また、専用コントローラ10およびロボットコントローラ20は、一体に形成されていてもよい。
【0080】
〔まとめ〕
態様1に係る制御装置は、ロボットを制御する制御装置であって、1または複数のプロセッサを備える。前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたハンド部とを含む。前記1または複数のプロセッサは、算出処理と、判別処理とを実行する。算出処理は、前記ハンド部に把持されたワークの重心の位置、または、前記ワークおよび前記ハンド部からなる系の重心の位置を、前記力覚センサの検出値に基づき算出する処理である。判別処理は、前記重心の位置を参照して、前記ワークの種類を判別する処理である。
【0081】
上記構成により、ワークの重心の位置により種類を判別するので、判別すべき種類が増加しても、判別に必要な力覚センサの個数を増やす必要はない。その結果、ワークの種類が増加しても構成を複雑化することなく、ワークの種類を判別することができる。
【0082】
態様2に係る制御装置は、態様1に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様2に係る制御装置において、前記1または複数のプロセッサは、前記算出処理において、前記検出値に基づき前記ワークの重量または前記系の重量をさらに算出する。また、前記1または複数のプロセッサは、前記判別処理において、前記重量をさらに参照して前記ワークの種類を判別する。
【0083】
上記構成により、重心の位置に加えて重量をさらに参照するので、ワークの種類をより精度よく判別することができる。
【0084】
態様3に係る制御装置は、態様1または態様2に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様3に係る制御装置において、前記1または複数のプロセッサは、前記判別処理において前記ワークの種類を判別できない場合、異常発生を報知する報知処理をさらに実行する。
【0085】
ここで、ワークの種類が判別できないケースには、例えば、ワークが不良品である、ハンド部が把持する部分が想定と異なっている、または、ハンド部が故障している等といった異常が発生している可能性が考えられる。上記構成により、そのような異常が発生している可能性をユーザに知らせることができる。
【0086】
態様4に係る制御装置は、態様1から態様3の何れか1態様に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様4に係る制御装置において、前記1または複数のプロセッサは、前記ハンド部の把持力を、前記判別処理により判別した種類に応じた大きさに調整する調整処理をさらに実行する。
【0087】
上記構成により、ハンド部は、ワークの種類に応じた適切な把持力でワークを把持する。その結果、ハンド部からのワークの落下、ワークの落下による設備の破損、ワークの破損、またはハンド部の破損等といった事象の発生を軽減することができる。
【0088】
態様5に係る制御装置は、態様1から態様4の何れか1態様に係る制御装置の特徴に加えて、以下の特徴を有している。すなわち、態様5に係る制御装置において、前記力覚センサは、6軸力覚センサである。
【0089】
上記構成により、6軸力覚センサの検出値に基づき算出したワークの重心の位置を参照して、ワークの種類を判別することができる。
【0090】
態様6に係るロボット制御システムは、態様1から態様5の何れか1態様に係る制御装置と、前記ロボットと、を含む。
【0091】
上記構成により、態様1に係る制御装置と同様の効果を奏する。
【0092】
態様7に係るプログラムは、態様1から態様5の何れか1態様に係る制御装置を動作させるためのプログラムであって、前記1または複数のプロセッサに前記各処理を実行させる。
【0093】
上記構成により、態様1に係る制御装置と同様の効果を奏する。
【0094】
態様8に係る制御方法は、1または複数のプロセッサがロボットを制御する制御方法であって、算出ステップと、判別ステップとを含む。また、前記ロボットは、アーム部と、力覚センサと、前記力覚センサを介して前記アーム部に固定されたハンド部とを含む。算出ステップにおいて、前記1または複数のプロセッサが、前記ハンド部に把持されたワークの重心の位置、または、前記ワークおよび前記ハンド部からなる系の重心の位置を、前記力覚センサの検出値に基づき算出する。判別ステップにおいて、前記1または複数のプロセッサが、前記重心の位置を参照して、前記ワークの種類を判別する。
【0095】
上記構成により、態様1に係る制御装置と同様の効果を奏する。
【符号の説明】
【0096】
1 ロボット制御システム
10 専用コントローラ
20 ロボットコントローラ
11、21 プロセッサ
12、22 一次メモリ
13、23 二次メモリ
14、24 通信インタフェース
15、25 入出力インタフェース
30 ロボット
31 台座
32 アーム部
33 ハンド部
34 力覚センサ
90 ワーク
図1
図2
図3
図4
図5
図6
図7
図8