(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023056229
(43)【公開日】2023-04-19
(54)【発明の名称】計算機、ロボットの制御方法、及び計算機システム
(51)【国際特許分類】
B25J 13/00 20060101AFI20230412BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021165454
(22)【出願日】2021-10-07
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】西 佳一郎
(72)【発明者】
【氏名】中須 信昭
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707KS02
3C707KS03
3C707KS04
3C707KS21
3C707KS22
3C707KS23
3C707KS31
3C707KS35
3C707KS37
3C707KT01
3C707LS14
3C707LS15
3C707LW11
3C707LW12
3C707LW15
(57)【要約】
【課題】物体の把持及び物品の移動を含む作業を行うロボットを高い精度で制御する。
【解決手段】物体の把持及び物品の移動を含む作業を行うロボットを制御する計算機は、軌道情報を保持し、作業中のロボットの稼働状態を示す値を含む稼働状態情報と、ロボットが把持する物体の状態を把握するための値を含む作業状態情報とを取得し、軌道情報、稼働状態情報、及び作業状態情報に基づいて、将来のロボットが把持する物体の状態を把握するための値を含む推定作業状態情報を生成し、軌道情報、稼働状態情報、作業状態情報、及び推定作業状態情報に基づいて、ロボットを制御するための制御情報を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
物体の把持及び物体の移動を含む作業を行うロボットを制御する計算機であって、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有し、
前記記憶装置は、前記ロボットの作業において、前記物体を把持して移動させる場合の前記ロボットの軌道に関する軌道情報を保持し、
前記演算装置は、
作業中の前記ロボットの稼働状態を示す値を含む稼働状態情報と、前記ロボットが把持する前記物体の状態を把握するための値を含む作業状態情報とを取得し、
前記軌道情報、前記稼働状態情報、及び前記作業状態情報に基づいて、将来の前記ロボットが把持する前記物体の状態を把握するための値を含む推定作業状態情報を生成し、
前記軌道情報、前記稼働状態情報、前記作業状態情報、及び前記推定作業状態情報に基づいて、前記ロボットを制御するための制御情報を生成することを特徴とする計算機。
【請求項2】
請求項1に記載の計算機であって、
前記記憶装置は、前記軌道情報、前記稼働状態情報、及び前記作業状態情報を入力として受け付け、前記推定作業状態情報を出力する第1モデルと、前記軌道情報、前記稼働状態情報、前記作業状態情報、及び前記推定作業状態情報を入力として受け付け、前記制御情報を出力する第2モデルと、を格納することを特徴とする計算機。
【請求項3】
請求項2に記載の計算機であって、
前記第1モデル及び前記第2モデルは、機械学習によって生成されたニューラルネットワークであることを特徴とする計算機。
【請求項4】
請求項1に記載の計算機であって、
前記作業状態情報は、前記ロボットに設置され、前記ロボットが把持する前記物体の状態を把握するための値を計測する計測装置から取得した計測値を含み、
前記演算装置は、
前記軌道情報に基づいて、前記軌道の形状に応じた除去周波数を算出し、
前記除去周波数に基づいて、前記作業状態情報に含まれる前記計測値からノイズを除去することを特徴とする計算機。
【請求項5】
請求項4に記載の計算機であって、
前記演算装置は、前記軌道の座標軸ごとの形状に応じた前記除去周波数を算出することを特徴とする計算機。
【請求項6】
請求項4に記載の計算機であって、
前記演算装置は、
前記軌道を複数の部分経路に分割し、
前記部分経路ごとに前記除去周波数を算出することを特徴とする計算機。
【請求項7】
計算機が実行する、物体の把持及び物体の移動を含む作業を行うロボットの制御方法であって、
前記計算機は、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有し、
前記記憶装置は、前記ロボットの作業において、前記物体を把持して移動させる場合の前記ロボットの軌道に関する軌道情報を保持し、
前記ロボットの制御方法は、
前記演算装置が、作業中の前記ロボットの稼働状態を示す値を含む稼働状態情報と、前記ロボットが把持する前記物体の状態を把握するための値を含む作業状態情報とを取得する第1のステップと、
前記演算装置が、前記軌道情報、前記稼働状態情報、及び前記作業状態情報に基づいて、将来の前記ロボットが把持する前記物体の状態を把握するための値を含む推定作業状態情報を生成する第2のステップと、
前記演算装置が、前記軌道情報、前記稼働状態情報、前記作業状態情報、及び前記推定作業状態情報に基づいて、前記ロボットを制御するための制御情報を生成する第3のステップと、を含むことを特徴とするロボットの制御方法。
【請求項8】
請求項7に記載のロボットの制御方法であって、
前記記憶装置は、前記軌道情報、前記稼働状態情報、及び前記作業状態情報を入力として受け付け、前記推定作業状態情報を出力する第1モデルと、前記軌道情報、前記稼働状態情報、前記作業状態情報、及び前記推定作業状態情報を入力として受け付け、前記制御情報を出力する第2モデルと、を格納することを特徴とするロボットの制御方法。
【請求項9】
請求項8に記載のロボットの制御方法であって、
前記第1モデル及び前記第2モデルは、機械学習によって生成されたニューラルネットワークであることを特徴とするロボットの制御方法。
【請求項10】
請求項7に記載のロボットの制御方法であって、
前記作業状態情報は、前記ロボットに設置され、前記物体の状態を把握するための値を計測する計測装置から取得した計測値を含み、
前記第1のステップは、
前記演算装置が、前記軌道情報に基づいて、前記軌道の形状に応じた除去周波数を算出する第4のステップと、
前記演算装置が、前記除去周波数に基づいて、前記作業状態情報に含まれる前記計測値からノイズを除去する第5のステップと、を含むことを特徴とするロボットの制御方法。
【請求項11】
請求項10に記載のロボットの制御方法であって、
前記第4のステップは、前記演算装置が、前記軌道の座標軸ごとの形状に応じた前記除去周波数を算出するステップを含むことを特徴とするロボットの制御方法。
【請求項12】
請求項10に記載のロボットの制御方法であって、
前記第4のステップは、
前記演算装置が、前記軌道を複数の部分経路に分割するステップと、
前記演算装置が、前記部分経路ごとに前記除去周波数を算出するステップと、を含むことを特徴とするロボットの制御方法。
【請求項13】
物体の把持及び物体の移動を含む作業を行うロボットを制御する計算機システムであって、
演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有する、複数の計算機を含み、
前記ロボットの作業において、前記物体を把持して移動させる場合の前記ロボットの軌道に関する軌道情報を管理し、
前記計算機は、
作業中の前記ロボットの稼働状態を示す値を含む稼働状態情報と、前記ロボットが把持する前記物体の状態を把握するための値を含む作業状態情報とを取得し、
前記軌道情報、前記稼働状態情報、及び前記作業状態情報に基づいて、将来の前記ロボットが把持する前記物体の状態を把握するための値を含む推定作業状態情報を生成し、
前記軌道情報、前記稼働状態情報、前記作業状態情報、及び前記推定作業状態情報に基づいて、前記ロボットを制御するための制御情報を生成することを特徴とする計算機システム。
【請求項14】
請求項13に記載の計算機システムであって、
前記軌道情報、前記稼働状態情報、及び前記作業状態情報を入力として受け付け、前記推定作業状態情報を出力する第1モデルと、前記軌道情報、前記稼働状態情報、前記作業状態情報、及び前記推定作業状態情報を入力として受け付け、前記制御情報を出力する第2モデルと、を管理することを特徴とする計算機システム。
【請求項15】
請求項13に記載の計算機システムであって、
前記作業状態情報は、前記ロボットに設置され、前記ロボットが把持する前記物体の状態を把握するための値を計測する計測装置から取得した計測値を含み、
前記計算機は、
前記軌道情報に基づいて、前記軌道の形状に応じた除去周波数を算出し、
前記除去周波数に基づいて、前記作業状態情報に含まれる前記計測値からノイズを除去することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体の把持及び物体の移動を含む作業を行うロボットの制御に関する。
【背景技術】
【0002】
物体の把持及び物品の移動を含む作業を行うロボットを制御する技術として特許文献1に記載の技術が知られている。特許文献1には「ロボット、及び把持物に関する状態情報を生成、更新する状態情報生成部と、前記ロボットが前記把持物を始点から終点まで移動させ得る、予め生成されたベース軌道、及び前記状態情報に基づき、前記ロボットを制御するための制御情報を生成する制御情報生成部と、を備える」制御装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2021-84159号公報
【特許文献2】特開2019-942号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載の技術では、現在の状態に基づいて制御を行っている。将来の状態も加味することによって、より精度の高いロボット制御の実現が期待できる。本発明は、より高い精度でロボットを制御可能なシステム及び方法を実現することを目的とする。
【課題を解決するための手段】
【0005】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、物体の把持及び物体の移動を含む作業を行うロボットを制御する計算機であって、演算装置、前記演算装置に接続される記憶装置、及び前記演算装置に接続されるインタフェースを有し、前記記憶装置は、前記ロボットの作業において、前記物体を把持して移動させる場合の前記ロボットの軌道に関する軌道情報を保持し、前記演算装置は、作業中の前記ロボットの稼働状態を示す値を含む稼働状態情報と、前記ロボットが把持する前記物体の状態を把握するための値を含む作業状態情報とを取得し、前記軌道情報、前記稼働状態情報、及び前記作業状態情報に基づいて、将来の前記ロボットが把持する前記物体の状態を把握するための値を含む推定作業状態情報を生成し、前記軌道情報、前記稼働状態情報、前記作業状態情報、及び前記推定作業状態情報に基づいて、前記ロボットを制御するための制御情報を生成する。
【発明の効果】
【0006】
本発明によれば、高い精度でロボットを制御できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0007】
【
図1】実施例1のシステムの構成例を示す図である。
【
図2】実施例1のロボット構成情報のデータ構造の一例を示す図である。
【
図3】実施例1の設備構成情報のデータ構造の一例を示す図である。
【
図4】実施例1の軌道情報のデータ構造の一例を示す図である。
【
図5】実施例1の計算機が実行する処理の一例を説明するフローチャートである。
【
図6A】実施例1の作業履歴情報に格納される稼働状態情報及び作業状態情報の一例を示す図である。
【
図6B】実施例1の作業履歴情報に格納される稼働状態情報及び作業状態情報の一例を示す図である。
【
図7】実施例1の計算機による推定作業状態情報の生成方法の一例を示す図である。
【
図8】実施例2のシステムの構成例を示す図である。
【
図9】実施例2の計算機が実行する処理の一例を説明するフローチャートである。
【
図10】実施例2の計算機が生成するノイズ解析情報のデータ構造の一例を示す図である。
【
図11A】実施例2の計算機が表示する画面の一例を示す図である。
【
図11B】実施例2の計算機が表示する画面の一例を示す図である。
【
図12】実施例2の計算機によるノイズ除去の一例を示す図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0009】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0010】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0011】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0012】
図1は、実施例1のシステムの構成例を示す図である。
【0013】
システムは、ロボット100及び計算機101から構成される。ロボット100及び計算機101は、直接又はネットワークを介して接続される。
【0014】
ロボット100は、計算機101から出力される制御情報に基づいて、物体(ワーク)を把持し、始点から終点まで移動させる作業を行う。ロボット100は、作業装置群110、コントローラ111、及び計測装置112を備える。
【0015】
作業装置群110は、物体の把持及び物体の移動を実現する装置群であり、例えば、ハンド、リンク、及び駆動モータ等である。
【0016】
コントローラ111は、計算機101から受信した制御情報に基づいて作業装置群110を制御する。例えば、コントローラ111は、制御情報にしたがって、関節として機能する、リンク間を接続する駆動モータを駆動することによって、ハンドを移動させる。コントローラ111は、関節の角度、角速度、角加速度、並びに、駆動モータのトルク及び電流値等を含む稼働状態情報を計算機101に出力する。
【0017】
計測装置112は、ロボット100の作業による物体の状態を把握するための値を計測する。計測装置112から出力される値を作業状態情報とも記載する。計測装置112は、例えば、加速度センサ、力覚センサ、カメラ、接触センサ、及び電流センサ等である。なお、ロボット100は、計測対象ごとに、種別が異なる複数の計測装置112を備えてもよい。なお、本発明は、計測装置112の設置位置及び設置数に限定されない。
【0018】
なお、ロボット100は、稼働状態情報及び作業状態情報を一つの情報にまとめて送信してもよい。
【0019】
計算機101は、ロボット100の移動経路である軌道の情報(軌道情報)を生成し、また、軌道情報、稼働状態情報、及び作業状態情報に基づいて、制御情報を生成する。制御情報は、例えば、以下のような値を含む。
(1)制御軸の次の目標角度、各速度、及び角加速度
(2)駆動モータのトルク、及び駆動電流
(3)物体の目標座標、移動速度、及び加速度
【0020】
計算機101は、演算装置120、記憶装置121、通信装置122、入力装置123、及び出力装置124を備える。各ハードウェア要素は内部バスを介して接続される。
【0021】
記憶装置121は、演算装置120が実行するプログラム及び情報を格納する装置であり、例えば、メモリ等である。記憶装置121は、ロボット構成情報140、設備構成情報141、軌道情報142、モデル情報143、及び作業履歴情報144を格納する。また、記憶装置121は、ワークエリアとしても使用される。
【0022】
ロボット構成情報140は、ロボット100の構成に関する情報である。ロボット構成情報140のデータ構造については
図2を用いて説明する。
【0023】
設備構成情報141は、ロボット100が作業を行う設備に関する情報である。設備構成情報141のデータ構造については
図3を用いて説明する。
【0024】
軌道情報142は、ロボット100の移動経路である軌道に関する情報である。軌道情報142のデータ構造については
図4を用いて説明する。
【0025】
モデル情報143は、稼働状態を推定するモデル(第1モデル)及び制御情報を生成するモデル(第2モデル)に関する情報である。第1モデル及び第2モデルは、関数、テーブル、又はニューラルネットワーク等である。本実施例では、各モデルはニューラルネットワークとする。各モデルは、シミュレータを用いた機械学習によって生成される。
【0026】
作業履歴情報144は、作業中の稼働状態及び作業状態の履歴を管理する情報である。具体的には、作業履歴情報144には、稼働状態情報及び作業状態情報が蓄積される。
【0027】
演算装置120は、計算機101全体を制御する装置であり、例えば、プロセッサ等である。演算装置120は記憶装置121に格納されるプログラムを実行する。演算装置120がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、演算装置120が当該機能部を実現するプログラムを実行していることを示す。本実施例の演算装置120は、軌道情報生成部130、作業状態推定部131、及び制御情報生成部132として機能する。
【0028】
軌道情報生成部130は、作業内容及び物体の位置等の入力情報に基づいて、ハンドの軌道を決定する。また、軌道情報生成部130は、ロボット構成情報140、設備構成情報141、及びハンドの軌道に基づいてツールの軌道を決定する。軌道情報生成部130は、決定された軌道を示す軌道情報142を生成する。なお、軌道を決定する方法は公知の技術であるため詳細な説明は省略する。
【0029】
作業状態推定部131は、軌道情報142、作業履歴情報144に蓄積される稼働状態情報及び作業状態情報、並びに、第1モデルに基づいて、将来の作業状態を推定する。
【0030】
制御情報生成部132は、軌道情報142、作業履歴情報144に蓄積される稼働状態情報及び作業状態情報、作業状態の推定結果、並びに、第2モデルに基づいて、制御情報を生成する。
【0031】
なお、計算機101が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0032】
通信装置122は、外部装置と通信するための装置であり、例えば、NIC(Network Interface Card)である。
【0033】
入力装置123は、計算機101にデータ及びコマンド等を入力するための装置であり、例えば、キーボード、マウス、及びタッチパネル等である。
【0034】
出力装置124は、計算機101の演算結果等を出力するための装置であり、例えば、ディスプレイ、プロジェクタ、及びプリンタ等である。
【0035】
図2は、実施例1のロボット構成情報140のデータ構造の一例を示す図である。
【0036】
ロボット構成情報140は、ID201、分類202、項目203、及び内容204を含むエントリを格納する。
【0037】
ID201は、エントリの識別情報を格納するフィールドである。分類202は、ロボット100を構成する要素の分類を格納するフィールドである。項目203は、要素の管理項目を格納するフィールドである。内容204は、管理項目の内容を格納するフィールドである。内容204には、ファイル、数値、及び文字列等が格納される。
【0038】
リンクについては、リンクの形状が管理される。リンク間を結合する関節(Joint)については、結合するリンク、関節のタイプ、及び関節の動きの制約が管理される。なお、関節については、関節のタイプに応じて関節の動きの制約として管理する項目が異なる。
【0039】
図3は、実施例1の設備構成情報141のデータ構造の一例を示す図である。
【0040】
設備構成情報141は、ID301、設備名302、取付け対象303、相対位置304、及び相対姿勢305を含むエントリを格納する。
【0041】
ID301は、エントリの識別情報を格納するフィールドである。設備名302は、設備の名称を格納するフィールドである。取付け対象303は、設備に取り付ける対象の名称を格納するフィールドである。相対位置304は、取付け対象の設備に対する相対的な設置位置を示す情報(例えば、座標)を格納するフィールドである。相対姿勢305は、取付け対象の設備に対する相対的な姿勢を示す情報(例えば、座標)を格納するフィールドである。
【0042】
ID301が「0」のエントリは、組立セルAを基準として、他の設備の位置及び姿勢が決定されることを示す。ID301が「1」のエントリには、組立セルAに対して設置されるRoboAの相対位置及び相対姿勢が格納される。
【0043】
図4は、実施例1の軌道情報142のデータ構造の一例を示す図である。
【0044】
軌道情報142は、ハンドの軌道を示すテーブル400及びツールの軌道を示すテーブル410を格納する。
【0045】
テーブル400は、経由点401、位置402、姿勢403、及びTime404を含むエントリを格納する。
【0046】
経由点401は、軌道上の経由点の識別情報を格納するフィールドである。位置402は、経由点におけるハンドの座標を示す値を格納するフィールド群である。位置402の各フィールドにはデカルト座標系の値が格納される。姿勢403は、経由点におけるハンドの姿勢を示す値を格納するフィールド群である。姿勢403の各フィールドには、四元数(quaternion)で定義された値が格納される。Time404は、始点から移動を開始したハンドが経由点に到達する時間を格納するフィールドである。
【0047】
テーブル410は、経由点411、姿勢412、及びTime413を含むエントリを格納する。
【0048】
経由点411は、経由点401と同一のフィールドである。姿勢412は、経由点における各関節の姿勢を示す値を格納するフィールド群である。姿勢412の各フィールドには関節の角度が格納される。Time413は、Time404と同一のフィールドである。
【0049】
なお、軌道情報142には、作業内容ごとに、テーブル400及びテーブル410の組が含まれる。なお、ロボット100本体が移動する場合には、ロボット100本体の軌道に関するテーブルが軌道情報142に含まれてもよい。
【0050】
図5は、実施例1の計算機101が実行する処理の一例を説明するフローチャートである。
図6A及び
図6Bは、実施例1の作業履歴情報144に格納される稼働状態情報及び作業状態情報の一例を示す図である。
図7は、実施例1の計算機101による推定作業状態情報の生成方法の一例を示す図である。なお、以下の説明では、軌道情報142はすでに生成されているものとする。
【0051】
制御情報生成部132は、作業のループ処理を開始する(ステップS101)。作業のループ処理は、物体の把持及び軌道経路に沿った物体の移動等、一連の作業が終了するまで繰り返し実行される。
【0052】
制御情報生成部132は、ロボット100から稼働状態情報及び作業状態情報を取得し(ステップS102)、作業履歴情報144に格納する。
【0053】
作業履歴情報144には、
図6Aに示すような形式で稼働状態情報が蓄積される。一つのエントリが計測周期であるタイムステップごとに取得された稼働状態情報である。また、作業履歴情報144には、
図6Bに示すような形式で作業状態情報が蓄積される。一つのエントリがタイムステップごとに取得された作業状態情報である。Fx、Fy、Fzは、X軸、Y軸、及びZ軸方向のForce値である。Tx、Ty、Tzは、X軸、Y軸、及びZ軸方向のトルク値である。Ax、Ay、Azは、X軸、Y軸、及びZ軸方向の加速度である。Vx、Vy、Vzは、X軸、Y軸、及びZ軸方向の速度である。
【0054】
制御情報生成部132は、処理が可能か否かを判定する(ステップS103)。具体的には、制御情報生成部132は、処理に必要な数の稼働状態情報及び作業状態情報が蓄積されたか否かを判定する。本実施例では、5ステップ分の稼働状態情報及び作業状態情報が蓄積されたか否かが判定される。稼働状態情報及び作業状態情報の数は、例えば、計測装置112の計測周波数を分析周波数分解能で除算した値である。
【0055】
処理が可能でない場合、制御情報生成部132は、ステップS102に戻り、同様の処理を実行する。
【0056】
処理が可能である場合、制御情報生成部132は、作業状態推定部131に作業状態の推定を指示することによって、推定作業状態情報を生成する(ステップS104)。
【0057】
例えば、作業状態推定部131は、
図7に示すように、5ステップ分の稼働状態情報及び作業状態情報と、軌道情報142から生成される未来の2ステップ分の稼働状態情報を、第1モデルであるニューラルネットワークに入力し、未来の2ステップ分の推定作業状態情報を生成する。なお、第1モデルに入力する項目、第1モデルに入力する稼働状態情報及び作業状態情報の数(時系列の長さ)、並びに、生成する推定作業状態情報の数は任意に設定できる。また、ニューラルネットワークの構造は任意に設定できる。
【0058】
本実施例の第1モデルには、ロボット構成情報140に含まれる制約が取り込まれているものとする。
【0059】
制御情報生成部132は、軌道情報142、作業履歴情報144に蓄積される稼働状態情報及び作業状態情報、並びに、推定作業状態情報を、第2モデルであるニューラルネットワークに入力することによって制御情報を生成し、ロボット100に出力する(ステップS105)。
【0060】
作業が完了していない場合、制御情報生成部132は、ステップS102に戻り、同様の処理を実行する。作業が完了した場合、制御情報生成部132はループ処理を終了し(ステップS106)、一連の処理を終了する。
【0061】
なお、軌道の始点では、ステップS104の処理を行わずに、ステップS105を行うようにする。この場合、制御情報生成部132は、例えば、軌道情報142、並びに、作業履歴情報144に蓄積される稼働状態情報及び作業状態情報を第2モデルに入力し、制御情報を生成する。なお、別の方法で始点の制御情報を生成してもよい。
【0062】
実施例1によれば、計算機101は、現在の物体の状態、現在のロボットの状態、及び、未来の物体の状態を加味することによって、ロボットによる安全かつ確実な作業を実現する制御情報を生成することができる。
【0063】
なお、実施例1では、一つの計算機101がロボット100を制御していたが、複数の計算機101を含む計算機システムが同様の制御を行うようにしてもよい。この場合、複数の計算機101に機能部を分散して配置してもよい。
従来技術では、ロボット及び物体の状態を把握するためにセンサが計測した計測値が用いられる。計測値には、環境、ロボット、又は物体に起因したノイズが含まれるため、精度よくロボットを制御するためにはノイズを除去する必要がある。これに対して特許文献2に記載の技術が知られている。
特許文献2に記載の方式では、無負荷状態でロボットを動作させてサンプリングを行う必要があり、システム運用前の工数が増加する。また、特許文献2では、負荷状態のセンサの値から無負荷状態のセンサの値を減算して制御に必要な値を算出しているが、本方式の場合、ノイズとともに運動成分が除去される。
実施例2では、工数を増やすことなく、計測値からノイズを除去し、当該計測値を用いてロボットを制御するシステムを説明する。以下、実施例1との差異を中心に実施例2について説明する。
実施例2のシステムの構成は実施例1と同一である。実施例2のロボット100の構成は実施例1と同一である。実施例2の計算機101のハードウェア構成は実施例1と同一である。また、実施例2の計算機101が保持する情報は実施例1と同一である。実施例2では、計算機101の機能構成が実施例1と一部異なる。実施例2の演算装置120は、さらに、除去周波数決定部133及びノイズ除去部134として機能する。
除去周波数決定部133は、軌道の形状に基づいてノイズとして除去する周波数を決定する。ノイズ除去部134は、作業状態情報に含まれる計測値からノイズを除去する。
選択欄1103は、作業に使用する設備を選択する欄である。読込ボタン1104が操作された場合、設備構成情報141から選択欄1103にて指定された設備に関する値が読み出される。
選択欄1105は、ロボット100に実行させる作業を選択する欄である。読込ボタン1106が操作された場合、作業に対応するテーブル400、410が読み出され、表示欄1101に軌道が表示される。
選択欄1107は、制御情報の生成に使用する計測値の種類を選択する欄である。読込ボタン1108が操作された場合、設備構成情報141から計測値を計測するセンサに関する値が読み出される。
制御情報生成部132は、除去周波数決定部133に除去周波数パターンの生成を指示することによって、除去周波数パターンを生成する(ステップS151)。具体的には、以下のような処理が実行される。
(S151-1)除去周波数決定部133は、軌道情報142を取得し、軌道を部分軌道に分割し、分割された部分軌道を要素とする集合を生成する。除去周波数決定部133は、分割方法を変えて、複数の集合を生成する。軌道そのものも一つの集合として生成される。さらに、除去周波数決定部133は、当該集合を要素とする族を生成する。除去周波数決定部133は、族の識別情報として識別番号を付与する。
ノイズ解析情報1000は、ID1001、部分経路ID1002、座標軸1003、及び周波数1004から構成されるエントリを格納する。ID1001は、エントリ(族)の識別情報を格納するフィールドである。部分経路ID1002は、部分経路の識別情報を格納するフィールドである。部分経路ID1002には、部分経路の始点となる経由点及び部分経路の終点となる経由点の組が格納される。座標軸1003は、解析する座標軸を格納するフィールドである。周波数1004は、周波数成分のスペクトル値を格納するフィールド群である。周波数成分の数は任意に設定できる。各周波数成分のスペクトル値の合計値が1となる。
除去周波数決定部133は、追加されたエントリのID1001に族の識別情報を設定し、部分経路ID1002に部分経路の識別情報を設定し、座標軸1003に座標軸を設定する。
(S151-5)除去周波数決定部133は、FFT(Fast Fourier Transformation)等の公知の技術を用いて、選択した座標軸における部分軌道の形状を周波数成分に変換する。除去周波数決定部133は、ノイズ解析情報1000に追加されたエントリの周波数1004に周波数成分のスペクトル値を設定する。
(S151-6)除去周波数決定部133は、X軸、Y軸、及びZ軸の全ての座標軸について処理が完了したか否かを判定する。X軸、Y軸、及びZ軸の全ての座標軸について処理が完了していない場合、除去周波数決定部133は、S151-4に戻り、同様の処理を実行する。
(S151-7)X軸、Y軸、及びZ軸の全ての座標軸について処理が完了した場合、除去周波数決定部133は、選択された集合の全ての部分軌道について処理が完了したか否かを判定する。選択された集合の全ての部分軌道について処理が完了いない場合、除去周波数決定部133はS151-3に戻り、同様の処理を実行する。
(S151-8)選択された集合の全ての部分軌道について処理が完了した場合、除去周波数決定部133は、部分軌道及び座標軸の組合せごとに、除去する周波数を決定する。本実施例では、閾値より大きいスペクトル値に対応する周波数を除去周波数に決定される。除去周波数決定部133は、部分軌道及び座標軸の組合せごとの除去周波数の情報を除去パターンとしてワークエリアに保存する。なお、除去パターンには、族の識別情報が付与される。
(S151-9)除去周波数決定部133は、全ての集合について処理が完了したか否かを判定する。全ての集合について処理が完了していない場合、除去周波数決定部133は、S151-2に戻り、同様の処理を実行する。全ての集合について処理が完了した場合、除去周波数決定部133は、除去パターン表示欄1109に除去パターンの情報を表示する。除去パターン表示欄1109には、テーブル形式で除去パターンが表示される。テーブルは、ID1110、除去パターン1111、及び選択1112を含むエントリを格納する。ID1110は、除去パターンの識別情報を表示するフィールドである。除去パターン1111は、除去パターンを表示するフィールドである。選択1112は、除去パターンを選択する欄である。ユーザは、選択1112にチェックを入力することによって、使用する除去パターンを選択する。除去周波数決定部133は、表示欄1102に軌道に除去パターンを重畳して表示する。
ステップS101からステップS103の処理は実施例1と同一である。ステップS103において、処理が可能であると判定された場合、制御情報生成部132は、ノイズ除去部134にノイズの除去を指示することによって、作業状態情報からノイズを除去する(ステップS152)。具体的には、以下のような処理が実行される。
ステップS104からステップS106の処理は実施例1と同一である。なお、ステップS104及びステップS105では、ノイズが除去された作業状態情報が用いられる点が実施例1と異なる。
なお、実施例2では、一つの計算機101がロボット100を制御していたが、複数の計算機101を含む計算機システムが同様の制御を行うようにしてもよい。この場合、複数の計算機101に機能部を分散して配置してもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。