如果没有存在方法,请评论“没有答案”或让我展示另一种方式。
转换为occupancyMap3D
20视图(30天)
显示旧的评论
现在,我将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)
Aditya帕蒂尔
2021年3月30日
目前还没有直接的函数转换为stl入住率矩阵/网格。
通用= 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])