SMSL Point Cloud Processing Toolkit

自動運転やロボティクスで不可欠な点群処理機能をパッケージ化しています。フィルタリングから特徴量抽出まで、RTMaps 4環境で動作する包括的な三次元点群処理コンポーネント群を提供します。特に水平回転式LiDARのリング構造を考慮した効率的なアルゴリズムにより、汎用的な非構造点群処理に比べ、高速かつ高精度な認識・推定が可能です。
SMSL Point Cloud Processing Toolkitは、PCLなどのサードパーティー製の点群処理ライブラリを使用しておらず、外部ライブラリのバージョン依存性が低いと言えます。
SMSL Point Cloud Processing Toolkitは、鈴鹿経営科学研究所の有償IPであり、使用者の方からの機能拡張のご相談を受け付けております。

Point Cloud Pricessing Toolkit動作デモ

ご購入方法

SMSL Point Cloud Processing Toolkitは現在予約受付中であり、購入や価格のお問い合わせは、お問い合わせフォームから受け付けています。
また、RTMaps AI storeから購入いただくことも可能となる予定です。

提供コンポーネントリスト

ダウンサンプリング

pc_downsample_cart
  • 直交座標系の点群を効率的に削減します。
  • index、voxel、voxel-centroidの3つのサンプリングモードをサポートしています。
pc_downsample_sph
  • 球座標系の点群をダウンサンプリングします。
  • スキャニングLiDARのデータ量削減に効果を発揮し、範囲フィルタ機能も内蔵しています。
pc_downsample_cyl
  • 円筒座標系の点群をダウンサンプリングします。
  • 複数の高さに設置された2D LiDARシステムなどの信号処理に使用します。

フォーマット変換

pc_coordinate_cart2sph
  • 直交座標(X, Y, Z)から球座標(Azimuth, Elevation, Radius)へ変換します。
  • 最小半径閾値によるゼロ点出力やNaN変換機能を備えています。
pc_coordinate_sph2cart
  • 球座標から直交座標へ変換します。
  • 入力半径が閾値以下のデータをゼロまたはNaNとして処理できます。
pc_coordinate_cart2cyl
  • 直交座標から円筒座標(Radius, Azimuth, Elevation)へ変換します。
pc_coordinate_cyl2cart
  • 円筒座標から直交座標へ変換します。
Pc_formatter_oneline2array
  • ベクトル形式をMATLAB等の配列形式(整理された点群)に変換します。
  • 垂直チャンネル数や最大掃引点数に基づいた整形を実行します。
pc_formatter_array2oneline
  • 配列形式の点群を1行のベクトル形式に変換します。
pc_axis_separator
  • 点群信号からX, Y, Z, iの各次元を個別に抽出します。
rings_transpose
  • 点群の並び順を「垂直優先」から「リング優先」に転置します。
  • 本パッケージのリングベース処理コンポーネントへの接続に必須となります。
rings_separator
  • LiDARの各リングごとの点群信号を個別に抽出します。
array_zero2nan
  • 点群内のゼロ値をNaNに変換し、レンダリング負荷を軽減します。

LiDAR ジオメトリ & オドメトリ

rings_features_estimation
  • 法線やエッジ特徴を推定し、法線ベースの地面分離を実行します。
  • 法線マップやエッジマップを画像(IplImage)として出力できます。
rings_pose_estimation_icp
  • リング構造を利用した高速ICP(terative Closest Point)アルゴリズムにより、自己の三次元ポーズを推定します。
rings_pose_estimation_p2plane
  • Point-to-Planeアルゴリズムを用いて高精度に自己位置推定します。
rings_pose_estimation_extLOAM
  • 拡張LOAMアルゴリズムを用いて、法線・エッジ特徴により自己の三次元ポーズを推定します。
rings_ground_estimation_cyl
  • 円筒座標系およびリング構造を利用して、幾何学的に地面を推定します。
pc_pose_estimation_icp
  • 非構造点群(汎用点群)に対して、ICPアルゴリズムで自己の三次元ポーズを推定します。
pc_pose_estimation_ndt
  • 非構造点群(汎用点群)に対して、Normal distributions transform(NDT)アルゴリズムで自己の三次元ポーズを推定します。
pc_egomotion_correction
  • 自己車両の移動、回転(エゴモーション)に伴う点群の歪みを補正します。

ポーズ処理

pose6D_to_matrix
  • 6要素のポーズベクトルをポーズ変換行列(4x4等)に変換します。
poseMatrix_to_6D
  • ポーズ変換行列を6要素のポーズベクトルに変換します。
pose6D_accumulator
  • 相対ポーズを累積し、原点からの絶対ポーズを算出します。

フィルタリング

pc_range_filter
  • 三種類の座標系で点群の範囲フィルタリングします。
pc_neighbor_removal_filter
  • 周囲環境把握に不要な原点近傍の点を除去します。
pc_outlier_removal_filter
  • 外れ点を幾何学的、または統計的に除去します。

可視化

rings_depth2image
  • リング構造の距離データを深度画像に変換します。
    オブジェクト認識、地面推定などに活用できます。
rings_intensity2image
  • リング構造の反射強度データを画像形式で可視化します。
    地面の白線検出などに活用できます。
rings_height2image
  • リング構造の点群の高さ情報を画像形式で可視化します。
    高さ画像に基づく地面推定などに活用できます。

LiDAR 特有の処理

Velodyne_pc_outlier_removal_filter
  • Velodyne製LiDARに特化した、外れ値除去フィルタとして機能します。
Velodyne_pc_elevation_sorting
  • Velodyneデータの仰角に基づいてソートします。可視化の前処理として必要です。
rings_pc_interpolation
  • リング構造の仰角方向に沿って、線形補間を実行します。平面検出に有効です。
hesai_pc_azimuth_correct
  • Hesai製LiDARの方位角の格納順を補正します。可視化の前処理として必要です。

ソフトウェア仕様

パッケージ名 Point_Cloud_Processing_Tookit.pck
バージョン 1.0
対応OS Windows 10/11 (64bit) / Ubuntu 24.04 LTS (64bit)
対応RTMapsバージョン RTMaps 4.9.2 以降
提供物 パッケージ本体(.pck)、ユーザーマニュアル(PDF)、サンプルダイヤグラム(.rtd)

デモ機能

本パッケージには、導入後すぐに動作を確認できる以下のデモが同梱されています。