(57)【要約】【課題】可動部を用いたロボットの動作を適切に実行させる。【解決手段】ロボット制御装置１０は、左アーム１２と右アーム１１とを駆動して所定動作を実行するように構成されたロボット１を制御するための制御装置であって、ロボット１とロボット１の周囲の障害物との相対的な位置関係を表す位置情報を距離センサ１４により取得する位置情報取得手段と、所定動作の意味が損なわれるのを抑えながら、ロボット１による所定動作の実行に伴う障害物への可動部の接触を回避するように、所定動作の実行を制御する制御手段と、を備える。【選択図】図１
2020055066.tif 000002
【特許請求の範囲】
【請求項１】
可動部を駆動して所定動作を実行するように構成されたロボットを制御するための制御装置であって、
前記ロボットと当該ロボットの周囲の障害物との相対的な位置関係を表す位置情報を取得する位置情報取得手段と、
前記取得された位置情報に応じて、前記所定動作の意味が損なわれるのを抑えながら、前記ロボットによる前記所定動作の実行に伴う前記障害物への前記可動部の接触を回避するように、前記所定動作の実行を制御する制御手段と、を備える、
ことを特徴とするロボット制御装置。
【請求項２】
前記位置情報に基づいて、前記障害物に前記可動部を接触させずに前記所定動作を実行することができる確率を表す安全率を算出する安全率算出手段と、
前記安全率が基準値以上であるか否かを前記所定動作ごとに判定する判定手段と、
前記判定手段が前記所定動作の安全率が前記基準値未満であると判定した場合には、前記所定動作の一部を変更した動作計画を生成する動作計画生成手段と、をさらに備え、
前記制御手段は、前記動作計画生成手段が生成した前記動作計画に基づいて前記所定動作を実行させるように前記ロボットを制御する、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記動作計画生成手段は、前記所定動作の一部を変更した変更後の動作計画を複数生成し、
前記安全率算出手段は、前記変更後の動作計画ごとに前記安全率を算出し、
該ロボット制御装置は、前記変更後の動作計画ごとに、前記変更後の動作計画で規定される動作が前記所定動作と適合する比率を表す適合率を算出する適合率算出手段をさらに備え、
前記制御手段は、算出した前記安全率と前記適合率とに基づいて、複数生成された前記変更後の動作計画から実行の基準となる動作計画を決定し、決定した前記動作計画に基づいて前記所定動作を実行させるように前記ロボットを制御する、
ことを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記位置情報と前記安全率との関係を表す環境地図情報を取得する環境地図情報取得手段と、
前記ロボットの位置を推定する位置推定手段と、をさらに備え、
前記安全率算出手段は、前記環境地図情報取得手段が取得した前記環境地図情報と、前記位置推定手段が推定した前記ロボットの位置と、に基づいて前記安全率を算出する、
ことを特徴とする請求項２または３に記載のロボット制御装置。
【請求項５】
前記可動部は第１可動部と第２可動部とを含み、
前記制御手段は、前記所定動作として、前記第１可動部を駆動する第１所定動作、及び、前記第２可動部を駆動する第２所定動作をそれぞれ実行したと仮定した場合に、前記第２可動部が前記障害物に接触する可能性が、前記第１可動部が前記障害物に接触する可能性よりも低く、かつ、前記第１所定動作の意味に前記第２所定動作の意味が整合するときには、前記第２所定動作を実行させるように、前記ロボットを制御する、
ことを特徴とする請求項１から４のいずれか１項に記載のロボット制御装置。
【請求項６】
前記制御手段は、前記所定動作として、前記第１所定動作及び前記第２所定動作をそれぞれ実行したと仮定した場合に、前記第２所定動作の意味が前記第１所定動作の意味と整合しないときには、前記障害物への前記第１可動部の接触を回避しながら前記第１所定動作を実行させるように、前記ロボットを制御することを特徴とする、
請求項５に記載のロボット制御装置。
【請求項７】
請求項１から６のいずれか１項に記載のロボット制御装置を備える、
ロボット。
【請求項８】
可動部を駆動して所定動作を実行するように構成されたロボットを制御するためのロボット制御方法であって、
前記ロボットと当該ロボットの周囲の障害物との相対的な位置関係を表す位置情報を取得し、
当該取得した位置情報に応じて、前記所定動作の意味が損なわれるのを抑えながら、前記ロボットによる前記所定動作の実行に伴う前記障害物への前記可動部の接触を回避するように、前記所定動作の実行を制御する、
ことを特徴とするロボット制御方法。
【請求項９】
可動部を駆動して所定動作を実行するように構成されたロボットを制御するための制御装置が実行するプログラムであって、
前記ロボットと当該ロボットの周囲の障害物との相対的な位置関係を表す位置情報を取得し、
当該取得した位置情報に応じて、前記所定動作の意味が損なわれるのを抑えながら、前記ロボットによる前記所定動作の実行に伴う前記障害物への前記可動部の接触を回避するように、前記所定動作の実行を制御するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボット、ロボット制御方法およびプログラムに関する。
【背景技術】
【０００２】
作動可能な左右のアームを備えるロボットが開発されている。例えば、特許文献１は、対象物がロボット本体の左側に位置する場合には左アームを、右側に位置する場合には右アームをそれぞれ選択し、選択されたアームを用いて対象物を操作する制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１６７９０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、左右の可動部を用いて自己を表現する動作を実行するロボットが知られている。例えば、握手のような自己を表現する動作を右手で行った場合と左手で行った場合とで、その意味合いは異なる。これに対して、特許文献１に記載の制御装置では、ロボット本体と操作する対象物との位置関係に応じて、作動させるアームとして左右のアームの一方を選択しているにすぎず、左右の可動部の各々で動作を実行した場合のそれぞれの意味合いや、作動したアームに接触するような障害物の存在を考慮していないので、ロボットの動作を適切に制御することができない。
【０００５】
本発明は、上記実情に鑑みてなされたものであり、可動部を用いたロボットの動作を適切に実行させることができるロボット制御装置、ロボット、ロボット制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明のロボット制御装置は、
可動部を駆動して所定動作を実行するように構成されたロボットを制御するための制御装置であって、
前記ロボットと当該ロボットの周囲の障害物との相対的な位置関係を表す位置情報を取得する位置情報取得手段と、
前記取得された位置情報に応じて、前記所定動作の意味が損なわれるのを抑えながら、前記ロボットによる前記所定動作の実行に伴う前記障害物への前記可動部の接触を回避するように、前記所定動作の実行を制御する制御手段と、を備える。
【発明の効果】
【０００７】
本発明によれば、可動部を用いたロボットの動作を適切に実行させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態１に係るロボットの外観図である。
【図２】本発明の実施形態１に係るロボット制御装置のハードウェア構成図である。
【図３】本発明の実施形態１に係る動作種別情報の一例を表す図である。
【図４】本発明の実施形態１に係る動作決定処理のフローチャートである。
【図５】本発明の実施形態１に係るロボットと障害物の一例を表す図である。
【図６】本発明の実施形態１に係るロボットの規範動作の一例を表す図である。
【図７】本発明の実施形態１に係るロボットの規範動作の一部を変更した動作の一例を表す図である。
【図８】本発明の実施形態１に係るロボットの規範動作の左右のアームを反転した動作の一例を表す図である。
【図９】本発明の実施形態２に係る環境地図情報の一例を表す図である。
【図１０】本発明の実施形態２に係る環境地図情報に基準となる安全率が付与された一例を表す図である。
【発明を実施するための形態】
【０００９】
（実施形態１）
以下、本発明をコミュニケーション用のロボットの自己表現の動作に適用した実施の形態について、図面を参照して説明する。
【００１０】
本実施形態に係るロボット１は、図１に示すように、人型のロボットである。ロボット１は、駆動系を制御するロボット制御装置１０と、人の左腕に相当する右アーム１１と、人の右腕に相当する左アーム１２と、人の両足に相当する脚１３と、ロボット１からロボット１の周囲の物体までの距離を測定する距離センサ１４と、を備える。
【００１１】
ロボット１は、所定動作として、「手を上げる」、「手を振る」、「握手をする」等の自己表現の動作を行う。本実施形態において、自己表現とは、ロボット１を擬人化して、気持ち、感情等をさまざまな動作により表すことを意味する。自己表現の内容は、気持ち、感情等に限らず、ロボット１がユーザに対して伝える内容を広く表すものである。
【００１２】
ロボット制御装置１０は、右アーム１１、左アーム１２、脚１３および距離センサ１４と通信可能に接続されている。そして、ロボット制御装置１０は、右アーム１１、左アーム１２、脚１３および距離センサ１４を制御する。具体的には、ロボット制御装置１０は、自己表現の動作を表す動作計画を作成する。そして、ロボット制御装置１０は、作成した動作計画に沿って右アーム１１と左アーム１２とを駆動する。また、ロボット制御装置１０は、脚１３を制御して、ロボット１を移動させる。さらに、ロボット制御装置１０は、距離センサ１４を制御して、ロボット１からロボット１の周囲の物体までの距離を距離センサ１４から取得する。
【００１３】
右アーム１１および左アーム１２は、可動部であり、右アーム１１を第１可動部、左アーム１２を第２可動部とする。右アーム１１および左アーム１２は、人の関節に相当するアクチュエータに連結されている。右アーム１１および左アーム１２の各々は、対応するアクチュエータにロボット制御装置１０からの制御信号が入力されることによって、この制御信号に基づく角度、速度等で駆動される。
【００１４】
脚１３は、ロボット１を支えるとともに、ロボット１が移動するための部材である。脚１３は、車輪、無限軌道、脚等を備える。脚１３は、ロボット制御装置１０からの指示に基づいて動作することによって、ロボット１を移動させる。
【００１５】
距離センサ１４は、超音波、レーザー光、赤外線等を照射し、反射波を取得することによって、距離センサ１４から周囲の物体までの距離を測定する。そして、距離センサ１４は、測定した距離を表すデジタル信号をロボット制御装置１０に送信する。
【００１６】
次に、ロボット制御装置１０のハードウェア構成について、図２を参照して説明する。ロボット制御装置１０は、プロセッサ１０１とメモリ１０２とインタフェース１０３とを備える。
【００１７】
プロセッサ１０１は、ＣＰＵ（Central Processing Unit）、中央処理装置、演算装置等を備え、メモリ１０２に格納されたプログラムを読み出して実行することによって、後述する各種の処理を実行する。
【００１８】
メモリ１０２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ、等の不揮発性または揮発性のメモリ、磁気ディスク、フレキシブルディスク、光ディスク等の記録媒体を備える。メモリ１０２は、各種情報、制御プログラム、ＢＩＯＳ（Basic Input Output System）等が格納される。
【００１９】
インタフェース１０３は、シリアルポート、ネットワークアダプタ等の通信デバイスである。インタフェース１０３は、右アーム１１、左アーム１２、脚１３および距離センサ１４と通信可能に接続されている。
【００２０】
次に、メモリ１０２に格納されている情報について、図３を参照して説明する。メモリ１０２には、動作種別情報が格納されている。動作種別情報は、後述する処理に必要な設定情報である。動作種別情報は、ロボット１の「手を上げる」、「手を振る」等の自己表現の動作種別ごとの左右反転許容係数と、規範動作計画とを含む情報である。
【００２１】
左右反転許容係数は、それぞれの動作が左右反転を許容する程度を表す係数である。左右反転許容係数は、０から１までの数値であって、数値が大きいほど左右反転を許容できる動作であることを表す。例えば、図３に示すように、動作種別「手を上げる」の左右反転許容係数は０．９であって、動作種別「握手をする」の左右反転許容係数である０．１よりも大きいため、「手を上げる」動作は、「握手をする」動作よりも左右反転を許容できる動作であることを表す。このことは、「手を上げる」動作は、「握手をする」動作と比較して、左右を反転しても動作の意味が損なわないことを意味する設定である。
【００２２】
また、規範動作計画は、動作種別ごとの規範となる動作の計画を表すデータである。具体的には、規範動作計画は、右アーム１１のアクチュエータ及び左アーム１２のアクチュエータのいずれかを特定して、特定したアクチュエータの回転する角度（＝アームの回転角度）とその作動時間の組み合わせを表すデータであり、一部の動作については、これらのデータが時系列的に並べられている。アクチュエータは、回転する方向によって、プラス方向とマイナス方向が指定されている。例えば、図３に示す「手を振る」動作の例では、最初に１．５秒間かけてアクチュエータＡがプラス方向に１４０度回転する。次に、１．０秒間かけてアクチュエータＡがマイナス方向に３０度回転する。次に、１．０秒間かけてアクチュエータＡがプラス方向に３０度回転する。続いて、１．０秒間かけてアクチュエータＡが、再びマイナス方向に３０度回転する。このように、規範動作計画は、アクチュエータを用いた一連の動作を具体的に規定したデータである。
【００２３】
次に、ロボット制御装置１０がロボット１の動作を決定する動作決定処理について、図面を参照して説明する。
【００２４】
前提として、メモリ１０２には図３に示す動作種別情報と、基準安全率Ｐｔを表すデータが格納されている。基準安全率Ｐｔは、ロボット制御装置１０がある自己表現の動作を実行しても良いと判定するための基準となる安全率の閾値である。この安全率は、ロボット１の左右のアーム１１、１２を障害物に接触させずに前記所定動作（自己表現の動作）を実行することができる確率を表す。また、メモリ１０２には、ロボット１に固定された距離センサ１４の位置の情報も格納されている。距離センサ１４の位置の情報とは、具体的にはロボット１のどの部分のどの位置に距離センサ１４が取り付けられているかを表す情報である。
【００２５】
ロボット制御装置１０は、所定の自律的な行動決定処理の結果、またはユーザの指示に応じて、自己表現の動作を開始する。具体的には、ロボット制御装置１０は、メモリ１０２に格納された動作種別情報を取得する。そして、ロボット制御装置１０は、自律的な行動決定処理の結果、またはユーザの指示に応じて、動作種別情報に規定された複数の自己表現の動作種別のいずれか１つを選択して、動作決定処理を開始する。
【００２６】
動作決定処理を開始すると、プロセッサ１０１は、図４に示すように、位置情報を取得する（ステップＳ１０１）。具体的には、プロセッサ１０１は、距離センサ１４から距離データを取得する。そして、プロセッサ１０１は、メモリ１０２に格納されたロボット１に固定された距離センサ１４の位置の情報と、取得した距離を表す距離データと、に基づいて、ロボット１と周囲の物体との３次元的な位置関係を表す位置情報を取得する。例えば、図５に示すように、ロボット１の近くに障害物２がある場合、プロセッサ１０１は、距離センサ１４と障害物２の外周部分との間の距離を取得する。このステップＳ１０１の処理を実行するプロセッサ１０１は、特許請求の範囲に記載された位置情報取得手段の一例である。なお、ロボット１から見て障害物２の裏側の部分の位置情報は、ロボット１が障害物２に衝突するか否かには関係がないため、取得しなくても良い。
【００２７】
次に、プロセッサ１０１は、前述したようにして選択された動作種別の規範動作計画Ｓｒを取得する。そして、プロセッサ１０１は、取得した規範動作計画Ｓｒの安全率Ｐｒを算出する（ステップＳ１０２）。具体的には、プロセッサ１０１は、ロボット１が現在位置で規範動作計画Ｓｒに規定された動作（以下、規範動作と呼ぶ）を実行した場合の右アーム１１または左アーム１２の動作領域を算出する。そして、プロセッサ１０１は、算出した動作領域と、ステップＳ１０１で取得したロボット１に対する障害物２の相対的な位置情報とを比較して、右アーム１１または左アーム１２を障害物２に接触させずに規範動作を実行することができる確率、すなわち安全率Ｐｒを算出する。例えば、図６に示すように、規範動作が、左アーム１２を上げる自己表現の動作（例えば「手を上げる動作」）であるとする。そして、ロボット１の現在位置において、障害物２が左アーム１２の動作領域に重なっているとする。例えば、図５に示す例では、規範動作における左アーム１２の動作領域は、現在の左アーム１２の位置と、手を上げた時の左アーム１２の位置との間の領域（点線１００１で図示）であって、障害物２と重なっている。この場合、プロセッサ１０１は、安全率Ｐｒとして比較的低い値、例えば１０％のような値を算出する。
【００２８】
次に、図４に戻り、プロセッサ１０１は、ステップＳ１０２で算出した安全率Ｐｒが、メモリ１０２に格納された基準安全率Ｐｔ未満であるか否かを判定する（ステップＳ１０３）。そして、プロセッサ１０１は、安全率Ｐｒが基準安全率Ｐｔ未満であると判定すると（ステップＳ１０３：Ｙｅｓ）、ステップＳ１０５の処理に進む。一方、プロセッサ１０１は、安全率Ｐｒが基準安全率Ｐｔ未満でないと判定すると（ステップＳ１０３：Ｎｏ）、実行する動作を規範動作に決定して（ステップＳ１０４）、処理を終了する。前述のように安全率Ｐｒが１０％の場合、例えば基準安全率Ｐｔが７０％であるとすると、Ｐｒ＜Ｐｔとなるため、ステップＳ１０５の処理に進む。
【００２９】
ステップＳ１０３に続くステップＳ１０５の処理において、プロセッサ１０１は、右アーム１１及び左アーム１２のうちの規範動作と同じアームの一部の動きを変更した動作計画Ｓａを生成し、生成した動作計画Ｓａの安全率Ｐａを算出する。具体的には、プロセッサ１０１は、動作計画Ｓａとして、規範動作計画Ｓｒに規定されたアクチュエータの回転角度（＝アームの回転角度）を小さくして動作領域を限定した動作計画を生成する。そして、ステップＳ１０２にて安全率Ｐｒを算出した処理と同様に、Ｓａの安全率Ｐａを算出する。例えば、前述のケースでは、図７に示すように、プロセッサ１０１は、左アーム１２を途中まで上げた動作を表す動作計画を、動作計画Ｓａとして生成する。より具体的には、規範動作計画Ｓｒに含まれる「アクチュエータＡ：＋１４０度，２．０秒」の部分を、アクチュエータの回転角度を小さくした動作「アクチュエータＡ：＋７０度，２．０秒」に変えた計画を動作計画Ｓａとして生成する。そして、プロセッサ１０１は、Ｓａの安全率Ｐａを、障害物２の位置情報に基づいて、例えば８０％であると算出する。
【００３０】
次に、図４に戻り、プロセッサ１０１は、ステップＳ１０５で算出した安全率Ｐａが、メモリ１０２に格納された基準安全率Ｐｔ未満であるか否かを判定する（ステップＳ１０６）。そして、プロセッサ１０１は、安全率Ｐａが基準安全率Ｐｔ未満でないと判定すると（ステップＳ１０６：Ｎｏ）、ステップＳ１０７の処理に進む。一方、プロセッサ１０１は、安全率Ｐａが基準安全率Ｐｔ未満であると判定すると（ステップＳ１０６：Ｙｅｓ）、ステップＳ１０５の処理に戻り、動作の一部をさらに制限した計画を動作計画Ｓａとして生成する。例えば、前述のケースでは、プロセッサ１０１は、ステップＳ１０５において安全率Ｐａが７０％であると算出したため、ステップＳ１０６においてＰａ＜Ｐｔではない（Ｐａ≧Ｐｔ）と判定し、ステップＳ１０７の処理に進む。
【００３１】
ステップＳ１０６に続くステップＳ１０７の処理において、プロセッサ１０１は、左右のアームを反転した動作計画Ｓｂを生成し、生成した動作計画Ｓｂの安全率Ｐｂを算出する。例えば、前述のケースでは、図８に示すように、プロセッサ１０１は、左アーム１２の代わりに右アーム１１を上げた動作を表す動作計画を、動作計画Ｓｂとして生成する。なお、規範動作が特許請求の範囲に記載された第１所定動作の一例であり、動作計画Ｓｂが表す動作が第２所定動作の一例である。より具体的には、規範動作計画Ｓｒの動作種別「手を上げる」に含まれる「アクチュエータＡ：＋１４０度，２．０秒」の部分を、右アーム１１のアクチュエータＣに変更した動作「アクチュエータＣ：＋１４０度，２．０秒」に変えた動作計画を、動作計画Ｓｂとして生成する。そして、プロセッサ１０１は、Ｓｂの安全率Ｐｂを、障害物２の位置情報に基づいて、例えば１００％であると算出する。
【００３２】
図４に戻り、プロセッサ１０１は、ステップＳ１０７で算出した安全率Ｐｂが、基準安全率Ｐｔ未満であるか否かを判定する（ステップＳ１０８）。そして、プロセッサ１０１は、安全率Ｐｂが基準安全率Ｐｔ未満でないと判定すると（ステップＳ１０８：Ｎｏ）、ステップＳ１１０の処理に進む。一方、プロセッサ１０１は、安全率Ｐｂが基準安全率Ｐｔ未満であると判定すると（ステップＳ１０８：Ｙｅｓ）、動作計画Ｓｂの一部の動きを変更して、変更した動作計画Ｓｂの安全率Ｐｂを算出する（ステップＳ１０９）。そして、プロセッサ１０１は、再度ステップＳ１０８の判定を実行する。
【００３３】
ステップＳ１０２、ステップＳ１０５またはステップＳ１０７の処理を実行するプロセッサ１０１は、特許請求の範囲に記載された安全率算出手段の一例である。ステップＳ１０５またはステップＳ１０７の処理を実行するプロセッサ１０１は、特許請求の範囲に記載された動作計画生成手段の一例である。ステップＳ１０３、ステップＳ１０６またはステップＳ１０８の処理を実行するプロセッサ１０１は、特許請求の範囲に記載された判定手段の一例である。そして、ステップＳ１１０の処理を実行するプロセッサ１０１は、特許請求の範囲に記載された適合率算出手段の一例である。
【００３４】
次に、プロセッサ１０１は、ステップＳ１１０の処理として、ステップＳ１０５で生成された動作計画Ｓａの適合率Ｒａと、ステップＳ１０７又はステップＳ１０９で生成された動作計画Ｓｂの適合率Ｒｂと、をそれぞれ算出する（ステップＳ１１０）。適合率ＲａおよびＲｂは、それぞれの対応する動作計画ＳａまたはＳｂで規定されるアームの動作が規範動作計画Ｓｒで規定される規範動作と適合する比率を表す。すなわち、それぞれの動作計画ＳａまたはＳｂで規定される動作と規範動作との違いが小さいほど、対応する適合率ＲａまたはＲｂが大きくなる。具体的に、プロセッサ１０１は、規範動作計画Ｓｒと、動作計画ＳａおよびＳｂの各々との差異について、アクチュエータの動作回数の違い、回転角度の違い、動作するアクチュエータの違い等を評価して、適合率ＲａおよびＲｂを算出する。また、プロセッサ１０１は、適合率Ｒｂを算出する際に、対応する動作種別の左右反転許容係数（図３参照）を掛ける。
【００３５】
例えば、プロセッサ１０１は、図７に示すような動作計画Ｓａで左アーム１２を動作させる場合の適合率Ｒａを算出する場合、規範動作における左アーム１２の動作（点線１００２で図示）と、動作計画Ｓａにおける左アーム１２の動作（実線で図示）との違いにおけるアクチュエータＡの回転角度、右アーム１１の動作に違いが無いこと等を評価して、適合率Ｒａを８０％と算出する。一方、プロセッサ１０１は、図８に示すような動作計画Ｓｂで右アーム１１を動作させる場合の適合率Ｒｂを算出する場合、規範動作における左アーム１２の動作（点線１００４で図示）と、動作計画Ｓａにおける左アーム１２の動作（実線で図示）との違いにおけるアクチュエータＡの回転角度、規範動作における右アーム１１の動作（点線１００３で図示）と、動作計画Ｓｂにおける右アーム１１の動作（実線で図示）に違いがあること等を評価する。さらに、対応する動作種別「手を上げる」の左右反転許容係数０．９を掛けて、プロセッサ１０１は適合率Ｒｂを例えば５０％と算出する。ステップＳ１１０の処理を実行するプロセッサ１０１は、特許請求の範囲に記載された適合率算出手段の一例である。
【００３６】
続いて、プロセッサ１０１は、安全率と適合率を総合的に評価して、動作計画Ｓａと動作計画Ｓｂのいずれで規定される動作を実行するかを判定する。具体的には、プロセッサ１０１は、（１−ｍ）×安全率Ｐａ＋ｍ×適合率Ｒａが（１−ｍ）×安全率Ｐｂ＋ｍ×適合率Ｒｂより大きいか否かを判定する（ステップＳ１１１）。ここで、ｍは安全率と適合率とのどちらを重視するかを表す係数であり、０以上１以下の範囲でメモリ１０２にあらかじめ設定される。具体的には、設定されたｍの値が大きいほど、適合率を重視することとなる。例えば、前述のケースで、Ｐａ＝８０、Ｒａ＝８０、Ｐｂ＝１００、Ｒｂ＝５０であったため、ｍ＝０．５と設定されていた場合には、（１−ｍ）×Ｐａ＋ｍ×Ｒａ＝（１−０．５）×８０＋０．５×８０＝８０、（１−ｍ）×Ｐｂ＋ｍ×Ｒｂ＝（１−０．５）×１００＋０．５×５０＝７５となる。したがって、プロセッサ１０１は、（１−ｍ）×安全率Ｐａ＋ｍ×適合率Ｒａが（１−ｍ）×安全率Ｐｂ＋ｍ×適合率Ｒｂより大きいと判定する。一方、ｍ＝０．３と設定されていた場合には、（１−ｍ）×Ｐａ＋ｍ×Ｒａ＝（１−０．３）×８０＋０．３×８０＝８０、（１−ｍ）×Ｐｂ＋ｍ×Ｒｂ＝（１−０．３）×１００＋０．３×５０＝８５となる。したがって、プロセッサ１０１は、１−ｍ）×安全率Ｐａ＋ｍ×適合率Ｒａが（１−ｍ）×安全率Ｐｂ＋ｍ×適合率Ｒｂ以下であると判定する。
【００３７】
プロセッサ１０１は、（１−ｍ）×安全率Ｐａ＋ｍ×適合率Ｒａが（１−ｍ）×安全率Ｐｂ＋ｍ×適合率Ｒｂより大きいと判定すると（ステップＳ１１１：Ｙｅｓ）、実行する動作を動作計画Ｓａの動作に決定する（ステップＳ１１２）。一方、プロセッサ１０１は、（１−ｍ）×安全率Ｐａ＋ｍ×適合率Ｒａが（１−ｍ）×安全率Ｐｂ＋ｍ×適合率Ｒｂ以下であると判定すると（ステップＳ１１１：Ｎｏ）、実行する動作を動作計画Ｓｂの動作に決定する（ステップＳ１１３）。
【００３８】
前述のケースでは、ｍ＝０．５と設定されていた場合には、プロセッサ１０１は、（１−ｍ）×安全率Ｐａ＋ｍ×適合率Ｒａが（１−ｍ）×安全率Ｐｂ＋ｍ×適合率Ｒｂより大きいと判定し、実行する動作を動作計画Ｓａの動作に決定する。一方、ｍ＝０．３と設定されていた場合には、（１−ｍ）×安全率Ｐａ＋ｍ×適合率Ｒａが（１−ｍ）×安全率Ｐｂ＋ｍ×適合率Ｒｂ以下であると判定し、実行する動作を動作計画Ｓｂの動作に決定する。
【００３９】
以上のように、プロセッサ１０１は、実行する動作を決定して、動作決定処理を終了する。そして、プロセッサ１０１は、決定した動作の実行を制御して、左アーム１２または右アーム１１を駆動する。この処理を実行するプロセッサ１０１は、特許請求の範囲に記載された制御手段の一例である。
【００４０】
本実施形態に係るロボット制御装置１０は、動作決定処理において、基準安全率Ｐｔ以上の安全率である動作計画を実行する動作の候補とすることによって、障害物２への接触を回避することができる。そして、ロボット制御装置１０は、適合率を基準に動作を決定することによって規範動作に近い動作を選択し、適合率の算出において左右反転許容係数を用いることによって、左右反転によって動作の意味が損なわれるのを抑えることができる。
【００４１】
本実施形態に係るロボット制御装置１０は、規範動作の安全率を算出して、算出した安全率が基準安全率Ｐｔ以上でない場合には、規範動作の代わりの動作の候補となる複数の動作計画を生成し、それぞれの動作計画に対して安全率を算出する。そして、安全率が基準安全率Ｐｔ以上である動作を実行対象とすることによって、障害物へのロボット１の可動部の接触を回避することができる。
【００４２】
また、本実施形態に係るロボット制御装置１０は、複数の動作計画に対して規範動作との適合率を算出する。そして、算出した適合率に基づいて実行対象の動作を選択することによって、規範動作の意味が損なわれるのを抑えることができる。また、適合率の算出において左右反転許容係数を用いることによって、左右反転によって動作の意味が損なわれるのを抑えることができる。
【００４３】
このように、本実施形態に係るロボット制御装置１０は、障害物へのロボット１の可動部の接触を回避するとともに、規範動作の意味が損なわれるのを抑えることによって、可動部を用いたロボット１の動作を適切に実行させることができる。
【００４４】
また、本実施形態に係るロボット制御装置１０は、左アーム１２を駆動する規範動作（第１所定動作）についての安全率が基準安全率Ｐｔ未満であり、左右反転した動作として右アーム１１を駆動する動作（第２所定動作）の安全率が基準安全率Ｐｔ以上であることを、第２所定動作を実行対象の動作とするための条件の１つとしている。このことは、前記第２可動部が前記障害物に接触する可能性が、前記第１可動部が前記障害物に接触する可能性よりも低いことが、第２所定動作を実行対象の動作とするための条件の１つであることを意味する。また、本実施形態に係るロボット制御装置１０は、第２所定動作の適合率にも基づいて、第２所定動作を実行対象の動作とするか否かを決定する。このことは、第１所定動作の意味に第２所定動作の意味が整合することも、第２所定動作を実行対象の動作とするための条件の１つであることを意味する。これらの条件によって、ロボット１は自己表現の意味を損なわずに、規範動作における可動部とは別の可動部を駆動することができ、より柔軟に動作をすることができる。
【００４５】
また、本実施形態に係るロボット制御装置１０は、安全率と適合率に基づいて、第１所定動作の一部を変更した動作計画Ｓａに規定された動作と第２所定動作とを比較する。そして、動作計画Ｓａに規定された動作の方がより適切な動作であると判断した場合には、動作計画Ｓａに規定された動作を実行対象とすることができる。このことは、第２所定動作の意味が第１所定動作の意味と整合しないときに、障害物への第１可動部の接触を回避しながら第１所定動作を実行させることを意味する。これによって、ロボット１は、さらに柔軟な動作を行うことができる。
【００４６】
動作の意味が損なわれるのを抑えるための係数は、左右反転に限らず、どのような設定でも良い。例えば、規範動作計画Ｓｒに規定された内容ごとに重み付けをして、重要な内容ほど変更した場合の適合率を低くするようにしても良い。すなわち、動作するアクチュエータが重要である場合は、アクチュエータの変更によって適合率が低くなり、回転角度が重要である場合は、回転角度の変更によって適合率が低くなるように設定しても良い。
【００４７】
上述した適合率の算出においては、障害物への接触回避のために動作が変更されることで動作の最後の形が規範動作と異なる例を示した。しかし、動作の最後の形が規範動作と同じであっても、動作の途中の形が異なる場合に意味が損なわれる場合も想定される。この点、動作するアクチュエータの違い、回転角度等に基づいて適合率を算出すれば、途中の形の違いにも対応できる。
【００４８】
上述した実施の形態においては、距離センサ１４によって周囲の障害物の位置情報を取得する例を示した。他に、接触センサによる検知、カメラが取得した画像に対する画像処理等によって障害物の位置情報を取得しても良い。
【００４９】
（実施形態２）
実施形態１においては、ロボット１が距離センサ１４を備え、距離センサ１４が安全率の算出基準となる障害物２との距離を測定する例を示した。本実施形態においては、ロボット制御装置１０が、ロボット１の位置情報と安全率との関係を表す環境地図情報に基づいて安全率を算出する例を示す。本実施形態については、実施形態１と異なる部分を中心に説明する。
【００５０】
本実施形態に係るロボット制御装置１０のメモリ１０２には、地図上の領域ごとに安全率が付与された環境地図情報が格納されている。図９に示すように、環境地図情報２０は、可動範囲を表す枠２１と、障害物を表す枠２２とを含む２次元（上下左右）の環境地図を表す情報である。枠２１の内側の領域のうちの枠２２の外側の領域が、障害物に接触せずに動作可能なロボット１の可動範囲を表している。
【００５１】
そして、安全率は動作種別（図３参照）ごとに付与される。安全率が付与された環境地図情報２０は、図１０に示すように、環境地図情報２０の可動範囲を複数の領域に区切り、区切られたそれぞれの領域に安全率が付与されたデータである。この安全率は、対象の動作種別の動作を過去に行った際の実績として、動作を中断した比率である動作中断率と動作を中断した際に行った動作の達成率である動作達成率とに基づいて、あらかじめ付与しておく。なお、過去の実績が不十分で、安全率が不明な領域がある場合には、周囲の領域から取得した安全率から補間しても良い。
【００５２】
また、本実施形態に係るロボット１の脚１３は車輪を備える。そして、脚１３は、車輪の回転数と回転角度を表す信号をロボット制御装置１０に送信する。ロボット制御装置１０のプロセッサ１０１は、いわゆるオドメトリと呼ばれる方法によって、脚１３から受信した信号に基づいて移動量を算出し、ロボット１の自己位置を推定する処理を繰り返し実行する。この処理を実行するプロセッサ１０１は、特許請求の範囲に記載された位置推定手段の一例である。これによって、ロボット制御装置１０は、ロボット１の位置を表す自己位置情報をメモリ１０２に格納し、これを定期的に更新する。
【００５３】
本実施形態に係るロボット制御装置１０のプロセッサ１０１は、図４に示す動作決定処理のステップＳ１０１において、環境地図情報２０をメモリ１０２から読み出して取得する。すなわち、このステップＳ１０１の処理を実行するプロセッサ１０１は、特許請求の範囲に記載された環境地図情報取得手段の一例である。そして、プロセッサ１０１は、動作決定処理のステップＳ１０２、Ｓ１０５、Ｓ１０７およびＳ１０８において、上述のようにして作成された環境地図情報２０に付与された安全率に基づいて算出する。具体的には、プロセッサ１０１は、メモリ１０２に格納された自己位置情報を読み出して、環境地図情報２０における自己位置に該当する領域を特定する。そして、プロセッサ１０１は、特定した領域の安全率を取得する。さらに、プロセッサ１０１は、ロボット１の向き、動作の大きさ等を考慮して、安全率を増減して調整しても良い。
【００５４】
本実施形態に係るロボット制御装置１０は、距離センサ１４から位置情報を取得しなくても、過去の実績に基づいて安全率を算出することができる。したがって、ロボット１の特定の構成要素に限定されないため、幅広く適用可能である。
【００５５】
本実施形態に係るロボット制御装置１０はメモリ１０２に格納された環境地図情報２０に基づいて安全率を算出する。ここで、ロボット制御装置１０は、距離センサ１４から取得する位置情報に代えて環境地図情報２０を用いても良いし、距離センサ１４から取得する位置情報と、環境地図情報２０と、をともに用いても良い。例えば、環境地図情報２０をベースとして、距離センサ１４から位置情報を取得した範囲においては距離センサ１４から取得した情報を用いることによって、周囲の状況に応じてより柔軟に安全率を算出することができる。
【００５６】
本実施形態に係るロボット制御装置１０は、いわゆるオドメトリによって自己位置を推定する例を示した。しかし、本発明の範囲はこれに限られず、ロボット制御装置１０がＳＬＡＭ（Simultaneous Localization and Mapping）法によって自己位置推定とともに環境地図情報２０を更新しても良い。その場合、ロボット制御装置１０は、変更された領域の安全率は、周囲の安全率から補間して算出すれば良い。また、ロボット１が図示しないカメラを備え、ロボット制御装置１０がカメラによって撮影された画像を解析することによって自己位置推定を行っても良い。この場合も、いわゆるＶＳＬＡＭ（Visual Simultaneous Localization and Mapping）法によって、ロボット制御装置１０が自己位置推定とともに環境地図情報２０を更新しても良い。
【００５７】
本実施形態では、メモリ１０２に環境地図情報２０が格納されている例を示した。しかし、ロボット制御装置１０は、ロボット制御装置１０の外部のサーバ、クラウド等に格納された環境地図情報２０を通信によって取得しても良い。
【００５８】
（変形例）
本発明は、上述した実施の形態に限定されるわけではなく、その他の種々の変更が可能である。
【００５９】
上述したハードウェア構成、ソフトウェア構成等は、発明の実施形態の理解を容易にするための例示であり、発明を限定するものではない。
【００６０】
上述の実施形態においては、「手を上げる」という単純な動作についての例を示した。左右のアーム１２、１１を同時に使う動作、複数の障害物への接触を考慮する場合の動作等の複雑な事例についても、上述の処理を組み合わせることによって適用可能である。また、移動しながら動作する場合も同様である。
【００６１】
上述の実施形態においては、動作計画Ｓａと動作計画Ｓｂという２つの候補となる動作計画を生成して比較する例を示した。候補となる動作計画を多数生成しても良い。例えば、基準安全率Ｐｔが６０％である場合、動作計画ＳａまたはＳｂとして、安全率６０％、７０％、８０％、９０％および１００％のそれぞれ５つの動作計画を候補として生成しても良い。このように候補となる動作計画が多いほど、より適切な動作を選択可能となるが、情報処理の負荷が大きくなるため、両者のトレードオフを考慮して候補となる動作計画の生成数を決めても良い。
【００６２】
上述の実施形態においては、左右反転許容係数があらかじめ設定されている例を示した。左右反転許容係数をユーザに合わせて更新するようにしても良い。例えば、ロボット制御装置１０は、「握手をする」という動作を左アーム１２で実行した際に、ユーザが驚いたり戸惑ったりした場合、ユーザの反応から右アーム１１で実行した方が良いと判定することによって、左右反転許容係数の数値を小さく変更しても良い。このように、ロボット制御装置１０がユーザの反応から学習することによって、ロボット１はユーザの好みに応じた動作が可能となる。
【００６３】
上述の実施形態における左右反転許容係数は、左右の動作のいずれかを規範として、反転した場合の動作が許容される程度を表すことによって、動作種別ごとに左右反転した場合に動作の意味が損なわれるか否かを決める機能を果たす。この機能を果たすならば、左右反転許容係数に限らず、どのような設定であっても良い。例えば、左右両方の動作をともに規範動作計画として保持し、それぞれの規範動作計画に、優先して実行する動作を決定するための優先度のような指標を割り当てても良い。
【００６４】
上述した実施形態において、可動部が左アーム１２および右アーム１１である例を示した。本発明の可動部はこれに限られず、どのような可動部であっても良い。例えば、人型ロボットの脚、目、指等にも適用可能である。また、人型ロボット以外にもペットロボットなどの動物型ロボットにも適用可能である。また、可動部は左右の対になっていなくても良い。例えば、人型ロボットの口、ペットロボットのしっぽ等にも適用可能である。すなわち、左右反転は、別の可動部で動作を行うことの例示であって、規範動作と同一の可動部において一部の動作を変更した動作と、規範動作とは別の可動部の動作と、のいずれかもしくは両方を、動作の候補とすれば良い。
【００６５】
上述した実施形態において、安全率を算出する例を示した。これは例示であって、障害物を回避する動作を決定するための基準があれば良い。たとえば、安全率の代わりに障害物とロボット１との相対的な位置関係を基準として、障害物に接触するか否かを判定しても良い。
【００６６】
また、上述した実施形態において、適合率を算出する例を示した。これは例示であって、動作の意味が損なわれないかどうかを決定するための基準があれば良い。たとえば、適合率の代わりに、ユーザの反応に基づいて学習することによって、動作の意味を表す基準を持ち、その基準に基づいて意味が損なわれない動作を決定しても良い。たとえば、規範動作を一部変更すると意味が損なわれるか否かを表すフラグ、規範動作の可動部を別の可動部（左右反転を含む）に変更すると意味が損なわれるか否かを表すフラグ等の情報を持ち、これらの情報に基づいて、動作の意味が損なわれるか否かを判定しても良い。
【００６７】
あるいは、ロボットと障害物との相対的な位置関係を表す位置情報に応じて、所定動作の意味が損なわれるのを抑えながらロボットによる所定動作の実行に伴う障害物への可動部の接触が回避されるような動作を、実験などにより予め求めてマップ化する。そして、このマップをそのときどきの位置情報に応じて検索することにより動作を決定し、決定した動作に基づいて、所定動作の実行を制御してもよい。このマップは、前記メモリ１０２に記憶してもよく、あるいは、外部のメモリ（例えばクラウド）に記憶して読み出してもよい。
【００６８】
ロボット制御装置１０は、専用のシステムによらず、通常のコンピュータを用いて実現可能である。例えば、コンピュータに上述のいずれかを実行するためのプログラムを格納した記録媒体等から該プログラムをコンピュータにインストールすることにより、上述の処理を実行するロボット制御装置１０を構成することができる。
【００６９】
また、コンピュータにプログラムを供給するための手法は、任意である。例えば、通信回線、通信ネットワーク、通信システム等を介して供給してもよい。
【００７０】
また、上述の機能の一部をＯＳ（Operating System）が提供する場合には、ＯＳが提供する機能以外の部分をプログラムで提供すればよい。
【００７１】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００７２】
（付記１）
可動部を駆動して所定動作を実行するように構成されたロボットを制御するための制御装置であって、
前記ロボットと当該ロボットの周囲の障害物との相対的な位置関係を表す位置情報を取得する位置情報取得手段と、
前記取得された位置情報に応じて、前記所定動作の意味が損なわれるのを抑えながら、前記ロボットによる前記所定動作の実行に伴う前記障害物への前記可動部の接触を回避するように、前記所定動作の実行を制御する制御手段と、を備える、
ことを特徴とするロボット制御装置。
【００７３】
（付記２）
前記位置情報に基づいて、前記障害物に前記可動部を接触させずに前記所定動作を実行することができる確率を表す安全率を算出する安全率算出手段と、
前記安全率が基準値以上であるか否かを前記所定動作ごとに判定する判定手段と、
前記判定手段が前記所定動作の安全率が前記基準値未満であると判定した場合には、前記所定動作の一部を変更した動作計画を生成する動作計画生成手段と、をさらに備え、
前記制御手段は、前記動作計画生成手段が生成した前記動作計画に基づいて前記所定動作を実行させるように前記ロボットを制御する、
ことを特徴とする付記１に記載のロボット制御装置。
【００７４】
（付記３）
前記動作計画生成手段は、前記所定動作の一部を変更した変更後の動作計画を複数生成し、
前記安全率算出手段は、前記変更後の動作計画ごとに前記安全率を算出し、
該ロボット制御装置は、前記変更後の動作計画ごとに、前記変更後の動作計画で規定される動作が前記所定動作と適合する比率を表す適合率を算出する適合率算出手段をさらに備え、
前記制御手段は、算出した前記安全率と前記適合率とに基づいて、複数生成された前記変更後の動作計画から実行の基準となる動作計画を決定し、決定した前記動作計画に基づいて前記所定動作を実行させるように前記ロボットを制御する、
ことを特徴とする付記２に記載のロボット制御装置。
【００７５】
（付記４）
前記位置情報と前記安全率との関係を表す環境地図情報を取得する環境地図情報取得手段と、
前記ロボットの位置を推定する位置推定手段と、をさらに備え、
前記安全率算出手段は、前記環境地図情報取得手段が取得した前記環境地図情報と、前記位置推定手段が推定した前記ロボットの位置と、に基づいて前記安全率を算出する、
ことを特徴とする付記２または３に記載のロボット制御装置。
【００７６】
（付記５）
前記可動部は第１可動部と第２可動部とを含み、
前記制御手段は、前記所定動作として、前記第１可動部を駆動する第１所定動作、及び、前記第２可動部を駆動する第２所定動作をそれぞれ実行したと仮定した場合に、前記第２可動部が前記障害物に接触する可能性が、前記第１可動部が前記障害物に接触する可能性よりも低く、かつ、前記第１所定動作の意味に前記第２所定動作の意味が整合するときには、前記第２所定動作を実行させるように、前記ロボットを制御する、
ことを特徴とする付記１から４のいずれか１つに記載のロボット制御装置。
【００７７】
（付記６）
前記制御手段は、前記所定動作として、前記第１所定動作及び前記第２所定動作をそれぞれ実行したと仮定した場合に、前記第２所定動作の意味が前記第１所定動作の意味と整合しないときには、前記障害物への前記第１可動部の接触を回避しながら前記第１所定動作を実行させるように、前記ロボットを制御することを特徴とする、
付記５に記載のロボット制御装置。
【００７８】
（付記７）
付記１から６のいずれか１つに記載のロボット制御装置を備える、
ロボット。
【００７９】
（付記８）
可動部を駆動して所定動作を実行するように構成されたロボットを制御するためのロボット制御方法であって、
前記ロボットと当該ロボットの周囲の障害物との相対的な位置関係を表す位置情報を取得し、
当該取得した位置情報に応じて、前記所定動作の意味が損なわれるのを抑えながら、前記ロボットによる前記所定動作の実行に伴う前記障害物への前記可動部の接触を回避するように、前記所定動作の実行を制御する、
ことを特徴とするロボット制御方法。
【００８０】
（付記９）
可動部を駆動して所定動作を実行するように構成されたロボットを制御するための制御装置が実行するプログラムであって、
前記ロボットと当該ロボットの周囲の障害物との相対的な位置関係を表す位置情報を取得し、
当該取得した位置情報に応じて、前記所定動作の意味が損なわれるのを抑えながら、前記ロボットによる前記所定動作の実行に伴う前記障害物への前記可動部の接触を回避するように、前記所定動作の実行を制御するためのプログラム。
【符号の説明】
【００８１】
１…ロボット、２…障害物、１０…ロボット制御装置、１１…右アーム、１２…左アーム、１３…脚、１４…距離センサ、２０…環境地図情報、２１，２２…枠、１０１…プロセッサ、１０２…メモリ、１０３…インタフェース、１００１，１００２，１００３，１００４…点線
【図１】
2020055066.tif 000003
【図２】
2020055066.tif 000004
【図３】
2020055066.tif 000005
【図４】
2020055066.tif 000006
【図５】
2020055066.tif 000007
【図６】
2020055066.tif 000008
【図７】
2020055066.tif 000009
【図８】
2020055066.tif 000010
【図９】
2020055066.tif 000011
【図１０】
2020055066.tif 000012