JP2007219645A - Data processing method, data processor, and program - Google Patents
Data processing method, data processor, and program Download PDFInfo
- Publication number
- JP2007219645A JP2007219645A JP2006036899A JP2006036899A JP2007219645A JP 2007219645 A JP2007219645 A JP 2007219645A JP 2006036899 A JP2006036899 A JP 2006036899A JP 2006036899 A JP2006036899 A JP 2006036899A JP 2007219645 A JP2007219645 A JP 2007219645A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bias
- map data
- map
- bias value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 238000003384 imaging method Methods 0.000 claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 34
- 230000033001 locomotion Effects 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 54
- 230000008569 process Effects 0.000 claims description 37
- 238000012854 evaluation process Methods 0.000 claims description 23
- 102220111708 rs77809780 Human genes 0.000 abstract description 4
- 102220182402 rs80133178 Human genes 0.000 abstract description 4
- 238000001514 detection method Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 18
- 230000009471 action Effects 0.000 description 12
- 238000007781 pre-processing Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 9
- 238000005259 measurement Methods 0.000 description 8
- 210000002414 leg Anatomy 0.000 description 7
- 210000004394 hip joint Anatomy 0.000 description 6
- 210000002683 foot Anatomy 0.000 description 5
- 101100018027 Pisum sativum HSP70 gene Proteins 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008451 emotion Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 102100036848 C-C motif chemokine 20 Human genes 0.000 description 2
- 102100035353 Cyclin-dependent kinase 2-associated protein 1 Human genes 0.000 description 2
- 210000000544 articulatio talocruralis Anatomy 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000008921 facial expression Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 210000000323 shoulder joint Anatomy 0.000 description 2
- 210000001364 upper extremity Anatomy 0.000 description 2
- CIWBSHSKHKDKBQ-JLAZNSOCSA-N Ascorbic acid Chemical compound OC[C@H](O)[C@H]1OC(=O)C(O)=C1O CIWBSHSKHKDKBQ-JLAZNSOCSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 101000713099 Homo sapiens C-C motif chemokine 20 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 210000002310 elbow joint Anatomy 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 210000001624 hip Anatomy 0.000 description 1
- 210000000629 knee joint Anatomy 0.000 description 1
- 210000003141 lower extremity Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
- 210000003857 wrist joint Anatomy 0.000 description 1
Images
Abstract
Description
本発明は、移動体の動き量に対するバイアス値を特定するデータ処理方法、データ処理装置およびプログラムに関する。 The present invention relates to a data processing method, a data processing apparatus, and a program for specifying a bias value with respect to a moving amount of a moving body.
例えば、自律型ロボットは、産業用ロボットと異なり、周囲の外部状態やロボット自身の内部状態に応じて自律的に動作を行うことのできるロボットである。自律型ロボットは、歩行動作では、外部の障害物を検出して障害物を回避するような行動経路を計画することができなくてはならない。従来のロボットのなかには、自身のおかれた環境の地図データータを基に行動経路を決定できるものが提案されている。 For example, unlike an industrial robot, an autonomous robot is a robot that can operate autonomously according to the surrounding external state or the internal state of the robot itself. An autonomous robot must be able to plan an action path that detects an external obstacle and avoids the obstacle in walking motion. Some conventional robots have been proposed that can determine the action route based on the map data of their environment.
このようなロボットは、予め指定された地図データの他、自らがカメラなどの撮像結果を基に地図データを生成および更新する。
ところで、このようなロボットは、例えば、複数の足の長さに僅かな違いがあると、CPUの制御信号によってアクチュエータを制御しても、ロボットの実際の動き量と想定した動き量との間に違いが生じる。
このような場合に、ロボットの動き量のバイアス値を自動的に特定し、その特定したバイアス値を基に、ロボットの動きを制御するシステムがある。
By the way, in such a robot, for example, if there is a slight difference in the lengths of a plurality of legs, even if the actuator is controlled by a CPU control signal, the actual movement amount of the robot is assumed to be between the assumed movement amount. There is a difference.
In such a case, there is a system that automatically specifies a bias value of the amount of movement of the robot and controls the movement of the robot based on the specified bias value.
しかしながら、上述した従来のシステムでは、演算量が非常に多く、システムが大規模化すると共に、リアルタイム制御が難しいという問題がある。 However, the above-described conventional system has a problem that the amount of calculation is very large, the system becomes large-scale, and real-time control is difficult.
本発明は上述した従来技術の問題点を解決するために、従来に比べて少ない処理負荷で、移動体の動き量に対するバイアス値を自動的に特定できるデータ処理方法、データ処理装置およびプログラムを提供することを目的とする。 The present invention provides a data processing method, data processing apparatus, and program capable of automatically specifying a bias value with respect to the amount of movement of a moving object with a smaller processing load than conventional methods in order to solve the above-described problems of the prior art. The purpose is to do.
上述した従来技術の問題点を解決し、上述した目的を達成するため、第1の観点の発明のデータ処理方法は、移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する第1の工程と、前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の工程で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の工程と、前記第2の工程で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の工程とを有する。 In order to solve the above-described problems of the prior art and achieve the above-described object, the data processing method according to the first aspect of the present invention provides a plurality of different bias values defined in advance with respect to the amount of movement of the moving object. A first step of generating position data indicating the position of the moving body based on the bias value and the measured value of the amount of movement, and a plurality of maps associated with each of the plurality of bias values A second step of updating the data on the assumption that imaging data is obtained at the position indicated by the position data generated in the first step with respect to the bias value corresponding to the map data; And a third step of performing a predetermined evaluation process based on the plurality of map data updated in the step and identifying one optimum bias value among the plurality of bias values.
第2の観点の発明のデータ処理装置は、移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する位置生成手段と、前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記位置生成手段で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う地図更新手段と、前記地図更新手段が更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定するバイアス値特定手段とを有する。 According to a second aspect of the present invention, there is provided the data processing device, wherein for each of a plurality of different bias values defined in advance with respect to the amount of movement of the moving body, the movement Position generating means for generating position data indicating the position of the body, and updating of the plurality of map data associated with each of the plurality of bias values by the position generating means for the bias value corresponding to the map data. A plurality of map updating means that performs imaging assuming that imaging data has been obtained at the position indicated by the generated position data, and a predetermined evaluation process based on the plurality of map data updated by the map updating means. Bias value specifying means for specifying an optimum one of the bias values.
第3の観点の発明のプログラムは、コンピュータが実行するプログラムであって、移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する第1の手順と、前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の手順で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の手順と、前記第2の手順で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の手順とを前記コンピュータに実行させる。 A program according to a third aspect of the invention is a program executed by a computer, and for each of a plurality of different bias values defined in advance with respect to the amount of movement of a moving object, the bias value and the measured value of the amount of movement. And updating the plurality of map data associated with each of the plurality of bias values based on the first procedure for generating position data indicating the position of the mobile object, and corresponding to the map data Based on the second procedure performed on the assumption that imaging data was obtained at the position indicated by the position data generated in the first procedure with respect to the bias value, and the plurality of map data updated in the second procedure A predetermined evaluation process is performed to cause the computer to execute a third procedure for specifying an optimum one of the plurality of bias values.
本発明によれば、従来に比べて少ない処理負荷で、移動体の動き量に対するバイアス値を自動的に特定できるデータ処理方法、データ処理装置およびプログラムを提供することができる。 According to the present invention, it is possible to provide a data processing method, a data processing apparatus, and a program that can automatically specify a bias value for the amount of movement of a moving object with a smaller processing load than in the past.
以下、本発明の実施形態に係わるロボットについて説明する。
<第1実施形態>
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
本実施形態において、ロボット1が本発明の移動体の一例である。また、バイアス値bias_iが本発明の複数のバイアス値の一例であり、地図データMiが本発明の地図データの一例である。また、本実施形態の第1〜第3の評価処理が、本発明の評価処理の一例である。
また、図1に示すプログラムPRGが本発明のプログラムの一例である。
Hereinafter, a robot according to an embodiment of the present invention will be described.
<First Embodiment>
First, the correspondence between the components of the present embodiment and the components of the present invention will be described.
In the present embodiment, the
Further, the program PRG shown in FIG. 1 is an example of the program of the present invention.
図1は、本発明の実施形態のロボット1の機能ブロック図である。
図1に示すように、ロボット1は、例えば、CCD(Charge-Coupled Devices)カメラ10R,10L、アクチュエータ群16、センサ群17、メモリ18およびCPU19を有する。
[CCDカメラ10R,10L]
CCDカメラ10R,10Lは、それぞれ撮像結果に応じた右画像データS10Rおよび左画像データS10LをCPU19に出力する。
FIG. 1 is a functional block diagram of a
As shown in FIG. 1, the
[
The
[アクチュエータ群16]
アクチュエータ群16は、ロボット1の動きを駆動する各種のアクチュエータである。
アクチュエータ群16は、CPU19からの制御信号S15によって駆動される。
センサ群17は、ロボット1の所定箇所に設置された赤外線センサなどの非接触型センサや接触型センサなどである。
[Actuator group 16]
The
The
The
[センサ群17]
センサ群17は、検出信号S17をCPU19に出力する。
センサ群17は、アクチュエータ群16のアクチュエータに備えられたエンコーダなどを含む。
[Sensor group 17]
The
The
[メモリ18]
メモリ18は、CPU19が実行するプログラムPRG、並びに地図データMiなどのデータを記憶する。
[Memory 18]
The
[CPU19]
CPU19は、メモリ18から読み出したプログラムPRGに基づいて以下に示す処理を実行する。
CPU19は、CCDカメラ10R,10Lから入力した右画像データS10Rと左画像データS10Lの視差情報(disparity data)(距離情報)を計算し、カラー画像データ(YUV:輝度Y、UV色差)及び視差画像データ(YDR:輝度Y、視差D、信頼度R)をフレーム毎に左右交互に算出する。
ここで、視差とは、空間中のある点が左側カメラ及び右側カメラに写像される点の違いを示し、そのカメラからの距離に応じて変化するものである。
CPU19は、後述するように、上述した画像データを用いて、ロボット1の動き量のバイアス値を特定し、そのバイアス値を用いてアクチュエータ群16等を制御する。
[CPU 19]
The
The
Here, the parallax indicates a difference between points where a certain point in the space is mapped to the left camera and the right camera, and changes according to the distance from the camera.
As will be described later, the
以下、図1に示すロボット1の構成をさらに詳細に説明する。
図2に示すように、ロボット1は、例えば、2足歩行タイプであり、日常生活上の様々な場面における人的活動を支援する実用ロボットである。
ロボット1は、内部状態(怒り、悲しみ、喜び、楽しみ等)に応じて行動できるほか、人間が行う基本的な動作を表出できるエンターテインメントロボットである。ロボットは、3次元環境クラスデータを生成し、これを基に行動経路を決定する。
Hereinafter, the configuration of the
As shown in FIG. 2, the
The
図2に示すように、ロボット1は、体幹部ユニット202の所定の位置に頭部ユニット203が連結されるとともに、左右2つの腕部ユニット204R/Lと、左右2つの脚部ユニット205R/Lが連結されて構成されている。
As shown in FIG. 2, the
図2に示すロボット1が具備する関節自由度構成を図3に模式的に示す。
頭部ユニット203を支持する首関節は、首関節ヨー軸101と、首関節ピッチ軸102と、首関節ロール軸103という3自由度を有している。
A joint degree-of-freedom configuration of the
The neck joint that supports the
また、上肢を構成する各々の腕部ユニット204R/Lは、肩関節ピッチ軸107と、肩関節ロール軸108と、上腕ヨー軸109と、肘関節ピッチ軸110と、前腕ヨー軸111と、手首関節ピッチ軸112と、手首関節ロール軸113と、手部114とで構成される。
手部114は、実際には、複数本の指を含む多関節・多自由度構造体である。ただし、手部114の動作は、ロボット1の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書では簡単のため、ゼロ自由度と仮定する。したがって、各腕部は7自由度を有するとする。
また、体幹部ユニット202は、体幹ピッチ軸104と、体幹ロール軸105と、体幹ヨー軸106という3自由度を有する。
Each
The
The
また、下肢を構成する各々の脚部ユニット205R/Lは、股関節ヨー軸115と、股関節ピッチ軸116と、股関節ロール軸117と、膝関節ピッチ軸118と、足首関節ピッチ軸119と、足首関節ロール軸120と、足底121とで構成される。
本明細書中では、股関節ピッチ軸116と股関節ロール軸117の交点は、ロボット1の股関節位置を定義する。人体の足底121は、実際には多関節・多自由度の足底を含んだ構造体であるが、本明細書においては、簡単のためロボット1の足底は、ゼロ自由度とする。したがって、各脚部は、6自由度で構成される。
以上を総括すれば、ロボット1全体としては、合計で3+7×2+3+6×2=32自由度を有することになる。ただし、エンターテインメント向けのロボット1が必ずしも32自由度に限定されるわけではない。設計・制作上の制約条件や要求仕様等に応じて、自由度すなわち関節数を適宜増減することができることはいうまでもない。
Each
In this specification, the intersection of the hip
In summary, the
上述したようなロボット1がもつ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、2足歩行という不安定構造体に対して姿勢制御を行うこと等の要請から、アクチュエータは小型かつ軽量であることが好ましい。
なお、図3に示すアクチュエータによって図1に示すアクチュエータ群16が構成され、図3に示すセンサによって図1に示すセンサ群17が構成される。
Each degree of freedom of the
The
このようなロボットは、ロボット全体の動作を制御する制御システムを例えば体幹部ユニット202等に備える。
図4は、本実施形態のロボット1の制御システム構成を示す模式図である。
図4に示すように、制御システムは、ユーザ入力等に動的に反応して情緒判断や感情表現を司る思考制御モジュール200と、アクチュエータ350の駆動等、ロボット1の全身協調運動を制御する運動制御モジュール300とで構成される。
Such a robot includes a control system that controls the operation of the entire robot, for example, in the
FIG. 4 is a schematic diagram illustrating a control system configuration of the
As shown in FIG. 4, the control system dynamically controls the whole body cooperative motion of the
思考制御モジュール200は、情緒判断や感情表現に関する演算処理を実行するCPU(Central Processing Unit)211(図1に示すCPU19)や、RAM(Random Access Memory)212、ROM(Read Only Memory)213及び外部記憶装置(ハード・ディスク・ドライブ等)214等で構成され、モジュール内で自己完結した処理を行うことができる、独立駆動型の情報処理装置である。
The
この思考制御モジュール200は、画像入力装置251から入力される画像データや音声入力装置252から入力される音声データ等、外界からの刺激等にしたがって、ロボット1の現在の感情や意思を決定する。すなわち、上述したように、入力される画像データからユーザの表情を認識し、その情報をロボット201の感情や意思に反映させることで、ユーザの表情に応じた行動を発現することができる。
ここで、画像入力装置251は、例えばCCD(Charge Coupled Device)カメラを複数備えており、これらのカメラにより撮像した画像から距離画像を得ることができる。
本実施形態では、画像入力装置251は、図1に示すCCDカメラ10R,10Lに対応している。
また、音声入力装置252は、例えばマイクロホンを複数備えている。
The
Here, the image input device 251 includes a plurality of CCD (Charge Coupled Device) cameras, for example, and can obtain a distance image from images captured by these cameras.
In the present embodiment, the image input device 251 corresponds to the
The
思考制御モジュール200は、意思決定に基づいた動作又は行動シーケンス、すなわち四肢の運動を実行するように、運動制御モジュール300に対して指令を発行する。
The
運動制御モジュール300は、ロボット1の全身協調運動を制御するCPU311(図1に示すCPU19)や、RAM312、ROM313及び外部記憶装置(ハード・ディスク・ドライブ等)314等で構成され、モジュール内で自己完結した処理を行うことができる独立駆動型の情報処理装置である。また、外部記憶装置314には、例えば、オフラインで算出された歩行パターンや目標とするZMP軌道、その他の行動計画を蓄積することができる。
この運動制御モジュール300には、図2に示したロボット1の全身に分散するそれぞれの関節自由度を実現するアクチュエータ350、対象物との距離を測定する距離計測センサ(図示せず)、体幹部ユニット202の姿勢や傾斜を計測する姿勢センサ351、左右の足底の離床又は着床を検出する接地確認センサ352,353、足底121の足底121に設けられる荷重センサ、バッテリ等の電源を管理する電源制御装置354等の各種の装置が、バス・インターフェース(I/F)310経由で接続されている。
ここで、姿勢センサ351は、例えば加速度センサとジャイロ・センサの組合せによって構成され、接地確認センサ352,353は、近接センサ又はマイクロ・スイッチ等で構成される。
The
The
Here, the
思考制御モジュール200と運動制御モジュール300は、共通のプラットフォーム上
で構築され、両者間はバス・インターフェース210,310を介して相互接続されている。
The
運動制御モジュール300では、思考制御モジュール200から指示された行動を体現すべく、各アクチュエータ350による全身協調運動を制御する。すなわち、CPU311は、思考制御モジュール200から指示された行動に応じた動作パターンを外部記憶装置314から取り出し、又は、内部的に動作パターンを生成する。そして、CPU311は、指定された動作パターンにしたがって、足部運動、ZMP軌道、体幹運動、上肢運動、腰部水平位置及び高さ等を設定するとともに、これらの設定内容に従った動作を指示す
る指令値を各アクチュエータ350に転送する。
The
CPU311は、姿勢センサ351の出力信号によりロボット1の体幹部ユニット202の姿勢や傾きを検出するとともに、各接地確認センサ352,353の出力信号により各脚部ユニット205R/Lが遊脚又は立脚のいずれの状態であるかを検出することによって、ロボット1の全身協調運動を適応的に制御することができる。更に、CPU311は、ZMP位置が常にZMP安定領域の中心に向かうように、ロボット1の姿勢や動作を制御する。
The
また、運動制御モジュール300は、思考制御モジュール200において決定された意
思通りの行動がどの程度発現されたか、すなわち処理の状況を、思考制御モジュール20
0に返すようになっている。このようにしてロボット1は、制御プログラムに基づいて自己及び周囲の状況を判断し、自律的に行動することができる。
In addition, the
It returns to 0. In this way, the
以下、図1および図5に示すCPU19(CPU311)の機能を説明する。
図5は、図1および図4に示すCPU19の一部の機能の機能ブロック図である。
図5に示すように、CPU19は、例えば、画像前処理部31、地図データ生成部33、システムバイアス特定部35、位置・姿勢検出部37、並びに動き制御部39を有する。
図5に示す構成要素の各々は、CPU19がプログラムPRGを実行して実現してよいし、専用のハードウェアにより実現してもよい。
以下、図5に示す各構成について詳細に説明する。
The function of the CPU 19 (CPU 311) shown in FIGS. 1 and 5 will be described below.
FIG. 5 is a functional block diagram of some functions of the
As illustrated in FIG. 5, the
Each of the components shown in FIG. 5 may be realized by the
Hereinafter, each configuration shown in FIG. 5 will be described in detail.
[画像前処理部31]
画像前処理部31は、CCDカメラ10R,10Lから入力した右画像データS10Rと左画像データS10Lの視差情報(disparity data)(距離情報)を計算し、カラー画像データ(YUV:輝度Y、UV色差)及び視差画像データ(YDR:輝度Y、視差D、信頼度R)をフレーム毎に左右交互に算出する。
ここで、視差とは、空間中のある点が左側カメラ及び右側カメラに写像される点の違いを示し、そのカメラからの距離に応じて変化するものである。
[Image Preprocessing Unit 31]
The
Here, the parallax indicates a difference between points where a certain point in the space is mapped to the left camera and the right camera, and changes according to the distance from the camera.
画像前処理部31は、上記カラー画像データ及び視差画像データを基に、ロボット1から画像(環境)内の対象物までの3次元距離を示す距離データ(ステレオデータ)S31を生成し、これを撮像データIMとして地図データ生成部33に出力する。
画像前処理部31は、上記距離データから環境内に存在する複数の平面を検出し、それを示す平面データS32を撮像データIMとして地図データ生成部33に出力する。ここでの平面の検出方法としては、線分拡張法、ハフ変換等を利用した公知の平面検出技術を適用することができる。ノイズを含む距離データから階段のように複数平面を検出する代表例として、線分拡張法による平面検出を行うと正確に平面を検出することができる。
Based on the color image data and the parallax image data, the
The
[地図生成部33]
地図生成部33は、画像前処理部31から入力した撮像データIM(距離データS31および平面検出データS32)に基づいて、地図データMAP(3次元グリット地図データ)を生成し、これをメモリ18に書き込む。
地図データ生成部33は、例えば、SLAM(Simultaneous Localization And Mapping)などの手法を用いて、地図データMAPを生成する。
[Map generator 33]
The map generation unit 33 generates map data MAP (three-dimensional grid map data) based on the imaging data IM (distance data S31 and plane detection data S32) input from the
The map data generation unit 33 generates map data MAP using a technique such as SLAM (Simultaneous Localization And Mapping), for example.
先ず、地図生成部33による地図データMAPの生成処理について説明する。
地図データMAPは、周囲の環境を水平方向及び垂直方向に所定の大きさの格子(グリッド;Grid)に分割して表したものである。
地図生成部33は、画像前処理部31からの距離データS31および平面データS32とに基づいて、例えば、4メートル四方、高さ1メートルの空間を、水平解像度4センチ及び垂直解像度1センチの直方体空間を1グリッド単位(1セルと記す)とし、その集合によって表現された地図データMAPを生成する。
地図生成部33は、各セルに物体によって占有されているか否かの確率を付与し、観測データに基づいて各セルの占有確率を変更させている。また、地図生成部33は、占有確率に閾値を設け、占有確率が閾値より大きいか否かによって環境の状態を地図として表現している。
本具体例では、高さ方向の解像度がセル分解能に依存しないため、垂直解像度は、1セ
ンチよりも粗くできる。
First, map data MAP generation processing by the map generation unit 33 will be described.
The map data MAP is obtained by dividing the surrounding environment into a grid having a predetermined size in the horizontal direction and the vertical direction.
Based on the distance data S31 and the plane data S32 from the
The map generation unit 33 gives a probability as to whether or not each cell is occupied by an object, and changes the occupation probability of each cell based on the observation data. In addition, the map generation unit 33 sets a threshold for the occupation probability, and expresses the state of the environment as a map depending on whether the occupation probability is larger than the threshold.
In this specific example, since the resolution in the height direction does not depend on the cell resolution, the vertical resolution can be coarser than 1 cm.
地図生成部33は、3次元グリッドで表される実空間における全ての単位グリッド(以下、セルと記す。)p(x,y,z)に対して次の処理を行う。
地図生成部33は、撮像画像内に像として映し出された測定点(3次元グリッド)と観測中心(ステレオカメラ中心)とを結ぶ直線上には障害物が存在しないというアルゴリズムに基づいて地図データMAPを作成及び/又は更新している。
The map generation unit 33 performs the following processing on all unit grids (hereinafter referred to as cells) p (x, y, z) in the real space represented by a three-dimensional grid.
The map generation unit 33 maps the map data MAP based on an algorithm that there is no obstacle on the straight line connecting the measurement point (three-dimensional grid) projected as an image in the captured image and the observation center (stereo camera center). Are created and / or updated.
地図生成部33は、上述のアルゴリズムに基づいて、測定対象点であるセルpとロボットのステレオカメラ11L,11Rとを結ぶ線分の間に存在するセルに対して、エンプティ(Empty)処理を行う。続いて、測定点pにあたるセルに対してオキュパイド(Occupied)処理を行う。
地図データMAPは、任意のセルcに対して障害物の存在確率(障害物によって占有されている確率)p(c)を保持しており、このエンプティ処理及びオキュパイド処理は、これら各セルに対して統計的な処理である。
エンプティ処理は、障害物の存在確率を低下させる処理であり、オキュパイド処理は障害物の存在確率を増加させる処理である。本具体例では、エンプティ処理及びオキュパイド処理の存在確率を算出する手法の一例として、ベイズの更新則を用いる。
Based on the algorithm described above, the map generation unit 33 performs an empty process on the cells existing between the line segments connecting the cell p that is the measurement target point and the stereo cameras 11L and 11R of the robot. . Subsequently, an occupied process is performed on the cell corresponding to the measurement point p.
The map data MAP holds an obstacle existence probability (probability occupied by an obstacle) p (c) for an arbitrary cell c. The empty process and the occupy process are performed for each cell. And statistical processing.
The empty process is a process for reducing the existence probability of an obstacle, and the occupy process is a process for increasing the existence probability of an obstacle. In this specific example, Bayesian update rules are used as an example of a method for calculating the existence probability of the empty process and the occupy process.
地図生成部33は、エンプティ処理において式(1)により占有確率を減少させ、オキュパイド処理において式(2)により占有確率を増加させる。
式(1)は、セルcの占有確率を示すp(c)が“占有”という条件下にあるセルCの確率を表しており、式(1)又は式(2)においてセルcが占有されているか又は占有されていないかを表す確率p(occ|・・・)、p(empty|・・・)は、予め決められた閾値thである。
The map generation unit 33 decreases the occupation probability by the equation (1) in the empty process and increases the occupation probability by the equation (2) in the occupide process.
Equation (1) represents the probability of cell C under the condition that p (c) indicating the occupation probability of cell c is “occupied”, and cell c is occupied in equation (1) or equation (2). The probabilities p (occ |...) And p (empty |...) That indicate whether or not they are occupied are predetermined threshold values th.
[数1]
p(c)←p(c|empty)=p(empty|c)p(c)/{p(empty|c)p(c)+p(empty|c~)p(c~)}
…(1)
[Equation 1]
p (c) ← p (c | empty) = p (empty | c) p (c) / {p (empty | c) p (c) + p (empty | c ~) p (c ~)}
... (1)
[数2]
p(c)←p(c|occ)=p(occ|c)p(c)/{p(occ|c)p(c)+p(occ|c~)p(c~)}
…(2)
[Equation 2]
p (c) ← p (c | occ) = p (occ | c) p (c) / {p (occ | c) p (c) + p (occ | c ~) p (c ~)}
... (2)
本具体例では、3次元グリッドとして表される領域は、例えば、4メートル四方、水平解像度4センチ及び垂直解像度1センチを1セルとした3次元グリッドで表現されている。
地図生成部33が生成する地図データMAPは、例えば、3次元座標(x、y、z)の各セルについて、その占有確率OG(x、y、z)(=p(c))を示している。
In this specific example, the area represented as a three-dimensional grid is represented by a three-dimensional grid, for example, 4 meters square, with a horizontal resolution of 4 cm and a vertical resolution of 1 cm as one cell.
The map data MAP generated by the map generation unit 33 indicates, for example, the occupation probability OG (x, y, z) (= p (c)) for each cell of three-dimensional coordinates (x, y, z). Yes.
本実施形態では、ロボット1の図6に示す動き量(α、d、β)に対して予め規定したバイアス値bias_i(Δα、Δd、Δβ)が異なる複数の地図データMiを用意する。ここで、iは2以上の整数である。バイアス値は、例えばΔα,Δβなど角度は、−5°〜+5°の間で0.1°のステップで規定する。
本実施形態において、バイアス値bias_i(Δα、Δd、Δβ)は、ロボット1の機械的(システム的)な要因によって常に生じるエラーを抑制するための値である。
このようなエラーは、例えば、足の長さの誤差、車輪がある場合には車輪の軽の誤差などによって生じる。
地図データ生成部33は、バイアス値bias_iが異なる複数の地図データMiの各々について、位置・姿勢検出部37から入力した対応するバイアス値bias_iの位置・姿勢データpose(xi,yi,θi)と、撮像データIMとを基に、各バイアス値bias_iの地図データMiを更新する。
地図データ生成部33は、地図データMiをメモリ18に書き込む。
In the present embodiment, a plurality of map data Mi having different bias values bias_i (Δα, Δd, Δβ) defined in advance with respect to the movement amounts (α, d, β) shown in FIG. 6 of the
In the present embodiment, the bias values bias_i (Δα, Δd, Δβ) are values for suppressing errors that always occur due to mechanical (system) factors of the
Such an error is caused by, for example, an error in the length of the foot, a light error in the wheel when there is a wheel, or the like.
For each of a plurality of map data Mi having different bias values bias_i, the map data generation unit 33 includes position / posture data position (xi, yi, θi) of the corresponding bias value bias_i input from the position /
The map data generation unit 33 writes the map data Mi into the
[システムバイアス特定部35]
システムバイアス特定部35は、メモリ18から読み出した上記複数のバイアス値bias_iが異なる複数の地図データMiを基に所定の評価処理を行って、前記複数のバイアス値bias_iのうち最適な一つを特定(選択)する。
システムバイアス特定部35は、例えば以下に示す第1〜第3の評価処理のうち何れかの評価処理を実行する。
(第1の評価処理)
システムバイアス特定部35は、例えば、図7に示すように、複数の地図データMiの各々について、下記式(3)に基づいて、エントロピーEを計算する。
下記式(3)において、「c」は地図データMi内のセルを示している。
[System bias specifying unit 35]
The system bias specifying
For example, the system bias
(First evaluation process)
For example, as shown in FIG. 7, the system bias
In the following formula (3), “c” indicates a cell in the map data Mi.
[数3]
E=−Σc(log(p(c|occ))p(c|occ)+log(p(c|empt))p(c|empt))
…(3)
[Equation 3]
E = −Σ c (log (p (c | occ)) p (c | occ) + log (p (c | empt)) p (c | empt))
... (3)
システムバイアス特定部35は、上記式(3)で生成したエントロピーEを評価値fitとして用いて、エントロピーに最も急峻なピークを持つ地図データMiに対応したバイアス値bias_iを特定する。
システムバイアス特定部35は、上記特定したバイアス値bias_iを位置・姿勢検出部37および動き制御部39に出力する。
The system bias specifying
The system bias
(第2の評価処理)
システムバイアス特定部35は、地図データMi内の直線部分を抽出し、その分散値を基に、その地図データMiに対応したバイアス値bias_iの適正さを判断する。
システムバイアス特定部35は、例えば、図8に示す手順で地図データMiから直線部分を抽出する。
本実施例では直線検出手法として、ノイズに対してロバストなRANSACを用いた以下に示すアルゴリズムを用いた。
システムバイアス特定部35は、先ず、地図データMi内の2つの占有点をランダムに選択する(ステップST11)。占有点とは、例えば、占有されている確率が所定値以上の点である。
次に、システムバイアス特定部35は、上記選択した2つの占有点によって規定される直線を計算する(ステップST12)。
次に、システムバイアス特定部35は、ステップST12で計算した直線に対して、予め決められたしきい値以内の距離にある占有点を特定する(ステップST13)。
次に、システムバイアス特定部35は、ステップST13で特定した占有点を用いて、それらの占有点に最も合致する直線を最小二乗法などによって再計算し、占有点群の直線との距離の分散値をスコアとする(ステップST14)。
システムバイアス特定部35は、(反復計算回数が一定の回数を越える、または、ステプST14で求めたスコアが一定の閾値を越えた)の条件を満たした場合にはステップST16に戻り、そうでない場合にはステップST13に戻る(ステップST15)。
システムバイアス特定部35は、(ステップST15で求められた直線のスコアが、それ以前に求められた直線のスコアよりも良い)の条件を満たした場合にはステップST17に戻り、そうでない場合にはステップST18に進む(ステップST16)。
システムバイアス特定部35は、ステップST16で判断した直線を保存する(ステップST17)。
システムバイアス特定部35は、(反復計算回数が一定の回数を越える、または、ステップST17に保存されたベストスコアが一定の閾値を越えた)の条件を満たした場合にはステップST19に戻り、そうでない場合にはステップST11に戻る(ステップST18)。
システムバイアス特定部35は、ステップST17で保存した直線を出力結果として出力する(ステップST19)。
その後、システムバイアス特定部35は、上記抽出した地図データMi内から抽出された複数の直線群の分散値を計算し、その分散値のを評価値fitとして用いて、分散値が最小の地図データMiを特定し、その地図データMiに対応したバイアス値bias_iを、位置・姿勢検出部37および動き制御部39に出力する。
変位分散値が最小の直線部分を含む地図データMiのバイアス値bias_iを用いるのは、(環境の多くが直線によって構成されており、最も直線とフィットする地図が最も適切な地図であることが予想されること)によるためである。特に家庭やオフィスなどの整備された環境では環境内には廊下や壁など直線によって構成されており、この仮説が最も効果的に働く。
(Second evaluation process)
The system bias specifying
For example, the system
In this embodiment, the following algorithm using RANSAC that is robust against noise was used as a straight line detection method.
First, the system
Next, the system
Next, the system
Next, the system bias
The system bias specifying
The system bias specifying
The system bias specifying
The system bias specifying
The system bias specifying
After that, the system
The bias value bias_i of the map data Mi including the straight line portion having the smallest displacement variance value is used because (most of the environment is constituted by straight lines, and the map that fits the straight line is expected to be the most appropriate map. This is because of This hypothesis works most effectively, especially in homes and offices, where the environment is composed of straight lines such as corridors and walls.
(第3の評価処理)
システムバイアス特定部35は、まず、撮像データIMと、現在の移動体の位置・姿勢・バイアス値及び地図データMiから予測される撮像データとの比較により前記撮像データIMの尤もらしさを表す尤度を計算する。次に、バイアス毎の直前の尤度と、今回計算された尤度を積算していくことで、尤度の時系列的な積算値(積算尤度重み)を計算し、その結果が最も高い地図データMiのバイアス値bias_iを特定する。
また、システムバイアス特定部35は、前記バイアスの選択戦略において、直前のある一定の時間領域、もしくは移動領域(ウィンドウ)の観測を優先する為、尤度の上昇比率を、前記尤度を乗じる前の積算尤度重みと、前記尤度を乗じた後の積算尤度重みにより計算し、当該上昇比率が最も高い地図データMiのバイアス値bias_iを特定する。
[位置・姿勢検出部37]
位置・姿勢検出部37は、センサ群17から入力した動き量の測定値α1,d1,β1と、システムバイアス特定部35から入力したバイアス値bias_i(Δα,Δd,Δβ)とを加算して、実際の動き量(α,d,β)を計算する。ここで、「α=α1+Δα」、「d=d1+Δd」、「β=β1+Δβ」である。
位置・姿勢検出部37は、上記実際の動き量(α,d,β)を基に、各バイアス値biasの位置・姿勢データpose(xi,yi,θi)を生成し、これを地図データ生成部33に出力する。
ここで、xi,yiは、バイアス値bias_iである場合のロボット1のx,y平面上でのx座標およびy座標をそれぞれ示す。また、θiは、バイアス値bias_iである場合のロボット1の向き(CCDカメラ10R,10Lの向き)を示す。
(Third evaluation process)
First, the system
In addition, in the bias selection strategy, the system
[Position / Attitude Detection Unit 37]
The position /
The position /
Here, xi and yi indicate the x coordinate and the y coordinate on the x and y plane of the
[動き制御部39]
動き制御部39は、システムバイアス特定部35から入力したバイアス値bias_iに対応した地図データMiをメモリ18から読み出す。
そして、動き制御部39は、例えば、現在地から予め設定された目標地に移動するルートを、メモリ18から読み出した上記地図データMiを基に決定する。
次に、動き制御部39は、センサ群17の検出データを基に障害物などを回避してロボット1が上記決定したルール上を移動するように、アクチュエータ群16を制御する。このとき、動き制御部39は、システムバイアス特定部35から入力したバイアス値bias(Δα,Δd,Δβ)を基に、ロボット1のシステムエラーを解消するようにアクチュエータ群16を制御する。
[Motion control unit 39]
The motion control unit 39 reads the map data Mi corresponding to the bias value bias_i input from the system
Then, for example, the motion control unit 39 determines a route to move from the current location to a preset target location based on the map data Mi read from the
Next, the motion control unit 39 controls the
以下、図1にロボット1の動作例を説明する。
[第1の動作例]
以下、図1に示すロボット1において、バイアス値bias_iを特定する動作例を説明する。
図9は、図1に示すロボット1のバイアス値bias_iを特定する動作例を説明するための図である。
以下の動作例では、上述した複数の異なるバイアス値bias_iの各々に対応して仮説データhiを規定する。
仮説データhiは、hi(xi,yi,θi、bias_i,Mi)で示され、上述した位置・姿勢データpose(xi,yi,θi)、バイアス値bias_i、地図データMiで規定される。
Hereinafter, an operation example of the
[First operation example]
Hereinafter, an operation example for specifying the bias value bias_i in the
FIG. 9 is a diagram for explaining an operation example for specifying the bias value bias_i of the
In the following operation example, hypothesis data hi is defined corresponding to each of the plurality of different bias values bias_i described above.
The hypothesis data hi is indicated by hi (xi, yi, θi, bias_i, Mi), and is defined by the position / posture data position (xi, yi, θi), the bias value bias_i, and the map data Mi described above.
ステップST31:
CPU19は、初期設定として、全ての複数の仮説データhi(xi,yi,θi、bias_i,Mi)のバイアス値bias_iに「0」を設定する。
Step ST31:
As an initial setting, the
ステップST32:
CPU19は、上記複数の仮説データhi(xi,yi,θi、bias_i,Mi)のバイアス値bias_iに、相互に異なる固有のバイアス値を設定する。
Step ST32:
The
ステップST33:
位置・姿勢検出部37は、センサ群17から動き量の測定値(エンコーダ値)α1,d1,β1を入力したか否か(すなわちロボット1に動きがあったか否か)を判断し、入力したと判断した場合に、ステップST34に進み、そうでない場合にステップST35に進む。
Step ST33:
The position /
ステップST34:
位置・姿勢検出部37は、センサ群17から動き量の測定値α1,d1,β1と、バイアス値bias_iとを基に、各仮説データhiの位置・姿勢データpose(xi,yi,θi)を生成し、これを地図データ生成部33に出力する。
Step ST34:
The position /
ステップST35:
地図データ生成部33は、画像前処理部31から撮像データIM(距離データS31および平面検出データS32)を入力したか否かを判断し、入力したと判断するとステップST36に進み、そうでない場合にはステップST39に進む。
Step ST35:
The map data generation unit 33 determines whether or not the imaging data IM (distance data S31 and plane detection data S32) is input from the
ステップST36:
地図データ生成部33は、位置・姿勢データpose(xi,yi,θi)を用いて、入力した撮像データIMを累積して地図データMiの各々を更新する。
Step ST36:
The map data generation unit 33 uses the position / posture data position (xi, yi, θi) to accumulate the input imaging data IM and update each of the map data Mi.
ステップST37:
システムバイアス特定部35は、前述したように、地図データMiの各々について、評価値fitを計算する。
Step ST37:
As described above, the system
ステップST38:
システムバイアス特定部35は、前述したように、ステップST37で生成した評価値fitを基に、バイアス値bias_i、すなわち仮説データhiを選択(特定)する。
Step ST38:
As described above, the system
ステップST39:
システムバイアス特定部35は、ステップST38で選択したバイアス値bias_iを位置・姿勢検出部37および動き制御部39に出力する。
Step ST39:
The system bias
[第2の動作例]
以下、動き制御部39によるロボット1の動き制御に関する動作例を説明する。
図10は、図5に示す動き制御部39の処理例を説明するためのフローチャートである。
ステップST51:
動き制御部39は、例えば、入力した距離データS31及び平面検出データS32、センサ群17の検出結果、あるいはメモリ18から読み出した選択されたバイアス値bias_iに対応する地図データMiを基に、ロボット1の移動方向に、ロボット1が移動できない高さの障害物があるか否かを判断し、その障害物があると判断するとステップST12に進み、そうでない場合にはステップST53に進む。
[Second operation example]
Hereinafter, an operation example related to the motion control of the
FIG. 10 is a flowchart for explaining a processing example of the motion control unit 39 shown in FIG.
Step ST51:
The motion control unit 39, for example, based on the input distance data S31 and plane detection data S32, the detection result of the
ステップST52:
動き制御部39は、例えば、入力した距離データS31及び平面検出データS32、センサ群17の検出結果、あるいはメモリ18から読み出した地図データMAPを基に、ロボット1が移動できる新たな方向を探索して、その探索した方向に移動するようにアクチュエータ群16を制御する。
Step ST52:
For example, the motion control unit 39 searches for a new direction in which the
ステップST53:
動き制御部39は、ロボット1の移動方向に端に移動すれば回避できる障害物があるか否かを判断し、障害物があると判断するとステップST54に進み、そうでない場合にはステップST55に進む。
Step ST53:
The motion control unit 39 determines whether there is an obstacle that can be avoided if the
ステップST54:
動き制御部39は、障害物を回避するように、例えば、道路の端を移動するようにアクチュエータ群16を制御する。
Step ST54:
The motion control unit 39 controls the
ステップST55:
動き制御部39は、既に決定されたパスに従って直進移動するようにアクチュエータ群16を制御する。
Step ST55:
The motion control unit 39 controls the
以上説明したように、ロボット1によれば、異なる複数のバイアス値bias_iを仮定した複数の地図データMiを継続して保持し、撮像データIMが入力されると、それを基に上記保持した複数の地図データMiをそれぞれ更新し、その結果を評価することで、最適なバイアス値bias_iを特定する。
そのため、撮像データが入力される度に、異なる複数のバイアス値を仮定した地図データ全体を最初から生成する場合に比べて処理量を大幅に削減できる。これにより、CPU19の処理負荷を軽減でき、処理能力が低い安価なものを用いることができる。また、リアルタイム性を向上できる。
As described above, according to the
Therefore, each time imaging data is input, the processing amount can be greatly reduced as compared with the case where the entire map data assuming a plurality of different bias values is generated from the beginning. Thereby, the processing load of the
<第2実施形態>
本実施形態のロボットは、図1に示すシステムバイアス特定部35aの処理の一部を除いて、第1実施形態のロボット1の同じである。
以下、本実施形態のシステムバイアス特定部35aの処理を説明する。
図11は、図1に示すシステムバイアス特定部35aの処理を説明するためのフローチャートである。
図11において、ステップST61〜ST66,ST68〜ST70の処理は、それぞれ図9に示すステップST31〜ST36,ST37〜ST39とそれぞれ同じである。
システムバイアス特定部35aは、図11に示すように、評価処理を行うにあたって十分な量の撮像データIM(例えば、所定数のフレームの撮像データIM)を用いて全ての地図データMiが更新されたという条件を満たしたか否かを判断し、当該条件を満たしたと判断した場合にステップST68の処理に進む。
これにより、バイアス値bias_i選択のための評価処理の信頼性を高めることができる。
Second Embodiment
The robot of this embodiment is the same as the
Hereinafter, processing of the system bias specifying unit 35a of the present embodiment will be described.
FIG. 11 is a flowchart for explaining the processing of the system bias specifying unit 35a shown in FIG.
In FIG. 11, the processes of steps ST61 to ST66 and ST68 to ST70 are the same as steps ST31 to ST36 and ST37 to ST39 shown in FIG. 9, respectively.
As shown in FIG. 11, the system bias identification unit 35a updates all map data Mi using a sufficient amount of imaging data IM (for example, imaging data IM of a predetermined number of frames) for performing the evaluation process. The process proceeds to step ST68 when it is determined whether the condition is satisfied.
Thereby, the reliability of the evaluation process for selecting the bias value bias_i can be improved.
<第3実施形態>
本実施形態のロボットは、図1に示す地図データ生成部33bおよびシステムバイアス特定部35bの処理の一部を除いて、第1実施形態のロボット1の同じである。
以下、本実施形態の地図データ生成部33bおよびシステムバイアス特定部35bの処理を説明する。
図12は、図1に示す地図データ生成部33bおよびシステムバイアス特定部35bの処理を説明するためのフローチャートである。
図12において、ステップST81〜ST84,ST86〜ST91の処理は、それぞれ図11に示すステップST61〜ST64,ST65〜ST70とそれぞれ同じである。
図12に示すように、位置・姿勢検出部37がセンサ群17から動き量の測定値α1,d1,β1と、バイアス値bias_iとを基に、各仮説データhiの位置・姿勢データpose(xi,yi,θi)を生成した後に(ステップST84)、地図データ生成部33bは、地図データMiにおいてロボット1の位置が中央(センター)になるようにシフト処理を行って地図データMiを更新する(ステップST85)。
このとき、上記シフト処理によって地図データMi内に生じた境界部分は消去する。
本実施形態によれば、上述したように、ロボット1を地図データMi内の中央に位置させることで、バイアス値bias_i選択のための評価処理の精度を高めることができる。
<Third Embodiment>
The robot of the present embodiment is the same as the
Hereinafter, processing of the map data generation unit 33b and the system bias identification unit 35b of the present embodiment will be described.
FIG. 12 is a flowchart for explaining processing of the map data generation unit 33b and the system bias identification unit 35b shown in FIG.
In FIG. 12, the processes of steps ST81 to ST84 and ST86 to ST91 are the same as steps ST61 to ST64 and ST65 to ST70 shown in FIG. 11, respectively.
As shown in FIG. 12, the position /
At this time, the boundary portion generated in the map data Mi by the shift process is deleted.
According to the present embodiment, as described above, the accuracy of the evaluation process for selecting the bias value bias_i can be increased by positioning the
<第4実施形態>
本実施形態のロボットは、図1に示す地図データ生成部33cおよびシステムバイアス特定部35cの処理の一部を除いて、第1実施形態のロボット1と同じである。
以下、本実施形態の地図データ生成部33cおよびシステムバイアス特定部35cの処理を説明する。
図13は、図1に示す地図データ生成部33cおよびシステムバイアス特定部35cの処理を説明するためのフローチャートである。
図13において、ステップST101〜ST105,ST110の処理は、それぞれ図9に示すステップST31〜ST36,ST70とそれぞれ同じである。
図13に示すように、地図データ生成部33cは、画像前処理部31から撮像データIM(距離データS31および平面検出データS32)を入力したと判断した場合に(ステップST105)、次に、地図データMiの更新を行うか否かを判断する(ステップST106)。
ステップST106の判断は、例えば、当該判断を所定回数行う毎に1回、ステップST109に進むなどのルールに基づいて行う。また、ステップST107とST109のどちらに進むかをランダムに決定してもよい。
<Fourth embodiment>
The robot of this embodiment is the same as the
Hereinafter, processing of the map data generation unit 33c and the system bias identification unit 35c of the present embodiment will be described.
FIG. 13 is a flowchart for explaining processing of the map data generation unit 33c and the system bias identification unit 35c shown in FIG.
In FIG. 13, the processes of steps ST101 to ST105 and ST110 are the same as steps ST31 to ST36 and ST70 shown in FIG. 9, respectively.
As shown in FIG. 13, when the map data generation unit 33c determines that the imaging data IM (distance data S31 and plane detection data S32) is input from the image preprocessing unit 31 (step ST105), the map data It is determined whether or not to update the data Mi (step ST106).
The determination in step ST106 is performed based on a rule such as, for example, once every time the determination is performed a predetermined number of times, the process proceeds to step ST109. Further, it may be determined at random whether to proceed to step ST107 or ST109.
システムバイアス特定部35cは、撮像データIMと、現在の移動体の位置・姿勢・バイアス値及び地図データMiから予測される撮像データとの比較により前記撮像データIMの尤もらしさを表す尤度を計算し、バイアス毎の直前の尤度と、今回計算された尤度を積算していくことで、尤度の時系列的な積算値(積算尤度重み)を計算する(ステップST107)。
次に、システムバイアス特定部35cは、上記計算した積算尤度重みが最も高い地図データMiのバイアス値bias_iを特定(選択)する(ステップST108)。
The system bias identification unit 35c calculates a likelihood representing the likelihood of the imaging data IM by comparing the imaging data IM with the imaging data predicted from the current position / attitude / bias value of the moving body and the map data Mi. Then, by integrating the likelihood immediately before each bias and the likelihood calculated this time, a time-series integrated value (integrated likelihood weight) of the likelihood is calculated (step ST107).
Next, the system bias specifying unit 35c specifies (selects) a bias value bias_i of the map data Mi having the highest calculated likelihood weight (step ST108).
また、システムバイアス特定部35cは、撮像データIMを基に、各地図データMiを更新する(ステップST109)。 Further, the system bias identification unit 35c updates each map data Mi based on the imaging data IM (step ST109).
<第5実施形態>
本実施形態のロボットは、図1に示す地図データ生成部33dおよびシステムバイアス特定部35dの処理の一部を除いて、第1実施形態のロボット1と同じである。
以下、本実施形態の地図データ生成部33dおよびシステムバイアス特定部35dの処理を説明する。
図14は、図1に示す地図データ生成部33dおよびシステムバイアス特定部35dの処理を説明するためのフローチャートである。
図14において、ステップST121〜ST124,ST133の処理は、それぞれ図9に示すステップST31〜ST36,ST70とそれぞれ同じである。
<Fifth Embodiment>
The robot of this embodiment is the same as the
Hereinafter, processing of the map data generation unit 33d and the system bias identification unit 35d of the present embodiment will be described.
FIG. 14 is a flowchart for explaining processing of the map data generation unit 33d and the system bias identification unit 35d shown in FIG.
In FIG. 14, the processes of steps ST121 to ST124 and ST133 are the same as steps ST31 to ST36 and ST70 shown in FIG. 9, respectively.
図14に示すように、位置・姿勢検出部37がセンサ群17から動き量の測定値α1,d1,β1と、バイアス値bias_iとを基に、各仮説データhiの位置・姿勢データpose(xi,yi,θi)を生成した後に(ステップST124)、地図データ生成部33dは、地図データMiにおいてロボット1の位置が中央(センター)になるようにシフト処理を行って地図データMiを更新する(ステップST125)。
As illustrated in FIG. 14, the position /
図14に示すように、地図データ生成部33dは、画像前処理部31から撮像データIM(距離データS31および平面検出データS32)を入力したと判断した場合に(ステップST126)、次に、地図データMiの更新を行うか否かを判断する(ステップST127)。
ステップST127の判断は、例えば、当該判断を所定回数行う毎に1回、ステップST132に進むなどのルールに基づいて行う。また、ステップST128とST132のどちらに進むかをランダムに決定してもよい。
As illustrated in FIG. 14, when the map data generation unit 33d determines that the imaging data IM (distance data S31 and plane detection data S32) is input from the image preprocessing unit 31 (step ST126), the map data generation unit 33d then It is determined whether or not to update the data Mi (step ST127).
The determination in step ST127 is performed based on a rule such as, for example, once every time the determination is performed a predetermined number of times, the process proceeds to step ST132. Further, it may be determined at random whether to proceed to step ST128 or ST132.
システムバイアス特定部35dは、撮像データIMと、現在の移動体の位置・姿勢・バイアス値及び地図データMiから予測される撮像データとの比較により前記撮像データIMの尤もらしさを表す尤度を計算し、バイアス毎の直前の尤度と、今回計算された尤度を積算していくことで、尤度の時系列的な積算値(積算尤度重み)を計算し(ステップST128)、これを記憶(保存)する(ステップST129)。
次に、システムバイアス特定部35dは、各仮説について、ステップST128で生成した積算尤度重みwと、前回生成した積算尤度重みwとの比率ratioを計算する(ステップST130)。
次に、システムバイアス特定部35dは、ステップST130で生成した比率ratioを基に、この比率が最も大きいなどの基準で仮説(バイアス値bias_i)を選択する(ステップST131)。
The system bias specifying unit 35d calculates a likelihood representing the likelihood of the imaging data IM by comparing the imaging data IM with the imaging data predicted from the current position / posture / bias value of the moving body and the map data Mi. Then, by integrating the likelihood immediately before each bias and the likelihood calculated this time, a time-series integrated value (integrated likelihood weight) of the likelihood is calculated (step ST128). Store (save) (step ST129).
Next, the system bias specifying unit 35d calculates a ratio ratio between the integrated likelihood weight w generated in step ST128 and the previously generated integrated likelihood weight w for each hypothesis (step ST130).
Next, the system bias identification unit 35d selects a hypothesis (bias value bias_i) based on the ratio such as the largest based on the ratio ratio generated in step ST130 (step ST131).
また、システムバイアス特定部35cは、撮像データIMを基に、各地図データMiを更新する(ステップST132)。 Further, the system bias specifying unit 35c updates each map data Mi based on the imaging data IM (step ST132).
以下、本実施形態の効果および作用をロボット1のバイアスと実際の移動軌跡とを例示して説明する。
図15に示すように、ロボット1が直線の廊下100を移動する場合を考える。
ロボット1の実際のバイアス値がΔβ=−3.5°である場合には、補正処理を行わないと、ロボット1は直線移動制御を行っても、図16に示すような奇跡で移動する。
一方、仮定したバイアス値bias_iがΔβ=−2.84°である場合には、評価処理により、前述したエントロピーが図17(B)に示すように変化し、当該バイアス値bias_iが選択されると、ロボット1の移動軌跡は図17(A)に示すようになる。なお、図17(B)において、横軸は時間、縦軸は(バイアス値[degree])である。
また、仮定したバイアス値bias_iがΔβ=−3.45°である場合には、評価処理(ライン抽出)により、ロボット1の移動軌跡は図18(A)に示すようになる。
また、仮定したバイアス値bias_iがΔβ=−3.23°である場合には、第3の評価処理により、ロボット1の移動軌跡は図19(A)に示すようになる。
また、実際のバイアス値が前半ではΔβ=−3.5°となり、後半ではΔβ=3.5°となった場合に、補正処理を行わないと、ロボット1の移動軌跡は図20に示すようになる。これに対して、補正処理を行うと、ロボット1の移動軌跡は図21に示すようになる。
Hereinafter, the effects and actions of the present embodiment will be described by exemplifying the bias of the
Consider the case where the
When the actual bias value of the
On the other hand, when the assumed bias value bias_i is Δβ = −2.84 °, the above-described entropy changes as shown in FIG. 17B by the evaluation process, and the bias value bias_i is selected. The movement locus of the
When the assumed bias value bias_i is Δβ = −3.45 °, the movement locus of the
When the assumed bias value bias_i is Δβ = −3.23 °, the movement locus of the
Further, when the actual bias value is Δβ = −3.5 ° in the first half and Δβ = 3.5 ° in the second half, if the correction process is not performed, the movement locus of the
本発明は上述した実施形態には限定されない。
すなわち、当業者は、本発明の技術的範囲またはその均等の範囲内において、上述した実施形態の構成要素に関し、様々な変更、コンビネーション、サブコンビネーション、並びに代替を行ってもよい。
例えば、上述した実施形態では、本発明の通信装置として、2足歩行のロボット1を例示したが、通信装置として、例えば、車輪による移動体、あるいは1足や3足以上のロボットを用いてもよい。また、本発明の通信装置は、ロボット以外でも、通信機能を備えていれば固定式のカメラ装置であってもよい。
The present invention is not limited to the embodiment described above.
That is, those skilled in the art may make various modifications, combinations, subcombinations, and alternatives regarding the components of the above-described embodiments within the technical scope of the present invention or an equivalent scope thereof.
For example, in the above-described embodiment, the
なお、上述した実施形態では、地図生成部33において、3次元グリッドの各々の占有確率を示す地図データMAPを生成する場合を例示したが、ノードnodeとエッジedgeとからなるグラフを構築し、当該グラフを示す地図データを生成してもよい。この場合に、各ノードnodeは、何らかの特徴又はサブマップを示している。また、各エッジedgeは、ノードnode間のパスを示している。
また、地図生成部33は、図23に示すように、SLAM(Simultaneous Localization and Map Building)を基にしたカルマンフィルタを用いて、テレビ、椅子、テーブルなどのランドマークLMを規定した地図データMAPを生成してもよい。
In the above-described embodiment, the map generation unit 33 exemplifies the case of generating the map data MAP indicating the occupation probability of each of the three-dimensional grids. However, the graph including the node node and the edge edge is constructed, Map data indicating a graph may be generated. In this case, each node node represents some feature or submap. Each edge edge indicates a path between node nodes.
Further, as shown in FIG. 23, the map generation unit 33 generates map data MAP that defines landmarks LM such as a television, a chair, and a table using a Kalman filter based on SLAM (Simultaneous Localization and Map Building). May be.
10L,10R…CCDカメラ、16…アクチュエータ群、17…センサ群、18…メモリ、19…CPU、31…画像前処理部、33…地図データ生成部、35…システムバイアス特定部、37…位置・姿勢検出部、39…動き制御部 10L, 10R ... CCD camera, 16 ... actuator group, 17 ... sensor group, 18 ... memory, 19 ... CPU, 31 ... image pre-processing unit, 33 ... map data generation unit, 35 ... system bias specifying unit, 37 ... position / Posture detection unit, 39 ... motion control unit
Claims (11)
前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の工程で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の工程と、
前記第2の工程で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の工程と
を有するデータ処理方法。 For each of a plurality of different bias values defined in advance with respect to the amount of movement of the moving object, first data for generating position data indicating the position of the moving object is generated based on the bias value and the measured value of the amount of movement. And the process of
The update of the plurality of map data associated with each of the plurality of bias values is obtained at the position indicated by the position data generated in the first step for the bias value corresponding to the map data. A second step performed assuming that
A third step of performing a predetermined evaluation process based on the plurality of map data updated in the second step, and specifying an optimum one of the plurality of bias values. Method.
をさらに有する請求項1に記載のデータ処理方法。 The data processing method according to claim 1, further comprising: a fourth step of controlling a drive system of the moving body based on the bias value specified in the third step.
前記第2の工程は、前記第1の工程で生成した前記姿勢データが示す撮像方向で前記撮像データが得られたと過程して前記地図データの更新を行う
請求項1に記載のデータ処理方法。 The first step further generates posture data indicating an imaging direction of an imaging unit included in the moving body based on the bias value and the measured value of the amount of movement.
2. The data processing method according to claim 1, wherein in the second step, the map data is updated in the course of obtaining the imaging data in the imaging direction indicated by the posture data generated in the first step.
前記第3の工程は、
前記地図データを構成する前記複数のセルに対してエントロピーを計算し、当該エントロピーにより高いピーク領域が形成された地図データに対応した前記バイアス値を特定する
請求項1に記載のデータ処理方法。 When the map data is composed of a plurality of three-dimensionally defined cells each indicating the probability of being occupied by an obstacle that obstructs the movement of the moving object,
The third step includes
The data processing method according to claim 1, wherein entropy is calculated for the plurality of cells constituting the map data, and the bias value corresponding to the map data in which a high peak region is formed by the entropy is specified.
前記第3の工程は、
前記地図データを構成する前記セルの前記確率を基に当該地図データ内の直線部分の分散値を検出し、当該検出した分散値を基に前記バイアス値を特定する
請求項1に記載のデータ処理方法。 When the map data is composed of a plurality of three-dimensionally defined cells each indicating the probability of being occupied by an obstacle that obstructs the movement of the moving object,
The third step includes
The data processing according to claim 1, wherein a variance value of a straight line portion in the map data is detected based on the probability of the cells constituting the map data, and the bias value is specified based on the detected variance value. Method.
前記第3の工程は、
前記撮像データと、現在の移動体の位置・姿勢・バイアス値及び地図データから予測される撮像データとの比較により前記撮像データの尤もらしさを表す尤度を計算し、バイアス毎の尤度の時系列的な積算値(積算尤度重み)を基に前記バイアス値を特定する
請求項1に記載のデータ処理方法。 When the map data is composed of a plurality of three-dimensionally defined cells each indicating the probability of being occupied by an obstacle that obstructs the movement of the moving object,
The third step includes
The likelihood representing the likelihood of the imaging data is calculated by comparing the imaging data with the imaging data predicted from the current position, posture, bias value and map data of the moving object, and the likelihood for each bias The data processing method according to claim 1, wherein the bias value is specified based on a series of integrated values (integrated likelihood weights).
請求項1に記載のデータ処理方法。 The third process performs the evaluation process on the condition that it is determined that the map data has been updated in the second process using imaging data sufficient to perform the evaluation process. The data processing method described.
をさらに有し、
前記第2の工程は、前記第4の工程で変更した前記地図データを更新する
請求項1に記載のデータ処理方法。 Based on the position data generated in the first step, further includes a fourth step of changing the map data so that the mobile body is located near the center in the map indicated by the map data,
The data processing method according to claim 1, wherein the second step updates the map data changed in the fourth step.
請求項6に記載のデータ処理方法。 In order to give priority to the observation of a certain fixed time region or moving region (window) immediately before, the likelihood increase ratio is integrated with the integrated likelihood weight before multiplying the likelihood and the integrated after multiplying the likelihood. The data processing method according to claim 6, wherein the bias value is calculated based on a likelihood weight and the bias value is specified based on the ratio.
前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記位置生成手段で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う地図更新手段と、
前記地図更新手段が更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定するバイアス値特定手段と
を有するデータ処理装置。 Position generation for generating position data indicating the position of the moving body for each of a plurality of different bias values defined in advance with respect to the moving amount of the moving body, based on the bias value and the measured value of the moving amount Means,
When the imaging data is obtained at the position indicated by the position data generated by the position generation unit for the update of the plurality of map data associated with each of the plurality of bias values for the bias value corresponding to the map data. Assumed map update means,
A bias value specifying means for performing a predetermined evaluation process based on the plurality of map data updated by the map update means and specifying an optimal one of the bias values; .
移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する第1の手順と、
前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の手順で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の手順と、
前記第2の手順で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の手順と
を前記コンピュータに実行させるプログラム。 A program executed by a computer,
For each of a plurality of different bias values defined in advance with respect to the amount of movement of the moving object, first data for generating position data indicating the position of the moving object is generated based on the bias value and the measured value of the amount of movement. And the steps
Imaging data is obtained at the position indicated by the position data generated in the first procedure with respect to the bias value corresponding to the map data by updating the plurality of map data associated with each of the plurality of bias values. A second procedure performed assuming that
A third procedure for performing a predetermined evaluation process on the basis of the plurality of map data updated in the second procedure and identifying the optimum one of the plurality of bias values; The program to be executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006036899A JP2007219645A (en) | 2006-02-14 | 2006-02-14 | Data processing method, data processor, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006036899A JP2007219645A (en) | 2006-02-14 | 2006-02-14 | Data processing method, data processor, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007219645A true JP2007219645A (en) | 2007-08-30 |
Family
ID=38496909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006036899A Pending JP2007219645A (en) | 2006-02-14 | 2006-02-14 | Data processing method, data processor, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007219645A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011089787A (en) * | 2009-10-20 | 2011-05-06 | Mitsubishi Electric Corp | Tracking apparatus |
JP2011189481A (en) * | 2010-03-16 | 2011-09-29 | Sony Corp | Control apparatus, control method and program |
GB2502208A (en) * | 2011-01-17 | 2013-11-20 | Wallgate Ltd | Control Apparatus |
JP2018501973A (en) * | 2014-12-09 | 2018-01-25 | アイオロス ロボティクスAeolus Robotics | Robot touch perception |
CN109974722A (en) * | 2019-04-12 | 2019-07-05 | 珠海市一微半导体有限公司 | A kind of the map rejuvenation control method and map rejuvenation control system of vision robot |
-
2006
- 2006-02-14 JP JP2006036899A patent/JP2007219645A/en active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011089787A (en) * | 2009-10-20 | 2011-05-06 | Mitsubishi Electric Corp | Tracking apparatus |
JP2011189481A (en) * | 2010-03-16 | 2011-09-29 | Sony Corp | Control apparatus, control method and program |
GB2502208A (en) * | 2011-01-17 | 2013-11-20 | Wallgate Ltd | Control Apparatus |
GB2502208B (en) * | 2011-01-17 | 2015-09-09 | Wallgate Ltd | Control Apparatus |
JP2018501973A (en) * | 2014-12-09 | 2018-01-25 | アイオロス ロボティクスAeolus Robotics | Robot touch perception |
US11345039B2 (en) | 2014-12-09 | 2022-05-31 | Aeolus Robotics, Inc. | Robotic touch perception |
US11839984B2 (en) | 2014-12-09 | 2023-12-12 | Aeolus Robotics, Inc. | Robotic touch perception |
CN109974722A (en) * | 2019-04-12 | 2019-07-05 | 珠海市一微半导体有限公司 | A kind of the map rejuvenation control method and map rejuvenation control system of vision robot |
CN109974722B (en) * | 2019-04-12 | 2020-09-15 | 珠海市一微半导体有限公司 | Map updating control method and map updating control system of visual robot |
US11892301B2 (en) | 2019-04-12 | 2024-02-06 | Amicro Semiconductor Co., Ltd. | Map update control method and map update control system for vision robot |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3994950B2 (en) | Environment recognition apparatus and method, path planning apparatus and method, and robot apparatus | |
US7386163B2 (en) | Obstacle recognition apparatus and method, obstacle recognition program, and mobile robot apparatus | |
US7769491B2 (en) | Obstacle avoiding apparatus, obstacle avoiding method, obstacle avoiding program, and mobile robot apparatus | |
JP4479372B2 (en) | Environmental map creation method, environmental map creation device, and mobile robot device | |
US8873831B2 (en) | Walking robot and simultaneous localization and mapping method thereof | |
KR101913332B1 (en) | Mobile apparatus and localization method of mobile apparatus | |
JP4929506B2 (en) | Legged mobile robot | |
WO2004018159A1 (en) | Environment identification device, environment identification method, and robot device | |
JP2007041656A (en) | Moving body control method, and moving body | |
US20130116823A1 (en) | Mobile apparatus and walking robot | |
Chestnutt et al. | Biped navigation in rough environments using on-board sensing | |
JP2009271513A (en) | Robot and method of building map therefor | |
JP2003266345A (en) | Path planning device, path planning method, path planning program, and moving robot device | |
JP4016180B2 (en) | Planar extraction method, apparatus thereof, program thereof, recording medium thereof, and imaging apparatus | |
JP2006205348A (en) | Obstacle avoiding device, obstacle avoiding method, obstacle avoiding program, and movable robot device | |
JP2007219645A (en) | Data processing method, data processor, and program | |
JP4535096B2 (en) | Planar extraction method, apparatus thereof, program thereof, recording medium thereof, and imaging apparatus | |
US9193070B2 (en) | Robot, control system for controlling motion of a controlled object, and recording medium for control program for controlling motion of a controlled object | |
WO2004085121A1 (en) | Robot device and method of controlling the same | |
JP2007041657A (en) | Moving body control method, and moving body | |
JP2005128959A (en) | Robot device and its method of learning object | |
JP2003346150A (en) | Floor surface recognition device, floor surface recognition method, and robot device | |
Hwang et al. | A study on robust motion control of humanoid type robot for cooperative working | |
Sung et al. | A study on stable walking control of biped robot on uneven terrain | |
Martín et al. | Visual based localization for a legged robot |