JP2018010412A - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP2018010412A
JP2018010412A JP2016137627A JP2016137627A JP2018010412A JP 2018010412 A JP2018010412 A JP 2018010412A JP 2016137627 A JP2016137627 A JP 2016137627A JP 2016137627 A JP2016137627 A JP 2016137627A JP 2018010412 A JP2018010412 A JP 2018010412A
Authority
JP
Japan
Prior art keywords
fitting
target area
information processing
unit
fitting target
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.)
Granted
Application number
JP2016137627A
Other languages
English (en)
Other versions
JP6786922B2 (ja
Inventor
渉 畠中
Wataru Hatanaka
渉 畠中
余平 哲也
Tetsuya Yohira
哲也 余平
川口 敦生
Atsuo Kawaguchi
敦生 川口
森川 穣
Minoru Morikawa
穣 森川
志村 浩
Hiroshi Shimura
浩 志村
大樹 稲場
Daiki Inaba
大樹 稲場
鈴木 拓也
Takuya Suzuki
拓也 鈴木
健 日原
Takeshi Hihara
健 日原
哲朗 笹本
Tetsuro Sasamoto
哲朗 笹本
大島 久慶
Hisayoshi Oshima
久慶 大島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2016137627A priority Critical patent/JP6786922B2/ja
Publication of JP2018010412A publication Critical patent/JP2018010412A/ja
Application granted granted Critical
Publication of JP6786922B2 publication Critical patent/JP6786922B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】簡単な計算で、通路の境界物に沿ってリアルタイムに安定して移動体を走行制御する。【解決手段】検出部25により検出された移動体の移動路の三次元環境から、抽出部52が、各物体の存在位置及び姿勢を示す当て嵌め対象領域を抽出する。認識部53は、当て嵌め対象領域に対応する物体の外形となる三次元モデルを、位置及び姿勢を調整して当て嵌め対象領域に当て嵌めることで、移動体を原点とした座標系における各物体の位置及び姿勢を認識する。そして、生成部55が、認識された各物体の位置及び姿勢に応じて、移動体を移動制御するための制御信号を生成する。【選択図】図8

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
屋外環境において、カメラ装置又はレーザーレンジファインダ等の外界センサを用いて、通路を形成している壁又は境界に沿って移動体を自動走行するための技術が知られている。
例えば、特許文献1(特開2010−066934号公報)には、三次元モデルを利用して移動体の通路を形成する自己位置認識システムが開示されている。また、特許文献2(特開2009−265941号公報)には、走行領域をもれなく走行させる目的で、境界の縁をレーザー等のセンサを用いて検出し、沿うように移動制御する自律移動装置が開示されている。さらに、特許文献3(特開2006−031503号公報)には、移動体が走行空間内の壁際や隅を探索走行する目的で、接触センサと赤外線センサにより壁との距離を保ちながら壁に沿って移動する自律走行移動体が開示されている。
しかし、従来の走行技術は、予め走行する環境について地図等を作成する必要があるため、手間がかかる問題があった。また、安定して自己位置を計算するためには、計算コストが高くなる問題があった。すなわち、屋外等の開かれた環境では、経時変化が容易に起こるため、定期的に地図を更新する必要がある。また、屋外の不整地環境における外界センサの振動は、自己位置推定に悪影響を与える。このため、安定して自動走行させるためには、様々なセンサ出力に基づく計算を行う必要があり、計算コストが高くなる。
特許文献1に開示されている自己位置認識システムの場合、環境全体のデータを作る必要があり、移動体の振動等による画像とモデルのズレを考慮していないため、手間がかかり、かつ、不整地環境で安定した自動走行ができないという問題がある。特許文献2に開示されている自律移動装置の場合、境界の縁の認識が困難となる問題がある。さらに、特許文献3に開示されている自律走行移動体の場合、例えば壁等の一様な境界面しか対応しておらず、屋外環境で安定して移動困難となる問題がある。
本発明は、上述の課題に鑑みてなされたものであり、簡単な計算で、通路の境界物に沿ってリアルタイムに安定して移動体を走行制御できるような情報処理装置、情報処理方法及び情報処理プログラムの提供を目的とする。
上述した課題を解決し、目的を達成するために、本発明は、検出部により検出された移動体の移動路の三次元環境から、各物体の存在位置及び姿勢を示す当て嵌め対象領域を抽出する抽出部と、当て嵌め対象領域に対応する物体の外形となる三次元モデルを、位置及び姿勢を調整して当て嵌め対象領域に当て嵌めることで、移動体を原点とした座標系における各物体の位置及び姿勢を認識する認識部と、認識された各物体の位置及び姿勢に応じて、移動体を移動制御するための制御信号を生成する生成部とを有する。
本発明によれば、簡単な計算で、通路の境界物に沿ってリアルタイムに安定して移動体を走行制御できるという効果を奏する。
図1は、実施の形態のクローラの外観を示す斜視図である。 図2は、実施の形態のクローラの上面図である。 図3は、アーム部を移動させるアクチュエータが設けられたクローラを示す図である。 図4は、アーム部を移動させる複数のアクチュエータが設けられたクローラを示す図である。 図5は、アーム部を移動させる複数のアクチュエータ及びレールが設けられたクローラを示す図である。 図6は、実施の形態のクローラの電気構成を説明するためのハードウェア構成図である。 図7は、実施の形態のクローラのソフトウェア構成を説明するための図である。 図8は、実施の形態のクローラの機能ブロック図である。 図9は、実施の形態のクローラの領域抽出部における領域抽出動作を説明するための図である。 図10は、実施の形態のクローラの領域抽出部の領域抽出動作の流れを示すフローチャートである。 図11は、実施の形態のクローラの姿勢認識部における姿勢認識処理を説明するための図である。 図12は、実施の形態のクローラの姿勢認識部による、当て嵌め対象領域に対する3Dモデルの当て嵌め処理を説明するための図である。 図13は、実施の形態のクローラの姿勢認識部による、全長が長い当て嵌め対象領域に対する3Dモデルの当て嵌め処理を説明するための図である。 図14は、実施の形態のクローラの姿勢認識部における姿勢認識処理の流れ示すフローチャートである。 図15は、対向二輪モデルである実施の形態のクローラの左右の車輪の速度を示すパラメータを説明するための図である。 図16は、境界物が一つである場合における、実施の形態のクローラの移動方向の演算動作を説明するための図である。 図17は、境界物が二つである場合における、実施の形態のクローラの移動方向の演算動作を説明するための図である。
以下、図面に基づいて実施の形態の移動体となるクローラの説明をする。この実施の形態のクローラは、三次元計測センサにより取得したデータに対して、通路を形成している物体及び領域の三次元モデル(3Dモデル)をリアルタイムで当て嵌めることで、通路境界を認識し、3Dモデルに対する相対自己位置を用いて移動制御を行う。なお、以下、移動体は、地面を走行するクローラであることとして説明を進めるが、移動体は、遠隔操作又は自動的に空中を移動する移動体でもよいし、水上又は水中を移動する移動体でもよいものと理解されたい。
(クローラの機械構成)
図1は、実施の形態のクローラ1の外観を示す斜視図である。また、図2は、クローラ1の上面図である。この図1及び図2は、クローラ1の前側に境界を形成する境界物3が存在する例を示している。境界物3は、例えば車道と歩道の区切りを示す縁石等が該当する。クローラ1は、キャタピラ4を回転駆動して地面を移動する。本体5上には、屈曲動作及び回転動作等が可能なアーム部6が設けられている。また、アーム部6の先端部(反本体5側)には、三次元計測センサ2が設けられている。
一例ではあるが、三次元計測センサ2としては、ステレオカメラ装置が設けられている。また、アーム部6には、三次元計測センサ2を移動させるアクチュエータが設けられている。図3の例は、アーム部6の先端に三次元計測センサ2を上下左右方向及び斜め方向に移動させるアクチュエータ7が設けられている例である。
また、図4(a)の例は、アーム部6の本体5側に、アーム部6を中心軸回りに回転動作させるアクチュエータ8が設けられている。また、アーム部6の全長に対して約真ん中の位置に、アーム部6を上下に屈曲させるアクチュエータ9が設けられている。さらに、アーム部6の反本体5側に、三次元計測センサ2を上下左右方向及び斜め方向に移動させるアクチュエータ7が設けられている。図4(b)は、図4(a)に示したクローラ1を前方から見た状態を示す正面図である。この図4(b)からわかるように、図4(a)に示したクローラ1の場合、アーム部6を上下に屈曲移動させることができ、また、アーム部6を、360度、回転駆動することができる。
また、図5(a)の例は、クローラ1が前進する方向に対して2次元的に直交する方向に沿ってアーム部6を移動させるレール10を、本体5に設けた例である。図5(b)は、アーム部6を取り除いた状態で、レール10を本体5の上面側から見た図である。また、図5(c)は、クローラ1を正面から見た状態の正面図であり、アーム部6がレール10の右端まで移動した状態を示している。なお、レールは、クローラ1が前進する方向及び斜め方向に沿って設けてもよい。
このようにアクチュエータ7〜9及びレール10を設けることで、三次元計測センサ2を自在に移動可能とすることができ、センシング領域を広げることができる。
(クローラのハードウェア構成)
次に、図6に、クローラ1の電気回路のハードウェア構成を示す。この図6に示すように、クローラ1は、CPU21、ROM22、RAM23、HDD24、三次元計測センサ25、モーションセンサ26、アクチュエータ27、移動モータ28及び通信部29を有している。CPU21〜通信部29は、バスライン30を介して相互に接続されている。
CPU21は、後述する情報処理プログラムに基づいて、クローラ1の動作を制御する。ROM22には、オペレーションシステム(OS)等のプログラムが記憶されている。RAM23は、CPU21により情報処理プログラムが展開され、また、ワークエリア等として用いられる。HDD24には、所定のプログラム及び各センサから取得された情報等が記憶される。
三次元計測センサ25は、三次元情報を取得するためのセンサであり、図1〜図5を用いて説明した三次元計測センサ2に相当する。三次元計測センサ25は、対象となる領域を認識するために、ステレオカメラ装置、又は、LIDAR(Light Detection and Ranging、又は、Laser Imaging Detection and Ranging)等を用いる。
モーションセンサ26は、クローラ1の姿勢とステレオカメラ装置の姿勢を取得するためのセンサであり、加速度、角加速度、地磁気等の情報を用いてクローラ1の姿勢を示す情報取得する。アクチュエータ27は、図3〜図5を用いて説明したアクチュエータ7〜9等に相当し、様々な方向の情報を得るために三次元計測センサ25移動させる。
移動モータ28は、キャタピラ4を回転駆動させてクローラ1を地面に沿って移動させる。通信部29は、オペレータからの制御情報等を受信し、また、各センサの情報をオペレータ側の制御装置等に送信する無線通信(有線通信でもよい)を行う。
(クローラのソフトウェア構成)
次に、図7は、クローラ1に記憶されているプログラム及び各種情報を示している。この図7に示しように、クローラ1には、情報処理プログラム、三次元情報、認識結果、OS及び3Dモデル等が記憶されている。これらのプログラム及び各種情報は、クローラ1の内外を問わず、どこに記憶されていてもよいが、一例として、この実施の形態の場合、情報処理プログラム、三次元情報、認識結果、及び、3Dモデルは、HDD24に記憶されている。また、OSは、ROM22に記憶されている。
なお、上述したプログラム、情報、3Dモデル等は、一例として、ROM22又はHDD24等に記憶されることとしたが、この他、RAM22又はフラッシュメモリ等の他の記憶部に記憶してもよい。さらには、ネットワークを介して接続可能な記憶装置等からダウンロードして用いてもよい。
(クローラの機能構成)
次に、クローラ1のCPU21は、HDD24に記憶されている情報処理プログラムを実行することで、図8に示す各種機能を実現する。具体的には、CPU21は、情報処理プログラムを実行することで、演算部41及び作成部42を実現する。演算部41は、各種機能として、点群取得部51、領域抽出部52、姿勢認識部53、三次元計測センサ制御部54及び移動制御部55を有している。また、作成部42は、各種機能として、3Dモデル作成部61、地図作成部62及び記憶制御部63を有している。
点群取得部51は、三次元計測センサ25によって得られたデータを点群として処理する。領域抽出部52は、抽出部の一例であり、点群取得部51で生成された点群に基づいて領域を抽出する。姿勢認識部53は、認識部の一例であり、領域抽出部52で抽出された領域から、境界を形成している物体がどのような姿勢で存在しているかを認識する。三次元計測センサ制御部54は、3Dモデルをセンシングするために、アクチュエータ27を制御する。
移動制御部55は、生成部の一例である。移動制御部55は、姿勢認識部53からの姿勢認識出力、モーションセンサ26で検出されるクローラ1の姿勢(及び三次元計測センサ25の姿勢)、及び、以下に説明する地図作成部62で検出されるクローラ1の位置に基づいて、クローラ1を走行制御するための制御信号を生成する。移動制御部55は、制御信号を移動モータ28に供給して回転駆動し、クローラ1を走行制御する。また、移動制御部55は、アクチュエータ27を駆動制御するためのアクチュエータ制御信号を生成する。アクチュエータ制御信号は、三次元計測センサ制御部54を介してアクチュエータ27に供給される。これにより、アクチュエータ27を介して三次元計測センサ25の姿勢が制御される。
3Dモデル作成部61は、例えばCAD(Computer Aided Design)システム等を用いることができ、後述する3Dモデルを作成する。地図作成部62は、キャタピラ4を回転させる移動モータ28の回転角等からのオドメトリ情報、又は、GPS(Global positioning system)による座標値等に基づいて、クローラ1の走行位置を検出して走行履歴を作成する。記憶制御部63は、三次元情報、認識結果、3Dモデル及び走行履歴等をHDD24等の記憶部に記憶する。
なお、この例では、点群取得部51〜移動制御部55、及び、3Dモデル作成部61〜記憶制御部63は、情報処理プログラムにより、ソフトウェア的に実現されることとして説明を進める。しかし、点群取得部51〜移動制御部55、及び、3Dモデル作成部61〜記憶制御部63のうち、一部又は全部を、IC(Integrated Circuit)等のハードウェアで実現してもよい。
また、情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、情報処理プログラムは、CD−R、DVD(Digital Versatile Disk)、ブルーレイディスク(登録商標)、半導体メモリ等のコンピュータ装置で読み取り可能な記録媒体に記録して提供してもよい。また、情報処理プログラムは、インターネット等のネットワーク経由でインストールするかたちで提供してもよい。さらに、情報処理プログラムは、機器内のROM等に予め組み込んで提供してもよい。
(領域抽出動作の概要)
次に、図9を用いて、領域抽出部52における領域抽出動作を説明する。図9(a)は、三次元計測センサ25が地面と水平に前方を向いている状態を示す図である。三次元計測センサ25には、モーションセンサ26が取り付けられている。モーションセンサ26で、三次元計測センサ25の姿勢を検出することで、三次元計測センサ25から取得した点群情報の地面からの高さ位置を検出することができる。例えば、図9(a)に示すように、地面に対して垂直方向を三次元計測センサ25のZ軸とし、右側(移動体の前方)方向を三次元計測センサ25のY軸とする。三次元計測センサ25の中心を原点(0,0,0)としたとき、重力加速度の基底ベクトルgは(0,0,−1)で表すことができる。
次に、この状態で前方方向にθだけ三次元計測センサ25を傾けたとする。重力加速度ベクトルの方向は常に地面の方向を向いているが、三次元計測センサ25自体は傾いているので、センサ座標系で考えると、gは(0,sinθ,cosθ)で表すことができる。この時、三次元計測センサ25から得られた点群上のある点のベクトルをp(a,b,c)とすると、センサ座標系における点pの地面に垂直方向のベクトルhvはgとpのベクトルの内積「g×p」で表すことができる。すなわち、三次元計測センサ25の地面からの高さHから、ベクトルhvの大きさを引くことで(H−|hv|)、点pの地面からの高さを得ることができる。これにより、三次元計測センサ25の姿勢にかかわらず、得られた点群の地面からの高さを求めることができる。
(領域抽出動作の流れ)
次に、図10のフローチャートを用いて、領域抽出部52における、3Dモデルをあてはめる領域を抽出する動作の流れを説明する。まず、クローラ1に取り付けられている三次元計測センサ25の地面からの高さ位置を取得する(ステップS1)。この三次元計測センサ25の高さ位置は、あらかじめ人間が入力しても良いし、超音波センサからの超音波を地面に出射して戻ってくる時間を検出して測定しても良い。
次に、点群取得部51からN個の点群点p_n(n=1,2,〜N)を取得し、初期値としてn=1をセットする(ステップS2)。次に、三次元計測センサ25に設けられたモーションセンサ26から姿勢情報を取得し、図9(a)を用いて説明した重力加速ベクトルgを計算する(ステップS3)。次に、図9(b)を用いて説明した点pにおける地面に垂直方向のベクトルhvを計算する(ステップS4)。
次に、地面から三次元計測センサ25までの高さHと、ベクトルhvの大きさ|hv|を比較する。そして、地面から三次元計測センサ25までの高さHは、ベクトルhvの大きさ|hv|よりも大きいか否かを判別する(ステップS5)。高さHの方が大きい、つまり点p_nの高さが、地面よりも高い位置にある場合は(ステップS5:Yes)、「ラベル1」をp_nに付与する(ステップS6)。高さHの方が小さい、つまり点p_nの高さが、地面よりも低い位置にある場合は(ステップS5:No)、「ラベル0」をp_nに付与する(ステップS7)。
次に、nの数が、点群の総数であるN個となったか否かを判別する(n=N?:ステップS8)。nの数が、点群の総数であるN個となっていない場合は(ステップS8:No)、nの数を一つインクリメントし、ステップS3に処理を戻す(ステップS10)。nの数が、点群の総数であるN個となった場合は(ステップS8:Yes)、ステップS3からの処理が全ての点群に対して行われたことを意味するため、点群においてラベル1が付与されている点を「当て嵌め対象領域」の点として、記憶制御部63が、HDD24等の記憶部に保存して(ステップS9)、図10のフローチャートの処理を終了する。
(姿勢認識処理)
次に、図11を用いて姿勢認識部53による姿勢認識処理を説明する。姿勢認識部53は、境界を形成する物体に対し、3Dモデルを当て嵌めることで、物体がどのような姿勢で存在しているのかを認識する。例えば、図11(a)に示すように四角柱形状の縁石70が車道と歩道の境界に沿って設けられていたとする。これに対して、図11(b)に示す四角柱形状の3Dモデルである縁石モデル70Dが、縁石70に対して当て嵌めを行う3Dモデルである。図11(b)に示すxyzの座標系は、縁石モデル70Dの中心を原点としたモデル座標系を示している。
例えば、クローラ1と縁石70が、図11(c)に示すように、クローラ1の左斜め前方に、縁石70が存在する位置関係であるとする。姿勢認識部53は、この位置関係のクローラ1と縁石70を、三次元計測センサ25の中心を原点としたセンサ座標系で考え、図11(d)に示すように、縁石モデル70Dをセンサ座標系で回転及び移動させることで、上述のラベル1が付された点群である当て嵌め対象領域の中から、縁石モデル70Dの形に合致する形状の当て嵌め対象領域を検出し、縁石モデル70Dを当て嵌める。当て嵌め対象領域に縁石モデル70Dが当て嵌まったとき、センサ座標系における縁石モデル70Dの姿勢及び位置がわかる。すなわち、実際の縁石70がどのような姿勢で存在しているかを認識することができる。
姿勢認識部53は、三次元計測センサ25からのセンサ出力に対して、このような姿勢認識処理をフレーム毎に行う。これにより、例えばクローラ1が不整地走行等を行うことで三次元計測センサ25に振動が生じても、移動制御には悪影響を受ける不都合を防止できる。また、このような姿勢認識処理を毎フレーム行うことにより、センサ座標系において3Dモデルを移動させる距離は、フレーム間で少ない距離で済むため、姿勢認識処理の処理時間を極短時間化することができ、略々リアルタイムでの姿勢認識処理を可能とすることができる。また、3Dモデルを当て嵌めることができれば、三次元計測センサ25のセンサ座標系において、物体とクローラ1との相対的な位置関係がわかるため、クローラ1を物体の境界に沿って移動させることができる。
(他の3Dモデルの当て嵌め例)
図12は、各3Dモデルの当て嵌め例を示している。図12(a)は、ガードレール75の3Dモデルであるガードレールモデル75Dの当て嵌め例を示している。図12(a)の場合、ガードレール75は、クローラ1の前進方向の斜め右側に位置している。姿勢認識部53は、上述のラベル1が付された点群である当て嵌め対象領域の中から、ガードレールモデル75Dの形に合致する形状の当て嵌め対象領域を検出し、ガードレールモデル75Dを当て嵌める。これにより、センサ座標系におけるガードレールモデル75Dの姿勢及び位置を介して、実際のガードレール75がどのような姿勢で存在しているかを認識することができる。
図12(b)は、段差76の3Dモデルである段差モデル76Dの当て嵌め例を示している。図12(b)の場合、段差76は、クローラ1の右側に、クローラ1の前進方向に沿って形成されている。姿勢認識部53は、上述のラベル1が付された点群である当て嵌め対象領域の中から、段差モデル76Dの形に合致する形状の当て嵌め対象領域を検出し、段差モデル76Dを当て嵌める。これにより、センサ座標系における段差モデル76Dの姿勢及び位置を介して、実際の段差76がどのような姿勢で存在しているかを認識することができる。
図12(c)は、ロードコーン77の3Dモデルであるロードコーンモデル77Dの当て嵌め例を示している。図12(c)の場合、ロードコーン77は、クローラ1の前進方向の右斜め前側の道路上に載置されている。姿勢認識部53は、上述のラベル1が付された点群である当て嵌め対象領域の中から、ロードコーンモデル77Dの形に合致する形状の当て嵌め対象領域を検出し、ロードコーンモデル77Dを当て嵌める。これにより、センサ座標系におけるロードコーンモデル77Dの姿勢及び位置を介して、実際のロードコーン77がどのような姿勢で存在しているかを認識することができる。
図12(d)は、側溝78の3Dモデルである側溝モデル78Dの当て嵌め例を示している。図12(d)の場合、側溝78は、クローラ1の右側に、クローラ1の前進方向に沿って形成されている。姿勢認識部53は、上述のラベル1が付された点群である当て嵌め対象領域の中から、側溝モデル78Dの形に合致する形状の当て嵌め対象領域を検出し、側溝モデル78Dを当て嵌める。これにより、センサ座標系における側溝モデル78Dの姿勢及び位置を介して、実際の側溝78がどのような姿勢で存在しているかを認識することができる。
このように、縁石70のような比較的単純な物体の他、3Dモデルで表現できる物体であれば、様々な形状の物体で形成された境界を認識できる。例えば、図12(b)に示した段差76は、横断面がアルファベットの「Z」の文字の形状とした段差モデル76Dを用いることで、実際の段差76を認識できる。また、図12(d)に示した側溝78は、横断面がカタカナの「コ」の文字の形状とした側溝モデル78Dを用いることで、実際の側溝78を認識できる。
なお、図12(c)に示したように、複数のロードコーン77が所定の間隔で道路上に置かれている場合、一つのロードコーンモデル77Dにより、各ロードコーン77を、一つずつ認識しても良い。または、複数のロードコーンモデル77Dを所定の間隔をおいて仮想的に連結したロードコーンモデル77Dを用いて、複数のロードコーン77を一度に認識しても良い。
また、同一形状の物体が長く連なって境界を形成している場合、三次元計測センサ25が、例えばステレオカメラ装置のように,視野に限りがあるセンサでは、一度に境界全てを撮像することは困難となる。このような場合、姿勢認識部53は、連続している境界を形成する一つの物体の一部の形状に対応する3Dモデルを、クローラ1の進行に応じて、境界を形成する物体に順次当て嵌める動作を繰り返し行う。換言すると、姿勢認識部53は、当て嵌め対象領域の全長が、3Dモデルの全長よりも長い場合、当て嵌め対象領域に対する3Dモデルの当て嵌め位置を、クローラ1の進行に応じて更新する。
具体的には、図13(a)に示すようにクローラ1の進行方向に沿って、一連のガードレール75が設けられていたとする。この場合、姿勢認識部53は、一連のガードレール75の一部となるガードレールモデル75Dを、図13(b)に示すようにクローラ1の進行に応じて、ガードレール75に相当する当て嵌め対象領域に、順次、当て嵌める。換言すると、姿勢認識部53は、ガードレールモデル75Dを当て嵌める当て嵌め対象領域を、クローラ1の進行に応じて順次、更新する。これにより、三次元計測センサ25の視野に限りがある場合でも、連続する物体を、クローラ1の進行に応じて順次認識できる。
また、姿勢認識部53は、一連の物体を分割して認識できるため、一連の物体が曲線状に形成されている場合、及び、境界となる物体が断続的かつ直線上に設置されていない場合でも、正確に認識できる。このため、クローラ1を、物体の設置位置に応じて、正確かつ安定して移動させることができる。
(姿勢認識処理の流れ)
次に、姿勢認識部53が、3Dモデルを当て嵌めて、物体の姿勢を認識する姿勢認識処理の流れを、図14のフローチャートを用いて説明する。まず、3Dモデルは、事前に3Dモデル作成部61により作成され、記憶制御部63によりHDD24に記憶されている。姿勢認識部53は、認識対象となる3DモデルをHDD24から取得する(ステップS11)。
次に、姿勢認識部53は、後述する3Dモデルの当て嵌まり具合を評価するための評価関数Eと、閾値Tを設定する(ステップS12)。次に、姿勢認識部53は、点群取得部51及び領域抽出部52を介して三次元計測センサ25からのデータを取得する(ステップS13)。次に、姿勢認識部53は、領域抽出部52により、上述のラベル1が付された当て嵌め対象領域を取得する(ステップS14)。
次に、姿勢認識部53は、HDD24から取得した3DモデルMを、三次元計測センサ25のセンサ座標系に投影する(ステップS15)。次に、姿勢認識部53は、評価関数Eに従い、当て嵌め対象領域と3Dモデルとの当て嵌り具合を示す評価値を計算する(ステップS16)。そして、姿勢認識部53は、算出した評価値と所定の閾値Tとを比較し(ステップS17)、評価値が閾値Tより大きい場合(E<T:ステップS17:No)、3Dモデルを移動及び回転させ(ステップS20)、再び評価値を計算する(ステップS16)。姿勢認識部53は、このようなステップS16、ステップS17及びステップS20の処理を、評価値が閾値Tよりも小さな値となるまで(ステップS17:Yes)、繰り返し実行する。
次に、姿勢認識部53は、3DモデルMの位置により、三次元計測センサ25のカメラ制御を行うか否かを判別する(ステップS18)。すなわち、例えばステレオカメラ装置等のように、三次元計測センサ25としてセンシング範囲が制限されるセンサが設けられている場合、3DモデルMがセンシング範囲外に出てしまうと、境界が認識困難となる。このため、姿勢認識部53は、センシング範囲内に3DモデルMが2/3以上位置しているか否か、又は、3DモデルMの任意の端点が、画面内の中心にあるか否か、等の判別を行うことで、センシング範囲内に位置している3DモデルMの範囲を判別する。
センシング範囲内に位置する3DモデルMの範囲が所定以下の範囲となり、カメラ制御が必要になったと判別した場合(ステップS18:Yes)、姿勢認識部53は、3DモデルMがセンシングの範囲内(中央)に位置するように、アクチュエータ27を介して三次元計測センサ25を移動制御する(ステップS21)。3DモデルMの位置は、センサ座標系により検出できる。このため、センサ座標系で検出した3DモデルMの位置に基づいて、アクチュエータ27をフィードバック制御することで、3DモデルMを継続してセンシング範囲内に位置させることができる。
次に、センシング範囲内に位置する3DモデルMの範囲が所定よりも大きな範囲となり、カメラ制御が不要になったと判別した場合(ステップS18:No)、姿勢認識部53は、センサ座標系で検出された3DモデルMの位置及び姿勢の各情報を、記憶制御部63を介してHDD24等の記憶部に記憶する(ステップS19)。なお、姿勢認識部53は、3DモデルMの姿勢の情報を、四元数(クオータニオン)又はオイラー角表示の情報形態で記憶部に記憶する。
(評価関数の設定)
次に、上述のステップS2で説明した当て嵌め対象領域に対する3Dモデルの当て嵌まり具合を評価するための評価関数Eの設定アルゴリズムを説明する。この実施の形態のクローラ1は、3Dモデルを当て嵌め対象領域に当て嵌めるためのアルゴリズムとしては、三次元の点群をそのまま利用するアルゴリズムと、画像との対応関係に基づいて点群を2次元の点群に変換して行うアルゴリズム等がある。
三次元の点群をそのまま利用するアルゴリズムとしては、例えばICP(Iterative Closest Point)アルゴリズム等を用いることができる。このICPアルゴリズムは、点群の三次元座標値の距離情報に基づいて、二つのデータ(センサデータ、3Dモデル)の位置合わせを行うアルゴリズムである。評価関数Eとしては、二つのデータ点同士の距離の和を用い、所定の閾値以下になるまで3Dモデルを動かしながら位置合わせを行う。ICPアルゴリズムは、全データ点同士の距離計算を行うので処理時間を要する。しかし、ICPアルゴリズムは、サンプリングによる点の間引き処理、及び、データ点同士の近傍探索手法の最適化処理等を適用できる。また、ICPアルゴリズムは、GPU(Graphics Processing Unit)を用いた並列計算により、計算速度を高速化できるため、十分にリアルタイム性を確保することができる。このICPアルゴリズムの参考文献1を以下に示す。
(参考文献1)
P.Besl and N. McKay. A Method for Registration of 3-D Shapes. IEEE Trans. Pattern Analysis and Machine Intelligence, 14:239-256, 1992.
画像との対応関係に基づいて点群を2次元の点群に変換して行うアルゴリズムとしては、3Dモデルベースドトラッキング(3D Model based tracking)アルゴリズムを用いることができる。このアルゴリズムは、ステレオカメラ装置等の画像情報と点群情報の両方を有している場合に用いることができる。このアルゴリズムは、カメラ内部行列を基に3Dモデルを画像空間上に投影し、3Dモデルと対象物の姿勢を画像上で一致させる。位置合わせを行うための特徴量としては、エッジベース、特徴点ベース、領域ベース等を用いることができる。この3Dモデルベースドトラッキングアルゴリズムの参考文献2〜参考文献4を以下に示す。
(参考文献2)
T. Drummond and R. Cipolla. Real-time visual tracking of complex struc- tures. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24:932- 946, 2002.
(参考文献3)
Klein, Georg, and David Murray. "Parallel tracking and mapping for small AR workspaces." Mixed and Augmented Reality, 2007. ISMAR 2007.
(参考文献4)
V. A. Prisacariu and I. D. Reid. PWP3D: Real-time segmentation and tracking of 3D objects. In Proc 19th British Machine Vision Conference, 2009.
評価関数Eとしては、例えば参考文献4の場合、3Dモデルを画像上に投影した領域(シルエット)と、画像上に存在する物体の領域の一致度を確率同士の計算により求めた評価関数Eを用いている。3Dモデルの回転及び移動については、微分計算により求めることができ、GPU(Graphics Processing Unit)を用いた並列計算により、高速な計算が可能である。
(移動制御動作)
次に、移動制御部55の移動制御動作を説明する。なお、移動制御部55は、図15に示すように対向二輪モデルとなるクローラ1を、移動体として移動制御することとして説明を進める。しかし、対向二輪モデルの他、リモートコントローラ等で遠隔操作される空中を移動する移動体、又は、人が運転操作する自動車等移動体にも、以下に説明する移動制御をモデル化して適用可能である。
対向二輪モデルでは、右の車輪と左の車輪を独立に制御する。図15に示すvLとvRは、それぞれ左の車輪と右の車輪の速度を示している。vは平均速度で、両輪の速度差dvにより、旋回制御を行うことができる(vL=v−dv、vR=v+dv)。
移動制御部55は、図16に示すようにクローラ1の移動方向ベクトルと、境界物となっている縁石70の境界ベクトル(方向ベクトル)の角度差を算出することで、縁石70に沿ったクローラ1の移動方向を算出する。また、移動制御部55は、クローラ1の所定時間後(t秒後)の移動位置と境界ベクトルの位置とを比較することで、縁石70との間に所定の距離(margin)を保ちながらクローラ1を移動制御する。なお、移動制御部55は、三次元計測センサ25のセンサ情報を取得するフレームと、現在のクローラ1の速度に基づいて、上述の所定時間tを決定する。
移動制御部55は、制御値の計算に、クローラ1の原点として考える移動体座標系を用いる。クローラ1が沿って進行する縁石70の軸方向は、図16に示すように、縁石70の中心を通る方向である。このため、移動制御部55は、縁石70の境界ベクトル(方向ベクトル)を、縁石70の中心に沿って、クローラ1の移動方向に設定する。
移動制御部55は、以下の数式に基づいて、クローラ1の左右車輪の速度差dvを算出する。
dv=KL(C(L)−(sgnL×margin))+Ktθ
この数式において、「KL」は、クローラ1と縁石70との間の距離を示している。また、「Kt」は、クローラ1の移動方向ベクトルと縁石70の境界ベクトルとの角度差θの係数を示している。また、「margin」は、クローラ1が縁石70に沿って移動する際に、クローラ1と縁石70との間に保持する距離を示すパラメータである。移動制御部55は、これらの数値を変更することで、クローラ1を縁石70から「margin」分の距離を保持した状態で縁石70に沿って移動させることができる。これらのパラメータは、予め手動で決められた数値を用いる。
また、左右車輪の速度差dvが大きくなり過ぎると、margin付近の距離でクローラ1がふらつきながら移動する不都合を生ずる。このため、移動制御部55は、以下の数1式の演算を行うことで、左右車輪の速度差dvが大きくなり過ぎたときに、制御値が、閾値clip以上にならないように、クリッピング関数C(L)を算出して設定する。
Figure 2018010412
この数式において、「Sgn」は、符号関数を示している。また、「L」はt秒後のクローラ1の移動位置と境界ベクトルとの間の距離を示している。また、「L」は符号付きの距離となっており、移動体座標系で考えた時、クローラ1の進行方向の左側に縁石70が存在する場合はプラスの値となり、クローラ1の進行方向の右側に縁石70がある場合はマイナスの値となる。このようなクリッピング関数C(L)を設定することで、スムーズに走行するようにクローラ1の走行を制御できる。
また、図17に示すように、クローラ1の左右に縁石70が存在する場合、移動制御部55は、「margin」を各縁石70の間の距離の1/2の距離に設定する。これにより、クローラ1を、各縁石70の中間位置を、各縁石70に沿って移動させることができる。この場合、縁石70の3Dモデルである縁石モデル70Dを二つ用意し、当て嵌め対象領域に当て嵌めることで、同時に二つの縁石70を認識することができる。
(実施の形態の効果)
以上の説明から明らかなように、実施の形態のクローラ1は、三次元計測センサ25からのセンサ出力に基づいて検出される通路上の物体を示す当て嵌め対象領域に、通路上の物体に対応する3Dモデルを当て嵌めることで、縁石70等の境界物を認識する。そして、境界物に沿ってクローラ1を移動制御する。これにより、屋外環境又は不整地環境等であっても、簡単な演算で安定してクローラ1を走行制御できる。
また、当て嵌め対象領域に、通路上の物体に対応する3Dモデルを当て嵌める処理を、三次元計測センサ25からのセンサ出力のフレーム毎に行う。隣接するフレーム間における3Dモデルの移動距離は、少ない距離の移動制御で済むため、略々リアルタイムで当て嵌め対象領域に対する3Dモデルの当て嵌め処理を行うことができる。このため、リアルタイムで安定して、境界物に沿ってクローラ1を走行制御できる。
最後に、上述の実施の形態は、一例として提示したものであり、本発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことも可能である。また、実施の形態は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1 クローラ
2 三次元計測センサ
3 縁石
4 キャタピラ
5 本体
6 アーム部
7 アクチュエータ
8 アクチュエータ
9 アクチュエータ
10 レール
21 CPU
22 ROM
23 RAM
24 HDD
25 三次元計測センサ
26 モーションセンサ
27 アクチュエータ
28 移動モータ
29 通信部
41 演算部
42 作成部
51 点群取得部
52 領域抽出部
53 姿勢認識部
54 三次元センサ制御部
55 移動制御部
61 3Dモデル作成部
62 地図作成部
63 記憶制御部
70 縁石
70D 縁石モデル
75 ガードレール
75D ガードレールモデル
76 段差
76D 段差モデル
77 ロードコーン
77D ロードコーンモデル
78 側溝
78D 側溝モデル
特開2010−066934号公報 特開2009−265941号公報 特開2006−031503号公報

Claims (9)

  1. 検出部により検出された移動体の移動路の三次元環境から、各物体の存在位置及び姿勢を示す当て嵌め対象領域を抽出する抽出部と、
    前記当て嵌め対象領域に対応する物体の外形となる三次元モデルを、位置及び姿勢を調整して前記当て嵌め対象領域に当て嵌めることで、前記移動体を原点とした座標系における前記各物体の位置及び姿勢を認識する認識部と、
    認識された前記各物体の位置及び姿勢に応じて、前記移動体を移動制御するための制御信号を生成する生成部と
    を有する情報処理装置。
  2. 前記抽出部は、前記各物体の姿勢と高さに基づいて、前記移動路を分離する境界物の前記当て嵌め対象領域を前記三次元環境から抽出し、
    前記認識部は、前記当て嵌め対象領域に対応する前記境界物の外形となる三次元モデルを、位置及び姿勢を調整して前記当て嵌め対象領域に当て嵌めることで、前記移動体を原点とした前記境界物の位置及び姿勢を認識し、
    前記生成部は、認識された前記境界物に沿って、前記移動体を移動制御するための制御信号を生成すること
    を特徴とする請求項1に記載の情報処理装置。
  3. 前記認識部は、前記当て嵌め対象領域に前記三次元モデルを当て嵌める処理を、前記検出部からの検出出力のフレーム毎に行うこと
    を特徴とする請求項1又は請求項2に記載の情報処理装置。
  4. 前記認識部は、前記当て嵌め対象領域の全長が前記三次元モデルの全長よりも長い場合、前記当て嵌め対象領域に対する前記三次元モデルの当て嵌め位置を、前記移動体の進行に応じて更新すること
    を特徴とする請求項1から請求項3のうち、いずれか一項に記載の情報処理装置。
  5. 検出部により検出された移動体の移動路の三次元環境から、抽出部が、各物体の存在位置及び姿勢を示す当て嵌め対象領域を抽出する抽出ステップと、
    認識部が、前記当て嵌め対象領域に対応する物体の外形となる三次元モデルを、位置及び姿勢を調整して前記当て嵌め対象領域に当て嵌めることで、前記移動体を原点とした座標系における前記各物体の位置及び姿勢を認識する認識ステップと、
    生成部が、認識された前記各物体の位置及び姿勢に応じて、前記移動体を移動制御するための制御信号を生成する生成ステップと
    を有する情報処理方法。
  6. コンピュータを、
    検出部により検出された移動体の移動路の三次元環境から、各物体の存在位置及び姿勢を示す当て嵌め対象領域を抽出する抽出部と、
    前記当て嵌め対象領域に対応する物体の外形となる三次元モデルを、位置及び姿勢を調整して前記当て嵌め対象領域に当て嵌めることで、前記移動体を原点とした座標系における前記各物体の位置及び姿勢を認識する認識部と、
    認識された前記各物体の位置及び姿勢に応じて、前記移動体を移動制御するための制御信号を生成する生成部として機能させること
    を特徴とする情報処理プログラム。
  7. 前記抽出部は、前記各物体の姿勢と高さに基づいて、前記移動路を分離する境界物の前記当て嵌め対象領域を前記三次元環境から抽出し、
    前記認識部は、前記当て嵌め対象領域に対応する前記境界物の外形となる三次元モデルを、位置及び姿勢を調整して前記当て嵌め対象領域に当て嵌めることで、前記移動体を原点とした前記境界物の位置及び姿勢を認識し、
    前記生成部は、認識された前記境界物に沿って、前記移動体を移動制御するための制御信号を生成すること
    を特徴とする請求項6に記載の情報処理プログラム。
  8. 前記認識部は、前記当て嵌め対象領域に前記三次元モデルを当て嵌める処理を、前記検出部からの検出出力のフレーム毎に行うこと
    を特徴とする請求項6又は請求項7に記載の情報処理プログラム。
  9. 前記認識部は、前記当て嵌め対象領域の全長が前記三次元モデルの全長よりも長い場合、前記当て嵌め対象領域に対する前記三次元モデルの当て嵌め位置を、前記移動体の進行に応じて更新すること
    を特徴とする請求項6から請求項8のうち、いずれか一項に記載の情報処理プログラム。
JP2016137627A 2016-07-12 2016-07-12 情報処理装置、情報処理方法及び情報処理プログラム Active JP6786922B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016137627A JP6786922B2 (ja) 2016-07-12 2016-07-12 情報処理装置、情報処理方法及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016137627A JP6786922B2 (ja) 2016-07-12 2016-07-12 情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2018010412A true JP2018010412A (ja) 2018-01-18
JP6786922B2 JP6786922B2 (ja) 2020-11-18

Family

ID=60994371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016137627A Active JP6786922B2 (ja) 2016-07-12 2016-07-12 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP6786922B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019176278A1 (ja) * 2018-03-12 2019-09-19 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び移動体
US11628573B2 (en) 2019-04-26 2023-04-18 Fanuc Corporation Unmanned transfer robot system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030445A (ja) * 2002-06-27 2004-01-29 National Institute Of Advanced Industrial & Technology 移動ロボットの自己位置推定方法及びシステム、並びにプログラム
JP2007058805A (ja) * 2005-08-26 2007-03-08 Fuji Heavy Ind Ltd 前方環境認識装置
JP2010066934A (ja) * 2008-09-10 2010-03-25 Nippon Yusoki Co Ltd 3次元モデルを用いた自己位置認識手法及び自己位置認識システム
JP2011209203A (ja) * 2010-03-30 2011-10-20 Sony Corp 自己位置推定装置および自己位置推定方法
JP2013205130A (ja) * 2012-03-28 2013-10-07 Zenrin Co Ltd 路面形状データの生成方法、路面形状データ生成装置およびコンピュータプログラム
JP2014194729A (ja) * 2013-02-27 2014-10-09 Sharp Corp 周囲環境認識装置、それを用いた自律移動システムおよび周囲環境認識方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030445A (ja) * 2002-06-27 2004-01-29 National Institute Of Advanced Industrial & Technology 移動ロボットの自己位置推定方法及びシステム、並びにプログラム
JP2007058805A (ja) * 2005-08-26 2007-03-08 Fuji Heavy Ind Ltd 前方環境認識装置
JP2010066934A (ja) * 2008-09-10 2010-03-25 Nippon Yusoki Co Ltd 3次元モデルを用いた自己位置認識手法及び自己位置認識システム
JP2011209203A (ja) * 2010-03-30 2011-10-20 Sony Corp 自己位置推定装置および自己位置推定方法
JP2013205130A (ja) * 2012-03-28 2013-10-07 Zenrin Co Ltd 路面形状データの生成方法、路面形状データ生成装置およびコンピュータプログラム
JP2014194729A (ja) * 2013-02-27 2014-10-09 Sharp Corp 周囲環境認識装置、それを用いた自律移動システムおよび周囲環境認識方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019176278A1 (ja) * 2018-03-12 2019-09-19 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び移動体
US11628573B2 (en) 2019-04-26 2023-04-18 Fanuc Corporation Unmanned transfer robot system

Also Published As

Publication number Publication date
JP6786922B2 (ja) 2020-11-18

Similar Documents

Publication Publication Date Title
EP3371670B1 (en) Device and method for autonomous localisation
CN107144285B (zh) 位姿信息确定方法、装置和可移动设备
KR101725060B1 (ko) 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
KR101776622B1 (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
JP3937414B2 (ja) 平面検出装置及び検出方法
JP4328692B2 (ja) 物体検出装置
KR101776621B1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
JP4297501B2 (ja) 移動体周辺監視装置
CN100494900C (zh) 适用于自主移动车辆的环境感知的单目视觉导航方法
KR102091580B1 (ko) 이동식 도면화 시스템을 이용한 도로 표지 정보 수집 방법
JP5023186B2 (ja) 3dワーピング手法と固有対象物運動(pom)の検出の組み合わせに基づく対象物の動き検出システム
KR20170118040A (ko) 서라운드 뷰 영상에서 차량의 자차 동작을 산정하는 방법 및 장치
EP2933604B1 (en) A method for localizing a robot in a localization plane
CN114503043A (zh) 受限移动性建图
KR20150144730A (ko) ADoG 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
Maier et al. Self-supervised obstacle detection for humanoid navigation using monocular vision and sparse laser data
US20220101534A1 (en) Sidewalk edge finder device, system and method
CN109085840A (zh) 一种基于双目视觉的车辆导航控制系统及控制方法
Fischer et al. Stereo vision-based localization for hexapod walking robots operating in rough terrains
Rehder et al. Submap-based SLAM for road markings
JP6786922B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2006053754A (ja) 平面検出装置及び検出方法
JP4270386B2 (ja) 移動体移動量算出装置
Diop et al. A computer vision-aided motion sensing algorithm for mobile robot's indoor navigation
JP2020076714A (ja) 位置姿勢推定装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200803

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201012

R151 Written notification of patent or utility model registration

Ref document number: 6786922

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151