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

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

▶ 学校法人 名古屋電気学園の特許一覧 ▶ トヨタ自動車株式会社の特許一覧

<>
  • 特開-制御システム 図1
  • 特開-制御システム 図2
  • 特開-制御システム 図3A
  • 特開-制御システム 図3B
  • 特開-制御システム 図4A
  • 特開-制御システム 図4B
  • 特開-制御システム 図5A
  • 特開-制御システム 図5B
  • 特開-制御システム 図6A
  • 特開-制御システム 図6B
  • 特開-制御システム 図7
  • 特開-制御システム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025039197
(43)【公開日】2025-03-21
(54)【発明の名称】制御システム
(51)【国際特許分類】
   B25J 9/10 20060101AFI20250313BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023146102
(22)【出願日】2023-09-08
(71)【出願人】
【識別番号】304000836
【氏名又は名称】学校法人 名古屋電気学園
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】山本 貴史
(72)【発明者】
【氏名】竹下 佳佑
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS34
3C707BS09
3C707CS08
3C707HS27
3C707LS15
3C707MS22
3C707WA16
(57)【要約】
【課題】ロボットのアーム部を速やかに制御することに寄与する制御システムを提供する。
【解決手段】一実施形態にかかるロボット10は、移動ユニット11と、移動ユニット11に設けられたアーム部13と、制御装置20とを備える。制御装置20は、移動ユニット11の移動先の候補となる位置を含むマップを構成する複数の単位領域について、アーム部13の目標位置にアーム部13が到達する逆運動学上の解の有無を単位領域毎に算出する算出部21と、単位領域毎の解の有無の算出結果に基づいて、複数の単位領域の中から、移動ユニット11の移動先の位置を選択する選択部22を有する。
【選択図】図2
【特許請求の範囲】
【請求項1】
移動部と、前記移動部に設けられたアーム部とを備えるロボットの制御システムであって、
前記移動部の移動先の候補となる位置を含むマップを構成する複数の単位領域について、前記アーム部の目標位置に前記アーム部が到達する逆運動学上の解の有無を前記単位領域毎に算出する算出部と、
前記単位領域毎の解の有無の算出結果に基づいて、前記複数の単位領域の中から、前記移動部の移動先の位置を選択する選択部と、を備える
制御システム。
【請求項2】
前記選択部は、
前記単位領域毎の解の有無の算出結果に基づいて、前記複数の単位領域の各々について、その単位領域の近傍に位置する単位領域のうち解が存在する単位領域の個数を評価値として算出し、
前記複数の単位領域における前記評価値に基づいて、前記複数の単位領域の中から、前記移動部の移動先の位置を選択する、
請求項1に記載の制御システム。
【請求項3】
前記算出部は、
前記複数の単位領域についての前記解の有無を、前記解の性質に応じて分類される複数のモード毎に、前記単位領域毎に算出し、
前記モード毎における前記単位領域毎の解の有無の算出結果に基づいて、前記複数のモードから1のモードを選択し、
前記選択部は、選択された前記1のモードにおける前記単位領域毎の解の有無の算出結果に基づいて、前記複数の単位領域の中から、前記移動部の移動先の位置を選択する、
請求項1又は2に記載の制御システム。
【請求項4】
前記算出部は、逆運動学上の解の有無が算出される対象となる単位領域を、前記目標位置と前記アーム部の長さとに基づいて決定する、
請求項1又は2に記載の制御システム。
【請求項5】
前記算出部は、前記移動部が移動できない領域を、逆運動学上の解の有無が算出される対象となる単位領域から除外する、
請求項1又は2に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御システムに関する。
【背景技術】
【0002】
ロボットについて、その制御をより正確に実行するための技術が開発されている。
【0003】
例えば、特許文献1には、移動マニピュレータの姿勢最適化方法として、以下が示されている。移動マニピュレータは、把持対象物を把持するための移動マニピュレータの姿勢を設定し、確率的な誤差を含む台車及びマニピュレータの移動後の手先姿勢の推定値を算出し、把持対象物を把持することが可能な手先姿勢である把持可能領域を算出する。その後、移動マニピュレータは、移動後の手先姿勢の推定値と把持対象物の物体姿勢を境界の両端とする修正領域を算出し、把持可能領域と修正領域との重複範囲の中に手先を移動修正した場合の修正後の手先姿勢を設定する。そして、移動マニピュレータは、移動後の手先姿勢の推定値と余裕領域の中の手先姿勢の確率的な距離の積分を用いて、移動マニピュレータの姿勢を最適化する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2022-135512号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述の通り、特許文献1に記載の技術では、台車及びマニピュレータの移動に伴う誤差を考慮して、姿勢の最適化を図っている。しかしながら、この技術では、最適化に伴う計算量が多くなってしまい、速やかな制御ができなくなる可能性があった。
【0006】
本開示は、このような問題を解決するためのものであり、ロボットのアーム部を速やかに制御することに寄与する制御システムを提供するものである。
【課題を解決するための手段】
【0007】
本開示の例示的な一態様に係る制御システムは、移動部と、移動部に設けられたアーム部とを備えるロボットの制御システムである。制御システムは、移動部の移動先の候補となる位置を含むマップを構成する複数の単位領域について、アーム部の目標位置にアーム部が到達する逆運動学上の解の有無を単位領域毎に算出する算出部と、単位領域毎の解の有無の算出結果に基づいて、複数の単位領域の中から、移動部の移動先の位置を選択する選択部と、を備える。このように、ロボットのアーム部を制御するための解を導出するためには、単位領域で構成されたマップを用いて解の有無を算出した結果を使用すればよい。そのため、導出に必要な計算量を少なくすることができる。したがって、制御システムは、ロボットのアーム部を速やかに制御することに寄与することができる。なお、この制御システムは、一例として、機械学習の手法(例えば、学習モデルをシステムで更新する手法)によって、計算を実行することが可能である。
【発明の効果】
【0008】
本開示により、ロボットのアーム部を速やかに制御することに寄与する制御システムを提供することができる。
【図面の簡単な説明】
【0009】
図1】本開示にかかるロボットの一例を示す側面図である。
図2】本開示にかかるロボットの一例を示すブロック図である。
図3A】本開示にかかるアーム部が形成する姿勢の一例を示す。
図3B】本開示にかかるアーム部が形成する姿勢の他の例を示す。
図4A図3Aの状態における各単位領域の解の有無の一例を示すグリッドマップである。
図4B図3Bの状態における各単位領域の解の有無の一例を示すグリッドマップである。
図5A図4Aから、解のうちアーム部が障害物と接触するものが除外されたグリッドマップである。
図5B図4Bから、解のうちアーム部が障害物と接触するものが除外されたグリッドマップである。
図6A】各単位領域の解の有無の一例を示すグリッドマップである。
図6B図6Aの解領域における各単位領域の評価値を示す。
図7】本開示にかかる制御装置の処理の一例を示すフローチャートである。
図8】本開示にかかる制御装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、本開示の実施の形態について説明する。なお、実施の形態における以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。実施の形態で参照される各図面は、1又はそれ以上の実施形態を説明するための単なる例示である。例示的な実施形態を説明するためにいずれか1つの図に示された特徴またはステップのすべてが必ずしも必須ではなく、一部の特徴またはステップが省略されてもよい。いずれかの図に記載されたステップの順序は、適宜変更されてもよい。
【0011】
実施の形態1
[構成の説明]
図1は、実施の形態にかかるロボットを説明するための図である。図1に示すように、本実施の形態にかかるロボット10は、移動ユニット11及び本体部12を備える。ロボット10は、モバイルマニピュレータ機能を有するスタンドアローン型のロボットであり、自律した動作が可能である。ロボット10は、例えば人間の生活支援を行うHSR(Human Support Robot)であるが、ロボットの種類はこれに限らない。
【0012】
移動ユニット11は、ロボット10を移動させるためのユニットである。例えば、移動ユニット11の下面には車輪及びモータ(不図示)が設けられており、モータを駆動させて車輪を回転させるか又は旋回させることで、ロボット10を平面上で自在に移動又は回転させることができる。ただし、移動ユニット11の構成はこれに限らない。移動ユニット11は、後述するロボット10内部の制御装置20からの制御信号によって、移動又は回転の方向、速度、停止等が制御される。ロボット10が回転することにより、本体部12が向く方向を変えることができる。
【0013】
本体部12は、移動ユニット11の上部に搭載されており、胴体部121及び頭部122を有する。胴体部121には、アーム部13が接続されている。アーム部13は、アーム基部131、アーム本体部132及びハンド133を有する。アーム基部131は、胴体部121の正面に支持されており、胴体部121の上下方向の所定の範囲内を自由に移動することが可能である。アーム基部131において、胴体部121側の端部と反対側の端部には、アーム本体部132が接続されている。また、アーム本体部132において、アーム基部131側の端部と反対側の端部には、ハンド133が接続されている。ハンド133は、人間の指を模して形成された部品であり、物体を掴む又は放すといった動作をすることができる。
【0014】
アーム部13は、複数のジョイント及びリンクを用いて構成される。ここで、各ジョイントは、アクチュエータ、減速機、エンコーダ及び伝導機構といった部品を有することで、当該ジョイントから先の部分の任意の方向への動き及び回転を可能とする。アーム部13は、制御装置20からの制御信号によってこれらの部品が制御されることで、様々な物体を掴む又は放すといった動作や、何らかの意味を表現するようなジェスチャーを行うことが可能である。
【0015】
例えば、アーム本体部132がアーム基部131と接続されている箇所にはジョイントが設けられ、このジョイントによって、アーム本体部132がアーム基部131と成す角度を可変にすることが可能である。同様に、ハンド133がアーム本体部132と接続されている箇所にはジョイントが設けられ、このジョイントによって、ハンド133がアーム本体部132と成す角度を可変にすることが可能である。
【0016】
なお、頭部122には、カメラ、マイク、スピーカ又は表示パネルといった部品が設けられてもよい。これにより、ロボット10と人間とのコミュニケーションとが可能となる。
【0017】
次に、ロボット10のシステム構成について説明する。図2は、ロボットのシステム構成例を説明するためのブロック図である。図2に示すように、ロボット10は、システム構成として、制御装置20、移動ユニット駆動部31及びアーム駆動部32を備える。
【0018】
制御装置20は、ロボット10の各部の処理を制御するシステムを構成し、バスを介して、他の各構成要素と接続されている。制御装置20は、移動ユニット11及びアーム部13を制御させ、移動ユニット11にロボット10の移動を実行させるとともに、アーム部13の動き及び回転を実行させることが可能である。例えば、アーム部13の目標位置にアーム部13を所定の目標姿勢で到達させるような場合において、制御装置20はこのような制御を実行することが可能である。制御装置20は、機能構成として、算出部21、選択部22、駆動制御部23及び記憶部24を有する。以下、各部について説明する。
【0019】
算出部21は、移動ユニット11の移動先の候補となる位置を含むマップを参照する。マップは、移動ユニット11が移動する対象となる領域及び目標位置をマップの範囲内に含み、複数の単位領域で構成される。この例では、マップは2次元であり、単位領域は、各々が同一の長さを有する正方形である。マップ上では、所定の方向における最近接の単位領域同士の間隔が同一となる。つまり、マップは格子状の構成を有するグリッドマップである。単位領域であるグリッドの1辺の長さは、ロボット10が設けられる環境等に応じて予め設定される。
【0020】
算出部21は、マップを構成する複数のグリッドについて、アーム部13の目標位置にアーム部13が到達する逆運動学(Inverse kinematics)上の解の有無をグリッド毎に算出する。つまり、算出部21は、あるグリッドに移動ユニット11が移動した状態で、アーム部13の目標位置にアーム部13が到達することが可能か否かを、グリッド毎に調べる。なお、算出部21は、解の有無の算出処理として、あるグリッドに移動ユニット11が移動した状態で、アーム部13の目標位置にアーム部13が所定の目標姿勢で到達することが可能か否かを、グリッド毎に調べてもよい。算出部21がグリッド毎に算出した解の有無を示すデータに基づいて、選択部22は、解があると判定された1又は複数のグリッドの中から、移動ユニット11の移動先となるグリッドを選択する。
【0021】
後述の通り、選択部22は、グリッド毎の解の有無の算出結果に基づいて、複数のグリッドの各々について、そのグリッドの近傍に位置するグリッドのうち解が存在するグリッドの個数を評価値として算出することができる。この例において、対象となるグリッドの近傍に位置するグリッドとは、対象となるグリッドの辺又は点の少なくともいずれかが共通する(すなわち対象となるグリッドに隣接する)、合計8個のグリッドである。ただし、近傍に位置するグリッドの定義はこれに限らない。例えば、対象となるグリッドといずれかの辺が共通するグリッドが、対象となるグリッドの近傍に位置するグリッドとして定義されてもよい。又は、対象となるグリッドの中心から所定の距離以内に含まれるグリッドが、対象となるグリッドの近傍に位置するグリッドとして定義されてもよい。ただし、選択部22は、評価値の算出処理を必ず実行する必要はない。
【0022】
また、算出部21は、複数のグリッドについての解の有無を算出する際に、解の性質に応じて分類される複数のモード毎に、解の有無をグリッド毎に算出してもよい。ここで、解の性質に応じて分類される複数のモードとは、アーム部13の各ジョイントについてそれぞれ異なる種類の制御がなされるモードのことをいう。
【0023】
ここでは、アーム本体部132においてアーム基部131側の端部を始点とし、その反対側のハンド133側の端部を終点とするベクトルと、水平方向と、のなす角度(以下θと定義)に応じて、モードが定義される例について説明する。θが仰角であればθは正の値であり、θが俯角であればθは負の値である。θが仰角又は俯角のいずれであるかに応じて、2種類のモードが設定される。換言すれば、所定の目標姿勢において、ハンド133の上下方向の中心よりも、アーム基部131の上下方向の中心が高いか低いかに応じて、2種類のモードが設定される。θが仰角か俯角に応じて、ジョイントに対してなされる制御が変わるため、モードが分けて定義される。ただし、モードの分け方はこれに限らない。また、モードは3種類以上設定されてもよい。
【0024】
なお、θが0°、すなわちアーム本体部132が構成するベクトルが水平方向を向く場合には、θが仰角であると判定されてもよい。つまり、θが0°以上の場合にはθが仰角であり、θが0°未満である場合にはθが俯角であると判定される。ただし、θが0°、すなわちアーム本体部132が構成するベクトルが水平方向を向く場合には、θが俯角であると判定されてもよい。
【0025】
図3Aは、アーム部13が形成する姿勢の一例を示す。図3Aにおいて、アーム本体部132に関する角度θは仰角である。換言すれば、図3Aに示す姿勢において、ハンド133の上下方向の中心よりも、アーム基部131の上下方向の中心は低い位置にある。アーム部13が図3Aに示す姿勢を取ることによって、ハンド133が所定の高さにある物体Sを把持することが可能となる。
【0026】
図3Bは、アーム部13が形成する姿勢の他の例を示す。図3Bにおいて、アーム本体部132に関する角度θは俯角である。換言すれば、図3Bに示す姿勢において、ハンド133の上下方向の中心よりも、アーム基部131の上下方向の中心は高い位置にある。アーム部13は、図3Bに示す姿勢を取ることによっても、図3Aと同様に、ハンド133が所定の高さにある物体Sを把持することが可能となる。このように、アーム部13が同じ動作を実行する場合であっても、図3A及びBに示すように、逆運動学上の解が複数存在する場合がある。本明細書では、図3A及びBに示す解を、異なるモードの解として定義する。
【0027】
図4Aは、図3Aの状態における各グリッドの解の有無の一例を示すグリッドマップである。グリッドマップM1は、図3Aにおけるロボット10が移動可能な領域を示す。グリッドマップM1は、一辺が所定の長さとなる正方形のグリッドで構成される。図3AにおけるグリッドT1は、図3Aに示す物体Sが存在する目標位置を含む領域である。このとき、グリッドマップM1上において、角度θが仰角となるモード(以下、モードAとも記載)の解を有するグリッドの集合は、ハッチングされた解領域A1で表される。
【0028】
図4Bは、図3Bの状態における各グリッドの解の有無の一例を示すグリッドマップである。グリッドマップM2は、図3Bにおけるロボット10が移動可能な領域を示しており、一辺が所定の長さとなる正方形のグリッドで構成される。グリッドマップM2は、グリッドマップM1と同じ位置の領域を示す。グリッドT1は、図3Bに示す物体Sが存在する目標位置を含む領域であり、図4AのグリッドT1と同じ位置を示す。このとき、グリッドマップM1上において、角度θが俯角となるモード(以下、モードBとも記載)の解を有するグリッドの集合は、ハッチングされた解領域A2で表される。
【0029】
このように、算出部21は、解の性質に応じて分類される複数のモード毎に、グリッドマップのグリッド毎に解の有無を算出することができる。
【0030】
図4Aと4Bを比較すると、図4Bにおける解領域A2の方が、図4Aにおける解領域A1と比較して面積が広い。すなわち、モードBはモードAに比較して、解が多くなる。算出部21は、図4Aと4Bに示される計算結果となるグリッドマップを比較し、図4Bに示す方が解が多いことを判定する。これにより、算出部21は、図4Bにかかるモードの方が、移動ユニット11等の位置ずれに対してロバストであると判定する。算出部21は、図4BにかかるモードBを選択する。選択部22は、図4Bにおいて解があると判定された1又は複数のグリッド、すなわち解領域A2の中から、移動ユニット11の移動先となるグリッドを選択する。
【0031】
なお、3つ以上のモードが存在する場合でも、算出部21は、最も解の個数が多くなる(すなわち、解領域が最も広くなる)モードを選択することができる。選択部22は、そのモードにおいて解があると判定された1又は複数のグリッドの中から、移動ユニット11の移動先となるグリッドを選択する。
【0032】
ただし、複数のモードが存在する場合に算出部21が1つのモードを選択する方法は、上記のものに限らない。例えば、算出部21が複数のモード毎に、グリッドマップのグリッド毎に解の有無を算出した場合、算出部21は各モードについて、解を有するグリッド同士が互いに隣接することで形成される領域の大きさを算出してもよい。これにより、算出部21は、移動ユニット11等の位置ずれに対してロバストとなる解の領域をより正確に算出することができる。算出部21は算出結果に基づき、最も大きな領域が存在するモードを選択する。
【0033】
なお、算出部21は、1又は複数のモードについて、逆運動学上の解の有無が算出される対象となるグリッドを、目標位置とアーム部の長さとに基づいて決定することが可能である。ただし、算出部21は、この処理を必ず実行する必要はない。
【0034】
例えば、算出部21は、解の有無が算出対象となるグリッドマップの範囲を、目標位置とアーム部13の長さとに基づいて決定することができる。具体的には、算出部21は、目標位置を中心として、アーム部13を最大限伸ばした際のアーム部13の全体の長さを半径とする円領域(以下、大円領域とも記載)を設定する。そして、算出部21は、その大円領域以外の領域が含まれないように、グリッドマップの範囲を決定してもよい。
【0035】
算出部21は、以上の処理に代えて、又は以上の処理に追加して、解の有無が算出対象となるグリッドマップの範囲を以下の通り決定してもよい。具体的には、算出部21は、目標位置を中心として、アーム部13が最短の長さとなるように縮めた際のアーム部13の全体の長さを半径とする円領域(以下、小円領域とも記載)を設定する。そして、算出部21は、その小円領域が含まれないように、グリッドマップの範囲を決定してもよい。
【0036】
算出部21は、以上のようにして決定されたグリッドマップに含まれる全てのグリッドについて、それぞれ、解の有無を算出する。
【0037】
ただし、算出部21は、予め設定されたグリッドマップの範囲において、解の有無が算出対象となるグリッドの範囲を、目標位置とアーム部13の長さとに基づいて決定してもよい。この場合、算出部21は、決定された範囲に含まれるグリッドについては解の有無を算出する。しかしながら、算出部21は、決定された範囲外のグリッドについては、グリッドマップの範囲内であっても解の有無を算出しない。目標位置とアーム部13の長さとに基づいて範囲を決定する手法については上記の通りである。
【0038】
また、算出部21は、移動ユニット11が移動できない領域(移動可能領域以外の領域)を、逆運動学上の解の有無が算出される対象となるグリッドから除外してもよい。移動ユニット11が移動できない領域は、例えば移動ユニット11周辺の空間に存在する障害物の影響で、移動ユニット11が到達できない地面の領域のことをいう。算出部21は、グリッドマップに障害物の位置情報が反映されたデータを用いることで、この除外処理を実行することが可能である。ただし、算出部21は、この除外処理を必ず実行する必要はない。
【0039】
例えば、算出部21は、移動ユニット11が移動できない領域が、グリッドマップの範囲に含まれないように決定してもよい。算出部21は、決定されたグリッドマップに含まれる全てのグリッドについて、それぞれ、解の有無を算出する。又は、算出部21は、予め設定されたグリッドマップの範囲において、移動ユニット11が移動できない領域を、解の有無の算出対象から除外してもよい。この場合、算出部21は、除外したグリッドについては、グリッドマップの範囲内であっても解の有無を算出せず、グリッドマップの範囲内であって除外されなかったグリッドについては解の有無を算出する。
【0040】
また、あるグリッドにおいて解が存在する場合であっても、そのグリッドに移動ユニット11が位置した状態でアーム部13が目標位置に到達するように動作する際に、アーム部13が障害物と接触する可能性が想定される。この状況を考慮し、算出部21は、1又は複数のモードについて、グリッド毎に解の有無を算出した際に算出される解のうち、アーム部13が障害物と接触するものは有効な解でないとして除外することが可能である。算出部21は、グリッドマップに障害物の位置情報が反映されたデータを用いることで、この解の除外処理を実行することが可能である。ただし、算出部21は、この解の除外処理を必ず実行する必要はない。
【0041】
図5A及び5Bは、それぞれ、図4Aと4Bにおいて、解のうちアーム部13が障害物と接触するものが除外されたグリッドマップである。図5Aにおいて、解領域A1のうち、アーム部13が障害物と接触する解を有するグリッドが除外された領域が、解領域A3として表されている。また、図5Bにおいて、解領域A2のうち、アーム部13が障害物と接触する解を有するグリッドが除外された領域が、解領域A4として表されている。
【0042】
図5Aと5Bを比較すると、図5Aにおける解領域A3の方が、図5Bにおける解領域A4と比較して面積が広い。すなわち、モードAはモードBに比較して、解が多くなる。算出部21は、図5Aと5Bに示される計算結果となるグリッドマップを比較し、図5Aに示す方が解が多いことを判定する。これにより、算出部21は、図5Aにかかるモードの方が、移動ユニット11等の位置ずれに対してロバストであると判定する。算出部21は、図5AにかかるモードAを選択する。選択部22は、図5Aにおいて解があると判定された1又は複数のグリッド、すなわち解領域A3の中から、移動ユニット11の移動先となるグリッドを選択する。
【0043】
なお、3つ以上のモードが存在する場合でも、算出部21は、各モードについて、グリッドマップのグリッド毎に解の有無を算出し、解のうちアーム部13が障害物と接触するものを除外することができる。ここで、算出部21は、解の除外処理がなされた後、最も解の個数が多くなるモードを選択してもよい。また、算出部21は、解の除外処理がなされた後、各モードについて、解を有するグリッド同士が互いに隣接することで形成される領域の大きさを算出してもよい。算出部21は算出結果に基づき、最も大きな領域が存在するモードを選択する。
【0044】
さらに、算出部21は、グリッド毎に解の有無を算出する際に、解の有無の算出において用いる座標系の自由度の中から、移動ユニット11の位置を示す自由度を、パラメータとして分離してもよい。その後、算出部21は、移動ユニット11の旋回角度を示す自由度と、アーム部13にかかる自由度とを用いて、解の有無の算出を実行する。この処理を実行することで、算出部21は、解の有無の算出において算出対象となるパラメータを少なく設定することができる。したがって、算出部21は、計算にかかる時間を削減することができる。
【0045】
図2に戻り、制御装置20の説明を続ける。選択部22は、算出部21が算出したグリッド毎の解の有無の算出結果に基づいて、算出対象となった複数のグリッドの中から、移動ユニット11の移動先の位置となるグリッドを選択する。また、選択部22は、選択されたグリッドについて、そのグリッドについて算出部21が算出した解も選択する。
【0046】
選択部22は、例えば以下のようにして、グリッドを選択することが可能である。選択部22は、グリッド毎の解の有無の算出結果に基づいて、複数のグリッドの各々について、そのグリッドと隣接するグリッドのうち解が存在するグリッドの個数を、評価値として算出する。そして、選択部22は、複数のグリッドにおける評価値に基づいて、複数のグリッドの中から、移動ユニット11の移動先の位置を選択する。
【0047】
図6Aは、各グリッドの解の有無の一例を示すグリッドマップである。算出部21は、複数のモードについて上記に示した手法で1のモードを選択し、そのモードについて、図6Aに示す、解の有無を示すグリッドマップM11を生成する。ただし、算出部21は、モードの選択を実行せず、解の有無を示すグリッドマップM11を生成してもよい。
【0048】
グリッドマップM11上において、解を有するグリッドの集合は、ハッチングされた解領域A11で表される。なお、領域R1は、解領域A11を含む領域である。また、解領域A11は、解のうちアーム部13が障害物と接触するものが除外されたものであってもよいし、この解の除外処理がなされていないものであってもよい。
【0049】
図6Bは、領域R1内の解領域A11における各グリッドの評価値を示す。選択部22は、解領域A11の各グリッドについて、そのグリッドと隣接するグリッドのうち解が存在するグリッドの個数を、評価値として算出する。例えば、解領域A11のグリッドU1は、その隣接する8個のグリッドのうち、6個のグリッドに解が存在する。したがって、選択部22は、グリッドU1の評価値を「6」と算出する。同様にして、選択部22は、解領域A11のその他のグリッドの評価値を算出する。
【0050】
選択部22は、図6Bに示した評価値の算出結果に基づき、解領域A11の中から、移動ユニット11の移動先の位置を選択する。例えば、選択部22は、解領域A11のうち最も高い評価値「6」を有するグリッドの中から、移動ユニット11の移動先の位置となる1のグリッドを選択してもよい。図6Bの場合には、選択部22は、評価値「6」を有する3個のグリッドの中から、任意のグリッドを、移動ユニット11の移動先の位置として選択することができる。
【0051】
ただし、選択部22が移動ユニット11の移動先の位置を選択する手法はこれに限らない。例えば、評価値に関する所定の閾値が、ロボット10が設けられる環境等に応じて予め設定されているとき、選択部22は、その所定の閾値以上の評価値を有するグリッドの中から、移動ユニット11の移動先の位置となる1のグリッドを選択してもよい。また、評価値の算出方法は上記に示したものに限らない。例えば、選択部22は、評価対象となるグリッドといずれかの辺が共通するグリッドの中で解を有するグリッドの数を、評価対象となるグリッドの評価値として定義してもよい。又は、選択部22は、評価対象となるグリッドの中心から所定の距離以内に含まれるグリッドの中で解を有するグリッドの数を、評価対象となるグリッドの評価値として定義してもよい。
【0052】
なお、複数のモードが存在し、算出部21が複数のモード毎に、グリッドマップのグリッド毎に解の有無を算出した場合、算出部21ではなく選択部22が1のモードを選択してもよい。具体的には、選択部22は、各モードにおける解領域における各グリッドについて、上記の方法を用いて、評価値を算出する。そして、選択部22は、複数のモードのうち、最も高い評価値を有するグリッドを有する解領域があるモードを選択することができる。又は、選択部22は、複数のモードのうち、所定の閾値以上の評価値を有するグリッドを有する解領域があるモードを選択してもよい。選択部22は、選択したモードにおいて、最も高い評価値を有するグリッド又は所定の閾値以上の評価値を有するグリッドの中から、移動ユニット11の移動先の位置となる1のグリッドを選択する。
【0053】
その他の例として、選択部22は、移動先の位置を選択する対象となるモードのグリッドマップにおける解領域内のグリッドのうち、ロボット10の現在の位置から最も近いものを、移動ユニット11の移動先の位置となる1のグリッドとして選択してもよい。また、複数のモードが存在し、算出部21が複数のモード毎に、グリッドマップのグリッド毎に解の有無を算出する場合、選択部22は、解領域におけるグリッドのうちロボット10の現在の位置から最も近いものが存在するモードを選択してもよい。選択部22は、選択したモードにおいて、ロボット10の現在の位置から最も近いグリッドを、移動ユニット11の移動先の位置となる1のグリッドとして選択する。この場合、選択部22は、ロボット10の現在の位置と、解領域内のグリッドとの距離の逆数、又は距離に所定の負の数を乗算したものを、上記の評価値として算出することができる。
【0054】
選択部22は、評価値の算出方法として、複数の方法を用いてもよい。選択部22は、評価値の算出対象となるグリッドについて複数の方法で評価値を算出した後、各評価値に対して所定の重みを乗算する。そして、選択部22は重み付けがなされた各評価値の合計を、最終的な評価値として算出する。選択部22は、評価値の算出対象となる全てのグリッドについて最終的な評価値を算出し、最終的な評価値について、評価値を用いた上記の任意の選択手法を用いて、移動ユニット11の移動先の位置となる1のグリッドを選択する。
【0055】
ただし、選択部22は、移動ユニット11の移動先の位置を選択する際に、評価値を用いなくともよい。
【0056】
図2に戻り、制御装置20の説明を続ける。駆動制御部23は、選択部22が選択したグリッドに対して移動ユニット11が移動するよう、移動ユニット駆動部31に対して制御信号を送信する。また、駆動制御部23は、選択部22が選択したグリッドに対して移動ユニット11が移動した際に、そのグリッドについて算出部21が算出した解に応じた動作をアーム部13が実行するよう、アーム駆動部32に対して制御信号を送信する。つまり、駆動制御部23は、目標位置にアーム部13が到達し、アーム部13が所定の目標姿勢を取ることでアーム部13が物体の把持等の動作を実行するよう、アーム駆動部32に対して制御信号を送信する。なお、駆動制御部23は、その他のロボット10の移動及びアーム部13の動作がなされるよう、移動ユニット駆動部31及びアーム駆動部32を制御してもよい。
【0057】
記憶部24には、グリッドマップのデータ、ロボット10の障害物の位置情報、上記の算出部21及び選択部22が実行する算出方法を示すアルゴリズム、判定に用いる閾値等、算出部21及び選択部22の処理に必要な情報が格納されている。ただし、算出部21又は選択部22の少なくともいずれかが実行する処理は、アルゴリズムではなく、機械学習がなされたAI(Artificial Intelligence)モデルを用いることで実現されてもよい。
【0058】
また、移動ユニット11が移動できない領域を算出部21が除外する際に用いる障害物の位置情報は、例えばObstacle Mapのような地図情報として記憶部24に格納されていてもよい。また、存在する解について、アーム部13が障害物と接触するか否かを算出部21が判定する際に用いる障害物の位置情報は、例えば3次元点群のような情報として記憶部24に格納されていてもよい。算出部21及び選択部22は、記憶部24の情報を適宜参照することで、上記の処理を実行する。
【0059】
なお、制御装置20は、例えば頭部122のカメラから取得した撮像データや、マイクから取得した音声データを取得し、取得したデータを解析することで、ロボット10が所定の位置にある物体を把持するように、ユーザが指示していることを認識してもよい。また、制御装置20は、撮像データや音声データを解析することで、ロボット10が把持している物体を所定の位置に置くように、ユーザが指示していることを認識してもよい。制御装置20は、このようなユーザの指示を認識した場合、指示された所定の位置をアーム部13の目標位置に設定する。そして、制御装置20は、目標位置にアーム部13が到達するための解を、上記に示したように導出する。
【0060】
移動ユニット駆動部31は、駆動制御部23からの制御信号に応じて移動ユニット11の車輪及びモータを制御することで、移動ユニット11に対して、所定の方向への移動及び回転を実行させる。アーム駆動部32は、駆動制御部23からの制御信号に応じてアーム部13のジョイントを制御することで、アーム部13に対して所定の動作を実行させる。
【0061】
[処理フローの説明]
図7は、制御装置20の処理の一例を示したフローチャートであり、このフローチャートによって、制御装置20の処理の概要が説明される。なお、各処理の詳細については上述の通りであるため、適宜説明を省略する。
【0062】
まず、算出部21は、目標位置とアーム部13の長さとに基づき、上記に示した大円領域及び小円領域が導出可能か否かを判定する(ステップS11)。大円領域及び小円領域は、同心円の関係にある。大円領域及び小円領域が導出可能である場合(ステップS11のYes)、算出部21は、グリッドマップの範囲が、大円領域の内部にあって小円領域が除外された領域(以下、対象領域とも記載)を含むように、グリッドマップを生成する(ステップS12)。グリッドマップは、移動ユニット11が移動する対象となる領域及び目標位置を含む。グリッドマップが生成された時点では、グリッドマップにおける全てのグリッドにおいて逆運動学上の解が計算されていない状態である。なお、図7では、逆運動学上の解は「IK解」とも記載され、逆運動学上の解が計算されていないグリッドは、「IK未計算のグリッド」とも記載されている。
【0063】
算出部21は、生成されたグリッドマップにおいて、逆運動学上の解が計算されていない1個のグリッドを選択する(ステップS13)。算出部21は、選択されたグリッド(以下、選択グリッドとも記載)が対象領域内にあるか否かを判定する(ステップS14)。
【0064】
選択グリッドが対象領域内にある場合(ステップS14のYes)、算出部21は、選択グリッドの中心が移動ユニット11の移動可能領域内にあるか否かを判定する(ステップS15)。選択グリッドの中心が移動ユニット11の移動可能領域内にある場合(ステップS15のYes)、算出部21は、選択グリッドにおける逆運動学上の解の有無を、解のモード毎に計算する(ステップS16)。解の有無の算出処理については上記の通りである。
【0065】
ステップS16の処理後、算出部21は、グリッドマップにおける全グリッドにおいてステップS13以降の処理がなされたか否かを判定する(ステップS17)。なお、選択グリッドが対象領域内にない場合(ステップS14のNo)、又は、選択グリッドの中心が移動ユニット11の移動可能領域内にない場合(ステップS15のNo)、算出部21は、ステップS16に示した解の有無の計算を実行しない。この場合、算出部21は、ステップS17の判定を実行する。
【0066】
ステップS13以降の処理がなされていないグリッドが存在する場合(ステップS17のNo)、算出部21はグリッドマップにおいて逆運動学上の解が計算されていない別のグリッドを選択する(ステップS13)。以下、算出部21は、選択グリッドについて、ステップS14以降の処理を実行する。
【0067】
全グリッドにおいてステップS13以降の処理がなされた場合(ステップS17のYes)、算出部21は、少なくとも1のモードのグリッドマップにおいて、逆運動学上の解が存在するグリッドがあるか否かを判定する(ステップS18)。いずれのモードのグリッドマップにおいても逆運動学上の解が存在するグリッドがない場合(ステップS18のNo)、算出部21は逆運動学上の解がないことを判定する。算出部21は、判定結果を駆動制御部23に出力する(ステップS19)。ステップS11において、大円領域及び小円領域が導出可能でない場合にも(ステップS11のNo)、算出部21は逆運動学上の解がないことを判定して、判定結果を駆動制御部23に出力する(ステップS19)。この場合、駆動制御部23は、目標位置にアーム部13が到達するような制御を実行しない。
【0068】
ステップS18において、少なくとも1のモードのグリッドマップにおいて逆運動学上の解が存在するグリッドがある場合(ステップS18のYes)、算出部21は、グリッドマップにおいて逆運動学上の解が存在する1個のグリッドを特定する(ステップS20)。算出部21は、特定したグリッドについて算出された解が実現された場合に、アーム部13が障害物と接触するか否かを判定する(ステップS21)。つまり、算出部21は、特定したグリッドの解が有効な解か否かを判定する。
【0069】
特定したグリッドの解が有効な解ではない場合(ステップS21のNo)、算出部21は、その解を削除することで、その解を以降の処理の対象から除外する(ステップS22)。ステップS22の処理後、算出部21は、逆運動学上の解が存在する各モードにおける全グリッドにおいてステップS21以降の処理がなされたか否かを判定する(ステップS23)。なお、特定したグリッドの解が有効な解である場合(ステップS21のYes)、算出部21は、ステップS22に示した解の削除を実行しない。この場合、算出部21は、ステップS23の判定を実行する。
【0070】
逆運動学上の解が存在する各モードにおける全グリッドのうち、ステップS21以降の処理がなされていないグリッドがある場合(ステップS23のNo)、算出部21は、ステップS21以降の処理がなされていない1個のグリッドを特定する(ステップS20)。以下、算出部21は、特定したグリッドについて、ステップS21以降の処理を実行する。
【0071】
逆運動学上の解が存在する各モードにおける全グリッドにおいてステップS21以降の処理がなされた場合(ステップS23のYes)、算出部21は、逆運動学上の解が存在するグリッドがあるか否かを判定する(ステップS24)。逆運動学上の解が存在するグリッドがない場合(ステップS24のNo)、算出部21は逆運動学上の解がないことを判定する。算出部21は、判定結果を駆動制御部23に出力する(ステップS19)。この場合、駆動制御部23は、目標位置にアーム部13が到達するような制御を実行しない。
【0072】
逆運動学上の解が存在するグリッドがある場合(ステップS24のYes)、算出部21は、各モードにおいて逆運動学上の解が存在するグリッドの数を比較する。算出部21は、解が存在するグリッドの数が最も多いモードを選択する(ステップS25)。
【0073】
選択部22は、ステップS25で選択されたモードのグリッドマップにおいて、逆運動学上の解が存在する1個のグリッドを選択する(ステップS26)。選択部22は、選択したグリッドにおける評価値を計算する(ステップS27)。ステップS26の処理後、選択部22は、選択されたモードのグリッドマップ内の逆運動学上の解が存在する全グリッドにおいて、ステップS27の処理がなされたか否かを判定する(ステップS28)。
【0074】
ステップS27以降の処理がなされていないグリッドが存在する場合(ステップS28のNo)、選択部22は、逆運動学上の解が存在する全グリッドのうち、ステップS21以降の処理がなされていない別のグリッドを特定する(ステップS26)。以下、選択部22は、特定したグリッドについて、ステップS27の処理を実行する。
【0075】
逆運動学上の解が存在する全グリッドにおいてステップS27の処理がなされた場合(ステップS28のYes)、選択部22は、評価値が最も高いグリッド及びそのグリッドの解を選択する。選択部22は、このグリッド及びグリッドの解の情報を駆動制御部23に出力する(ステップS29)。この場合、駆動制御部23は、グリッドの解の情報に基づいて、移動ユニット駆動部31及びアーム駆動部32を制御する。
【0076】
[効果の説明]
以上に示したように、算出部21は、移動ユニット11の移動先の候補となる位置を含むグリッドマップを構成する複数のグリッドについて、アーム部13の目標位置にアーム部13が到達する逆運動学上の解の有無をグリッド毎に算出する。選択部22は、グリッド毎の解の有無の算出結果に基づいて、複数のグリッドの中から、移動ユニット11の移動先の位置を選択する。以上の処理を実行することで、制御装置20は、アーム部13を制御するための解を導出するために、グリッドで構成されたグリッドマップを用いて解の有無を算出した結果を使用すればよい。そのため、制御装置20は、解の導出に必要な計算量を少なくすることができる。したがって、制御装置20は、ロボットのアーム部を速やかに制御することに寄与することができる。
【0077】
例えば、モバイルマニピュレータ等の移動機能を有するロボットは、自律的な移動等を実行するため、グリッドマップを用いることが多い。制御装置20はこのグリッドマップの情報を転用して解を導出することが可能であるため、通常のロボット10の動作以外に、計算において必要となる情報量を削減することができる。
【0078】
また、選択部22は、グリッド毎の解の有無の算出結果に基づいて、複数のグリッドの各々について、そのグリッドの近傍に位置するグリッドのうち解が存在するグリッドの個数を、評価値として算出してもよい。選択部22は、複数のグリッドにおける評価値に基づいて、複数のグリッドの中から、移動ユニット11の移動先の位置を選択する。この処理においては、近傍に位置するグリッドに解が存在するグリッドを、移動ユニット11の移動先の位置として選択することが可能である。したがって、移動ユニット11を実際に移動させた際に、移動先の位置が予定した位置からずれてしまった場合でも、制御装置20は、目標位置にアーム部13を到達させるように制御することが可能となる。
【0079】
一般にモバイルマニピュレータにおいて、移動ユニット11の位置決めの精度は、アーム部13の位置決めの精度と比べて低い。そのため、移動ユニット11の位置決めについてある程度の誤差が生じても、目標位置に対するアーム部13の動作が可能となるようなロバストな解を導出することは、ロボティクスの観点から効果が高いといえる。上記の手法で用いられる評価値は、移動ユニット11の位置決めにおける誤差が生じた場合でも、ロバストな解が存在する可能性を示しているということができる。
【0080】
また、算出部21は、複数のグリッドについての解の有無を、解の性質に応じて分類される複数のモード毎に、グリッド毎に算出してもよい。算出部21又は選択部22は、モード毎におけるグリッド毎の解の有無の算出結果に基づいて、複数のモードから1のモードを選択する。選択部22は、選択された1のモードにおけるグリッド毎の解の有無の算出結果に基づいて、複数のグリッドの中から、移動ユニット11の移動先の位置を選択することができる。以上の処理においては、解の性質が異なるモードは、移動ユニット11の移動先の位置を選択するための算出結果に反映されない。
【0081】
近傍に位置する(例えば、隣接する)グリッド同士においても、各グリッドにおいて解のモードが異なる場合が想定される。このような場合、仮に移動ユニット11の位置のずれが生じ、本来の移動先であるグリッドと隣接するグリッドに移動ユニット11が移動した際に、制御装置20は、アーム部13について当初の想定と異なる制御をする必要がある。そのため、制御装置20は、アーム部13を速やかに制御しにくくなる。しかしながら、制御装置20は、上記のようにして適切な解の性質を有するモードを選択し、そのモードにおいて適切なグリッドを選択する。そのため、制御装置20は、移動ユニット11の位置のずれ等の誤差に対してロバストな解を導出することができる。
【0082】
仮に、移動ユニット11の位置ずれが生じ、移動ユニット11が予定した移動先のグリッドとは異なる解を有するグリッドに移動した場合、制御装置20はアーム部13の制御を変更する必要が生じる。そのため、ロボット10の動作の完了に時間がかかることが想定される。しかしながら、制御装置20が上記処理を実行することで、そのような状況が生じることが抑制されるため、動作に時間がかかることを抑制することができる。
【0083】
また、算出部21は、以下の少なくともいずれかの処理を実行してもよい。
・算出部21は、逆運動学上の解の有無が算出される対象となるグリッドを、目標位置とアーム部の長さとに基づいて決定してもよい。
・算出部21は、移動ユニット11が移動できない領域を、逆運動学上の解の有無が算出される対象となるグリッドから除外してもよい。
これらの処理により、算出部21は、解の算出が不要と考えられる領域を除外して、導出に必要な計算量を少なくすることができる。したがって、制御装置20は、解をさらに高速に導出することができる。特に、選択部22がグリッドについて評価値を算出する場合、評価値を算出する対象となるグリッドの数をできるだけ減少させることは、計算量を少なくし、解をより高速に導出する観点において効果的である。
【0084】
また、算出部21は、グリッド毎に解の有無を算出した際に算出される解のうち、アーム部13が障害物と接触するものは解でないものとして除外してもよい。この処理が実行されることで、制御装置20は、アーム部13を目標位置にまで実際に到達させることが可能なロバストな解を導出することができる。
【0085】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0086】
例えば、算出部21又は選択部22の少なくともいずれかにおいて、計算の順番を問わない複数の計算が実行される場合、少ない計算量で実行される計算が時系列的に先に実行されてもよい。
【0087】
例えば、制御装置20が用いるマップはグリッドマップに限らず、本開示の処理に適用可能なものであれば、任意の種類のものを用いることができる。例えば、2次元のマップにおいて、単位領域は、任意の多角形(例えば正三角形、長方形、正六角形など)で構成されていてもよい。各単位領域の形状は同一であっても異なっていてもよく、各単位領域の面積は同一であっても異なっていてもよい。また、マップ上では、所定の方向における最近接の単位領域同士の間隔が同一であっても異なっていてもよい。
【0088】
さらに、マップは2次元に限らず、1次元、3次元等の任意の次元におけるマップを示してもよい。例えばマップが1次元である場合、直線状のマップは所定の長さを有する1次元の単位領域で区切られていることになる。このとき、ロボット10は、マップに示される直線状の領域を動くことが可能である。算出部21は、移動先の候補となる位置を含む1次元のマップを構成する複数の単位領域である線分について、アーム部13の目標位置にアーム部13が到達する逆運動学上の解の有無を、単位領域毎に算出する。選択部22は、単位領域毎の解の有無の算出結果に基づいて、複数の単位領域の中から、移動ユニット11の移動先の位置を選択する。この処理の詳細についてはグリッドマップについて説明した通りであるため省略する。
【0089】
制御装置20は、ロボット10ではなく、ロボット10を遠隔操作する端末又はサーバ等のコンピュータに搭載されていてもよい。また、制御装置20は、単一のコンピュータに搭載されるシステムでもよいし、複数のコンピュータに分散されて搭載されるシステムであってもよい。制御装置20の各部が複数のコンピュータによって実現される場合、制御装置20の各部を複数のコンピュータに分散させる方法は任意である。
【0090】
以上に示した実施の形態では、本開示をハードウェアの構成として説明したが、本開示は、これに限定されるものではない。本開示は、上述の実施形態において説明された制御装置20の処理を、コンピュータ内のプロセッサにコンピュータプログラムを実行させることにより実現することも可能である。
【0091】
図8は、実施の形態において示された制御装置20の処理が実行される情報処理装置のハードウェア構成例を示すブロック図である。図8を参照すると、情報処理装置90は、信号処理回路91、プロセッサ92及びメモリ93を含む。
【0092】
信号処理回路91は、プロセッサ92の制御に応じて、信号を処理するための回路である。なお、信号処理回路91は、送信装置から信号を受信する通信回路を含んでいても良い。
【0093】
プロセッサ92は、メモリ93と接続されており、メモリ93からコンピュータプログラムを読み出して実行することで、上述の実施形態において説明された装置の処理を行う。プロセッサ92の一例として、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、FPGA(Field-Programmable Gate Array)、DSP(Demand-Side Platform)、ASIC(Application Specific Integrated Circuit)のうち一つを用いてもよいし、そのうちの複数を並列で用いてもよい。
【0094】
メモリ93は、揮発性メモリや不揮発性メモリ、またはそれらの組み合わせで構成される。メモリ93は、1個に限られず、複数設けられてもよい。なお、揮発性メモリは、例えば、DRAM (Dynamic Random Access Memory)、SRAM (Static Random Access Memory)等のRAM (Random Access Memory)であってもよい。不揮発性メモリは、例えば、PROM (Programmable Random Only Memory)、EPROM (Erasable Programmable Read Only Memory) 等のROM (Read Only Memory)、フラッシュメモリや、SSD(Solid State Drive)であってもよい。
【0095】
メモリ93は、1以上の命令を格納するために使用される。ここで、1以上の命令は、プログラムとしてメモリ93に格納される。プロセッサ92は、これらのプログラムをメモリ93から読み出して実行することで、上述の実施形態において説明された処理を行うことができる。
【0096】
なお、メモリ93は、プロセッサ92の外部に設けられるものに加えて、プロセッサ92に内蔵されているものを含んでもよい。また、メモリ93は、プロセッサ92を構成するプロセッサから離れて配置されたストレージを含んでもよい。この場合、プロセッサ92は、I/O(Input/Output)インターフェースを介してメモリ93にアクセスすることができる。
【0097】
以上に説明したように、上述の実施形態における各装置が有する1又は複数のプロセッサは、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1又は複数のプログラムを実行する。プログラムが実行されることで、各実施の形態に記載された情報処理が実現できる。
【0098】
プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群又はソフトウェアコードを含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、compact disc read-only memory(CD-ROM)、digital versatile disk(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。一時的なコンピュータ可読媒体又は通信媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0099】
以上、実施の形態を参照して本開示を説明したが、本開示は上述の実施の形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0100】
10 ロボット
11 移動ユニット
12 本体部
121 胴体部 122 頭部
13 アーム部
131 アーム基部 132 アーム本体部
133 ハンド
20 制御装置
21 算出部 22 選択部
23 駆動制御部 24 記憶部
31 移動ユニット駆動部 32 アーム駆動部
図1
図2
図3A
図3B
図4A
図4B
図5A
図5B
図6A
図6B
図7
図8