(57)【要約】【課題】アームで物を移動させるに際し、駆動輪の滑りを抑制し、効率よく物を移動させる技術を提供する。【解決手段】水平に移動可能であって鉛直に移動不能となるように支持された引出２（移動対象物）を水平に押して移動させるロボット３は、駆動輪４を有する台車６と、台車６に支持されるアーム７と、アーム７に支持されて引出２を把持可能なハンド８と、駆動輪４とアーム７とハンド８を駆動制御する制御部９と、を備える。制御部９は、ハンド８に引出２を把持させると共に、引出２の移動可能な方向と異なる方向であってかつ引出２の移動不能な方向において引出２に力及びトルクのうち何れか一方又は両方を作用させつつ、引出２を水平に移動させるように駆動制御する。【選択図】図６
2018149660.tif 000002
【特許請求の範囲】
【請求項１】
水平に移動可能であって鉛直に移動不能となるように支持された移動対象物を水平に押して移動させるロボットであって、
少なくとも１つの駆動輪を有する台車と、
前記台車に支持されるアームと、
前記アームに支持されて前記移動対象物を把持可能なハンドと、
前記駆動輪と前記アームと前記ハンドを駆動制御する制御部と、
を備え、
前記制御部は、
前記ハンドに前記移動対象物を把持させると共に、
前記移動対象物の移動可能な方向と異なる方向であってかつ前記移動対象物の移動不能な方向において前記移動対象物に力及びトルクのうち何れか一方又は両方を作用させつつ、前記移動対象物を水平に移動させるように駆動制御する、
ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに関する。
【背景技術】
【０００２】
特許文献１は、台車とアームを備え、アームで物を運ぶロボットのトルク制御を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１８８４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１の構成では、駆動輪の配置によっては、アームで物を移動させる際、アームが物から受ける反力によって台車の駆動輪の垂直抗力が低下し、効率よく物を移動させることができない場合があった。
【０００５】
本発明の目的は、アームで物を移動させるに際し、駆動輪の滑りを抑制し、効率よく物を移動させる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本願発明の一実施形態によれば、水平に移動可能であって鉛直に移動不能となるように支持された移動対象物を水平に押して移動させるロボットであって、少なくとも１つの駆動輪を有する台車と、前記台車に支持されるアームと、前記アームに支持されて前記移動対象物を把持可能なハンドと、前記駆動輪と前記アームと前記ハンドを駆動制御する制御部と、を備え、前記制御部は、前記ハンドに前記移動対象物を把持させると共に、前記移動対象物の移動可能な方向と異なる方向であってかつ前記移動対象物の移動不能な方向において前記移動対象物に力及びトルクのうち何れか一方又は両方を作用させつつ、前記移動対象物を水平に移動させるように駆動制御する、ロボットが提供される。
【発明の効果】
【０００７】
本発明によれば、アームで物を移動させるに際し、駆動輪の滑りを抑制し、効率よく物を移動させることができる。
【図面の簡単な説明】
【０００８】
【図１】箪笥に引出を押し込むタスクを実行中のロボットを示す図である。
【図２】箪笥に引出を押し込むタスクを実行中であって、引出を押し上げながら引出を押し込んでいるロボットを示す図である。
【図３】箪笥に引出を押し込むタスクを実行中であって、引出を押し下げながら引出を押し込んでいるロボットを示す図である。
【図４】ロボットの機能ブロック図である。
【図５】動作計画の演算フローである。
【図６】ロボットに作用する力を説明するための図である。
【図７】各モータの出力トルクを示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、本願発明の好適な実施形態を説明する。図１には、箪笥１の引出２（移動対象物）を押し込む（押して移動させる）タスクを実行中のロボット３を示している。引出２は、水平方向には移動自在であるものの鉛直には移動不能となるように箪笥１に支持されている。また、引出２を箪笥１に押し込むに際し、引出２と箪笥１との間には摩擦が発生する。
【００１０】
図１に示すように、ロボット３は、駆動輪４と受動輪５を有する台車６と、台車６に支持されて傾動可能なアーム７と、アーム７に支持されて引出２を把持可能なハンド８と、駆動輪４とアーム７とハンド８を駆動制御する制御部９と、を備えている。
【００１１】
図１に示すように、箪笥１から引き出されている引出２をハンド８が把持した状態でロボット３が箪笥１に向かって移動すると、引出２は箪笥１に押し込まれて箪笥１に収容される。この際、ロボット３は、引出２を押し込むのに必要とされる押し込み力１１を引出２に作用させることになる。そして、ロボット３は、上記押し込み力１１の反作用力１２をハンド８に受けることになり、箪笥１に近い方向の車輪の垂直抗力が低下する。ここで、ハッチングが付された矢印は引出２に作用する力であり、白抜き矢印はロボット３に作用する力である。
【００１２】
（前輪駆動の場合）
もし図１のように駆動輪４が受動輪５よりも引出２に近い場合は、駆動輪４の垂直抗力が低下することで路面１０に対して滑り易くなり、上記タスクを実行できない場合がある。
【００１３】
これに対し、本実施形態では、図２に示すように、箪笥１から引き出されている引出２をハンド８が把持した状態でロボット３が箪笥１に向かって移動するに際し、ロボット３は、引出２を把持しているハンド８を介して引出２に鉛直上向きの押し上げ力１３を作用させることとしている。これにより、ロボット３は、上記押し上げ力１３の反作用力１４をハンド８に受けることになり、駆動輪４の垂直抗力が上昇することで路面１０に対して滑り難くなり、上記タスクを問題なく実行できるようになる。
【００１４】
上記押し上げ力１３に代えて、ロボット３は、引出２を把持しているハンド８を介して引出２に先端２ａを押し下げるような押し下げトルク１５を作用させてもよい。これにより、ロボット３は、上記押し下げトルク１５の反作用トルク１６をハンド８に受けることになり、駆動輪４の垂直抗力が上昇することになる。
【００１５】
（後輪駆動の場合）
また、図３のように駆動輪４が受動輪５よりも引出２から遠い場合は、箪笥１から引き出されている引出２をハンド８が把持した状態でロボット３が箪笥１に向かって移動するに際し、ロボット３は、引出２を把持しているハンド８を介して引出２に鉛直下向きの押し下げ力１７を作用させることとしている。これにより、ロボット３は、上記押し下げ力１７の反作用力１８をハンド８に受けることになり、駆動輪４の垂直抗力が上昇することで路面１０に対して滑り難くなり、上記タスクを問題なく実行できるようになる。
【００１６】
上記押し下げ力１７に代えて、ロボット３は、引出２を把持しているハンド８を介して引出２に先端２ａを押し上げるような押し上げトルク１９を作用させてもよい。これにより、ロボット３は、上記押し上げトルク１９の反作用トルク２０をハンド８に受けることになり、駆動輪４の垂直抗力が上昇することになる。
【００１７】
次に、ロボット３の構成を更に詳細に説明する。
【００１８】
図４に示すように、前述の制御部９は、中央演算処理器としてのＣＰＵ３０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、読み書き自由のＲＡＭ３１（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、読み出し専用のＲＯＭ３２（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を備えている。そして、ＣＰＵ３０がＲＯＭ３２に記憶されている制御プログラムを読み出して実行することで、制御プログラムは、ＣＰＵ３０などのハードウェアを、動作計画演算部３３及び動作制御部３４として機能させる。
【００１９】
動作計画演算部３３は、箪笥１に引出２を押して移動させる際の複数のモータのトルクを決定する。動作制御部３４は、動作計画演算部３３が決定した複数のモータのトルクに基いて、各モータを制御する。複数のモータとは、即ち、駆動輪４を駆動する駆動輪モータ３５、アーム７の台車側の関節を駆動する第１アーム駆動モータ３６、アーム７のハンド８側の関節を駆動する第２アーム駆動モータ３７、ハンド８の把持動作を駆動する把持駆動モータ３８である。以下、動作計画演算部３３の動作を詳細に説明する。
【００２０】
図５は、動作計画演算部３３の動作に関するフローチャートを示している。図６は、引出２を箪笥１に押し込むタスクを実行する際にロボット３が受ける力を白抜き矢印で示している。具体的には、図６において、ハンド８が引出２から受ける水平方向の反作用力をＦｘで示し（引出２から離れる方向を正とする。）、ハンド８が引出２から受ける鉛直方向の反作用力をＦｙで示し（鉛直上向きを正とする。）、ハンド８が引出２から受ける反作用トルクをＴで示している（反時計回りを正とする。）。また、ロボット３は、駆動輪４が受動輪５よりも引出２から遠い後輪駆動を採用しているものとする。そして、ロボット３の自重をＭｇで示し、駆動輪４の垂直抗力をＮ１で示し、受動輪５の垂直抗力をＮ２で示し、駆動輪４が路面から受ける摩擦力をｆ１で示し、受動輪５が路面から受ける摩擦力をｆ２で示す。更に、垂直抗力Ｎ１と自重Ｍｇとの作用線間距離をＬ１で示し、自重Ｍｇと垂直抗力Ｎ２との作用線間距離をＬ２で示し、垂直抗力Ｎ２と反作用力Ｆｙとの作用線間距離をＬ３で示し、反作用力Ｆｘの作用線の高さをＨ１で示している。図７は、各モータの出力トルクを図示している。具体的には、図７において、駆動輪モータ３５の出力トルクをτ１で示し、第１アーム駆動モータ３６の出力トルクをτ２で示し、第２アーム駆動モータ３７の出力トルクをτ３で示している。
【００２１】
図５に示すように、動作計画演算部３３は、先ず、タスクを実行するのに必要となる操作力を決定する（Ｓ１００）。具体的には、動作計画演算部３３は、箪笥１に引出２を押し込むのに必要となる操作力を決定する。図６における反作用力Ｆｘは、上記必要となる操作力の反作用力に該当する。
【００２２】
次に、図５に示すように、動作計画演算部３３は、手先力の許容最大値を決定する（Ｓ１１０）。具体的には、動作計画演算部３３は、操作対象とロボット３の姿勢に基いて、手先の拘束されている方向とその方向へ出せる力の最大値を決定する。なお、操作対象に作用させる作用力やトルクは、手先の拘束されている方向に限られている。ここで、操作対象が引出２である場合は、引出２を押したり引いたりする方向に限らず、引出２に対して鉛直方向の作用力を与えてもよいし、引出２に対してあらゆるトルクを作用させてもよい。ただし、引出２が箪笥１から大きく引き出されている場合は、箪笥１による引出２の支持が不完全なものとなるので、手先力の許容最大値は低く設定することが好ましい。操作対象がドアであって、ドアを開くタスクを実行する際は、ドアノブが回転してしまう方向へは手先力を作用させることができない。下記式（１）は、手先力の許容最大値と許容最小値を示している。
【００２３】
【数１】
2018149660.tif 000003
【００２４】
次に、図５に示すように、動作計画演算部３３は、手先力及び各モータトルクを演算する（Ｓ１２０）。具体的には、動作計画演算部３３は、（ａ）下記式（２）及び（３）で示すつり合いの条件式、（ｂ）下記式（４）で示す各駆動輪４及び各受動輪５が浮かない条件式、（ｃ）下記式（５）で示す各駆動輪４及び各受動輪５が滑らない条件式、（ｄ）上記式（１）で示す手先力の条件式、の（ａ）―（ｄ）という条件式のもと、手先力（＝Ｆｙ、Ｔ）及び各モータの出力トルクを演算する。
【００２５】
【数２】
2018149660.tif 000004
【００２６】
【数３】
2018149660.tif 000005
【００２７】
【数４】
2018149660.tif 000006
【００２８】
【数５】
2018149660.tif 000007
【００２９】
なお、各モータの出力トルクを求める方法として、最適化する必要がないのであれば、上記（ａ）―（ｄ）を満足する手先力をヒューリスティックに求めた後、ヤコビアン等で求めてよい。或いは、上記（ａ）−（ｄ）に加えて、下記式（６）で示す手先力と各モータの出力トルクの関係式と、下記式（７）で示すように各モータの出力トルクが最大出力トルク以下である条件式を考慮した上で、下記式（８）に示すように各モータの出力トルクの二乗和が最小になるように非線形計画法等で各モータの出力トルクを演算してもよい。
【００３０】
【数６】
2018149660.tif 000008
【００３１】
【数７】
2018149660.tif 000009
【００３２】
【数８】
2018149660.tif 000010
【００３３】
なお、上記式（２）において、ｆ１とｆ２は同一作用線上の力なので、まとめてｆ（＝ｆ１、ｆ２）と表現している。
上記式（５）において、μは各車輪と路面との間の静止摩擦係数である。
上記式（６）は、自重補償分のトルクを除外して立てた条件式である。また、上記式（６）は、手先力（Ｆ＝（Ｆｘ、Ｆｙ、Ｔ））と各モータの出力トルクτとの間において成り立っている、ヤコビアンＪを用いたＦ＝Ｊτという関係式に基づくものである。Ｊｘ、Ｊｙ、Ｊθは、それぞれの方向のヤコビアン成分である。
【００３４】
（演算例１）
以下、動作計画演算部３３が実行する演算に具体的な数値を当てはめた、演算の演算例１を紹介する。本実施例では、箪笥１に引出２を押し込むタスクを実行するものであり、ロボット３は、後輪駆動を採用している。即ち、図６において駆動輪４は受動輪５よりも引出２から遠い。また、手先力（反作用力Ｆｙ、反作用トルクＴ）はゼロとして単に引出２を押し込む動作のみをロボット３が実行するものとする。
【００３５】
図６において、Ｌ１＝０．１５［ｍ］、Ｌ２＝０．１５［ｍ］、Ｌ３＝０．５０［ｍ］、Ｈ１＝０．３０［ｍ］、Ｍｇ＝１００［Ｎ］、μ＝０．３、前輪は受動輪５であるためｆ２＝０とし、必要な操作力（＝反作用力Ｆｘ）は２５［Ｎ］とする。この場合、Ｎ１＝７５［Ｎ］、Ｎ２＝７５［Ｎ］、ｆ１＝２５［Ｎ］となり、上記式（５）の第１式である下記式（９）を満足せず、タスク実行時、駆動輪４は路面上で滑ってしまうと考えられる。
【００３６】
【数９】
2018149660.tif 000011
【００３７】
（演算例２）
上記演算例１では、手先力（反作用力Ｆｙ、反作用トルクＴ）はゼロとして単に引出２を押し込む動作のみをロボット３が実行するものとした。しかし、これに代えて、演算例２では、手先力のうち反作用トルクＴはゼロとしつつもタスク実行時に引出２を鉛直下方に押し下げることとする。この場合、例えば反作用力Ｆｙ＝５［Ｎ］とすると、Ｎ１＝８３．３４［Ｎ］、Ｎ２＝１１．６７［Ｎ］、ｆ１＝２５［Ｎ］となり、上記式（９）を満足することとなり、駆動輪４が路面上で滑ることなくタスクを実行することができるようになる。
【００３８】
このように、自重のみでは駆動輪４が滑ってしまうような場合でも、外力を操作する際にアーム７で操作方向以外の力やトルクを発生させることで、反作用によりロボット３自体には鉛直下向きの力が発生し、駆動輪４の摩擦力を確保できるので、駆動輪４が滑ることなく、大きな外力を発生させることが可能となる。
【００３９】
最後に、上記タスク実行時における各モータの出力トルクを最適化するには、各モータの出力トルクの二乗和が最小となるように、上記式（８）を目的関数として、上記式（１）（３）（４）（５）（７）（８）を非線形計画法で解くようにすればよい。
【００４０】
以上に、本願発明の実施形態を説明したが、上記実施形態は以下の特徴を有する。
【００４１】
水平に移動可能であって鉛直に移動不能となるように支持された引出２（移動対象物）を水平に押して移動させるロボット３は、駆動輪４と受動輪５を有する台車６と、台車６に支持されて傾動可能なアーム７と、アーム７に支持されて引出２を把持可能なハンド８と、駆動輪４とアーム７とハンド８を駆動制御する制御部９と、を備える。制御部９は、ハンド８に引出２を把持させると共に、駆動輪４が受動輪５よりも引出２に近い場合、引出２に対して鉛直上向きの力を作用させつつ、引出２を水平に押して移動させるように駆動制御する。制御部９は、駆動輪４が受動輪５よりも引出２から遠い場合、引出２に対して鉛直下向きの力を作用させつつ、引出２を水平に押して移動させるように駆動制御する。以上の構成によれば、駆動輪４が受動輪５よりも引出２に近い場合、引出２に対して鉛直上向きの力を作用させることで駆動輪４の路面１０に対する垂直抗力が増加するので、引出２を水平に押す際、駆動輪４の滑りを防止できる。同様に、駆動輪４が受動輪５よりも引出２から遠い場合、引出２に対して鉛直下向きの力を作用させることで駆動輪４の路面１０に対する垂直抗力が増加するので、引出２を水平に押す際、駆動輪４の滑りを防止できる。従って、効率よく引出２を移動させることができる。
【００４２】
また、水平に移動可能であって鉛直に移動不能となるように支持された引出２（移動対象物）を水平に押して移動させるロボット３は、少なくとも１つの駆動輪４を有する台車６と、台車６に支持されるアーム７と、アーム７に支持されて引出２を把持可能なハンド８と、駆動輪４とアーム７とハンド８を駆動制御する制御部９と、を備える。制御部９は、ハンド８に引出２を把持させると共に、引出２の移動可能な方向と異なる方向であってかつ引出２の移動不能な方向において引出２に力又はトルクのうち何れか又は両方を作用させつつ、引出２を水平に移動させるように駆動制御する。即ち、引出２に対して鉛直上向きの力を作用させつつ、引出２を水平に押して移動させるように駆動制御することで、台車６を鉛直下向きに押さえつけることができ、各駆動輪４にかかる垂直抗力の総和を大きくすることができる。この場合、一部の駆動輪４の垂直抗力が下がることも考えられるが、結果として、引出２を水平に押す力を大きくすることができる。このことは、すべての車輪が駆動輪４である場合でも言及することができる。
【００４３】
上記実施形態では、アーム７が傾動可能となるように台車６に支持されているとしたが、これに代えて、アーム７は、例えばフォークリフトのように、実質的に長手方向が水平となる姿勢を維持したまま鉛直方向に上下動するように構成してもよい。
【００４４】
（付記）
水平に移動可能であって鉛直に移動不能となるように支持された移動対象物を水平に押して移動させるロボットであって、
駆動輪と受動輪を有する台車と、
前記台車に支持されて傾動可能なアームと、
前記アームに支持されて前記移動対象物を把持可能なハンドと、
前記駆動輪と前記アームと前記ハンドを駆動制御する制御部と、
を備え、
前記制御部は、
前記ハンドに前記移動対象物を把持させると共に、
前記駆動輪が前記受動輪よりも前記移動対象物に近い場合、前記移動対象物に対して鉛直上向きの力を作用させつつ、前記移動対象物を水平に押して移動させるように駆動制御し、
前記駆動輪が前記受動輪よりも前記移動対象物から遠い場合、前記移動対象物に対して鉛直下向きの力を作用させつつ、前記移動対象物を水平に押して移動させるように駆動制御する、
ロボット。
【００４５】
（付記）
水平に移動可能であって鉛直に移動不能となるように支持された移動対象物を水平に押して移動させるロボットであって、
駆動輪と受動輪を有する台車と、
前記台車に支持されるアームと、
前記アームに支持されて前記移動対象物を把持可能なハンドと、
前記駆動輪と前記アームと前記ハンドを駆動制御する制御部と、
を備え、
前記制御部は、
前記ハンドに前記移動対象物を把持させると共に、
前記駆動輪が前記受動輪よりも前記移動対象物に近い場合、前記移動対象物に対して鉛直上向きの力を作用させつつ、前記移動対象物を水平に押して移動させるように駆動制御し、
前記駆動輪が前記受動輪よりも前記移動対象物から遠い場合、前記移動対象物に対して鉛直下向きの力を作用させつつ、前記移動対象物を水平に押して移動させるように駆動制御する、
ロボット。
【符号の説明】
【００４６】
１  箪笥
２  引出
２ａ  先端
３  ロボット
４  駆動輪
５  受動輪
６  台車
７  アーム
８  ハンド
９  制御部
１０  路面
１１  押し込み力
１２  反作用力
１３  押し上げ力
１４  反作用力
１５  押し下げトルク
１６  反作用トルク
１７  押し下げ力
１８  反作用力
１９  押し上げトルク
２０  反作用トルク
３３  動作計画演算部
３４  動作制御部
３５  駆動輪モータ
３６  第１アーム駆動モータ
３７  第２アーム駆動モータ
３８  把持駆動モータ
【図１】
2018149660.tif 000012
【図２】
2018149660.tif 000013
【図３】
2018149660.tif 000014
【図４】
2018149660.tif 000015
【図５】
2018149660.tif 000016
【図６】
2018149660.tif 000017
【図７】
2018149660.tif 000018