转换为occupancyMap3D

20视图(30天)
MINJUN所以
MINJUN所以 2021年3月25日
现在,我将stl文件(从CATIA) .mat文件(类:pde.DiscreteGeometry)。
我想把这个.mat文件转换成3 d入住率地图。
我怎样才能解决这个问题?
我的目标是想要建立真正的3 d地图入住率地图。
和我在这个例子RRT MathWorks加载代码。
mapData =负载(“uavMapCityBlock.mat”,“核心”);
omap = mapData.omap;
%认为未知的空间是空置的
的核心。FreeThreshold = omap.OccupiedThreshold;
充气(omap, 1)
图(“名称”,“CityBlock”)
显示(omap)
在第一行,“uavMapCityBlock。垫”是一个occupancyMap3D类。我想改变,.mat文件转换后的文件,我问你们。
请理解我的简短的英语技能。谢谢:)
1评论
MINJUN所以
MINJUN所以 2021年3月25日
如果没有存在方法,请评论“没有答案”或让我展示另一种方式。

登录置评。

答案(1)

Aditya帕蒂尔
Aditya帕蒂尔 2021年3月30日
目前还没有直接的函数转换为stl入住率矩阵/网格。
作为一个解决方法,如果您创建stl文件使用大量的点,你应该能够通过点 insertPointCloud 函数,如下所示
通用= importGeometry (“ForearmLink.stl”);
点= gm.Vertices;
omap = occupancyMap3D;
构成= [0 0 0 1 0 0 0);
maxrange = 100;
insertPointCloud (omap,构成点,maxrange);
显示(omap);
然而,这不会工作得很好对stl文件较低数量的顶点。所以,您可以创建一个alphashape点,然后检查占用。下面的方法的准确性取决于创建alphaShape如何。尝试不同的值从alphaShape参数来得到一个更好的结果。
通用= importGeometry (“ForearmLink.stl”);
点= gm.Vertices;
轴马力= alphaShape(分、23);
情节(shp);
[X, Y, Z] = meshgrid (150:150, 150:150 150:150);
insideMat = inShape(轴马力,X, Y, Z);
insideId =找到(insideMat);
[Xoc, Yoc Zoc] = ind2sub(大小(X), insideId);
pcshow ([Xoc、Yoc Zoc])
1评论
大卫·梅拉Pliego
大卫·梅拉Pliego 2021年4月12日
你知道任何其他方式ptCloud地图转换成入住率地图吗?。谢谢

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!