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

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

▶ カシオ計算機株式会社の特許一覧

特許7127316ロボット、ロボットの制御方法及びプログラム
<>
  • 特許-ロボット、ロボットの制御方法及びプログラム 図1
  • 特許-ロボット、ロボットの制御方法及びプログラム 図2
  • 特許-ロボット、ロボットの制御方法及びプログラム 図3
  • 特許-ロボット、ロボットの制御方法及びプログラム 図4
  • 特許-ロボット、ロボットの制御方法及びプログラム 図5
  • 特許-ロボット、ロボットの制御方法及びプログラム 図6
  • 特許-ロボット、ロボットの制御方法及びプログラム 図7
  • 特許-ロボット、ロボットの制御方法及びプログラム 図8
  • 特許-ロボット、ロボットの制御方法及びプログラム 図9
  • 特許-ロボット、ロボットの制御方法及びプログラム 図10
  • 特許-ロボット、ロボットの制御方法及びプログラム 図11
  • 特許-ロボット、ロボットの制御方法及びプログラム 図12
  • 特許-ロボット、ロボットの制御方法及びプログラム 図13
  • 特許-ロボット、ロボットの制御方法及びプログラム 図14
  • 特許-ロボット、ロボットの制御方法及びプログラム 図15
  • 特許-ロボット、ロボットの制御方法及びプログラム 図16
  • 特許-ロボット、ロボットの制御方法及びプログラム 図17
  • 特許-ロボット、ロボットの制御方法及びプログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-22
(45)【発行日】2022-08-30
(54)【発明の名称】ロボット、ロボットの制御方法及びプログラム
(51)【国際特許分類】
   B25J 19/06 20060101AFI20220823BHJP
   A63H 11/00 20060101ALI20220823BHJP
【FI】
B25J19/06
A63H11/00 Z
【請求項の数】 19
(21)【出願番号】P 2018053820
(22)【出願日】2018-03-22
(65)【公開番号】P2019166580
(43)【公開日】2019-10-03
【審査請求日】2021-03-09
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(72)【発明者】
【氏名】牧野 哲司
【審査官】臼井 卓巳
(56)【参考文献】
【文献】国際公開第2013/027250(WO,A1)
【文献】特開2005-059161(JP,A)
【文献】特開昭60-016394(JP,A)
【文献】特開平11-277483(JP,A)
【文献】特開2017-226044(JP,A)
【文献】特開2004-243427(JP,A)
【文献】特開2010-069585(JP,A)
【文献】特開2010-188515(JP,A)
【文献】国際公開第2008/004487(WO,A1)
【文献】国際公開第2018/029267(WO,A1)
【文献】韓国公開特許第10-2015-0080050(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/06-19/06
A63H 11/00
(57)【特許請求の範囲】
【請求項1】
動部を駆動する駆動手段と、
所定の対象からの衝突を検出する衝突検出手段と、
前記衝突検出手段により前記衝突が検出された場合、衝突した前記所定の対象を含む所定の領域を前記可動部の動作禁止領域として設定して、前記動作禁止領域を避ける前記可動部の動作を生成する動作生成手段と、
前記動作生成手段により生成された前記動作に基づいて、前記駆動手段を制御する駆動制御手段と、
を備える、
ことを特徴とするロボット。
【請求項2】
前記動作生成手段は、前記衝突の位置と方向とのうちの少なくとも1つに基づいて、前記可動部の動作方向を設定する動作方向設定部を有し、
前記動作方向設定部は、前記可動部の前記動作禁止領域として、前記衝突の位置から前記衝突の方向とは反対方向を中心として所定の極角の範囲内の領域を設定して、前記動作禁止領域を避けるように前記可動部の自由端を向ける方向を設定する、
ことを特徴とする請求項に記載のロボット。
【請求項3】
前記動作方向設定部は、前記可動部の前記動作方向として、前記衝突の位置から遠ざかるように前記可動部の前記自由端を向ける方向を設定する、
ことを特徴とする請求項に記載のロボット。
【請求項4】
前記動作生成手段は、
前記可動部と前記衝突の位置との距離を求める距離判別部と、
前記距離判別部により求められた前記距離から前記可動部の移動量を設定する移動量設定部と、
を有する、
ことを特徴とする請求項又はに記載のロボット。
【請求項5】
複数の前記可動部を備える、
ことを特徴とする請求項に記載のロボット。
【請求項6】
前記動作方向設定部は、前記複数の可動部の前記自由端が同じ方向を向くように前記複数の可動部の前記動作方向を設定する、
ことを特徴とする請求項に記載のロボット。
【請求項7】
前記複数の可動部は、互いに直交する可動軸を有し、前記可動軸を中心に回転し、
前記動作方向設定部は、
前記衝突の方向を前記複数の可動軸の方向に対する成分に分解し、分解された前記成分のうちの最も大きな成分を有する前記複数の可動軸の方向に、前記複数の可動部の前記自由端を向けるように前記複数の可動部の前記動作方向を設定する、
ことを特徴とする請求項又はに記載のロボット。
【請求項8】
前記移動量設定部は、前記距離判別部が求めた前記距離が短い順に、前記複数の可動部の前記移動量を大きくする、
ことを特徴とする請求項乃至の何れか1項に記載のロボット。
【請求項9】
前記動作生成手段は、前記衝突から前記複数の可動部の前記動作の開始までの遅延時間を設定する遅延時間設定部を有する、
ことを特徴とする請求項乃至の何れか1項に記載のロボット。
【請求項10】
前記遅延時間設定部は、前記距離判別部が求めた前記距離が短い順に、前記衝突から前記複数の可動部の前記動作の開始までの前記遅延時間を短く設定する、
ことを特徴とする請求項に記載のロボット。
【請求項11】
前記動作生成手段は、前記距離判別部が求めた前記距離に基づいて、動作する前記複数の可動部を選択する選択部を有する、
ことを特徴とする請求項乃至10の何れか1項に記載のロボット。
【請求項12】
前記移動量設定部は、前記衝突検出手段が検出した前記衝突の大きさに応じて、前記複数の可動部の前記移動量を大きくする、
ことを特徴とする請求項乃至11の何れか1項に記載のロボット。
【請求項13】
前記動作生成手段は、所定の条件が満たされた場合に前記動作禁止領域の設定を解除する、
ことを特徴とする請求項乃至12の何れか1項に記載のロボット。
【請求項14】
前記所定の条件は、前記衝突から所定の時間が経過した場合に満たされる、
ことを特徴とする請求項13に記載のロボット。
【請求項15】
前記衝突検出手段は、
加速度センサと、
前記加速度センサが測定した加速度と加速方向とに基づいて、前記衝突の位置と方向とのうちの少なくとも1つを判別する衝突検出部と、
を有する、
ことを特徴とする請求項1乃至14の何れか1項に記載のロボット。
【請求項16】
前記所定の対象は、人又は動物又は他のロボットを含む、
ことを特徴とする請求項1乃至15の何れか1項に記載のロボット。
【請求項17】
前記動作生成手段により生成された前記動作は、前記可動部にあたかも柔軟性があるように見せる動作である、
ことを特徴とする請求項1乃至16の何れか1項に記載のロボット。
【請求項18】
所定の対象からの衝突を検出する工程と、
前記衝突が検出された場合、前記所定の対象を含む所定の領域をロボットの可動部の動作禁止領域として設定して、前記動作禁止領域を避ける前記可動部の動作を生成する工程と、
生成された前記動作に基づいて、前記可動部を駆動する工程と、
を含む、
ことを特徴とするロボットの制御方法。
【請求項19】
ロボットを制御するコンピュータを、
所定の対象からの衝突を検出する衝突検出手段、
前記衝突検出手段により前記衝突が検出された場合、前記所定の対象を含む所定の領域を前記ロボットの可動部の動作禁止領域として設定して、前記動作禁止領域を避ける前記可動部の動作を生成する動作生成手段、
前記動作生成手段が生成した前記動作に基づいて、前記可動部を駆動する駆動手段を制御する駆動制御手段、
として機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット、ロボットの制御方法及びプログラムに関する。
【背景技術】
【0002】
ユーザの行動に対して、自律的に動作するロボットが知られている。例えば、特許文献1のロボット(疑似生物機器)は、特定人からの許可動作を認識すると、その特定人に戯れる行動を実行する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2003-190651号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1のロボットは、ユーザが、意図せず、ロボットに衝突すると、ロボットの所定の動作によって、ユーザに過大な力が掛かるおそれがある。
【0005】
本発明は、前記の事情に鑑みてなされたものであり、所定の対象からの衝突に対して、所定の対象に過大な力が掛かるおそれの小さい動作を実行するロボット、ロボットの制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、本発明に係るロボットの一様態は、
動部を駆動する駆動手段と、
所定の対象からの衝突を検出する衝突検出手段と、
前記衝突検出手段により前記衝突が検出された場合、衝突した前記所定の対象を含む所定の領域を前記可動部の動作禁止領域として設定して、前記動作禁止領域を避ける前記可動部の動作を生成する動作生成手段と、
前記動作生成手段により生成された前記動作に基づいて、前記駆動手段を制御する駆動制御手段と、
を備える、
ことを特徴とする。
【0007】
前記目的を達成するため、本発明に係るロボットの制御方法の一様態は、
所定の対象からの衝突を検出する工程と、
前記衝突が検出された場合、前記所定の対象を含む所定の領域をロボットの可動部の動作禁止領域として設定して、前記動作禁止領域を避ける前記可動部の動作を生成する工程と、
生成された前記動作に基づいて、前記可動部を駆動する工程と、
を含む、
ことを特徴とする。
【0008】
前記目的を達成するため、本発明に係るプログラムの一様態は、
ロボットを制御するコンピュータを、
所定の対象からの衝突を検出する衝突検出手段、
前記衝突検出手段により前記衝突が検出された場合、前記所定の対象を含む所定の領域を前記ロボットの可動部の動作禁止領域として設定して、前記動作禁止領域を避ける前記可動部の動作を生成する動作生成手段、
前記動作生成手段が生成した前記動作に基づいて、前記可動部を駆動する駆動手段を制御する駆動制御手段、
として機能させる、
ことを特徴とする。
【発明の効果】
【0009】
本発明によれば、所定の対象からの衝突に対して、所定の対象に過大な力が掛かるおそれの小さい動作を実行するロボット、ロボットの制御方法及びプログラムを提供できる。
【図面の簡単な説明】
【0010】
図1】本発明の実施の形態に係るロボットを示す正面図である。
図2】本発明の実施の形態に係るロボットを示す上面図である。
図3】本発明の実施の形態に係るロボットのハードウェア構成を示す図である。
図4】本発明の実施の形態に係るロボットの腕部の動作を示す正面図である。
図5】本発明の実施の形態に係るロボットの腕部の動作を示す側面図である。
図6】本発明の実施の形態に係るロボットの頭部の動作を示す正面図である。
図7】本発明の実施の形態に係るロボットの頭部の動作を示す側面図である。
図8】本発明の実施の形態に係るロボットの構成を示すブロック図である。
図9】本発明の実施の形態に係る所定の対象からの衝突の位置と方向とのうちの少なくとも1つを示す正面図である。
図10図9に示す衝突の位置と方向とのうちの少なくとも1つを上方から見て、衝突の位置から衝突の方向とは反対方向を中心として所定の極角の範囲内の領域を示す上面図である。
図11図9に示す衝突の位置と方向とのうちの少なくとも1つを右側から見て、衝突の位置から衝突の方向とは反対方向を中心として所定の極角の範囲内の領域を示す側面図である。
図12】本発明の実施の形態に係る頭部に右方向から衝突した場合の可動部の動作方向を示す正面図である。
図13】本発明の実施の形態に係る、胴体部に前方右側に左右方向に対して所定の角度から衝突した場合における、可動部が所定の極角の範囲内の領域から遠ざかる方向に動作した複数の状態を示す上面図である。
図14】本発明の実施の形態に係る、胴体部に前方右側に左右方向に対して所定の角度から衝突した場合における、可動部の動作方向を示す上面図である。
図15】本発明の実施の形態に係る、右側の腕部に前方右側に左右方向に対して所定の角度から衝突した場合における、可動部の動作方向を示す上面図である。
図16】本発明の実施の形態に係る所定の対象からの衝突に対する動作処理を示すフローチャートである。
図17】本発明の実施の形態に係る動作方向設定処理を示すフローチャートである。
図18】本発明の実施の形態に係る動作方向情報の例を示す図である。
【発明を実施するための形態】
【0011】
図面を参照して、本発明の実施の形態に係るロボット100を説明する。
【0012】
ロボット100は、人を模した形状を有し、所定の対象の行動に対して種々の所定の動作を実行する。ここで、所定の対象は、人(例えば、ロボット100のユーザ)、動物、他のロボット等である。
【0013】
ロボット100は、図1図2に示すように、胴体部102と、一対の腕部104と、頭部108と、を備える。また、ロボット100は、胴体部102と一対の腕部104のそれぞれとを連結している一対の肩関節部105と、胴体部102と頭部108とを連結している首関節部109と、胴体部102の下部にロボット100を移動する図示しない移動部と、を備える。なお、理解を容易にするために、図1の上下方向をロボット100の上下方向、図1の左右方向をロボット100の左右方向として説明する。また、図1の正面方向(紙面の手前側)を前方、図1の背面方向(紙面の奥側)を後方として説明する。
【0014】
図3は、ロボット100のハードウェア構成を示す。ロボット100は、制御部120と記憶部150とバッテリ155と可動部160と駆動部170と加速度センサ180とを備える。
【0015】
制御部120は、胴体部102内に設けられ、ロボット100の各部の動作を制御する。制御部120は、CPU(Central Processing Unit)122とメモリ124とから構成される。メモリ124は、例えば、ROM(Read Only Memory)とRAM(Random Access Memory)とを有する。制御部120の機能は、CPU122がメモリ124に記憶されたプログラムを実行することによって実現される。
【0016】
記憶部150は、制御部120がロボット100の各部を制御するためのデータを記憶する。記憶部150は、後述する、衝突を判別するためのしきい値、可動部160を選択するための予め設定された距離、ロボット動作情報、移動量情報、遅延時間情報等を記憶している。記憶部150は、例えば、ROMとRAMとを有する。
【0017】
バッテリ155は、胴体部102内に設けられ、ロボット100の各部に電力を供給する蓄電池から構成される。
【0018】
可動部160は、胴体部102に対して動かすことができる部位である。具体的には、図1図2に示す一対の腕部104と頭部108が、可動部160として機能する。本実施の形態では、図1図2に示すように、腕部104の自由端104aが下方を、頭部108の自由端108aが上方を向いた状態を、ロボット100の初期状態(電源投入直後の状態)とする。
【0019】
腕部104のそれぞれは、前後方向に延びる可動軸162aと左右方向に延びる可動軸162bとを中心に回転可能である。換言すれば、腕部104のそれぞれは、互いに直交する可動軸162aと可動軸162bとのそれぞれを中心に回転可能である。
【0020】
本実施の形態では、腕部104のそれぞれは、可動軸162aと可動軸162bとのいずれか一方を中心に回転する。具体的には、腕部104は、図4に示すように、左右方向に腕部104の自由端104aを向けるように可動軸162aを中心に回転するか、図5に示すように、前後方向に腕部104の自由端104aを向けるように可動軸162bを中心に回転する。肩関節部105には、図示しない溝部が設けられ、肩関節部105と腕部104とが干渉しない構成とされている。
【0021】
図2に戻り、頭部108は、前後方向に延びる可動軸164a(ロール軸)と、左右方向に延びる可動軸164b(ピッチ軸)と、を中心に回転可能である。すなわち、頭部108は、互いに直交する可動軸164aと可動軸164bとのそれぞれを中心に回転可能である。
【0022】
本実施の形態では、頭部108は、可動軸164aと可動軸164bとのいずれか一方を中心に回転する。頭部108は、図6に示すように、左右方向に頭部108の自由端108aを向けるように可動軸164aを中心に回転するか、図7に示すように、前後方向に頭部108の自由端108aを向けるように可動軸164bを中心に回転する。
【0023】
図3に戻り、駆動部170は、図示しないモータ、アクチュエータ等の駆動部材から構成される。駆動部170は、例えば、図1図2に示す肩関節部105のそれぞれと首関節部109とに設けられ、可動部160を駆動する。具体的には、駆動部170は、可動部160の可動軸162a、162b、164a、164bを回転させる。駆動部170は駆動手段として機能する。
【0024】
図3に戻り、加速度センサ180は、ロボット100に生じる加速度と加速方向とを測定する。加速度センサ180は、例えば、図1図2に示す胴体部102と頭部108とに設けられる。加速度センサ180は、後述する衝突検出部125と共に衝突検出部手段として機能する。
【0025】
次に、図8~15を参照して、ロボット100の機能的な構成について説明する。ロボット100は、各部を制御する制御部120と、データを記憶する記憶部150と、胴体部102に対して動かすことができる部位である可動部160と、可動部160を駆動する駆動部170と、ロボット100に生じる加速度と加速方向とを測定する加速度センサ180と、を備える。
【0026】
制御部120は、図8に示すように、衝突検出部125と動作生成部130と駆動制御部145とを備える。
【0027】
制御部120の衝突検出部125は、加速度センサ180が測定した加速度と加速方向とに基づいて、所定の対象からの衝突を検出する。また、衝突検出部125は、加速度センサ180が測定した加速度と加速方向とに基づいて、図9に示すような、所定の対象からの衝突の位置Pと方向Sとのうちの少なくとも1つを判別する。衝突検出部125と加速度センサ180とは、衝突検出手段として機能する。
【0028】
図8に戻り、衝突検出部125は、対象判別部126と衝突判別部127と衝突算出部128とを有する。
【0029】
衝突検出部125の対象判別部126は、加速度センサ180が出力した加速度の値を表す信号と加速方向を表す信号とを受信する。対象判別部126は、受信した信号が表す加速度の値と加速方向とが、ロボット100の動作による加速度の値と加速方向とであるか、所定の対象からの行動による加速度の値と加速方向とであるか、を判別する。対象判別部126は、例えば、ロボット100の動作と加速度センサ180が測定した加速度の値と加速方向とが関連付けられているロボット動作情報と、受信した信号が表す加速度の値と加速方向とを比較することによって、ロボット100の動作による加速度の値と加速方向とであるか、所定の対象からの行動による加速度の値と加速方向とであるか、を判別する。ロボット動作情報は、ロボット100の動作による加速度と加速方向とが、加速度センサ180によって測定され、予め記憶部150に記憶されている。
【0030】
対象判別部126は、所定の対象からの行動による加速度の値と加速方向とであると判別した場合、加速度センサ180が出力した加速度の値と加速方向とを表す加速度情報を生成して、衝突判別部127に出力する。
【0031】
衝突検出部125の衝突判別部127は、所定の対象からの行動による加速度と加速方向とが、所定の対象からの衝突によるものであるか否か、判別する。具体的には、衝突判別部127は、対象判別部126から出力された加速度情報が表す加速度の値が予め設定されたしきい値よりも大きい場合に、所定の対象からの衝突であると判別する。衝突判別部127は、所定の対象からの衝突であると判別した場合、加速度情報を衝突算出部128に出力する。
【0032】
衝突検出部125の衝突算出部128は、加速度センサ180が測定した加速度から所定の対象からの衝突の位置Pと方向Sとのうちの少なくとも1つを求める。衝突算出部128は、例えば、頭部108に設けられた加速度センサ180と胴体部102に設けられた加速度センサ180とが出力した加速度と加速方向との差から、所定の対象からの衝突の位置Pと方向Sとのうちの少なくとも1つを求める。衝突算出部128は、求められた所定の対象からの衝突の位置Pと方向Sとのうちの少なくとも1つを表す衝突情報を生成し、動作生成部130に出力する。
【0033】
動作生成部130は、所定の対象からの衝突の位置Pと方向Sとのうちの少なくとも1つに基づいて、可動部160の動作を生成する。本実施の形態では、動作生成部130は、所定の対象を含む所定の領域を可動部160の動作禁止領域として設定して、動作禁止領域を避けるように可動部160の動作を生成する。これにより、ロボット100は、所定の対象に接触せず、所定の対象に過大な力が掛かるおそれの少ない動作を実行できる。動作禁止領域を避ける方向については、後述する。
【0034】
動作生成部130は、距離判別部131と選択部132と動作方向設定部133と移動量設定部134と遅延時間設定部135と生成部136とを有する。
【0035】
動作生成部130の距離判別部131は、衝突の位置Pと可動部160との距離を求める。具体的には、距離判別部131は、衝突情報が表す衝突の位置Pと可動部160の可動軸162a、162b、164a、164bの中心との距離を求める。距離判別部131は、可動部160と求められた距離を関連付けた距離情報を生成し、選択部132と移動量設定部134と遅延時間設定部135とに出力する。
【0036】
動作生成部130の選択部132は、動作させる可動部160を選択する。選択部132は、例えば、距離判別部131が出力した距離情報から、予め設定された距離よりも短い距離に関連付けられた可動部160を選択する。理解を容易にするために、以下では、全ての可動部160(すなわち一対の腕部104と頭部108と)が、選択されたものとして説明する。
【0037】
選択部132は、選択された可動部160を表す選択情報を生成し、動作方向設定部133と移動量設定部134と遅延時間設定部135とに出力する。
【0038】
動作生成部130の動作方向設定部133は、選択部132によって選択された可動部160の動作方向を設定する。動作方向設定部133は、選択情報が表す可動部160と衝突情報が表す衝突の方向Sから、選択された可動部160の動作方向として、動作禁止領域を避ける動作方向を設定する。
【0039】
具体的には、動作方向設定部133は、可動部160の動作方向として、図10図11に示す衝突の位置Pから衝突の方向Sとは反対方向Tを中心として所定の極角(例えば、φ=90°)の範囲内の領域B(動作禁止領域)から遠ざかる方向に、可動部160の自由端を向ける方向を設定する。
【0040】
例えば、所定の対象が、初期状態のロボット100の頭部108に、右方向から衝突した場合、動作方向設定部133は、図12に示すように、頭部108の自由端108aが領域B(動作禁止領域)から遠ざかる方向(左方向)を向くように、頭部108の可動軸164aを中心に前方から見て反時計回りに回転させる方向を、頭部108の動作方向として設定する。また、動作方向設定部133は、腕部104の動作方向として、腕部104の自由端104aが領域B(動作禁止領域)から遠ざかる方向(左方向)を向くように、腕部104の可動軸162aを中心に前方から見て時計回りに回転させる方向を設定する。これにより、ロボット100は、所定の対象への接触を避け、所定の対象に過大な力が掛かるおそれを小さくできる。なお、図12における破線は、初期状態の頭部108と腕部104を示している。
【0041】
また、領域B(動作禁止領域)から遠ざかる方向に可動部160の自由端を向ける方向が複数存在する場合、動作方向設定部133は、可動部160の動作方向として、衝突の位置Pから遠ざかる方向に、可動部160の自由端を向ける方向を設定する。
【0042】
例えば、図13に示すように、所定の対象が、初期状態のロボット100の胴体部102の前方右側に左右方向に対して所定の角度(例えば、30°)から衝突した場合、領域B(動作禁止領域)から遠ざかる方向に可動部160の自由端を向ける方向は、複数存在する。なお、図13における破線は、可動部160のそれぞれが領域B(動作禁止領域)から遠ざかる方向に動作した複数の状態を示している。
【0043】
この場合、動作方向設定部133は、図13における右側の腕部104の自由端104aが衝突の位置Pから遠ざかる方向(後方)に向くように、右側の腕部104の可動軸162bを中心に右方向から見て反時計回りに回転させる方向を、右側の腕部104動作方向として設定する。これにより、ロボット100は、所定の対象への接触をより避け、所定の対象に過大な力が掛かるおそれをより小さくできる。
【0044】
左側の腕部104と頭部108とは、いずれの方向(後方と左方向と)に動作しても、可動部160の自由端が衝突の位置Pから遠ざかる方向に向くが、動作方向設定部133は、可動部160の動作方向を、複数の可動部160の自由端が同じ方向を向く方向に設定することが好ましい。すなわち、動作方向設定部133は、左側の腕部104と頭部108とが、図14に示すように、それぞれの自由端104a、108aが、右側の腕部104の自由端104aが向く方向(後方)と同じ方向に向くように、左側の腕部104と頭部108の動作方向を設定することが好ましい。この場合、動作方向設定部133は、左側の腕部104の動作方向として、左側の腕部104の可動軸162bを中心に右方向から見て反時計回りに回転させる方向を設定する。また、動作方向設定部133は、頭部108の動作方向として、頭部108の可動軸164bを中心に右方向から見て時計回りに回転させる方向を設定する。ロボット100は、複数の可動部160の自由端を同じ方向を向けることにより、所定の対象、例えばロボット100のユーザに対して、衝突したことをより明確に知らせることができる。
【0045】
さらに、動作方向設定部133は、可動部160の動作方向として、複数の可動部160の自由端が同じ方向を向く方向に設定する場合、衝突の方向Sを可動軸162aと可動軸162bと、可動軸164aと可動軸164bとの方向に対する成分に分解し、分解された成分のうち最も大きな成分を有する方向に、可動部160の自由端を向ける方向を、可動部160の動作方向として設定してもよい。
【0046】
例えば、所定の対象が、初期状態における右側の腕部104の前方右側に左右方向に対して所定の角度(例えば、30°)から衝突した場合、図15に示すように、衝突の方向Sを可動軸162aと可動軸162bと、可動軸164aと可動軸164bとの方向に対する成分に分解し、最も大きな成分S1を有する方向(左方向)に、一対の腕部104と頭部108の自由端104a、108aを向ける方向を、可動部160の動作方向として設定してもよい。この場合、動作方向設定部133は、一対の腕部104の動作方向として、腕部104の可動軸162aを中心に前方から見て時計回りに回転させる方向を設定する。また、動作方向設定部133は、頭部108の動作方向として、頭部108の可動軸164aを中心に前方から見て反時計回りに回転させる方向を設定する。これにより、ロボット100は、所定の対象からの衝突を、より和らげることができる。なお、所定の対象が、初期状態における右側の腕部104の前方右側に左右方向に対して所定の角度(例えば、30°)から衝突した場合、動作方向設定部133は、一対の腕部104と頭部108との動作方向を、それぞれの自由端104a、108aが後方を向く方向に設定してもよい。
【0047】
動作方向設定部133は、可動部160と設定された可動部160の動作方向とを関連付けた動作方向設定情報を生成し、生成部136に出力する。
【0048】
図8に戻り、動作生成部130の移動量設定部134は、選択された可動部160の移動量(回転量)を設定する。移動量設定部134は、選択情報が表す可動部160と、距離情報が表す衝突の位置Pと可動部160との距離と、から、選択された可動部160の移動量を設定する。例えば、移動量設定部134は、距離と移動量とが関連付けられている移動量情報を参照して、選択された可動部160の移動量を、距離判別部131により求められた衝突の位置Pと可動部160との距離が短い順に大きく、設定する。これにより、所定の対象、例えばロボット100のユーザに対して、より柔軟な動きを見せることができる。移動量情報は、予め記憶部150に記憶されている。
【0049】
移動量設定部134は、可動部160と設定された移動量とを関連付けた移動量設定情報を生成し、生成部136に出力する。
【0050】
動作生成部130の遅延時間設定部135は、選択された可動部160における、所定の対象からの衝突から可動部160の動作の開始までの時間(以下では、遅延時間と記載)を設定する。遅延時間設定部135は、選択情報が表す可動部160と、距離情報が表す衝突の位置Pと可動部160との距離と、から、選択された可動部160の遅延時間を設定する。例えば、遅延時間設定部135は、距離と遅延時間とが関連付けられている遅延時間情報を参照して、選択された可動部160の遅延時間を、距離判別部131により求められた衝突の位置Pと可動部160との距離が短い順に短く、設定する。これにより、例えばロボット100のユーザに対して、より柔軟な動きを見せることができる。遅延時間情報は、予め記憶部150に記憶されている。
【0051】
遅延時間設定部135は、可動部160と設定された遅延時間とを関連付けた遅延時間設定情報を生成し、生成部136に出力する。
【0052】
動作生成部130の生成部136は、動作方向設定部133が出力した動作方向設定情報と、移動量設定部134が出力した移動量設定情報と、遅延時間設定部135が出力した延時間設定情報と、から、可動部160の動作を生成する。生成部136は、可動部160と、設定された動作方向と移動量と遅延時間とを関連付けた動作情報を生成し、駆動制御部145に出力する。
【0053】
制御部120の駆動制御部145は、生成部136が出力した動作情報に基づいて、駆動部170を制御する。駆動制御部145により制御された駆動部170は、可動部160を駆動する。
【0054】
以上のように、ロボット100は、可動部160の動作方向として、動作禁止領域を避ける動作方向が設定され、所定の対象に過大な力が掛かるおそれを小さくできる。また、ロボット100は、複数の可動部160の自由端を同じ方向を向けることにより、例えばロボット100のユーザに対して、衝突したことをより明確に知らせることができる。
【0055】
次に、図16に示すフローチャートを参照して、以上のように構成されたロボット100の所定の対象からの衝突に対する動作処理について説明する。ロボット100は、ユーザが図示しない電源をONすると、初期状態で待機し、所定の対象の行動に対して種々の所定の動作を実行する。
【0056】
まず、加速度センサ180が加速度を検出すると、加速度センサ180は、検出された加速度の値を表す信号と加速方向を表す信号とを衝突検出部125の対象判別部126に送信する(ステップS101)。
【0057】
信号を受信した対象判別部126は、受信した信号が表す加速度の値と加速方向とが、ロボット100の動作による加速度の値と加速方向とであるか、所定の対象からの行動による加速度の値と加速方向とであるかを判別する(ステップS102)。記憶部150に記憶されており、ロボット100の動作と加速度センサ180が測定した加速度の値と加速方向とが関連付けられているロボット動作情報と、受信した信号が表す加速度の値と加速方向とを比較し、受信した信号が表す加速度の値と加速方向とがロボット動作情報に存在しない場合に、対象判別部126は、所定の対象からの行動による加速度の値と加速方向とであると判別する。
【0058】
受信した信号が表す加速度の値と加速方向とが所定の対象からの行動による加速度の値と加速方向とであると判別された場合(ステップS102;YES)、対象判別部126は、加速度センサ180が出力した加速度の値と加速方向とを表す加速度情報を生成して、衝突判別部127に出力する。受信した信号が表す加速度の値と加速方向とがロボット100の動作による加速度の値と加速方向とであると判別された場合(ステップS102;NO)、動作処理は加速度の検出(ステップS101)に戻る。
【0059】
衝突検出部125の衝突判別部127は、対象判別部126が出力した加速度情報から、所定の対象からの行動による加速度と加速方向とが所定の対象からの衝突であるか否か判別する(ステップS103)。衝突判別部127は、加速度情報が表す加速度の値が、記憶部150に記憶されている予め設定されたしきい値よりも大きい場合に、所定の対象からの衝突であると判別する。所定の対象からの衝突であると判別された場合(ステップS103;YES)、衝突判別部127は、加速度情報を衝突算出部128に出力する。所定の対象からの衝突でないと判別された場合(ステップS103;NO)、動作処理は加速度の検出(ステップS101)に戻る。
【0060】
衝突検出部125の衝突算出部128は、衝突判別部127が出力した加速度情報から、所定の対象からの衝突の位置Pと方向Sとのうちの少なくとも1つを求める(ステップS104)。具体的には、衝突算出部128は、頭部108に設けられた加速度センサ180と胴体部102に設けられた加速度センサ180とが出力した加速度と加速方向との差から、衝突の位置Pと方向Sとのうちの少なくとも1つを求める。衝突算出部128は、求められた衝突の位置Pと方向Sとのうちの少なくとも1つを表す衝突情報を生成し、動作生成部130の距離判別部131と動作方向設定部133に出力する。
【0061】
次に、動作生成部130の距離判別部131は、衝突算出部128が出力した衝突情報から、衝突の位置Pと可動部160との距離を求める(ステップS105)。距離判別部131は、可動部160と求められた距離とを関連付けた距離情報を生成し、選択部132と移動量設定部134と遅延時間設定部135とに出力する。
【0062】
動作生成部130の選択部132は、距離判別部131が出力した距離情報から、動作させる可動部160を選択する(ステップS106)。選択部132は、距離情報から、予め設定された距離よりも短い距離に関連付けられた可動部160を選択する。ここでは、全ての可動部160(すなわち一対の腕部104と頭部108と)が、選択されたものとして説明する。選択部132は、選択された可動部160を表す選択情報を生成し、動作方向設定部133と移動量設定部134と遅延時間設定部135とに出力する。
【0063】
次に、動作生成部130の動作方向設定部133は、選択部132が出力した選択情報と衝突算出部128が出力した衝突情報とから、選択部132により選択された可動部160の動作方向を設定する(ステップS107)。動作方向設定部133は、可動部160と設定された可動部160の動作方向とを関連付けた動作方向設定情報を生成し、生成部136に出力する。ステップS107の詳細については、後述する。
【0064】
一方、動作生成部130の移動量設定部134は、選択部132が出力した選択情報と距離判別部131が出力した距離情報とから、選択部132により選択された可動部160の移動量(回転量)を設定する(ステップS108)。移動量設定部134は、記憶部150に記憶されており、距離と移動量とが関連付けられている移動量情報を参照して、選択された可動部160の移動量を、衝突の位置Pと可動部160との距離が短い順に大きく、設定する。移動量設定部134は、可動部160と設定された移動量とを関連付けた移動量設定情報を生成し、生成部136に出力する。
【0065】
また、動作生成部130の遅延時間設定部135は、選択部132が出力した選択情報と距離判別部131が出力した距離情報とから、選択部132により選択された可動部160の遅延時間を設定する(ステップS109)。遅延時間設定部135は、記憶部150に記憶されており、距離と遅延時間とが関連付けられている遅延時間情報を参照して、選択された可動部160の遅延時間を、衝突の位置Pと可動部160との距離が短い順に短く、設定する。遅延時間設定部135は、可動部160と設定された遅延時間とを関連付けた遅延時間設定情報を生成し、生成部136に出力する。
【0066】
動作生成部130の生成部136は、動作方向設定情報と移動量設定情報と延時間設定情報とから可動部160の動作を生成する(ステップS110)。生成部136は、可動部160と、設定された動作方向と移動量と遅延時間と、を関連付けた動作情報を生成し、駆動制御部145に出力する。
【0067】
駆動制御部145は、動作生成部130の生成部136が出力した動作情報に基づいて、駆動部170を制御する(ステップS111)。そして、可動部160は、駆動部170によって駆動され、生成された動作を実行する(ステップS112)。ユーザが電源をOFFにするまで、所定の対象からの衝突に対する動作処理は繰り返される(ステップS113;NO)。ユーザが電源をOFFにすると(ステップS113;YES)、所定の対象からの衝突に対する動作処理は終了する。
【0068】
図17を参照して、動作方向設定処理(ステップS107)について説明する。まず、動作生成部130の動作方向設定部133は、衝突算出部128が出力した衝突情報が表す衝突の方向Sから、衝突の位置Pから衝突の方向Sとは反対方向Tを中心として所定の極角(例えば、φ=90°)の範囲内の領域B(動作禁止領域)を設定する(ステップS201)。
【0069】
次に、動作方向設定部133は、可動部160のそれぞれについて、可動部160の動作可能な方向の中から、領域B(動作禁止領域)から遠ざかる方向に可動部160の自由端を向ける動作方向を選択する。そして、動作方向設定部133は、図18に示すような、可動部160のそれぞれにおいて選択された動作方向を組み合わせて、関連付けた動作方向情報を生成する(ステップS202)。動作方向設定部133は、動作方向情報に表される動作方向の組み合わせが1つの場合(ステップS203;NO)、可動部160の動作方向として、動作方向情報に表されている動作方向を設定する(ステップS209)。
【0070】
動作方向設定部133は、動作方向情報に表される動作方向の組み合わせが複数存在する場合(ステップS203;YES)、動作方向情報に表されている動作方向の組み合わせの中から、すべての可動部160の動作方向が、衝突の位置Pから遠ざかる方向に可動部160の自由端を向ける動作方向となっている動作方向の組み合わせを選択し、動作方向情報を更新する(ステップS204)。動作方向設定部133は、更新された動作方向情報に表される動作方向の組み合わせが1つの場合(ステップS205;NO)、可動部160の動作方向として、動作方向情報に表されている動作方向を設定する(ステップS209)。
【0071】
動作方向設定部133は、更新された動作方向情報に表されている動作方向の組み合わせが複数存在する場合(ステップS205;YES)、更新された動作方向情報の組み合わせの中から、可動部160の自由端が同じ方向を向く動作方向となっている動作方向の組み合わせを選択し、動作方向情報を再度更新する(ステップS206)。動作方向設定部133は、再度更新された動作方向情報に表される動作方向の組み合わせが1つの場合(ステップS207;NO)、可動部160の動作方向として、動作方向情報に表されている動作方向を設定する(ステップS209)。
【0072】
動作方向設定部133は、再度更新された動作方向情報に表されている動作方向の組み合わせが複数存在する場合(ステップS207;YES)、衝突の方向Sを可動軸162aと可動軸162bと、可動軸164aと可動軸164bと、の方向に対する成分に分解する。次に、動作方向設定部133は、再度更新された動作方向情報の組み合わせの中から、最も大きな成分S1を有する方向に、可動部160の自由端を向ける動作方向の組み合わせ選択する(ステップS208)。そして、動作方向設定部133は、最も大きな成分S1を有する方向に、可動部160の自由端を向ける動作方向の組み合わせを、可動部160の動作方向として設定する(ステップS209)。
【0073】
以上のように、ロボット100の可動部160は、所定の対象からの衝突に対して、動作禁止領域を避けて動作し、ロボット100は、所定の対象からの衝突に対して、所定の対象に過大な力が掛かるおそれの少ない動作を実行できる。また、ロボット100は、複数の可動部160の自由端を同じ方向を向けることにより、所定の対象に対して、衝突したことをより明確に知らせることができる。さらに、ロボット100は、衝突の位置Pと可動部160との距離に基づいて、可動部160の移動量を変えることができ、例えばロボット100のユーザに対して、より柔軟な動きを見せることができる。ロボット100は、衝突の位置Pと可動部160との距離に基づいて遅延時間を設定でき、例えばロボット100のユーザに対して、より柔軟な動きを見せることができる。
【0074】
以上、本発明の実施の形態を説明したが、本発明の要旨を逸脱しない範囲で種々の変更が可能である。
【0075】
例えば、衝突検出部125は、所定の対象からの衝突の大きさを検出してもよく、動作生成部130の移動量設定部134は、衝突の大きさに応じて、可動部160の移動量を大きくしてもよい。また、動作生成部130の選択部132は、衝突の大きさに基づいて、選択する可動部160の個数を変えてもよい。衝突の大きさは、例えば、頭部108に設けられた加速度センサ180と胴体部102に設けられた加速度センサ180とが測定した加速度の平均値である。さらに、動作生成部130は、所定の条件が満たされた場合に、動作禁止領域の設定を解除することが好ましい。所定の条件としては、所定の対象からの衝突からの所定の時間(例えば、5秒)の経過、衝突とは異なる所定の対象の行動の検出等が挙げられる。
【0076】
ロボット100の可動部160は2軸で駆動されているが、可動部160は3軸以上で駆動されてもよい。
【0077】
制御部120の機能は、専用のシステムによらず、通常の情報携帯端末、パーソナルコンピュータ等を用いて実行可能である。たとえば、前述の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体に格納して配布し、このコンピュータプログラムをパーソナルコンピュータ等にインストールすることにより、前述の処理を実行する情報端末を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置にこのコンピュータプログラムを格納しておき、通常の情報処理端末などがダウンロード等することで情報処理装置を構成してもよい。
【0078】
また、制御部120の機能を、OS(Operating System)とアプリケーションプログラムとの分担、又は、OSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【0079】
さらに、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)に、コンピュータプログラムを掲示し、ネットワークを介してこのコンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【0080】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施の形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0081】
(付記)
(付記1)
可動部と、
前記可動部を駆動する駆動手段と、
所定の対象からの衝突を検出する衝突検出手段と、
前記衝突検出手段により前記衝突が検出された場合、衝突した前記所定の対象を含む所定の領域を避ける前記可動部の動作を生成する動作生成手段と、
前記動作生成手段により生成された前記動作に基づいて、前記駆動手段を制御する駆動制御手段と、
を備える、
ことを特徴とするロボット。
【0082】
(付記2)
前記動作生成手段は、衝突した前記所定の対象を含む前記所定の領域を前記可動部の動作禁止領域として設定して、前記動作禁止領域を避ける前記可動部の前記動作を生成する、
ことを特徴とする付記1に記載のロボット。
【0083】
(付記3)
前記動作生成手段は、前記衝突の位置と方向とのうちの少なくとも1つに基づいて、前記可動部の動作方向を設定する動作方向設定部を有し、
前記動作方向設定部は、前記可動部の前記動作禁止領域として、前記衝突の位置から前記衝突の方向とは反対方向を中心として所定の極角の範囲内の領域を設定して、前記動作禁止領域を避けるように前記可動部の自由端を向ける方向を設定する、
ことを特徴とする付記2に記載のロボット。
【0084】
(付記4)
前記動作方向設定部は、前記可動部の前記動作方向として、前記衝突の位置から遠ざかるように前記可動部の前記自由端を向ける方向を設定する、
ことを特徴とする付記3に記載のロボット。
【0085】
(付記5)
前記動作生成手段は、
前記可動部と前記衝突の位置との距離を求める距離判別部と、
前記距離判別部により求められた前記距離から前記可動部の移動量を設定する移動量設定部と、
を有する、
ことを特徴とする付記3又は4に記載のロボット。
【0086】
(付記6)
複数の前記可動部を備える、
ことを特徴とする付記5に記載のロボット。
【0087】
(付記7)
前記動作方向設定部は、前記複数の可動部の前記自由端が同じ方向を向くように前記複数の可動部の前記動作方向を設定する、
ことを特徴とする付記6に記載のロボット。
【0088】
(付記8)
前記複数の可動部は、互いに直交する可動軸を有し、前記可動軸を中心に回転し、
前記動作方向設定部は、
前記衝突の方向を前記複数の可動軸の方向に対する成分に分解し、分解された前記成分のうちの最も大きな成分を有する前記複数の可動軸の方向に、前記複数の可動部の前記自由端を向けるように前記複数の可動部の前記動作方向を設定する、
ことを特徴とする付記6又は7に記載のロボット。
【0089】
(付記9)
前記移動量設定部は、前記距離判別部が求めた前記距離が短い順に、前記複数の可動部の前記移動量を大きくする、
ことを特徴とする付記6乃至8の何れか1つに記載のロボット。
【0090】
(付記10)
前記動作生成手段は、前記衝突から前記複数の可動部の前記動作の開始までの遅延時間を設定する遅延時間設定部を有する、
ことを特徴とする付記6乃至9の何れか1つに記載のロボット。
【0091】
(付記11)
前記遅延時間設定部は、前記距離判別部が求めた前記距離が短い順に、前記衝突から前記複数の可動部の前記動作の開始までの前記遅延時間を短く設定する、
ことを特徴とする付記10に記載のロボット。
【0092】
(付記12)
前記動作生成手段は、前記距離判別部が求めた前記距離に基づいて、動作する前記複数の可動部を選択する選択部を有する、
ことを特徴とする付記6乃至11の何れか1つに記載のロボット。
【0093】
(付記13)
前記移動量設定部は、前記衝突検出手段が検出した前記衝突の大きさに応じて、前記複数の可動部の前記移動量を大きくする、
ことを特徴とする付記6乃至12の何れか1つに記載のロボット。
【0094】
(付記14)
前記動作生成手段は、所定の条件が満たされた場合に前記動作禁止領域の設定を解除する、
ことを特徴とする付記2乃至13の何れか1つに記載のロボット。
【0095】
(付記15)
前記所定の条件は、前記衝突から所定の時間が経過した場合に満たされる、
ことを特徴とする付記14に記載のロボット。
【0096】
(付記16)
前記衝突検出手段は、
加速度センサと、
前記加速度センサが測定した加速度と加速方向とに基づいて、前記衝突の位置と方向とのうちの少なくとも1つを判別する衝突検出部と、
を有する、
ことを特徴とする付記1乃至15の何れか1つに記載のロボット。
【0097】
(付記17)
前記所定の対象は、人又は動物又は他のロボットを含む、
ことを特徴とする付記1乃至16の何れか1つに記載のロボット。
【0098】
(付記18)
前記動作生成手段により生成された前記動作は、前記可動部にあたかも柔軟性があるように見せる動作である、
ことを特徴とする付記1乃至17の何れか1つに記載のロボット。
【0099】
(付記19)
所定の対象からの衝突を検出する工程と、
前記衝突が検出された場合、前記所定の対象を含む所定の領域を避ける可動部の動作を生成する工程と、
生成された前記動作に基づいて、前記可動部を駆動する工程と、
を含む、
ことを特徴とするロボットの制御方法。
【0100】
(付記20)
ロボットを制御するコンピュータを、
所定の対象からの衝突を検出する衝突検出手段、
前記衝突検出手段により前記衝突が検出された場合、前記所定の対象を含む所定の領域を避ける可動部の動作を生成する動作生成手段、
前記動作生成手段が生成した前記動作に基づいて、前記可動部を駆動する駆動手段を制御する駆動制御手段、
として機能させる、
ことを特徴とするプログラム。
【符号の説明】
【0101】
100・・・ロボット、102・・・胴体部、104・・・腕部、104a,104b・・・自由端、105・・・肩関節部、108・・・頭部、109・・・首関節部、120・・・制御部、122・・・CPU、124・・・メモリ、125・・・衝突検出部、126・・・対象判別部、127・・・衝突判別部、128・・・衝突算出部、130・・・動作生成部、131・・・距離判別部、132・・・選択部、133・・・動作方向設定部、134・・・移動量設定部、135・・・遅延時間設定部、136・・・生成部、145・・・駆動制御部、150・・・記憶部、155・・・バッテリ、160・・・可動部、162a,162b,164a,164b・・・可動軸、170・・・駆動部、180・・・加速度センサ、B・・・領域、P・・・衝突の位置、S・・・衝突の方向、S1・・・衝突の方向を可動軸の方向に分解した最も大きい成分、T・・・衝突の方向とは反対方向、φ・・・極角
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18