Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eusのオブジェクトからpointcloudを作りたい,あるいはpointcloudからeusのモデルを作りたい. #644

Open
k-okada opened this issue May 13, 2020 · 2 comments
Assignees

Comments

@k-okada
Copy link
Member

k-okada commented May 13, 2020

https://gist.github.com/k-okada/63849c1f6a734e2e30188614324a439d にサンプルを置きましたが,(2つのプログラムが一つになているのでそのままでは動かない)
body-to-triangles が結構曲者で引数を変えないと無限ループになる場合がある気がします.
https://github.com/jsk-ros-pkg/euslib/blob/master/jsk/sample_poisson.l でもう少しマシなコードがありますが,euslisp/jskeus#225 を使えるように変更するか,euslib/jsk の
kdtreeを使う必要があるので人手間です.

逆のpointcloudからeusを作る方は convex-hull-3d が点群によっては上手く変えてこないことがある気がします.https://github.com/jsk-ros-pkg/jsk_eus_pcl/blob/master/eus_pcl/euslisp/eus-pcl.l#L153 とか使えば少し良くなるのかな???これは味覚に.

@YoheiKakiuchi
Copy link
Member

メンテされてませんが、eus_pclにはkdtreeもあって、sample_poisson.lを一部修正するだけでそのまま使えます。
eus_pclのmelodicのコンパイルもできています。

octmapでモデル作ると、minecraftのモデルみたいのは簡単にできるかもしれないですね。

sample_poisson.lはuser::をeus_pcl::に修正

diff --git a/jsk/sample_poisson.l b/jsk/sample_poisson.l
index f3370617e..1058590e3 100644
--- a/jsk/sample_poisson.l
+++ b/jsk/sample_poisson.l
@@ -97,7 +97,7 @@
         (activefcmgr (if use-tree
                          (instance active-face-manager-tree :init obj2)
                        (instance active-face-manager :init obj2)))
-        (ktree (instance user::dynamic-kdtree :init))
+        (ktree (instance eus_pcl::dynamic-kdtree :init))
         points
         )
$ roseus
(load "package://eus_pcl/euslisp/eus-pcl.l")
(load "euslib/jsk/sample_poisson.l")

;; point-cloud
(setq pt (make-3dpointcloud-on-object-poisson (make-cube 100 100 100) 5.0 :irt t))

;; convex-hull (normalがおかしくて内向きのnormalが入っている/pclのバグなのか?)
(setq fs (eus_pcl::surface-construction pt))

@YoheiKakiuchi
Copy link
Member

たしかに以前octomapで色付きやってなかったので実装してみました。
jsk-ros-pkg/jsk_eus_pcl#22

これがサンプルプログラムで、
https://github.com/jsk-ros-pkg/jsk_eus_pcl/blob/master/eus_pcl/test/create-octomap-from-eusmodel.l

以下、(octomap-demo "kettle" 4.0) の結果です。

Eus model
kettle_eusmodel

Point cloud
kettle_point

octomap resolution 4mm
kettle_octomap0

octomap resolution 8mm
kettle_octomap1

octomap resolution 16mm
kettle_octomap2

octomap resolution 32mm
kettle_octomap3

octomap resolution 64mm
kettle_octomap4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants