(57)【要約】【課題】対象物の動きをロボットで再現する指定データを生成する。【解決手段】指定データ生成装置であって、手動で操作された対象物の動きを示す手動データを取得する取得部と、取得部が取得した手動データに基づいて、対象物に動きを模倣させるロボットのエンドエフェクタの動きを、エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、生成部が生成した指定データで指定されるエンドエフェクタの位置および姿勢の少なくとも一方に基づくエンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の前記指定データを時間方向に伸長して補正する補正部とを備える。【選択図】図９
2020179434.tif 000002
【特許請求の範囲】
【請求項１】
手動で操作された対象物の動きを示す手動データを取得する取得部と、
前記取得部が取得した手動データに基づいて、前記対象物に前記動きを模倣させるロボットのエンドエフェクタの動きを、前記エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、
前記生成部が生成した前記指定データによる前記エンドエフェクタの動きが予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の前記指定データを時間方向に伸長して補正する補正部と
を備える指定データ生成装置。
【請求項２】
前記補正部は、前記指定データに従う前記エンドエフェクタの動きにおける速度の大きさおよび加速度の大きさの少なくとも一方が、前記許容範囲を超えない範囲を規定する閾値を超えた場合に前記指定データを補正する請求項１に記載の指定データ生成装置。
【請求項３】
前記補正部は、前記指定データに従う前記エンドエフェクタの動きにおける速度の大きさおよび加速度の大きさの少なくとも一方が前記閾値を超えた場合に、前記ロボットの稼働が中断することを条件として決定された前記閾値を参照して、前記指定データを補正する請求項２に記載の指定データ生成装置。
【請求項４】
前記補正部は、前記指定データを補正した期間と、他の期間との間に、前記エンドエフェクタの速度および加速度の変化が前記補正した期間と前記他の期間との間で滑らかに連続させる付加データを生成する請求項１から３のいずれか一項に記載の指定データ生成装置。
【請求項５】
手動で操作された対象物の動きを示す手動データを取得する取得部と、
前記取得部が取得した手動データに基づいて、前記対象物に前記動きを模倣させるロボットのエンドエフェクタの動きを、前記エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、
前記生成部が生成した前記指定データで指定される前記エンドエフェクタの位置および姿勢の少なくとも一方が予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記エンドエフェクタの移動量を低減して補正する補正部と
を備える指定データ生成装置。
【請求項６】
前記補正部は、前記指定データに従って移動する前記エンドエフェクタの位置が前記許容範囲を逸脱する期間が生じた場合に、前記指定データの全期間にわたって、前記エンドエフェクタの移動量を低減させて、前記指定データを補正する請求項５に記載の指定データ生成装置。
【請求項７】
前記補正部は、前記指定データに従って移動する前記エンドエフェクタの位置が前記許容範囲を逸脱する期間が生じた場合に、当該期間の前記エンドエフェクタの移動量を他の期間よりも低減させて、前記指定データを補正する請求項５または６に記載の指定データ生成装置。
【請求項８】
前記補正部は、前記指定データを補正した期間と、他の期間との間に、前記エンドエフェクタの位置の変化が、前記補正した期間と前記他の期間との間で滑らかに連続する付加データを生成する請求項７に記載の指定データ生成装置。
【請求項９】
前記補正部は、スプライン補間およびハイパボリックタンジェント補間のいずれかにより前記付加データを生成する請求項８に記載の指定データ生成装置。
【請求項１０】
前記補正部は、補正後の前記指定データ全体の時間的な長さが、予め定められた閾値を超えて延伸された場合に警告を発生する請求項５から９のいずれか一項に記載の指定データ生成装置。
【請求項１１】
前記生成部は、前記指定データを粗視化する請求項１から１０までのいずれか一項に記載の指定データ生成装置。
【請求項１２】
前記生成部は、前記ロボットの動きに関する時間分解能に合わせて指定データを内挿する内挿部を更に有する請求項１１に記載の指定データ生成装置。
【請求項１３】
前記内挿部は、前記エンドエフェクタの姿勢を指定する前記指定データを、球面四角形補間により内挿する請求項１２に記載の指定データ生成装置。
【請求項１４】
前記内挿部は、前記エンドエフェクタの位置を指定する前記指定データを、スプライン補間により内挿する請求項１２または１３に記載の指定データ生成装置。
【請求項１５】
手動で操作された対象物の動きを示す手動データを取得する取得段階と、
前記取得段階で取得した手動データに基づいて、前記対象物に前記動きを模倣させるロボットのエンドエフェクタの動きを、前記エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、
前記生成段階で生成した前記指定データで指定される前記エンドエフェクタの位置および姿勢の少なくとも一方に基づく前記エンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の前記指定データを時間方向に伸長して補正する補正段階と
を備える指定データ生成方法。
【請求項１６】
手動で操作された対象物の動きを示す手動データを取得する取得段階と、
前記取得段階で取得した手動データに基づいて、前記対象物に前記動きを模倣させるロボットのエンドエフェクタの動きを、前記エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、
前記生成段階で生成した前記指定データで指定される前記エンドエフェクタの位置および姿勢の少なくとも一方が予め定められた許容範囲を逸脱する場合に、少なくとも逸脱する期間の前記エンドエフェクタの移動量を低減して補正する補正段階と
を備える指定データ生成装置。
【請求項１７】
手動で操作された対象物の動きを示す手動データを取得する取得ステップと、
前記取得ステップで取得した手動データに基づいて、前記対象物に前記動きを模倣させるロボットのエンドエフェクタの動きを、前記エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、
前記生成ステップで生成した前記指定データで指定される前記エンドエフェクタの位置および姿勢の少なくとも一方に基づく前記エンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記指定データを時間方向に伸長して補正する補正ステップと
を備える指定データ生成プログラム。
【請求項１８】
手動で操作された対象物の動きを示す手動データを取得する取得ステップと、
前記取得ステップで取得した手動データに基づいて、前記対象物に前記動きを模倣させるロボットのエンドエフェクタの動きを、前記エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、
前記生成ステップで生成した前記指定データで指定される前記エンドエフェクタの位置および姿勢の少なくとも一方が予め定められた許容範囲を逸脱する場合に、少なくとも逸脱する期間の前記エンドエフェクタの移動量を低減して補正する補正ステップと
を備える指定データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指定データ生成装置、指定データ生成方法、および指定データ生成プログラムに関する。
【背景技術】
【０００２】
ロボットのエンドエフェクタが入力された教示点の位置を辿るように、ロボットの動きを指示する指示データを生成する生成装置がある（例えば特許文献１参照）。
特許文献１  特開平８−３３９２２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
予め定められた許容範囲を超える動きを指示する指示データが入力されて、許容範囲の逸脱が生じた場合に動作を中断する仕様のロボットがある。しかしながら、ロボットが動作を中断すると、その時点でロボットのエンドエフェクタに保持されていた対象物が、経時的な変化のために、当該対象物の用途に適していない状態になる場合がある。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、手動で操作された対象物の動きを示す手動データを取得する取得部と、取得部が取得した手動データに基づいて、対象物に動きを模倣させるロボットのエンドエフェクタの動きを、エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、生成部が生成した指定データで指定されるエンドエフェクタの位置および姿勢の少なくとも一方に基づくエンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の指定データを時間方向に伸長する補正をする補正部とを備える指定データ生成装置が提供される。
【０００５】
本発明の第２の態様においては、手動で操作された対象物の動きを示す手動データを取得する取得部と、取得部が取得した手動データに基づいて、対象物に動きを模倣させるロボットのエンドエフェクタの動きを、エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、生成部が生成した指定データで指定されるエンドエフェクタの位置および姿勢の少なくとも一方が予め定められた許容範囲を逸脱する場合に、少なくとも逸脱する期間のエンドエフェクタの移動量を低減して補正する補正部とを備える指定データ生成装置が提供される。
【０００６】
本発明の第３の態様においては、手動で操作された対象物の動きを示す手動データを取得する取得段階と、取得段階で取得した手動データに基づいて、対象物に動きを模倣させるロボットのエンドエフェクタの動きを、エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、生成段階で生成した指定データで指定されるエンドエフェクタの位置および姿勢の少なくとも一方に基づくエンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間を時間方向に伸長して指定データを補正する補正段階とを備える指定データ生成方法が提供される。
【０００７】
本発明の第４の態様においては、手動で操作された対象物の動きを示す手動データを取得する取得段階と、取得段階で取得した手動データに基づいて、対象物に動きを模倣させるロボットのエンドエフェクタの動きを、エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、生成段階で生成した指定データで指定されるエンドエフェクタの位置および姿勢の少なくとも一方が予め定められた許容範囲を逸脱する場合に、少なくとも逸脱する期間のエンドエフェクタの移動量を低減して補正する補正段階とを備える指定データ生成装置が提供される。
【０００８】
本発明の第５の態様においては、手動で操作された対象物の動きを示す手動データを取得する取得ステップと、取得ステップで取得した手動データに基づいて、対象物に動きを模倣させるロボットのエンドエフェクタの動きを、エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、生成ステップで生成した指定データで指定されるエンドエフェクタの位置および姿勢の少なくとも一方に基づくエンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間を時間方向に伸長して指定データを補正する補正ステップとを備える指定データ生成プログラムが提供される。
【０００９】
本発明の第６の態様においては、手動で操作された対象物の動きを示す手動データを取得する取得ステップと、取得ステップで取得した手動データに基づいて、対象物に動きを模倣させるロボットのエンドエフェクタの動きを、エンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、生成ステップで生成した指定データで指定されるエンドエフェクタの位置および姿勢の少なくとも一方が予め定められた許容範囲を逸脱する場合に、少なくとも逸脱する期間のエンドエフェクタの移動量を低減して補正する補正ステップとを備える指定データ生成プログラムが提供される。
【００１０】
上記の発明の概要は、本発明の特徴の全てを列挙したものではない。これらの特徴群のサブコンビネーションも発明となりうる。
【図面の簡単な説明】
【００１１】
【図１】産業用ロボットシステムを示す模式図である。
【図２】指定データ生成装置１１０のブロック図である。
【図３】指定データ生成装置１１０の動作手順を示す流れ図である。
【図４】指定データ生成装置１１０が受け付けた手動データの一例を示す図である。
【図５】粗視化部１１５の動作を説明するグラフである。
【図６】内挿部１１６の動作を説明するグラフである。
【図７】エンドエフェクタ３０２の姿勢変化の一例を示す図である。
【図８】内挿部１１６の動作を説明するグラフである。
【図９】補正部１１３の動作を示す流れ図である。
【図１０】指定データで指定される位置の一例を示すグラフである。
【図１１】指定データに対する補正処理を説明するグラフである。
【図１２】指定データに対する他の補正処理を説明するグラフである。
【図１３】付加データの生成を説明するグラフである。
【図１４】補正された指定データの一例を示すグラフである。
【図１５】エンドエフェクタ３０２の移動速度の変化の一例を示す図である。
【図１６】指定データに対する補正処理を説明するグラフである。
【図１７】付加データの生成を説明するグラフである。
【図１８】補正された指定データの一例を示すグラフである。
【図１９】エンドエフェクタ３０２の加速度の変化の一例を示す図である。
【図２０】指定データに対する補正処理を説明するグラフである。
【図２１】付加データの生成を説明するグラフである。
【図２２】補正された指定データの一例を示すグラフである。
【発明を実施するための形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明する。以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、産業用ロボットシステムを示す模式図である。ロボットシステム１０は、情報処理装置１００、コントローラ２００、およびロボット３００を含む。
【００１４】
ロボット３００は、アーム部３０１およびエンドエフェクタ３０２を有する。エンドエフェクタ３０２は、アーム部３０１の先端に配され、ロボット３００による操作の対象となる対象物を保持または開放する。
【００１５】
ロボット３００のアーム部３０１は、個別に曲げまたは伸ばすことができる複数の関節を有する。また、アーム部３０１は、エンドエフェクタ３０２との連結部においてエンドエフェクタ３０２を回転させることができる。これらアーム部３０１の屈伸とエンドエフェクタ３０２の回転とを併せた動作により、ロボット３００は、エンドエフェクタ３０２を、コントローラ２００により指定された位置および姿勢に変位させることができる。
【００１６】
従って、エンドエフェクタ３０２に対象物を保持させた状態でロボット３００を動作させることにより、対象物に動きを与えることができる。ここでいう対象物の動きは、対象物の単なる移動の他に、移動の過程で振動、回転等を加えることを含み、この動きにより対象物に含まれる流体または粉体、更に、それらの混合物等を攪拌、混合、分離することができる。
【００１７】
コントローラ２００は、情報処理装置１００から取得した指定データに従って、ロボット３００を駆動する。ここで、コントローラ２００が取得する指定データは、ロボット３００のエンドエフェクタ３０２の位置および姿勢を経過時間に対応付けて指定する情報を含む。よって、ロボットシステム１０では、情報処理装置１００からコントローラ２００に指定データを取得させることにより、エンドエフェクタ３０２に対して指定した六自由度（ｘ、ｙ、ｚ、Ｒｘ、Ｒｙ、Ｒｚ）の動作をさせて、対象物を操作できる。
【００１８】
情報処理装置１００は、本体１０１、キーボード１０２、表示部１０３、およびポインティングデバイス１０４を備えた汎用パーソナルコンピュータである。情報処理装置１００は、指定データを生成するための処理を実行させるプログラムを本体１０１にロードすることにより、後述するように、指定データを生成する指定データ生成装置１１０として動作する。
【００１９】
情報処理装置１００内に形成された指定データ生成装置１１０で生成された指定データは、ＬＡＮ、インターネット、ブルートゥース（登録商標）等の通信回線を経由してコントローラ２００に転送される。また、指定データ生成装置１１０で生成された指定データは、不揮発性メモリカード、磁気記録媒体、レーザカード等の記録媒体を媒介としてコントローラ２００に取得させてもよい。
【００２０】
図２は、情報処理装置１００に形成された指定データ生成装置１１０のブロック図である。指定データ生成装置１１０は、取得部１１１、生成部１１２、および補正部１１３を備える。
【００２１】
取得部１１１は、情報処理装置１００の外部からデータを受け入れることができる通信装置、インターフェース、媒体駆動装置等を含む。これにより、指定データ生成装置１１０の外部から、指定データの元になる手動データを取得して生成部１１２に供給する。
【００２２】
生成部１１２は、変換部１１４、粗視化部１１５、内挿部１１６、および警告部１１７を有する。生成部１１２は、取得部１１１から供給された手動データを受け付けて、コントローラ２００に提供する指定データを生成する。
【００２３】
補正部１１３は、生成部１１２が生成した指定データにおいて、少なくともデータの値が後述する閾値を超えた期間について指定データを補正する。よって、補正部１１３が指定データを補正した場合、生成部１１２は、補正部１１３により補正された期間を含む指定データを出力する。
【００２４】
図３は、指定データ生成装置１１０における生成部１１２の動作手順を示す流れ図である。指定データ生成装置１１０は、まず、取得部１１１を通じて手動データを取得する（ステップＳ１０１）。生成部１１２が取得する手動データは、例えば、ロボット３００による操作の対象となる対象物を、人間が操作した場合の対象物の動きを、例えば８ｍ秒毎に時系列的に記録したものである。
【００２５】
より具体的には、例えば、異なる種類の粉体または液体の混合物を収容した容器を振ることにより混合または分離する人間の作業をロボット３００に模倣させようとした場合に、人間の操作により容器に生じた動きを記録して、記録したデータを手動データとしてもよい。手動データは、例えば、容器に装着した加速センサから取得した加速度信号を経過時間と関連付けて記録したデータである。また、容器を操作する人間に取り付けたマーカの動きを、立体的に配置した複数のカメラで撮影するモーションキャプチャで記録したデータを手動データとしてもよい。
【００２６】
このようにして生成された手動データを取得することにより、生成部１１２は、人による操作で対象物に生じた動きを、ロボット３００により模倣させる指定データを生成する。この場合、まず、生成部１１２は、変換部１１４により、（ｘ０、ｙ０、ｚ０、Ｒｘ０、Ｒｙ０、Ｒｚ０）を原点とする手動データの座標系を、（Ｘ０、Ｙ０、Ｚ０、ＲＸ０、ＲＹ０、ＲＺ０）を原点とする指定データの座標系に変換する（ステップＳ１０２）。ここで、手動データの座標系は、手動データを記録する場合の対象物の位置（ｘ、ｙ、ｚ）および姿勢（Ｒｘ、Ｒｙ、Ｒｚ）、あるいは、マーカの位置等を表す座標系である。これに対して、指定データの座標系は、コントローラ２００がロボット３００に動作を指示する場合に示すエンドエフェクタ３０２の位置（Ｘ、Ｙ、Ｚ）および姿勢（ＲＸ、ＲＹ、ＲＺ）を表す座標である。
【００２７】
図４は、上記のように座標系を変換されて生成された指定データの一例を示す図である。図示の指定データは、人間により操作された対象物の位置の座標値の成分のひとつを時間に対応付けて記録したものに対応する。図示のように、この指定データは、人間の操作による対象物の動きを忠実に記録しているので、短い期間に値が大きく変化するノイズ成分を含む。
【００２８】
再び図３を参照すると、取得部１１１が取得した指定データを、粗視化部１１５が粗視化する（ステップＳ１０３）。粗視化は、ある変数空間で定義された連続的な物理量を、その変数を任意の単位スケールで離散化するデータ処理を含む。換言すれば、粗視化は、解像度の高い空間から低い空間への射影操作であるとも言える。指定データの粗視化は、例えば、時間的な単位スケール内で物理量の平均を取ることにより算出できる。
【００２９】
図５は、図４に示した指定データを粗視化した状態を例示するグラフである。粗視化された指定データでは、例えば１００ｍ秒毎の、エンドエフェクタ３０２の位置と姿勢を時系列的に格納している。図５は、粗視化された指定データの成分のひとつを表している。粗視化された指定データでは、情報量が削減されると共に、短期間に変動するノイズ成分が除去されている。
【００３０】
再び図３を参照すると、粗視化部１１５により粗視化された指定データは、内挿部１１６により内挿処理される（ステップＳ１０４）。ステップＳ１０３において粗視化により離散化された指定データの時間的な分解能は、コントローラ２００によりロボット３００を制御する場合の時間的な分解能よりも低くなる場合がある。そこで、内挿処理により指定データの時間的な分解能を、ロボットを制御できる上限まで高く、例えば８ｍ秒程度にすることにより、ロボット３００を滑らかに制御できる指定データが形成される。指定データの内挿処理は、例えば、スプライン補間で実行できる。
【００３１】
図６は、コントローラ２００が受け付けられる最大の分解能まで内挿された指定データを例示するグラフである。図示のように、対象物の位置の時間的な変化を示す波形は、ノイズ成分が除かれており、且つ、高い時間的解像度を有する。
【００３２】
なお、図４、５、６に示したグラフは、指定データのうち、エンドエフェクタ３０２の位置を示す情報のひとつの成分について例示している。よって、指定データがエンドエフェクタ３０２の空間的な位置を示す場合には、例えば、立体直交座標における３つの変数（Ｘ、Ｙ、Ｚ）のそれぞれについて上記の処理が実行される。
【００３３】
更に、６自由度を有するエンドエフェクタ３０２の動きを示す指定データは、エンドエフェクタ３０２の姿勢の時間的な変化を示す成分（ＲＸ、ＲＹ、ＲＺ）も含む。よって、エンドエフェクタ３０２の姿勢についても上記の一連の処理が実行される。エンドエフェクタ３０２の姿勢を示す成分（ＲＸ、ＲＹ、ＲＺ）は、例えば、オイラー角により示される。
【００３４】
しかしながら、オイラー角により表された姿勢は、例えばエンドエフェクタ３０２の姿勢を示す成分（ＲＸ、ＲＹ、ＲＺ）を各軸ｘ、ｙ、ｚ毎に個別に処理する。このため、例えば、ある軸の周りの回転量が９０°である場合には、３つの回転自由度のうちの２つが重なり、回転自由度のひとつが失われてジンバルロックが生じる場合がある。
【００３５】
そこで、指定データにおいてオイラー角で示された成分（ＲＸ、ＲＹ、ＲＺ）を、既知の方法により四元数に変換して取り扱ってもよい。四元数によるエンドエフェクタ３０２の姿勢は、下記の式１のような形式で表される。ここで、ｉ、ｊ、およびｋはそれぞれ虚数単位である。
【数１】
2020179434.tif 000003
【００３６】
図７は、四元数により表されたエンドエフェクタ３０２の姿勢の概念を示す図である。図示のデータは、ステップＳ１０２に座標系を変換した後、ステップＳ１０３に粗視化した状態に相当する。図中の球面上の黒点は、指定データにおけるエンドエフェクタ３０２の姿勢を球面上の位置として示している。
【００３７】
このように、エンドエフェクタ３０２の姿勢を示すデータを、オイラー角から四元数に変換することにより、粗視化、補間等の処理負荷を軽減できる。また、エンドエフェクタ３０２の回転の合成等の処理の負荷も軽減される。
【００３８】
図８は、ステップＳ１０３においてエンドエフェクタ３０２の姿勢に関する指定データを内挿した状態を模式的に示す図である。エンドエフェクタ３０２の姿勢に関する指定データを上記のように四元数に変換することにより、下記の式２に従って球面四角形補間で内挿できるので、エンドエフェクタ３０２の姿勢に関する演算のステップ数を削減できる。なお、式２において、Ｓｑｕａｄは球面四角形補間を意味し、Ｓｌｅｒｐは球面線形補間を意味する。また、四元数ｑの添え字は、i-1、i、i+1、i+2はこの並びの順に変化することを示しており、ｈは時刻から求められるパラメータである。
【００３９】
【数２】
2020179434.tif 000004
【００４０】
このように、指定データ生成装置１１０の取得部１１１においては、手動データにおいてエンドエフェクタ３０２の位置を示す成分（ｘ、ｙ、ｚ）と、エンドエフェクタ３０２の姿勢を示す成分（Ｒｘ、Ｒｙ、Ｒｚ）とをそれぞれを処理して、ロボット３００の動きを指定するコントローラ２００の座標系においてエンドエフェクタ３０２の位置（ｘ、ｙ、ｚ）および姿勢（ｑ）を示す指定データが生成される。また、指定データ生成装置１１０が生成する指定データは、ノイズ成分が除かれ、且つ、高い解像度を有する。
【００４１】
ところで、ロボット３００の動きには、予め定められた許容範囲が存在する。許容範囲は、動きがその範囲を超えるとロボット３００が破損する範囲、ロボット３００の耐久性が低下する範囲、ロボット３００の連続稼働が可能な範囲など、目的に応じて段階的に定められている。更に、ロボット３００のアーム部３０１とエンドエフェクタ３０２とに、個別に許容範囲が定められている場合もある。また、ロボット３００の許容範囲は、エンドエフェクタ３０２の位置、姿勢の他、ロボット３００が動作する場合の加速度および速度等についても存在する。
【００４２】
また、ロボットシステム１０において、ロボット３００に対して許容範囲を超えるような動きが指定された場合、ロボット３００は、例えば、動作を中断して、ロボット３００自体の破損、ロボット３００の周囲の危険等を回避する。このとき、ロボット３００が操作する対象が、経時的な変化を継続しつつある化合物、生物、生体物質等である場合、ロボット３００の動作が中断することにより、対象物が劣化してしまう場合がある。
【００４３】
従って、一般に、ロボット３００は、使用目的に応じた許容範囲を超えない動きで動作することが好ましい。しかしながら、ステップＳ１０４までに生成された指定データは、手動データに対応して生成されており、許容範囲を超える動きをロボット３００に指示する値を含む場合がある。
【００４４】
再び図３を参照すると、生成部１１２においては、ステップＳ１０４の段階で生成された指定データに従ってロボット３００が動作した場合に、ロボット３００の動きが、そのロボット３００に設定された許容範囲を超えるか否かを調べる（ステップＳ１０５）。ここで、エンドエフェクタ３０２の動きが許容範囲を逸脱するか否かの判断は、エンドエフェクタ３０２の動きを指定する指定データの値が、予め定めた閾値を超えたか否かにより判断できる。
【００４５】
上記の閾値は、ロボット３００の仕様として予め知られている値がある場合は、その値を使用してもよい。また、ロボットシステム１０を形成するロボット３００の仕様が明らかではない場合は、目的とする使用条件下で実際にロボットを動作させて、許容範囲の逸脱によりロボット３００が停止した場合の指定データの値を閾値として用いてもよい。
【００４６】
ステップＳ１０５においてロボット３００の動きが閾値を超える期間が生じることが判った場合（ステップＳ１０５：ＹＥＳ）に、生成部１１２は、少なくともロボット３００の動きが許容範囲を逸脱することが判った期間について、補正部１１３により指定データを補正する（ステップＳ１０６）。補正部１１３は、ロボット３００の動きが許容範囲を超える期間が生じないように指定データを補正する。補正部１１３による指定データの補正手順については、図９以降を参照して後述する。
【００４７】
ステップＳ１０５において、指定データが閾値を超えず、ロボット３００の動きが許容範囲を逸脱する期間が生じないことが判った場合（ステップＳ１０５：ＮＯ）、および、ロボット３００の動きが許容範囲を逸脱する期間について、ステップＳ１０６の指定データの補正が終わった場合、生成部１１２は、補正された期間を含む指定データ全体によるロボット３００の動作時間が制限時間を超えるか否かを調べる（ステップＳ１０７）。
【００４８】
例えば、指定データを補正した結果、指定データに従ったロボット３００の動作時間が、手動データの元になった人の操作時間よりも延長される場合がある。更に、動作時間が延長されたことにより、ロボット３００に操作される対象物において化学反応が過剰に進んだり、生物または生体物質が劣化することが予測される場合がある。このような指定データは、エンドエフェクタ３０２の動きが許容範囲を超えないとしても、工業的に採用することができない。
【００４９】
そこで、警告部１１７は、生成され、且つ、補正された指定データを、予め定めた閾値時間と比較して、補正された指定データによる動作時間が制限時間を超える場合（ステップＳ１０７：ＹＥＳ）、生成部１１２は適切な指定データを生成することができないと判断し、警告部１１７に警告を発生させて（ステップＳ１０９）処理を終了する。警告部１１７による警告は、ログファイルへの記録であってもよいし、ユーザインターフェースを通じて外部に、映像、音声、光等を発生してもよい。これにより、ロボットシステム１０のユーザは、エンドエフェクタ３０２の動きが許容範囲を逸脱しない指定データを生成することができなかったことを知り、指定データの他の補正方法を試みる等することができる。
【００５０】
一方ステップＳ１０７において、補正された指定データが制限時間を超えていなかった場合（ステップＳ１０７：ＮＯ）、生成部１１２は、生成された指定データを、コントローラ２００に送信して（ステップＳ１０８）処理を終了する。これにより、コントローラ２００は、手動データに対応した指定データであって、動きが許容範囲を逸脱することがない指定データでロボット３００を駆動することができる状態になる。
【００５１】
上記の通り、生成部１１２で生成された指定データは、図３に示したステップＳ１０５で、その指定データに従ってコントローラ２００がロボット３００を駆動した場合に、エンドエフェクタ３０２の動きが予め定められた閾値を超えるか否かを調べられる。そして、指定データが閾値を超え、指定データに従って動作したエンドエフェクタ３０２の動きが許容範囲を逸脱することが判明した場合（ステップＳ１０５：ＹＥＳ）は、指定データの補正（ステップＳ１０６）が開始される。
【００５２】
図９は、ステップＳ１０６において補正部１１３が指定データを補正する手順の一例を示す流れ図である。ステップＳ１０６が開始されると、補正部１１３は、エンドエフェクタ３０２の動きが許容範囲を逸脱すると判定された期間を含む指定データを取得する（ステップＳ２０１）。
【００５３】
次いで、補正部１１３は、補正前の指定データに従って動作したエンドエフェクタ３０２の動きにおいて許容範囲を逸脱するのが、エンドエフェクタ３０２の位置または姿勢であるか否かを判断する（ステップＳ２０２）。エンドエフェクタ３０２の位置が閾値を超える期間が存在しない場合（ステップＳ２０２：ＮＯ）、補正部１１３は、処理を後述するステップＳ２０９に進める。
【００５４】
図１０は、エンドエフェクタ３０２の位置（Ｘ、Ｙ、Ｚ）が許容範囲を逸脱すると判定された期間を含む指定データの一例を示す。
【００５５】
図示のデータは、エンドエフェクタ３０２の位置を示すデータである。図１０には、エンドエフェクタ３０２の位置を示す座標値のひとつが、時間の経過と共に変化することを示す曲線が現れている。また、図示の曲線は、少なくとも２箇所で閾値を超えて変化している。
【００５６】
再び図９を参照する。ステップＳ２０２において、エンドエフェクタ３０２が位置に関する許容範囲を逸脱することが判った場合（ステップＳ２０２：ＹＥＳ）、補正部１１３は、指定データにおいて位置または姿勢を指定する指定データの値を全体にオフセットして、図中に矢印Ｘ１で示すように、位置の指定により生じるエンドエフェクタ３０２の移動量を低減させる補正をする（ステップＳ２０３）。
【００５７】
図１１は、指定データに対するステップＳ２０３の処理を示すグラフである。図示のグラフに示される曲線は、波形自体は、図１０に示したものと全く同じである。しかしながら、全体に値が均一に小さくなったので、閾値を超えていた２つのピークのひとつが、閾値よりも低くなっている。この補正により、指定データにより動作したロボット３００のエンドエフェクタ３０２の位置が許容範囲を逸脱する回数が削減される。
【００５８】
再び図９を参照する。次に、補正部１１３は、ステップＳ２０３の補正後の指定データについて、その指定データに従って動作したエンドエフェクタ３０２の動きにおいて、指定データにより指定されたエンドエフェクタ３０２の位置が、予め定めた閾値を超える期間が残っているか否かを調べる（ステップＳ２０４）。ステップＳ２０４では、ステップＳ２０２で使用した閾値と同じ閾値を用いることができる。エンドエフェクタ３０２の位置が閾値を超える期間が存在しない場合（ステップＳ２０４：ＮＯ）、補正部１１３は、処理を後述するステップＳ２０９に進める。
【００５９】
ステップＳ２０４において、閾値を超える期間が残っていた場合（ステップＳ２０４：ＹＥＳ）、補正部１１３は、該当期間を含む指定データの一部について、エンドエフェクタ３０２の位置を示す成分をオフセットして、位置の指定により生じるエンドエフェクタ３０２の移動量を更に減少させる補正をする（ステップＳ２０５）。これにより、図１０に示したエンドエフェクタ３０２の位置を示すデータの値が低下して、閾値を超える期間を更に減少できる。
【００６０】
図１２は、上記の補正により、エンドエフェクタ３０２の位置を示す指定データの一部の期間Ａについて、図中に矢印Ｘ２で示すように、値を減少させた状態を示すグラフである。図示のように、この補正により指定データの値はすべて閾値よりも低くなるので、エンドエフェクタ３０２の位置が許容範囲を逸脱する期間は解消される。ただし、値を減少させたのは指定データの一部の期間Ａなので、補正した期間Ａとそれ以外の期間との境界では、指定データの値の変化が連続しなくなる。
【００６１】
再び図９を参照する。補正部１１３は、上記のように補正で不連続部分が生じた補正データに対して、付加データを生成する（ステップＳ２０６）。ここで生成する付加データは、期間Ａの指定データの変化と期間Ａ以外の指定データの変化とを滑らかに連続させる目的で、期間Ａとそれ以外の期間との間に挿入するデータである。
【００６２】
図１３は、ステップＳ２０６で生成する付加データの一例を示す図である。図中、期間Ｂに実線で示す付加データの図中左端は、期間Ａよりも前の指定データの終端と同じ値と傾きを有する。また、付加データの図中右端は、期間Ａの指定データの始点と、同じ値と傾きとを有する。
【００６３】
更に、付加データの右端および左端は、両者を滑らかに連続させる曲線により補間されて連結されている。このような曲線を描く付加データは、補正部１１３が実行するスプライン補間またはハイパボリックタンジェント補間により生成してもよい。
【００６４】
再び図９を参照する。補正部１１３は、ステップＳ２０６で生成された付加データを、当初から存在した指定データと結合する（ステップＳ２０７）。付加データを結合する場合は、生成された付加データの時間的な長さに応じて、時系列的に後方に位置する指定データの位置を時間的に移動させて期間Ｂに相当するブランク期間を設け、当該ブランク期間に付加データを挿入する。なお、期間Ｂに相当するブランク期間は、指定データの波形における1つの山の２倍程度の長さである。すなわち、任意の谷の点と、その点に隣接する点との長さが１秒程度であれば、期間Ｂに相当するブランク期間は２秒程度となる。
【００６５】
図１４は、上記のようにして付加データを結合された指定データを示す図である。図示のように、期間Ｂに配された付加データで結合された指定データは、全体として滑らかに連結している。また、この指定データに閾値を超える期間は含まれない。よって、図示の指定データを用いてコントローラ２００がロボット３００を駆動した場合、ロボット３００のエンドエフェクタ３０２が許容範囲を逸脱する動きを生じることが防止される。このため、ロボット３００が意図に反して稼働を中断することがない。
【００６６】
なお、上記の例では、指定データのうちエンドエフェクタ３０２の位置を指定する成分を補正する場合について説明した。しかしながら、指定データのうちエンドエフェクタ３０２の姿勢を指定する成分についても同様に、姿勢の変化量を低減する補正により、エンドエフェクタ３０２が許容範囲を逸脱することを防止できる。ただし、この場合、スプライン補間ではなく、球面四角形補間が実行される。また、この場合、エンドエフェクタ３０２の姿勢は四元数に変換されているので、データ処理のステップ数を削減できる。
【００６７】
ただし、最終的に指定データを受け付けるコントローラ２００は、エンドエフェクタ３０２の姿勢を、オイラー角により指定してロボット３００を駆動する仕様となっている場合がある。この場合は、指定データ生成装置１１０において、エンドエフェクタ３０２の姿勢を示す四元数の値を、オイラー角に変換して、コントローラ２００に送信する指定データとしてもよい。
【００６８】
また、指定データに付加データを付加した場合、指定データ全体の時間的な長さも伸長される。このため、ロボット３００による対象物の操作が完了するまでに要する時間も長くなる。従って、図３に示したステップＳ１０７において、一連の指定データによるロボット３００の動作時間が制限時間を超えた場合、上記のように補正した指定データは使用できなくなる。このような場合は、指定データの補正方法を変更する等して、コントローラ２００に転送する他の指定データを生成してもよい。
【００６９】
再び図９を参照する。次に、補正部１１３は、指定データの位置を指定する成分の値が閾値を超える期間が全く無くなったか否かを調べる（ステップＳ２０８）。ステップＳ２０８において、位置を指定する成分に閾値を超える期間が残ることが判った場合（ステップＳ２０８：ＮＯ）、補正部１１３は、処理をステップＳ２０５に戻し、ステップＳ２０５からステップＳ２０８までの一連の補正処理を繰り返す。
【００７０】
ステップＳ２０８において、位置を指定する成分に閾値を超える期間が全く残っていないことが判った場合（ステップＳ２０８：ＹＥＳ）、補正部１１３は、指定データのうち、位置を指定する成分に関する補正が終了したものとして処理をステップＳ２０９に進める。
【００７１】
補正部１１３は、指定データに従って動作ロボット３００が動作した場合にエンドエフェクタ３０２に生じる移動速度が許容範囲を逸脱するか否かを調べる（ステップＳ２０９）。エンドエフェクタ３０２の移動速度が許容範囲を逸脱するか否かの判断は、指定データにより生じるエンドエフェクタ３０２の移動速度が、エンドエフェクタ３０２の移動速度について予め定めた閾値を超過することにより判別できる。
【００７２】
エンドエフェクタ３０２の移動速度が閾値を超える期間が存在しない場合（ステップＳ２０９：ＮＯ）、補正部１１３は、処理を後述するステップＳ２１４に進める。エンドエフェクタ３０２の移動速度が閾値を超える期間が存在する場合（ステップＳ２０９：ＹＥＳ）、補正部１１３は、該当期間の指定データを補正する（ステップＳ２１０）。
【００７３】
図１５は、エンドエフェクタ３０２の移動速度の絶対値の時間的な変化を示すグラフである。図示のグラフに示された、移動速度の値の変化を示す曲線は、移動速度が閾値を超える期間Ｃ０を含む。なお、図示の例では、下記の式３に示すようにして算出した、三次元空間における速度成分（［ｄｘ／ｄｔ］、［ｄｙ／ｄｔ］、［ｄｚ／ｄｔ］）の二乗和の平方根の絶対値｜Ｖ｜を、エンドエフェクタ３０２の速度の大きさとして閾値と比較している。
【数３】
2020179434.tif 000005
【００７４】
再び図９を参照すると、補正部１１３は、移動速度が閾値を超える期間Ｃ０について指定データを補正する（ステップＳ２１０）。ここで、指定データは、期間Ｃ０を時間方向について延伸することにより補正される。
【００７５】
図１６は、補正部１１３による上記のような指定データの補正を説明するグラフであり、指定データにおけるエンドエフェクタ３０２の位置の時間的な変化を示す。図示のように、エンドエフェクタ３０２の移動速度が閾値を超える期間Ｃ０は、時間方向に延伸されて期間Ｃ１となる。これにより、図中に実線で示される補正された指定データの傾斜が穏やかになる。このため、期間Ｃ１の指定データによるエンドエフェクタ３０２の移動速度は低下する。ただし、期間Ｃ１は期間Ｃ０よりも延伸されているので、期間Ｃ１におけるエンドエフェクタ３０２の移動量は、補正前の指定データの期間Ｃ０のエンドエフェクタ３０２の移動量と等しい。
【００７６】
なお、期間Ｃ０の指定データを時間的に延伸したことにより、期間Ｃ１で、指定データの時間的な分解能が不足する場合がある。その場合は、図３で示したステップＳ１０４の処理と同様に、指定データを内挿して分解能を補償できる。
【００７７】
ただし、補正された期間Ｃ１の指定データを、補正されていない期間の指定データと単純に結合して形成された指定データでは、両期間の境界でエンドエフェクタ３０２の移動速度が急激に変化する。このため、当該境界では、エンドエフェクタ３０２の加速度が著しく上昇する。
【００７８】
そこで、再び図９を参照すると、補正部１１３は、期間Ｃ１の指定データと他の期間の指定データとを滑らかに連続させる目的で、期間Ｃ１に対する境界に挿入する付加データを生成する（ステップＳ２１１）。ただし、時間的に延伸された期間Ｃ１と他の期間との境界では、エンドエフェクタ３０２の移動速度こそ不連続になるものの、エンドエフェクタ３０２の位置は変わらない。よって、補正部１１３が生成する付加データは、期間Ｃ１と他の期間との境界を含む有限の幅を有する期間Ｄ１、Ｄ２で、指定データの曲線を滑らかに連続させる。なお、期間Ｄ１、Ｄ２は、手動データを取得する間隔の３倍程度に設定できる。例えば、手動データが８ｍ秒毎に記録される場合、期間Ｄ１、Ｄ２は、２４ｍ秒に設定することが好ましい。
【００７９】
図１７は、ステップＳ２０６で生成する付加データの一例を示す図である。図中、期間Ｄ１、Ｄ２に実線で示す付加データの図中両端では、実線で示す付加データの端部の傾きと、破線で示す指定データの端部の傾きとが一致している。また、期間Ｄ１、Ｄ２の各々の期間内において、データの変化は滑らかに連続している。このような曲線を描く付加データは、補正部１１３が実行するスプライン補間により生成してもよい。
【００８０】
再び図９を参照すると、補正部１１３は、ステップＳ２１１で生成した付加データを、当初から存在した指定データの他の期間と結合する（ステップＳ２１２）。付加データを結合する場合は、期間Ｄ１、Ｄ２に相当する期間を設け、当該期間内の指定データを削除し、上記付加データに置き換える。
【００８１】
図１８は、上記のようにして付加データを結合された指定データを示す図である。図示のように、補正された期間Ｃ１の指定データが、期間Ｄ１、Ｄ２に配された付加データを介して補正されていない期間の指定データと結合され、全体として滑らかに連続する指定データが形成される。この指定データに閾値を超える期間は含まれないので、図示の指定データを用いてコントローラ２００がロボット３００を駆動した場合、ロボット３００のエンドエフェクタ３０２が許容範囲を逸脱した移動速度の動きを生じることは防止される。よって、許容範囲を逸脱した動きに起因して、ロボット３００が意図に反して稼働を中断することも防止される。
【００８２】
再び図９を参照する。次に、補正部１１３は、ステップＳ２１２で形成された補正後の指定データについて、その指定データに従って動作したエンドエフェクタ３０２の動きに、エンドエフェクタ３０２の移動速度が閾値を超える期間が無くなったかどうかを調べる（ステップＳ２１３）。ステップＳ２１３では、ステップＳ２０９で使用した閾値と同じ閾値を用いることができる。
【００８３】
ステップＳ２１３において、エンドエフェクタ３０２の移動速度が閾値を超える期間が無くなっていないことが判った場合（ステップＳ２１３：ＮＯ）、補正部１１３は、補正部１１３の処理をステップＳ２１０に戻し、ステップＳ２１０からステップＳ２１２までの一連の補正処理を繰り返す。また、ステップＳ２１３において、位置を指定する成分に、エンドエフェクタ３０２の移動速度が閾値を超える期間が全く残っていないことが判った場合（ステップＳ２１３：ＹＥＳ）、補正部１１３は、移動速度に関して指定データの補正が完了したものとして、処理をステップＳ２１４に進める。
【００８４】
上記の例は、指定データに、エンドエフェクタ３０２の移動速度が許容範囲を超える期間が含まれる場合について説明した。しかしながら、指定データのうちエンドエフェクタ３０２の姿勢が変化する場合のエンドエフェクタ３０２の回転速度についても同様に、エンドエフェクタ３０２の姿勢を指定する指定データの成分を補正することにより、許容範囲を逸脱するようなエンドエフェクタ３０２の動きを防止できる。
【００８５】
この場合、エンドエフェクタ３０２の姿勢を示す値は四元数に変換されているので、データ処理のステップ数を削減できる。ただし、最終的に指定データを受け付けるコントローラ２００は、エンドエフェクタ３０２の姿勢を、オイラー角により指定してロボット３００を駆動する仕様となっている場合がある。この場合は、指定データ生成装置１１０において、エンドエフェクタ３０２の姿勢を示す四元数の値を、オイラー角に変換して、コントローラ２００に送信する指定データとしてもよい。
【００８６】
図１９は、エンドエフェクタ３０２が移動する場合に生じる加速度の絶対値の時間的な変化を示すグラフである。図示のグラフに示された、加速度の値の変化を示す曲線は、加速度が閾値を超える期間Ｅ０を含む。なお、図示の例では、下記に式４に示すようにして算出した、三次元空間における加速度成分（［ｄ２ｘ／ｄｔ２］、［ｄ２ｙ／ｄｔ２］、［ｄ２ｚ／ｄｔ２］）の二乗和の平方根の絶対値｜Ａ｜を、エンドエフェクタ３０２の加速度の大きさとして閾値と比較している。
【数４】
2020179434.tif 000006
【００８７】
そこで、補正部１１３は、図９に示したステップＳ２１０に、加速度Ａが閾値を超える期間Ｅ０について、指定データを補正する。指定データは、期間Ｅ０を時間方向について延伸することにより補正される。
【００８８】
図２０は、補正部１１３による上記のような指定データの補正を説明するグラフであり、指定データが指定するエンドエフェクタ３０２の位置の時間的な変化を示す。図示のように、エンドエフェクタ３０２の加速度が閾値を超える期間Ｅ０を時間方向に延伸することにより、補正された指定データを含む期間Ｅ１が形成される。これにより、図中に実線で示される補正された指定データの傾斜が穏やかになる。このため、期間Ｅ１の指定データによるエンドエフェクタ３０２の加速度は低下する。ただし、期間Ｅ１は期間Ｅ０よりも延伸されているので、期間Ｅ１全体でのエンドエフェクタ３０２の位置の変化量は、補正前の指定データの期間Ｅ０におけるエンドエフェクタ３０２の位置の変化量と等しい。
【００８９】
なお、期間Ｅ０の指定データを時間的に延伸したことにより、期間Ｅ１で、指定データの時間的な分解能が不足する場合がある。その場合は、図３で示したステップＳ１０４の処理と同様に、指定データを内挿して分解能を補償できる。
【００９０】
ここで、補正された期間Ｅ１の指定データを、補正されていない期間の指定データと単純に結合して形成された指定データでは、両期間の境界でエンドエフェクタ３０２の加速度が急激に変化する。このため、当該境界では、エンドエフェクタ３０２の加速度が著しく増大する。
【００９１】
そこで、図９に示したステップＳ２１１において、補正部１１３は、期間Ｅ１の指定データと他の期間の指定データとを滑らかに連続させる目的で、期間Ｅ１に対する境界に挿入する付加データを生成する。ただし、時間的に延伸された期間Ｅ１と他の期間との境界では、エンドエフェクタ３０２の加速度こそ不連続になるものの、エンドエフェクタ３０２の位置は変わらない。
【００９２】
よって、補正部１１３が生成する付加データは、期間Ｅ１と他の期間との境界を含む有限の幅を有する期間Ｆ１、Ｆ２で、指定データの曲線を滑らかに連続させる。なお、期間Ｆ１、Ｆ２は、手動データを取得する間隔の３倍程度に設定できる。例えば、手動データが８ｍ秒毎に記録される場合、期間Ｆ１、Ｆ２は、２４ｍ秒に設定することが好ましい。
【００９３】
図２１は、図９に示したステップＳ２０６で生成する付加データの一例を示す図である。図中、期間Ｆ１、Ｆ２に実線で示す付加データの図中両端では、実線で示す付加データの端部の傾きと、破線で示す指定データの端部の傾きとが一致している。また、期間Ｆ１、Ｆ２の各々の期間内において、データの変化は滑らかに連続している。このような曲線を描く付加データは、補正部１１３が実行するスプライン補間により生成してもよい。
【００９４】
次いで、図９のステップＳ２１２において、補正部１１３は、ステップＳ２１１で生成した付加データを、当初から存在した指定データの他の期間と結合する。付加データを結合する場合は、期間Ｆ１、Ｆ２に相当する期間を設け、当該期間内の指定データを削除し、上記付加データに置き換える。
【００９５】
図２２は、上記のようにして付加データを結合された指定データを示す図である。図示のように、補正された期間Ｅ１の指定データが、期間Ｆ１、Ｆ２に配された付加データを介して補正されていない期間の指定データと結合され、全体として滑らかに連続する指定データが形成される。この指定データに閾値を超える期間は含まれないので、図示の指定データを用いてコントローラ２００がロボット３００を駆動した場合、ロボット３００のエンドエフェクタ３０２が許容範囲を逸脱した加速度の動きを生じることが防止される。よって、許容範囲を逸脱した動きに起因して、ロボット３００が意図に反して稼働を中断することも防止される。
【００９６】
その後、図９のステップＳ２１３において、補正部１１３は、ステップＳ２１２で形成された補正後の指定データについて、その指定データに従って動作したエンドエフェクタ３０２の動きに、エンドエフェクタ３０２の加速度が閾値を超える期間が無くなったかどうかを調べる。ステップＳ２１３では、ステップＳ２０９で使用した閾値と同じ閾値を用いることができる。
【００９７】
ステップＳ２１３において、エンドエフェクタ３０２の加速度が閾値を超える期間が無くなっていないことが判った場合（ステップＳ２１３：ＮＯ）、補正部１１３は、補正部１１３の処理をステップＳ２１０に戻し、ステップＳ２１０からステップＳ２１２までの一連の補正処理を繰り返す。また、ステップＳ２１３において、位置を指定する成分に、エンドエフェクタ３０２の加速度が閾値を超える期間が全く残っていないことが判った場合（ステップＳ２１３：ＹＥＳ）、補正部１１３は、加速度に関して指定データの補正が完了したものとして、処理をステップＳ２１４に進める。
【００９８】
上記の例は、指定データに、エンドエフェクタ３０２が移動する場合の加速度が許容範囲を超える期間が含まれる場合について説明した。しかしながら、指定データのうちエンドエフェクタ３０２の姿勢が変化する場合のエンドエフェクタ３０２の回転の加速度についても同様に、エンドエフェクタ３０２の姿勢を指定する指定データの成分を補正することにより、許容範囲を逸脱するようなエンドエフェクタ３０２の回転を防止できる。
【００９９】
この場合、エンドエフェクタ３０２の姿勢を示す値は四元数に変換されているので、データ処理のステップ数を削減できる。ただし、最終的に指定データを受け付けるコントローラ２００は、エンドエフェクタ３０２の姿勢を、オイラー角により指定してロボット３００を駆動する仕様となっている場合がある。この場合は、指定データ生成装置１１０において、エンドエフェクタ３０２の姿勢を示す四元数の値を、オイラー角に変換して、コントローラ２００に送信する指定データとしてもよい。
【０１００】
上記のようにして生成部１１２により生成され、補正部１１３により補正された指定データは、ロボットシステム１０におけるロボット３００のコントローラ２００に転送される（ステップＳ２１４）。コントローラ２００は、受信した指定データに従ってロボット３００のエンドエフェクタ３０２の位置を時系列的に順次指定する。これにより、コントローラ２００は、指定データ生成装置１１０に当初受け付けられた手動データを模倣するエンドエフェクタ３０２の動きを指定する指定データであって、動きが許容範囲を逸脱したためにロボット３００を停止させることがない指定データでロボット３００を駆動することができる。
【０１０１】
例えば、工学における単位操作のひとつである攪拌（乳化、分散、粉砕、溶解、混合、撹拌、混練）は、操作対象に作用する加速度等の多寡に応じて、分散と凝集等の相反する作用を生じる場合がある。また、ロボット３００が動作範囲の限界に達した時点で停止してしまうと、所期の作用が生じないばかりではなく、例えば、化学反応の過剰な進行、生物，生体物質の死滅、劣化等により、操作が中断した操作対象を破棄しなければならなくなる場合がある。このため、時間的に変化する対象物を扱うことが多く、更に、熟練した作業者による連続的な操作を製造過程に含むことが多い三品産業ではロボット３００の導入が遅れている。
【０１０２】
しかしながら、上記のように、ロボット３００の停止を回避しつつ、ロボットに手動データを模倣させる指定データを生成することにより、加熱調理における均熱促進、マヨネーズ、ドレッシング、カクテル、クリーム類、乳液類等の製造における材料の分散またはエマルジョン化、凝集材による汚水処理、粘稠な流体の移動、反応の促進等、三品産業におけるロボット３００の利用範囲を拡大できる。また、ピッチングマシン、スイングロボットなど、人の動きを模したロボットの指定データを生成する場合にも好ましく適用できる。
【０１０３】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、（１）操作が実行されるプロセスの段階または（２）操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および／またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび／またはアナログハードウェア回路を含んでよく、集積回路（ＩＣ）および／またはディスクリート回路を含んでよい。プログラマブル回路は、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理ＮＡＮＤ、論理ＮＯＲ、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【０１０４】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー（登録商標）ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、コンパクトディスクリードオンリメモリ（ＣＤ-ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（ＲＴＭ）ディスク、メモリスティック、集積回路カード等が含まれてよい。
【０１０５】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ、ＪＡＶＡ（登録商標）、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、１または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【０１０６】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク（ＬＡＮ）、インターネット等のようなワイドエリアネットワーク（ＷＡＮ）を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【０１０７】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１０８】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１０９】
１０  ロボットシステム、１００  情報処理装置、１０１  本体、１０２  キーボード、１０３  表示部、１０４  ポインティングデバイス、１１０  指定データ生成装置、１１１  取得部、１１２  生成部、１１３  補正部、１１４  変換部、１１５  粗視化部、１１６  内挿部、１１７  警告部、２００  コントローラ、３００  ロボット、３０１  アーム部、３０２  エンドエフェクタ
【図１】
2020179434.tif 000007
【図２】
2020179434.tif 000008
【図３】
2020179434.tif 000009
【図４】
2020179434.tif 000010
【図５】
2020179434.tif 000011
【図６】
2020179434.tif 000012
【図７】
2020179434.tif 000013
【図８】
2020179434.tif 000014
【図９】
2020179434.tif 000015
【図１０】
2020179434.tif 000016
【図１１】
2020179434.tif 000017
【図１２】
2020179434.tif 000018
【図１３】
2020179434.tif 000019
【図１４】
2020179434.tif 000020
【図１５】
2020179434.tif 000021
【図１６】
2020179434.tif 000022
【図１７】
2020179434.tif 000023
【図１８】
2020179434.tif 000024
【図１９】
2020179434.tif 000025
【図２０】
2020179434.tif 000026
【図２１】
2020179434.tif 000027
【図２２】
2020179434.tif 000028
【手続補正書】
【提出日】令和2年1月8日(2020.1.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、
前記生成部が生成した前記指定データに従って動作した前記エンドエフェクタの動きに予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の前記指定データを時間方向に伸長して補正する補正部と
を備える指定データ生成装置。
【請求項２】
前記補正部は、前記指定データに従う前記エンドエフェクタの動きにおける速度の大きさおよび加速度の大きさの少なくとも一方が、前記許容範囲を超えない範囲を規定する閾値を超えた場合に前記指定データを補正する請求項１に記載の指定データ生成装置。
【請求項３】
前記補正部は、前記指定データに従う前記エンドエフェクタの動きにおける速度の大きさおよび加速度の大きさの少なくとも一方が前記閾値を超えた場合に、前記ロボットの稼働が中断することを条件として決定された前記閾値を参照して、前記指定データを補正する請求項２に記載の指定データ生成装置。
【請求項４】
前記補正部は、前記指定データを補正した期間と、他の期間との間に、前記エンドエフェクタの速度および加速度の変化が前記補正した期間と前記他の期間との間で滑らかに連続させる付加データを生成する請求項１から３のいずれか一項に記載の指定データ生成装置。
【請求項５】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、
前記生成部が生成した前記指定データに従って動作した前記エンドエフェクタの位置および姿勢の少なくとも一方に予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記エンドエフェクタの位置および姿勢の少なくともの一方の変化量を低減して補正する補正部と
を備える指定データ生成装置。
【請求項６】
前記補正部は、前記指定データに従って移動する前記エンドエフェクタの位置および姿勢の少なくとも一方に前記許容範囲を逸脱する期間が生じた場合に、前記指定データの全期間にわたって、前記エンドエフェクタの位置および姿勢の少なくとも一方の変化量を低減させて、前記指定データを補正する請求項５に記載の指定データ生成装置。
【請求項７】
前記補正部は、前記指定データに従って移動する前記エンドエフェクタの位置および姿勢の少なくとも一方に前記許容範囲を逸脱する期間が生じた場合に、当該期間の前記エンドエフェクタの位置および姿勢の少なくとも一方の変化量を他の期間よりも低減させて、前記指定データを補正する請求項５または６に記載の指定データ生成装置。
【請求項８】
前記補正部は、前記指定データを補正した期間と、他の期間との間に、前記エンドエフェクタの位置の変化が、前記補正した期間と前記他の期間との間で滑らかに連続する付加データを生成する請求項７に記載の指定データ生成装置。
【請求項９】
前記補正部は、スプライン補間およびハイパボリックタンジェント補間のいずれかにより前記付加データを生成する請求項８に記載の指定データ生成装置。
【請求項１０】
前記補正部は、補正後の前記指定データ全体の時間的な長さが、予め定められた閾値を超えて延伸された場合に警告を発生する請求項５から９のいずれか一項に記載の指定データ生成装置。
【請求項１１】
前記生成部は、前記指定データを粗視化する請求項１から１０までのいずれか一項に記載の指定データ生成装置。
【請求項１２】
前記生成部は、前記ロボットの動きに関する時間分解能に合わせて指定データを内挿する内挿部を更に有する請求項１１に記載の指定データ生成装置。
【請求項１３】
前記内挿部は、前記エンドエフェクタの姿勢を指定する前記指定データを、球面四角形補間により内挿する請求項１２に記載の指定データ生成装置。
【請求項１４】
前記内挿部は、前記エンドエフェクタの位置を指定する前記指定データを、スプライン補間により内挿する請求項１２または１３に記載の指定データ生成装置。
【請求項１５】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、
前記生成段階で生成した前記指定データに従って動作する前記エンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の前記指定データを時間方向に伸長して補正する補正段階と
を備える指定データ生成方法。
【請求項１６】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、
前記生成段階で生成した前記指定データに従って動作する前記エンドエフェクタの位置および姿勢の少なくとも一方に予め定められた許容範囲を逸脱する場合に、少なくとも逸脱する期間の前記エンドエフェクタの位置及び姿勢の少なくとも一方の変化量を低減して補正する補正段階と
を備える指定データ生成装置。
【請求項１７】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、
前記生成ステップで生成した前記指定データに従って動作する前記エンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記指定データを時間方向に伸長して補正する補正ステップと
を備える指定データ生成プログラム。
【請求項１８】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、
前記生成ステップで生成した前記指定データに従って動作する前記エンドエフェクタの位置および姿勢の少なくとも一方に予め定められた許容範囲を逸脱する場合に、少なくとも逸脱する期間の前記エンドエフェクタの位置及び姿勢の少なくとも一方の変化量を低減して補正する補正ステップと
を備える指定データ生成プログラム。
【手続補正書】
【提出日】令和2年3月25日(2020.3.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、
前記生成部が生成した前記指定データに従って動作した前記エンドエフェクタの動きに予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の前記指定データを時間方向に伸長して補正する補正部と
を備える指定データ生成装置。
【請求項２】
前記補正部は、前記指定データに従う前記エンドエフェクタの動きにおける速度の大きさおよび加速度の大きさの少なくとも一方が、前記許容範囲を超えない範囲を規定する閾値を超えた場合に前記指定データを補正する請求項１に記載の指定データ生成装置。
【請求項３】
前記補正部は、前記指定データに従う前記エンドエフェクタの動きにおける速度の大きさおよび加速度の大きさの少なくとも一方が前記閾値を超えた場合に、前記ロボットの稼働が中断することを条件として決定された前記閾値を参照して、前記指定データを補正する請求項２に記載の指定データ生成装置。
【請求項４】
前記補正部は、前記指定データを補正した期間と、他の期間との間に、前記エンドエフェクタの速度および加速度の変化が前記補正した期間と前記他の期間との間で滑らかに連続させる付加データを生成する請求項１から３のいずれか一項に記載の指定データ生成装置。
【請求項５】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成部と、
前記生成部が生成した前記指定データに従って動作した前記エンドエフェクタの位置および姿勢の少なくとも一方に予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記エンドエフェクタの位置および姿勢の少なくともの一方の変化量を低減して補正する補正部と
を備える指定データ生成装置。
【請求項６】
前記補正部は、前記指定データに従って移動する前記エンドエフェクタの位置および姿勢の少なくとも一方に前記許容範囲を逸脱する期間が生じた場合に、前記指定データの全期間にわたって、前記エンドエフェクタの位置および姿勢の少なくとも一方の変化量を低減させて、前記指定データを補正する請求項５に記載の指定データ生成装置。
【請求項７】
前記補正部は、前記指定データに従って移動する前記エンドエフェクタの位置および姿勢の少なくとも一方に前記許容範囲を逸脱する期間が生じた場合に、当該期間の前記エンドエフェクタの位置および姿勢の少なくとも一方の変化量を他の期間よりも低減させて、前記指定データを補正する請求項５または６に記載の指定データ生成装置。
【請求項８】
前記補正部は、前記指定データを補正した期間と、他の期間との間に、前記エンドエフェクタの位置の変化が、前記補正した期間と前記他の期間との間で滑らかに連続する付加データを生成する請求項７に記載の指定データ生成装置。
【請求項９】
前記補正部は、スプライン補間およびハイパボリックタンジェント補間のいずれかにより前記付加データを生成する請求項８に記載の指定データ生成装置。
【請求項１０】
前記補正部は、補正後の前記指定データ全体の時間的な長さが、予め定められた閾値を超えて延伸された場合に警告を発生する請求項５から９のいずれか一項に記載の指定データ生成装置。
【請求項１１】
前記生成部は、前記指定データを粗視化する請求項１から１０までのいずれか一項に記載の指定データ生成装置。
【請求項１２】
前記生成部は、前記ロボットの動きに関する時間分解能に合わせて指定データを内挿する内挿部を更に有する請求項１１に記載の指定データ生成装置。
【請求項１３】
前記内挿部は、前記エンドエフェクタの姿勢を指定する前記指定データを、球面四角形補間により内挿する請求項１２に記載の指定データ生成装置。
【請求項１４】
前記内挿部は、前記エンドエフェクタの位置を指定する前記指定データを、スプライン補間により内挿する請求項１２または１３に記載の指定データ生成装置。
【請求項１５】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、
前記生成段階で生成した前記指定データに従って動作する前記エンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも許容範囲を逸脱する期間の前記指定データを時間方向に伸長して補正する補正段階と
を備える指定データ生成方法。
【請求項１６】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成段階と、
前記生成段階で生成した前記指定データに従って動作する前記エンドエフェクタの位置および姿勢の少なくとも一方に予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記エンドエフェクタの位置及び姿勢の少なくとも一方の変化量を低減して補正する補正段階と
を備える指定データ生成方法。
【請求項１７】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、
前記生成ステップで生成した前記指定データに従って動作する前記エンドエフェクタの動きに、予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記指定データを時間方向に伸長して補正する補正ステップと
を備える指定データ生成プログラム。
【請求項１８】
手動で操作された対象物の動きを示す手動データに基づいて、前記対象物の動きを模倣させるロボットのエンドエフェクタの位置および姿勢を時間に対応付けて指定する指定データを生成する生成ステップと、
前記生成ステップで生成した前記指定データに従って動作する前記エンドエフェクタの位置および姿勢の少なくとも一方に予め定められた許容範囲を逸脱する期間が生じた場合に、少なくとも逸脱する期間の前記エンドエフェクタの位置及び姿勢の少なくとも一方の変化量を低減して補正する補正ステップと
を備える指定データ生成プログラム。