(57)【要約】      （修正有）【課題】マニピュレータの利便性を犠牲にすることがなく、かつ安全性を向上した、マニピュレータを有する移動体を提供する。【解決手段】移動体１は、マニピュレータ１１と、移動機構１２と、現在位置取得部１４と、現在位置を用いて移動制御する移動制御部１５と、現在位置よりも高精度で位置検知を行う位置検知部１３と、位置検知の時点からの移動体１の移動量、回転量が大きくなるほど大きくなる誤差を取得する取得部１６と、作業可能範囲を示す範囲情報が記憶される記憶部１７と、マニピュレータ制御部１８とを備える。マニピュレータ制御部１８は、マニピュレータ１１の位置を取得部１６によって取得された誤差だけ広げた範囲が、範囲情報によって示される範囲内である場合に、マニピュレータ１１を動作させる。このようにして、マニピュレータ１１の利便性を向上させることができると共に、安全性も確保できる。【選択図】図２
2020104198.tif 000002
【特許請求の範囲】
【請求項１】
自律的に移動する移動体であって、
マニピュレータと、
前記移動体を移動させる移動機構と、
前記移動体の現在位置を取得する現在位置取得部と、
前記現在位置を用いて、前記移動機構を制御する移動制御部と、
前記現在位置よりも高い精度で前記移動体の位置検知を行う位置検知部と、
前記位置検知部によって前記移動体の位置が検知された時点からの前記移動機構による前記移動体の変化量が大きくなるほど大きくなる誤差を取得する取得部と、
前記マニピュレータの作業可能な範囲を示す範囲情報が記憶される記憶部と、
前記マニピュレータを制御するマニピュレータ制御部と、を備え、
前記現在位置取得部は、前記位置検知が行われた際には、当該位置検知された位置を現在位置とし、
前記マニピュレータ制御部は、前記マニピュレータの位置を前記取得部によって取得された誤差だけ広げた範囲が、前記範囲情報によって示される範囲内である場合に、前記マニピュレータを動作させる、移動体。
【請求項２】
前記変化量は、前記移動体の移動量及び回転量の少なくとも一方である、請求項１記載の移動体。
【請求項３】
前記位置検知は、前記移動体があらかじめ決められた位置に存在することを検知することである、請求項１または請求項２記載の移動体。
【請求項４】
前記マニピュレータ制御部は、前記移動体の速度が閾値より小さい場合にのみ、前記マニピュレータを動作させる、請求項１から請求項３のいずれか記載の移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マニピュレータを有する移動体に関する。
【背景技術】
【０００２】
従来、マニピュレータ（ロボットアーム）を有する移動体（自走ロボット）において、作業ステーションに設置した給電ユニットでのみマニピュレータに給電可能な構造とすることによって、走行時や作業ステーション以外の場所でのマニピュレータの誤動作や暴走を防ぐことが行われていた（例えば、特許文献１参照）。また、マニピュレータを有する移動体（移動台車）において、走行中にはマニピュレータが動作しないようにすることも行われていた（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−５７６６９号公報
【特許文献２】特公平７−２２９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１の移動体においては、安全性を向上させることはできるが、作業ステーション以外の場所ではマニピュレータを動作させることができず、マニピュレータの利便性がよくないという問題があった。また、上記特許文献２の移動体においては、移動体が停止している際にはマニピュレータが動作され得るため、マニピュレータを動作させるのに適していない場所においてマニピュレータが動作される可能性もあり、安全性を確保できなくなる可能性があるという問題があった。
【０００５】
本発明は、上記課題を解決するためになされたものであり、マニピュレータを有する移動体において、マニピュレータの利便性を向上させることができると共に、安全性も確保することができるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明による移動体は、自律的に移動する移動体であって、マニピュレータと、移動体を移動させる移動機構と、移動体の現在位置を取得する現在位置取得部と、現在位置を用いて、移動機構を制御する移動制御部と、現在位置よりも高い精度で移動体の位置検知を行う位置検知部と、位置検知部によって移動体の位置が検知された時点からの移動機構による移動体の変化量が大きくなるほど大きくなる誤差を取得する取得部と、マニピュレータの作業可能な範囲を示す範囲情報が記憶される記憶部と、マニピュレータを制御するマニピュレータ制御部と、を備え、現在位置取得部は、位置検知が行われた際には、位置検知された位置を現在位置とし、マニピュレータ制御部は、マニピュレータの位置を取得部によって取得された誤差だけ広げた範囲が、範囲情報によって示される範囲内である場合に、マニピュレータを動作させる、ものである。
このような構成により、作業ステーションなどのあらかじめ決められた場所以外においても、移動体のマニピュレータを動作させることができるようになり、マニピュレータの利便性が向上することになる。一方、範囲情報によって示される範囲内でのみマニピュレータを動作させることによって、安全性を確保することもできる。また、マニピュレータが範囲情報の示す範囲内に存在するかどうかの判断において、位置検知部による高精度な位置の検知が行われた時点からの移動機構による移動体の変化量に応じた誤差を用いることによって、より安全性を向上させることができるようになる。
【０００７】
また、本発明による移動体では、変化量は、移動体の移動量及び回転量の少なくとも一方であってもよい。
このような構成により、例えば、位置検知部による高精度な位置の検知が行われた時点からの移動体の移動量や回転量が大きくなった場合に、現在位置の精度が低くなっていることを考慮して、より大きい誤差を用いるようになり、安全性を向上させることができる。
【０００８】
また、本発明による移動体では、位置検知は、移動体があらかじめ決められた位置に存在することを検知することであってもよい。
このような構成により、例えば、簡単な構成によって、位置検知を行うことができるようになる。
【０００９】
また、本発明による移動体では、マニピュレータ制御部は、移動体の速度が閾値より小さい場合にのみ、マニピュレータを動作させてもよい。
このような構成により、より安全性を向上させることができるようになる。
【発明の効果】
【００１０】
本発明による移動体によれば、移動体が有するマニピュレータの利便性を向上させることができると共に、安全性を確保することもできるようになる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態による移動体の外観を示す模式図
【図２】同実施の形態による移動体の構成を示すブロック図
【図３】同実施の形態による移動体の動作を示すフローチャート
【図４】同実施の形態におけるマニピュレータ制御部の判断処理について説明するための図
【図５】同実施の形態における移動体の移動と誤差との関係の一例を示す説明図
【図６】同実施の形態における移動体の移動と誤差との関係の一例を示す説明図
【発明を実施するための形態】
【００１２】
以下、本発明による移動体について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態によるマニピュレータを有する移動体は、移動制御に用いられる現在位置よりも高精度な位置検知を行うことができる位置検知部を備えており、位置検知後の移動体の変化量が大きくなるほど大きくなる誤差を取得し、その誤差を考慮しても、マニピュレータの位置があらかじめ決められた範囲内となる場合にマニピュレータを動作可能に制御するものである。
【００１３】
図１は、本実施の形態による移動体１の外観を示す模式図であり、図２は、移動体１の機能的な構成を示すブロック図である。移動体１は、自律的に移動するものであり、マニピュレータ１１と、移動機構１２と、位置検知部１３と、現在位置取得部１４と、移動制御部１５と、取得部１６と、記憶部１７と、マニピュレータ制御部１８とを備える。なお、移動体１が自律的に移動するとは、移動体１がユーザ等から受け付ける操作指示に応じて移動するのではなく、自らの判断によって目的地に移動することであってもよい。その目的地は、例えば、手動で決められたものであってもよく、または、自動的に決定されたものであってもよい。また、その目的地までの移動は、例えば、移動経路に沿って行われてもよく、または、そうでなくてもよい。また、自らの判断によって目的地に移動するとは、例えば、進行方向、移動や停止などを移動体１が自ら判断することによって、目的地まで移動することであってもよい。また、例えば、移動体１が、障害物に衝突しないように移動することであってもよい。移動体１は、例えば、台車であってもよく、移動するロボットであってもよい。ロボットは、例えば、エンターテインメントロボットであってもよく、監視ロボットであってもよく、搬送ロボットであってもよく、清掃ロボットであってもよく、動画や静止画を撮影するロボットであってもよく、溶接ロボットであってもよく、塗装ロボットであってもよく、農薬散布ロボットであってもよく、組立ロボットであってもよく、その他のロボットであってもよい。
【００１４】
マニピュレータ１１は、モータによって駆動される関節によって連結された複数のアームを有するものであってもよい。マニピュレータ１１の先端には、マニピュレータ１１によって行われる作業、例えば、溶接や搬送対象の把持、塗装、部品等の組み立てなどに応じた手先効果器（エンドエフェクタ）が設けられていてもよい。マニピュレータ１１は、例えば、垂直多関節ロボットのマニピュレータであってもよく、水平多関節ロボットのマニピュレータであってもよい。また、そのマニピュレータ１１の軸数は問わない。図１で示されるように、マニピュレータ１１の基端側は、移動体１の車体１ａに固定されていてもよい。また、マニピュレータ１１は、マニピュレータ１１の全体を旋回させることができる軸を基端側に有していてもよい。
【００１５】
移動機構１２は、移動体１を移動させる。移動機構１２は、例えば、移動体１を全方向に移動できるものであってもよく、または、そうでなくてもよい。全方向に移動できるとは、任意の方向に移動できることである。移動機構１２は、例えば、走行部（例えば、車輪など）と、その走行部を駆動する駆動手段（例えば、モータやエンジンなど）とを有していてもよい。また、移動機構１２は、車輪等の回転数や速度を取得できる機構、例えば、エンコーダ等を有していてもよい。なお、移動機構１２が、移動体１を全方向に移動できるものである場合には、その走行部は、全方向移動車輪（例えば、オムニホイール、メカナムホイールなど）であってもよい。また、移動機構１２は、移動体１を回転（旋回）できるものであってもよい。この移動機構１２としては、公知のものを用いることができるため、その詳細な説明を省略する。
【００１６】
位置検知部１３は、現在位置取得部１４によって取得される現在位置よりも高い精度で移動体１の位置検知を行う。位置検知部１３によって行われる位置の検知は、例えば、移動体１の位置の取得であってもよく、移動体１があらかじめ決められた位置に存在することを検知することであってもよい。後者の場合には、移動体１があらかじめ決められた位置に存在するときに、位置検知部１３によって、そのことが確認されることになる。そのあらかじめ決められた位置は、ワールド座標系において決定された位置であってもよく、または、後述する範囲情報によって示される範囲において相対的に決められた位置（例えば、範囲情報によって示される領域におけるローカル座標系によって示される位置等）であってもよい。なお、位置の取得よりも、あらかじめ決められた位置に存在することを検知するほうが容易であるため、位置検知部１３は、移動体１があらかじめ決められた位置に存在することを検知するものであることが好適である。
【００１７】
位置検知部１３が移動体１の位置を取得する場合に、その位置の取得は、例えば、移動体１の移動領域に配置されたマーカを撮影した撮影画像を用いて行われてもよい。なお、マーカを用いた位置の取得が行われる場合には、マーカは、視覚的に認識可能な２次元の図形であってもよい。マーカの形状は問わないが、例えば、正方形状や、長方形状、その他の多角形状、円形状、楕円形状、また、それらの組み合わせであってもよい。なお、その形状は、特定可能な３以上の特徴点を有していることが好適である。また、その特徴点の少なくとも３点については、特徴点間のサイズが既知であることが好適である。そのサイズは、マーカと、撮影手段（カメラ）との相対的な位置関係を取得するのに必要であるため、移動体１の図示しない記録媒体において保持されており、位置検知部１３がアクセス可能になっていることが好適である。なお、上記のように、マーカの３点の特徴点間のサイズが既知であるとすると、そのサイズ（特徴点間の距離）を用いることによって、撮影手段とマーカとの相対的な位置関係を取得できることが知られている。したがって、位置検知部１３は、そのようにしてマーカに対するカメラの相対的な位置関係を取得することによって、移動体１の位置を取得することができる。なお、マーカのワールド座標系における位置が既知である場合には、その相対的な位置関係を用いて、移動体１のワールド座標系における位置を取得することもできる。
【００１８】
位置検知部１３が、移動体１があらかじめ決められた位置に存在することを検知する場合に、その検知は、例えば、光データ伝送装置を用いて行われてもよく、バンパースイッチ等の物理スイッチを用いて行われてもよく、上記の位置の取得と同様に、マーカを撮影した撮影画像を用いて行われてもよく、ＡＧＶ（Automated Guided Vehicle）等で使用される、床面に貼着された磁気ガイドテープを検知することによって行われてもよい。
【００１９】
位置検知に光データ伝送装置を用いる場合には、一組の光データ伝送装置のうち、一方を移動体１の移動領域に配置し、他方を移動体１に搭載してもよい。そして、移動領域に配置された光データ伝送装置と、移動体１に搭載された光データ伝送装置との間で光データ伝送を行うことができた時に、位置検知部１３は、移動体１があらかじめ決められた位置に存在すると判断してもよい。本実施の形態では、位置検知部１３が光データ伝送装置を用いて位置検知を行う場合について主に説明する。図１で示されるように、移動体１の移動領域に配置される光データ伝送装置２２は、床面に設置された支持部２１によって支持されていてもよい。なお、図１では、光データ伝送が斜め方向に行われるように光データ伝送装置２２が設置されているが、光データ伝送は、上下方向（鉛直方向）や、水平方向で行われてもよい。光データ伝送が行われた場合に、移動体１の存在範囲がより狭くなる、すなわち位置検知がより高精度になるという観点からは、光データ伝送装置２２と、位置検知部１３が有する光データ伝送装置との間での光データ伝送は、水平方向よりも、上下方向に近い方向で行われることが好適である。そのようにすることで、光データ伝送装置２２と光データ伝送を行うことができる位置検知部１３の範囲を限定することができるからである。
【００２０】
位置検知に物理スイッチを用いる場合には、例えば、移動体１の移動領域に物理スイッチが配置されており、その物理スイッチに移動体１が接触したときに、その接触を伝える情報を位置検知部１３が受信することによって、移動体１があらかじめ決められた位置に存在することが検知されてもよい。なお、物理スイッチは、移動体１側に装着されていてもよい。その場合には、例えば、移動体１において、移動領域に配置された特定形状の物体に合うように複数の物理スイッチがそれぞれ配設されており、その特定形状の物体に複数の物理スイッチのそれぞれが同時に接触することによって、位置の検知が行われてもよい。
【００２１】
位置検知に撮影画像を用いる場合には、移動体１の移動領域に配置されたマーカが、撮影画像におけるあらかじめ決められた箇所に存在するときに、位置検知部１３は、移動体１があらかじめ決められた位置に存在することを検知してもよい。この場合には、位置検知部１３は、周囲の撮影画像を取得するためのカメラを有していてもよい。
【００２２】
位置検知に磁気ガイドテープを用いる場合には、床面に貼着された磁気ガイドテープが、磁気センサによって読み取られたときに、位置検知部１３は、移動体１があらかじめ決められた位置に存在することを検知してもよい。なお、磁気センサによって、床面に貼着されたＴ字状や十字状の磁気ガイドテープの交点部分を検知することによって、検知の精度を向上させるようにしてもよい。このように、磁気ガイドテープを用いた位置検知が行われる場合には、位置検知部１３は、磁気ガイドテープを検知する磁気センサを有していてもよい。
【００２３】
現在位置取得部１４は、移動体１の現在位置を取得する。現在位置の取得は、例えば、無線通信を用いて行われてもよく、周囲の物体までの距離の測定結果を用いて行われてもよく、周囲の画像を撮影することによって行われてもよく、現在位置を取得できるその他の手段を用いてなされてもよい。無線通信を用いて現在位置を取得する方法としては、例えば、ＧＰＳ（Global Positioning System）を用いる方法や、屋内ＧＰＳを用いる方法、最寄りの無線基地局を用いる方法などが知られている。また、例えば、周囲の物体までの距離の測定結果を用いたり、周囲の画像を撮影したりすることによって現在位置を取得する方法としては、例えば、ＳＬＡＭ（Simultaneous Localization and Mapping）などによって知られている方法を用いてもよい。周囲の物体までの距離の測定結果としては、例えば、測距センサの測定結果を用いてもよい。測距センサは、例えば、移動体１の全方向または所定の角度範囲の方向に関して周囲の物体までの距離を測定するものであり、レーザセンサや、超音波センサ、マイクロ波を用いた距離センサ、ステレオカメラによって撮影されたステレオ画像を用いた距離センサなどであってもよい。レーザセンサは、レーザレンジセンサ（レーザレンジスキャナ）であってもよい。また、あらかじめ作成された地図（例えば、周囲の物体までの距離の測定結果や撮影画像を有する地図など）が記憶されている場合には、現在位置取得部１４は、地図を用いて、周囲の物体までの距離の測定結果に対応する位置を特定することによって現在位置を取得してもよく、周囲の画像を撮影し、地図を用いて、その撮影結果に対応する位置を特定することによって現在位置を取得してもよい。また、現在位置取得部１４は、例えば、自律航法装置を用いて現在位置を取得してもよい。現在位置取得部１４による現在位置の取得は、例えば、確率的なモデルを用いたものであってもよい。例えば、パーティクルフィルタを用いたＳＬＡＭによって現在位置を取得する場合には、確率的なモデルを用いて現在位置を取得することになる。このような確率的なモデルを用いた場合には、通常、現在位置の取得精度は、位置検知部１３による位置検知ほどは高くならないことになる。また、現在位置取得部１４は、移動体１の向き（方向）を含む現在位置を取得することが好適である。その方向は、例えば、北を０度として、時計回りに測定された方位角によって示されてもよく、その他の方向を示す情報によって示されてもよい。その向きは、電子コンパスや地磁気センサによって取得されてもよい。
【００２４】
なお、上記のように、現在位置取得部１４によって取得される現在位置は、位置検知部１３による位置検知よりも精度の低いものである。したがって、位置検知部１３によって位置検知が行われた際には、その位置検知された位置を現在位置とする。すなわち、位置検知が行われた際には、現在位置が、位置検知された位置に更新されることになる。通常、高精度な位置の取得には時間がかかるため、移動制御で用いられる現在位置としては、リアルタイム性を重視して、位置検知される位置よりも低精度のものが用いられることになる。
【００２５】
移動制御部１５は、現在位置取得部１４によって取得された現在位置を用いて移動機構１２を制御することによって、移動体１の移動を制御する。移動の制御は、移動体１の移動の向きや、移動の開始・停止などの制御であってもよい。例えば、移動経路が設定されている場合には、移動制御部１５は、移動体１がその移動経路に沿って移動するように、移動機構１２を制御してもよい。より具体的には、移動制御部１５は、現在位置取得部１４によって取得される現在位置が、その移動経路に沿ったものになるように、移動機構１２を制御してもよい。また、移動制御部１５は、地図を用いて、移動の制御を行ってもよい。移動制御部１５による移動機構１２の制御は公知であるため、その詳細な説明を省略する。
【００２６】
取得部１６は、位置検知部１３によって移動体１の位置が検知された時点からの移動機構１２による移動体１の変化量が大きくなるほど大きくなる誤差を取得する。移動機構１２による移動体１の変化量とは、移動体１の移動量及び回転量の少なくとも一方であってもよい。本実施の形態では、変化量が、移動体１の移動量及び回転量の両方である場合について主に説明する。
【００２７】
移動体１の移動量や回転量は、移動や回転の絶対値を累積した値である。したがって、例えば、移動体１が前方にＡメートル前進し、その後、Ａメートル後退することによって元の位置に戻った場合でも、移動量は２Ａメートルとなる。また、例えば、移動体１が上方から見て時計回りに角度θだけ回転し、その後、反時計回りに角度θだけ回転することによって元の角度に戻った場合でも、回転量は角度２θとなる。
【００２８】
位置検知部１３によって移動体１の位置検知が行われた時点からｔ秒後の移動体１の移動量をα（ｔ）とし、回転量をβ（ｔ）とすると、ｔ秒後の誤差ＥＲ（ｔ）は、例えば、次式のように取得されてもよい。なお、以下の関数Ｆ（ｘ）、Ｇ（ｘ）はそれぞれ変数ｘに関する増加関数であり、ｘ≧０である場合に、Ｆ（ｘ）≧０、Ｇ（ｘ）≧０であるとする。また、関数Ｆ（ｘ）、Ｇ（ｘ）はそれぞれ、Ｆ（０）＝０、Ｇ（０）＝０であることが好適である。位置検知の行われた時点（ｔ＝０）においては、位置検知された位置が現在位置とされており、高い精度の現在位置が取得されていることになるため、ｔ＝０の時点における誤差は、０とされることが好適だからである。なお、位置検知部１３による位置検知の誤差が分かっている場合には、ｔ＝０の時点の誤差を、その位置検知の誤差に設定してもよい。
ＥＲ（ｔ）＝Ｆ（α（ｔ））＋Ｇ（β（ｔ））
【００２９】
なお、移動量α（ｔ）は、例えば、現在位置取得部１４によって取得される現在位置を用いて取得されてもよく、または、移動機構１２に装着されたエンコーダの値を用いて取得されてもよい。また、回転量β（ｔ）は、例えば、現在位置に含まれる移動体１の方向を用いて取得されてもよく、または、移動体１に装着された方位センサや角速度センサの値を用いて取得されてもよい。角速度センサの値を用いて回転量β（ｔ）を算出する場合には、角速度センサの値を積分した値の絶対値を加算することによって、回転量を算出してもよい。また、移動体１が移動を開始してから一度も位置検知が行われていない場合には、上式における「ｔ」は、移動開始時点からの時間であってもよい。
【００３０】
記憶部１７では、マニピュレータ１１の作業可能な範囲を示す範囲情報が記憶される。範囲情報は、例えば、マニピュレータ１１の作業可能な範囲の輪郭を示す情報であってもよい。範囲情報は、通常、２次元平面における範囲を示す情報である。また、範囲情報は、例えば、ワールド座標系における範囲を示す情報であってもよい。
【００３１】
記憶部１７に範囲情報が記憶される過程は問わない。例えば、記録媒体を介して範囲情報が記憶部１７で記憶されるようになってもよく、通信回線等を介して送信された範囲情報が記憶部１７で記憶されるようになってもよく、または、入力デバイスを介して入力された範囲情報が記憶部１７で記憶されるようになってもよい。記憶部１７での記憶は、ＲＡＭ等における一時的な記憶でもよく、または、長期的な記憶でもよい。記憶部１７は、所定の記録媒体（例えば、半導体メモリや磁気ディスク、光ディスクなど）によって実現されうる。
【００３２】
マニピュレータ制御部１８は、マニピュレータ１１を制御する。マニピュレータ制御部１８は、例えば、マニピュレータ１１の手先の位置や姿勢に関する制御を行ってもよく、また、マニピュレータ１１の手先効果器に関する制御を行ってもよい。マニピュレータ制御部１８は、例えば、マニピュレータ１１が有する各モータを制御するサーボコントローラを介してマニピュレータ１１の制御を行ってもよい。例えば、マニピュレータ１１によって行われる作業があらかじめ決められている場合には、マニピュレータ制御部１８は、それに応じてマニピュレータ１１を制御するようにしてもよい。その作業は、例えば、範囲情報によって示される範囲内において、位置ごとに規定されていてもよい。
【００３３】
マニピュレータ制御部１８は、マニピュレータ１１の位置を、取得部１６によって取得された誤差だけ広げた範囲が、記憶部１７で記憶されている範囲情報によって示される範囲内である場合にマニピュレータ１１を動作させ、それ以外の場合、すなわち、マニピュレータ１１の位置を、取得部１６によって取得された誤差だけ広げた範囲が、記憶部１７で記憶されている範囲情報によって示される範囲内でない場合にマニピュレータ１１を動作させない。
【００３４】
なお、マニピュレータ１１の位置がある範囲に含まれるとは、マニピュレータ１１のすべての位置（例えば、先端の位置や、基端側の端部の位置、各関節の位置、各リンク（アーム）に含まれる位置等）がその範囲に含まれることを意味していてもよい。マニピュレータ１１は通常、複数のリンクが関節でつながった構成となっているため、マニピュレータ１１の位置がある範囲に含まれるかどうかは、マニピュレータ１１のいくつかの代表点の位置がその範囲に含まれるかどうかによって判断することができる。その代表点は、例えば、マニピュレータ１１の先端、各関節、及び基端側の端部であってもよい。また、マニピュレータ制御部１８は、通常、マニピュレータ１１の各関節の角度を用いることによって、移動体１のローカル座標系における代表点の位置を知ることができる。また、現在位置取得部１４によって取得されたワールド座標系における現在位置を用いて、そのローカル座標系における代表点の位置を、ワールド座標系における位置に変換することができる。したがって、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報によって示される範囲内であるかどうかは、ワールド座標系において、マニピュレータ１１の各代表点の位置を誤差だけ広げた範囲が、範囲情報によって示される範囲内であるかどうかによって判断されてもよい。そして、各代表点の位置を誤差だけ広げた範囲のそれぞれが、範囲情報によって示される範囲内である場合に、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報によって示される範囲内であると判断され、各代表点の位置を誤差だけ広げた範囲のいずれかが、範囲情報によって示される範囲内でない場合に、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報によって示される範囲内でないと判断されてもよい。
【００３５】
マニピュレータ制御部１８は、マニピュレータ１１のある位置について判断を行う場合に、その位置を中心とする円であって、半径が誤差の大きさである円の領域全体が、範囲情報の示す範囲内となるときに、その位置を誤差だけ広げた範囲が、範囲情報の示す範囲内であると判断し、その円の領域の少なくとも一部が、範囲情報の示す範囲外となるときに、その位置を誤差だけ広げた範囲が、範囲情報の示す範囲内でないと判断してもよい。
【００３６】
図４は、マニピュレータ１１の先端１１ａを誤差だけ広げた範囲が、範囲情報によって示される範囲５０内であるかどうかの判断について説明するための図である。図４は、移動体１及び範囲５０を上方から見た平面図である。図４で示されるように移動体１及びマニピュレータ１１が位置しており、また、誤差がｒ１である場合には、マニピュレータ１１の先端１１ａを誤差ｒ１だけ広げた範囲は、図４の円Ｃ１で示される範囲となる。この場合には、その円Ｃ１の領域の全体が、範囲５０の内側であるため、マニピュレータ制御部１８は、マニピュレータ１１の先端１１ａを誤差ｒ１だけ広げた範囲が、範囲５０内であると判断することになる。一方、誤差がｒ２である場合には、マニピュレータ１１の先端１１ａを誤差ｒ２だけ広げた範囲は、図４の円Ｃ２で示される範囲となる。この場合には、その円Ｃ２の領域の一部が、範囲５０の外側に存在するため、マニピュレータ制御部１８は、マニピュレータ１１の先端１１ａを誤差ｒ２だけ広げた範囲が、範囲５０内でないと判断することになる。マニピュレータ１１の先端１１ａ以外の位置についても、同様にして、誤差だけ広げた範囲が、範囲情報の示す範囲内であるかどうかの判断を行うことができる。
【００３７】
また、その判断で用いられるマニピュレータ１１の位置は、その判断時点におけるマニピュレータ１１の位置であってもよく、その直後に行われるマニピュレータ１１の動作後の位置であってもよい。動作後のマニピュレータ１１の位置が、範囲情報の示す範囲内となるようにする観点からは、後者のように制御されることが好適である。また、判断で用いられるマニピュレータ１１の位置が、その直後に行われるマニピュレータ１１の動作後の位置であり、また、移動体１が移動中にマニピュレータ１１を動作させている場合には、マニピュレータ制御部１８は、移動体１の移動も考慮した上で、直後のマニピュレータ１１の位置を算出し、その算出した位置を用いて、上記の判断を行ってもよい。
【００３８】
現在位置取得部１４は、上記のように、位置検知よりも低い精度の現在位置を取得する。したがって、位置検知が行われて現在位置がリセットされてからの移動量や回転量が多くなるほど、現在位置の誤差も大きくなりうる。また、そのような誤差を考慮した上で、マニピュレータ１１が範囲情報の示す範囲内に存在するかどうかを判断することによって、実際にはマニピュレータ１１が範囲情報の示す範囲外に出ているにも関わらず、マニピュレータ１１が範囲情報の示す範囲内に存在すると誤判断することを防止することができる。そのため、そのような誤判断を防止できるように、誤差が取得されることが好適である。すなわち、移動体１の移動や回転に応じて現在位置の誤差が増える程度に応じた誤差が取得されることが好適である。
【００３９】
また、マニピュレータ制御部１８は、移動体１の速度が閾値より小さい場合にのみ、マニピュレータ１１を動作させるようにしてもよい。すなわち、マニピュレータ制御部１８は、移動体１の速度が閾値より小さく、かつ、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報によって示される範囲内である場合に、マニピュレータ１１を動作させ、そうでない場合に、マニピュレータ１１を動作させなくてもよい。なお、移動体１の速度が閾値である場合には、マニピュレータ制御部１８は、マニピュレータ１１を動作させてもよく、または、動作させなくてもよい。閾値が「０」に設定されている場合には、マニピュレータ制御部１８は、移動体１の速度が０以下であるときにのみ（すなわち、実質的には移動体１の速度が０であるときにのみ）、マニピュレータ１１を動作させ、そうでないとき、すなわち移動体１の速度が０より大きいときに、マニピュレータ１１を動作させないようにしてもよい。上記の制御で用いられる移動体１の速度は、例えば、移動機構１２のエンコーダ等から取得される実速度であってもよく、移動制御部１５が移動の制御で用いる指令速度であってもよい。
【００４０】
次に、移動体１の動作について図３のフローチャートを用いて説明する。
（ステップＳ１０１）移動制御部１５は、移動を行うかどうか判断する。そして、移動を行う場合には、ステップＳ１０２に進み、そうでない場合には、ステップＳ１０５に進む。なお、移動制御部１５は、例えば、移動経路に応じた自律的な移動を行っている場合に、移動を行うと判断してもよい。また、移動制御部１５は、例えば、目的地に到達した場合に、移動を行わないと判断してもよい。
【００４１】
（ステップＳ１０２）現在位置取得部１４は、現在位置を取得する。
【００４２】
（ステップＳ１０３）移動制御部１５は、ステップＳ１０２で取得された現在位置を用いて移動機構１２を制御することによって、移動体１の移動制御を行う。この移動制御は、例えば、目的地に向かう自律的な移動の制御であってもよい。このステップＳ１０３の移動制御が繰り返されることによって、移動体１が出発地から目的地に到達してもよい。
【００４３】
（ステップＳ１０４）取得部１６は、ステップＳ１０３での移動制御に応じて、新たな誤差を取得する。取得部１６は、例えば、ステップＳ１０３の移動制御後の移動量α（ｔ）と回転量β（ｔ）とを用いて、上記のように誤差ＥＲ（ｔ）を算出してもよい。それまでに誤差が算出されている場合には、このステップＳ１０４の処理によって、誤差が更新されることになる。算出された誤差は、図示しない記録媒体で記憶されてもよい。そして、ステップＳ１０１に戻る。
【００４４】
（ステップＳ１０５）移動制御部１５は、位置検知のための移動を行うかどうか判断する。そして、位置検知のための移動を行う場合には、ステップＳ１０６に進み、そうでない場合には、ステップＳ１１１に進む。なお、位置検知のための移動とは、位置検知が行われる位置への移動のことである。例えば、後述するステップＳ１１２において、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報によって示される範囲内でないと判断された場合に、移動制御部１５は、位置検知のための移動を行うと判断してもよい。また、例えば，マニピュレータ１１の動作を開始する前には、移動制御部１５は、位置検知のための移動を行うと判断してもよい。
【００４５】
（ステップＳ１０６）現在位置取得部１４は、現在位置を取得する。
【００４６】
（ステップＳ１０７）移動制御部１５は、ステップＳ１０６で取得された現在位置を用いて移動機構１２を制御することによって、移動体１の移動制御を行う。この移動制御は、位置検知を行う位置に向かう自律的な移動の制御であってもよい。このステップＳ１０７の移動制御が繰り返されることによって、移動体１が位置検知を行う位置に到達してもよい。なお、この移動制御は現在位置を用いて行われるため、位置検知を行う位置に適切に到達できないこともあり得る。そのような場合には、移動制御部１５は、位置検知を行う位置の付近において、目的とする位置を見つけるための試行錯誤の移動を行うように移動機構１２を制御してもよい。その試行錯誤の移動は、例えば、あらかじめ決められた移動であってもよい。具体的には、試行錯誤の移動は、現在位置を用いて到達した、位置検知を行う位置を基準位置として、ある方向に所定の距離だけ移動し、その移動先の位置において旋回することなどであってもよい。その移動によっても位置検知を行うことができなかった場合には、移動制御部１５は、移動体１を基準位置に一度戻した後に、再度、別の方向について同様の移動を行うようにしてもよい。そのような試行錯誤の移動を行う方向は、例えば、前後左右の４方向であってもよく、または、さらに多くの細かい方向であってもよい。
【００４７】
（ステップＳ１０８）位置検知部１３は、移動体１があらかじめ決められた位置に存在することを検知したかどうか判断する。そして、移動体１があらかじめ決められた位置に存在することを検知できた場合には、ステップＳ１０９に進み、そうでない場合には、ステップＳ１０６に戻る。
【００４８】
（ステップＳ１０９）取得部１６は、誤差をリセットする。具体的には、移動量と回転量とが０にリセットされることによって、誤差も０にリセットされてもよい。
【００４９】
（ステップＳ１１０）現在位置取得部１４は、ステップＳ１０８で位置検知の行われたあらかじめ決められた位置を、その時点の現在位置に設定する。そして、ステップＳ１０１に戻る。
【００５０】
（ステップＳ１１１）マニピュレータ制御部１８は、マニピュレータ１１を制御するかどうか判断する。そして、マニピュレータ１１を制御する場合には、ステップＳ１１２に進み、そうでない場合には、ステップＳ１０１に戻る。なお、マニピュレータ制御部１８は、例えば、マニピュレータ１１による作業を行う位置に到達した場合に、マニピュレータ１１を制御すると判断してもよい。
【００５１】
（ステップＳ１１２）マニピュレータ制御部１８は、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報によって示される範囲内であるかどうか判断する。そして、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報の示す範囲内である場合には、ステップＳ１１３に進み、そうでない場合には、ステップＳ１０５に進む。なお、判断において用いられるマニピュレータ１１の位置は、判断時点におけるマニピュレータ１１の位置であってもよく、または、ステップＳ１１３における制御が行われた後のマニピュレータ１１の位置であってもよい。
【００５２】
（ステップＳ１１３）マニピュレータ制御部１８は、マニピュレータ１１を制御することによって、マニピュレータ１１を動作させる。なお、このステップＳ１１３の処理が繰り返されることによって、マニピュレータ１１による作業が行われてもよい。マニピュレータ１１による作業は、例えば、搬送対象物の積み降ろしや、溶接、部品等の組み立て、農薬の散布、清掃作業等であってもよい。そして、ステップＳ１０１に戻る。
【００５３】
なお、図３のフローチャートにおいて、ステップＳ１０１〜Ｓ１０４の移動の処理と、ステップＳ１１１〜Ｓ１１３のマニピュレータ１１の制御の処理とが並列して行われてもよい。その場合には、例えば、移動体１が移動しながら、マニピュレータ１１を動作させることができるようになる。その場合においても、上記のように、移動体１の移動速度が閾値より小さいときにのみ、マニピュレータ１１による作業が行われるようにしてもよい。また、ステップＳ１０１〜Ｓ１０４の目的地までの移動の処理と、ステップＳ１１１〜Ｓ１１３のマニピュレータ１１の制御の処理とは、いずれか一方の処理のみが行われるようにしてもよい。その場合には、移動体１が停止しているときにのみ、マニピュレータ１１による作業が行われることになる。また、図３のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。また、図３のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００５４】
次に、本実施の形態による移動体１の動作について、具体例を用いて説明する。この具体例では、図５の矢印で示されるように、移動体１が、移動体１−１で示される位置から、移動体１−２で示される位置、移動体１−３で示される位置、移動体１−４で示される位置、移動体１−５で示される位置まで順番に移動し、その各位置において、マニピュレータ１１による作業を行う場合について説明する。なお、移動体１−１で示される位置が、位置検知の行われるあらかじめ決められた位置であるとする。また、移動体１の移動領域において、範囲情報で示される範囲５１が設定されているものとする。また、図５、図６において、取得部１６によって取得された誤差を、破線の円の半径によって模式的に示している。すなわち、破線の円の半径が大きいほど、誤差が大きいことが示されていることになる。
【００５５】
まず、移動体１は、位置検知を行う位置に移動すると判断し（ステップＳ１０５）、移動体１−１の位置を目的地として移動を行う（ステップＳ１０６〜Ｓ１０８）。そして、移動体１−１の位置に到達すると、移動体１の移動領域に配置された光データ伝送装置２２と、位置検知部１３が有する光データ伝送装置との間で光データ伝送が行われることによって、位置検知が行われ（ステップＳ１０８）、誤差がリセットされると共に、移動体１−１の位置が移動体１の現在位置として設定される（ステップＳ１０９，Ｓ１１０）。すなわち、取得部１６は、時間ｔを０に設定することによって、移動量、回転量、及び誤差を０にリセットする。また、現在位置取得部１４は、図示しない記録媒体で記憶されている、移動体１−１の位置（すなわち、あらかじめ決められた位置）の座標値を読み出して、それを現在位置に設定する。それ以降の現在位置は、その現在位置を基準として、取得されることになる。
【００５６】
その後、移動体１は、移動体１−２の位置に移動すると判断して、その移動を行う（ステップＳ１０１〜Ｓ１０４）。なお、移動体１が移動体１−２の位置に到達した時点における誤差は、移動体１−２の位置の破線の円の半径で示される程度であったとする。その後、マニピュレータ制御部１８は、マニピュレータ１１の制御を行うと判断し（ステップＳ１１１）、直後に行われる制御によるマニピュレータ１１の移動先の位置を誤差だけ広げた範囲が、範囲５１内となるかどうか判断する（ステップＳ１１２）。この場合には、範囲５１内であったとする。すると、その判断結果に応じて、マニピュレータ１１の制御が行われる（ステップＳ１１３）。そして、そのマニピュレータ１１の制御が繰り返されることによって、マニピュレータ１１による作業が行われる（ステップＳ１０１，Ｓ１０５，Ｓ１１１〜Ｓ１１３）。なお、この作業中は、マニピュレータ１１の移動先の位置を誤差だけ広げた範囲が、範囲５１内であったものとする。
【００５７】
次に、移動体１は、移動体１−３の位置に移動すると判断して、その移動を行う（ステップＳ１０１〜Ｓ１０４）。なお、移動体１が移動体１−３の位置に到達した時点における誤差は、移動体１−３の位置の破線の円の半径で示される程度であったとする。その後、マニピュレータ制御部１８は、マニピュレータ１１の制御を行うと判断し（ステップＳ１１１）、直後に行われる制御によるマニピュレータ１１の移動先の位置を誤差だけ広げた範囲が、範囲５１内となるかどうか判断する（ステップＳ１１２）。この場合にも、範囲５１内であったとする。すると、その判断結果に応じて、マニピュレータ１１の制御が行われる（ステップＳ１１３）。そして、そのマニピュレータ１１の制御が繰り返されることによって、マニピュレータ１１による作業が行われる（ステップＳ１０１，Ｓ１０５，Ｓ１１１〜Ｓ１１３）。なお、この作業中も、マニピュレータ１１の移動先の位置を誤差だけ広げた範囲が、範囲５１内であったものとする。
【００５８】
同様にして、移動体１は、移動体１−４の位置に移動する（ステップＳ１０１〜Ｓ１０４）。また、その移動体１−４の位置におけるマニピュレータ１１の制御時にも、マニピュレータ１１の移動先の位置を誤差だけ広げた範囲が、範囲５１内になると判断され、その位置におけるマニピュレータ１１による作業を行うことができたとする（ステップＳ１１１〜Ｓ１１３）。
【００５９】
その後、移動体１は、移動体１−５の位置に移動すると判断して、その移動を行う（ステップＳ１０１〜Ｓ１０４）。なお、移動体１が移動体１−５の位置に到達した時点における誤差は、移動体１−５の位置の破線の円の半径で示される程度であったとする。そして、マニピュレータ１１の制御を行うために、マニピュレータ１１の移動先の位置を誤差だけ広げた範囲が、範囲５１内となるかどうか判断すると、一部が範囲５１外であったとする（ステップＳ１１１，Ｓ１１２）。そのため、移動体１−５の位置では、マニピュレータ１１による作業が行われないことになり、位置検知のための移動が開始される（ステップＳ１０５）。そして、移動体１は、図６で示されるように、移動体１−１の位置を目的地として移動を行い（ステップＳ１０５〜Ｓ１０８）、移動体１−１の位置で位置検知を行う（ステップＳ１０８）。その結果、誤差がリセットされると共に、移動体１−１の位置が移動体１の現在位置として設定される（ステップＳ１０９，Ｓ１１０）。
【００６０】
その後、移動体１は、再度、移動体１−５の位置に移動すると判断して、その移動を行う（ステップＳ１０１〜Ｓ１０４）。なお、移動体１が移動体１−５の位置に到達した時点における誤差は、図６の移動体１−５の位置の破線の円の半径で示される程度であり、前回（図５参照）よりも小さくなっている。したがって、マニピュレータ制御部１８は、マニピュレータ１１の移動先の位置を誤差だけ広げた範囲が、範囲５１内となると判断し、マニピュレータ１１の制御を行う（ステップＳ１１１〜Ｓ１１３）。このようにして、一度、位置検知を行ったことによって、移動体１−５の位置においてマニピュレータ１１による作業を行うことができるようになる。
【００６１】
以上のように、本実施の形態による移動体１によれば、作業ステーションなどのあらかじめ決められた位置以外においても、マニピュレータ１１を動作させることができるようになり、マニピュレータ１１の利便性が向上することになる。一方、マニピュレータ１１の位置を誤差だけ広げた範囲が、範囲情報の示す範囲内である場合にのみ、マニピュレータ１１を動作させることによって、安全性を確保することもできることになる。したがって、本実施の形態による移動体１は、マニピュレータ１１の利便性の向上と、安全性の確保とを両立させることができるようになる。また、移動体１の速度が閾値より小さい場合にのみマニピュレータ１１を動作させるようにすることによって、より安全性を向上させることができるようになる。
【００６２】
なお、上記実施の形態では、範囲情報の示す範囲や、マニピュレータ１１の位置を誤差に応じて広げた範囲が２次元平面上における範囲である場合について説明したが、それらの範囲は、３次元空間における範囲であってもよい。この場合には、例えば、マニピュレータ１１の位置を誤差に応じて３次元の球に広げた領域が、３次元空間における範囲情報の示す範囲内であるかどうかの判断が行われてもよい。
【００６３】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【００６４】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う２個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う２個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【００６５】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
【００６６】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【００６７】
また、上記実施の形態において、移動体１に含まれる２以上の構成要素が通信デバイスや入力デバイス等を有する場合に、２以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
【００６８】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをＣＰＵ等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体（例えば、光ディスクや磁気ディスク、半導体メモリなど）に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【００６９】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【００７０】
以上より、本発明による移動体によれば、マニピュレータの利便性を向上させることができると共に安全性を確保できるという効果が得られ、マニピュレータを有する移動体として有用である。
【符号の説明】
【００７１】
１  移動体、１１  マニピュレータ、１２  移動機構、１３  位置検知部、１４  現在位置取得部、１５  移動制御部、１６  取得部、１７  記憶部、１８  マニピュレータ制御部
【図１】
2020104198.tif 000003
【図２】
2020104198.tif 000004
【図３】
2020104198.tif 000005
【図４】
2020104198.tif 000006
【図５】
2020104198.tif 000007
【図６】
2020104198.tif 000008