[openrtm-users 03154] ポイントクラウドの共通インタフェースの提案

Geoffrey Biggs geoffrey.biggs @ aist.go.jp
2015年 2月 11日 (水) 02:06:14 JST


RTミドルウェアMLの皆様

産総研のジェフです。お世話になっております。

最近人気になってきた3次元ポイントデータのインタフェースの提案をさせていただきます。

皆様からのご意見・コメント等どうぞよろしくお願いいたします.
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.openrtm.org/pipermail/openrtm-users/attachments/20150211/84be58bb/attachment.html>
-------------- next part --------------
1. タイトル

Point cloud データ型

2. 提案者名・メールアドレス

Geoffrey Biggs
geoffrey.biggs @ aist.go.jp

3. 履歴

i. 提案日

2015-02-11

ii. 締切日

2015-03-20

4. 概要

3次元ポイントデータをポイントクラウド(point cloud)として通信することが近年増えてきた。
OpenRTM-aist用のポイントクラウド処理コンポーネント群「RTC
PCL」では、このようなデータのデータ型が提供されている。本提案書では、RTC
PCLのデータ型を標準インタフェースとして提案する。

5. 提案理由

低コストで3次元ポイントデータが提供するセンサーの増加で、
ポイントクラウドの利用するケースが続々増えている。ポイントクラウドを
提供・利用するコンポーネントの互換性があるようにポイントクラウドデータ型の
標準化を提案する。

6. 仕様


名前空間定義
============

ポイントクラウドインタフェースは、固有􏰂名前空間として「PointCloudTypes」を定義している。


データ型定義
============

RTC::Time
---------

時刻情報を格納するための型。OpenRTM-aist の標準型として BasicDataType.idl 内で定義されている。

sec     unsigned long       Seconds component of time stamp
nsec    unsigned long       Nanoseconds component of time stamp


PointCloudTypes::DataType
-------------------------

ポイントフィルドで利用可能な基本データ型

INT8
UINT8
INT16
UINT16
INT32
UINT32
FLOAT32
FLOAT64


PointCloudTypes::PointField
---------------------------

ポイントフィルドのデータ型・意味を定義する。例えば、XYZRGBは以下のように定義する。

"x": offset 0, float32, 4 bytes length
"y": offset 4, float32, 4 bytes length
"z": offset 8, float32, 4 bytes length
"r": offset 12, uint8, 1 byte length
"g": offset 13, uint8, 1 byte length
"b": offset 14, uint8, 1 byte length

name        string          Name of the field
offset      unsigned long   Offset into a point of the field's data
data_type   DataType        Data type used by the field
count       unsigned long   Number of bytes in the field


PointCloudTypes::PointFieldList
-------------------------------

PointFieldのシーケンス


PointCloudTypes::PointCloud
---------------------------

一つのポイントクラウドのデータ

tm          RTC::Time       Time at which the sensor data was captured
seq         unsigned long   Sequence number
height      unsigned long   Height in the 2D structure of the cloud; 1 if the cloud is unordered
width       unsigned long   Width in the 2D structure of the cloud. Number of points in the cloud if the cloud is unordered.
type        string          Name of the point type
fields      PointFieldList  Data channels present in each point in the cloud
is_bigendian    bool        True if the data is stored big-endian
point_step  unsigned long   Length of a point in bytes
row_step    unsigned long   Length of a row in bytes
sequence<octet> data        Raw point data; size is (row_step * height)
is_dense    bool            True if there are no invalid points


共通インタフェース定義
======================

データポート
------------

ポイントクラウドインタフェース:PointCloudTypes::PointCloudデータ型により
ポイントクラウドを送信・受信する。


7. 提案が後方互換性に及ぼす

後方互換性に影響はない。

8. その他特記事項

利用の例として、RTC:PCLコンポーネント群を提供する。

https://github.com/gbiggs/rtcpcl


More information about the openrtm-users mailing list