人、車、木、建物が pcl 形式の街の広場があります。地面を自動的に決定し、このオブジェクトをその地面に投影して、占有された場所の 2D マップを取得する必要があります。
何か案が?
人、車、木、建物が pcl 形式の街の広場があります。地面を自動的に決定し、このオブジェクトをその地面に投影して、占有された場所の 2D マップを取得する必要があります。
何か案が?
ここで行う最善の方法は、次の 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 を参照してください (変換は、プレーン セグメンテーションから返されたプレーン係数から取得できます)。
質問はかなり一般的なものだったので、これは役に立ち、基本的なレベルではありません。