0

人、車、木、建物が pcl 形式の街の広場があります。地面を自動的に決定し、このオブジェクトをその地面に投影して、占有された場所の 2D マップを取得する必要があります。

何か案が?

4

1 に答える 1

2

ここで行う最善の方法は、次の 2 つの PCL チュートリアルに慣れることだと思います。

http://pointclouds.org/documentation/tutorials/planar_segmentation.php

http://pointclouds.org/documentation/tutorials/project_inliers.php

最初のチュートリアルでは、RANSAC アルゴリズムを使用して、シーン内の支配的な平面を見つけます。ロボット工学のシナリオでテーブルと床を見つけるために使用します。これを使用して、支配的なグランド プレーンを見つけます。

2 番目のチュートリアルでは、点を平面に直接投影する方法を示します。これは、3D 点群を 2D 点群にするために使用するものです。「inlier」キーワードにもかかわらず、点群全体を渡して平面に投影できることに注意してください。

実際、「占有された」場所を探している場合は、地面にないすべてのポイント(つまり外れ値) とその上にあるすべてのポイントを投影したい場合があります (PlaneClipper3D などの PCL フィルターを使用できます)。 、たとえば、または平面セグメンテーション操作からの外れ値の補数だけです。

最終的に得られる平面 (投影されたすべての点を含む) が目的の座標フレームにない場合、たとえば、座標軸に合わせてすべての z 座標がゼロになるように、ロット全体を回転させたい場合があります。 . これについては、pcl::transformPointCloud を参照してください (変換は、プレーン セグメンテーションから返されたプレーン係数から取得できます)。

質問はかなり一般的なものだったので、これは役に立ち、基本的なレベルではありません。

于 2012-08-22T10:47:45.947 に答える