# Any packages for Point Cloud Registration

**URL:** <https://discourse.julialang.org/t/any-packages-for-point-cloud-registration/54679>\
**Category:** Specific Domains\
**Created:** [February 5, 2021, 10:45am UTC](https://discourse.julialang.org/t/any-packages-for-point-cloud-registration/54679 "2021-02-05T10:45:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Wikunia](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wikunia/32/2180_2.png) [@Wikunia](https://discourse.julialang.org/u/Wikunia)\
**Post date:** [February 5, 2021, 10:45am UTC](https://discourse.julialang.org/t/any-packages-for-point-cloud-registration/54679/1 "2021-02-05T10:45:48Z")

</div>

I’m currently looking for a library that can solve or assist solving the following problem.

I have a bunch of 3D point clouds from different angles and would like to combine them to have a single 3d point cloud. Seems like there were some packages like PCL.jl and [https://github.com/FugroRoames/PointCloudMatching.jl](https://github.com/FugroRoames/PointCloudMatching.jl) which seem to be discontinued.

Is there any package that is related to that field that I can have a look at?  
I use ImageProjectiveGeometry for a RANSAC implementation to align them in one dimension (detecting the ground and removing it) now I’m mostly interested in rotation on the `z=0` plane as well as translation.

Additionally I’m interested in algorithms in general for that such like  
[Iterative closest point - Wikipedia](https://en.wikipedia.org/wiki/Iterative_closest_point#:~:text=Iterative%20closest%20point%20(ICP)%20is,between%20two%20clouds%20of%20points).

to maybe be able to create my own package out of it if there doesn’t exist one yet.

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![dehann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dehann/32/2003_2.png) [@dehann](https://discourse.julialang.org/u/dehann)\
**Post date:** [April 5, 2022, 1:20am UTC](https://discourse.julialang.org/t/any-packages-for-point-cloud-registration/54679/2 "2022-04-05T01:20:52Z")

</div>

Hi @Wikunia , we also have an interest in the topics you mentioned over by Caesar.jl. I recently implemented the first step to easy Point Clouds in Julia, see [here ROS → PCL → Caesar.\_PCL](https://github.com/JuliaRobotics/Caesar.jl/tree/master/src/3rdParty/_PCL), and the [tests I’ve built so far](https://github.com/JuliaRobotics/Caesar.jl/blob/master/test/pcl/testPointCloud2.jl).

I’m sure some bugs will show up, but any community help to give snippets of test data or PRs would be welcome.

---

<div class="post-metadata">

**Author:** ![maxfreu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/maxfreu/32/17468_2.png) [@maxfreu](https://discourse.julialang.org/u/maxfreu)\
**Post date:** [April 7, 2022, 2:25pm UTC](https://discourse.julialang.org/t/any-packages-for-point-cloud-registration/54679/3 "2022-04-07T14:25:11Z")

</div>

[This repo](https://github.com/pglira/simpleICP) contains an example implementation of the iterative closest point (ICP) algorithm. It could / should be factored out into a proper repo and there is still some room for improvement (e.g. usage of StaticArrays).

---

<div class="post-metadata">

**Author:** ![dehann](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dehann/32/2003_2.png) [@dehann](https://discourse.julialang.org/u/dehann)\
**Post date:** [July 25, 2022, 8:23pm UTC](https://discourse.julialang.org/t/any-packages-for-point-cloud-registration/54679/4 "2022-07-25T20:23:02Z")

</div>

Ah, thanks for pointing that out! I did some of the StaticArray upgrades by combining that with the known [PCL](http://pointclouds.org) types added to Caesar.jl. I expect to do a few more upgrades so that the transforms are well integrated existing transformation libraries. In the mean time, here is a packaged version of `alignICP_Simple` using `Caesar._PCL` types:  
[https://juliarobotics.org/Caesar.jl/latest/examples/using\_pcl/#Caesar.\_PCL.alignICP\_Simple](https://juliarobotics.org/Caesar.jl/latest/examples/using_pcl/#Caesar._PCL.alignICP_Simple)
