(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024143149
(43)【公開日】2024-10-11
(54)【発明の名称】ロボット制御システム
(51)【国際特許分類】
B25J 11/00 20060101AFI20241003BHJP
【FI】
B25J11/00 Z
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023055674
(22)【出願日】2023-03-30
(71)【出願人】
【識別番号】000005326
【氏名又は名称】本田技研工業株式会社
(74)【代理人】
【識別番号】100165179
【弁理士】
【氏名又は名称】田▲崎▼ 聡
(74)【代理人】
【識別番号】100126664
【弁理士】
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】吉川 泰三
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS28
3C707BS10
3C707BS26
3C707HS27
3C707JS07
3C707JU14
3C707KS21
3C707KT01
3C707KT04
3C707KT15
3C707KV01
3C707KV08
3C707KW01
3C707KW03
3C707KX07
3C707LU06
3C707LV15
3C707LV19
(57)【要約】
【課題】操作者がカメラを観ながらロボットと手先を精度良く操作することができるロボット制御システムを提供することを目的とする。
【解決手段】ロボット制御システムは、地面にロボットが接していない空間でロボットを制御するロボット制御システムであって、ロボット本体と、ロボット本体に接続されるアームと、アームに接続されるエンドエフェクタと、エンドエフェクタの操作状況を撮影可能なカメラと、仮想絶対座標系を設定する設定部と、操作者によりカメラ座標系での指令を入力する入力部と、入力部に入力された指令を仮想絶対座標系で制御し、ロボット本体座標系に変換してロボット本体に指令する制御部と、を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
地面にロボットが接していない空間で前記ロボットを制御するロボット制御システムであって、
ロボット本体と、
前記ロボット本体に接続されるアームと、
前記アームに接続されるエンドエフェクタと、
前記エンドエフェクタの操作状況を撮影可能なカメラと、
仮想絶対座標系を設定する設定部と、
操作者によりカメラ座標系での指令を入力する入力部と、
前記入力部に入力された指令を前記仮想絶対座標系で制御し、ロボット本体座標系に変換して前記ロボット本体に指令する制御部と、
を備えるロボット制御システム。
【請求項2】
前記制御部は、
前記ロボットの位置と姿勢を、DVL(Doppler Velocity Log)センサ、Internal pressureセンサ、慣性計測装置、および磁気センサの検出値を用いて推定する、
請求項1に記載のロボット制御システム。
【請求項3】
前記制御部は、前記ロボット本体が移動モードから、作業モードに切り替わる際に前記仮想絶対座標系を設定する、
請求項1または請求項2に記載のロボット制御システム。
【請求項4】
前記仮想絶対座標系における原点である仮想座標原点は、前記ロボット本体の原点、前記カメラのパン軸の位置と異なる位置である、
請求項1または請求項2に記載のロボット制御システム。
【請求項5】
前記設定部は、前記仮想絶対座標系において、前記エンドエフェクタの可動範囲内に、仮想作業座標原点を設定する、
請求項1または請求項2に記載のロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット制御システムに関する。
【背景技術】
【0002】
水中を移動しながら作業を行う装置がある。このような装置は、スラスタ、撮影用のカメラ等を備えている(例えば特許文献1参照)。また、
図20のように、操縦は、例えば船上から行い、例えば操縦室にいる操作者と、水中で作業を行う装置と、装置を制御する制御装置とを接続するケーブルを操作するテザーマンとの間で情報交換を行いつつ行われる。操縦室の操作者は、画像表示装置に表示される画像を見ながら、カメラ画像基準でコントローラを操作して操作入力を決定し、テザーマンは甲板上から船基準でロボットの進行方向を操作者に教示している。
図20は、従来技術における船上での作業例を示す図である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、船の向きは潮の流れで常に動いているため、例えば5分前は船頭に対して時計3時方向が、海中の作業空間では対象物に正面の方向であったのに、今は横方向になっているといった事象が起こり得る。また、水中で作業を行う装置のカメラから目標物を一度見失ってしまうと、操作者は、水中で作業を行う装置の進行方向の入力判断が難しくなる。このため、従来技術では、操作者は高度な操縦技術(空間把握能力)が要求されるという課題があった。
【0005】
本発明は、上記の問題点に鑑みてなされたものであって、操作者がカメラを観ながらロボットと手先を精度良く操作することができるロボット制御システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
(1)上記目的を達成するため、本発明の一態様に係るロボット制御システムは、地面にロボットが接していない空間で前記ロボットを制御するロボット制御システムであって、ロボット本体と、前記ロボット本体に接続されるアームと、前記アームに接続されるエンドエフェクタと、前記エンドエフェクタの操作状況を撮影可能なカメラと、仮想絶対座標系を設定する設定部と、操作者によりカメラ座標系での指令を入力する入力部と、前記入力部に入力された指令を前記仮想絶対座標系で制御し、ロボット本体座標系に変換して前記ロボット本体に指令する制御部と、を備えるロボット制御システムである。
【0007】
(2)(1)のロボット制御システムにおいて、前記制御部は、前記ロボットの位置と姿勢を、DVL(Doppler Velocity Log)センサ、Internal pressureセンサ、慣性計測装置、および磁気センサの検出値を用いて推定するようにしてもよい。
【0008】
(3)(1)または(2)のロボット制御システムにおいて、前記制御部は、前記ロボット本体が移動モードから、作業モードに切り替わる際に前記仮想絶対座標系を設定するようにしてもよい。
【0009】
(4)(1)から(3)のうちのいずれか1つのロボット制御システムにおいて、前記仮想絶対座標系における原点である仮想座標原点は、前記ロボット本体の原点、前記カメラのパン軸の位置と異なる位置であるようにしてもよい。
【0010】
(5)(1)から(3)のうちのいずれか1つのロボット制御システムにおいて、前記設定部は、前記仮想絶対座標系において、前記エンドエフェクタの可動範囲内に、仮想作業座標原点を設定するようにしてもよい。
【発明の効果】
【0011】
(1)~(5)によれば、操作者がカメラを観ながらロボットと手先を精度良く操作することができる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に係るロボット制御システムを上から見た外観例と概略構成例を示す図である。
【
図2】実施形態に係るロボット制御システムを横から見た外観例を示す図である。
【
図3】実施形態に係るロボット制御システムの構成例を示す図である。
【
図4】絶対座標系、仮想絶対座標系、ロボットの座標系と、ロボット本体と手先の位置・姿勢位置を示す図である。
【
図5】仮想座標系の初期状態で、ロボットの可動範囲とロボットの非可動範囲例を示す図である。
【
図6】カメラ座標系での指令の座標変換を説明するための図である。
【
図7】実施形態に係るロボット制御システムの処理手順のフローチャートである。
【
図8】ロボット本体の前後の移動(x軸方向)指令を決定する拘束を説明するための図である。
【
図9】ロボット本体の左右の移動(y軸方向)指令を決定する拘束を説明するための図である。
【
図10】ロボット本体の上下の移動(z軸方向)指令を決定する拘束を説明するための図である。
【
図11】ロボット本体の回転移動(z軸回転)指令を決定する拘束を説明するための図である。
【
図12】回転中心がロボット本体の原点の場合の例を示す図である。
【
図13】回転中心がカメラのパン軸の場合の例を示す図である。
【
図14】回転中心が仮想的作業位置の場合の例を示す図である。
【
図15】回転中心が左アームの手先位置の場合の例を示す図である。
【
図16】ロボット本体の原点を回転中心に回転させた場合の撮影範囲がズレる例を示す図である。
【
図17】カメラのパン軸を回転中心に回転させた場合の撮影範囲例を示す図である。
【
図18】仮想的作業位置を設定しロボット本体の原点を中心に回転させた場合に撮影範囲がズレる例を示す図である。
【
図19】仮想的作業位置を中心に回転させた場合の視野の例を示す図である。
【
図20】従来技術における船上での作業例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明に用いる図面では、各部材を認識可能な大きさとするため、各部材の縮尺を適宜変更している。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「XXに基づいて」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づいて」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
【0014】
(ロボット制御システムの外観例)
まず、ロボット制御システム1の外観例と概略構成例を説明する。なお、以下の各例では、ロボットの例として、水中で作業を行う水中ロボットまたは水中ドローンの例を説明するが、ロボットの作業空間はこれに限らない。ロボットの作業空間は、ロボット本体101が地面等に接していない空間、例えば空中や宇宙空間等であってもよい。また、実施形態において、ロボット本体を「ロボット」ともいう。
【0015】
図1は、本実施形態に係るロボット制御システムを上から見た外観例と概略構成例を示す図である。
図2は、本実施形態に係るロボット制御システムを横から見た外観例を示す図である。
ロボット制御システム1は、例えば、ロボット本体101と、ロボット本体101に接続されるアーム102(102L、102R)と、カメラ107と、スラスタ111を備える。なお、アーム102は1つ以上備えていればよい。
アーム原点Pa(Pal、Par)は、アーム102がロボット本体101に接続される点付近に設定する。アーム原点は、アーム102の肩側の任意の箇所であってもよい。
符号Xh(Xhl、Xhr)は、アームの先端部の位置(アーム先端位置)を示している。
【0016】
図1、
図2のように、アーム102は、いくつかのリンクが接続され、関節を備える。またアームの先端には、例えば、指部を備えるエンドエフェクタを備えている。
なお、
図1、
図2に示した外観は一例であり、これに限らない。また、アームの取り付け位置は、先端に限らず左右等であってもよい。
【0017】
(ロボット制御システムの構成例)
図3は、本実施形態に係るロボット制御システムの構成例を示す図である。
図3のように、ロボット制御システム1は、例えば、ロボット制御装置100と、操作部200を備える。
【0018】
ロボット制御装置100は、ロボット本体101と、アーム102と、エンドエフェクタ103と、駆動部104と、アームセンサ105と、設定部106と、カメラ107と、カメラ駆動部108と、カメラセンサ109と、照明110と、スラスタ111と、スラスタ駆動部112と、制御部113と、記憶部114と、通信部116と、センサ117を備える。
【0019】
操作部200は、例えば、入力部201と、画像表示部202と、通信部203を備える。
【0020】
操作部200は、例えば船上で操作者が使用する。なお、操作部200とロボット制御装置100とは、例えば互いに有線で接続されている。
入力部201は、操作者がロボット本体101やアーム102に対する操作指令を、入力する装置である。入力部201は、例えば、ハンドル、ジョイスティック、タッチパネルセンサ等である。なお、操作指令は、アーム102やエンドエフェクタ103に対する指示であってもよく、ロボット本体101に対する指示であってもよい。
画像表示部202は、カメラ107が撮影した画像や、ロボット本体101やアーム102の状態等をロボット制御装置100から取得して表示する。
通信部203は、ロボット制御装置100と情報の送受信を行う。
【0021】
ロボット本体101は、
図1において、例えばアーム102以外の部分である。ロボット本体101に、例えば、アーム102と、エンドエフェクタ103と、駆動部104と、設定部106と、カメラ107と、カメラ駆動部108と、カメラセンサ109と、照明110と、スラスタ111と、スラスタ駆動部112と、制御部113と、記憶部114と、通信部116と、センサ117が取り付けられている。なお、ロボット本体及び各機能部への電源供給は、ロボット制御装置100が電源を備えていてもよく、例えば船上からケーブルで電源を供給するようにしてもよい。
【0022】
アーム102は、例えば
図1のように関節を備える。アームの先端には、例えばエンドエフェクタ103が取り付けられている。関節それぞれには、例えばアクチュエータとエンコーダ(アームセンサ105)が取り付けられている。
【0023】
エンドエフェクタ103は、少なくとも2つの指部を備える。エンドエフェクタ103は、3つ以上の指部を備えていてもよく、グリッパー等であってもよい。また、エンドエフェクタ103の指先には、アームセンサ105(例えば6軸センサ、触覚センサ等)が取り付けられていてもよい。
【0024】
駆動部104は、制御指令に基づいてアーム102とエンドエフェクタ103を駆動する。駆動部104は、例えば、アクチュエータと駆動回路を備える。
【0025】
アームセンサ105は、例えば、アーム102とエンドエフェクタ103の関節に取り付けられているエンコーダ、手先に取り付けられている6軸センサや触覚センサ等である。
【0026】
設定部106は、仮想座標原点、仮想作業座標原点を含む仮想絶対座標系を設定する。なお、仮想座標原点、仮想作業座標原点については後述する。
【0027】
カメラ107は、例えば、CMOS(Complementary Metal Oxide Semiconductor)撮像素子による撮影装置、またはCCD(Charge Coupled Device)撮像素子による撮影装置である。なお、カメラ107は、深度情報Dも得られるRGB(赤緑青)Dカメラであってもよい、
【0028】
カメラ駆動部108は、制御指令に含まれるカメラ制御指示に基づいて、カメラ107を例えばパン軸方向に傾けさせる。カメラ駆動部108は、例えば、アクチュエータと駆動回路を備える。
【0029】
カメラセンサ109は、カメラ107のパン軸の傾きを検出する。
【0030】
照明110は、制御指令に含まれる照明制御指示に基づいて、照明のオン状態とオフ状態、照明の照度、照明の傾き等を変更可能な装置である。
【0031】
スラスタ111は、推進力を発生させる装置であり、例えばプロペラとモータ等である。
【0032】
スラスタ駆動部112は、制御指令に含まれるスラスタ制御指示に基づいて、スラスタ111を駆動する。スラスタ駆動部112は、例えば駆動回路を備える。
【0033】
制御部113は、制御指令に基づいて、例えば、ロボット本体101、アーム102、カメラ107、スラスタ111等の動作を制御する。なお、制御部113は、入力部201に入力された指制御指令を仮想絶対座標系で制御して、ロボット本体座標系に変換してロボット本体101に指令する。
【0034】
記憶部114は、ロボット制御装置100の制御に必要なプログラム、閾値、所定値、数式等を記憶する。記憶部114は、例えばロボット本体101やアーム102の三次元モデルを記憶する。
【0035】
通信部116は、操作部200と情報の送受信を行う。
【0036】
センサ117は、例えば、DVL(Doppler Velocity Log)センサ、Internal pressure(内圧)センサ、慣性計測装置(IMU:Inertial Measurement Unit)、磁気センサ等である。
【0037】
(センサの役割)
本実施形態では、以下のセンサによって、各情報を取得し、取得した情報に基づいてロボット本体101の位置と姿勢を推定する。なお、航行状態に応じて、以下のようにセンサを使い分ける。
・定高度航行(海底面からの高さを一定にする航行)のためのセンサとして、DVLセンサを用いる。検出値はz軸方向(高さ方向、深さ方向)の情報である。
・定深度航行(水面からの深度を一定にする。
航行)のためのセンサとして、Internal pressure(圧力)センサを用いる。検出値はz軸方向(高さ方向、深さ方向)の情報である。
・方向維持機能のセンサとして磁気センサ、DVLセンサを用いる。対象はz軸方向の回転θzである。この場合は、地磁気センサによって北からの回転を検出する。
・位置維持機能のためのセンサとして、慣性計測装置とDVLセンサを用いる。対象はx軸方向とy軸方向の情報である。この場合は、慣性計測装置の積分値を、例えば10Hz程度で積分してドリフト分を補正する。
・姿勢の位置を検出するセンサとして、慣性計測装置とDVLセンサを用いる。対象はx軸方向の回転θxとy軸方向の回転θyである。
【0038】
(座標系、原点)
次に、仮想絶対座標系における作業位置の定義と手先の位置・姿勢を説明する。
図4は、絶対座標系、仮想絶対座標系、ロボットの座標系と、ロボット本体と手先の位置・姿勢位置を示す図である。なお、仮想絶対座標系は任意のタイミングでリセット可能であり、任意のタイミングで仮想絶対座標系をリセットする場合、初期状態において仮想絶対座標系とロボット座標系は一致する。その際、仮想原点位置を元にロボットの可動可能エリアを3次元的に定義する。稼働エリアg1は、例えば
図4のようにXYZ方向の直方体であってもよく、3次元的なポリゴン形状であってもよい。ロボット本体101は、可動範囲内において操作者からの指令値に追従するものとした。なお、稼働エリアg1内外の判断は、ロボット本体101の位置で判断しても良い。また、ロボットの3次元的なポリゴン形状から可動範囲内外を判断しても良い。ロボット本体のアーム102の手先の位置と姿勢は、仮想絶対座標系において(x,y,z,θx,θy,θz)で表せる。また、ロボット本体の位置と姿勢は仮想絶対座標系において(xr,yr,zr,θrx,θry,θrz)で表せる。なお、
図4では、エンドエフェクタ103、カメラ107を省略している。
【0039】
また、点p11は、ロボット起動時のグローバル座標系の原点である。点p12は、仮想絶対座標の仮想原点の位置である。点p13はロボット本体101の原点であり、点p13aは移動(回転)前のロボット本体101の原点位置、点p13bは移動(回転)後のロボット本体101の原点位置である。矢印g2はロボット本体101の原点の移動を示す。点p14はロボット本体101にアーム102が取り付けられているアーム原点である。点p14Laは移動(回転)前の左のアーム原点位置、点p14Raは移動(回転)前の右のアーム原点位置、点p14Lbは移動(回転)後の左のアーム原点位置、点p14Rbは移動(回転)後の右のアーム原点位置である。点p15は手先位置であり、点p15Lは左の手先位置、点p15Rは右の手先位置である。
【0040】
仮想原点位置から見たロボットの現在位置と姿勢を変換行列を用いて求める。また、カメラ107のパン軸の位置、手先の位置等を、ロボットの原点位置から見た相対的な現在位置や姿勢として、変換行列を用いて求める。なお、
図4のように、ロボット本体101の位置と姿勢は、仮想絶対座標の原点からみた相対的なロボットの現在位置と姿勢である。また、カメラ107のパン軸の位置と姿勢は、ロボット座標原点(例えばロボット本体101の中心位置)から見た相対的な現在位置と姿勢である。また、
図4のように、アーム101やエンドエフェクタ103を動作させロボット本体101の移動(回転)の際、ロボット制御装置100は、手先位置p15がズレないように制御する。
【0041】
カメラ座標系での手先の位置姿勢の変化指示をδXhandCAMERA[RL]で表す。Rは右、Lは左を表す。
ロボット座標系での手先の位置姿勢の変化は、上述した変換行列を用いると次式(1)となる。式(1)において行列Tは4×4同時変換行列である。姿勢はEuler角、Quaternionであっても良いが、同時変換行列に変換して(1)以降の処理を行う。なお、TCAMERA→ROVは、カメラ座標系からロボット座標系への同時変換行列である。なお、カメラ座標系からロボットの絶対座標系への変換行列は、例えばシミュレーションによって予め求めて記憶部114に記憶させておく。また、カメラ座標系からロボットの絶対座標系への変換行列は、ロボット座標系原点からのカメラ座標系原点の位置とカメラ107のパン軸回転角度により連続的に求めることができる。なお、ロボット座標系からカメラ座標系への変換は、PAN軸、TILT軸、ROLE軸があってもよい。
また、仮想絶対座標系の仮想原点p12は、(Xp0,Yp0,Zp0,Xθ0,Yθ0,Zθ0)で表される。設定部106は、仮想座標原点を任意に位置に設定し、任意の方向、例えば鎖線g41の方向をx軸方向に決定する。なお、仮想座標原点は、ロボット本体101の原点、カメラ107のパン軸の位置と異なる位置である。また、ロボットの絶対位置は、(Xact
p,Yact
p,Zact
p,Xact
θ,Yact
θ,Zact
θ)で表される。
【0042】
【0043】
ロボット座標系でのロボットの位置姿勢の指令の変化は、上述した変換行列を用いると次式(2)となる。
【数2】
【0044】
ロボット起動時に、絶対座標系の位置と姿勢が設定される。例えば、北方向がX軸正方向として設定され、陸上で起動した位置が絶対座標系の原点位置として設定される。この場合は、実際に着水して運用する際の座標原点と大きく異なる。このため、本実施形態では、ロボット着水時、あるいは任意のタイミングで仮想絶対座標系を定義する。その際、ロボットの可動範囲を定義することでロボットが想定範囲外に行かないように設定する。任意のタイミングで仮想絶対座標系をリセットする場合は、初期状態において仮想絶対座標系とロボット座標系が一致する。
【0045】
ロボットは、操作者からの指令に応じて、仮想絶対座標系原点から移動する。操作者からの指令がゼロの場合は、ロボットは現在位置を維持するように動作する。
操作者が船上で画像表示部202によって見ているカメラ107で撮影された画像は、カメラ座標系である。操作者は、カメラ座標系でロボットの位置とアームの位置の指令を行う。カメラ座標系での指令値は、変換行列を用いてロボット本体の座標系に変換される。ロボットの位置と姿勢、アームの位置は、仮想絶対座標系の位置と姿勢に変換され、制御される。そして、ロボット制御装置100は、ロボット本体の仮想絶対座標系での位置が変化しても、アームの仮想絶対座標系での位置が動かないように制御を行う。
【0046】
仮想絶対座標系でのロボットの位置姿勢の変化は、次式(3)で表せる。なお、TROV→VIRTUALは、ロボット座標系から仮想絶対座標系への同時変換行列である。
【0047】
【0048】
仮想絶対座標系での手先の位置姿勢の変化は、次式(4)で表せる。
【0049】
【0050】
グローバル座標系での手先の位置姿勢の変化は、次式(5)で表せる。なお、TVIRTUAL→GLOBALは、仮想絶対座標系からグローバル座標系への同時変換行列である。
【0051】
【0052】
グローバル座標系でのロボットの位置姿勢の指令の変化は、次式(6)で表せる。
【0053】
【0054】
図5は、仮想座標系の初期状態で、ロボットの可動範囲とロボットの非可動範囲例を示す図である。符号g10の図は、可動(移動)範囲例と非可動範囲例を示す。符号g20の図は、可動範囲例、非可動範囲それぞれが球の例を示している。符号g1はロボットの可動範囲、符号g3はロボットの非可動範囲を表す。
図5の符号g10、g20のように、ロボットの可動範囲g1、非可動範囲g3それぞれは、例えば直方体、直方体、球等の範囲である。点g5は初期の仮想座標系における原点である。符号20の図において、矢印g21~g23は、仮想座標系における各軸方向を示している。可動範囲の直方体の頂点の各座標は、P1(x1,y1,z1)、P2(x2,y2,z2)、P3(x3,s4,z4)、P4(x4,y4,z4)、P5(x5,y5,z5)、P6(x6,y6,z6)、P7(x7,y7,z7)、P8(x8,y8,z8)である。本実施形態では、仮想座標系の初期状態で、ロボットに対して、この可動範囲を設定することで、ロボットの可動(移動)範囲を制限する。すなわち、仮想絶対座標系は、このようにロボットの可動(移動)範囲が制限された空間における座標系である。
【0055】
図6は、カメラ座標系での指令の座標変換を説明するための図である。
符号p16は、カメラ107のパン軸の位置である。符号g31は、カメラ107の撮影範囲例である。矢印g34は、カメラ座標系での移動方向を示している。カメラ座標系での矢印g34のような横方向への移動指令は、ロボット座標系において前後と左右方向への移動指令として変換される。
点p17は、仮想作業座標原点(X
w,Y
w,Z
w,X
θw,Y
θw,Z
θw)である。設定部106は、例えばエンドエフェクタ103の作業範囲でカメラ107の撮影範囲内に、仮想絶対座標系における仮想作業座標原点を設定する。矢印g32、g33、g34は、ロボット座標系での移動方向への変換を示している。矢印g32、g33は、矢印g34の各方向の成分を表している。なお、仮想作業座標原点は、操作者が画像表示部202に表示された画像を視認して決定するようにしてもよい。
【0056】
制御部113は、
図6のようにカメラ座標系での制御指令をロボットの絶対座標系に変換して、ロボット本体101に指令する。なお、カメラ座標系からロボットの絶対座標系への変換行列は、ロボット座標系の原点からのカメラ座標系の原点の位置とカメラの回転角度により連続的に求められる制御部113は、ロボット本体101の位置と姿勢を、仮想絶対座標系で制御する。なお、制御部113は、次式(7)、(8)により、仮想絶対座標系でのロボット本体101の移動に対して、手先位置を仮想絶対座標系で動かないように制御を行う。
【0057】
【0058】
【0059】
なお、式(7)、(8)において、Rは右手先、Lは左手先である。また、modifiedは変換を示している。
【0060】
(処理手順)
次に、ロボット制御システムの処理手順例を説明する。
図7は、本実施形態に係るロボット制御システムの処理手順のフローチャートである。なお、以下の処理は、ロボットが作業対象物体に近づいて、作業を行う前提である。
【0061】
(ステップS1)設定部106は、作業を開始する前に仮想絶対座標系を設定する。
【0062】
(ステップS2)制御部113は、作業中、ロボット本体101の仮想絶対座標系における位置と姿勢を、センサ検出値を用いて推定する。
【0063】
(ステップS3)制御部113は、操作者がカメラ座標系でロボット本体101やエンドエフェクタ103の手先を操作した制御指示を取得する。
【0064】
(ステップS4)制御部113は、取得したカメラ座標系での制御指令に基づいて、ロボット本体101の位置と姿勢を、仮想絶対座標系で制御し、ロボット座標系に変換してロボットに指令する。
【0065】
すなわち、ロボット本体101は、ロボット座標系内で入力部201によって入力された結果に応じて、ロボット本体101を例えば前後左右に動かし、これによるズレを仮想絶対座標系を用いて補正している。なお、仮想絶対座標系の原点は、操作者が決定してもよい。
【0066】
ロボット制御システム1は、ステップS2~S4の処理を作業終了まで繰り返す。
なお、これらの処理は、ロボットの移動時から、アーム102やエンドエフェクタ103を用いた操作に切り替わった後に行う。
【0067】
以上の処理によって、本実施形態によれば、操作者がカメラ107によって撮影された画像を観ながら、ロボット本体101と手先を、ロボット本体101や手先の位置が変化しても変化しない仮想絶対座標系で操作できる。これにより、本実施形態によれば、操作者が作業操作中にカメラ107の画角から対象物を見失うリスクを軽減できるので、操作者がカメラを観ながらロボットと手先を精度良く操作することができる。
【0068】
(処理適用例)
上述した仮想絶対座標系を用いて、例えば以下のように処理を行う。この例では、操作者は、カメラ座標でエンドエフェクタ103に対して制御指示を行う。水中灯での作業の場合、アーム102やエンドエフェクタ103が残土、左右、上下等に移動すると、ロボット本体101が影響を受けるため、アーム102等の移動に応じて、ロボット本体101の制御を制御部113が以下のように拘束して行う。
なお、以下のような処理において、制御部113は、アーム102がロボット本体101に接続される点近傍に設定されるアーム原点と、アームの先端であるアーム先端部の位置をそれぞれ取得する。そして制御部113は、アーム原点とアーム先端部の間に設定される拘束モデルを定義し、アーム原点とアーム先端部の距離の変化に応じて発生する拘束力を拘束モデルから算出し、拘束力の値から前記ロボット本体の位置指令を算出する。
【0069】
(1)第1の拘束条件(アーム102を前後に伸び縮みさせた場合のロボット本体101の前後の移動(x軸方向)指令を決定する拘束)
次に、ロボット本体101の前後の移動(x軸方向)指令を決定する拘束について、さらに説明する。
図8は、ロボット本体の前後の移動(x軸方向)指令を決定する拘束を説明するための図である。
この場合は、アーム102の原点と手先との間に拘束モデルを設定する。なお、拘束モデルは、例えば筋肉モデルまたはポテンシャル法によるモデルである。
【0070】
符号g100、g120の図は、アーム102をロボット本体101に近づけ縮めた状態を示している。符号g110、g130の図は、アーム102をロボット本体101から遠ざけて伸ばした状態を示している。
符号g122は、アーム102が縮んだ状態g121のx軸方向の拘束力を抽出した結果を示す。符号132は、アーム102が伸びた状態g131のx軸方向の拘束力を抽出した結果を示す。
【0071】
符号g122、g132、さらに不感帯g141を用いて、第1の拘束条件であるx軸方向の拘束力は、符号g140のように表される。なお、不感帯では、ロボット本体101が動かないとする。なお、曲線の部分g142とg143が、拘束力が働く領域である。曲線の理由は、筋肉モデルの場合、バネとダンパーで表せるため直線的に動作できないためであるのと、曲線の方が動作を自然にできるあるためである。また、拘束力が曲線の理由は、入力部201が例えばゲームコントローラのようにボタンやジョイスティックで構成されるため、拘束力を挑戦としてしまうと、わずかな操作でも急激な動作をしてしまうためでもある。
【0072】
これにより、例えば以下のように制御される。
I.右アーム102Rが伸展、左アーム102Lが不感帯の状態;ロボット本体101が前進
II.右アーム102Rが不感帯、左アーム102Lが伸展の状態;ロボット本体101が前進
III.左右のアーム102が伸展の状態;ロボット本体101が前進大
IV.右アーム102Rが収縮、左アーム102Lが不感帯の状態;ロボット本体101が後進
V.右アーム102Rが不感帯、左アーム102Lが収縮;ロボット本体101が後進
VI.左右のアーム102が収縮;ロボット本体101が後進大
【0073】
(2)第2の拘束条件(ロボット本体101を左右の移動(y軸方向)指令を決定する拘束)
次に、ロボット本体101の左右の移動(y軸方向)指令を決定する拘束について、さらに説明する。
図9は、ロボット本体の左右の移動(y軸方向)指令を決定する拘束を説明するための図である。
この場合は、アーム102の原点と手先位置との間に拘束モデルを設定する。
【0074】
符号g200の図は、アーム102を左側に移動させた状態を示している。符号g21の図は、アーム102を右側に移動させた状態を示している。
符号g202は、アーム102が左に移動した状態g201のy軸方向の拘束力を抽出した結果を示す。符号g212は、アーム102が右に移動した状態g211のy軸方向の拘束力を抽出した結果を示す。
【0075】
符号g202、g212、不感帯g221を用いて、第2の拘束条件であるx軸方向の拘束力は、符号g220のように表される。なお、不感帯では、ロボット本体101が動かないとする。
【0076】
これにより、例えば以下のように制御される。
I.右アーム102Rが右に移動、左アーム102Lが不感帯の状態;ロボット本体101が右に移動
II.右アーム102Rが不感帯、左アーム102Lが左に移動の状態;ロボット本体101が左に移動
III.左右アーム102が肩の間の状態;ロボット本体101がy軸方向で停止
IV. 右アーム102Rが右に移動、左アーム102Lが左に移動の状態;左右の拘束力の大小に応じてロボット本体101の左右いずれかの移動が決まる
【0077】
(3)第3の拘束条件(ロボット本体101を上下の移動(z軸方向)指令を決定する拘束)
次に、ロボット本体101の上下の移動(z軸方向)指令を決定する拘束について、さらに説明する。
図10は、ロボット本体の上下の移動(z軸方向)指令を決定する拘束を説明するための図である。
この場合は、アーム102の原点と手先位置との間に拘束モデルを設定する。
【0078】
符号g300の図は、アーム102を上側に移動させた状態を示している。符号g310の図は、アーム102を下側に移動させた状態を示している。
符号g302は、アーム102が上側に移動した状態g301のz軸方向の拘束力を抽出した結果を示す。符号g312は、アーム102が下側に移動した状態g311のz軸方向の拘束力を抽出した結果を示す。
【0079】
符号g302、g312、不感帯g321を用いて、第3の拘束条件であるz軸方向の拘束力は、符号g320のように表される。なお、不感帯では、ロボット本体101が動かないとする。
【0080】
なお、制御部113は、ロボット本体101への指令を、左右の拘束力を足してコンプライアンス制御で変化分を指令とする。
【0081】
これにより、例えば以下のように制御される。
I.右アーム102Rが上に移動、左アーム102Lが不感帯の状態;ロボット本体101が上方向に移動
II.右アーム102Rが不感帯、左アーム102Lが上に移動の状態;ロボット本体101が上方向に移動
III.左右アーム102が上に移動の状態;ロボット本体101が上方向に移動大
IV.左右アーム102が不感帯の状態;ロボット本体101が静止
V.右アーム102Rが下、左アーム102Lが不感帯の状態;ロボット本体101が下方向に移動
VI.右アーム102Rが不感帯、左アーム102Lが下の状態;ロボット本体101が下方向に移動
VII.左右アーム102が下の状態;ロボット本体101が下方向に移動大
【0082】
(4)第4の拘束条件(ロボット本体101の回転(θZ)指令を決定する拘束状態である。)
次に、ロボット本体101の回転移動(z軸回転)指令を決定する拘束について、さらに説明する。
図11は、ロボット本体の回転移動(z軸回転)指令を決定する拘束を説明するための図である。
【0083】
符号g400の図は、アーム102を回転移動させた状態を示している。
符号g401は、アーム102が一番短い状態を表し、符号g402は、アーム102が一番長い状態(伸ばしきった状態)を表している。
【0084】
符号g401、g402、不感帯g411を用いて、第4の拘束条件である回転方向の拘束力は、符号g410のように表される。ここで、不感帯の開始位置をXcont_minとし、不感帯の終了位置をXcont_maxとする。
【0085】
これにより、例えば以下のように制御される。
I.右アーム102Rが伸展、左アーム102Lが収縮の状態;ロボット本体101が反時計回りに回転
II.右アーム102Rが収縮、左アーム102Lが伸展の状態;ロボット本体101が時計回りに回転
【0086】
なお、以下はオプション扱いであってもよい。
III.右アーム102Rが伸展、左アーム102Lが不感帯の状態;ロボット本体101が反時計回りに回転
IV.右アーム102Rが不感帯、左アーム102Lが伸展の状態;ロボット本体101が時計回りに回転
【0087】
(第4の拘束条件の第1変形例)
以下では、目的に応じて回転中心の設定を選択する例を説明する。
図12は、回転中心がロボット本体の原点の場合の例を示す図である。
点g501は、ロボット本体の原点である。四角g502は、回転前のロボット本体101の外観の姿勢である。四角g503は、回転後のロボット本体101の外観の姿勢である。
矢印g511は、ロボット本体101の原点における回転前のx軸方向の成分である。矢印g512は、ロボット本体101の原点における回転前のy軸方向の成分である。
矢印g513は、ロボット本体101の原点における回転後のx軸方向の成分である。矢印g514は、ロボット本体101の原点における回転後のy軸方向の成分である。
【0088】
この場合のコマンドは、成分の大きさの変化がなく回転方向のみ変化する。
このため、x軸方向のコマンドXcmdはXcurrent(現在値と同じ)、y軸方向のコマンドYcmdはYcurrent(現在値と同じ)である。
【0089】
図13は、回転中心がカメラのパン軸の場合の例を示す図である。
点g521は、カメラ107のパン軸である。点g522は、回転前のロボット本体の原点である。点g523は、回転後のロボット本体の原点である。四角g524は、回転前のロボット本体101の外観の姿勢である。四角g525は、回転後のロボット本体101の外観の姿勢である。
【0090】
矢印g531は、ロボット本体101の原点における回転前のx軸方向の成分である。矢印g532は、ロボット本体101の原点における回転前のy軸方向の成分である。
矢印g535は、ロボット本体101の原点における回転後のx軸方向の成分である。矢印g536は、ロボット本体101の原点における回転後のy軸方向の成分である。
【0091】
矢印g533は、カメラ107のパン軸における回転前のx軸方向の成分である。矢印g534は、カメラ107のパン軸の原点における回転前のy軸方向の成分である。
矢印g537は、カメラ107のパン軸における回転後のx軸方向の成分である。矢印g538は、カメラ107のパン軸における回転後のy軸方向の成分である。
【0092】
カメラ107のパン軸とロボット本体101とのx軸方向の距離をDcx、回転成分の角度をθとすると、x軸方向のコマンドXcmdはXcurrent+Dcx*(1-cos(θ))、y軸方向のコマンドYcmdはYcurrent+Dcx*sin(θ)である。
【0093】
図14は、回転中心が仮想的作業位置の場合の例を示す図である。
点g541は、仮想的作業位置である。点g542は、回転前のロボット本体の原点である。点g543は、回転後のロボット本体の原点である。四角g544は、回転前のロボット本体101の外観の姿勢である。四角g545は、回転後のロボット本体101の外観の姿勢である。
【0094】
矢印g551は、ロボット本体101の原点における回転前のx軸方向の成分である。矢印g552は、ロボット本体101の原点における回転前のy軸方向の成分である。
矢印g555は、ロボット本体101の原点における回転後のx軸方向の成分である。矢印g556は、ロボット本体101の原点における回転後のy軸方向の成分である。
【0095】
矢印g553は、仮想的作業位置における回転前のx軸方向の成分である。矢印g554は、仮想的作業位置における回転前のy軸方向の成分である。
矢印g557は、仮想的作業位置における回転後のx軸方向の成分である。矢印g558は、仮想的作業位置における回転後のy軸方向の成分である。
【0096】
仮想的作業位置とロボット本体101とのx軸方向の距離をDwx、回転成分の角度をθとすると、x軸方向のコマンドXcmdはXcurrent+Dwx*(1-cos(θ))、y軸方向のコマンドYcmdはYcurrent+Dwx*sin(θ)である。
【0097】
図15は、回転中心が左アームの手先位置の場合の例を示す図である。
点g561は、左アーム102Lの手先位置である。点g562は、回転前のロボット本体の原点である。点g563は、回転後のロボット本体の原点である。四角g564は、回転前のロボット本体101の外観の姿勢である。四角g565は、回転後のロボット本体101の外観の姿勢である。
【0098】
矢印g571は、ロボット本体101の原点における回転前のx軸方向の成分である。矢印g572は、ロボット本体101の原点における回転前のy軸方向の成分である。
矢印g575は、ロボット本体101の原点における回転後のx軸方向の成分である。矢印g576は、ロボット本体101の原点における回転後のy軸方向の成分である。
【0099】
矢印g573は、左アーム102Lの手先位置における回転前のx軸方向の成分である。矢印g574は、左アーム102Lの手先位置における回転前のy軸方向の成分である。
矢印g577は、左アーム102Lの手先位置における回転後のx軸方向の成分である。矢印g578は、左アーム102Lの手先位置における回転後のy軸方向の成分である。
【0100】
左アーム102Lの手先位置とロボット本体101とのx軸方向の距離をDhx、回転成分の角度をθとすると、x軸方向のコマンドXcmdはXcurrent+Dhx*(1-cos(θ))、y軸方向のコマンドYcmdはYcurrent+Dhx*sin(θ)である。
【0101】
(第4の拘束条件の第2変形例)
ロボット本体101にカメラ107が取り付けられている場合は、
図16のように、アームの移動に応じて、ロボット本体101の原点g601を回転中心に回転させると撮影範囲が符号g602から符号g603のようにズレる。なお、四角g604は、回転前のロボット本体101の外観の姿勢である。四角g605は、回転後のロボット本体101の外観の姿勢である。
図16は、ロボット本体の原点を回転中心に回転させた場合の撮影範囲がズレる例を示す図である。
【0102】
このため、撮影中の制御の場合は、
図17のようにカメラ107のパン軸g621を中心に回転するようにする。
図17は、カメラのパン軸を回転中心に回転させた場合の撮影範囲例を示す図である。点g622は、回転前のロボット本体101の原点位置である。点g623は、回転後のロボット本体101の原点位置である。符号g624は、回転前後の撮影範囲である。四角g625は、回転前のロボット本体101の外観の姿勢である。四角g626は、回転後のロボット本体101の外観の姿勢である。
【0103】
第2変形例では、ロボット本体101の原点中心で回転させた場合に撮影範囲がズレる例を説明したが、
図18のように仮想的作業位置g642を設定しロボット本体101の原点g641を中心に回転させた場合に撮影範囲が符号g643から符号g644のようにズレる。
図18は、仮想的作業位置を設定しロボット本体の原点を中心に回転させた場合に撮影範囲がズレる例を示す図である。
【0104】
このような場合は、
図19のように仮想的作業位置g661を中心に回転させることで、符号g664から符号g665のように視野の変化を低減することができる。点g662は、回転前のロボット本体101の原点位置である。点g663は、回転後のロボット本体101の原点位置である。
図19は、仮想的作業位置を中心に回転させた場合の視野の例を示す図である。
なお、x軸方向のコマンドXcmdはXcurrent+Dwx*(1-cos(θ))、y軸方向のコマンドYcmdはYcurrent+Dwx*sin(θ)である。
【0105】
なお、
図16~
図19を用いて説明した例は一例であり、用途に応じて回転中心を変更するようにしてもよい。
【0106】
なお、本発明におけるロボット制御装置100の機能の全てまたは一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりロボット制御装置100が行う処理の全てまたは一部を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0107】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0108】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形および置換を加えることができる。
【符号の説明】
【0109】
1…ロボット制御システム、100…ロボット制御装置、200…操作部、101…ロボット本体、102,102L,102R…アーム、103…エンドエフェクタ、104…駆動部、105…アームセンサ、106…設定部、107…カメラ、108…カメラ駆動部、109…カメラセンサ、110…照明、111…スラスタ、112…スラスタ駆動部、113…制御部、114…記憶部、116…通信部、117…センサ、201…入力部、202…画像表示部、203…通信部