主要内容

insertPointCloud

在地图中插入三维点或点云观测

描述

例子

insertPointCloud (map3D构成maxrange在给定位置插入一个或多个传感器观测值在占用图中,map3D.已占用点的观测值更新为0.7。所有其他点之间的传感器构成而且被视为无障碍,并更新观察值为0.4。点外maxrange不会更新。值被忽略。

insertPointCloud (map3D构成ptcloudmaxrange插入一个ptcloud对象放入映射中。

例子

全部折叠

occupancyMap3Dobject在三维空间中存储障碍物,使用传感器观测来映射环境。创建地图并从点云中添加点来识别障碍。然后在地图中对障碍物进行充气,以确保障碍物周围的安全操作空间。

创建一个occupancyMap3D对象的地图分辨率为10格/米。

map3D = occuancymap3d (10);

定义一组3-D点作为一个姿势的观察[x y z qw qx qy qz].这个姿态是用于观察这些点的传感器,并以原点为中心。定义两组点来插入多个观测值。

姿态= [0 0 0 1 0 0 0];Points = repmat((0:0.25:2)', 1,3);points2 =[(0:0.25:2)“(2:-0.25:0)”(0:0.25:2)];maxRange = 5;

插入第一组点使用insertPointCloud.该函数使用传感器姿态和给定点将观测值插入到地图中。所显示的颜色与点的高度相关,仅用于说明目的。

insertPointCloud (map3D姿势,点,maxRange)显示(map3D)

图中包含一个轴对象。标题为Occupancy Map的axes对象包含一个patch类型的对象。

插入第二组点。传感器姿态(原点)和这些点之间的射线与之前插入的点重叠。因此,传感器和新点之间的空闲空间被更新并标记为空闲空间。

insertPointCloud (map3D姿势,points2 maxRange)显示(map3D)

图中包含一个轴对象。标题为Occupancy Map的axes对象包含一个patch类型的对象。

膨胀地图,为障碍物周围的安全操作添加缓冲区。定义车辆半径和安全距离,并使用这些值的和来定义地图的膨胀半径。

vehicleRadius = 0.2;safetyRadius = 0.3;inflationRadius = vehicleRadius + safetyRadius;充气(map3D inflationRadius);显示(map3D)

图中包含一个轴对象。标题为Occupancy Map的axes对象包含一个patch类型的对象。

输入参数

全部折叠

3-D占用地图,指定为occupancyMap3D对象。

点云在传感器坐标中的点,指定为n的-乘3矩阵[x y z]点,n是点云中的点数。

点云读数,指定为apointCloud对象。

请注意

使用pointCloud对象需要计算机视觉工具箱™。

车辆的位置和方向,指定为[x y z qw qx qy qz]向量。载具姿势是一个xyz四元数方向向量指定为[qw qx qy qz]

点云传感器的最大范围,指定为标量。超出这个范围的点将被忽略。

版本历史

R2019b引入