JP5487756B2 - ロボット制御装置、ロボット制御プログラムおよびロボット制御方法 - Google Patents

ロボット制御装置、ロボット制御プログラムおよびロボット制御方法 Download PDF

Info

Publication number
JP5487756B2
JP5487756B2 JP2009152957A JP2009152957A JP5487756B2 JP 5487756 B2 JP5487756 B2 JP 5487756B2 JP 2009152957 A JP2009152957 A JP 2009152957A JP 2009152957 A JP2009152957 A JP 2009152957A JP 5487756 B2 JP5487756 B2 JP 5487756B2
Authority
JP
Japan
Prior art keywords
robot
turning
robot body
absolute
turn
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.)
Expired - Fee Related
Application number
JP2009152957A
Other languages
English (en)
Other versions
JP2011008637A (ja
Inventor
山 姜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009152957A priority Critical patent/JP5487756B2/ja
Publication of JP2011008637A publication Critical patent/JP2011008637A/ja
Application granted granted Critical
Publication of JP5487756B2 publication Critical patent/JP5487756B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、ロボット制御装置、ロボット制御プログラムおよびロボット制御方法に関する。
近年、2輪駆動の移動ロボットが自律走行等を行う際、自己の位置を車輪の回転量によって推定するオドメトリの技術が利用されている。オドメトリとは、2つの車輪の各回転速度からロボットの併進速度およびロボット本体の角速度を求め、これらを積分してロボットの位置および姿勢を推定する技術である。
かかるオドメトリの技術では、2つの車輪の各半径および2つの車輪間の距離が、ロボットの自己位置推定の精度を左右する重要なパラメータとなる。
ところが、2つの車輪のどちらか一方若しくは両方の車輪の半径、または車輪間の距離が、ロボットの経年の運用または衝突等により変化する場合があり、自己位置推定の精度に影響を及ぼす。また、車輪の速度を制御するギア間の噛み合わせの隙間(バックラッシュ)も自己位置推定誤差の原因となる。
そこで、従来では、ロボット管理者が、オドメトリに関わるパラメータの誤差を定期的に点検して、誤差に応じたパラメータの補正や部品の交換を行っていた。
また、2輪駆動の移動ロボットをスタート位置から特定距離にあるゴール位置に向けて走行させて、走行後に撮像した目印の撮像画像とあらかじめ撮像した同一目印の画像とを用いて、当該移動ロボットのオドメトリに関わるパラメータの誤差を調整するパラメータ調整装置が開示されている。
特開2007−156576号公報
しかしながら、移動ロボットの自己位置推定に関わる誤差を調整する従来の技術では、当該誤差を正確且つ効率的に調整することができないという問題がある。
すなわち、従来のパラメータ調整装置では、走行後に目印を撮像する場合、目印までの撮像距離等の撮像条件が変わると撮像精度も変わってしまい、撮像誤差によりオドメトリに関わるパラメータの誤差を正確に特定することができない。その結果、パラメータ調整装置は、オドメトリに関わるパラメータの誤差を正確に調整することができない。
また、ロボット管理者による誤差の調整では、作業時間を多く要し、コスト高となってしまう。
本発明は、上記に鑑みてなされたものであって、移動ロボットの自己位置推定に関わる誤差を正確且つ効率的に調整することができるロボット制御装置、ロボット制御プログラムおよびロボット制御方法を提供することを目的とする。
上述した問題を解決し、目的を達成するために、ロボット制御装置は、ロボット本体の旋回開始位置から所定位置を中心にして、当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する移動制御部と、当該ロボット本体から離間した位置にある目印を基準にして、当該ロボット本体の旋回前後に関わるロボット位置およびロボット方位を計測する計測部と、前記計測部にて計測した前記旋回前後に関わるロボット位置間の差分および前記旋回前後に関わるロボット方位間の差分に基づき、前記車輪に関わる誤差を算出する算出部とを備える構成を採る。
以上により、ロボット制御装置は、ロボットの車輪に関わる誤差を正確且つ効率的に算出することができ、当該誤差の調整精度を向上させることができるという効果を奏する。
図1は、実施例1に係るロボット制御装置の構成を示す機能ブロック図である。 図2は、実施例1に係るロボット制御装置の計測を説明するための図である。 図3は、移動ロボット運動学モデルの説明を示す図である。 図4は、実施例2に係るロボット制御装置の構成を示す機能ブロック図である。 図5は、座標の定義を示す図である。 図6は、旋回後ロボット本体の絶対座標を算出する方法を示す図である。 図7は、実施例2に係るロボット制御装置の誤差補正手順を示すフローチャートである。 図8は、実施例3に係るロボット制御装置の構成を示す機能ブロック図である。 図9は、ガタ量を算出する方法を示す図である。 図10は、実施例3に係るロボット制御装置のガタ量補正手順を示すフローチャートである。
以下に、本発明に係るロボット制御装置、ロボット制御プログラムおよびロボット制御方法の実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係るロボット制御装置の構成を示す機能ブロック図である。図1に示すように、ロボット制御装置1は、移動制御部10、計測部20および算出部30を有している。
ロボット制御装置1は、車輪に関わるパラメータを用いてロボット本体の自己位置を推定する装置あり、特にオドメトリによる自己位置推定を行う。
移動制御部10は、ロボット本体の旋回開始位置から所定位置を中心にして、当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する。ここで、所定角度とは、例えば360度や360度の複数倍であるがこれに限定されず、1度や2度等旋回前後の位置が近似した位置となるような角度であれば良い。
計測部20は、ロボット本体から離間した位置にある目印(以下、「ランドマーク」という。)を基準にして、当該ロボット本体の旋回前後に関わるロボット位置およびロボット方位を計測する。ここで、ロボット本体の旋回前後に関わるロボット位置およびロボット方位の計測について、図2を参照して説明する。図2は、実施例1に係るロボット制御装置1のロボット位置およびロボット方位の計測を説明するための図である。
移動ロボットは、旋回前に所定のランドマークを抽出する。そして、移動ロボットは、ロボット本体の旋回開始位置から、抽出されたランドマークに対して相対位置および相対方位を計測して、ランドマークに対する自己のロボット位置およびロボット方位とする。なお、計測方法として、例えば2台のステレオカメラをロボットに搭載してステレオ視覚を用いて計測する方法があるが、これに限定されるものではない。また、ランドマークには、目印として特徴があり計測しやすい標的であれば良く、例えばロボットの充電機がある。
次に、移動ロボットは、ロボット本体の旋回開始位置から所定位置を中心にして、旋回前後の位置が近似した位置となる所定角度、例えば360度旋回する。そして、移動ロボットは、旋回後の旋回終了位置から、旋回前と同じランドマークに対して相対位置および相対方位を計測して、ランドマークに対する自己のロボット位置およびロボット方位とする。
ここで、移動ロボットは、例えば所定角度を360度とした場合、360度旋回指示に基づいて旋回しているため、車輪に関わる誤差がなければ、360度旋回後には旋回前の位置および方位に戻ることができる。ところが、移動ロボットは、車輪に関わる誤差があると、360度旋回後には旋回前の位置および方位に戻ることができない。すなわち、旋回後のランドマークに対する自己のロボット位置は、旋回前のランドマークに対する自己のロボット位置と同一にならない。そして、旋回後のロボット方位も同様に旋回前のロボット方位と同一にならない。
そこで、旋回前後のロボット位置およびロボット方位を用いて、車輪に関わる誤差を、後記する算出部30によって算出する。
図1に戻って、算出部30は、計測部20にて計測した旋回前後に関わるロボット位置間の差分および旋回前後に関わるロボット方位間の差分に基づき、車輪に関わる誤差を算出する。
上記実施例1によれば、ロボット制御装置1は、ロボット本体を旋回前後の位置が近似した位置となるような所定角度旋回させてロボット本体の位置等を計測しているため、旋回前後のロボット本体の位置が近似し、旋回前後の計測条件の変動も小さく済むこととなる。そのため、ロボット制御装置1は、ロボットの車輪に関わる誤差を正確に算出することができ、当該誤差の調整精度を向上させることができる。
また、ロボット制御装置1は、ロボットの車輪に関わる誤差を自動的に算出することができ、その後、当該誤差を補正することにより効率的な調整を行うことができる。
ところで、移動ロボットのオドメトリによる自己位置推定は、運動学モデルを用いて行われる。この運動学モデルについて、図3を参照して説明する。図3は、移動ロボット運動学モデルの説明を示す図である。
まず、移動ロボットの運動学モデルを説明するための定義を行う。ロボットは、2つの車輪を有するものとする。そして、ロボットの位置および方位は、座標軸をX軸(X)およびY軸(Y)とした絶対座標系と、座標軸をX軸(X)およびY軸(Y)として且つロボットの中心を原点としたロボット座標系とから表される。ロボットの位置及び方位は、図3の例では、絶対座標系では(xG、、θ)で表され、ロボット座標系では(0、0、θ)で表される。ここで、θは、絶対座標系の原点からロボットに対する絶対方位であり、θは、ロボット座標系の原点からロボットが視ている相対方位、すなわちロボットの姿勢を指す。
また、ロボットの2つの車輪は、それぞれ右車輪の半径をr(単位:m、以下同じ)、左車輪の半径をrとし、両車輪間の距離をl(単位:m)とし、これらが運動学モデルでは重要な、車輪に関わるパラメータとなる。
さらに、車輪の回転速度は、それぞれ右車輪の回転速度をφ(単位:rad/秒、以下同じ)、左車輪の回転速度をφとする。また、ロボット本体の前進速度をv(単位:m/秒)、ロボット本体の回転速度をω(単位:m/秒)とする。
例えば、正転方向にφの回転速度で右車輪を回転させ、正転方向と反対方向に−φの回転速度で左車輪を回転させると、ロボット本体は(xG、)を中心にその場で旋回して、ロボット本体の回転速度ωが発生する。また、φ=φの回転速度で右車輪および左車輪を回転させると、ロボット本体の回転速度ωは発生しないが、ロボットの前進速度vが発生する。つまり、左右車輪の回転速度φおよびφによってロボット本体の絶対座標が決定されることになる。
このような定義の下、移動ロボットの運動学モデルでは、絶対座標系で観測されるロボットの状態、すなわちロボットの絶対位置(x、y)および絶対方位θを式(1)および(2)のように表すことができる。なお、式(2)では、ロボットの状態をロボットの速度として表している。
Figure 0005487756
Figure 0005487756
式(2)により、ロボットの絶対位置および絶対方位(xG、、θ)は、左右車輪の回転速度φおよびφ以外に車輪に関わるパラメータとなる車輪の半径r、rおよび両車輪間の距離lによって決定される。
そして、ロボット座標系から絶対座標系へのロボットの速度に関する変換は、式(4)で表される回転変換の行列を用いて以下の式(3)のようになる。
Figure 0005487756
Figure 0005487756
さらに、ロボット座標系でのロボットの右車輪の回転速度ωは、右車輪の回転速度φを用いて、以下の式(5)のようになる。また、ロボットの左車輪の回転速度ωは、左車輪の回転速度φを用いて、以下の式(6)のようになる。
Figure 0005487756
Figure 0005487756
そして、車輪の回転速度から導出されロボットの自己位置を推定する際に使用される運動方程式は、回転変換の行列(8)を用いて式(7)のようになる。
Figure 0005487756
Figure 0005487756
上記した運動方程式によると、運動方程式に設定された車輪の半径r、rまたは両車輪間の距離lが、実際の車輪の半径または両車輪間の距離とそれぞれ異なると、移動後のロボットの絶対位置および方位(xG、、θ)が不正確となる。例えば、時間の経過による摩擦、さらには衝突等によって車輪の半径または車輪間の距離が変化することがある。その場合、運動学モデル(運動方程式)にパラメータとして設定された車輪の半径または車輪間の距離と実際の車輪の半径または車輪間の距離との間でそれぞれ誤差が生じることとなり、その結果、運動学モデルを用いた自己位置推定に誤差が生じることになる。したがって、車輪の半径または車輪間の距離が変化した場合には、運動学モデルにパラメータとして設定される車輪の半径または車輪間の距離を含む車輪に関わるパラメータを補正することが重要となる。
そこで、実施例2では、車輪に関わるパラメータのうち車輪の半径および車輪間の距離に関わる誤差を算出して、算出された誤差に基づき、当該車輪に関わるパラメータを補正する場合について説明する。
図4は、本実施例2に係るロボット制御装置2の構成を示す機能ブロック図である。なお、図1に示すロボット制御装置1と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。
図4に示すロボット制御装置2と実施例1に係るロボット制御装置1とが異なるところは、車輪に関わる誤差を算出する算出部30に旋回後絶対座標算出部31および誤差算出部32を追加し、指示部40、記憶部50、補正部60および報知部70を追加した点にある。
指示部40は、車輪に関わる誤差を補正するよう指示する機能部であり、パラメータ誤差補正指示部41を有する。
パラメータ誤差補正指示部41は、計測可能なランドマークを抽出後、車輪に関わるパラメータの誤差を補正部60に補正させるために、所定位置を中心にして当該ロボット本体を360度旋回させる旋回指示を移動制御部10に対して行う。なお、パラメータ誤差補正指示部41は、計測可能なランドマークを抽出できない場合には、場所を移動して計測可能なランドマークを抽出後、当該旋回指示を行う。なお、ランドマークは、ロボット本体から離間した位置にあるものとする。
移動制御部10は、所定位置を中心にしてロボット本体を360度旋回させる旋回指示をパラメータ誤差補正指示部41から取得すると、ロボット本体を旋回させるために必要な両車輪の回転速度を記憶部50から読み出す。また、移動制御部10は、記憶部50から読み出された両車輪の回転速度に基づいて、所定位置を中心にロボット本体を360度旋回させる場合に要する動作時間を算出する。この動作時間の算出は、例えばノミナル運動モデルを用いて算出される。
また、移動制御部10は、ロボット本体の旋回前に車輪内のギアによるバックラッシュを除去する動作を行う。具体的には、移動制御部10は、ロボット本体の旋回を開始する前に、車輪内の第1ギア部および第2ギア部同士を噛合わせて第1ギア部および第2ギア部をロボット本体の旋回方向にゆっくりと回転させる。そして、移動制御部10は、第1ギア部の旋回方向側の噛合部位と第2ギア部の噛合部位とが完全に接触した状態で、ロボット本体の旋回を開始する。
なお、バックラッシュとは、車輪内の噛合っている第1ギア部と第2ギア部との噛合わせの隙間(遊び部分)のことである。このように、ロボット本体の旋回前にバックラッシュを除去することにより、バックラッシュによる車輪の回転量の誤差を排除することができ、車輪に関わるパラメータの誤差をより正確に算出することができる。
また、移動制御部10は、ロボット本体の旋回前(バックラッシュ除去後)およびロボット本体の旋回後に、ロボット本体の位置および方位を計測するように計測部20に指示する。
さらに、移動制御部10は、バックラッシュ除去後の旋回開始位置から所定位置を中心にして、算出された動作時間分、ロボット本体を旋回させる。
計測部20は、パラメータ誤差補正指示部41によって抽出されたランドマークを基準にして、当該ロボット本体の旋回前後に関わるロボット位置およびロボット方位を計測する。具体的には、計測部20は、ロボット本体の旋回前に、ロボット本体の位置および方位を計測する旨の指示を移動制御部10から取得すると、ロボット本体の旋回開始位置からランドマークに対して相対位置および相対方位を計測する。そして、計測部20は、計測した相対位置および相対方位を、ランドマークに対する自己のロボット位置およびロボット方位として記憶部50に格納する。
また、計測部20は、ロボット本体の旋回後にロボット本体の位置および方位を計測する旨の指示を移動制御部10から取得すると、ロボット本体の旋回終了位置からランドマークに対して相対位置および相対方位を計測する。そして、計測部20は、計測した相対位置および相対方位を、ランドマークに対する自己のロボット位置およびロボット方位として記憶部50に格納する。
記憶部50は、車輪に関わるパラメータの誤差を算出するために必要な値を記憶する機能部である。具体的には、記憶部50は、ロボット本体の旋回前後のロボット位置およびロボット方位を記憶する。また、記憶部50は、車輪に関わるパラメータ内の複数の要素、すなわち、両車輪の各半径、両車輪間の距離および両車輪の各回転速度をあらかじめ記憶する。
旋回後絶対座標算出部31は、計測部20によって計測された旋回前後のランドマークに対する自己のロボット位置および旋回開始位置に基づき、旋回後のロボットの絶対位置(旋回終了位置)を算出する。なお、旋回開始位置は、絶対座標系上の絶対位置を指す。
また、旋回後絶対座標算出部31は、計測部20によって計測された旋回前後のランドマークに対する自己のロボット方位および旋回開始位置でのロボットの絶対方位に基づき、旋回終了位置でのロボットの絶対方位を算出する。なお、旋回終了位置でのロボット本体の絶対座標(絶対位置および絶対方位)を算出する方法は後に詳述するものとする。
誤差算出部32は、旋回後絶対座標算出部31によって算出されたロボットの旋回前後の絶対座標の差分に基づき、車輪の半径が変化したことによる誤差または車輪間の距離が変化したことによる誤差を算出する。例えば、誤差算出部32は、車輪の半径に関する誤差として、実際の左右車輪の半径の比率を算出する。また、誤差算出部32は、車輪間の距離に関する誤差として、パラメータに設定された車輪間距離に対する実際の車輪間距離の比率を算出する。
ここで、車輪に関わるパラメータ内の車輪の半径または車輪間の距離に関わる誤差の算出方法について、図5および図6を参照して説明する。図5は、座標の定義を示す図であり、図6は、旋回後のロボット本体の絶対座標を算出する方法を示す図である。
まず、図5では、ロボットから離間した位置にあるランドマークと、旋回中心に旋回した旋回前後のロボットが絶対座標系上に表されている。ロボット本体の旋回開始位置の絶対座標は、G(x0、、θ)である。
また、旋回前のロボット本体のランドマークに対する相対位置および相対方位は、相対座標M(xm0、m0、θm0)として定義される。旋回中心を中心に旋回開始位置から360度旋回後のロボット本体のランドマークに対する相対位置および相対方位は、相対座標M(xm1、m1、θm1)として定義される。
図5における座標の定義の下、相対座標MおよびMおよび旋回前のロボット本体の絶対座標G(x0、、θ)に基づいて、旋回後のロボット本体の絶対座標G(x1、、θ)が算出される。
図6は、旋回後のロボット本体の絶対座標を算出する方法を示す図である。
まず、旋回前のロボット本体の絶対方位と、旋回前のロボット本体のランドマークに対する相対方位とに基づいて、式(9)に示すようにランドマークの絶対方位を算出する。
Figure 0005487756
次に、ランドマークの絶対方位と、旋回後のロボット本体の絶対方位および旋回後のロボット本体のランドマークに対する相対方位との関係は、式(10)のようになる。
Figure 0005487756
そうすると、式(9)および式(10)によって、式(11)に示すように、旋回後のロボット本体の絶対方位は、式(11)に示すように算出できる。
Figure 0005487756
また、旋回前のロボット本体の絶対位置および旋回前のロボット本体のランドマークに対する相対位置に基づいて、式(12)に示すようにランドマークの絶対位置を算出する。なお、相対位置を絶対座標系に変換するために、回転変換の行列(13)を使用する。
Figure 0005487756
Figure 0005487756
次に、ランドマークの絶対位置と、旋回後のロボット本体の絶対位置および旋回後のロボット本体のランドマークに対する相対位置との関係は、式(14)のようになる。
Figure 0005487756
そうすると、式(12)および式(14)によって、式(15)に示すように旋回後のロボット本体の絶対位置は、式(15)に示すように算出できる。
Figure 0005487756
ここで、移動ロボットの運動学モデルにより、車輪の回転速度が常数の場合、ロボットの動作時間tに応じてロボットの絶対方位θは、式(16)より式(17)に変換して表わすことができる。なお、旋回前のロボットの絶対座標は(0、0、0)であるものとする。また、φおよびφはそれぞれ右車輪および左車輪の回転速度、rおよびrはそれぞれ右車輪および左車輪の半径、lは両車輪間の距離を指すものとする。
Figure 0005487756
Figure 0005487756
また、同様に、ロボットの絶対位置xは、式(18)より式(19)に変換して表わすことができる。
Figure 0005487756
Figure 0005487756
さらに、ロボットが360度旋回した後ではロボットの方位(姿勢)が2π付近となるため、sin(x)をxで代入すると、360度旋回後のロボットの絶対方位および絶対位置は、式(20)および(21)により表わすことができる。なお、Cは、2πを指すものとする。
Figure 0005487756
Figure 0005487756
ここで、両車輪の回転速度を常数にしてロボット本体を360度旋回させるという条件により、以下に示すように変数を定義することができる。
例えば、車輪の半径が変化したことによる誤差eを、式(22)のように、左右車輪の半径の比率で表わすものとする。ここでは、誤差eは、右車輪の半径rに対する左車輪の半径r2の比率を指している。
Figure 0005487756
また、車輪間の距離が変化したことによる誤差eを、式(23)のように、パラメータに設定された車輪間距離Lに対する実際の車輪間距離lの比率で表わすものとする。
Figure 0005487756
また、車輪の回転速度φ、φおよび旋回時間tは、それぞれ式(24)および式(25)のように表わされる。なお、φは、あらかじめ定められた回転速度であるものとする。また、旋回時間tは、ロボット本体が360度旋回するのに要する動作時間Tである。
Figure 0005487756
Figure 0005487756
これらの変数を式(20)および(21)に代入し、さらにロボット旋回前後の絶対方位の差分を式(20)の左辺に代入し、ロボット旋回前後の絶対位置の差分を式(21)の左辺に代入して、車輪の半径に関わる誤差eおよび車輪間距離に関わる誤差eを算出する。すなわち、式(11)によって算出されたロボット旋回後の絶対方位θR_new(以降、θとする。)を式(20)の左辺に代入し、式(15)によって算出されたロボット旋回後の絶対位置PR_new(以降、xとする。)を式(21)の左辺に代入する。これにより、ロボット本体が360度旋回するのに要する動作時間Tだけ旋回した結果、旋回後の絶対座標が旋回前の絶対座標(0、0、0)との差分になり、差分に応じた誤差(eおよびe)を算出できる。
その結果、車輪の半径が変化したことによる誤差eは、式(26)によって表され、車輪間の距離が変化したことによる誤差eは、式(27)によって表わされる。
Figure 0005487756
Figure 0005487756
このようにして、車輪に関わるパラメータ内の車輪の半径に関する誤差eおよび車輪間の距離に関する誤差eをそれぞれ算出することができる。
図4に戻って、補正部60は、車輪に関わるパラメータを補正する機能部であり、パラメータ補正部61を有する。
パラメータ補正部61は、誤差算出部32にて算出された誤差に基づき、車輪に関わるパラメータを補正する。例えば、パラメータ補正部61は、誤差算出部32にて算出された車輪の半径に関わる誤差eおよび車輪間の距離に関わる誤差eを前述した運動モデルで使用される運動方程式のパラメータに反映させるように補正する。
具体的には、式(26)による車輪の半径が変化したことによる誤差eを用いて、ロボットが移動する際に使用する運動方程式(式(7))の車輪の半径を補正する。すなわち、運動方程式の左車輪の半径rを、式(22)を用いてe×rに置換する。また、式(27)による車輪間の距離が変化したことによる誤差eを用いて、ロボットが移動する際に使用する運動方程式(式(7))の車輪間の距離を補正する。すなわち、運動方程式の両車輪間の距離lを、式(23)を用いてl×eに置換する。以下の式(28)が補正後の運動方程式となる。
Figure 0005487756
なお、パラメータ補正部61は、移動制御部10、計測部20および算出部30によって実行される誤差分析を、あらかじめ定められた回数分実行して、誤差分析結果の平均を用いて車輪に関わるパラメータを補正しても良い。
報知部70は、誤差算出部32にて算出された誤差が異常閾値を超えた場合、車輪の異常を報知する。具体的には、報知部70は、車輪の半径に関わる誤差または車輪間の距離に関わる誤差のうちいずれか一方でも異常閾値を越えた場合、異常がある旨を、ロボットを管理する計算機システムに送信する。例えば、異常には、車輪の異常、計測機器の異常または組み立て不良による異常を含むものとする。
次に、実施例2に係るロボット制御装置の誤差補正手順を、図7を参照して説明する。図7は、実施例2に係るロボット制御装置の誤差補正手順を示すフローチャートである。
まず、パラメータ誤差補正指示部41は、計測可能なランドマークを抽出して(ステップS11)、所定位置を中心にしてロボット本体を360度旋回させるように移動制御部10に指示する。
すると、移動制御部10は、ロボット本体の旋回前に車輪内のギアによるバックラッシュを除去する動作を行う(ステップS12)。これにより、移動制御部10は、バックラッシュによる車輪の回転量の誤差を排除することができるため、車輪に関わるパラメータの誤差をより正確に算出することができる。
バックラッシュ除去後、計測部20は、ロボット本体の旋回開始位置からランドマークに対して相対位置および相対方位を計測して(ステップS13)、ランドマークに対する自己のロボット位置およびロボット方位とする。
そして、移動制御部10は、所定位置を中心にして、旋回開始位置からロボット本体を360度旋回させる場合に要する動作時間分、ロボット本体を旋回させる(ステップS14)。なお、移動制御部10は、例えばノミナル運動モデルを使って、記憶部50に記憶された両車輪の回転速度に基づいた動作時間を算出する。
ロボット本体の旋回後、計測部20は、ロボット本体の旋回終了位置からランドマークに対して相対位置および相対方位を計測して(ステップS15)、ランドマークに対する自己のロボット位置およびロボット方位とする。
引き続き、旋回後絶対座標算出部31は、旋回前後のランドマークに対する自己のロボット位置およびロボット方位と、旋回開始位置およびロボットの絶対方位とに基づき、旋回後のロボットの絶対位置および絶対方位を算出する。そして、誤差算出部32は、ロボットの旋回前後の絶対座標(絶対位置、絶対方位)の差分に基づき、車輪に関わるパラメータ内の車輪の半径に関する誤差および車輪間の距離に関する誤差をそれぞれ算出する(ステップS16)。
また、誤差算出部32は、車輪に関わるパラメータに誤差があるか否かを判定する(ステップS17)。具体的には、誤差算出部32は、車輪に関わるパラメータ内の車輪の半径に関する誤差および車輪間の距離に関する誤差のうちいずれか一方でも誤差があるか否かを判定する。
そして、誤差算出部32は、車輪に関わるパラメータ内の車輪の半径に関する誤差および車輪間の距離に関する誤差のうちいずれも誤差がない場合(ステップS17No)、誤差補正処理を終了する。
一方、誤差算出部32は、車輪に関わるパラメータ内の車輪の半径に関する誤差および車輪間の距離に関する誤差のうちいずれか一方でも誤差がある場合(ステップS17Yes)、当該誤差が異常閾値を超えているか否かを判定する(ステップS18)。
そして、誤差算出部32は、誤差が異常閾値を超えていない場合(ステップS18No)、車輪の半径に関わる誤差e1および車輪間の距離に関わる誤差e2を前述した運動モデルに用いられる運動方程式のパラメータに反映させるように補正する(ステップS19)。
一方、誤差算出部32は、誤差異常閾値を超えている場合(ステップS18Yes)、異常がある旨を、ロボットを管理する計算機システムに報知する(ステップS20)。
上記実施例2によれば、ロボット制御装置2は、ロボット本体の旋回開始位置から所定位置を中心にして、当該ロボット本体を360度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始し、当該ロボット本体から離間した位置にある目印を基準にして、当該ロボット本体の旋回前後に関わるロボット位置及びロボット方位を計測し、計測した旋回前後に関わるロボット位置間の差分及び旋回前後に関わるロボット方位間の差分に基づき、車輪に関わるパラメータ内の車輪の半径に関する誤差および車輪間の距離に関する誤差を算出するようにした。さらに、ロボット制御装置2は、算出した誤差に基づき、車輪に関わるパラメータを補正するようにした。
かかる構成によれば、ロボット制御装置2は、ロボット本体を360度旋回させてロボット本体の位置等を計測しているため、旋回前後のロボット本体の位置が近似し、旋回前後の計測条件の変動も小さく済むこととなる。そのため、ロボット制御装置2は、ロボットの車輪に関わるパラメータの誤差を正確に算出することができ、オドメトリによる自己位置推定の調整精度を向上させることができる。
また、ロボット制御装置2は、ロボットの車輪に関わるパラメータの誤差を自動的に算出することができ、その後、当該パラメータを補正することによりオドメトリによる自己位置推定の調整を効率的に行うことができる。
さらに、ロボット制御装置2は、ロボットを360度旋回させる場所と目印とがあれば、車輪に関わるパラメータの誤差を調整することができるため、ロボットを直進させて当該誤差を調整するよりも場所を選ばないで容易に調整することができる。
なお、上記実施例2においては、移動制御部10は、ロボットから離間した位置を中心にして、ロボット本体を360度旋回させるようにした。しかし、移動制御部10は、ロボット本体の2つの車輪間の中央位置を中心にして、ロボット本体を360度旋回させるようにしても同様の効果が得られることは言うまでもない。
また、上記実施例2においては、パラメータ誤差補正指示部41は、ロボット本体を360度旋回させる旋回指示を行うものとした。しかし、パラメータ誤差補正指示部41は、誤差を拡大させるために、ロボット本体を360度複数回旋回させる旋回指示をしても同様の効果が得られることは言うまでもない。
ところで、実施例2では、車輪に関わるパラメータのうち車輪の半径および車輪間の距離に関わる誤差を算出して、算出された誤差に基づき当該車輪に関わるパラメータを補正して、オドメトリによる自己位置推定の調整精度を向上させる場合について説明した。しかし、車輪に関わるパラメータを補正した後、バックラッシュによる間隙距離(以降、「ガタ量」という。)を算出して、算出されたガタ量に基づき当該車輪の回転量を補正して、オドメトリによる自己位置推定の調整精度をさらに向上させるようにしても良く、実施例3として、以下に説明する。
図8は、本実施例3に係るロボット制御装置3の構成を示す機能ブロック図である。なお、図4に示すロボット制御装置2と同一の構成については同一符号を付すことで、その重複する構成および動作の説明については省略する。
図8に示すロボット制御装置3と実施例2に係るロボット制御装置2とが異なるところは、指示部40にガタ補正指示部42、算出部30にガタ量算出部33および補正部60にガタ量補正部62を追加した点にある。
ガタ補正指示部42は、計測可能なランドマークを抽出後、ガタ量を補正部60に補正させるために、所定位置を中心にしてロボット本体を所定角度旋回させる旋回指示を移動制御部10に対して行う。なお、パラメータ誤差補正指示部41は、計測可能なランドマークを抽出できない場合には、場所を移動して計測可能なランドマークを抽出後、当該旋回指示を行う。また、ガタ補正指示部42は、車輪に関わるパラメータを補正した後、連続して旋回指示を行っても良いし、連続しないで改めて旋回指示を行っても良い。
移動制御部10は、旋回指示をガタ補正指示部42から取得すると、車輪内の第1ギア部および第2ギア部同士を噛合わせて第1ギア部および第2ギア部をロボット本体の任意方向にゆっくりと回転させて、第1ギア部の任意方向側の噛合部位と第2ギア部の噛合部位とが完全に接触した状態にする。
また、移動制御部10は、旋回指示に応じてロボット本体を旋回させるために必要な両車輪の回転速度を記憶部50から読み出す。また、移動制御部10は、記憶部50から読み出された両車輪の回転速度に基づいて、所定位置を中心にロボット本体を所定角度旋回させる場合に要する動作時間を算出する。この動作時間の算出は、例えばノミナル運動モデルを使って算出される。
なお、移動制御部10はガタ量の算出を目的としてロボット本体を旋回させるため、所定角度は所定位置を中心に例えば1度から2度程度であれば良い。また、所定位置は、ロボット本体の2つの車輪間の中央を示すロボット中心とするが、これに限定されるものではない。
また、移動制御部10は、ロボット本体の旋回前(任意方向にゆっくり回転させた後)および旋回後にロボット本体の位置および方位を計測するように計測部20に指示する。
さらに、移動制御部10は、任意方向にゆっくり回転させた後の旋回開始位置からロボット中心を中心にして、算出された動作時間分、ロボット本体を旋回させる。
ガタ量算出部33は、計測部20によって計測された旋回前後のランドマークに対する自己のロボット方位および旋回開始位置でのロボットの絶対方位に基づき、旋回後のロボットの絶対方位を算出する。
また、ガタ量算出部33は、算出されたロボットの旋回前後の絶対方位の差分に基づき、ガタ量を算出する。
ここで、ガタ量の算出方法について、図9を参照して説明する。図9は、ガタ量を算出する方法を示す図である。
まず、移動制御部10は、ロボット中心を旋回中心に、ロボット本体の車輪内の第1ギア部aおよび第2ギア部bをA1方向にゆっくり回転させて、第1ギア部aのA1方向側の噛合部位と第2ギア部bの噛合部位とが完全に接触した状態にする。この状態でのロボット本体の絶対座標G(x0、、θ)を、旋回開始位置の絶対座標(0、0、0)とする。
次に、旋回開始位置から旋回前のロボット本体のランドマークに対する相対位置および相対方位が、計測部20によって計測され、相対座標M(xm0、ym、θm)として定義される。
さらに、移動制御部10は、ロボット中心を旋回中心に、旋回開始位置からA1方向と反対方向A2に角度θ旋回させる場合に要する動作時間分旋回させる。そして、旋回後のロボット本体のランドマークに対する相対位置および相対方位が、計測部20によって計測され、相対座標M(xm1、ym、θm)として定義される。
ロボット本体の旋回前後の相対座標MおよびMおよび旋回前のロボット本体の絶対座標Gに基づいて、旋回後のロボット本体の絶対座標Gが算出される。なお、旋回後のロボット本体の絶対座標の算出方法は、前述した「旋回後のロボット本体の絶対座標を算出する方法」と同様であるため、その説明を省略する。
ここで、旋回後のロボット本体の絶対座標Gの絶対方位は、旋回前の絶対座標Gの絶対方位が「0」であることにより、旋回後の相対方位θm1と旋回前の相対方位θm0との差分と一致する。つまり、この旋回前後の相対方位の差(θm1−θm0)は、ロボット本体が実際に旋回した角度と一致することになる。その結果、旋回指示された角度θと、ロボット本体が実際に旋回した角度との差分により、ガタ量が算出される。すなわち、ガタ量eは、以下の式(29)によって表される。
=θ−(θm1−θm0)・・・(29)
図8に戻って、ガタ量算出部33は、算出したガタ量を記憶部50に格納する。
ガタ量補正部62は、車輪の回転速度に変化があったとき、ガタ量算出部33によって算出されたガタ量に基づき、車輪の回転量を補正する。具体的には、ガタ量補正部62は、車輪の回転速度の回転方向が反対方向に変化したとき、記憶部50によって記憶されたガタ量を車輪の回転量に加算してロボット本体の軌道を補正する。
次に、実施例3に係るロボット制御装置のガタ量補正手順を、図10を参照して説明する。図10は、実施例3に係るロボット制御装置のガタ量補正手順を示すフローチャートである。なお、ステップS21〜S25は、ガタ量を算出する手順を説明し、ステップS26〜S28は、ガタ量を補正する手順を説明する。
まず、ガタ補正指示部42は、車輪に関わるパラメータを補正した後、計測可能なランドマークを抽出して(ステップS21)、所定位置を中心にしてロボット本体を所定角度旋回させるように移動制御部10に指示する。なお、所定角度は所定位置を中心に例えば1度から2度程度であれば良い。また、所定位置は、ロボット本体の2つの車輪間の中央を示すロボット中心とするが、これに限定されるものではない。
すると、移動制御部10が所定角度の旋回前にロボット本体を任意方向にゆっくり回転させる。そして、計測部20は、回転後の旋回開始位置からランドマークに対して相対位置および相対方位を計測して(ステップS22)、ランドマークに対する自己のロボット位置およびロボット方位とする。なお、所定角度の旋回前に任意方向にゆっくり回転させるのは、第1ギア部の任意方向側の噛合部位と第2ギア部の噛合部位とが完全に接触した状態にするためである。
引き続き、移動制御部10は、所定位置を中心にして旋回開始位置から任意方向と反対方向に所定角度旋回させる場合に要する動作時間分、ロボット本体を旋回させる(ステップS23)。
ロボット本体の旋回後、計測部20は、ロボット本体の旋回終了位置からランドマークに対して相対位置および相対方位を計測して(ステップS24)、ランドマークに対する自己のロボット位置およびロボット方位とする。
引き続き、ガタ量算出部33は、旋回前後のランドマークに対する自己のロボット方位と旋回開始位置のロボットの絶対方位とに基づき、旋回後のロボットの絶対方位を算出する。さらに、ガタ量算出部33は、ロボットの旋回前後の絶対方位の差分に基づき、ガタ量を算出して(ステップS25)、記憶部50に格納する。
その後、車輪の回転速度に変化があったとき、ガタ量補正部62は、車輪の回転速度の回転方向に変化があるか否かを判定する(ステップS26)。そして、ガタ量補正部62は、車輪の回転速度の回転方向に変化がある場合には(ステップS26Yes)、記憶部50によって記憶されたガタ量を車輪の回転量に加算して、ロボット本体の軌道を補正して(ステップS27)、ステップS28に遷移する。
一方、ガタ量補正部62は、車輪の回転速度の回転方向に変化がない場合には(ステップS26No)、モータ制御部(図示せず)に速度指令を指示する(ステップS28)。
上記実施例3によれば、ロボット制御装置3は、車輪に関わるパラメータの補正後、車輪内の第1ギア部および第2ギア部を任意方向にロボット本体を回転させて、回転後の旋回開始位置からロボット中心を中心としてロボット本体を任意方向と反対方向に所定角度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、当該ロボット本体から離間した位置にある目印を基準にして、当該ロボット本体の旋回前後に関わるロボット方位を計測し、計測した旋回前後に関わるロボット方位間の差分に基づき、第1ギア部の噛合部分および第2ギア部の噛合部分同士の間隙距離(ガタ量)を算出するようにした。さらに、ロボット制御装置3は、車輪の回転方向と反対方向に車輪を回転させた場合、算出されたガタ量を車輪の回転量に加算して補正するようにした。
かかる構成によれば、ロボット制御装置3は、オドメトリによる自己位置推定に関わる誤差となるガタ量を補正することにより、さらに自己位置推定の調整精度を向上させることができる。
また、ロボット制御装置3は、仮に所定角度がロボット中心を中心に0度に近い角度であれば旋回前後のロボット本体の位置が近似することになり、旋回前後の計測条件の変動も小さく済むことになる。そのため、ロボット制御装置3は、自己位置推定に関わる誤差となるガタ量を正確に算出することができ、オドメトリによる自己位置推定の調整精度を向上させることができる。
さらに、ロボット制御装置3は、ガタ量を自動的に算出することができ、その後、算出されたガタ量を補正することによりオドメトリによる自己位置推定の調整を効率的に行うことができる。
また、ロボット制御装置3は、ロボットをロボット中心に旋回させる場所と目印とがあれば、ガタ量を算出することができるため、仮にロボットを直進させてガタ量を算出するよりも場所を選ばないで容易に調整することができる。
以上、上記実施例によって本発明の技術的思想の範囲が限定されるものではなく、特許請求の範囲に記載した技術的範囲の範囲を逸脱しない限り、各種様々な実施例が実施可能であることは言うまでもない。また、本実施例に記載した効果は、これに限定されるものではない。
また、図示したロボット制御装置1〜3の各構成要素は機能概念的に記載したものであって、必ずしも物理的に図示のように構成されるものではなく、そのロボット制御装置1〜3の具体的な態様は図示のものに限縮されるものでは到底ないことは言うまでもない。
なお、ロボット制御装置1〜3にて行われる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)(またはMPU(Micro Processing Unit)、MCU(Micro Controller Unit)などのマイクロ・コンピュータ)および当該CPU(またはMPU、MCUなどのマイクロ・コンピュータ)にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。
また、ロボット制御装置1〜3にて行われる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)(またはMPU(Micro Processing Unit)、MCU(Micro Controller Unit)などのマイクロ・コンピュータ)および当該CPU(またはMPU、MCUなどのマイクロ・コンピュータ)にて解析実行させるために、コンピュータ読み取り可能な記録媒体に記録されるものであっても良く、この場合でも、上記実施例と同様の効果が得られることは言うまでもない。
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
(付記1)ロボット本体の旋回開始位置から所定位置を中心にして、当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する移動制御部と、
当該ロボット本体から離間した位置にある目印を基準にして、当該ロボット本体の旋回前後に関わるロボット位置およびロボット方位を計測する計測部と、
前記計測部にて計測した前記旋回前後に関わるロボット位置間の差分および前記旋回前後に関わるロボット方位間の差分に基づき、前記車輪に関わる誤差を算出する算出部と
を有することを特徴とするロボット制御装置。
(付記2)前記移動制御部は、
前記旋回開始位置から所定位置を中心にして、前記ロボット本体を360度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
前記算出部は、
前記計測部にて計測した前記旋回前後に関わるロボット位置間の差分および前記旋回前後に関わるロボット方位間の差分に基づき、前記車輪に関わるパラメータ内の複数の要素のうち、少なくとも前記車輪の半径または車輪間の距離に関わる誤差を算出することを特徴とする付記1に記載のロボット制御装置。
(付記3)前記算出部にて算出した前記誤差に基づき、前記車輪に関わるパラメータを補正する補正部を有することを特徴とする付記1または付記2に記載のロボット制御装置。
(付記4)前記移動制御部は、
前記旋回開始位置から前記所定位置を中心にして、前記ロボット本体を複数回360度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始することを特徴とする付記1から付記3のいずれか1つに記載のロボット制御装置。
(付記5)前記算出部にて算出した前記誤差が異常閾値を超えた場合、前記車輪の異常を報知する報知部を有することを特徴とする付記1から付記4のいずれか1つに記載のロボット制御装置。
(付記6)前記移動制御部は、
前記ロボット本体の旋回を開始する前に、前記車輪内の第1ギア部および第2ギア部同士を噛合して前記第1ギア部および前記第2ギア部を正転方向に回転させて、前記第1ギア部の前記正転方向側の噛合部位と当該第2ギアの噛合部位とが完全に接触した状態で、前記ロボット本体の旋回を開始することを特徴とする付記1から付記5のいずれか1つに記載のロボット制御装置。
(付記7)前記移動制御部は、
前記ロボット本体の旋回を開始する前に、前記第1ギア部および前記第2ギア部を正転方向と反対方向に回転させて、回転後の前記旋回開始位置から所定位置を中心として前記ロボット本体を前記正転方向に前記所定角度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
前記算出部は、
前記計測部にて計測した前記所定角度の旋回前後のロボット方位に基づき、前記第1ギア部の噛合部分および前記第2ギア部の噛合部分同士の間隙距離を算出することを特徴とする付記6に記載のロボット制御装置。
(付記8)前記所定位置は、
前記ロボット本体の2つの車輪間の中央であることを特徴とする付記7に記載のロボット制御装置。
(付記9)前記正転方向と反対方向に前記車輪を回転させた場合、前記算出部にて算出した前記間隙距離を前記車輪の回転量に加算して補正する補正部を有することを特徴とする付記7または付記8に記載のロボット制御装置。
(付記10)ロボット本体の旋回開始位置から所定位置を中心にして、当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する移動制御手順と、
当該ロボット本体から離間した位置にある目印を基準にして、当該ロボット本体の旋回前後に関わるロボット位置およびロボット方位を計測する計測手順と、
前記計測手順にて計測した前記旋回前後に関わるロボット位置間の差分および前記旋回前後に関わるロボット方位間の差分に基づき、前記車輪に関わる誤差を算出する算出手順と
をコンピュータに実行させることを特徴とするロボット制御プログラム。
(付記11)前記移動制御手順は、
前記旋回開始位置から所定位置を中心にして、前記ロボット本体を360度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
前記算出手順は、
前記計測手順にて計測した前記旋回前後に関わるロボット位置間の差分および前記旋回前後に関わるロボット方位間の差分に基づき、前記車輪に関わるパラメータ内の複数の要素のうち、少なくとも前記車輪の半径または車輪間の距離に関わる誤差を算出することを特徴とする付記10に記載のロボット制御プログラム。
(付記12)前記算出手順にて算出した前記誤差に基づき、前記車輪に関わるパラメータを補正する補正手順を含むことを特徴とする付記10または付記11に記載のロボット制御プログラム。
(付記13)前記移動制御手順は、
前記旋回開始位置から前記所定位置を中心にして、前記ロボット本体を複数回360度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始することを特徴とする付記10から付記12のいずれか1つに記載のロボット制御プログラム。
(付記14)前記算出手順にて算出した前記誤差が異常閾値を超えた場合、前記車輪の異常を報知する報知手順を含むことを特徴とする付記10から付記13のいずれか1つに記載のロボット制御プログラム。
(付記15)前記移動制御手順は、
前記ロボット本体の旋回を開始する前に、前記車輪内の第1ギア部および第2ギア部同士を噛合して前記第1ギア部および前記第2ギア部を正転方向に回転させて、前記第1ギア部の前記正転方向側の噛合部位と当該第2ギアの噛合部位とが完全に接触した状態で、前記ロボット本体の旋回を開始することを特徴とする付記10から付記14のいずれか1つに記載のロボット制御プログラム。
(付記16)前記移動制御手順は、
前記ロボット本体の旋回を開始する前に、前記第1ギア部および前記第2ギア部を正転方向と反対方向に回転させて、回転後の前記旋回開始位置から所定位置を中心として前記ロボット本体を前記正転方向に前記所定角度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
前記算出手順は、
前記計測手順にて計測した前記所定角度の旋回前後のロボット方位に基づき、前記第1ギア部の噛合部分および前記第2ギア部の噛合部分同士の間隙距離を算出することを特徴とする付記15に記載のロボット制御プログラム。
(付記17)前記所定位置は、
前記ロボット本体の2つの車輪間の中央であることを特徴とする付記16に記載のロボット制御プログラム。
(付記18)前記正転方向と反対方向に前記車輪を回転させた場合、前記算出手順にて算出した前記間隙距離を前記車輪の回転量に加算して補正する補正手順を有することを特徴とする付記16または付記17に記載のロボット制御プログラム。
(付記19)コンピュータが2輪駆動のロボットを制御するロボット制御方法であって、
ロボット本体の旋回開始位置から所定位置を中心にして、当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する移動制御工程と、
当該ロボット本体から離間した位置にある目印を基準にして、当該ロボット本体の旋回前後に関わるロボット位置およびロボット方位を計測する計測工程と、
前記計測工程にて計測した前記旋回前後に関わるロボット位置間の差分および前記旋回前後に関わるロボット方位間の差分に基づき、前記車輪に関わる誤差を算出する算出工程と
を含むことを特徴とするロボット制御方法。
(付記20)前記移動制御工程は、
前記旋回開始位置から所定位置を中心にして、前記ロボット本体を360度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
前記算出工程は、
前記計測工程にて計測した前記旋回前後に関わるロボット位置間の差分および前記旋回前後に関わるロボット方位間の差分に基づき、前記車輪に関わるパラメータ内の複数の要素のうち、少なくとも前記車輪の半径または車輪間の距離に関わる誤差を算出することを特徴とする付記19に記載のロボット制御方法。
(付記21)前記算出工程にて算出した前記誤差に基づき、前記車輪に関わるパラメータを補正する補正工程を含むことを特徴とする付記19または付記20に記載のロボット制御方法。
(付記22)前記移動制御工程は、
前記旋回開始位置から前記所定位置を中心にして、前記ロボット本体を複数回360度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始することを特徴とする付記19から付記21のいずれか1つに記載のロボット制御方法。
(付記23)前記算出工程にて算出した前記誤差が異常閾値を超えた場合、前記車輪の異常を報知する報知工程を含むことを特徴とする付記19から付記22のいずれか1つに記載のロボット制御方法。
(付記24)前記移動制御工程は、
前記ロボット本体の旋回を開始する前に、前記車輪内の第1ギア部および第2ギア部同士を噛合して前記第1ギア部および前記第2ギア部を正転方向に回転させて、前記第1ギア部の前記正転方向側の噛合部位と当該第2ギアの噛合部位とが完全に接触した状態で、前記ロボット本体の旋回を開始することを特徴とする付記19から付記23のいずれか1つに記載のロボット制御方法。
(付記25)前記移動制御工程は、
前記ロボット本体の旋回を開始する前に、前記第1ギア部および前記第2ギア部を正転方向と反対方向に回転させて、回転後の前記旋回開始位置から所定位置を中心として前記ロボット本体を前記正転方向に前記所定角度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
前記算出工程は、
前記計測工程にて計測した前記所定角度の旋回前後のロボット方位に基づき、前記第1ギア部の噛合部分および前記第2ギア部の噛合部分同士の間隙距離を算出することを特徴とする付記24に記載のロボット制御方法。
(付記26)前記所定位置は、
前記ロボット本体の2つの車輪間の中央であることを特徴とする付記25に記載のロボット制御方法。
(付記27)前記正転方向と反対方向に前記車輪を回転させた場合、前記算出工程にて算出した前記間隙距離を前記車輪の回転量に加算して補正する補正工程を含むことを特徴とする付記25または付記26に記載のロボット制御方法。
1、2、3 ロボット制御装置
10 移動制御部
20 計測部
30 算出部
31 旋回後絶対座標算出部
32 誤差算出部
33 ガタ量算出部
40 指示部
41 パラメータ誤差補正指示部
42 ガタ補正指示部
50 記憶部
60 補正部
61 パラメータ補正部
62 ガタ量補正部
70 報知部

Claims (7)

  1. ロボット本体の絶対座標系における絶対位置を示す旋回開始位置から所定位置を中心にして、現時点で把握されている車輪の半径および車輪間の距離に関する情報に基づいて当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する移動制御部と、
    当該ロボット本体の前記旋回開始位置から当該ロボット本体から離間した位置にある目印に対して当該ロボット本体の旋回前の相対位置および相対方位を計測し、当該ロボット本体の旋回終了位置から前記目印に対して当該ロボット本体の旋回後の相対位置および相対方位を計測する計測部と、
    前記計測部にて計測した旋回前後の前記目印に対する相対方位および前記旋回開始位置での当該ロボット本体の絶対方位に基づき、前記旋回終了位置での当該ロボット本体の絶対方位を算出し、前記計測部にて計測した旋回前後の前記目印に対する相対位置、前記旋回開始位置および前記相対位置を前記絶対座標系における絶対位置に変換するために用いられる回転行列であって算出されたロボット本体の絶対方位を用いた回転行列に基づき、当該ロボット本体の旋回後の絶対位置を示す旋回終了位置を算出する第一の算出部と、
    前記第一の算出部にて算出した前記旋回前後絶対位置間の差分および前記旋回前後絶対方位間の差分に基づき、移動ロボットの運動学モデルを用いて、前記車輪の半径および車輪間の距離に関わる誤差を算出する第二の算出部と
    を有することを特徴とするロボット制御装置。
  2. 前記移動制御部は、
    前記旋回開始位置から所定位置を中心にして、前記ロボット本体を360度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
    前記第二の算出部は、
    前記第一の算出部にて算出した前記旋回前後に関わる絶対位置間の差分および前記旋回前後に関わる絶対方位間の差分に基づき、前記運動学モデルで用いられる車輪に関わるパラメータ内の複数の要素のうち、少なくとも前記車輪の半径および車輪間の距離に関わる誤差を算出することを特徴とする請求項1に記載のロボット制御装置。
  3. 前記第二の算出部にて算出した前記誤差に基づき、前記運動学モデルで用いられる前記車輪の半径および車輪間の距離を補正する補正部を有することを特徴とする請求項1または請求項2に記載のロボット制御装置。
  4. 前記移動制御部は、
    前記ロボット本体の旋回を開始する前に、前記車輪内の第1ギア部および第2ギア部同士を噛合して前記第1ギア部および前記第2ギア部を正転方向に回転させて、前記第1ギア部の前記正転方向側の噛合部位と当該第2ギアの噛合部位とが完全に接触した状態で、前記ロボット本体の旋回を開始することを特徴とする請求項1から請求項3のいずれか1つに記載のロボット制御装置。
  5. 前記移動制御部は、
    さらに、前記ロボット本体の旋回を開始する前に、前記車輪内の第1ギア部および第2ギア部同士を噛合して前記第1ギア部および前記第2ギア部を正転方向と反対方向に回転させて、回転後の前記旋回開始位置から所定位置を中心として前記ロボット本体を前記正転方向に前記所定角度旋回させる旋回指示を検出すると、当該ロボット本体の旋回を開始し、
    前記第二の算出部は、
    さらに、前記第一の算出部にて算出した前記所定角度の旋回前後のロボット本体の絶対方位の差分に基づき、前記第1ギア部の噛合部分および前記第2ギア部の噛合部分同士の間隙距離を算出することを特徴とする請求項1に記載のロボット制御装置。
  6. ロボット本体の絶対座標系における絶対位置を示す旋回開始位置から所定位置を中心にして、現時点で把握されている車輪の半径および車輪間の距離に関する情報に基づいて当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する移動制御手順と、
    当該ロボット本体の前記旋回開始位置から当該ロボット本体から離間した位置にある目印に対して当該ロボット本体の旋回前の相対位置および相対方位を計測し、当該ロボット本体の旋回終了位置から前記目印に対して当該ロボット本体の旋回後の相対位置および相対方位を計測する計測手順と、
    前記計測手順にて計測した旋回前後の前記目印に対する相対方位および前記旋回開始位置での当該ロボット本体の絶対方位に基づき、前記旋回終了位置での当該ロボット本体の絶対方位を算出し、前記計測手順にて計測した旋回前後の前記目印に対する相対位置、前記旋回開始位置および前記相対位置を前記絶対座標系における絶対位置に変換するために用いられる回転行列であって算出されたロボット本体の絶対方位を用いた回転行列に基づき、当該ロボット本体の旋回後の絶対位置を示す旋回終了位置を算出する第一の算出手順と、
    前記第一の算出手順にて算出した前記旋回前後絶対位置間の差分および前記旋回前後絶対方位間の差分に基づき、移動ロボットの運動学モデルを用いて、前記車輪の半径および車輪間の距離に関わる誤差を算出する第二の算出手順と
    をコンピュータに実行させることを特徴とするロボット制御プログラム。
  7. コンピュータが2輪駆動のロボットを制御するロボット制御方法であって、
    ロボット本体の絶対座標系における絶対位置を示す旋回開始位置から所定位置を中心にして、現時点で把握されている車輪の半径および車輪間の距離に関する情報に基づいて当該ロボット本体を旋回前後の位置が近似した位置となるように所定角度旋回させる旋回指示を検出すると、当該ロボット本体を移動させる2つの車輪の回転動作に応じて、当該ロボット本体の旋回を開始する移動制御工程と、
    当該ロボット本体の前記旋回開始位置から当該ロボット本体から離間した位置にある目印に対して当該ロボット本体の旋回前の相対位置および相対方位を計測し、当該ロボット本体の旋回終了位置から前記目印に対して当該ロボット本体の旋回後の相対位置および相対方位を計測する計測工程と、
    前記計測工程にて計測した旋回前後の前記目印に対する相対方位および前記旋回開始位置での当該ロボット本体の絶対方位に基づき、前記旋回終了位置での当該ロボット本体の絶対方位を算出し、前記計測工程にて計測した旋回前後の前記目印に対する相対位置、前記旋回開始位置および前記相対位置を前記絶対座標系における絶対位置に変換するために用いられる回転行列であって算出されたロボット本体の絶対方位を用いた回転行列に基づき、当該ロボット本体の旋回後の絶対位置を示す旋回終了位置を算出する第一の算出工程と、
    前記第一の算出工程にて算出した前記旋回前後絶対位置間の差分および前記旋回前後絶対方位間の差分に基づき、移動ロボットの運動学モデルを用いて、前記車輪の半径および車輪間の距離に関わる誤差を算出する第二の算出工程と
    を含むことを特徴とするロボット制御方法。
JP2009152957A 2009-06-26 2009-06-26 ロボット制御装置、ロボット制御プログラムおよびロボット制御方法 Expired - Fee Related JP5487756B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009152957A JP5487756B2 (ja) 2009-06-26 2009-06-26 ロボット制御装置、ロボット制御プログラムおよびロボット制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009152957A JP5487756B2 (ja) 2009-06-26 2009-06-26 ロボット制御装置、ロボット制御プログラムおよびロボット制御方法

Publications (2)

Publication Number Publication Date
JP2011008637A JP2011008637A (ja) 2011-01-13
JP5487756B2 true JP5487756B2 (ja) 2014-05-07

Family

ID=43565188

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009152957A Expired - Fee Related JP5487756B2 (ja) 2009-06-26 2009-06-26 ロボット制御装置、ロボット制御プログラムおよびロボット制御方法

Country Status (1)

Country Link
JP (1) JP5487756B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111515916A (zh) * 2020-04-29 2020-08-11 广州高新兴机器人有限公司 一种机器人前转向***误差标定的方法和装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108372518B (zh) * 2018-01-08 2020-07-31 浙江立石机器人技术有限公司 机器人转向误差标定方法、装置及***
CN112230653A (zh) * 2020-09-24 2021-01-15 北京旷视机器人技术有限公司 驱动轮参数的确定方法、装置和自动导航车

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6281166A (ja) * 1985-10-03 1987-04-14 Data Iisuto Kk 走査ヘツド駆動方法
JPS62140784A (ja) * 1985-12-17 1987-06-24 フアナツク株式会社 ロボツトのバツクラツシユ補正装置
JP2572968B2 (ja) * 1986-07-14 1997-01-16 株式会社椿本チエイン 自律走行車の誘導方法
JP3863303B2 (ja) * 1998-10-19 2006-12-27 住友重機械工業株式会社 移動体の位置計測装置
WO2004103649A1 (ja) * 2003-05-20 2004-12-02 Fujitsu Limited バックラッシュ補償制御方法、バックラッシュ補償制御装置およびバックラッシュ補償制御プログラム
US7756614B2 (en) * 2004-02-27 2010-07-13 Hewlett-Packard Development Company, L.P. Mobile device control system
JP4377346B2 (ja) * 2005-03-11 2009-12-02 セコム株式会社 移動ロボット
JP2006349399A (ja) * 2005-06-14 2006-12-28 Yaskawa Electric Corp 方位角計測装置および移動体
JP2007156576A (ja) * 2005-11-30 2007-06-21 Mitsubishi Heavy Ind Ltd 走行台車のオドメトリ(車輪距離計)パラメータ調整方法及び装置
JP4984650B2 (ja) * 2006-05-30 2012-07-25 トヨタ自動車株式会社 移動装置及び移動装置の自己位置推定方法
JP4803498B2 (ja) * 2007-03-30 2011-10-26 株式会社エクォス・リサーチ 車輪半径推定装置
JP4811347B2 (ja) * 2007-05-24 2011-11-09 富士通株式会社 校正ロボットシステム及び距離センサの校正方法
JP5282457B2 (ja) * 2008-06-23 2013-09-04 富士通株式会社 救援ロボットシステム、救援方法及び救援ロボット

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111515916A (zh) * 2020-04-29 2020-08-11 广州高新兴机器人有限公司 一种机器人前转向***误差标定的方法和装置

Also Published As

Publication number Publication date
JP2011008637A (ja) 2011-01-13

Similar Documents

Publication Publication Date Title
EP3078459B1 (en) Robot controlling method, robot apparatus, program and recording medium
JP6493570B2 (ja) 電動パワーステアリング装置
JP2017124455A (ja) ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP7096053B2 (ja) 車両の車両カメラを較正するための方法および装置
CN104339349A (zh) 机器人装置及机器人控制方法
JP6698733B2 (ja) モータエンコーダ及びセンサを用いて学習制御を行うロボットシステム
JP2008059218A (ja) 自律走行ロボットの自己位置回復方法
JP5487756B2 (ja) ロボット制御装置、ロボット制御プログラムおよびロボット制御方法
JP4635971B2 (ja) 外力検知方法、マニピュレータ制御方法およびマニピュレータ制御システム
JP6419671B2 (ja) 車両用操舵装置および車両用操舵方法
CN111409632A (zh) 车辆控制方法及装置、计算机设备和存储介质
US11279403B2 (en) Drift stabilization system and method for vehicles and trailer reverse assist systems while straight line backing of trailer
JP2008183690A (ja) ロボット制御装置及びロボット制御システム
CN111634331B (zh) 一种自动驾驶车辆的转向控制方法、装置及***
WO2011104846A1 (ja) 操舵制御装置
CN112388602B (zh) 一种移动机器人的标定方法、装置及设备
JP2019077026A5 (ja)
CN105945994B (zh) 一种机器人头部关节舵机位置的校准方法、装置及机器人
JP6549940B2 (ja) 車両の挙動制御装置及び車両の挙動制御方法
JP2020006469A (ja) 自動機械及び制御装置
CN113156934B (zh) 一种车辆的自动驾驶***及其方法、非临时性计算机可读存储介质
JP2006290206A (ja) 電動パワーステアリング装置
JP7000283B2 (ja) 車両走行制御装置
JP2636675B2 (ja) 誘導追尾装置
JP5381039B2 (ja) 多関節マニピュレータの先端位置制御方法および多関節マニピュレータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140210

R150 Certificate of patent or registration of utility model

Ref document number: 5487756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees