WO2023042464A1 - ロボット装置、およびロボット制御方法 - Google Patents

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

Info

Publication number
WO2023042464A1
WO2023042464A1 PCT/JP2022/014836 JP2022014836W WO2023042464A1 WO 2023042464 A1 WO2023042464 A1 WO 2023042464A1 JP 2022014836 W JP2022014836 W JP 2022014836W WO 2023042464 A1 WO2023042464 A1 WO 2023042464A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
variable
variable filter
filter area
unit
Prior art date
Application number
PCT/JP2022/014836
Other languages
English (en)
French (fr)
Inventor
亮一 津崎
Original Assignee
ソニーグループ株式会社
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 ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Priority to CN202280061208.7A priority Critical patent/CN117940258A/zh
Publication of WO2023042464A1 publication Critical patent/WO2023042464A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices

Abstract

センサの検出情報に基づいて障害物の識別を行うロボット装置において、ロボット自身の脚部や腕部などを障害物として誤認識することなく、正しい障害物識別による高精度なロボット制御を実現する。自己領域フィルタ処理部が、視覚センサの検出情報に含まれるオブジェクト情報から、ロボット装置の構成部に対応するオブジェクト情報を除去し、地図画像生成部が、ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成し、ロボット制御部が、生成された地図データに基づいてロボット装置を制御する。自己領域フィルタ処理部は、ロボット装置の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出し、視覚センサの検出情報から、可変フィルタ領域内にあるオブジェクト情報を除去する処理を実行する。

Description

ロボット装置、およびロボット制御方法
 本開示は、ロボット装置、およびロボット制御方法に関する。具体的にはロボット自身の脚や腕などを障害物として誤認識することなく、正しい障害物判定に基く正確な制御を実行可能としたロボット装置、およびロボット制御方法に関する。
 近年、複数の足を制御して移動する歩行型ロボットや、車輪を回転させて移動する車輪駆動型ロボット等の自律走行型ロボットが様々なフィールドで用いられている。
 ロボットは、例えば人が入ることが困難な災害現場などでも様々な作業を行うことが可能である。
 しかし、歩行型ロボットや、車輪走行型ロボットが安定した移動を行なうためには、進行方向の障害物や、歩行面、走行面の凹凸、傾斜などを把握して、安定した歩行または走行が可能なルートを識別し、さらに、歩行面または走行面の形状に応じた足の着地や車輪走行を行うことが必要となる。
 例えば、凹凸の激しい面や傾斜の大きい面に歩行型ロボットの足を置いてしまうと、ロボットが倒れ、前に進むことができなくなるといった事態が発生する可能性がある。
 このような問題を防止するため、自律走行型ロボットの多くは、ロボット周囲の環境を認識するためのカメラ等のセンサを装着し、センサ検出情報を用いて安定した歩行や走行を行うための経路を選択して移動する制御を実行している。
 例えば、センサから得られたデータを利用して周囲の3次元形状データを含む環境地図を生成し、生成した環境地図を参照して移動経路を決定する処理などを行う。
 しかし、このように、センサから得られたデータを利用した環境地図を作成する処理や作成した環境地図を解析する処理を行う場合の問題点として以下の問題がある。
 ロボット自身の脚や手など、ロボットの構成部を障害物であると認識してしまうという問題である。
 例えば歩行型ロボットは脚を前後に動かしながら走行する。ロボットのカメラなどのセンサがロボットの脚を検出すると、この脚を障害物であると誤認識する可能性がある。
 このような誤認識が発生すると、ロボットは、本来、走行可能な経路を走行不可能と判定して、ロボットの走行が停止してしまう場合がある。
 また、例えばロボットのアーム(腕部)や手を用いて作業を行うロボットの場合、ロボットのカメラなどのセンサがロボットのアームや手を検出して、これらのアームや手を障害物であると誤認識することもある。
 このような場合には、ロボットは、規定の作業を行うことができないと判定して、ロボットの作業が停止してしまう。
 このようにロボットの一部を障害物として誤認識してしまう問題を解決する構成を開示した従来技術として、例えば以下の文献がある。
 例えば特許文献1(特許4961860号公報)は、ロボットのモデル情報とアクチュエータの位置情報から順運動学計算を行い、3次元的なロボットの身体位置を算出し、算出した身体位置と視覚センサの位置や視野角と統合して視覚センサのどの部分にロボットの身体が撮像されているかを計算して、ロボット身体部を障害物判定対象から除外する構成を開示している。
 しかし、この特許文献1に開示された手法は、ロボットモデル情報とロボットの実機に誤差がある場合、ロボットの身体部分を正確に画像から除去できないという問題がある。
 また、特許文献2(特開2011-212818号公報)には、レーザ光の照射、検出を行う視覚センサを有するロボットにおいて、ロボット表面にレーザ光を吸収する塗装を行い、ロボットの身体を障害物として検出させない構成を開示している。
 しかし、この手法では、ロボット表面にレーザ光を吸収する塗装を行うこと、レーザ光の照射、検出を行う視覚センサを用いること、これらの構成が必須となり、汎用性に乏しいという問題がある。
 さらに、特許文献3(特開平1-183395号公報)には、ロボットアームにロボットアームの形状を遮蔽し、かつ、物体の形状と区別しうる反射率や形状の遮蔽板を設けることにより、センサ検出情報からロボットの身体を除去する構成を開示している。
 この手法は、特殊な反射率、形状の遮蔽版が必要であり、コストアップの問題があり、さらに遮蔽版の装着によってロボットの動きが阻害されるという問題もある。
特許4961860号公報 特開2011-212818号公報 特開平1-183395号公報
 本開示は、例えば上記問題点に鑑みてなされたものであり、ロボットの一部を障害物として誤認識することなく、真の障害物に衝突や接触させることなく安全にロボットを制御可能としたロボット装置、およびロボット制御方法を提供することを目的とする。
 本開示の第1の側面は、
 視覚センサの検出情報を解析してロボット装置の動作を制御するデータ処理部を有し、
 前記データ処理部は、
 前記視覚センサの検出情報に含まれるオブジェクト情報から、前記ロボット装置の構成部に対応するオブジェクト情報を除去する自己領域フィルタ処理部を有し、
 前記自己領域フィルタ処理部は、
 前記ロボット装置の可動部に対応する可変フィルタ領域を算出する可変フィルタ領域算出部と、
 前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去するフィルタ処理部を有し、
 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出するロボット装置にある。
 さらに、本開示の第2の側面は、
 ロボット装置の動作制御を実行するロボット制御方法であり、
 自己領域フィルタ処理部が、視覚センサの検出情報に含まれるオブジェクト情報から、前記ロボット装置の構成部に対応するオブジェクト情報を除去する自己領域フィルタ処理ステップと、
 地図画像生成部が、前記ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成する地図データ生成ステップと、
 ロボット制御部が、前記地図データに基づいて前記ロボット装置を制御するロボット制御ステップを有し、
 前記自己領域フィルタ処理ステップにおいて、
 前記ロボット装置の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出する可変フィルタ領域算出処理と、
 前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去する処理を実行するロボット制御方法にある。
 本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基くより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 本開示の一実施例の構成によれば、センサの検出情報に基づいて障害物の識別を行うロボット装置において、ロボット自身の脚部や腕部などを障害物として誤認識することなく、正しい障害物識別による高精度なロボット制御が実現される。
 具体的には、例えば、自己領域フィルタ処理部が、視覚センサの検出情報に含まれるオブジェクト情報から、ロボット装置の構成部に対応するオブジェクト情報を除去し、地図画像生成部が、ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成し、ロボット制御部が、生成された地図データに基づいてロボット装置を制御する。自己領域フィルタ処理部は、ロボット装置の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出し、視覚センサの検出情報から、可変フィルタ領域内にあるオブジェクト情報を除去する処理を実行する。
 本構成により、センサの検出情報に基づいて障害物の識別を行うロボット装置において、ロボット自身の脚部や腕部などを障害物として誤認識することなく、正しい障害物識別による高精度なロボット制御が実現される。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
本開示のロボット装置の一例である4脚ロボットの構成例について説明する図である。 本開示のロボット装置の一例である4脚ロボットの構成例について説明する図である。 本開示のロボット装置の一例である2脚ロボットの構成例について説明する図である。 ロボット装置の走行例について説明する図である。 センサ検出情報を用いたロボット装置の走行における問題点について説明する図である。 本開示のロボット装置が実行するフィルタ処理の概要について説明する図である。 本開示のロボット装置が実行するフィルタ処理の概要について説明する図である。 本開示のロボット装置が実行するフィルタ処理の概要について説明する図である。 本開示のロボット装置の構成例について説明する図である。 3次元点群(PC)生成部が実行する処理について説明する図である。 自己領域フィルタ処理部の詳細構成例について説明する図である。 自己領域フィルタ処理部の可変パディング算出部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部の可変フィルタ領域算出部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部の可変フィルタ領域算出部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部の可変フィルタ領域算出部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部の3次元点群フィルタ処理部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部の可変フィルタ領域算出部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部の可変フィルタ領域算出部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部の可変フィルタ領域算出部が実行する処理の具体例について説明する図である。 自己領域フィルタ処理部における可変パディング、可変フィルタ領域算出処理の具体例について説明する図である。 自己領域フィルタ処理部における可変パディング、可変フィルタ領域算出処理の具体例について説明する図である。 自己領域フィルタ処理部における可変パディング、可変フィルタ領域算出処理の具体例について説明する図である。 自己領域フィルタ処理部における可変パディング、可変フィルタ領域算出処理の具体例について説明する図である。 自己領域フィルタ処理部における可変パディング、可変フィルタ領域算出処理の具体例について説明する図である。 自己領域フィルタ処理部における可変パディング、可変フィルタ領域算出処理の具体例について説明する図である。 本開示のロボット装置の構成例について説明する図である。 本開示のロボット装置のハードウェア構成例について説明する図である。 本開示のロボット装置とサーバからなるシステム構成例について説明する図である。 本開示のロボット装置とサーバからなるシステム構成におけるサーバのハードウェア構成例について説明する図である。
 以下、図面を参照しながら本開示のロボット装置、およびロボット制御方法の詳細について説明する。なお、説明は以下の項目に従って行なう。
 1.本開示のロボット装置の概要について
 2.本開示のロボット装置が実行する処理の概要について
 3.(実施例1)本開示の実施例1のロボット装置、およびロボット制御方法の詳細について
 4.(実施例2)直動関節部の直線的な動きを考慮した可変フィルタ領域の算出処理例について
 5.その他の実施例について
 5-(a)実施例3:ロボットの可動部サイズにパディング領域を乗算して可変フィルタ領域を算出する実施例
 5-(b)実施例4:ロボット可動部の動作領域と非動作領域を区別して可変フィルタ領域を算出する実施例
 5-(c)実施例5:ロボット可動部の動作方向を識別して可変フィルタ領域を算出する実施例
 5-(d)実施例6:固定パディング領域と可変パディング領域を設定し、これら2つのパディング領域に基づいて可変フィルタ領域を算出する実施例
 5-(e)実施例7:複数の回転関節部を有する可動部に対応した可変フィルタ領域を算出する実施例
 6.(実施例8)3次元点群データに対してではなく、距離画像に対するフィルタ処理を行う実施例について
 7.本開示のロボット装置等のハードウェア構成例について
 8.本開示の構成のまとめ
  [1.本開示のロボット装置の概要について]
 まず、図1以下を参照して本開示のロボット装置の概要について説明する。
 図1は本開示のロボット装置の一例である4脚ロボット10を示す図である。
 4脚ロボット10は、4本の足を前後に移動させて移動する歩行型ロボットである。
 図1に示すように、4脚ロボット10は,本体部11,ロボットの周囲環境を認識するための視覚センサ12、移動するための脚部13を有する。
 図1に示す4脚ロボット10は、4脚ロボット10の前後左右4方向の環境認識を個別に行う以下の4つの視覚センサ12を有する。
 ロボット進行方向(前方向)の環境認識用の視覚センサF(Front)12F、
 後ろ方向の環境認識用の視覚センサB(Back)12B、
 左方向の環境認識用の視覚センサL(Left)12L、
 右方向の環境認識用の視覚センサR(Right)12R、
 なお、図には、右方向の環境認識用の視覚センサR(Right)12Rは示していない。
 視覚センサ12は、4脚ロボット10が安全に走行するため、進行方向の障害物や、足の接地面の状況などを確認するための情報、例えば周囲オブジェクトの3次元形状情報を取得可能な構成であればよく、例えば、ステレオカメラ、全方位カメラ、LiDAR(Light Detection and Ranging)、TOF(Time of Flight)センサなどが利用可能である。
 なお、LiDAR、TOFセンサは、いずれもオブジェクト距離を計測可能なセンサである。
 図1に示す例は、4つの視覚センサを設けた例であるが、4脚ロボット10の周囲の環境情報(3次元位置や3次元形状)が取得可能な構成であればよく、例えば1つの全方位カメラを利用する構成や、1つの全方位カメラと1つのLiDARの組み合わせを利用する構成等も可能である。
 図1に示す4脚ロボット10は、脚部13に回転関節部14,直動関節部15、車輪部16を有する。
 回転関節部14は、脚部13全体を前後方向に回転駆動させる関節部である。直動関節部15は、脚部13の下脚部分を上脚部分に対して伸縮するようにスライド移動させる関節部である。
 各関節部14,15は、例えば、アクチュエータや、アクチュエータの位置を検知するためのエンコーダ、減速機,出力軸側のトルクを検知するためのトルクセンサ等によって構成される。
 図1に示す4脚ロボット10内に構成されたデータ処理部(制御部)は,視覚センサ12からセンサ検出情報を入力して解析し、ロボットの周囲環境を認識する。
 例えば、視覚センサ12を構成するカメラの撮影画像、あるいはLiDAR、TOF等の距離センサの検出情報を用いて、ロボットの周囲の障害物の位置や距離、形状などを解析する。さらにこの障害物解析結果を利用して、障害物を避けるように安全な走行ルートを決定してロボットの走行制御を実行する。
 なお、ロボット内のデータ処理部(制御部)は、決定した走行ルートを移動するために、脚部13各々の回転関節部14,直動関節部15及び車輪部16を制御して脚部13を動作させてロボットを決定した安全な走行ルートに従って移動させる。
 図2は、図1の4脚ロボット10と異なる関節部構成を有する4脚ロボットb,10bを示す図である。
 図2の4脚ロボットb,10bと、図1の4脚ロボット10との差異は脚部13の構成である。本体部11やセンサ12の構成は図1の4脚ロボット10と同様の構成である。
 図1に示す4脚ロボット10は、脚部13に回転関節部14,直動関節部15を有するが、図2に示す4脚ロボットb,10bは、脚部13に2つの回転関節部14,17を有する。
 さらに、図1に示す4脚ロボット10は、脚部13の先端部に車輪部16が装着されているが、図2に示す4脚ロボットb,10bは、脚部13の先端部に車輪部16が装着されておらず、接地部18が装着されている。
 図2に示す4脚ロボットb,10bの脚部13の回転関節部14は、脚部13の全体を前後方向に回転駆動させる関節部である。さらに、回転関節部17は、脚部13の下側の下部脚領域のみを上側の上部脚領域に対して前後方向に回転駆動させる関節部である。
 図2に示す4脚ロボットb,10bも、4脚ロボットb,10b内のデータ処理部(制御部)が、視覚センサ12からセンサ検出情報を入力して解析し、ロボットの周囲環境を認識する。
 例えば、視覚センサ12を構成するカメラの撮影画像、あるいはLiDAR、TOF等の距離センサの検出情報を用いて、ロボットの周囲の障害物の位置や距離、形状などを解析する。さらにこの障害物解析結果を利用して、障害物を避けるように安全な走行ルートを決定してロボットの走行制御を実行する。
 ロボット内のデータ処理部(制御部)は、決定した走行ルートを移動するために、脚部13各々の2つの回転関節部14,17を制御して脚部13を動作させてロボットを決定した安全な走行ルートに従って移動させる。
 図3は、本開示のロボット装置の別の一例である2脚ロボット20を示す図である。
 2脚ロボット20は、2本の足を前後に移動させて移動する歩行型ロボットである。
 図3に示すように、2脚ロボット20は、本体部21,ロボットの周囲環境を認識するための視覚センサ22、移動するための脚部23、さらに腕部27を有する。
 図3に示す構成において、視覚センサ22は、2脚ロボット20の頭部に前後左右4方向の環境認識を個別に行う以下の4つの視覚センサを有する構成である。
 ロボット進行方向(前方向)の環境認識用の視覚センサF(Front)22F、
 後ろ方向の環境認識用の視覚センサB(Back)22B、
 左方向の環境認識用の視覚センサL(Left)22L、
 右方向の環境認識用の視覚センサR(Right)22R、
 なお、図には、右方向の環境認識用の視覚センサR(Right)22Rは示していない。
 視覚センサ22は、2脚ロボット20が安全に走行するため、進行方向の障害物や、足の接地面の状況などを確認するための情報、例えば周囲オブジェクトの3次元形状情報を取得可能な構成であればよく、図1を参照して説明したと同様、例えば、ステレオカメラ、全方位カメラ、LiDAR、TOFセンサなどが利用可能である。
 なお、図1を参照して説明したと同様、視覚センサは、2脚ロボット20の周囲の環境情報(3次元位置や3次元形状)が取得可能な設定であればよく、例えば1つの全方位カメラを利用する構成や、1つの全方位カメラと1つのLiDARの組み合わせを利用する構成等も可能である。
 脚部23は、回転関節部24,25、接地部26を有する。
 図3に示す2脚ロボット20の脚部23の回転関節部24は、脚部23の全体を前後方向に回転駆動させる関節部である。さらに、回転関節部25は、脚部23の下側の下部脚領域のみを上側の上部脚領域に対して前後方向に回転駆動させる関節部である。
 各回転関節部24,25は、例えば、アクチュエータや、アクチュエータの位置を検知するためのエンコーダ、減速機,出力軸側のトルクを検知するためのトルクセンサ等によって構成される。
 腕部27は、回転関節部28,29、把持部30を有する。
 腕部27の回転関節部28は、腕部27の全体を上下方向に回転駆動させる関節部である。さらに、回転関節部29は、腕部27の先端側の約半分腕領域のみを本体部側の腕領域に対して上下方向に回転駆動させる関節部である。
 これら腕部27の回転関節部28,29、把持部30も、例えば、アクチュエータや、アクチュエータの位置を検知するためのエンコーダ、減速機,出力軸側のトルクを検知するためのトルクセンサ等によって構成される。
 図3に示す2脚ロボット20も、2脚ロボット20内のデータ処理部(制御部)が、視覚センサ22からセンサ検出情報を入力して解析し、ロボットの周囲環境を認識する。
 例えば、視覚センサ22を構成するカメラの撮影画像、あるいはLiDAR、TOF等の距離センサの検出情報を用いて、ロボットの周囲の障害物の位置や距離、形状などを解析する。さらにこの障害物解析結果を利用して、障害物を避けるように安全な走行ルートを決定してロボットの走行制御を実行する。
 ロボット内のデータ処理部(制御部)は、決定した走行ルートを移動するために、脚部23各々の2つの回転関節部24,25を制御して脚部23を動作させてロボットを走行ルートに従って移動させる。
 さらに、ロボット内のデータ処理部(制御部)は、腕部27各々の2つの回転関節部28,29を制御して腕部27を動作させて、様々な作業を実行させる。
 この腕部27の動作制御の際も、2脚ロボット20内のデータ処理部(制御部)は、視覚センサ22からセンサ検出情報を入力して解析し、腕部27周囲の環境を解析し、腕部27が周囲の障害物に衝突や接触しないような動作制御を行う。
 なお、以下において、本開示のロボット装置、およびロボット制御方法に関する複数の実施例について説明するが、本開示の構成や処理は、これら4脚ロボット10、10b、2脚ロボット20に限らず、実施例によっては、その他、車輪駆動型ロボットや、キャタピラ駆動型ロボット等にも適用可能である。
 また、腕部や、脚部の本数も様々な設定が可能である。
 なお、以下では、本開示のロボット装置の代表例として、図1を参照して説明した4脚ロボット10を適用した実施例について説明する。
 図1に示す4脚ロボット10が自律走行を行う場合の具体例について考察する。
 図4は、図1に示す4脚ロボット10が自律走行を行う環境の一例を示す図である。
 4脚ロボット10が移動する環境は、例えば図4に示すように様々な障害物が存在し、また、走行面も平面とは限らず、でこぼこな面、段差のある面、傾斜のある面、階段など、様々である。
 例えば、4脚ロボット10が障害物に衝突すると、4脚ロボット10が転倒し、損傷や故障が発生する可能性がある。
 また、でこぼこな面、段差のある面、傾斜のある面などに傾斜角などを考慮せずに足を接地した場合にも、4脚ロボット10が転倒し、損傷や故障が発生する可能性がある。
 このような事態の発生を防止するため、カメラ等の視覚センサが取得したセンサ取得情報に基づいて生成される周囲の環境地図、すなわち、ロボット周囲の走行面を含むオブジェクトの3次元形状情報を有する環境地図が利用される。
 例えば、4脚ロボット10内のデータ処理部は、4脚ロボット10に装着されたカメラ等の視覚センサからの取得情報を解析し、4脚ロボット10周囲の走行面を含むオブジェクトまでの距離を解析して、走行面を含むオブジェクト距離を示す環境地図を生成し、生成した環境地図を参照して、移動方向や脚部の接地位置の制御などを行う。
 ロボット周囲の走行面を含むオブジェクトの3次元形状情報を有する環境地図の一例として、例えば3次元点群(PC:Point Cloud)がある。
 3次元点群(PC:Point Cloud)は、オブジェクト表面の3次元位置を示す多数の点によって構成される点群である。
 ロボットに装着されたカメラなどのセンサによって計測されるオブジェクト距離に基づいて生成される。
 3次元点群(PC)は、例えばロボットの走行する走行面や柱、壁など、オブジェクト表面の3次元位置や3次元形状を示す多数の点によって構成される。3次元点群(PC)を構成する点各々には、3次元空間上の座標(x,y,z)位置データが対応付けられている。
 3次元点群(PC)の各点対応の座標位置に基づいて、オブジェクトの3次元形状が認識可能であり、例えばロボットの走行面の起伏や傾斜、障害物の位置などを解析することができる。
 しかし、例えば、脚部13の回転関節部14や直動関節部15の動作状況によっては、視覚センサ12のセンサ検出領域、例えばカメラの撮影範囲に脚部13の一部が入り込む場合がある。
 このような場合、4脚ロボット10のデータ処理部は、脚部13を障害物であると誤認識し、4脚ロボット10を停止させるといった誤った制御を行う可能性がある。
 視覚センサ12のセンサ検出情報の解析結果からロボットの一部を障害物として認識してしまい、誤った制御が行われるという問題は、図1に示す4脚ロボット10のみならず、図2に示す4脚ロボットb,10bや、図3に示す2脚ロボット20にも共通に発生する問題である。
 さらに、図3に示す2脚ロボット20の場合は、腕部27の回転関節部28,29の動作状況によっては、視覚センサ12のセンサ検出領域、例えばカメラの撮影範囲に腕部27の一部が入り込む場合がある。
 このような場合、2脚ロボット20のデータ処理部は、腕部27を障害物であると誤認識し、腕部27を動作させて実行している作業を停止させてしまうといった誤った制御を行う可能性がある。
 本開示のロボット装置は、このような問題を解決するものである。
  [2.本開示のロボット装置が実行する処理の概要について]
 次に、本開示のロボット装置が実行する処理の概要について説明する。
 上述したように、例えば4脚ロボット10が、視覚センサ12のセンサ検出情報の解析結果からロボットの一部を障害物であると誤認識すると誤った制御が行われる可能性がある。
 この具体例について、図5を参照して説明する。
 図5(a)は、4脚ロボット10が、複数の障害物が置かれた走行路を走行している状態を示している。
 図5(b)は、4脚ロボット10の進行方向である前方の障害物検出を行う視覚センサF,12Fのセンサ検出領域を示している。センサ検出領域とは、例えば視覚センサF,12Fがカメラである場合、カメラの撮影範囲である。また、視覚センサF,12FがLiDAR、TOFセンサ等の距離センサである場合、これら距離センサによる距離計測可能範囲である。
 図5(b)に示す視覚センサF,12Fのセンサ検出領域の中には、円柱状の3つの障害物がある。
 さらに、図5(b)に示す視覚センサF,12Fのセンサ検出領域の中には、4脚ロボット10の左前脚の一部領域が含まれている。
 4脚ロボット10のデータ処理部は、視覚センサF,12Fのセンサ検出情報を解析して、障害物の位置を確認する。
 データ処理部は、視覚センサF,12Fのセンサ検出情報の解析により、図に示す3つの円柱状の障害物の位置や形状、距離を解析することができる。
 しかし、4脚ロボット10のデータ処理部は、さらに、視覚センサF,12Fのセンサ検出領域の中に含まれる4脚ロボット10の左前脚の一部領域についても障害物であると誤認識してしまう。
 この誤認識により、4脚ロボット10のデータ処理部は、4脚ロボット10の左前脚が障害物に衝突、または接触した状態にあると判断し、左前脚の動作を止める制御を行う。この結果、4脚ロボット10は動作を停止してしまうといった誤った制御が行われる。
 本開示のロボット装置は、このような誤った制御を回避するため、ロボット自身の脚や腕などのロボットの自己領域を障害物と認識しないための処理(フィルタ処理)を実行する。
 図6以下を参照して、本開示のロボット装置が実行する処理の概要について説明する。
 本開示のロボット装置のデータ処理部は、ロボットの脚や腕等の可動部にフィルタ領域を設定する。
 フィルタ領域とは、障害物等のオブジェクト検出処理を実行しない領域、すなわち障害物検出除外領域である。
 例えば、視覚センサのセンサ検出領域にフィルタ領域が含まれる場合、そのフィルタ領域内に何等かの障害物等のオブジェクトが検出された場合でも、そのオブジェクトは検出されなかったものとするフィルタ処理を行う。
 図6(a)には4脚ロボット10を示している。この4脚ロボット10の可動部、すなわち4本の脚部13にフィルタ領域を設定する。
 具体的には、例えば図6(b)に示すようなフィルタ領域である。
 図6(b)に示すフィルタ領域は、脚部13、および脚部13の周囲領域を囲むように設定されたフィルタ領域である。
 フィルタ領域は、このように脚部13の領域のみではなく、脚部13の周囲領域を含むように設定される。
 これは、脚部13の動きを考慮したものである。
 このようなフィルタ領域を設定することで、視覚センサによってフィルタ領域内に障害物等のオブジェクトが検出された場合でも、フィルタ領域内に検出されたオブジェクトは検出されなかったものとするフィルタ処理が実行される。
 このフィルタ処理の結果、フィルタ領域内のオブジェクト、例えばロボットの脚が、その後のロボットの動作の妨げになることがなくなる。
 図7を参照して、本開示のロボット装置のデータ処理部が実行する処理、すなわちフィルタ領域を適用したフィルタ処理の具体例について説明する。
 図7(a)は、先に説明した図5(a)と同様、4脚ロボット10が、複数の障害物が置かれた走行路を走行している状態を示している。
 図7(b)には、4脚ロボット10の進行方向である前方の障害物検出を行う視覚センサF,12Fのセンサ検出領域と、4脚ロボット10の左前脚に設定されたフィルタ領域を示している。
 図7(b)に示すセンサ検出領域の一部に、4脚ロボット10の左前脚に設定されたフィルタ領域が重なって設定されている。
 センサ検出領域は、前述したように、例えば視覚センサF,12Fがカメラである場合、カメラの撮影範囲である。また、視覚センサF,12FがLiDAR、TOFセンサ等の距離センサである場合、これら距離センサによる距離計測可能範囲である。
 4脚ロボット10のデータ処理部は、視覚センサF,12Fのセンサ検出領域の中に含まれるオブジェクトの検出処理を実行する。
 この結果として、図に示す円柱状の3つの障害物が検出する。さらに、4脚ロボット10の左前脚の脚先領域も検出する。
 しかし、4脚ロボット10の左前脚の脚先領域は、フィルタ領域内にあるため、データ処理部は、この脚先領域のオブジェクトを検出しなかったものとするフィルタ処理を実行する。
 すなわち、4脚ロボット10のデータ処理部は、4脚ロボット10の左前脚の脚先を障害物として認識せず、その後の動作を実行する。
 これらの処理の結果、4脚ロボット10は、自身の脚先に走行を妨げられることなく、正常な走行を行うことが可能となる。
 本開示のロボット装置は、このように自装置の可動部にフィルタ領域を設定し、フィルタ領域内の検出オブジェクトを障害物として認識しないという処理を実行する。
 なお、本開示のロボット装置は、自装置の脚部や腕部などの可動部にフィルタ領域を設定する処理を行うが、このフィルタ領域は、様々な大きさを持つ可変型領域として設定される。
 例えば脚部の動作速度が大きい場合は、その脚部には大きなサイズのフィルタ領域を設定する。また、例えば脚部が停止している場合は、その脚部には小さなサイズのフィルタ領域を設定する。
 図8を参照して、サイズ可変型のふぃめた領域、すなわち可変フィルタ領域の具体例について説明する。
 図8には、4脚ロボット10の左前脚に設定される可変フィルタ領域の複数の設定例を示している。
 左端の(P1)に示すフィルタ領域が最小サイズのフィルタ領域であり、左前脚自身のみをフィルタ領域としたフィルタ領域設定例である。
 (P1)の右側の(P2),(P3),(P4)の順にフィルタ領域のサイズが大きくなっている。
 例えば、4脚ロボット10の左前脚の動作速度が大きくなるに従い、(P2),(P3),(P4)に示すように、フィルタ領域のサイズが大きくされる。
 右端の(P4)に示すフィルタ領域は、4脚ロボット10の左前脚の動作速度が規定しきい値以上の速度である場合に設定される最大サイズのフィルタ領域である。
 なお、フィルタ領域の設定態様については、様々な設定態様がある。これらの具体例については後段で説明する。
 このように本開示のロボット装置は、自装置の脚部や腕部等の可動部にフィルタ領域を設定し、フィルタ領域内の検出オブジェクトを障害物として認識しないという処理を実行する。
 この処理によって自装置の構成部を障害物と判断して誤った制御が行われることを防止する。
 以下、本開示のロボット装置、およびロボット制御方法の複数の実施例について説明する。
  [3.(実施例1)本開示の実施例1のロボット装置、およびロボット制御方法の詳細について]
 まず、本開示の実施例1のロボット装置、およびロボット制御方法の詳細について説明する。
 図9は、本開示の実施例1のロボット装置の主要構成について説明する図である。
 図9に示す構成は、例えば図1を参照して説明した4脚ロボット10の走行制御処理を行うデータ処理部を中心として説明する図である。
 図9に示す4つの視覚センサF~R,12F~Rは、図1を参照して説明した4脚ロボット10の前後左右に装着されたステレオカメラ等の視覚センサである。
 なお、4つの視覚センサF~R,12F~Rの各々は、例えば視覚センサを構成するカメラの撮影範囲(センサ検出領域)に含まれるオブジェクトまでの距離に応じた濃度値を画素値として設定した距離画像を撮影する。
 図9に示す距離画像Fは、4脚ロボット10の進行方向(前方向)の画像を撮影する視覚センサF,12Fが取得する距離画像である。
 距離画像Bは、4脚ロボット10の進行方向と逆の後ろ方向の画像を撮影する視覚センサB,12Bが取得する距離画像である。
 距離画像Lは、4脚ロボット10の進行方向に対して左方向の画像を撮影する視覚センサL,12Lが取得する距離画像である。
 距離画像Rは、4脚ロボット10の進行方向に対して右方向の画像を撮影する視覚センサR(Right)12Rが取得する距離画像である。
 なお、図1に示すように、4つの視覚センサF,12F~視覚センサR,12Rは、全て斜め下方向を向いており、これら4つの視覚センサF,12F~視覚センサR,12Rが取得する距離画像は、主として4脚ロボット10のカメラ位置の水平面より下にある周囲オブジェクトの距離値を画素値として示したデータとなる。4つの視覚センサF,12F~視覚センサR,12Rが取得する距離画像は、走行面の距離値も含む画像となる。
 これら4つの視覚センサF,12F~視覚センサR,12Rが取得した4枚の距離画像は、データ処理部100の3次元点群(PC:Point Cloud)生成部102に入力される。
 なお、データ処理部100は、4脚ロボット10内部に構成されるデータ処理部である。あるいは、4脚ロボット10と通信可能な外部の情報処理装置、例えばクラウド側のサーバなどに構成されるデータ処理部としてもよい。
 図9に示すように、データ処理部100は、ロボット情報取得部101、3次元点群(PC:Point Cloud)生成部102、自己領域フィルタ処理部103、3次元点群(PC)合成部104、地図画像生成部105、時系列地図画像統合部106、ロボット制御部107を有する。
 ロボット情報取得部101は、ロボット構造情報(ロボットモデル情報)や、ロボット可動部位置、動作情報を取得して自己領域フィルタ処理部103に出力する。
 ロボット構造情報(ロボットモデル情報)は、図示しない記憶部内に格納されている。
 ロボット可動部位置、動作情報は、ロボット制御部107から取得、あるいはロボットに装着されたセンサの検出情報などを利用して取得する。
 なお、ロボット可動部とはロボットの脚部や腕部などである。
 3次元点群(PC:Point Cloud)生成部102は、視覚センサF,12F~視覚センサR,12Rの4つの視覚センサの出力である4枚の距離画像F~Rの各々について、各距離画像の各画素に設定された距離値(画素値)を、3次元座標上の点群データとして表現した3次元点群(PC:Point Cloud)を生成する。
 なお、前述したように、3次元点群(PC)を構成する各点は、各々xyz3次元空間上の座標位置が規定された点である。すなわち、3次元点群構成各点にはx,y,zの各座標値が割り当てられている。
 3次元点群(PC:Point Cloud)生成部102は、図9に示すように、以下の4つの3次元点群を生成して、次段の自己領域フィルタ処理部103に入力する。
 (1)視覚センサF,12Fが取得した距離画像Fに基づいて生成した3次元点群F、
 (2)視覚センサB,12Bが取得した距離画像Bに基づいて生成した3次元点群B、
 (3)視覚センサL,12Lが取得した距離画像Lに基づいて生成した3次元点群L、
 (4)視覚センサR,12Rが取得した距離画像Rに基づいて生成した3次元点群R、
 図10を参照して、3次元点群(PC:Point Cloud)生成部102の実行する処理の一例について説明する。
 図10は、4脚ロボット10の視覚センサ12Fの取得したセンサ検出情報である距離画像Fに基づいて、3次元点群(PC:Point Cloud)生成部102が生成する3次元点群Fの一例について説明する図である。
 図10には、4脚ロボット10の視覚センサ12Fのセンサ検出領域を示している。
 4脚ロボット10の視覚センサ12Fは、図10に示すセンサ検出領域内のオブジェクトの距離を示す距離画像Fを生成して、3次元点群(PC:Point Cloud)生成部102に出力する。
 例えば、図10に示すセンサ検出領域内には、3つの円柱状のオブジェクトと、4脚ロボット10の左前脚先端部が含まれる。
 視覚センサ12Fの生成する距離画像Fは、これら3つの円柱状のオブジェクトと、4脚ロボット10の左前脚先端部及び走行面の距離(視覚センサF,12Fからの距離)を濃淡画素値として示した距離画像Fである。
 3次元点群(PC:Point Cloud)生成部102は、図10に示すセンサ検出領域内のオブジェクトの距離を示す距離画像Fに基づいて、距離画像Fの各画素に設定された距離値(画素値)を、3次元座標上の点群データとして表現した3次元点群Fを生成する。
 この時点では、先に図6~図8を参照して説明したフィルタ領域を適用したフィルタ処理は実行されておらず、3次元点群(PC:Point Cloud)生成部102の生成する3次元点群Fには、3つの円柱オブジェクトも4脚ロボット10の左前脚先端部も区別されていない障害物に相当するオブジェクトの点群として設定されている。
 図10では、3次元点群(PC:Point Cloud)生成部102が生成する3次元点群Fのみについて説明したが、3次元点群(PC:Point Cloud)生成部102は、図9に示すように、4つの視覚センサ12F~Rが取得した距離画像F~Rに基づいて4つの3次元点群F~Rを生成して自己領域フィルタ処理部103に出力する。
 次に、自己領域フィルタ処理部103の実行する処理について説明する。
 自己領域フィルタ処理部103は、視覚センサ12の検出情報に含まれるオブジェクト情報から、ロボットの構成部(脚部や腕部など)に対応するオブジェクト情報を除去する自己領域フィルタ処理を実行する。
 図9に示すように、自己領域フィルタ処理部103は、以下の各データを入力する。
 (a)ロボット情報取得部101が出力するロボット構造情報(ロボットモデル情報)や、ロボット可動部位置、動作情報
 (b)3次元点群(PC)生成部102が生成する4つの3次元点群F~R
 自己領域フィルタ処理部103は、これらの各データを入力して、4つのフィルタ後3次点群F~Rを生成して、3次元点群(PC)合成部104に出力する。
 なお、フィルタ後3次点群とは、3次元点群(PC)生成部102が生成した3次元点群から、自己領域であるロボット自身の領域に相当するオブジェクトの3次元点群を除去した、すなわちフィルタ処理を行った3次元点群データである。
 自己領域フィルタ処理部103の詳細構成と処理の詳細について、図11以下を参照して説明する。
 図11は、自己領域フィルタ処理部103の詳細構成を説明する図である。
 図11に示すように、自己領域フィルタ処理部103は、可変パディング算出部121、可変フィルタ領域算出部122、3次元点群フィルタ処理部123を有する。
 可変パディング算出部121は、ロボット情報取得部101から、ロボット構造情報やロボット可動部位置、動作情報を入力して、ロボットの可動部の動作速度に応じた可変フィルタのサイズ調整領域としてのパディング部の大きさを算出する。
 可変フィルタ領域算出部122は、可変パディング算出部121が算出したパディングを設定したフィルタ領域、すなわち可変フィルタ領域を算出する。
 前述したように可変フィルタ領域は、その領域内のオブジェクトを障害物として認識しない領域である。
 3次元点群フィルタ処理部123は、可変フィルタ領域算出部122が算出した可変フィルタ領域を適用して、3次元点群(PC)生成部102が生成した3次元点群F~Rから、フィルタ領域内のオブジェクト対応の3次元点群を除去するフィルタ処理を実行して、新たな3次元点群、すなわちフィルタ後3次元点群F~Rを生成して次段の3次元点群(PC)合成部104に出力する。
 自己領域フィルタ処理部103を構成する可変パディング算出部121、可変フィルタ領域算出部122、3次元点群フィルタ処理部123、これら各々の実行する処理の具体例について、図12以下を参照して説明する。
 まず、図12を参照して可変パディング算出部121が実行する処理の具体例について説明する。
 前述したように、可変パディング算出部121は、ロボット情報取得部101から、ロボット構造情報やロボット可動部位置、動作情報を入力して、ロボットの可動部の動作速度に応じた可変フィルタのサイズ調整領域としてのパディング部の大きさを算出する。
 図12は、可変パディング算出部121が実行する処理の具体例であり、4脚ロボット10の左前脚に設定する可変パディングの算出処理例を示した図である。
 なお、図12では可変パディングの算出処理を理解しやすくするため、4脚ロボット10の左前脚の形状を四角柱として簡易化して示している。
 図12(a)に示すように、左前脚の形状を長さ(L(Lengthleg))、前後方向の幅(W)、左右方向の奥行(H)としたL×W×Hの四角柱として示している。
 L×W×Hの四角柱は、例えば、4脚ロボット10の左前脚を内包する四角柱である。
 4脚ロボット10の脚部は、図12(b)に示すように、前後方向(Wの方向)に回動する構成を有する。
 図12(c)は、可変パディング算出部121が可変パディング算出処理を実行するあるタイミング(時間(t))における4脚ロボット10の左前脚の動作状態を示す図である。
 図12(c)は、4脚ロボット10の左前脚がタイミング(時間(t))において単位時間(st)あたり角度(θ)回転している状態であることを示している。
 単位時間(st)とは、例えば可変パディング算出部121が実行する可変パディング算出処理の間隔、すなわちサンプリングタイム(sampling time)間隔に相当する。
 なお、脚部の動作速度等の動作状態情報は、ロボット情報取得部101から自己領域フィルタ処理部103の可変パディング算出部121に入力される。
 なお、可変パディング算出部121が可変パディング算出処理を実行するタイミング(時間(t))における4脚ロボット10の左前脚の角速度をωとした場合、上記角度(θ)は以下の式に従って算出される。
 θ=ω×st
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 図12(d)は、時間(t)における4脚ロボット10の左前脚の可変パディンク(Padvariable)の算出例を示す図である。
 時間(t)における4脚ロボット10の左前脚の可変パディンク(Padvariable)は、図12(d)に示すように、
 Padvariable=tan(θ)×Lengthleg・・・(式1)
 上記式(式1)に従って算出される。
 前記したように、可変パディング算出部121が可変パディング算出処理を実行するタイミング(時間(t))における4脚ロボット10の左前脚の角速度をωとした場合、
 θ=ω×st
 であるので、上記式(式1)は、角速度(ω)を用いて以下の式(式2)のように示すことができる。
 Padvariable=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 上記式(式2)に示すように、回動する脚部の可変パディングは、回動速度、すなわち角速度(ω)におおよそ比例し、脚部の長さL(Lengthleg)に比例した値として算出される。
 すなわち、角速度(ω)が大きければ可変パディング(Padvariable)は大きな値となり、角速度(ω)が小さければ可変パディング(Padvariable)も小さい値となる。
 可変パディング算出部121は、このように図12を参照して説明した処理に従って可変パディング(Padvariable)算出処理を実行する。
 可変パディング算出部121が算出した可変パディング(Padvariable)の値は、可変フィルタ領域算出部122に出力される。
 次に、図13以下を参照して可変フィルタ領域算出部122が実行する可変フィルタ領域算出処理の具体例について説明する。
 図13(a)は、先に説明した図12(d)と同様の図であり、4脚ロボット10の左前脚の可変パディング(Padvariable)算出処理例を示す図である。
 可変パディング算出部121による可変パディング(Padvariable)算出処理例を示す図である。可変パディング(Padvariable)は、先に説明したように以下の式(式2)に従って算出される。
 Padvariable=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 図13(b)は、可変フィルタ領域算出部122が実行する可変フィルタ領域算出処理の具体例を示す図である。
 図13(b)は、LW平面におけるL方向とW方向における可変フィルタ領域を示す図である。
 脚部の長さ方向(L方向)におけるフィルタ領域は、脚部の長さ(L)に脚部の長さ方向の2つの端部、すなわち上端部と下端部の各々に可変パディング(Padvariable)を追加した領域となる。
 脚部の長さ方向(L方向)のフィルタ領域の長さをPadとした場合、可変フィルタ領域算出部122は、Padを以下の式によって算出する。
 Pad=L+(Padvariable)×2
 同様に、脚部の前後方向(W方向)におけるフィルタ領域は、脚部の前後の幅(W)に脚部の前後方向の2つの端部、すなわち前端部と後端部の各々に可変パディング(Padvariable)を追加した領域となる。
 脚部の前後方向(W方向)のフィルタ領域の長さをPadとした場合、可変フィルタ領域算出部122は、Padを以下の式によって算出する。
 Pad=W+(Padvariable)×2
 図13(c)は、LWH3次元空間におけるL方向とW方向とH方向に広がる可変フィルタ領域を示す図である。
 図13(b)に示すLW平面のL方向とW方向における可変フィルタ領域に、H方向の可変フィルタ領域を追加した3次元空間の可変フィルタ領域を示している。
 図13(c)に示すように、脚部の左右方向(H方向)におけるフィルタ領域は、脚部の左右の奥行(H)に脚部の左右方向の2つの端部、すなわち左端部と右端部の各々に可変パディング(Padvariable)を追加した領域となる。
 脚部の左右方向(H方向)のフィルタ領域の長さをPadとした場合、可変フィルタ領域算出部122は、Padを以下の式によって算出する。
 Pad=H+(Padvariable)×2
 4脚ロボット10の左前脚の形状を長さ(L(Lengthleg))、前後方向の幅(W)、左右方向の奥行(H)としたL×W×Hの四角柱とした場合、可変フィルタ領域算出部122は、図13(c)に示すように、長さ(Pad)、前後方向の幅(Pad)、左右方向の奥行(Pad)、これらの四角柱からなる可変フィルタ領域を算出する。
 可変フィルタ領域算出部122が算出する可変フィルタ領域は、以下の式(式3)に従って算出される長さを持つ3辺によって構成される四角柱となる。
 Pad=L+(Padvariable)×2
 Pad=W+(Padvariable)×2
 Pad=H+(Padvariable)×2
                 ・・・・(式3)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 なお、前述したように、可変パディング(Padvariable)は、以下の式(式2)に従って算出される値である
 Padvariable=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 この可変パディング(Padvariable)の値は、角速度(ω)が大きいほど大きな値となり、角速度(ω)が小さいほど小さい値となる。
 従って、上記(式3)によって算出される可変フィルタ領域の大きさも、角速度(ω)が大きいほど大きなサイズとなり、角速度(ω)が小さいほど小さなサイズとなる。
 すなわち、可変フィルタ領域は、脚部等の可動部の動作速度に応じてサイズが変化する領域となる。
 図13では、脚部の形状を四角柱と仮定したフィルタ領域算出処理例を示したが、4脚ロボット10の脚部は、実際は四角柱ではなく丸みを帯びた形状である。
 従って、可変フィルタ領域区算出部122は、実際には脚部の形状に応じた丸みを帯びた形状の可変フィルタ領域を算出する。
 図14は、可変フィルタ領域区算出部122が算出する脚部の形状に応じた丸みを帯びた形状の可変フィルタ領域の例を示す図である。
 図14(a)は、先に図12(d)を参照して説明したと同様、時間(t)における4脚ロボット10の左前脚の可変パディンク(Padvariable)の算出例を示す図である。
 時間(t)における4脚ロボット10の左前脚の可変パディンク(Padvariable)は、先に説明したように、
 Padvariable=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 上記式(式2)に従って算出される。
 図14(b)は、算出した可変パディンク(Padvariable)を用いて算出した可変パディング領域の例を示している。
 図14(b)には、LW平面におけるL方向とW方向における可変フィルタ領域を示している。
 脚部の長さ方向(L方向)におけるフィルタ領域は、脚部の長さ(L)に脚部の長さ方向の2つの端部、すなわち上端部と下端部の各々に可変パディング(Padvariable)を追加した領域となる。
 同様に、脚部の前後方向(W方向)におけるフィルタ領域は、脚部の前後の幅(W)に脚部の前後方向の2つの端部、すなわち前端部と後端部の各々に可変パディング(Padvariable)を追加した領域となる。
 さらに、図14(b)には示していないが、脚部の左右方向(H方向)におけるフィルタ領域は、脚部の左右の奥行(H)に脚部の左右方向の2つの端部、すなわち左端部と右端部の各々に可変パディング(Padvariable)を追加した領域となる。
 すなわち、可変フィルタ領域算出部122が算出する可変フィルタ領域は、LWH各方向の最大長が、先に説明した以下の式(式3)に従って算出される長さを持つ丸みを帯びた領域となる。
 Pad=L+(Padvariable)×2
 Pad=W+(Padvariable)×2
 Pad=H+(Padvariable)×2
                 ・・・・(式3)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 前述したように、上記(式3)によって算出される可変フィルタ領域の大きさも、角速度(ω)が大きいほど大きなサイズとなり、角速度(ω)が小さいほど小さなサイズとなる。
 すなわち、可変フィルタ領域は、脚部等、可動部の動作速度に応じてサイズが変化する領域となる。
 図15は、4脚ロボット10の左前脚部に可変フィルタ領域算出部122が算出した可変フィルタ領域を設定した図を示している。
 この可変フィルタ領域は、この領域内にオブジェクトが検出されても、そのオブジェクトを障害物として認識しない領域である。
 可変フィルタ領域算出部122が算出した可変フィルタ領域の領域情報は、図11に示す自己領域フィルタ処理部103の3次元点群フィルタ処理部123に出力される。
 3次元点群フィルタ処理部123は、可変フィルタ領域算出部122が算出した可変フィルタ領域を適用して、3次元点群(PC)生成部102が生成した3次元点群F~Rから、フィルタ領域内のオブジェクト対応の3次元点群を除去するフィルタ処理を実行して、新たな3次元点群、すなわちフィルタ後3次元点群F~Rを生成して次段の3次元点群(PC)合成部104に出力する。
 この処理の具体例について、図16を参照して説明する。
 図16は、3次元点群フィルタ処理部123が生成するフィルタ後3次元点群Fの例を示す図である。
 すなわち、4脚ロボット10の視覚センサ12Fのセンサ検出領域内のフィルタ後3次元点群Fの例を示している。
 3次元点群フィルタ処理部123には、先に図9を参照してように、前段の3次元点群(PC)生成部102から、3次元点群Fを入力する。
 3次元点群Fは、先に図10を参照して説明したように、3次元点群(PC:Point Cloud)生成部102が生成した3次元点群Fであり、センサ検出領域内のオブジェクト、すなわち、3つの円柱状のオブジェクトと、4脚ロボット10の左前脚先端部のオブジェクトを示す3次元点群が含まれる。
 3次元点群フィルタ処理部123は、この3次元点群(PC)生成部102が生成した3次元点群Fに、可変フィルタ領域算出部122が算出した可変フィルタ領域を適用して、フィルタ領域内のオブジェクト対応の3次元点群を除去するフィルタ処理を実行する。
 図16に示す例では、4脚ロボット10の前脚部とその周囲領域を含むフィルタ領域内のオブジェクト対応の3次元点群の除去処理を行うことになる。すなわち4脚ロボット10の前脚部に対応する3次元点群を除去するフィルタ処理を行い、新たな3次元点群、すなわちフィルタ後3次元点群Fを生成する。
 図16に示すフィルタ後3次元点群は、3つの円柱状のオブジェクトに対応する3次元点群はそのまま残されるが、4脚ロボット10の左前脚先端部のオブジェクトに対応する3次元点群は削除されたデータとなる。
 このように、3次元点群フィルタ処理部123には、前段の3次元点群(PC)生成部102から入力した3次元点群から、可変フィルタ領域算出部122が算出した可変フィルタ領域内のオブジェクト対応の3次元点群を削除する処理(フィルタ処理)を実行してフィルタ後3次元点群を生成する。
 3次元点群フィルタ処理部123の生成したフィルタ後3次元点群は、後段の3次元点群合成部104に出力される。
 なお、図14~図16では、4脚ロボット10の左前脚の可変フィルタ領域の算出処理と、左前脚の可変フィルタ領域を適用したフィルタ処理によるフィルタ後3次元点群データの生成処理について説明した。
 自己領域フィルタ処理部103は、これらの処理を4脚ロボット10の可動部の全て、具体的には4本の脚部の各々について可変フィルタ領域の算出処理と、可変フィルタ領域を適用したフィルタ処理によるフィルタ後3次元点群データの生成処理を実行する。
 左前脚以外の脚部に対する処理例について図17を参照して説明する。
 図17は、右脚ロボット10の左後脚に対応する可変フィルタ領域の算出処理を説明する図である。
 図17(a)は、時間(t)における4脚ロボット10の左後脚の可変パディンク(Padvariable)の算出例を示す図である。
 時間(t)における4脚ロボット10の左後脚の可変パディンク(Padvariable)は、先に説明した式(式2)に従って算出する。すなわち、
 Padvariable=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 上記式(式2)に従って算出する。
 図17に示す例では、可変パディング算出部121による可変パディング算出処理時間に相当するタイミング(時間(t))における、4脚ロボット10の左後脚の動作は、単位時間(st)あたり角度(θ)回転している状態である。
 この回転角度は、先に図14を参照して説明した左前脚の回転角度より、かなり小さい角度である。
 すなわち角速度(ω)が小さい値であり、この結果上記(式2)に従って算出される可変パディンク(Padvariable)の値も小さな値となる。
 図17(b)は、上記(式2)に従って算出した可変パディンク(Padvariable)を用いて算出した可変パディング領域の例を示している。
 すなわち、可変フィルタ領域算出部122が算出した左後脚の可変フィルタ領域である。
 図17(b)には、LW平面におけるL方向とW方向における可変フィルタ領域を示している。
 脚部の長さ方向(L方向)におけるフィルタ領域は、脚部の長さ(L)に脚部の長さ方向の2つの端部、すなわち上端部と下端部の各々に可変パディング(Padvariable)を追加した領域となる。
 同様に、脚部の前後方向(W方向)におけるフィルタ領域は、脚部の前後の幅(W)に脚部の前後方向の2つの端部、すなわち前端部と後端部の各々に可変パディング(Padvariable)を追加した領域となる。
 さらに、図17(b)には示していないが、脚部の左右方向(H方向)におけるフィルタ領域は、脚部の左右の奥行(H)に脚部の左右方向の2つの端部、すなわち左端部と右端部の各々に可変パディング(Padvariable)を追加した領域となる。
 すなわち、可変フィルタ領域算出部122が算出する可変フィルタ領域は、LWH各方向の最大長が、先に説明した以下の式(式3)に従って算出される長さを持つ丸みを帯びた領域となる。
 Pad=L+(Padvariable)×2
 Pad=W+(Padvariable)×2
 Pad=H+(Padvariable)×2
                 ・・・・(式3)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 前述したように、上記(式3)によって算出される可変フィルタ領域の大きさも、角速度(ω)が大きいほど大きなサイズとなり、角速度(ω)が小さいほど小さなサイズとなる。
 図17に示す4脚ロボット10の左後脚に対応する可変フィルタ領域は、先に図14を参照して説明した4脚ロボット10の左前脚に対応する可変フィルタ領域よりも小さな領域となる。
 これは、4脚ロボット10の左後脚の角速度が左前脚の角速度より小さいためであり、その結果算出される可変パディング(Padvariable)の値が異なるためである。
 このように、可変フィルタ領域は、可変フィルタ領域を設定する脚部等の可動部の動作速度によって大きさが異なる領域となる。
 図18は、自己領域フィルタ処理部103の可変フィルタ領域算出部122が算出した4脚ロボット10の4本の脚部各々に対応する可変フィルタ領域の例を示している。
 4脚ロボット10の4本の脚部各々の動作速度、すなわち角速度(ω)はそれぞれ異なるため、4本の脚部各々に対応する可変フィルタ領域の大きさも異なるものとなる。
 図18に示す例では、左前脚の可変フィルタ領域が最も大きく、右前脚の可変フィルタ領域が最も小さな領域である。
 なお、右前脚の可変フィルタ領域は、右前脚自体の大きさに等しく、右前脚の周囲領域は含まれない設定である。
 これは、右前脚が回動せず停止した状態にあることを意味している。すなわち角速度ω=0の状態では、脚部の可変フィルタ領域は、脚部自体の大きさに等しくなり、脚部の周囲領域を含まない領域となる。
 図19は、脚部の動作状態に応じた可変フィルタ領域の変化を説明する図である。
 図19(a)~(d)は、4脚ロボット10の左前脚の角速度ωが異なる4つの動作状態にあるときの可変フィルタ領域の設定例を示している。
 図19(a)は、4脚ロボット10の左前脚の動作速度が0(停止)の場合、すなわち角速度ω=0の場合の可変フィルタ領域の例である。この場合、可変フィルタ領域は脚部の構成部に一致する領域となり、脚部の周囲には設定されない。
 図19(b)は、4脚ロボット10の左前脚の動作速度が低速の場合、すなわち角速度ω=低速の場合の可変フィルタ領域の例である。
 図19(c)は、4脚ロボット10の左前脚の動作速度が中速の場合、すなわち角速度ω=中速の場合の可変フィルタ領域の例である。
 図19(d)は、4脚ロボット10の左前脚の動作速度が高速の場合、すなわち角速度ω=高速の場合の可変フィルタ領域の例である。
 このように、自己領域フィルタ処理部103の可変フィルタ領域算出部122は、可変フィルタ領域を設定する脚部等の可動部の動作速度によって大きさが異なる可変フィルタ領域を算出する。
 自己領域フィルタ処理部103の3次元点群フィルタ処理部123は、先に図16を参照して説明したように、可変フィルタ領域算出部122が算出した可変フィルタ領域を適用して、3次元点群(PC)生成部102が生成した3次元点群F~Rから、フィルタ領域内のオブジェクト対応の3次元点群を除去するフィルタ処理を実行して、新たな3次元点群、すなわちフィルタ後3次元点群F~Rを生成して次段の3次元点群(PC)合成部104に出力する。
 次に、図9に示すデータ処理部内の3次元点群(PC)合成部104以下の処理について説明する。
 3次元点群(PC)合成部104は、自己領域フィルタ処理部103の3次元点群フィルタ処理部123からフィルタ後3次元点群F~Rを入力する。
 フィルタ後3次元点群F~Rは、前述したように、ロボットの脚部等、ロボット自身の構造部の3次元点群を除去した3次元点群データである。
 3次元点群(PC)合成部104は入力したこれら4つのフィルタ後3次元点群F~Rを合成して1つのフィルタ後3次元点群合成データを生成する。
 図9に3次元点群(PC)合成部104の出力として示すフィルタ後3次元点群(F,B,L,R)合成データである。
 3次元点群(PC)合成部104から出力されるフィルタ後3次元点群(F,B,L,R)合成データは、図1に示す4脚ロボット10の前後左右に装着された4つの視覚センサF,12F~視覚センサR,12Rの出力である4枚の距離画像F~Rに基づいて生成された3次元点群F~Rから、ロボットの構造部に関する3次元点群を除去(フィルタ処理)したフィルタ後3次元点群F~Rの合成データであり、4脚ロボット10の前後左右の周囲にあるロボット構造部を除く障害物等のオブジェクトの3次元位置や3次元形状を点群で示したデータとなる。
 なお、前述したように、図1に示す4つの視覚センサF,12F~視覚センサR,12Rは、全て斜め下方向を向いており、フィルタ後3次元点群(F,B,L,R)合成データは、4脚ロボット10のカメラ位置の水平面より下にある周囲オブジェクトの3次元位置、3次元形状を点群で示したデータとなる。フィルタ後3次元点群(F,B,L,R)合成データは、走行面の凹凸や傾斜等の3次元形状を含むものとなる。
 ただし、ロボットの脚等のロボット構造体はフィルタ処理により除去されているので含まれていない。
 3次元点群(PC)合成部104が生成したフィルタ後3次元点群(F,B,L,R)合成データは、地図画像生成部105に入力される。
 地図画像生成部105は、3次元点群(PC)合成部104が生成したフィルタ後3次元点群(F,B,L,R)合成データを利用して、ロボット周囲のオブジェクトの走行面を含む3次元形状を示す地図データを生成する。
 図9に地図画像生成部105の出力として示す3次元地図データ(または2.5次元地図データ)である。
 地図画像生成部105が生成する地図データは、様々なタイプの3次元地図データ、あるいは2.5次元地図データである。
 具体的には、例えばハイトマップ(Height Map)のような2.5次元地図データである。
 ハイトマップ(Height Map)とは、例えばxy水平面の2次元座標(x,y)の代表座標位置に高さデータ(z)を対応付けて記録した地図データである。
 3次元地図は、全てのxyz座標位置のデータが記録されていることが原則であるが、2.5次元地図としてのハイトマップは、例えば、一定のxy平面領域、例えば5mm角の正方形領域面に対して1つの高さデータ(z)を割り当てた地図データであり、一般的な3次元地図よりデータ量を削減した地図データとして生成することが可能である。なお、2.5次元地図も3次元情報を持つ地図データであり、広い意味では3次元地図に含まれる地図データである。
 地図画像生成部105が生成した3次元地図データ(例えばハイトマップ)は、次の時系列地図画像統合部106に入力される。
 時系列地図画像統合部106は、地図画像生成部105が生成した3次元地図データ(例えばハイトマップ)の時系列データの統合処理を行う。
 具体的には、例えば、以下の処理を行う。
 (1)4つの視覚センサF~R,12F~Rが時間t1において撮影した4枚の距離画像F~R(t1)に基いて、地図画像生成部105が生成したハイトマップ等の3次元地図データ(t1)と、
 (2)4つの視覚センサF~R,12F~Rが時間t2において撮影した4枚の距離画像F~R(t2)に基いて、地図画像生成部105が生成したハイトマップ等の3次元地図データ(t2)と、
 (3)4つの視覚センサF~R,12F~Rが時間t3において撮影した4枚の距離画像F~R(t3)に基いて、地図画像生成部105が生成したハイトマップ等の3次元地図データ(t3)、
 時系列地図画像統合部106は、これら異なる時間(t1~t3)に撮影された距離画像に基いて生成された複数の時系列3次元地図データ(t1)~(t3)を統合して、1枚の時系列地図統合地図データ(例えば統合ハイトマップ)を生成する。
 つまり、3次元地図データ(t1)から、時系列地図統合地図データ(t1)を生成し、3次元地図データ(t2)が時系列地図画像統合部106に入力されると、時系列地図統合地図データ(t1~t2)を生成する。さらに、3次元地図データ(t3)が時系列地図画像統合部106に入力されると、時系列地図統合地図データ(t1~t3)を生成する。
 なお、複数枚の異なる時間の撮影データに基づいて生成される複数の時系列3次元地図データ(t1)~(t3)の各々には重複する領域があり、また1枚の地図データにのみ含まれる領域もある。
 例えば、あるタイミング(t1)で撮影された距離画像には、ロボットの足の背後のオブジェクトの距離値が含まれないが、次のタイミング(t2)で撮影された距離画像には、タイミング(t1)で隠れていたオブジェクトの距離値が含まれるといった場合がある。
 時系列地図画像統合部106は、複数の異なるタイミングで撮影された距離画像に基いて生成される複数数の時系列3次元地図データ(t1)~(t3)を統合することで、ロボット周囲のカメラ撮影範囲にあるほぼ全てのオブジェクトの3次元形状を取得可能な1枚の時系列地図統合地図データ(統合ハイトマップ)を生成する。なお、時系列地図統合地図データ(統合ハイトマップ)を生成するには、ロボットの自己位置が必要だが、例えば距離画像や3次元点群(F,B,L,R)合成データを入力とするSLAM(Simultaneous Localization and Mapping)技術を用いることで取得可能である。
 なお、時系列地図画像統合部106が統合対象とする時系列3次元地図データの枚数は、上述した例では3枚としたが、逐次時系列統合を行うため3枚に限らず2枚でも4枚でも任意の枚数が統合可能である。また、ある1つのタイミングで撮影された距離画像のみから生成される時系列3次元地図データに特に隠れた部分がなければ、統合処理を省略することも可能である。
 ここでは、時系列地図画像統合部106は、複数の異なるタイミングで撮影された距離画像に基いて生成される複数数(n枚)の時系列3次元地図データ(t1)~(tn)を統合して1枚の時系列地図統合地図データを生成したものとして説明する。
 時系列地図画像統合部106が生成した1枚の時系列地図統合地図データは、ロボット制御部107に出力される。
 時系列地図画像統合部106が生成した1枚の時系列地図統合地図データは、ロボット周囲のカメラ撮影範囲にあるほぼ全てのオブジェクトの3次元形状を取得可能としたハイトマップ等の2.5次元画像データである。
 ただし、フィルタ処理されたロボットの脚部などのロボット自身の構造体のオブジェクト位置情報は含まれていない。すなわち、真の障害物となるオブジェクトに関する情報からなるハイトマップ等の2.5次元画像データである。
 ロボット制御部107は、時系列地図画像統合部106が生成した1枚の時系列地図統合地図データを参照して、障害物となり得るオブジェクトの位置を確認し、これらの障害物に衝突や接触しないルートを走行ルートとして決定して脚部を移動させて安全な走行を行う。
 なお、制御対象となるロボットが、例えば先に図3を参照して説明したような腕部の動作により、様々な作業を行うロボットの場合は、ロボット制御部107は、時系列地図画像統合部106が生成した1枚の時系列地図統合地図データを参照して、腕部の軌道を決定して安全な作業を実行する。
 すなわち、ロボット制御部107は、時系列地図画像統合部106が生成した1枚の時系列地図統合地図データを参照して、障害物となり得るオブジェクトの位置を確認し、これらの障害物に衝突や接触しないような腕部の軌道を決定して、腕部を移動させて安全な作業を行う。
 このように、本開示のロボット装置は、自装置の一部がセンサによって検出された場合でも、自装置領域を障害物として認識されないように自装置のオブジェクト情報をセンサ検出情報から除去するフィルタ処理を実行し、フィルタ後のデータに基づいて生成した地図データを利用してロボットを制御する。
 このような処理を行うことで、自装置の一部を障害物として誤認識することなく、正しいロボット制御を行うことが可能となる。
  [4.(実施例2)直動関節部の直線的な動きを考慮した可変フィルタ領域の算出処理例について]
 次に、実施例2として、直動関節部の直線的な動きを考慮した可変フィルタ領域の算出処理例について説明する。
 上述した実施例1では、図11以下を参照して説明したように、自己領域フィルタ処理部103の可変パディング算出部121が、ロボットの脚部の角速度ωに応じた可変パディング(Padvariable)を、以下の式(式2)に従って算出していた。
 Padvariable=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 さらに、可変フィルタ領域算出部122は、可変フィルタ領域を以下の式(式3)に従って算出していた。
 Pad=L+(Padvariable)×2
 Pad=W+(Padvariable)×2
 Pad=H+(Padvariable)×2
                 ・・・・(式3)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 これら(式2)、(式3)は、例えば図1に示す4脚ロボット10の脚部13の回転関節部14の回動による脚部13の下半分の脚部に相当する下脚部の動きを考慮した可変パディング(Padvariable)算出式と、可変フィルタ領域算出式である。
 例えば4脚ロボット10の脚部13の直動関節部15の直動による下脚部の動きを考慮した可変パディング(Padvariable)算出式は、上記(式2)とは異なる式となる。
 図20を参照して、4脚ロボット10の脚部13の直動関節部15の直動による下脚部19の動きを考慮した可変パディング(Padvariable)算出処理と、可変フィルタ領域の算出処理例について説明する。
 図20(a)は、時間(t)における4脚ロボット10の左前脚の直動関節部15の直動による下脚部19の動きを考慮した可変パディンク(Padvariable)の算出例を示す図である。
 脚部13の長さをL、下脚部19の長さをL2として示している。
 図11に示す自己領域フィルタ処理部103の可変パディング算出部121は、ロボットの下脚部19の直動速度vに応じた可変パディング(Padvariable)を、以下の式(式4)に従って算出する。
 Padvariable=(v×st)×weight・・・(式4)
 ただし、
 v=直動関節部の動作による下脚部の直動速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 weight=重み(予め規定した重み値)
 図20(b)は、上記式(式4)に従って可変パディング算出部121が算出した可変パディンク(Padvariable)を用いて、可変フィルタ領域算出部122が算出した可変パディング領域の例を示している。
 図20(b)には、LW平面におけるL方向とW方向における可変フィルタ領域を示している。
 下脚部の長さ方向(L方向)におけるフィルタ領域は、下脚部19の長さ(L2)に下脚部19の長さ方向の2つの端部、すなわち上端部と下端部の各々に可変パディング(Padvariable)を追加した領域となる。
 同様に、下脚部の前後方向(W方向)におけるフィルタ領域は、下脚部の前後の幅(W)に下脚部の前後方向の2つの端部、すなわち前端部と後端部の各々に可変パディング(Padvariable)を追加した領域となる。
 さらに、図20(b)には示していないが、下脚部の左右方向(H方向)におけるフィルタ領域は、下脚部の左右の奥行(H)に脚部の左右方向の2つの端部、すなわち左端部と右端部の各々に可変パディング(Padvariable)を追加した領域となる。
 すなわち、可変フィルタ領域算出部122が算出する可変フィルタ領域は、LWH各方向の最大長が、先に図14等を参照して説明した回転関節部の回動を考慮して算出される可変フィルタ領域と同様、以下の式(式5)に従って算出される長さを持つ領域となる。
 Pad=L2+(Padvariable)×2
 Pad=W+(Padvariable)×2
 Pad=H+(Padvariable)×2
                 ・・・・(式5)
 ただし、
 2L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 上記(式5)によって算出される可変フィルタ領域の大きさは、直動関節部の直動速度(v)が大きいほど大きなサイズとなり、直動速度(v)が小さいほど小さなサイズとなる。
 すなわち、可変フィルタ領域は、脚部等、可動部の動作速度に応じてサイズが変化する領域となる。
 なお、図1に示す4脚ロボット10の脚部13は、上端に回転関節部14を有し、さらに脚部13の中段位置に直動関節部15を有する。実際のロボット動作時には、これら2つの関節部が同時に動作することがある。
 この場合、これら2つの動き、すなわち、回転関節部14の回転動作と、直動関節部15の直動動作の2つの動作を考慮して、可変パディング(Padvariable)と、可変フィルタ領域を算出することが必要となる。
 この処理の具体例について、図21を参照して説明する。
 図21には、4脚ロボット10の左前脚の回転関節部14の回転による脚部13の動きを考慮した可変パディンク(Padvariable)の算出例と、左前脚の直動関節部15の直動による下脚部19の動きを考慮した可変パディンク(Padvariable)の算出例を示している。
 図21(a1)が、4脚ロボット10の左前脚の回転関節部14の回転による脚部13の動きを考慮した回動対応可変パディンク(Padvariable(ω))の算出例である。
 図21(a2)が、4脚ロボット10の左前脚の直動関節部15の直動による下脚部19の動きを考慮した直動対応可変パディンク(Padvariable(v))の算出例である。
 脚部13の長さをL、下脚部19の長さをL2として示している。
 図21(a1)に示す回転関節部14の回転による脚部13の動きを考慮した回動対応可変パディンク(Padvariable(ω))の算出処理は、先に図14等を参照して説明した処理である。
 すなわち、図11に示す自己領域フィルタ処理部103の可変パディング算出部121は、時間(t)における4脚ロボット10の左前脚の回動対応可変パディンク(Padvariable(ω))を、先に説明した以下の式(式2)に従って算出する。
 Padvariable(ω)=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 上記式(式2)に従って算出する。
 また、図21(a2)に示す直動関節部15の直動による下脚部19の動きを考慮した直動対応可変パディンク(Padvariable(v))の算出処理は、先に図20を参照して説明した処理である。
 すなわち、図11に示す自己領域フィルタ処理部103の可変パディング算出部121は、時間(t)における4脚ロボット10の左前脚の直動対応可変パディンク(Padvariable(v))を、先に説明した式(式4)に従って算出する。
 Padvariable(v)=(v×st)×weight・・・(式4)
 ただし、
 v=直動関節部の動作による下脚部の直動速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 weight=重み(予め規定した重み値)
 上記式(式4)に従って算出する。
 図21(b)は、図21(a1)に示す回動対応可変パディンク(Padvariable(ω))、すなわち(式2)に従って可変パディング算出部121が算出した回動対応可変パディンク(Padvariable(ω))と、図21(a2)に示す直動対応可変パディンク(Padvariable(v))、すなわち、(式4)に従って可変パディング算出部121が算出した直動対応可変パディンク(Padvariable(v))を用いて、可変フィルタ領域算出部122が算出した可変パディング領域の例を示している。
 図21(b)に示すように、可変フィルタ領域算出部122は、回動対応可変パディンク(Padvariable(ω))と、直動対応可変パディンク(Padvariable(v))とを重ね合わせたパディング領域を設定する処理を行う。
 図に示す例では、脚部13の上半分の上脚部は、回動対応可変パディンク(Padvariable(ω))のみを考慮したフィルタ領域が設定される。
 一方、脚部13の下半分の下脚部19は、回動対応可変パディンク(Padvariable(ω))と、直動対応可変パディンク(Padvariable(v))を重ねたフィルタ領域が設定される。
 図の例では、直動対応可変パディンク(Padvariable(v))が、回動対応可変パディンク(Padvariable(ω))より大きい、すなわち、
 直動対応可変パディンク(Padvariable(v))>回動対応可変パディンク(Padvariable(ω)
 この関係であるため、脚部13の下半分の下脚部19は、より大きなパディング値である直動対応可変パディンク(Padvariable(v))によって規定されるフィルタ領域が設定されることになる。
 すなわち、可変フィルタ領域算出部122が算出する可変フィルタ領域は、脚部13の上半分の上脚部については、
 Pad=L+(Padvariable(ω))×2
 Pad=W+(Padvariable(ω))×2
 Pad=H+(Padvariable(ω))×2
                 ・・・(式6)
 上記式(式6)によって規定される領域となる。
 さらに、脚部13の下半分の下脚部19については、
 Pad=L2+(Padvariable(v))×2
 Pad=W+(Padvariable(v))×2
 Pad=H+(Padvariable(v))×2
                 ・・・(式7)
 上記式(式7)によって規定される領域となる。
 なお、上記(式6)、(式7)によって算出される可変フィルタ領域の大きさは、回転関節部14の回転速度(ω)や、直動関節部15の直動速度(v)が大きいほど大きなサイズとなり、速度が小さいほど小さなサイズとなる。
 すなわち、可変フィルタ領域は、脚部等、可動部の動作速度に応じてサイズが変化する領域となる。
  [5.その他の実施例について]
 次に、その他の実施例について説明する。
 以下の実施例について、順次、説明する。
 (a)実施例3:ロボットの可動部サイズにパディング領域を乗算して可変フィルタ領域を算出する実施例
 (b)実施例4:ロボット可動部の動作領域と非動作領域を区別して可変フィルタ領域を算出する実施例
 (c)実施例5:ロボット可動部の動作方向を識別して可変フィルタ領域を算出する実施例
 (d)実施例6:固定パディング領域と可変パディング領域を設定し、これら2つのパディング領域に基づいて可変フィルタ領域を算出する実施例
 (e)実施例7:複数の回転関節部を有する可動部に対応した可変フィルタ領域を算出する実施例
  (5-(a)実施例3:ロボットの可動部サイズにパディング領域を乗算して可変フィルタ領域を算出する実施例)
 まず、実施例3として、ロボットの可動部サイズにパディング領域を乗算して可変フィルタ領域を算出する実施例について説明する。
 先に説明した実施例1では、図11以下を参照して説明したように、自己領域フィルタ処理部103の可変パディング算出部121が、ロボットの脚部の角速度ωに応じた可変パディング(Padvariable)を、以下の式(式2)に従って算出していた。
 Padvariable=tan(ω×st)×Lengthleg・・・(式2)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 さらに、可変フィルタ領域算出部122は、可変フィルタ領域を以下の式(式3)に従って算出していた。
 Pad=L+(Padvariable)×2
 Pad=W+(Padvariable)×2
 Pad=H+(Padvariable)×2
                 ・・・・(式3)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 自己領域フィルタ処理部103の可変パディング算出部121は、可変パディング(Padvariable)の算出処理において、上記(式2)と異なる以下の式(式8)を用いる構成としてもよい。
 Padvariable=tan(ω×st)×Lengthleg×scale・・・(式8)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 scale=重み(予め規定した重み)
 さらに、可変フィルタ領域算出部122は、可変フィルタ領域を以下の式(式9)に従って算出する。
 Pad=L×(Padvariable
 Pad=W×(Padvariable
 Pad=H×(Padvariable
                 ・・・・(式9)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 先に説明した(式3)では、可変フィルタ領域の算出処理に際して、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さL,W,Hの各端部にそれぞれ、可変パディング(Padvariable)を加算して可変フィルタ領域を算出していた。
 これに対して、上記(式9)では、可変フィルタ領域の算出処理に際して、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さL,W,Hの各々に、可変パディング(Padvariable)を乗算して可変フィルタ領域を算出する。
 このような(式9)を適用して可変フィルタ領域を算出する処理を行ってもよい。
 なお、上記(式9)も、算出される可変フィルタ領域の大きさは、可動部の動作速度(例えば角速度(ω))が大きいほど大きなサイズとなり、可動部の動作速度(例えば角速度(ω))が小さいほど小さなサイズとなる。
 すなわち、可変フィルタ領域は、ロボットの脚部等、ロボットの可動部の動作速度に応じてサイズが変化する領域となる。
  (5-(b)実施例4:ロボット可動部の動作領域と非動作領域を区別して可変フィルタ領域を算出する実施例)
 次に、実施例4として、ロボットの可動部の動作領域と非動作領域を区別して可変フィルタ領域を算出する実施例について説明する。
 図22を参照してこの実施例4の詳細について説明する。
 図22は、先に図12、図13を参照して説明したと同様、4脚ロボット10の左前脚に設定する可変パディングの算出処理例を示す図である。
 先に説明した図12、図13と同様、可変パディングの算出処理を理解しやすくするため、4脚ロボット10の左前脚の形状を四角柱として簡易化して示している。
 図22(a)に示すように、左前脚の形状を長さ(L(Lengthleg))、前後方向の幅(W)、左右方向の奥行(H)としたL×W×Hの四角柱として示している。
 4脚ロボット10の脚部13は、図22(b)に示すように、上端の回転関節部14を中心として前後方向(Wの方向)に回動する構成を有する。
 脚部13は、LW平面上を回動することになり、H方向(4脚ロボット10の左右方向)には移動しない。
 すなわち、脚部13の動作領域はLW平面であり、H方向は非動作領域となる。
 実施例4は、ロボット可動部の動作領域と非動作領域を区別して可変フィルタ領域を算出する実施例であり、可変フィルタ領域算出部122は、図22(c)に示すような可変フィルタ領域を算出する。
 可変フィルタ領域算出部122が算出する可変フィルタ領域は、以下の式(式10)に従って算出される長さを持つ3辺によって構成される四角柱となる。
 Pad=L+(Padvariable)×2
 Pad=W+(Padvariable)×2
 Pad=H
                 ・・・・(式10)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 すなわち、ロボット可動部である脚部13の動作領域であるLW平面にのみ可変パディング(Padvariable)を追加設定し、脚部13の非動作領域であるH方向には、可変パディング(Padvariable)を追加設定することなく、脚部13のH方向の長さ(H)のみをフィルタ領域として設定する。
 なお、本実施例4において、先に説明した実施例3と同様の処理を適用することも可能である。
 すなわち、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さL,W,Hの各々に、可変パディング(Padvariable)を乗算して可変フィルタ領域を算出する処理を行ってもよい。
 例えば、以下に示す(式11)を用いて可変フィルタ領域を算出する処理を行ってもよい。
 Pad=L×(Padvariable
 Pad=W×(Padvariable
 Pad=H
                 ・・・・(式11)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 本実施例4は、このように、ロボット可動部の動作領域と非動作領域を区別して可変フィルタ領域を算出する実施例である。
 このような可変フィルタ領域の設定により、フィルタ領域を可動部の動作方向と無関係な方向に膨張することを避けることが可能になる。結果として、意図しない方向にある障害物等のオブジェクトの余分なフィルタ処理を防ぐことが可能になり、外界センサからの情報を有意義に用いることが可能となる。
  (5-(c)実施例5:ロボット可動部の動作方向を識別して可変フィルタ領域を算出する実施例)
 次に、実施例5として、ロボット可動部の動作方向を識別して可変フィルタ領域を算出する実施例について説明する。
 図23を参照してこの実施例5の詳細について説明する。
 図23は、図22と同様、4脚ロボット10の左前脚に設定する可変パディングの算出処理例を示す図である。
 先に説明した図22と同様、可変パディングの算出処理を理解しやすくするため、4脚ロボット10の左前脚の形状を四角柱として簡易化して示している。
 図23(a)に示すように、左前脚の形状を長さ(L(Lengthleg))、前後方向の幅(W)、左右方向の奥行(H)としたL×W×Hの四角柱として示している。
 図23(b)は、自己領域フィルタ処理部103が、可変パディング算出処理や、可変フィルタ領域算出処理を実行するあるタイミング(時間(t))における脚部13の回動状態を示す図である。
 4脚ロボット10の脚部13は、図23(b)に示すように、上端の回転関節部14を中心として左方向に回動している状態にあるとする。
 本実施例5は、ロボット可動部の動作方向を識別して可変フィルタ領域を算出する実施例であり、4脚ロボット10の脚部13が、図23(b)に示すように、上端の回転関節部14を中心として左方向に回動している状態にある場合、この回動方向に広がりを持つ可変フィルタ領域を算出する。
 すなわち、可変フィルタ領域算出部122は、図23(c)に示すような可変フィルタ領域を算出する。
 可変フィルタ領域算出部122が算出する可変フィルタ領域は、以下の式(式12)に従って算出される長さを持つ3辺によって構成される四角柱となる。
 Pad=L+(Padvariable)×2
 Pad=W+(Padvariable
 Pad=H
                 ・・・・(式12)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 ここで、上記(式12)中の
 Pad=W+(Padvariable
 この(Padvariable)の設定方向は、脚部13の動作方向、すなわち図23(c)に示すように、脚部14の動作方向である左側に設定される。
 このように、本実施例5では、ロボット可動部である脚部13の動作方向に可変パディング(Padvariable)を追加設定し、脚部13の動作方向の反対方向には、可変パディング(Padvariable)を設定しない。
 なお、本実施例5においても、先に説明した実施例3と同様の処理を適用することも可能である。
 すなわち、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さL,W,Hの各々に、可変パディング(Padvariable)を乗算して可変フィルタ領域を算出する処理を行ってもよい。
 本実施例5は、このように、ロボット可動部の動作方向と非動作方向を区別して可変フィルタ領域を算出する実施例である。
 このような可変フィルタ領域の設定により、フィルタ領域を可動部の動作方向と無関係な方向に膨張することを避けることが可能になる。結果として、意図しない方向にある障害物等のオブジェクトの余分なフィルタ処理を防ぐことが可能になり、外界センサからの情報を有意義に用いることが可能となる。
  (5-(d)実施例6:固定パディング領域と可変パディング領域を設定し、これら2つのパディング領域に基づいて可変フィルタ領域を算出する実施例)
 次に、実施例6として、固定パディング領域と可変パディング領域を設定し、これら2つのパディング領域に基づいて可変フィルタ領域を算出する実施例について説明する。
 図24を参照してこの実施例6の詳細について説明する。
 図24は、図22、図23と同様、4脚ロボット10の左前脚に設定する可変パディングの算出処理例を示す図である。
 先に説明した図22、図23と同様、可変パディングの算出処理を理解しやすくするため、4脚ロボット10の左前脚の形状を四角柱として簡易化して示している。
 図24(a)に示すように、左前脚の形状を長さ(L(Lengthleg))、前後方向の幅(W)、左右方向の奥行(H)としたL×W×Hの四角柱として示している。
 4脚ロボット10の脚部13は、図24(b)に示すように、上端の回転関節部14を中心として前後方向(Wの方向)に回動する構成を有する。
 本実施例6では、固定パディング領域(Padfixed)と可変パディング領域(Padvariable)を設定し、これら2つのパディング領域に基づいて可変フィルタ領域を算出する。
 固定パディング領域(Padfixed)は、フィルタ領域を設定する可動部周囲に予め固定されたフィルタ領域である。
 可変パディング領域(Padvariable)は、フィルタ領域を設定する可動部の動作速度によって変化するフィルタ領域に相当する。
 図24(c)に、固定パディング領域(Padfixed)によって規定される固定フィルタ領域と、可変パディング領域(Padvariable)によって規定される可変フィルタ領域の設定例を示す。
 本実施例6において、可変フィルタ領域算出部122が算出する可変フィルタ領域は、以下の式(式13)に従って算出される長さを持つ3辺によって構成される四角柱となる。
 Pad=L+(Padfixed)+(Padvariable)×2
 Pad=W+(Padfixed)+(Padvariable)×2
 Pad=H+(Padfixed)+(Padvariable)×2
                 ・・・・(式13)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 このように、本実施例6では、固定パディング領域(Padfixed)と可変パディング領域(Padvariable)を用いて、固定フィルタ領域と可変フィルタ領域を設定する。
 なお、本実施例6においても、先に説明した実施例3と同様の処理を適用することも可能である。
 すなわち、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さL,W,Hの各々に、可変パディング(Padvariable)を乗算して可変フィルタ領域を算出する処理を行ってもよい。
 例えば、以下に示す(式14)を用いて可変フィルタ領域を算出する処理を行ってもよい。
 Pad=L×(Padfixed)×(Padvariable
 Pad=W×(Padfixed)×(Padvariable
 Pad=H×(Padfixed)×(Padvariable
                 ・・・・(式14)
 ただし、
 L,W,Hは、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さ
 このように、本実施例6は、予め固定された固定パディング領域(Padfixed)と、可動部の動作状態(動作速度)に応じて変化する可変パディング領域(Padvariable)から構成される可変フィルタ領域を設定する構成である。
 本実施例6では、例えば可動部が停止状態にある場合でも、予め固定された固定パディング領域(Padfixed)を有するフィルタ領域が設定されることになり、例えばロボットに組み立て誤差などがある場合、その誤差領域に含まれる脚部の構成などを障害物として誤認識してしまうといった処理を防止することが可能となる。
  (5-(e)実施例7:複数の回転関節部を有する可動部に対応した可変フィルタ領域を算出する実施例)
 次に、実施例7として、複数の回転関節部を有する可動部に対応した可変フィルタ領域を算出する実施例について説明する。
 図25を参照してこの実施例7の詳細について説明する。
 図25の左上に示す4脚ロボットb,10bは、先に図2を参照して説明した4脚ロボットb,10bに相当する。
 すなわち、脚部13の上端に回転関節部13を有し、さらに、脚部13の中段位置にもう一つの回転関節部17を有する。
 図25(a)は、脚部13の動作を説明する図である。
 脚部13の上脚部13aの長さをL1、下脚部13bの長さをL2とする。
 脚部13の上端の回転関節部13の回動により、上脚部13aと下脚部13bの全体が回動する。
 また、脚部13の中段位置の回転関節部17の回動により、下脚部13bのみが回動する。
 ここで、脚部13の上端の回転関節部13の回動の角速度をω1、脚部13の中段の回転関節部17の回動の角速度をω2とする。
 自己領域フィルタ処理部103の可変パディング算出部121は、これらの角速度を用いて、以下の(式15)に従って、2つの可変パディング(Padvariable)の算出処理を行う。
 Padvariable1=tan(ω×st)×L1
 Padvariable2=tan(ω×st)×L2
                      ・・・(式15)
 ただし、
 ω=角速度
 st=規定単位時間(例えばサンプリングタイム間隔)
 上記(式15)中の第1可変パディング(Padvariable1)は、脚部13の上端の回転関節部13の回動の角速度をω1に基づいて算出される可変パディングである。
 脚部13の上端の回転関節部13の回動は、上脚部13aと下脚部13b全体の回動となるため、この第1可変パディング(Padvariable1)は、上脚部13aと下脚部13b全体のパディングとして設定される。
 一方、上記(式15)中の第2可変パディング(Padvariable2)は、脚部13の中段部の回転関節部17の回動の角速度をω2に基づいて算出される可変パディングである。
 脚部13の中段部の回転関節部17の回動は、下脚部13bのみの回動となるため、この第2可変パディング(Padvariable2)は、下脚部13bのみのパディングとして設定される。
 この結果、可変フィルタ領域算出部122は、可変フィルタ領域を、上脚部13aと下脚部13bとで、異なる処理によって算出する。
 すなわち、上脚部13aの可変フィルタ領域は、以下の式(式16)に従って算出する。
 Pad=L1+(Padvariable1)×2
 Pad=W1+(Padvariable1)×2
 Pad=H1+(Padvariable1)×2
                 ・・・・(式16)
 ただし、
 L1,W1,H1は、可変フィルタ領域を設定する上脚部13aを内包する直方体の3軸の長さ
 さらに、下脚部13bの可変フィルタ領域は、以下の式(式17)に従って算出する。
 Pad=L2+(Padvariable1+Padvariable2)×2
 Pad=W2+(Padvariable1+Padvariable2)×2
 Pad=H2+(Padvariable1+Padvariable2)×2
                 ・・・・(式17)
 ただし、
 L2,W2,H2は、可変フィルタ領域を設定する下脚部13bを内包する直方体の3軸の長さ
 このように、可変フィルタ領域算出部122は、可変フィルタ領域を、上脚部13aと下脚部13bとで、異なる処理によって算出する。
 なお、本実施例7に対して、先に説明した実施例3と同様の処理を適用することも可能である。
 すなわち、可変フィルタ領域を設定する可動部を内包する直方体の3軸の長さL,W,Hの各々に、可変パディング(Padvariable)を乗算して可変フィルタ領域を算出する処理を行ってもよい。
 また、先に説明した実施例6の処理、すなわち、固定パディング領域と可変パディング領域を設定し、これら2つのパディング領域に基づいて可変フィルタ領域を算出する処理を適用する構成としてもよい。
 この場合、可変フィルタ領域算出部122は、可変フィルタ領域を、上脚部13aと下脚部13bとで、以下の処理によって算出する。
 上脚部13aの可変フィルタ領域は、以下の式(式18)に従って算出する。
 Pad=L1+(Padfixed1)+(Padvariable1)×2
 Pad=W1+(Padfixed1)+(Padvariable1)×2
 Pad=H1+(Padfixed1)+(Padvariable1)×2
                 ・・・・(式18)
 ただし、
 L1,W1,H1は、可変フィルタ領域を設定する上脚部13aを内包する直方体の3軸の長さ
 さらに、下脚部13bの可変フィルタ領域は、以下の式(式19)に従って算出する。
 Pad=L2+(Padfixed2)+(Padvariable1+Padvariable2)×2
 Pad=W2+(Padfixed2)+(Padvariable1+Padvariable2)×2
 Pad=H2+(Padfixed2)+(Padvariable1+Padvariable2)×2
                 ・・・・(式19)
 ただし、
 L2,W2,H2は、可変フィルタ領域を設定する下脚部13bを内包する直方体の3軸の長さ
 このように、本実施例7に従えば、複数の関節部が連なる構成においても最適なフィルタ領域を算出することが可能となる。
 なお、上記実施例では2つの回転関節部の連結構成例について説明したが、3つ以上の関節部が連結された構成においても、上記説明と同様の処理を行うことで、最適なフィルタ領域の算出処理が可能となる。
  [6.(実施例8)3次元点群データに対してではなく、距離画像に対するフィルタ処理を行う実施例について]
 次に、実施例8として、3次元点群データに対してではなく、距離画像に対するフィルタ処理を行う実施例について説明する。
 上述した実施例は、基本的に先に図9を参照して説明したデータ処理部100の構成を利用して実行する実施例として説明してきた。
 図9に示すデータ処理部100は、視覚センサ12から入力する距離画像を3次元点群(PC)データに変換して、フィルタ処理や、その後の地図データ生成処理等の各種処理を実行する構成である。
 本開示の処理、すなわち、ロボット装置の脚部等の構成部を障害物として認識させないためのフィルタ処理は、3次元点群(PC)データに対してではなく、視覚センサ12から入力する距離画像に対して実行することも可能である。
 以下に説明する実施例8は、3次元点群データに対してではなく、距離画像に対するフィルタ処理を行う実施例である。
 図26を参照して実施例8のロボット装置の主要構成について説明する。
 図26に示す構成は、例えば図1を参照して説明した4脚ロボット10の走行制御処理を行うデータ処理部を中心として説明する図である。
 図26に示す4つの視覚センサF~R,12F~Rは、図1を参照して説明した4脚ロボット10の前後左右に装着されたステレオカメラ等の視覚センサである。
 なお、4つの視覚センサF~R,12F~Rの各々は、例えば視覚センサを構成するカメラの撮影範囲(センサ検出領域)に含まれるオブジェクトまでの距離に応じた濃度値を画素値として設定した距離画像を撮影する。
 図26に示す距離画像Fは、4脚ロボット10の進行方向(前方向)の画像を撮影する視覚センサF,12Fが取得する距離画像である。
 距離画像Bは、4脚ロボット10の進行方向と逆の後ろ方向の画像を撮影する視覚センサB,12Bが取得する距離画像である。
 距離画像Lは、4脚ロボット10の進行方向に対して左方向の画像を撮影する視覚センサL,12Lが取得する距離画像である。
 距離画像Rは、4脚ロボット10の進行方向に対して右方向の画像を撮影する視覚センサR(Right)12Rが取得する距離画像である。
 本実施例8では、これら4つの視覚センサF,12F~視覚センサR,12Rが取得した4枚の距離画像は、データ処理部150の自己領域フィルタ処理部103に入力される。
 すなわち、本実施例8では、先に図9を参照して説明した3次元点群(PC:Point Cloud)生成部102による3次元点群(PC)データの生成処理は行われない。
 図26に示すように、データ処理部150は、ロボット情報取得部101、自己領域フィルタ処理部103、3次元点群(PC:Point Cloud)生成部102、3次元点群(PC)合成部104、地図画像生成部105、時系列地図画像統合部106、ロボット制御部107を有する。
 ロボット情報取得部101は、ロボット構造情報(ロボットモデル情報)や、ロボット可動部位置、動作情報を取得して自己領域フィルタ処理部103に出力する。
 ロボット構造情報(ロボットモデル情報)は、図示しない記憶部内に格納されている。
 ロボット可動部位置、動作情報は、ロボット制御部107から取得、あるいはロボットに装着されたセンサの検出情報などを利用して取得する。
 なお、ロボット可動部とはロボットの脚部や腕部などである。
 データ処理部100の自己領域フィルタ処理部103は、4つの視覚センサF,12F~視覚センサR,12Rが取得した4枚の距離画像F~Rを直接用いて、これらの距離画像の各々に対して可変フィルタ領域の設定処理を行い、設定した可変フィルタ領域を用いて、距離画像F~Rからロボットの脚部、腕部等の可動部の検出情報を除去するフィルタ処理を行う。
 自己領域フィルタ処理部103は、このフィルタ処理の結果として、図26に示す自己領域フィルタ処理部103の出力であるフィルタ後距離画像F~Rを生成して、後段の3次元点群(PC:Point Cloud)生成部102に出力する。
 なお、フィルタ後距離画像とは、4つの視覚センサF,12F~視覚センサR,12Rが取得した4枚の距離画像F~Rから、自己領域であるロボット自身の領域に相当するオブジェクトの距離データを除去した、すなわちフィルタ処理を行った距離画像である。
 3次元点群(PC:Point Cloud)生成部102は、自己領域フィルタ処理部103からフィルタ後距離画像F~Rを入力する。
 フィルタ後距離画像F~Rは、前述したように、ロボットの脚部等、ロボット自身の構造部の距離値データを除去した距離画像である。
 3次元点群(PC:Point Cloud)生成部102は、入力したこれら4つのフィルタ後距離画像F~Rの各画素に設定された距離値(画素値)を、3次元座標上の点群データとして表現したフィルタ後3次元点群(PC:Point Cloud)を生成する。
 なお、前述したように、3次元点群(PC)を構成する各点は、各々xyz3次元空間上の座標位置が規定された点である。すなわち、3次元点群構成各点にはx,y,zの各座標値が割り当てられている。
 3次元点群(PC:Point Cloud)生成部102は、図26に示すように、以下の4つのフィルタ後3次元点群を生成して、次段の3次元点群(PC)合成部104に入力する。
 (1)視覚センサF,12Fが取得し、自己領域フィルタ処理部103による自己領域フィルタ処理が施されたフィルタ後距離画像Fに基づいて生成したフィルタ後3次元点群F、
 (2)視覚センサB,12Bが取得し、自己領域フィルタ処理部103による自己領域フィルタ処理が施されたフィルタ後距離画像Bに基づいて生成したフィルタ後3次元点群B、
 (3)視覚センサL,12Lが取得し、自己領域フィルタ処理部103による自己領域フィルタ処理が施されたフィルタ後距離画像Lに基づいて生成したフィルタ後3次元点群L、
 (4)視覚センサR,12Rが取得し、自己領域フィルタ処理部103による自己領域フィルタ処理が施されたフィルタ後距離画像Rに基づいて生成したフィルタ後3次元点群R、
 3次元点群(PC:Point Cloud)生成部102は、図26に示すように、上記の4つのフィルタ後3次元点群を生成して、次段の3次元点群(PC)合成部104に入力する。
 3次元点群(PC)合成部104は、3次元点群(PC:Point Cloud)生成部102からフィルタ後3次元点群F~Rを入力する。
 フィルタ後3次元点群F~Rは、前述したように、ロボットの脚部等、ロボット自身の構造部の3次元点群を除去した3次元点群データである。
 3次元点群(PC)合成部104は入力したこれら4つのフィルタ後3次元点群F~Rを合成して1つのフィルタ後3次元点群合成データを生成する。
 図26に3次元点群(PC)合成部104の出力として示すフィルタ後3次元点群(F,B,L,R)合成データである。
 3次元点群(PC)合成部104から出力されるフィルタ後3次元点群(F,B,L,R)合成データは、図1に示す4脚ロボット10の前後左右に装着された4つの視覚センサF,12F~視覚センサR,12Rの出力である4枚の距離画像F~Rに基づいて生成された3次元点群F~Rから、ロボットの構造部に関する3次元点群を除去(フィルタ処理)したフィルタ後3次元点群F~Rの合成データであり、4脚ロボット10の前後左右の周囲にあるロボット構造部を除く障害物等のオブジェクトの3次元位置や3次元形状を点群で示したデータとなる。
 なお、前述したように、図1に示す4つの視覚センサF,12F~視覚センサR,12Rは、全て斜め下方向を向いており、フィルタ後距離画像合成データは、4脚ロボット10のカメラ位置の水平面より下にある周囲オブジェクトの距離を示したデータとなる。フィルタ後距離画像合成データは、走行面の凹凸や傾斜等の3次元形状を含むものとなる。
 ただし、ロボットの脚等のロボット構造体はフィルタ処理により除去されているので含まれていない。
 3次元点群(PC)合成部104が生成したフィルタ後3次元点群(F,B,L,R)合成データは、地図画像生成部105に入力される。
 地図画像生成部105は、3次元点群(PC)合成部104が生成したフィルタ後3次元点群(F,B,L,R)合成データを利用して、ロボット周囲のオブジェクトの走行面を含む3次元形状を示す地図データを生成する。
 図26に地図画像生成部105の出力として示す3次元地図データ(または2.5次元地図データ)である。
 地図画像生成部105が生成する地図データは、様々なタイプの3次元地図データ、あるいは2.5次元地図データである。
 具体的には、例えばハイトマップ(Height Map)のような2.5次元地図データである。
 前述したように、ハイトマップ(Height Map)とは、例えばxy水平面の2次元座標(x,y)の代表座標位置に高さデータ(z)を対応付けて記録した地図データである。
 地図画像生成部105が生成した3次元地図データ(例えばハイトマップ)は、次の時系列地図画像統合部106に入力される。
 時系列地図画像統合部106は、地図画像生成部105が生成した3次元地図データ(例えばハイトマップ)の時系列データの統合処理を行う。
 具体的には、例えば、以下の処理を行う。
 (1)4つの視覚センサF~R,12F~Rが時間t1において撮影した4枚の距離画像F~R(t1)に基いて、地図画像生成部105が生成したハイトマップ等の3次元地図データ(t1)と、
 (2)4つの視覚センサF~R,12F~Rが時間t2において撮影した4枚の距離画像F~R(t2)に基いて、地図画像生成部105が生成したハイトマップ等の3次元地図データ(t2)と、
 (3)4つの視覚センサF~R,12F~Rが時間t3において撮影した4枚の距離画像F~R(t3)に基いて、地図画像生成部105が生成したハイトマップ等の3次元地図データ(t3)、
 時系列地図画像統合部106は、これら異なる時間(t1~t3)に撮影された距離画像に基いて生成された複数の時系列3次元地図データ(t1)~(t3)を統合して、1枚の時系列地図統合地図データ(例えば統合ハイトマップ)を生成する。
 つまり、3次元地図データ(t1)から、時系列地図統合地図データ(t1)を生成し、3次元地図データ(t2)が時系列地図画像統合部106に入力されると、時系列地図統合地図データ(t1~t2)を生成する。さらに、3次元地図データ(t3)が時系列地図画像統合部106に入力されると、時系列地図統合地図データ(t1~t3)を生成する。
 なお、前述したように複数枚の異なる時間の撮影データに基づいて生成される複数の時系列3次元地図データ(t1)~(t3)の各々には重複する領域があり、また1枚の地図データにのみ含まれる領域もある。
 このように時系列地図画像統合部106は、複数の異なるタイミングで撮影された距離画像に基いて生成される複数数の時系列3次元地図データ(t1)~(t3)を統合することで、ロボット周囲のカメラ撮影範囲にあるほぼ全てのオブジェクトの3次元形状を取得可能な1枚の時系列地図統合地図データ(統合ハイトマップ)を生成する。
 時系列地図画像統合部106が生成した1枚の時系列地図統合地図データは、ロボット制御部107に出力される。
 時系列地図画像統合部106が生成した1枚の時系列地図統合地図データは、ロボット周囲のカメラ撮影範囲にあるほぼ全てのオブジェクトの3次元形状を取得可能としたハイトマップ等の2.5次元画像データである。
 ただし、フィルタ処理されたロボットの脚部などのロボット自身の構造体のオブジェクト位置情報は含まれていない。すなわち、真の障害物となるオブジェクトに関する情報からなるハイトマップ等の2.5次元画像データである。
 ロボット制御部107は、時系列地図画像統合部106が生成した1枚の時系列地図統合地図データを参照して、障害物となり得るオブジェクトの位置を確認し、これらの障害物に衝突や接触しないルートを走行ルートとして決定して脚部を移動させて安全な走行を行う。
 なお、制御対象となるロボットが、例えば先に図3を参照して説明したような腕部の動作により、様々な作業を行うロボットの場合は、ロボット制御部107は、時系列地図画像統合部106が生成した1枚の時系列地図統合地図データを参照して、腕部の軌道を決定して安全な作業を実行する。
 すなわち、ロボット制御部107は、時系列地図画像統合部106が生成した1枚の時系列地図統合地図データを参照して、障害物となり得るオブジェクトの位置を確認し、これらの障害物に衝突や接触しないような腕部の軌道を決定して、腕部を移動させて安全な作業を行う。
 このように、本開示のロボット装置は、自装置の一部がセンサによって検出された場合でも、自装置領域を障害物として認識されないように自装置のオブジェクト情報をセンサ検出情報から除去するフィルタ処理を実行し、フィルタ後のデータに基づいて生成した地図データを利用してロボットを制御する。
 このような処理を行うことで、自装置の一部を障害物として誤認識することなく、正しいロボット制御を行うことが可能となる。
  [7.本開示のロボット装置等のハードウェア構成例について]
 次に、本開示のロボット装置等のハードウェア構成例について説明する。
 図27は、本開示のロボット500の一構成例を示すブロック図である。
 図27に示すように、ロボット500は、データ処理部510、記憶部521、メモリ522、表示部530、センサIF540、センサ541、駆動制御部550、駆動部551、通信部560、バス570を有する。
 データ処理部310は例えば複数のコアCPU511a,bを有するマルチコアCPUであり、記憶部521やメモリ522に格納されたプログラムに従って上述した各実施例に従ったデータ処理や、その他の様々なデータ処理を実行する。
 記憶部521やメモリ522には、データ処理部310において実行するプログラム、ロボット500の走行ルート情報など、走行に必要となる様々な情報が格納される。
 また、視覚センサ等のセンサ541が取得したセンサ検出情報、例えば距離画像や、データ処理部510において生成した3次元点群(PC)データの格納領域としても利用される。
 表示部530は、例えばロボット500の動作状態等を示す各種情報の表示や、進行方向の撮影画像の表示部として利用される。また、タッチパネル形式としてユーザによる指示データの入力を可能な構成としてもよい。
 センサIF540は、視覚センサ等のセンサ541の検出情報を入力し、データ処理部510に出力する。あるいは、センサ検出情報を記憶部521やメモリ522に格納する。
 センサ541は、上述した実施例において説明した視覚センサ等によって構成される。例えば距離画像を撮影するカメラなどである。
 駆動制御部550は、モータ等によって構成される駆動部551の制御を行い、ロボット500を動作させて移動させる。
 通信部560は、通信ネットワークを介して外部装置、例えばクラウド側のサーバ600との通信を行う。サーバ600は、ロボット500に対して目的地や目的地に向かうためのルート情報などを通知する。
 バス570は、各構成部間のデータ転送路として利用される。
 なお、サーバ600は、必須構成ではなく、ロボット500内に目的地や目的地に向かうためのルート情報などを記憶し、ロボット500単独で処理を行う構成としてもよい。
 また、逆に、サーバ600側で上述した実施例に従ったデータ処理を実行してロボット500の制御情報を決定する構成としてもよい。
 例えば図28に示すように、ロボット500とサーバ600を通信ネットワークで結び、ロボット500に装着した視覚センサの検出情報である画像、具体的には例えば距離画像をサーバ600に送信する。
 サーバ600は、ロボット500から、画像を受信し、上述した実施例に従ったデータ処理を実行して、ロボット500の制御情報を生成してロボット500に送信する。
 ロボット500は、サーバ600かから受信した制御情報に従って動作する。
 なお、このようにデータ処理を行うサーバ600は、例えば図29に示すようなハードウェア構成を有する。
 図29に示すように、サーバ600は、データ処理部610、通信部621、記憶部622、メモリ623、表示部624、バス630を有する。
 データ処理部610は例えば複数のコアCPU611a,bを有するマルチコアCPUであり、記憶部622やメモリ623に格納されたプログラムに従って上述した各実施例に従ったデータ処理や、その他の様々なデータ処理を実行する。
 通信部621は、通信ネットワークを介してロボット500との通信を行う。
 例えば、ロボット500の視覚センサ等が取得したセンサ検出情報、例えば距離画像を受信する。また、サーバ600が上述した実施例に従って生成した制御情報をロボット500に送信する。また、ロボット500に対して目的地や目的地に向かうためのルート情報などを送信する処理にも用いられる。
 記憶部622やメモリ623には、データ処理部610において実行するプログラム、ロボット500の走行ルート情報など、走行に必要となる様々な情報が格納される。
 また、ロボット500の視覚センサ等が取得したセンサ検出情報、例えば距離画像を、通信部621を介して受信した場合のこれらの受信データの格納領域としても利用される。また、データ処理部610において生成した3次元点群(PC)データの格納領域としても利用される。
 表示部624は、例えばロボット500の動作状態等を示す各種情報の表示や、進行方向の撮影画像の表示部として利用される。また、タッチパネル形式としてユーザによる指示データの入力を可能な構成としてもよい。
 バス630は、各構成部間のデータ転送路として利用される。
  [8.本開示の構成のまとめ]
 以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
 なお、本明細書において開示した技術は、以下のような構成をとることができる。
 (1) 視覚センサの検出情報を解析してロボット装置の動作を制御するデータ処理部を有し、
 前記データ処理部は、
 前記視覚センサの検出情報に含まれるオブジェクト情報から、前記ロボット装置の構成部に対応するオブジェクト情報を除去する自己領域フィルタ処理部を有し、
 前記自己領域フィルタ処理部は、
 前記ロボット装置の可動部に対応する可変フィルタ領域を算出する可変フィルタ領域算出部と、
 前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去するフィルタ処理部を有し、
 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出するロボット装置。
 (2) 前記ロボット装置は、さらに、
 前記自己領域フィルタ処理部において、前記ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成する地図画像生成部と、
 前記地図画像生成部の生成した地図データに基づいて前記ロボット装置を制御するロボット制御部を有する(1)に記載のロボット装置。
 (3) 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部の動作速度が大であるほど大きな可変フィルタ領域を算出する(1)または(2)に記載のロボット装置。
 (4) 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部の回動速度が大であるほど大きな可変フィルタ領域を算出する(1)~(3)いずれかに記載のロボット装置。
 (5) 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部の直動速度が大であるほど大きな可変フィルタ領域を算出する(1)~(4)いずれかに記載のロボット装置。
 (6) 前記ロボット装置は、
 前記視覚センサからの入力情報に基く3次元点群データを生成する3次元点群生成部を有し、
 前記自己領域フィルタ処理部は、
 前記3次元点群生成部から入力する3次元点群データから、前記ロボット装置の構成部に対応するロボットの構成部に対応する3次元点群データを除去する処理を実行する(1)~(5)いずれかに記載のロボット装置。
 (7) 前記視覚センサは距離画像を前記3次元点群生成部に入力し、
 前記3次元点群生成部は、
 前記視覚センサから入力する距離画像に基く3次元点群データを生成する(6)に記載のロボット装置。
 (8) 前記視覚センサは距離画像を前記自己領域フィルタ処理部に入力し、
 前記自己領域フィルタ処理部は、
 前記視覚センサから入力する距離画像から、前記ロボット装置の構成部に対応するロボットの構成部に対応するデータを除去する処理を実行する(1)~(7)いずれかに記載のロボット装置。
 (9) 前記自己領域フィルタ処理部は、
 可変フィルタ領域算出対象の可動部の動作速度に応じて異なる可変パディングを算出する可変パディング算出部と、
 前記可変バディング算出部が算出した可変パディングによって規定される可変フィルタ領域を算出する可変フィルタ領域算出部と、
 前記可変領域算出部が算出した可変フィルタ領域を利用して、前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去するフィルタ処理部を有する(1)~(8)いずれかに記載のロボット装置。
 (10) 前記可変パディング算出部は、
 可変フィルタ領域算出対象の可動部が回転関節の駆動により回転駆動する構成である場合、
 回転速度が大きいほど大きな可変パディングを算出する(9)に記載のロボット装置。
 (11) 前記可変パディング算出部は、
 可変フィルタ領域算出対象の可動部が直動関節の駆動により直動する構成である場合、
 直動速度が大きいほど大きな可変パディングを算出する(9)に記載のロボット装置。
 (12) 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部の動作領域と非動作領域各々に対して、各々異なる広がりを有する可変フィルタ領域を算出する(1)~(11)いずれかに記載のロボット装置。
 (13) 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部の動作方向と非動作方向各々に対して、各々異なる広がりを有する可変フィルタ領域を算出する(1)~(12)いずれかに記載のロボット装置。
 (14) 前記可変フィルタ領域算出部は、
 可変フィルタ領域算出対象の可動部に対して、予め固定された固定パディングと、前記可動部の動作速度に応じて変化する可変バディングの2つのパディングによって規定される可変フィルタ領域を算出する(1)~(13)いずれかに記載のロボット装置。
 (15) ロボット装置の動作制御を実行するロボット制御方法であり、
 自己領域フィルタ処理部が、視覚センサの検出情報に含まれるオブジェクト情報から、前記ロボット装置の構成部に対応するオブジェクト情報を除去する自己領域フィルタ処理ステップと、
 地図画像生成部が、前記ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成する地図データ生成ステップと、
 ロボット制御部が、前記地図データに基づいて前記ロボット装置を制御するロボット制御ステップを有し、
 前記自己領域フィルタ処理ステップにおいて、
 前記ロボット装置の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出する可変フィルタ領域算出処理と、
 前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去する処理を実行するロボット制御方法。
 なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
 また、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 以上、説明したように、本開示の一実施例の構成によれば、センサの検出情報に基づいて障害物の識別を行うロボット装置において、ロボット自身の脚部や腕部などを障害物として誤認識することなく、正しい障害物識別による高精度なロボット制御が実現される。
 具体的には、例えば、自己領域フィルタ処理部が、視覚センサの検出情報に含まれるオブジェクト情報から、ロボット装置の構成部に対応するオブジェクト情報を除去し、地図画像生成部が、ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成し、ロボット制御部が、生成された地図データに基づいてロボット装置を制御する。自己領域フィルタ処理部は、ロボット装置の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出し、視覚センサの検出情報から、可変フィルタ領域内にあるオブジェクト情報を除去する処理を実行する。
 本構成により、センサの検出情報に基づいて障害物の識別を行うロボット装置において、ロボット自身の脚部や腕部などを障害物として誤認識することなく、正しい障害物識別による高精度なロボット制御が実現される。
  10 4脚ロボット
  11 本体部
  12 視覚センサ
  13 脚部
  14 回転関節部
  15 直動関節部
  16 車輪部
  17 回転関節部
  18 接地部
  20 2脚ロボット
  21 本体部
  22 視覚センサ
  23 脚部
  24,25 回転関節部
  26 接地部
  27 腕部
  28,29 回転関節部
  30 把持部
 100 データ処理部
 101 ロボット情報取得部
 102 3次元点群(PC:Point Cloud)生成部
 103 自己領域フィルタ処理部
 104 3次元点群(PC)合成部
 105 地図画像生成部
 106 時系列地図画像統合部
 107 ロボット制御部
 121 可変パディング算出部
 122 可変フィルタ領域算出部
 123 3次元点群フィルタ処理部
 500 ロボット
 510 データ処理部
 521 記憶部
 522 メモリ
 530 表示部
 540 センサIF
 541 センサ
 550 駆動制御部
 551 駆動部
 560 通信部
 570 バス
 600 サーバ
 610 データ処理部
 621 通信部
 622 記憶部
 623 メモリ
 624 表示部
 630 バス

Claims (15)

  1.  視覚センサの検出情報を解析してロボット装置の動作を制御するデータ処理部を有し、
     前記データ処理部は、
     前記視覚センサの検出情報に含まれるオブジェクト情報から、前記ロボット装置の構成部に対応するオブジェクト情報を除去する自己領域フィルタ処理部を有し、
     前記自己領域フィルタ処理部は、
     前記ロボット装置の可動部に対応する可変フィルタ領域を算出する可変フィルタ領域算出部と、
     前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去するフィルタ処理部を有し、
     前記可変フィルタ領域算出部は、
     可変フィルタ領域算出対象の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出するロボット装置。
  2.  前記ロボット装置は、さらに、
     前記自己領域フィルタ処理部において、前記ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成する地図画像生成部と、
     前記地図画像生成部の生成した地図データに基づいて前記ロボット装置を制御するロボット制御部を有する請求項1に記載のロボット装置。
  3.  前記可変フィルタ領域算出部は、
     可変フィルタ領域算出対象の可動部の動作速度が大であるほど大きな可変フィルタ領域を算出する請求項1に記載のロボット装置。
  4.  前記可変フィルタ領域算出部は、
     可変フィルタ領域算出対象の可動部の回動速度が大であるほど大きな可変フィルタ領域を算出する請求項1に記載のロボット装置。
  5.  前記可変フィルタ領域算出部は、
     可変フィルタ領域算出対象の可動部の直動速度が大であるほど大きな可変フィルタ領域を算出する請求項1に記載のロボット装置。
  6.  前記ロボット装置は、
     前記視覚センサからの入力情報に基く3次元点群データを生成する3次元点群生成部を有し、
     前記自己領域フィルタ処理部は、
     前記3次元点群生成部から入力する3次元点群データから、前記ロボット装置の構成部に対応するロボットの構成部に対応する3次元点群データを除去する処理を実行する請求項1に記載のロボット装置。
  7.  前記視覚センサは距離画像を前記3次元点群生成部に入力し、
     前記3次元点群生成部は、
     前記視覚センサから入力する距離画像に基く3次元点群データを生成する請求項6に記載のロボット装置。
  8.  前記視覚センサは距離画像を前記自己領域フィルタ処理部に入力し、
     前記自己領域フィルタ処理部は、
     前記視覚センサから入力する距離画像から、前記ロボット装置の構成部に対応するロボットの構成部に対応するデータを除去する処理を実行する請求項1に記載のロボット装置。
  9.  前記自己領域フィルタ処理部は、
     可変フィルタ領域算出対象の可動部の動作速度に応じて異なる可変パディングを算出する可変パディング算出部と、
     前記可変バディング算出部が算出した可変パディングによって規定される可変フィルタ領域を算出する可変フィルタ領域算出部と、
     前記可変領域算出部が算出した可変フィルタ領域を利用して、前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去するフィルタ処理部を有する請求項1に記載のロボット装置。
  10.  前記可変パディング算出部は、
     可変フィルタ領域算出対象の可動部が回転関節の駆動により回転駆動する構成である場合、
     回転速度が大きいほど大きな可変パディングを算出する請求項9に記載のロボット装置。
  11.  前記可変パディング算出部は、
     可変フィルタ領域算出対象の可動部が直動関節の駆動により直動する構成である場合、
     直動速度が大きいほど大きな可変パディングを算出する請求項9に記載のロボット装置。
  12.  前記可変フィルタ領域算出部は、
     可変フィルタ領域算出対象の可動部の動作領域と非動作領域各々に対して、各々異なる広がりを有する可変フィルタ領域を算出する請求項1に記載のロボット装置。
  13.  前記可変フィルタ領域算出部は、
     可変フィルタ領域算出対象の可動部の動作方向と非動作方向各々に対して、各々異なる広がりを有する可変フィルタ領域を算出する請求項1に記載のロボット装置。
  14.  前記可変フィルタ領域算出部は、
     可変フィルタ領域算出対象の可動部に対して、予め固定された固定パディングと、前記可動部の動作速度に応じて変化する可変バディングの2つのパディングによって規定される可変フィルタ領域を算出する請求項1に記載のロボット装置。
  15.  ロボット装置の動作制御を実行するロボット制御方法であり、
     自己領域フィルタ処理部が、視覚センサの検出情報に含まれるオブジェクト情報から、前記ロボット装置の構成部に対応するオブジェクト情報を除去する自己領域フィルタ処理ステップと、
     地図画像生成部が、前記ロボット装置の構成部に対応するオブジェクト情報が除去されたオブジェクト情報に基く地図データを生成する地図データ生成ステップと、
     ロボット制御部が、前記地図データに基づいて前記ロボット装置を制御するロボット制御ステップを有し、
     前記自己領域フィルタ処理ステップにおいて、
     前記ロボット装置の可動部の動作速度に応じて異なる大きさの可変フィルタ領域を算出する可変フィルタ領域算出処理と、
     前記視覚センサの検出情報から、前記可変フィルタ領域内にあるオブジェクト情報を除去する処理を実行するロボット制御方法。
PCT/JP2022/014836 2021-09-15 2022-03-28 ロボット装置、およびロボット制御方法 WO2023042464A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202280061208.7A CN117940258A (zh) 2021-09-15 2022-03-28 机器人装置和机器人控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-149972 2021-09-15
JP2021149972 2021-09-15

Publications (1)

Publication Number Publication Date
WO2023042464A1 true WO2023042464A1 (ja) 2023-03-23

Family

ID=85601981

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/014836 WO2023042464A1 (ja) 2021-09-15 2022-03-28 ロボット装置、およびロボット制御方法

Country Status (2)

Country Link
CN (1) CN117940258A (ja)
WO (1) WO2023042464A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01183395A (ja) 1988-01-09 1989-07-21 Toyoda Mach Works Ltd 視覚装置を備えたロボット
JP2008006519A (ja) * 2006-06-27 2008-01-17 Toyota Motor Corp ロボット装置及びロボット装置の制御方法
JP2008302496A (ja) * 2006-07-04 2008-12-18 Panasonic Corp ロボットアームの制御装置及び制御方法、ロボット、及びロボットアームの制御プログラム
JP2011212818A (ja) 2010-04-01 2011-10-27 Toyota Motor Corp 環境認識ロボット
US20200117198A1 (en) * 2018-10-12 2020-04-16 Boston Dynamics, Inc. Terrain Aware Step Planning System
CN112051797A (zh) * 2020-09-07 2020-12-08 腾讯科技(深圳)有限公司 足式机器人运动控制方法、装置、设备及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01183395A (ja) 1988-01-09 1989-07-21 Toyoda Mach Works Ltd 視覚装置を備えたロボット
JP2008006519A (ja) * 2006-06-27 2008-01-17 Toyota Motor Corp ロボット装置及びロボット装置の制御方法
JP4961860B2 (ja) 2006-06-27 2012-06-27 トヨタ自動車株式会社 ロボット装置及びロボット装置の制御方法
JP2008302496A (ja) * 2006-07-04 2008-12-18 Panasonic Corp ロボットアームの制御装置及び制御方法、ロボット、及びロボットアームの制御プログラム
JP2011212818A (ja) 2010-04-01 2011-10-27 Toyota Motor Corp 環境認識ロボット
US20200117198A1 (en) * 2018-10-12 2020-04-16 Boston Dynamics, Inc. Terrain Aware Step Planning System
CN112051797A (zh) * 2020-09-07 2020-12-08 腾讯科技(深圳)有限公司 足式机器人运动控制方法、装置、设备及介质

Also Published As

Publication number Publication date
CN117940258A (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
JP7165821B2 (ja) ロボットの動きにおけるカーペットによるドリフトの制御方法、プログラムおよび掃除ロボット
US8515612B2 (en) Route planning method, route planning device and autonomous mobile device
Campbell et al. A robust visual odometry and precipice detection system using consumer-grade monocular vision
US10166676B1 (en) Kinesthetic teaching of grasp parameters for grasping of objects by a grasping end effector of a robot
JP2769947B2 (ja) マニピュレータの位置・姿勢制御方法
JP7259020B2 (ja) ウェイポイントマッチングを用いた自律マップトラバーサル
US20220388170A1 (en) Alternate Route Finding for Waypoint-based Navigation Maps
JP6761194B2 (ja) ロボットシステム、ロボット制御方法、ロボットコントローラ及びプログラム
JP2009096335A (ja) 脚型ロボット
JP7209861B2 (ja) ロボット車両の積荷フットプリントの協働決定
US20210323618A1 (en) Identifying Stairs from Footfalls
Sokolov et al. Analysis of ROS-based Visual and Lidar Odometry for a Teleoperated Crawler-type Robot in Indoor Environment.
CN117795444A (zh) 动态环境中导航的定向探索
CN112706158A (zh) 基于视觉和惯导定位的工业人机交互系统及方法
US11628573B2 (en) Unmanned transfer robot system
CN114022824A (zh) 一种面向狭窄环境的四足机器人运动规划方法
KR20230137334A (ko) 동적 사이트들에서의 로봇 자율성을 위한 시맨틱 모델들
Navarro et al. 3d contour following for a cylindrical end-effector using capacitive proximity sensors
Sharma et al. A framework for robot motion planning with sensor constraints
JP2010061483A (ja) 自走移動体及び自走移動体の目的位置設定方法
WO2023042464A1 (ja) ロボット装置、およびロボット制御方法
WO2022153842A1 (ja) 移動装置、および移動装置制御方法
KR20070036357A (ko) 단일 카메라 기반 포즈인식이 가능한 이동로봇 및 그 방법
US20240058943A1 (en) Moving apparatus and moving apparatus control method
WO2023166868A1 (ja) 移動型撮像ロボットシステム及びその制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22869616

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022869616

Country of ref document: EP

Effective date: 20240311