JP2019084665A - ロボット制御装置、ロボット、ロボットシステム、及びプログラム - Google Patents
ロボット制御装置、ロボット、ロボットシステム、及びプログラム Download PDFInfo
- Publication number
- JP2019084665A JP2019084665A JP2017222214A JP2017222214A JP2019084665A JP 2019084665 A JP2019084665 A JP 2019084665A JP 2017222214 A JP2017222214 A JP 2017222214A JP 2017222214 A JP2017222214 A JP 2017222214A JP 2019084665 A JP2019084665 A JP 2019084665A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- joints
- wheels
- posture
- joint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Manipulator (AREA)
Abstract
【課題】接地面からロボットの少なくとも一部を持ち上げられた状態において、ユーザーが所望する動作をロボットに行わせることができなくなってしまうことを抑制することができるロボット制御装置を提供すること。【解決手段】ロボット制御装置は、複数の関節と、関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、複数の関節には、ロボットの姿勢と基準姿勢とが一致している場合において第1方向に平行な回動軸を有する複数の第1関節と、当該場合において第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の車輪それぞれの車軸は、当該場合において第2方向と平行である、ロボットを制御し、接地面から第1部位が持ち上げられた状態において、予め決められた条件が満たされた場合、第2部位が備える第1関節それぞれの回動角を第1関節の可動範囲における上限又は下限の角度よりも小さくする。【選択図】図7
Description
この発明は、ロボット制御装置、ロボット、ロボットシステム、及びプログラムに関する。
ロボットに所望の動作を行わせる技術の研究や開発が行われている。
これに関し、複数の受動輪を備えたヘビ型ロボットが有する部分のうちヘビ型ロボットの制御点とともに動く部分(例えば、ヘビの頭部に相当する部分)を持ち上げた場合において、予め決められた軌道に沿って当該制御点を動かす制御方法が知られている(非特許文献1参照)。また、複数の能動輪を備えた多連結移動ロボットが有する部分のうち多連結移動ロボットの制御点とともに動く部分を平面に沿って移動させ、当該平面上における予め決められた軌道に沿って当該制御点を動かす制御方法が知られている(非特許文献2参照)。
Motoyasu Tanaka, and Fumitoshi Matsuno: Modeling and Control of Head Raising Snake Robots by Using Kinematic Redundancy, Journal of Intelligent and Robotic Systems, vol.75, no.1, pp.53-69, 2014.
Motoyasu Tanaka, Mizuki Nakajima, and Kazuo Tanaka: Smooth Control of an Articulated Mobile Robot with Switching Constraints, Advanced Robotics, vol.30, no.1, pp.29-40, 2016.
非特許文献1に記載されたヘビ型ロボット、及び非特許文献2に記載された多連結移動ロボットのようなロボットは、接地面に接地している部位を有する。ここで、当該ロボットは、当該部位が有する複数の関節のうちのある1つの関節の回動角が当該関節の可動範囲における上限又は下限の角度(すなわち、可動限界角)に達した場合、回動角が当該角度に達している関節の回動角を当該角度を超える方向に回動させることが必要な動作(例えば、当該部位の後退を伴う動作)を行うことができなくなる状態である不可動状態になる。その結果、当該ロボットは、ユーザーが所望する動作を行うことができなくなってしまう。非特許文献1に記載されたヘビ型ロボットでは、何らかの手段によって外部から力を加えて当該ヘビ型ロボットの姿勢を変化させない限り、不可動状態から当該動作を行うことができる状態である可動状態へと変化させること(復旧させること)ができなかった。一方、非特許文献2に記載された多連結移動ロボットは、不可動状態になった場合、姿勢を変化させることによって不可動状態から可動状態へと変化(復旧)させることができる。しかしながら、当該多連結移動ロボットの制御方法は、非特許文献1に記載されたヘビ型ロボットのように、制御点とともに動く部分を持ち上げることが可能なロボットに対して適用することが困難であった。
そこで本発明は、上記従来技術の問題に鑑みてなされたものであり、接地面からロボットの少なくとも一部が持ち上げられた状態において、ユーザーが所望する動作をロボットに行わせることができなくなってしまうことを抑制することができるロボット制御装置、ロボットシステム、及びプログラムを提供する。
また、本発明は、上記従来技術の問題に鑑みてなされたものであり、接地面からロボットの少なくとも一部が持ち上げられた状態において、ユーザーが所望する動作を行うことができなくなってしまうことを抑制することができるロボットを提供する。
また、本発明は、上記従来技術の問題に鑑みてなされたものであり、接地面からロボットの少なくとも一部が持ち上げられた状態において、ユーザーが所望する動作を行うことができなくなってしまうことを抑制することができるロボットを提供する。
上述した課題の少なくとも1つを解決するために、本発明の一態様に係るロボット制御装置は、複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、前記複数の前記関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうちの前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行である、前記ロボットを制御し、前記車輪の少なくとも一部が接地している接地面から前記ロボットの一部である第1部位が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位である第2部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする。
また、本発明の一態様は、ロボット制御装置において、前記条件が満たされた場合、前記ロボットの姿勢を、前記第2部位が有する複数の前記車輪のうち前記接地面に接地している前記車輪である接地車輪それぞれの車軸同士の幾何学的な関係が予め決められた幾何学的な関係になる姿勢である目標姿勢に近づけることによって、前記第2部位が備える前記第1関節それぞれの回動角を前記角度よりも小さくする、構成が用いられてもよい。
また、本発明の一態様は、ロボット制御装置において、前記予め決められた幾何学的な関係は、平行である、構成が用いられてもよい。
また、本発明の一態様は、ロボット制御装置において、前記条件には、前記第2部位が備える前記第1関節の少なくとも1つの回動角が、前記角度に達していること、が含まれる、構成が用いられてもよい。
また、本発明の一態様は、ロボット制御装置において、前記条件には、ユーザーからの操作を受け付けたこと、が含まれる、構成が用いられてもよい。
また、本発明の一態様は、ロボット制御装置において、複数の前記車輪のうちの少なくとも一部は、アクチュエーターによって回動される能動輪である、構成が用いられてもよい。
また、本発明の一態様は、ロボット制御装置において、前記条件が満たされた場合、前記ロボットの制御点の位置及び姿勢が変化しないように、前記第2部位が備える前記第1関節それぞれの回動角を前記角度よりも小さくする、構成が用いられてもよい。
また、本発明の一態様は、ロボット制御装置において、前記第2部位が備える前記第1関節それぞれの回動角を前記角度よりも小さくする際、前記第2部位が有する複数の前記車輪のうち前記接地面に設置していない非接地車輪の組み合わせを、予め決められた時間が経過する毎に変化させる、構成が用いられてもよい。
また、本発明の一態様に係るロボット制御装置は、複数の関節と、前記関節間を繋ぐリンク部材とを備えるロボットであって、前記複数の前記関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれている、前記ロボットを制御し、前記ロボットの少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする。
また、本発明の一態様に係るロボットは、複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、前記複数の関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行であり、前記車輪の少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする。
また、本発明の一態様に係るロボットシステムは、複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、前記複数の関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行である前記ロボットと、前記ロボットを制御し、前記車輪の少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくするロボット制御装置と、を備える。
また、本発明の一態様に係るプログラムは、コンピューターに、複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、前記複数の関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行である前記ロボットを制御させ、前記車輪の少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする、ことを実行させるためのプログラムである。
本発明によれば、接地面からロボットの少なくとも一部が持ち上げられた状態において、ユーザーが所望する動作をロボットに行わせることができなくなってしまうことを抑制することができるロボット制御装置、ロボットシステム、及びプログラムを提供することができる。
また、本発明に依れば、接地面からロボットの少なくとも一部が持ち上げられた状態において、ユーザーが所望する動作を行うことができなくなってしまうことを抑制することができるロボットを提供することができる。
また、本発明に依れば、接地面からロボットの少なくとも一部が持ち上げられた状態において、ユーザーが所望する動作を行うことができなくなってしまうことを抑制することができるロボットを提供することができる。
<実施形態>
以下、本発明の実施形態について、図面を参照して説明する。
以下、本発明の実施形態について、図面を参照して説明する。
<記号に関する記法(Notation)>
まず、以下の説明において用いる記号に関する記法について説明する。
まず、以下の説明において用いる記号に関する記法について説明する。
以下では、ある変数を示すアルファベットXと、ある記号○とを用いて記載されたX^{○}は、Xの真上に○が記載された変数を示す。例えば、X^{・}は、Xの真上に・が記載された変数を示す。なお、X^{・}は、数学における慣習に基づき、Xの時間についての1階微分を示す。また、例えば、X^{〜}は、Xの真上に〜が記載された変数であるエックス・チルダを示す。また、例えば、X^{―}は、Xの真上に―が記載された変数であるエックス・バーを示す。
また、以下では、ある変数を示すアルファベットXと、ある変数(又はラベル)Yとを用いて記載されたX_{Y}は、Xの右下にYが添え字として記載された変数を示す。
また、以下では、ある変数を示すアルファベットXとある変数(又はラベル)Yとある記号○とを用いて記載されたX^{○}_{Y}は、Xの真上に○が記載された変数であってXの右下にYが添え字として記載された変数を示す。
<ロボットシステムの構成>
以下、ロボットシステム1の構成について説明する。
以下、ロボットシステム1の構成について説明する。
図1は、実施形態に係るロボットシステム1の構成の一例を示す図である。ロボットシステム1は、ロボット10と、ロボット制御装置20と、操作装置30を備える。なお、ロボットシステム1では、ロボット10と、ロボット制御装置20と、操作装置30とのうちの一部又は全部が一体に構成されてもよい。
ロボット10は、ヘビの頭に相当する部位であるエンドエフェクターを備えたエンドエフェクター部Eと、ヘビの尾の部分に相当する部位である最後尾部Zと、複数の関節を備える本体部Mを備えるヘビ型ロボットである。なお、ロボット10では、エンドエフェクター部Eは、本体部Mと一体に構成されてもよい。
エンドエフェクター部Eは、ロボット10が有する部位のうちエンドエフェクターを備えた部位のことである。また、エンドエフェクター部Eは、本体部Mによって支持されており、本体部Mの動きに応じて動く。なお、エンドエフェクター部Eは、本体部Mの動きに応じて動く構成に代えて、本体部Mの動きと独立に動くことが可能な構成であってもよい。
ここで、エンドエフェクター部Eが備えるエンドエフェクターは、この一例において、指部を備え、当該指部によって物体を挟んで持つことにより当該物体を保持することが可能なエンドエフェクターである。ここで、この一例において、保持するとは、物体を持ち上げることが可能な状態にすることを意味する。図1に示した例では、図を簡略化するため、当該エンドエフェクターは、円錐形状の物体として表されている。なお、当該エンドエフェクターは、これに代えて、空気の吸引や磁力、他の治具等によって物体を持ち上げることにより当該物体を保持する構成であってもよい。また、エンドエフェクター部Eは、当該エンドエフェクターに代えて、電動ドライバー、グラインダー、ディスペンサー等の工具によって各種の作業を行う他のエンドエフェクターを備える構成であってもよい。
エンドエフェクター部Eは、この一例において、1つの車輪部Wを備える。なお、エンドエフェクター部Eは、車輪部Wを備えない構成であってもよい。また、エンドエフェクター部Eは、2以上の車輪部Wを備える構成であってもよい。
車輪部Wは、1対の車輪を有する。なお、車輪部Wは、1対の車輪を備える構成に代えて、1つの車輪を備える構成であってもよく、3つ以上の車輪を備える構成であってもよい。以下では、説明の便宜上、ロボット10が備えるある部位の車輪と称した場合、当該部位が備える車輪部Wが有する車輪を示す。すなわち、ロボット10のある部位が1つの車輪部Wを備えている場合、当該部位の車輪の数は、2である。また、ロボット10のある部位が2つの車輪部Wを備えている場合、当該部位の車輪の数は、4である。
車輪部Wは、1対の車輪を有する。なお、車輪部Wは、1対の車輪を備える構成に代えて、1つの車輪を備える構成であってもよく、3つ以上の車輪を備える構成であってもよい。以下では、説明の便宜上、ロボット10が備えるある部位の車輪と称した場合、当該部位が備える車輪部Wが有する車輪を示す。すなわち、ロボット10のある部位が1つの車輪部Wを備えている場合、当該部位の車輪の数は、2である。また、ロボット10のある部位が2つの車輪部Wを備えている場合、当該部位の車輪の数は、4である。
また、エンドエフェクター部Eは、本体部Mが有する2つの端部のうちユーザーにより先頭側として選択された端部である第1端部に接続される。エンドエフェクター部Eと本体部Mとは、如何なる方法によって接続されてもよく、例えば、何らかのリンク部材によって接続される。なお、以下では、説明の便宜上、本体部Mが有する2つの端部のうち第1端部と反対側の端部を第2端部と称して説明する。
エンドエフェクター部Eが備えるエンドエフェクターは、無線によってロボット制御装置20と通信可能に接続されている。これにより、当該エンドエフェクターは、ロボット制御装置20から取得される制御信号に基づく動作を行う。ここで、無線による通信は、例えば、Wi−Fi(登録商標)等の通信規格によって行われる。なお、当該エンドエフェクターは、ケーブルを介してイーサネット(登録商標)やUSB(Universal Serial Bus)等の規格によって行われる有線通信によってロボット制御装置20と接続される構成であってもよい。
最後尾部Zは、この一例において、ロボット10が有する部位のうち1つの車輪部Wを備えた部位のことである。なお、最後尾部Zは、車輪部Wを備えない構成であってもよい。また、最後尾部Zは、2以上の車輪部Wを備える構成であってもよい。また、最後尾部Zは、本体部Mによって支持されており、本体部Mの動きに応じて動く。なお、最後尾部Zは、本体部Mの動きに応じて動く構成に代えて、本体部Mの動きと独立に動くことが可能な構成であってもよい。
また、最後尾部Zは、本体部Mが有する2つの端部のうち前述の第2端部に接続される。最後尾部Zと本体部Mとは、如何なる方法によって接続されてもよく、例えば、何らかのリンク部材によって接続される。
本体部Mは、n個の第1関節J1と(n−1)個の第2関節J2とを、ロボット10が備える複数の関節として備えるヘビ型のマニピュレーターである。ここで、nは、5以上の整数であれば如何なる整数であってもよい。なお、本体部Mは、第1関節J1の個数と同じ個数の第2関節J2を備える構成であってもよく、第1関節J1の個数よりも多い個数の第2関節J2を備える構成であってもよい。また、本体部Mは、(n−1)個より少ない個数の第2関節J2を備える構成であってもよく、(n−1)個よりも多い個数の第2関節J2を備える構成であってもよい。
また、本体部Mは、当該複数の関節間を繋ぐリンク部材Lを備える。以下では、一例として、リンク部材Lが、第1関節J1と第2関節J2との間を繋ぐリンク部材である場合について説明する。すなわち、この一例において、本体部Mには、第1関節J1と第2関節J2とが、第1端部から第2端部に向かって第1関節J1、第2関節J2、第1関節J1、第2関節J2、…、第1関節J1、という順に第1関節J1と第2関節J2とが交互に配置されている(備えられている)。すなわち、本体部Mは、2(n−1)個のリンク部材Lを有する。なお、本体部Mにおいて、第1関節J1と第2関節J2とが配置される順は、他の順であってもよい。
また、本体部Mは、(n−1)個の車輪部Wを備える。なお、本体部Mは、(n−1)個よりも少ない車輪部Wを備える構成であってもよい。また、本体部Mは、何らかの方法によってロボット10の動きを妨げないように車輪部Wを取り付けることが可能な場合、(n−1)個よりも多い車輪部Wを備える構成であってもよい。また、本体部Mは、車輪部Wを備えない構成であってもよい。
また、本体部Mには、(n−1)個の第2関節J2のそれぞれについて、第2関節J2の回動軸と車輪部Wが有する車輪の車軸(回動軸)とが一致するように車輪部Wが第2関節J2に設けられている。すなわち、本体部Mは、2(n−1)個の車輪(すなわち、(n−1)対の車輪)を有する。また、本体部Mには、ロボット10の姿勢と後述する基準姿勢とが一致している場合において、エンドエフェクター部Eが有する2個の車輪と、最後尾部Zが有する2個の車輪と、本体部Mが有する2(n−1)個の車輪とを合わせた2(n+1)個の車輪の全部が、ある1つの平面に接地可能なように、当該(n−1)個の車輪部Wが設けられる。すなわち、当該場合において、ロボット10をある平面に載置した場合、ロボット10の車輪は、全て当該平面に接地する。なお、当該2(n+1)個の車輪それぞれの円周面の材質は、横滑りしないように摩擦係数が高い材質(例えば、ゴム等)であることが望ましい。
以下では、一例として、エンドエフェクター部Eが備える1個の車輪部Wと、最後尾部Zが有する1個の車輪部Wと、本体部Mが有する(n−1)個の車輪部Wとを合わせた(n+1)個の車輪部Wの全部が、互いに同じ構成である場合について説明する。なお、本体部Mは、(n−1)個の第2関節J2のうちの一部又は全部のそれぞれについて、第2関節J2の回動軸と車輪部Wが有する車輪の車軸(回動軸)とが一致しないように車輪部Wが第2関節J2に設けられる構成であってもよい。また、当該(n+1)個の車輪部Wの一部又は全部は、互いに異なる構成であってもよい。
ここで、第1関節J1は、ロボット10の姿勢と基準姿勢とが一致している場合において第1方向と平行な回動軸を有する関節のことである。なお、第1関節J1は、当該場合において第1方向と非平行な回動軸を有する関節であってもよい。ここで、ロボット10の姿勢は、この一例において、ロボット10が備える複数の関節それぞれの回動角によって表される。なお、ロボット10の姿勢は、ロボット10に応じた他の量によって表される構成であってもよい。
基準姿勢は、ロボット10の姿勢のうちの基準となる姿勢のことである。基準姿勢は、この一例において、ロボット10の姿勢のうち、ロボット10が備える複数の関節(すなわち、n個の第1関節J1及び(n−1)個の第2関節J2)の全てが1直線上に並ぶ姿勢のことである。より具体的には、基準姿勢は、ロボット10の姿勢のうち、当該複数の関節それぞれの位置が1直線上に並ぶ姿勢のことである。この一例において、第1関節J1の位置は、第1関節J1の重心の位置によって表される。この一例において、第2関節J2の位置は、第2関節J2の重心の位置によって表される。以下では、説明の便宜上、ロボット10の姿勢と基準状態とが一致している場合において、当該複数の関節それぞれの位置を通る仮想的な直線を直線CLと称して説明する。また、以下では、一例として、ロボット10の姿勢と基準姿勢とが一致している場合において、ロボット10が備える複数の関節それぞれの回動角は、全て0である場合について説明する。すなわち、この一例において、当該複数の関節のそれぞれは、0を基準の回動角として関節の可動範囲における上限又は下限の角度まで回動可能な関節である。なお、第1関節J1の位置は、第1関節J1に応じた他の位置によって表される構成であってもよい。また、第2関節J2の位置は、第2関節J2に応じた他の位置によって表される構成であってもよい。また、ロボット10の基準姿勢は、当該姿勢に代えて、ロボット10の他の姿勢であってもよい。
第1方向は、ロボット10の姿勢と基準姿勢とが一致している場合において、直線CLと直交する方向のうちの1つである。以下では、一例として、第1方向が、当該場合におけるロボット10を接地面に載置した場合において、接地面と直交する方向(すなわち、接地面の法線方向)と一致する場合について説明する。なお、第1方向は、当該場合において接地面と直交する方向と一致しない構成であってもよい。
接地面は、ロボット10を載置可能な平面のことである。接地面は、例えば、屋内の床面、屋外の地面等の平面であるが、これらに限られず、他の平面であってもよい。前述した通り、ロボット10の姿勢と基準姿勢とが一致している場合、ロボット10が有する2(n+1)個の車輪は、全てある1つの平面に接地可能である。すなわち、当該場合、ロボット10を接地面に載置すると、当該全ての車輪は、接地面に接地する。また、当該場合、この一例において全ての車輪部Wが互いに同じ構成であるため、直線CLは、接地面と平行な直線である。
また、第2関節J2は、ロボット10の姿勢と基準姿勢とが一致している場合において、第2方向と平行な回動軸を有する関節のことである。第2方向は、当該場合において、直線CLと直交する方向のうち第1方向と異なる方向のことである。以下では、一例として、第2方向が、当該場合において直線CL及び第1方向のそれぞれと直交する方向である場合について説明する。すなわち、当該場合において、ロボット10を接地面に載置すると、第2関節J2の回動軸は、接地面と平行になる。
ここで、図2を参照し、ロボット10の基準姿勢と、第1関節J1と、第2関節J2とのそれぞれについて説明する。図2は、ロボット10の姿勢と基準姿勢とが一致している場合におけるロボット10の一例を示す図である。図2に示したように、ロボット10の姿勢と基準姿勢とが一致している場合、ロボット10が備える複数の関節(すなわち、n個の第1関節J1及び(n−1)個の第2関節J2)それぞれの位置は、1直線(図2に示した仮想的な直線CL)上に並ぶ。
また、図2に示した例では、ロボット10は、面MNに載置されている。すなわち、図2に示した面MNは、前述の接地面の一例である。当該例では、ロボット10の姿勢と基準姿勢とが一致しているため、ロボット10が有する複数の車輪は、全て面MNに接地している。
また、図2に示した例では、第1方向は、図2において矢印ANによって示した方向であって面MNと直交する方向(すなわち、面MNの法線方向)である。従って、図2に示したロボット10が備えるn個の第1関節J1それぞれの回動軸であって図2において点線A1によって示されている回動軸は、当該方向と平行である。また、図2に示した例では、第2方向は、直線CL及び当該方向と直交する方向である。従って、図2に示したロボット10が備える(n−1)個の第2関節J2それぞれの回動軸であって図2において点線A2によって示されている回動軸は、当該方向と平行である。
図1に戻る。ロボット10が備えるn個の第1関節J1のそれぞれは、図示しないアクチュエーターを備える。また、ロボット10が備える(n−1)個の第2関節J2のそれぞれは、図示しないアクチュエーターを備える。n個の第1関節J1のそれぞれが備えるアクチュエーター、及び(n−1)個の第2関節J2のそれぞれが備えるアクチュエーターは、無線によってロボット制御装置20と通信可能に接続されている。これにより、n個の第1関節J1のそれぞれが備えるアクチュエーター、及び(n−1)個の第2関節J2のそれぞれが備えるアクチュエーターは、ロボット制御装置20から取得される制御信号に基づいて、ロボット10を動作させる。ここで、無線による通信は、例えば、Wi−Fi(登録商標)等の通信規格によって行われる。なお、n個の第1関節J1のそれぞれが備えるアクチュエーターのうちの一部又は全部は、ケーブルを介してイーサネット(登録商標)やUSB等の規格によって行われる有線通信によってロボット制御装置20と接続される構成であってもよい。また、(n−1)個の第2関節J2のそれぞれが備えるアクチュエーターのうちの一部又は全部は、ケーブルを介してイーサネット(登録商標)やUSB等の規格によって行われる有線通信によってロボット制御装置20と接続される構成であってもよい。
また、ロボット10が備える(n+1)個の車輪部W(すなわち、エンドエフェクター部Eが備える1個の車輪部W、最後尾部Zが備える1個の車輪部W、及び本体部Mが備える(n−1)個の車輪部W)のうちの少なくとも一部には、各車輪を回動させる図示しないアクチュエーターが備えられている。すなわち、この一例において、当該(n+1)個の車輪部Wのうちの少なくとも一部が有する車輪は、アクチュエーターによって回動する能動輪である。また、当該(n+1)個の車輪部Wのうち能動輪を有する車輪部W以外の車輪部Wが有する車輪は、アクチュエーターによって回動しない受動輪である。なお、ロボット20が備える(n+1)個の車輪部Wは、1対の能動輪を有する車輪部Wと、1対の受動輪を有する車輪部Wと、能動輪及び受動輪の両方を1対の車輪として有する車輪部Wとのうちの少なくとも一部によって構成される。以下では、一例として、ロボット20が備える(n+1)個の車輪部Wが、1対の能動輪を有する車輪部Wと、1対の受動輪を有する車輪部Wとによって構成される場合について説明する。ロボット10が備えるアクチュエーターであってロボット10が有する能動輪を回動させるアクチュエーターは、無線によってロボット制御装置20と通信可能に接続されている。これにより、当該アクチュエーターは、ロボット制御装置20から取得される制御信号に基づいて、能動輪を回動させる。ここで、無線による通信は、例えば、Wi−Fi(登録商標)等の通信規格によって行われる。なお、当該アクチュエーターのうちの一部又は全部は、ケーブルを介してイーサネット(登録商標)やUSB等の規格によって行われる有線通信によってロボット制御装置20と接続される構成であってもよい。
ロボット制御装置20は、この一例において、ロボット10を制御する(動作させる)制御装置である。ロボット制御装置20は、後述する操作装置30がユーザーから受け付けた操作を示す操作情報を操作装置30から取得する。ロボット制御装置20は、取得した操作情報に応じてロボット10を制御する。
より具体的には、ロボット制御装置20は、ロボット10が有する部位のうち予め決められた部位とともに動く仮想的な点である制御点Tをロボット10に設定する。当該予め決められた部位は、例えば、エンドエフェクター部Eが備えるエンドエフェクターの重心である。なお、当該予め決められた部位は、当該重心に代えて、ロボット10が有する他の部位であってもよい。制御点Tは、例えば、TCP(Tool Center Point)である。なお、制御点Tは、TCPに代えて、仮想的な他の点であってもよい。
また、ロボット制御装置20は、ロボット10に設定した制御点Tとともに動く仮想的な三次元直交座標系である制御点座標系を対応付ける。制御点Tの位置は、基準となる三次元直交座標系である基準座標系における原点に対する制御点座標系における原点の相対的な位置によって表される。また、制御点Tの姿勢は、基準座標系における各座標軸の方向に対する制御点座標系における各座標軸の相対的な方向によって表される。なお、制御点Tの位置は、制御点Tに応じた他の位置によって表される構成であってもよい。また、制御点Tの姿勢は、制御点Tに応じた他の方向によって表される構成であってもよい。
基準座標系は、制御点座標系に対して相対的に静止している慣性系である。例えば、ロボット制御装置20は、ロボット制御装置20がロボット10を動かし始める前のタイミングであってロボット制御装置20がユーザーから基準座標系を設定する操作を受け付けたタイミングにおける制御点座標系と一致する三次元座標系を基準座標系として特定する。なお、ロボット制御装置20は、これに代えて、ユーザーにより予め決められた位置に設定された三次元座標系等の他の三次元座標系を基準座標系として特定する構成であってもよい。また、ロボット制御装置20は、他のタイミングにおける制御点座標系と一致する三次元座標系を基準座標系として特定する構成であってもよい。また、ロボット制御装置20は、操作装置30から操作情報を取得する毎に、操作情報を取得したタイミングにおける制御点座標系と一致する三次元座標系を基準座標系として特定する構成であってもよい。
ロボット制御装置20は、操作装置30から取得した操作情報と、後述する閉ループシステムとに基づいて、制御点Tの速度が、当該操作情報が示す目標速度に一致するように、ロボット10が備える複数の関節のそれぞれを回動させる。これにより、ロボット制御装置20は、ロボット10にユーザーが所望する動作を行わせることができる。すなわち、制御点Tの速度は、当該閉ループシステムにおける被制御量である。
制御点Tの速度は、制御点Tの位置が並進する速度である制御点並進速度と、制御点Tの姿勢が回動する制御点回動速度とのそれぞれを含んでいる。また、当該並進速度には、当該位置が制御点座標系におけるX軸に沿って並進する速度であるX軸並進速度と、当該位置が制御点座標系におけるY軸に沿って並進する速度であるY軸並進速度と、当該位置が制御点座標系におけるZ軸に沿って並進する速度であるZ軸並進速度とのそれぞれを含んでいる。また、当該回動速度には、当該姿勢が当該X軸周りに回動する速度であるX軸回動速度と、当該姿勢が当該Y軸周りに回動する速度であるY軸回動速度と、当該姿勢が当該Z軸周りに回動する速度であるZ軸回動速度とのそれぞれを含んでいる。
目標速度は、制御点並進速度を一致させる目標となる目標並進速度と、制御点回動速度を一致させる目標となる目標回動速度とが含まれている。また、目標並進速度には、X軸並進速度を一致させる目標となるX軸目標並進速度、Y軸並進速度を一致させる目標となるY軸目標並進速度、Z軸並進速度を一致させる目標となるZ軸目標並進速度のそれぞれが含まれている。また、目標回動速度には、X軸回動速度を一致させる目標となるX軸目標回動速度、Y軸回動速度を一致させる目標となるY軸目標回動速度、Z軸回動速度を一致させる目標となるZ軸目標回動速度のそれぞれが含まれている。
また、ロボット制御装置20は、以下において説明する閉ループシステムに基づくロボット10の制御によって、制御点Tの速度を目標速度と一致させながら、ロボット10が備える複数の関節のうちのユーザーが所望する1以上の関節それぞれの回動角を、ユーザーが所望する回動角と一致させることができる。これにより、ロボット制御装置20は、ロボット10を動作させ、ロボット10が有する車輪の少なくとも一部が接地している面MNからロボット10の少なくとも一部を持ち上げた状態において、制御点Tの速度を目標速度と一致させることができる。また、ロボット制御装置20は、ロボット10を動作させ、状態において、制御点Tの位置及び姿勢を動かさずに、ロボット10が有する部位のうち面MNから持ち上げられていない部位を動かすことができる。これらの結果、ロボット制御装置20は、ロボット10にユーザーが所望する動作を行わせることができる。
なお、ロボット制御装置20は、ロボット制御装置20又は操作装置30に予め記憶された動作プログラムに応じてロボット10を動作させる構成であってもよい。
ロボット制御装置20は、例えば、デスクトップPC(Personal Computer)、ノートPC、タブレットPC、多機能携帯電話端末(スマートフォン)、携帯電話端末、PDA(Personal Digital Assistant)等の情報処理装置である。なお、ロボット制御装置20は、これらの情報処理装置に代えて、他の情報処理装置であってもよい。
ロボット制御装置20は、無線によって操作装置30と通信可能に接続されている。これにより、ロボット制御装置20は、操作装置30から取得される要求に応じてロボット10を動作させる。ここで、無線による通信は、例えば、Wi−Fi(登録商標)等の通信規格によって行われる。なお、ロボット制御装置20は、ケーブルを介してイーサネット(登録商標)やUSB等の規格によって行われる有線通信によって操作装置30と接続される構成であってもよい。
操作装置30は、ロボット制御装置20にロボット10を制御させるコントローラー(例えば、ジョイスティック等)である。操作装置30は、ユーザー(図1に示した例では、ユーザーOP)から受け付けた操作に応じた操作情報を生成する。具体的には、操作装置30は、当該操作に応じて、X軸目標並進速度、Y軸目標並進速度、Z軸目標並進速度、X軸目標回動速度、Y軸目標回動速度、Z軸目標回動速度のそれぞれを特定する。操作装置30は、特定したX軸目標並進速度、Y軸目標並進速度、Z軸目標並進速度、X軸目標回動速度、Y軸目標回動速度、Z軸目標回動速度のそれぞれを示す情報、すなわち目標速度を示す情報を含む操作情報を生成する。操作装置30は、生成した操作情報をロボット制御装置20に出力する。
なお、操作情報は、目標速度を示す情報が含まれる構成に代えて、制御点Tを動かした場合における制御点Tの変位を一致させる目標となる目標変位を示す情報等の他の情報が含まれる構成であってもよく、目標速度を示す情報が含まれる構成に加えて、制御点Tを動かした場合における制御点Tの変位を一致させる目標となる目標変位を示す情報等の他の情報が含まれる構成であってもよい。
<ロボットが行う関節限界回避動作>
以下、ロボット10が行う動作のうちの関節限界回避動作について説明する。
以下、ロボット10が行う動作のうちの関節限界回避動作について説明する。
以下では、説明の便宜上、nx番目(nxは、ある順番を示す1以上の整数)の関節と称した場合、ロボット10が備える複数の関節(n個の第1関節J1及び(n−1)個の第2関節)のうちエンドエフェクター部E側から数えてnx番目の関節を示す。また、以下では、説明の便宜上、nx番目の第1関節J1と称した場合、ロボット10が備えたn個の第1関節J1のうちエンドエフェクター部E側から数えてnx番目の第1関節J1を示す。また、以下では、説明の便宜上、nx番目の第2関節J2と称した場合、ロボット10が備えた(n−1)個の第2関節J2のうちエンドエフェクター部E側から数えてnx番目の第2関節J2を示す。また、nx番目のリンク部材Lと称した場合、ロボット10が有する2(n−1)個のリンク部材Lのうちエンドエフェクター部E側から数えてnx番目のリンク部材Lを示す。
ロボット10は、前述した通り、ロボット10の状態を、ロボット10が有する車輪の少なくとも一部が接地している面MNからロボット10の少なくとも一部が持ち上げられた状態にすることができる。以下では、説明の便宜上、当該状態におけるロボット10の姿勢を、持上姿勢と称して説明する。より具体的には、ロボット10は、ロボット10の姿勢を、nh番目(nhは、1〜(2n−1)に含まれる偶数のうち4以上の偶数)の関節(すなわち、(nh/2)番目の第2関節J2)を回動させることにより、図3に示したようにヘッド部位HBを面MNから面MNの法線方向側に持ち上げながら、ベース部位BBが有する車輪の少なくとも一部を面MNに接地させた持上姿勢にすることができる。ただし、ロボット10は、ベース部位BBが備える第1関節J1の数と、ベース部位BBが有する能動輪の数との総和が2以上になるように、ヘッド部位HBを面MNから当該法線方向側に持ち上げる。ここで、図3は、ロボット10の姿勢が持上姿勢である場合におけるロボット10の一例を示す図である。図3に示したJ2hは、エンドエフェクター部E側から数えてnh番目の関節(すなわち、(nh/2)番目の第2関節J2)を示す。また、図3に示したように、ヘッド部位HBは、ロボット10が有する部位のうち、エンドエフェクター部Eからnh番目のリンク部材Lまでを含む部位のことである。ヘッド部位HBは、第1部位の一例である。また、ベース部位BBは、ロボット10が有する部位のうち、nh番目のリンク部材Lから最後尾部Zまでを含む部位のことである。ベース部位BBは、第2部位の一例である。なお、図3に示したリンク部材Lhは、当該リンク部材Lの一例である。
ここで、以下では、説明の便宜上、ベース部位BBが有する車輪をベース車輪と称して説明し、ベース車輪のうち面MNに接地している車輪を接地車輪と称し、面MNに接地していない車輪を非接地車輪と称して説明する。また、以下では、説明の便宜上、nx番目のベース車輪と称した場合、ベース部位BBが有する複数の車輪のうちエンドエフェクター部E側から数えてnx番目のベース車輪を示す。また、以下では、説明の便宜上、ヘッド部位HBが備える第1関節J1をヘッド第1関節と称し、ヘッド部位HBが備える第2関節J2をヘッド第2関節と称し、ベース部位BBが備える第1関節J1をベース第1関節と称し、ベース部位BBが備える第2関節J2をベース第2関節と称して説明する。また、以下では、説明の便宜上、ベース部位BBが有する車輪部Wそれぞれのことをベース車輪部と称して説明する。
ロボット10の姿勢と持上姿勢とが一致している場合におけるロボット10は、複数のベース第1関節のうちのあるベース第1関節の回動角が、第1関節J1の可動範囲における上限又は下限の角度に達した場合、当該角度を超える方向に当該ベース第1関節の回動角を回動させることが必要な動作(例えば、ベース部位BBの後退を伴う動作)を行うことができない状態である不可動状態になってしまう。その結果、ロボット10は、ユーザーが所望する動作を行うことができなくなってしまう。この問題は、ロボット10のようなヘビ型ロボットに特有の問題として知られている。
ここで、図4は、不可動状態におけるロボット10の一例を示す図である。図4に示した関節J1hは、ベース部位BBが備える第1関節J1のうち、第1関節J1の可動範囲における上限又は下限の角度に達している第1関節J1の一例を示している。図4に示したように、ベース部位BBが備える第1関節J1のうちの1つの回動角が当該角度に達している場合、ロボット10は、回動角が当該角度に達している第1関節J1の回動角を、当該角度を超える方向に回動させることが必要な動作(例えば、ベース部位BBの後退を伴う動作)を行うことができない。
ロボット10の状態が図4に示したような不可動状態になることによってユーザーが所望する動作をロボット10が行うことができなくなってしまう問題を解決するため、ロボット10は、関節限界回避動作を行うことができる。関節限界回避動作は、この一例において、ロボット10の状態を不可動状態から可動状態に変化させる(復旧させる)動作のことである。可動状態は、ロボット10の状態のうち、ベース部位BBが有する複数の第1関節J1のそれぞれの回動角が全て、第1関節J1の可動範囲における上限又は下限の角度に達していない状態のことである。
ロボット10は、関節限界回避動作として、ベース第1関節それぞれの回動角を第1関節J1の可動範囲における上限又は下限の角度よりも小さくする動作を行う。例えば、ロボット10は、関節限界回避動作において、ロボット10の姿勢を、接地車輪それぞれの車軸(回動軸)同士の幾何学的な関係が予め決められた幾何学的な関係になる姿勢である目標姿勢に近づけることによって、当該回動角を当該角度よりも小さくする。当該予め決められた幾何学的な関係は、この一例において、平行である。なお、当該予め決められた幾何学的な関係は、平行に代えて、他の幾何学的な関係であってもよい。目標姿勢は、例えば、ロボット10の姿勢のうち、ベース部位BBが備える複数の関節それぞれの位置が1直線上に並ぶ姿勢である。すなわち、当該姿勢において、接地車輪それぞれの車軸(回動軸)同士は、平行になる。ロボット10の姿勢が目標姿勢と一致している場合、ベース第1関節それぞれの回動角は、0である。すなわち、ロボット10の姿勢を目標姿勢に近づけることにより、ロボット10は、ベース第1関節それぞれの回動角を、第1関節J1の可動範囲における上限又は下限の角度よりも小さくすることができる。ここで、図5は、ロボット10の姿勢と目標姿勢とが一致している場合におけるロボット10の一例を示す図である。図5に示したように、当該場合、ベース部位BBが備える複数の関節それぞれの位置は、全て1直線上に並ぶ。すなわち、ロボット10は、関節限界回避動作によって、例えば、ロボット10の姿勢を図4に示した姿勢から図5に示した姿勢へと近づけることができ、その結果、ベース第1関節それぞれの回動角を、第1関節J1の可動範囲における上限又は下限の角度よりも小さくすることができる。なお、目標姿勢は、これに代えて、ロボット10の状態が可動状態である場合における他の姿勢であってもよい。また、ロボット10は、関節限界回避動作において、ロボット10の姿勢を目標姿勢に近づける方法に代えて、他の方法によって当該回動角を当該角度よりも小さくする構成であってもよい。
ここで、ロボット10は、ベース部位BBが有する車輪の全てが接地車輪であった場合、関節限界回避動作においてロボット10の状態を不可動状態から可動状態へ変化させることが困難な場合がある。これは、接地車輪が横滑りしないことによって生じる問題である。そこで、ロボット10は、関節限界回避動作において、ベース第2関節のそれぞれを回動させ、ベース車輪の一部を非接地車輪に変化させる。また、ロボット10は、関節限界回避動作において、予め決められた時間である所定時間が経過する毎に、ベース第2関節のそれぞれを回動させ、複数のベース車輪のうち非接地車輪として面MNに接地していないベース車輪の組み合わせを変化させる。これにより、ロボット10は、関節限界回避動作において、接地車輪それぞれの車軸(回動軸)同士が平行になる姿勢である目標姿勢に近づけることができる。
<ロボット制御装置によるロボットの制御方法>
以下、ロボット制御装置20によるロボット10の制御方法について説明する。なお、以下では、ロボット10の姿勢が持上姿勢ではない場合におけるロボット制御装置20によるロボット10の制御方法は、既によく知られた方法が存在するため、説明を省略する。すなわち、以下では、ロボット10の姿勢が持上姿勢である場合におけるロボット制御装置20によるロボット10の制御方法について説明する。また、以下では、一例として、ロボット10の姿勢が持上姿勢である場合において、ロボット10のヘッド部位HBに含まれるリンク部材Lの数が変化しない場合について説明する。なお、ロボット10の姿勢が持上姿勢である場合において、ロボット10のヘッド部位HBに含まれるリンク部材Lの数は、変化してもよい。
以下、ロボット制御装置20によるロボット10の制御方法について説明する。なお、以下では、ロボット10の姿勢が持上姿勢ではない場合におけるロボット制御装置20によるロボット10の制御方法は、既によく知られた方法が存在するため、説明を省略する。すなわち、以下では、ロボット10の姿勢が持上姿勢である場合におけるロボット制御装置20によるロボット10の制御方法について説明する。また、以下では、一例として、ロボット10の姿勢が持上姿勢である場合において、ロボット10のヘッド部位HBに含まれるリンク部材Lの数が変化しない場合について説明する。なお、ロボット10の姿勢が持上姿勢である場合において、ロボット10のヘッド部位HBに含まれるリンク部材Lの数は、変化してもよい。
ここで、以下の説明において用いる変数について説明する。
以下では、説明の便宜上、i番目(iは、1〜nのうちいずれかの整数)の第1関節J1の回動角をφiと示す。また、以下では、説明の便宜上、e番目(eは、1〜(n−1)のうちいずれかの整数)の第2関節J2の回動角をψeと示す。また、以下では、説明の便宜上、ベース車輪のうちの能動輪の数をnwと称して説明する。ここで、nwは、1〜(2(n+1)−nh)のうちいずれかの整数である。ここで、ベース車輪のそれぞれに、(1〜nw)の範囲におけるいずれかの整数を、ベース車輪の順番として互いに重複が無いように割り当てる。当該予め決められた順は、ランダムであってもよく、何らかの規則に応じた順であってもよい。そして、以下では、説明の便宜上、j番目(jは、1〜nwのうちいずれかの整数)のベース車輪の回動角をρjと示す。
また、ロボット10の姿勢と持上姿勢とが一致している場合、ヘッド第1関節の個数とヘッド第2関節の個数との合計は、nh個である。このため、以下では、ヘッド部位HBが有するnh個の関節(すなわち、(nh/2)個のヘッド第1関節及び(nh/2)個のヘッド第2関節)それぞれの回動角を成分として有するベクトルφhを、以下に示した式(1)のように定義する。
また、以下では、(n−(nh/2))個のベース第1関節それぞれの回動角を成分として有するベクトルφbを、以下に示した式(2)のように定義する。なお、以下では、(n−(nh/2))個のベース第1関節の数をnbと称して説明する。
また、以下では、ベース車輪のうちnw個の能動輪それぞれの回動角を成分として有するベクトルρを、以下に示した式(3)のように定義する。
また、以下では、制御点Tの位置及び姿勢のそれぞれを示す値(以下に示した式(4)におけるxE、yE、zE、αE、βE、γEのそれぞれ)を成分として有するベクトルwを、以下に示した式(4)のように定義する。
ここで、上記の式(4)におけるxEは、基準座標系におけるX軸方向の位置であって制御点座標系の原点の位置を示す。また、式(4)におけるyEは、基準座標系におけるY軸方向の位置であって制御点座標系の原点の位置を示す。また、式(4)におけるzEは、基準座標系におけるZ軸方向の位置であって制御点座標系の原点の位置を示す。また、式(4)におけるαEは、制御点座標系を回動させて基準座標系に一致させる場合における3つのオイラー角のうち基準座標系におけるX軸周りの回動についての回動角を示す。また、式(4)におけるβEは、制御点座標系を回動させて基準座標系に一致させる場合における3つのオイラー角のうち基準座標系におけるY軸周りの回動についての回動角を示す。また、式(4)におけるγEは、制御点座標系を回動させて基準座標系に一致させる場合における3つのオイラー角のうち基準座標系におけるZ軸周りの回動についての回動角を示す。
また、以下では、上記の式(1)に示したベクトルφh及び上記の式(2)に示したベクトルφbのそれぞれを成分として有するベクトルφを、以下に示した式(5)のように定義する。
また、以下では、上記の式(4)に示したベクトルw及び上記の式(5)に示したベクトルφのそれぞれを成分として有するベクトルqを、以下に示した式(6)のように定義する。
次に、ロボット10についての運動学モデルについて説明する。
ロボット10についての運動学モデルは、制御量と、被制御量との関係を表す数理モデルである。制御量は、ロボット制御装置20が直接的に制御する対象であり、例えば、ロボット10が備える複数の関節それぞれの回動速度のことである。被制御量は、制御量の変化に応じて変化する量、すなわち、ロボット制御装置20が間接的に制御する対象であり、例えば、制御点Tの速度である。
この一例におけるロボット10についての運動学モデルは、2つの速度関係式である第1速度関係式と第2速度関係式によって表される。
第1速度関係式は、ロボット10が有するベース車輪が全て受動輪であり、当該受動輪の全てが面MNに接地しており、当該受動輪の全てが横滑りしないと仮定した場合(すなわち、ベース車輪の全てが面MNに接地しているロボット10がベース車輪によって動かない場合)における制御量と、被制御量との間の複数の速度拘束式を1つの行列にまとめた式である。この場合、被制御量は、前述の制御点Tの速度となる。また、当該場合、制御量は、ロボット10が備える各関節(n個の第1関節J1と、(n−1)個の第2関節J2)それぞれの回動速度(角速度)のうち、ヘッド第1関節それぞれの回動速度と、ヘッド第2関節それぞれの回動速度と、ベース第1関節それぞれの回動速度とのそれぞれとなる。これらの制御量及び被制御量に基づいて、第1速度関係式は、上記において定義した変数を用いて、以下の式(7)のように表すことができる。
ここで、上記の式(7)に示した行列Aaは、以下の式(8)に示した行列である。また、式(7)に示した行列Baは、以下の式(9)に示した行列である。
また、上記の式(7)における第k行(ここで、1≦k≦nb+1)は、k番目のベース車輪部が有する1対の車輪が横滑りしないことを意味する速度拘束式を表している。ここで、本実施形態では、ある車輪が横滑りしないことは、当該車輪の車軸方向に対して当該車輪が滑らないことを意味する。当該速度拘束式は、制御点Tに対する各関節の位置及び姿勢に基づく式である。当該各関節は、ロボット10が備える各関節のことである。当該速度拘束式は、既知の方法によって導出されてもよく、今後開発される方法によって導出されてもよい。このため、以下では、当該速度拘束式についての詳細な説明を省略する。
また、上記の式(7)における第l行(ここで、nb+2≦l≦nb+4)は、ベース車輪の全てが面MNに接触していることを意味する速度拘束式を表している。当該速度拘束式は、制御点Tに対する各関節の位置及び姿勢に基づく式である。当該各関節は、ロボット10が備える各関節のことである。当該速度拘束式は、既知の方法によって導出されてもよく、今後開発される方法によって導出されてもよい。このため、以下では、当該速度拘束式についての詳細な説明を省略する。
このように、上記の式(7)に示した第1速度関係式は、ベース車輪の全てが面MNに接地しているロボット10がベース車輪によって動かない場合において、制御点Tの速度と、ヘッド第1関節それぞれの回動速度、ヘッド第2関節それぞれの回動速度、ベース第1関節それぞれの回動速度のそれぞれとの間の速度拘束式を表している。
一方、第2速度関係式は、ロボット10が有するベース車輪が受動輪と能動輪との両方を含み、ベース車輪の全てが面MNに接地しており、当該ベース車輪に含まれる能動輪の全てが横滑りしないと仮定した場合における制御量と、被制御量との間の複数の速度拘束式を1つの行列にまとめた式である。ここで、ある能動輪が横滑りしないことは、当該能動輪の車軸に直交する方向(すなわち、当該能動輪の回動によって当該能動輪が進む方向)に対して滑らないことを意味する。換言すると、当該能動輪が横滑りしないことは、当該能動輪が回転しない限り、当該能動輪が当該方向に対して動くことがないことをいみする。この場合、被制御量は、前述の制御点Tの速度となる。また、当該場合、制御量は、ヘッド第1関節それぞれの回動速度と、ヘッド第2関節それぞれの回動速度と、ベース第1関節それぞれの回動速度と、ロボット10が有するベース車輪のうちの能動輪それぞれの回動速度とのそれぞれとなる。これらの制御量及び被制御量に基づいて、第2速度関係式は、上記において定義した変数を用いて、以下の式(10)のように表すことができる。
ここで、上記の式(10)に示したベクトルuは、以下に示した式(11)によって定義される。また、上記の式(10)に示した行列Abは、以下の式(12)に示した行列である。また、式(10)に示した行列Bbは、以下の式(13)に示した行列である。
このように、上記の式(10)に示した第2速度関係式は、ベース車輪のうちの能動輪が全て面MNに接地している場合において、制御点Tの速度と、ヘッド第1関節それぞれの回動速度、ヘッド第2関節それぞれの回動速度、ベース第1関節それぞれの回動速度、当該能動輪それぞれの回動速度とのそれぞれとの間の速度拘束式を表している。
ベース車輪の全てが面MNに接地している場合におけるロボット10についての運動学モデルは、上記の式(7)に示した第1速度関係式と、上記の式(10)に示した第2速度関係式とによって表される。ここで、第1速度関係式及び第2速度関係式である式(7)及び式(10)は、以下に示した式(14)〜式(16)のようにまとめることができる。
上記の式(16)に示したゼロ行列は、式(7)と式(10)とをまとめる際において、行列Baの列数を、行列Bbの列数に合わせるために行列Bに挿入された行列である。
このようにして導出した式(14)は、前述した通り、ベース車輪の全てが面MNに接地している場合におけるロボット10についての運動学モデルを表している。しかし、ロボット10は、関節限界回避動作において、ベース車輪のうちの一部を非接地車輪に変化させる。そこで、以下では、式(14)〜式(16)に基づいて、ベース車輪のうちの一部が非接地車輪であり、ベース車輪のうちの接地車輪のそれぞれにおいて横滑りが発生しない場合におけるロボット10についての運動学モデルを表す式を導出する。以下では、説明の便宜上、当該運動学モデルを、第2運動学モデルと称して説明する。
第2運動学モデルは、ベース車輪の状態に応じて異なる運動学モデルとなる。ベース車輪の状態は、この一例において、第1組み合わせと第2組み合わせによって特徴づけられる状態である。第1組み合わせは、非接地車輪として選択された1対のベース車輪を有するベース車輪部であって1つ以上のベース車輪部の組み合わせのことである。第2組み合わせは、ベース車輪に含まれる能動輪のうち非接地車輪として選択された能動輪の組み合わせのことである。第2組み合わせは、第1組み合わせが決まることによって一意に決まる。以下では、ベース車輪の状態のうちのある状態と、当該状態に応じた第2運動学モデルとのそれぞれを変数σ(σは、1〜Nmaxのうちのいずれかの整数であり、Nmaxは、ベース車輪の状態の総数である)によって識別(ラベル付け)する。以下では、説明の便宜上、あるσに応じた第2運動学モデルのことを、当該σの第2運動学モデルと称して説明する。
例えば、あるσの第2運動学モデルにおける非接地車輪として選択された1対のベース車輪を有するベース車輪部の総数をn^{―}_{σ}によって表し、当該非接地車輪として選択された能動輪の総数をn^{〜}_{σ}によって表した場合、p=n^{―}_{σ}、s=n^{〜}_{σ}とそれぞれ定義すると、当該ベース車輪部の組み合わせである第1組み合わせは、(v1番目の当該ベース車輪部、v2番目の当該ベース車輪部、…、vp番目の当該ベース車輪部)という組み合わせとして表すことができ、非接地車輪として選択された能動輪についての第2組み合わせは、(r1番目の能動輪、r2番目の能動輪、…、rs番目の能動輪)という組み合わせとして表すことができる。ここで、v1、v2、…、vpのそれぞれは、1〜(nb+1)のうち第1組み合わせに含まれるベース車輪部のそれぞれに対応するいずれかの整数であって互いに異なる整数である。また、r1、r2、…、rsのそれぞれは、1〜nwのうちの能動輪に対応するいずれかの整数であって互いに異なる整数である。当該第2運動学モデルは、上記の式(14)〜式(16)に基づいて、以下に示した式(17)〜式(19)のように表すことができる。
ここで、上記の式(18)に示した行列Aaσは、以下の式(20)に示した行列である。また、式(18)に示した行列Abσは、以下の式(21)に示した行列である。また、式(19)に示した行列Baσは、以下の式(22)に示した行列である。また、式(19)に示した行列Bbσは、以下の式(23)に示した行列である。
また、行列Aaσは、行列Aaの各行が表すベクトルのうちv1行目のベクトル、v2行目のベクトル、…、vp行目のベクトルのそれぞれを、行列Aaから取り除いた行列である。また、行列Baσは、行列Baの各行が表すベクトルのうちv1行目のベクトル、v2行目のベクトル、…、vp行目のベクトルのそれぞれを、行列Baから取り除いた行列である。また、行列Abσは、行列Abの各行が表すベクトルのうちr1行目のベクトル、r2行目のベクトル、…、rs行目のベクトルのそれぞれを、行列Abから取り除いた行列である。また、行列Bbσは、行列Bbの各行が表すベクトルのうちr1行目のベクトル、r2行目のベクトル、…、rs行目のベクトルのそれぞれを、行列Bbから取り除いた行列である。
すなわち、式(17)は、式(14)から非接地車輪についての速度拘束式を取り除いた式である。このため、式(17)が表す連立方程式の解は、不定となる。これを利用し、式(14)において、式(17)を算出する際に取り除いた速度拘束式を、他の速度拘束式に置き換えることができる。当該他の速度拘束式は、ユーザーが所望する速度拘束式であってもよく、ロボット10において実現可能であれば他の如何なる速度拘束式であってもよい。以下では、説明の便宜上、当該他の速度拘束式のそれぞれを示す自由度を、冗長自由度と称して説明する。
冗長自由度を用いた場合、第2運動学モデルでは、制御点Tの速度に加えて、ユーザーが所望する他の量を被制御量とすることができる。そこで、以下では、式(4)に示したベクトルwを、以下の式(24)に示したベクトルw^{〜}のように拡張する。
上記の式(24)に示したφ^{〜}は、以下の式(25)及び式(26)のように定義された形状可制御点である。形状可制御点については、例えば、「M. Tanaka and F. Matsuno, “Modeling and Control of Head Raising Snake Robots by Using Kinematic Redundancy,” J. of Intelligent & Robotic Systems, vol.75, no.1, pp.53-69, 2014.」等に詳しく記載されているため、説明を省略する。
ここで、上記の式(25)及び式(26)に示した行列Sは、各成分が0又は1であり、ベクトルφの各成分のうちユーザーが所望する成分のみを選択する(残す)選択行列である。また、式(26)に示したmは、形状可制御点として表現する冗長自由度の総数を示す。すなわち、上記の式(24)のような拡張を行うことにより、第2運動学モデルでは、ベクトルwに加えて、ユーザーが所望する1以上の関節それぞれ(ヘッド第1関節、ヘッド第2関節、ベース第1関節のいずれか)の回動速度を被制御量とすることができる。以下に示した式(27)は、ベクトルw^{〜}と、ユーザーが所望する速度拘束式とに基づいて、式(17)を拡張した式である。なお、mは、式(17)において式(14)から取り除かれた速度拘束式の数以下であってもよい。すなわち、形状可制御点として用いる冗長自由度の数がmであり、当該数からmを差し引いて残った数の冗長自由度の少なくとも一部は、ユーザーが所望する各種の制御に用いることができる。
上記の式(27)に示した行列A^{〜}_{σ}は、以下の式(28)に示した行列である。ここで、Imは、m行m列の単位行列である。また、式(27)に示した行列B^{〜}_{σ}、以下の式(29)に示した行列である。
以上のように、第2運動学モデルは、上記の式(27)によって表される。ここで、前述した通り、ロボット10は、関節限界回避動作において、前述の所定時間が経過する毎に、ベース第2関節のそれぞれを回動させ、複数のベース車輪のうち非接地車輪として面MNに接地していないベース車輪の組み合わせを、予め決められた組み合わせであって互いに異なる複数の組み合わせへと予め決められた順に周期的に変化させる。すなわち、ロボット10は、関節限界回避動作において、ベース車輪の状態を変化させる。従って、第2運動学モデルは、このような運動を表すことが可能な数理モデルではない。そこで、第2運動学モデルを更に拡張し、第3運動学モデルを導出する。
この一例では、予め決められた複数の状態であってベース車輪の状態の組み合わせの中から、時間の経過に応じて予め決められた順にベース車輪の状態が周期的に選択される(変化する)ように第2運動学モデルを拡張し、第3運動学モデルを導出する。なお、第3運動学モデルの導出方法は、これに代えて、他の方法であってもよい。
ここで、あるタイミングにおいて選択されたベース車輪の状態が、所定時間ΔT保持されると仮定すると、上記の式(27)に示したσは、以下の式(30)及び式(31)に示したように、経過時間tの関数であるσ(t)に拡張することができる。
ここで、上記の式(30)に示したtkは、以下の式(32)によって定義されている。
そして、式(30)〜式(32)を用いて式(27)を経過時間tの関数に拡張することにより、第3運動学モデルとして以下に示した式(33)が得られる。以下では、説明の便宜上、あるσ(t)に応じた第3運動学モデルのことを、当該σ(t)の第3運動学モデルと称して説明する。
ここで、あるσ(t)の第3運動学モデルにおけるベクトルuは、当該σ(t)の第3運動学モデルにおける制御量である。換言すると、当該ベクトルuは、ロボット制御装置20がロボット10を制御する際に用いる制御入力である。このベクトルuは、以下に示した式(34)によって表すことができる。
ここで、上記の式(34)に示したベクトルuσは、以下の式(35)に示したベクトルである。また、式(34)に示したベクトルuσkerは、以下の式(36)に示したベクトルである。また、式(35)の右辺において最も左側の行列は、以下の式(37)に示した行列である。ここで、式(37)に示した「W†」は、行列Wを用いた重み付き疑似逆行列を示す。行列Wは、対角成分に正の値の重みを有する対角行列である。
ここで、上記の式(34)〜式(37)では、式を簡略化するため、σの時間依存性を明確に記載することを省略している(すなわち、σ(t)を単にσと記載している)。また、上記の式(35)に示したベクトルw^{〜}_dは、ベクトルw^{〜}の目標ベクトル(目標値)である。また、式(35)に示した行列Kは、被制御量を目標値に収束させるためのフィードバックゲインであり、正定な行列である。また、式(36)に示したkηは、冗長自由度に関するゲインであり、0より大きい値である。また、式(36)に示したベクトルηは、以下の式(38)に示した任意のベクトルである。
上記の式(34)のようにベクトルuを表すことにより、式(33)及び式(34)に基づいて、以下の式(39)に示した閉ループシステムを導出することができる。これはすなわち、前述の被制御量を目標値に収束させることが可能であることを示している。
従って、ロボット制御装置20は、上記の式(34)に示した制御量(すなわち、制御入力)と式(33)に示した第3運動学モデルとを用いてロボット10の制御を行うことにより、ユーザーが所望する動作をロボット10に行わせることができる。なお、式(39)に示した中括弧内第2項は、ロボット制御装置20が操作装置30から取得した操作情報が示す目標速度を各成分として有するベクトルである。ロボット制御装置20は、操作装置30から当該操作情報を取得し、取得した当該操作情報に基づいて当該ベクトルを生成する。そして、ロボット制御装置20は、生成した当該ベクトルを制御量(すなわち、制御入力)として用いることにより、ベクトルw^{〜}が目標ベクトルw^{〜}_dに近づくようにロボット10が備える各関節及び各車輪を回動させる。なお、ロボット制御装置20がこのような制御を行う具体的な方法については、既知の方法であってもよく、今後開発される方法であってもよいため、説明を省略する。
ここで、上記において説明したロボット10の制御方法について補足する。前述の被制御量は、閉ループシステムである式(39)に基づいて変化する。式(39)が示す通り、行列A^{〜}_{σ(t)}が列フルランクである場合、被制御量は、目標値に収束する。行列A^{〜}_{σ(t)}が列フルランクではない場合におけるロボット10の姿勢は、特異姿勢と呼ばれる。すなわち、行列A^{〜}_{σ(t)}が列フルランクであるということは、ロボット10の姿勢が特異姿勢ではないことを意味する。なお、ロボット10のような能動輪を有するヘビ型ロボットは、受動輪のみで構成されたヘビ型ロボットと比較して特異姿勢になりにくいことが知られている。そして、あるロボットが全車輪対に能動輪を有する場合、「Motoyasu Tanaka and Kazuo Tanaka: Singularity Analysis of a Snake Robot and an Articulated Mobile Robot with Unconstrained Links, IEEE Transactions on Control Systems Technology, vol.24, no.6, pp.2070-2081, 2016.」等に詳しく記載されているように、ベース部位BBに起因して当該ロボットの姿勢が特異姿勢になることがほとんどない。このため、当該ロボットの制御において被制御量は、目標値に収束する。
ここで、上記の式(34)の右辺第2項は、冗長自由度のうち形状可制御点として用いていない冗長自由度に起因する項である。このため、上記の式(33)を用いたロボット10の制御では、当該右辺第2項を用いて、ベクトルw^{〜}の各成分に影響を与えることなく(当該各成分を変化させることなく)、他の制御目標(すなわち、サブタスク)である第2制御目標を達成することができる。以下では、一例として、第2制御目標が、評価関数Vを小さくする制御である場合について説明する。
上記の式(33)を用いたロボット10の制御では、評価関数Vの具体的な関数形を決めることにより、ロボット制御装置20は、操作装置30から取得した操作情報に基づいて、ユーザーが所望する位置及び姿勢に制御点Tの位置及び姿勢を一致させながら、当該関数形に応じた動作をロボット10に行わせることができる。前述のロボット10の関節限界回避動作は、当該関数形に応じた動作の一例である。また、当該関数形に応じた動作には、ロボット10が転倒しないようにバランスを取る動作である転倒回避動作等の他の動作も含まれる。
ここで、評価関数Vを小さくする方法について説明する。前述した通り、ベクトルηは、任意のベクトルである。このため、ベクトルηを、評価関数Vを用いて以下の式(40)のように定義することができる。
上記の式(40)に示したξθは、ベクトルξのθ番目の成分を示す。また、ベクトルξは、以下の式(41)に示したように定義されている。
上記の式(40)のようにベクトルηを定義した場合、評価関数Vの時間についての一階微分は、以下の式(42)のようになる。
上記の式(40)における下段の右辺第3項は、半負定である。このため、評価関数Vは、当該右辺第3項を用いて小さくすることができる。
一方、評価関数の具体的な関数形は、例えば、以下の式(43)〜式(45)に示したような関数形である。
上記の式(44)に示した行列KVは、対角行列であり、KV≧0である。なお、当該0は、ゼロ行列である。また、dminは、ロボット10の転倒の起こり易さを示す値であり、小さいほどロボット10の転倒が起こり易い。dminについては、後述する。
式(44)に示したV1が小さくなるようにロボット制御装置20が制御した場合、ロボット10は、ロボット10の姿勢を目標姿勢に変化させる。すなわち、式(44)に示したV1が小さくなるようにロボット制御装置20が制御すると、ロボット10は、ヘッド第1関節それぞれの回動角と、ヘッド第2関節それぞれの回動角と、ベース第1関節それぞれの回動角とのそれぞれを0に近づける。これにより、ロボット制御装置20は、ロボット10に関節限界回避動作を行わせることができる。
一方、式(44)に示したV2が小さくなるようにロボット制御装置20が制御した場合、ロボット10は、前述のdminが大きくなるようにロボット10の姿勢を変化させる。ここで、dminは、面MNと直交する方向に沿ってロボット10を見た場合におけるロボット10の重心の位置である位置PGと、当該場合におけるベース部位BBが有する各車輪と面MNとの接点それぞれを頂点として有する凸包である支持多角形との間の最小長さのことである。当該最小長さは、位置PGと支持多角形とに応じた最小の長さであれば如何なる長さであってもよく、例えば、支持多角形が有する複数の辺それぞれまでの位置PGからの垂線のうち最も短い垂線の長さのことである。
このように、ロボット制御装置20は、上記の式(33)を用いてロボット10を制御する際、式(43)に示した評価関数Vが小さくなるように制御することにより、ロボット10に関節限界回避動作を行わせながら、転倒回避動作を行わせることができる。なお、評価関数Vには、上記の式(44)に示したV1と、上記の式(45)に示したV2とのうちのいずれか一方が含まれる構成であってもよく、V1とV2とのいずれか一方又は両方に代えて、他の関数が含まれる構成であってもよく、V1とV2に加えて、他の関数が含まれる構成であってもよい。ここで、評価関数VにV1が含まれており、且つ、評価関数VにV2が含まれていない場合、ロボット制御装置20は、評価関数Vが小さくなるように制御することにより、ロボット10に関節限界回避動作を行わせ、転倒回避動作を行わせない。一方、評価関数VにV1が含まれておらず、且つ、評価関数VにV2が含まれている場合、ロボット制御装置20は、評価関数Vが小さくなるように制御することにより、ロボット10に関節限界回避動作を行わせず、転倒回避動作を行わせる。
以上のようにして、ロボット制御装置20は、ロボット10を制御し、ロボット10に復旧動作を行わせることができる。
<ロボット制御装置のハードウェア構成>
以下、図6を参照し、ロボット制御装置20のハードウェア構成について説明する。図6は、ロボット制御装置20のハードウェア構成の一例を示す図である。
以下、図6を参照し、ロボット制御装置20のハードウェア構成について説明する。図6は、ロボット制御装置20のハードウェア構成の一例を示す図である。
ロボット制御装置20は、例えば、CPU(Central Processing Unit)21と、記憶部22と、通信部24を備える。これらの構成要素は、バスBSを介して相互に通信可能に接続されている。また、ロボット制御装置20は、通信部24を介してロボット10、操作装置30のそれぞれと通信を行う。
CPU21は、記憶部22に格納された各種プログラムを実行する。
記憶部22は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部22は、ロボット制御装置20に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部22は、ロボット制御装置20が処理する各種の情報、各種のプログラム等を格納する。
通信部24は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
記憶部22は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、ROM(Read−Only Memory)、RAM(Random Access Memory)等を含む。なお、記憶部22は、ロボット制御装置20に内蔵されるものに代えて、USB等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部22は、ロボット制御装置20が処理する各種の情報、各種のプログラム等を格納する。
通信部24は、例えば、USB等のデジタル入出力ポートやイーサネット(登録商標)ポート等を含んで構成される。
<ロボット制御装置の機能構成>
以下、図7を参照し、ロボット制御装置20の機能構成について説明する。図7は、ロボット制御装置20の機能構成の一例を示す図である。
以下、図7を参照し、ロボット制御装置20の機能構成について説明する。図7は、ロボット制御装置20の機能構成の一例を示す図である。
ロボット制御装置20は、記憶部22と、通信部24と、制御部26を備える。
制御部26は、ロボット制御装置20の全体を制御する。制御部26は、受付部261と、ロボット制御部263を備える。制御部26が備えるこれらの機能部は、例えば、CPU21が、記憶部22に記憶された各種のプログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェア機能部であってもよい。
受付部261は、操作装置30から操作情報を取得し、取得した操作情報を、操作装置30による操作として受け付ける。
ロボット制御部263は、受付部261が操作装置30から当該操作として受け付けた操作情報と、上記の式(33)に示した第3運動学モデルと、式(43)に示した評価関数Vとに基づいて、制御入力である式(34)を計算し、当該操作情報に応じた動作をロボット10に行わせる。例えば、ロボット制御部263は、受付部261が操作装置30からの操作として受け付けた操作情報に応じて、ロボット10に関節限界回避動作を行わせる。
ロボット制御部263は、受付部261が操作装置30から当該操作として受け付けた操作情報と、上記の式(33)に示した第3運動学モデルと、式(43)に示した評価関数Vとに基づいて、制御入力である式(34)を計算し、当該操作情報に応じた動作をロボット10に行わせる。例えば、ロボット制御部263は、受付部261が操作装置30からの操作として受け付けた操作情報に応じて、ロボット10に関節限界回避動作を行わせる。
<ロボット制御装置がロボットを動作させる処理>
以下、図8を参照し、ロボット制御装置20がロボット10を動作させる処理について説明する。図8は、ロボット制御装置20がロボット10を動作させる処理の流れの一例を示すフローチャートである。
以下、図8を参照し、ロボット制御装置20がロボット10を動作させる処理について説明する。図8は、ロボット制御装置20がロボット10を動作させる処理の流れの一例を示すフローチャートである。
以下では、ロボット制御装置20が既に基準座標系を特定している場合について説明する。
受付部261は、操作装置30から操作情報を取得するまで待機する(ステップS110)。操作装置30から操作情報を取得したと判定した場合(ステップS110−YES)、受付部261は、取得した操作情報を操作装置30からの操作として受け付ける。
次に、ロボット制御部263は、予め決められた条件が満たされているか否かを判定する(ステップS120)。当該条件には、例えば、ベース第1関節の少なくとも1つの回動角が、第1関節J1の可動範囲における上限又は下限の角度に達していること、が含まれる。なお、当該条件には、当該回動角が当該角度に達していることに代えて、ユーザーからの操作を受け付けたこと等の他の条件が含まれる構成であってもよく、当該回動角が当該角度に達していることに加えて、当該ユーザーからの操作を受け付けたこと等の他の条件が含まれる構成であってもよい。当該ユーザーからの操作は、ロボット制御装置20に評価関数Vを小さくする制御を行わせる操作である。ここで、ステップS120の処理について説明する。
ステップS120では、ロボット制御部263は、ステップS110において受付部261が取得した操作情報に基づいて、ロボット10が備える各関節の回動角を算出する。例えば、ロボット制御部263は、当該操作情報が示す目標速度を積分し、当該回動角を算出する。なお、ロボット制御部263は、当該回動角それぞれを示す情報を、ロボット10が備える各アクチュエーターのエンコーダーから取得する構成であってもよい。ロボット制御部263は、算出した回動角のうちのベース第1関節の回動角のそれぞれについて、回動角が、第1関節J1の可動範囲における上限又は下限の角度に達していないか否かを判定する。ロボット制御部263は、当該ベース第1関節の回動角のうち当該角度に達している回動角が1以上存在する場合、予め決められた条件が満たされていると判定する。一方、ロボット制御部263は、当該ベース第1関節の回動角のうち当該角度に達している回動角が存在しない場合、予め決められた条件が満たされていないと判定する。
ロボット制御部263は、予め決められた条件が満たされていると判定した場合(ステップS120−YES)、第1算出処理を行う(ステップS130)。ここで、第1算出処理について説明する。
ロボット制御部263は、ステップS110において受付部261が取得した操作情報と、上記の式(33)に示した第3運動学モデルと、式(43)に示した評価関数Vとに基づいて、制御入力である式(34)を計算し、評価関数Vを小さくなるようにしながら、制御点Tの速度を、当該操作情報が示す目標速度に一致させた場合における回動角であってロボット10が備える複数の関節それぞれの回動角を算出する処理を、第1算出処理として行う。そして、ロボット制御部263は、第1算出処理によって当該回動角を算出した後、ステップS140に遷移する。
一方、ロボット制御部263は、予め決められた条件が満たされていないと判定した場合(ステップS120−NO)、第2算出処理を行う(ステップS160)。ここで、第2算出処理について説明する。
ロボット制御部263は、ステップS110において受付部261が取得した操作情報と、上記の式(33)に示した第3運動学モデルとに基づいて、制御入力である式(34)を計算し、制御点Tの速度を、当該操作情報が示す目標速度に一致させた場合における回動角であってロボット10が備える複数の関節それぞれの回動角を算出する処理を、第2算出処理として行う。ここで、第2算出処理について補足する。ロボット制御部263は、第2算出処理において、上記の式(34)におけるuσkerをゼロベクトルにし、且つ、ベース車輪の状態を変化させずに、当該操作情報と当該第3運動学モデルとに基づいて、制御入力である式(34)を計算し、制御点Tの速度を、当該操作情報が示す目標速度に一致させた場合における回動角であってロボット10が備える複数の関節それぞれの回動角を算出する。そして、ロボット制御部263は、第2算出処理によって当該回動角を算出した後、ステップS140に遷移する。
ステップS140において、ロボット制御部263は、ロボット10を動作させる(ステップS140)。より具体的には、ロボット制御部263は、直前に実行された処理がステップS130の処理であった場合、ステップS130において算出した回動角に基づいてロボット10を制御し、ロボット10を動作させる。この場合、ロボット制御部263は、例えば、制御点Tの速度を目標速度と一致させながら、ロボット10に関節限界回避動作を行わせる。一方、ロボット制御部263は、直前に実行された処理がステップS160の処理であった場合、ステップS160において算出した回動角に基づいてロボット10を制御し、ロボット10を動作させる。
次に、ロボット制御部263は、ロボット10の制御を終了させるか否かを判定する(ステップS150)。より具体的には、ロボット制御部263は、ロボット10の終了を示す情報を操作装置30から取得したか否かを判定する。ロボット制御部263は、当該情報を操作装置30から取得していないと判定した場合、ロボット10の制御を終了させないと判定する(ステップS150−NO)。そして、受付部261は、ステップS110に遷移し、操作装置30から操作情報が取得されるまで再び待機する。一方、ロボット制御部263は、当該情報を操作装置30から取得していると判定した場合、ロボット10の制御を終了させると判定し(ステップS150−YES)、処理を終了する。
なお、図8において説明した処理の流れは、一例に過ぎず、他の処理の流れであってもよい。例えば、ロボット制御部263は、ロボット10を制御している間、常に関節限界回避動作をロボット10に行わせる構成であってもよい。この場合、予め決められた条件は、例えば、ロボット制御部263によってロボット10の制御が行われていること等である。
また、ロボット制御部263は、予め決められた判定条件に基づく判定の結果に応じて、ベース車輪の状態を変化させるか否か変化させる構成であってもよい。例えば、制御点Tの位置及び姿勢を振動によって変化させたくない場合、ベース車輪の状態は、変化しない方が望ましい。このような場合、ロボット制御部263は、当該場合に応じた判定条件に基づく判定を行い、当該判定の結果に応じて、ベース車輪の状態を変化させるか否かを決定する。当該判定条件は、例えば、ベース車輪の状態を変化させる要求を、操作装置30を介してユーザーから受け付けること等である。
また、ロボット制御部263は、ベース第1関節の少なくとも1つの回動角が、第1関節J1の可動範囲における上限又は下限の角度に達しそうになっているか否かの判定を行い、当該判定の結果に応じて、関節限界回避動作をロボット10に行わせる構成であってもよい。例えば、ロボット制御部263は、当該少なくとも1つの回動角が、予め決められた閾値であって当該角度よりも小さい値を超えた場合、当該少なくとも1つの回動角が、当該角度に達しそうになっていると判定する。当該場合、ロボット制御部263は、関節限界回避動作をロボット10に行わせる。
以上のようにして、ロボット制御装置20は、ロボット10を制御し、ロボット10にユーザーが所望する動作を行わせることができる。そして、ロボット制御装置20は、ロボット10に関節限界回避動作を行わせることができる。その結果、ロボット制御装置20は、面MNからロボット10の少なくとも一部を持ち上げられた状態において、ユーザーが所望する動作をロボット10に行わせることができなくなってしまうことを抑制することができる。
なお、ロボット制御装置20は、ロボット10に関節限界回避動作を行わせる際、複数のベース車輪のうち非接地車輪として面MNに接地していないベース車輪の組み合わせを、勾配法等によって最適化問題を解くことによって決定する構成であってもよい。すなわち、ロボット制御装置20は、冗長自由度とするために上記の式(14)から取り除く速度拘束式を、最適化問題を解くことによって決定する構成であってもよい。
また、上記において説明したロボット10が1つも車輪部Wを備えていない場合、ロボット10の各第2関節が有する面のうち面MNに接面する面には、車輪部Wに代えて、各第2関節J2が横滑りしないように摩擦係数が高い何らかの部材(例えば、ゴム製の部材等)が設けられている。ここで、ある第2関節J2が横滑りしないことは、当該第2関節J2の回動軸に沿った方向に対して当該第2関節が滑らないことを意味する。
以上説明したように、実施形態に係るロボット制御装置20は、複数の関節と、関節間を繋ぐリンク部材(この一例において、リンク部材L)と、複数の車輪(この一例において、車輪部Wが備える1対の車輪)とを備えるロボット(この一例において、ロボット10)であって、複数の関節には、ロボットの姿勢と関節の全てが1直線(この一例において、直線CL)上に並ぶ姿勢である基準姿勢とが一致している場合において当該1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節(この一例において、第1関節J1)と、当該場合において当該1直線と直交する方向のうちの第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節(この一例において、第2関節J2)とのそれぞれが含まれており、複数の車輪それぞれの車軸は、当該場合において第2方向と平行である、ロボットを制御し、車輪の少なくとも一部が接地している接地面(この一例において、面MN)からロボットの一部である第1部位(この一例において、ヘッド部位HB)が持ち上げられた状態において、予め決められた条件が満たされた場合、ロボットが有する部位のうち接地面から持ち上げられていない部位である第2部位(この一例において、ベース部位)が備える第1関節(この一例において、ベース第1関節)それぞれの回動角を第1関節の可動範囲における上限又は下限の角度よりも小さくする。これにより、ロボット制御装置20は、接地面からロボットの少なくとも一部が持ち上げられた状態において、ユーザーが所望する動作をロボットに行わせることができなくなってしまうことを抑制することができる。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
また、以上に説明した装置(例えば、ロボット制御装置20、操作装置30等)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、OS(Operating System)や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1…ロボットシステム、10…ロボット、20…ロボット制御装置、21…CPU、22…記憶部、24…通信部、26…制御部、30…操作装置、261…受付部、263…ロボット制御部、BB…ベース部位、CL…直線、E…エンドエフェクター部、HB…ヘッド部位、J1…第1関節、J2…第2関節、L…リンク部材、M…本体部、MN…面、T…制御点、W…車輪部
Claims (12)
- 複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、前記複数の前記関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうちの前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行である、前記ロボットを制御し、
前記車輪の少なくとも一部が接地している接地面から前記ロボットの一部である第1部位が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位である第2部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする、
ロボット制御装置。 - 前記条件が満たされた場合、前記ロボットの姿勢を、前記第2部位が有する複数の前記車輪のうち前記接地面に接地している前記車輪である接地車輪それぞれの車軸同士の幾何学的な関係が予め決められた幾何学的な関係になる姿勢である目標姿勢に近づけることによって、前記第2部位が備える前記第1関節それぞれの回動角を前記角度よりも小さくする、
請求項1に記載のロボット制御装置。 - 前記予め決められた幾何学的な関係は、平行である、
請求項2に記載のロボット制御装置。 - 前記条件には、前記第2部位が備える前記第1関節の少なくとも1つの回動角が、前記角度に達していること、が含まれる、
請求項1から3のうちいずれか一項に記載のロボット制御装置。 - 前記条件には、ユーザーからの操作を受け付けたこと、が含まれる、
請求項1から4のうちいずれか一項に記載のロボット制御装置。 - 複数の前記車輪のうちの少なくとも一部は、アクチュエーターによって回動される能動輪である、
請求項1から5のうちいずれか一項に記載のロボット制御装置。 - 前記条件が満たされた場合、前記ロボットの制御点の位置及び姿勢が変化しないように、前記第2部位が備える前記第1関節それぞれの回動角を前記角度よりも小さくする、
請求項1から6のうちいずれか一項に記載のロボット制御装置。 - 前記第2部位が備える前記第1関節それぞれの回動角を前記角度よりも小さくする際、前記第2部位が有する複数の前記車輪のうち前記接地面に設置していない非接地車輪の組み合わせを、予め決められた時間が経過する毎に変化させる、
請求項1から7のうちいずれか一項に記載のロボット制御装置。 - 複数の関節と、前記関節間を繋ぐリンク部材とを備えるロボットであって、前記複数の前記関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれている、前記ロボットを制御し、
前記ロボットの少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする、
ロボット制御装置。 - 複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、
前記複数の関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、
複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行であり、
前記車輪の少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする、
ロボット。 - 複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、前記複数の関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行である前記ロボットと、
前記ロボットを制御し、前記車輪の少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくするロボット制御装置と、
を備えるロボットシステム。 - コンピューターに、
複数の関節と、前記関節間を繋ぐリンク部材と、複数の車輪とを備えるロボットであって、前記複数の関節には、前記ロボットの姿勢と前記関節の全てが1直線上に並ぶ姿勢である基準姿勢とが一致している場合において前記1直線と直交する方向のうちの第1方向に平行な回動軸を有する複数の第1関節と、前記場合において前記1直線と直交する方向のうち前記第1方向と異なる第2方向に平行な回動軸を有する複数の第2関節とのそれぞれが含まれており、複数の前記車輪それぞれの車軸は、前記場合において前記第2方向と平行である前記ロボットを制御させ、
前記車輪の少なくとも一部が接地している接地面から前記ロボットの少なくとも一部が持ち上げられた状態において、予め決められた条件が満たされた場合、前記ロボットが有する部位のうち前記接地面から持ち上げられていない部位が備える前記第1関節それぞれの回動角を前記第1関節の可動範囲における上限又は下限の角度よりも小さくする、
ことを実行させるためのプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017213274 | 2017-11-02 | ||
JP2017213274 | 2017-11-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019084665A true JP2019084665A (ja) | 2019-06-06 |
Family
ID=66762009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017222214A Pending JP2019084665A (ja) | 2017-11-02 | 2017-11-17 | ロボット制御装置、ロボット、ロボットシステム、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019084665A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112169337A (zh) * | 2020-10-13 | 2021-01-05 | 网易(杭州)网络有限公司 | 蛇形虚拟对象的控制方法及装置、存储介质、电子设备 |
WO2023274000A1 (zh) * | 2021-06-29 | 2023-01-05 | 武汉联影智融医疗科技有限公司 | 一种机器人系统及其评价方法、控制方法 |
-
2017
- 2017-11-17 JP JP2017222214A patent/JP2019084665A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112169337A (zh) * | 2020-10-13 | 2021-01-05 | 网易(杭州)网络有限公司 | 蛇形虚拟对象的控制方法及装置、存储介质、电子设备 |
WO2023274000A1 (zh) * | 2021-06-29 | 2023-01-05 | 武汉联影智融医疗科技有限公司 | 一种机器人系统及其评价方法、控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538949B (zh) | 冗余机器人逆运动学求解方法、装置和冗余机器人 | |
JP6640792B2 (ja) | ハンド制御装置、ハンド制御方法、およびハンドのシミュレーション装置 | |
CN107490965B (zh) | 一种空间自由漂浮机械臂的多约束轨迹规划方法 | |
JP5261495B2 (ja) | 重み行列を用いたリアルタイム自己衝突および障害物回避 | |
JP6380828B2 (ja) | ロボット、ロボットシステム、制御装置、及び制御方法 | |
JP4730440B2 (ja) | 軌道計画装置及び軌道計画方法、並びにコンピューター・プログラム | |
Yuan et al. | Design and control of roller grasper v2 for in-hand manipulation | |
JP6080643B2 (ja) | ロボット装置、ロボット制御方法、プログラム及び記録媒体 | |
Quigley et al. | Low-cost accelerometers for robotic manipulator perception | |
CN110370256B (zh) | 机器人及其路径规划方法、装置和控制器 | |
Chavan-Dafle et al. | Sampling-based planning of in-hand manipulation with external pushes | |
JP2019084665A (ja) | ロボット制御装置、ロボット、ロボットシステム、及びプログラム | |
Nemec et al. | Bimanual human robot cooperation with adaptive stiffness control | |
WO2022039058A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
Zhou et al. | Learning ball-balancing robot through deep reinforcement learning | |
Cheng et al. | Manipulation with suction cups using external contacts | |
US11691281B2 (en) | Robot control at singular configurations | |
US20230409035A1 (en) | Method for building controller for robot, method, device for controlling motion of robot, and robot | |
CN111890364A (zh) | 机器人的运动控制方法、装置、电子设备及存储介质 | |
CN110114195B (zh) | 动作转移装置、动作转移方法和存储动作转移程序的非暂时性计算机可读介质 | |
WO2022172812A1 (ja) | ロボットモデルの学習装置、ロボットモデルの機械学習方法、ロボットモデルの機械学習プログラム、ロボット制御装置、ロボット制御方法、及びロボット制御プログラム | |
Kumar et al. | Implementation of artificial neural network applied for the solution of inverse kinematics of 2-link serial chain manipulator | |
Kim et al. | Robotic handwriting: multi-contact manipulation based on reactional internal contact hypothesis | |
WO2020017093A1 (ja) | 加速度調整装置及び加速度調整プログラム | |
CN111742270A (zh) | 信息处理装置和信息处理方法 |