質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1255閲覧

PCLの円柱検出表示結果の見方がわからない

lime00

総合スコア25

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/08/24 23:02

PCL(PointCloudLibrary)でチュートリアルを参照しながら、サンプルデータの円柱検出を行いました。
すると次のような結果が表示されました。

PointCloud has: 307200 data points. PointCloud after filtering has: 139897 data points. Plane coefficients: header: seq: 0 stamp: 0 frame_id: values[] values[0]: 0.0161902 values[1]: -0.837667 values[2]: -0.545941 values[3]: 0.528862 PointCloud representing the planar component: 116300 data points. Cylinder coefficients: header: seq: 0 stamp: 0 frame_id: values[] values[0]: 0.0543319 values[1]: 0.100139 values[2]: 0.787577 values[3]: -0.0135876 values[4]: 0.834831 values[5]: 0.550338 values[6]: 0.0387446 PointCloud representing the cylindrical component: 11462 data points.

ただこの結果がなにを表すのかがわかりません。valuesやその横の数値はなにを表しているのでしょうか?
初歩的な質問で申し訳ないのですが、よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Plane coefficients
Cylinder coefficients

といった文字列からの想像ですが,
values[]は平面や円柱の形状を表すためのパラメータ値でしょう.

下記に勝手な想像を書きました.
もしもリファレンス等にvalues[]の説明を見つけられないのであれば
下記のような仮定を行い,結果値を実際に与えた点群データと比較してみてそれを検証してみれば良いのではないかと思います.

  • 平面を表現するためには,{法線(3)と,平面と原点との距離(1)}が必要です.

ここで,(3)とか(1)とか書いたのは,その要素の自由度(パラメタの個数)です.平面を表すにはパラメタが4つ必要ということです.
で,表示を見てみると,valuesの個数も4個なので,まぁ,そういう感じなんじゃないかと想像できます.
常識的に考えて(?)法線の3成分を,例えば[0]と[1]と[3]みたいに飛び飛びに配置しないだろうと思うので,
法線は[0][1][2]か,[1][2][3]のどちらかであろう,と想像します.
また,法線が単位ベクトルになってるんじゃねーの?として,[0][1][2]の側が法線なんじゃないか?と推測できそうです.

  • 円筒を表現するには,{位置(3),軸の方向(3),軸方向の長さ(1),径(1)}くらいが必要でしょう.

これだとパラメータの個数が8個となりvalues[]の個数(7)と一致しませんが,
「軸の方向(3)」のベクトルの長さに「軸方向の長さ(1)」を含めることを考えればパラメータ個数が一致します.
(もちろん,他の表現も有り得るでしょうから,こうだとは言い切れません)
平面と同様に,自由度(3)な要素はvalues[]内で連続しているだろうと仮定して,実際のデータを用いて検証すればどうにかなるんじゃないかと考えます.

投稿2020/08/25 03:05

編集2020/08/25 03:07
fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lime00

2020/08/25 08:34

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問