occupancyMap
创建2-D占用地图
描述
occupancyMap
创建一个2-D占用网格地图对象。占用网格中的每个单元格都有一个值,表示该单元格被占用的概率。接近1的值表示单元格中有障碍物的概率很高。接近0的值表示计算单元未被占用且无障碍的概率很高。
占用地图用于导航算法,如路径规划(参见plannerRRT
).它们还用于映射应用程序中,以寻找无碰撞路径、执行碰撞避免和计算定位(参见monteCarloLocalization
).您可以修改占用地图以适合您的特定应用程序。
的occupancyMap
对象支持局部坐标、世界坐标和网格索引。第一个带索引的网格位置(1,1)
从网格的左上角开始。
使用occupancyMap
类创建环境的二维地图,用概率值表示世界中的不同障碍。您可以指定细胞的确切概率值,或者包括来自传感器(如激光扫描仪)的观察结果。
概率值使用二元贝叶斯滤波器存储,以估计每个网格单元的占用率。使用log-odds表示,值存储为int16
减少地图存储大小,并允许实时应用程序。
创建
语法
描述
输入参数
属性
对象的功能
checkOccupancy |
检查场地是否空闲或有人 |
复制 |
创建2-D占用地图的副本 |
getOccupancy |
获取地点的占用概率 |
grid2local |
将网格索引转换为局部坐标 |
grid2world |
将网格索引转换为世界坐标 |
膨胀 |
给每个被占领的位置充气 |
insertRay |
插入激光扫描观察的射线 |
local2grid |
将局部坐标转换为网格索引 |
local2world |
将局部坐标转换为世界坐标 |
移动 |
在世界框架中移动地图 |
occupancyMatrix |
转换占用地图到矩阵 |
raycast |
沿着射线计算单元指数 |
rayIntersection |
找到射线的交点和被占用的地图单元格 |
setOccupancy |
设置地点的占用概率 |
显示 |
显示2-D占用地图 |
syncWith |
用重叠的地图同步地图 |
updateOccupancy |
更新各地点的占用率 |
world2grid |
将世界坐标转换为网格索引 |
world2local |
将世界坐标转换为本地坐标 |
例子
限制
占用值的分辨率有限,为±0.001。这些值存储为int16
使用对数-赔率表示。这种数据类型限制了分辨率,但在MATLAB中存储大型地图时节省了内存®.当调用setOccupancy
然后getOccupancy
,返回值可能不等于您设置的值。有关更多信息,请参见中的log-odds表示部分占用网格.
如果内存大小受限,请考虑使用binaryOccupancyMap
代替。使用二进制值时,二进制占用映射使用更少的内存,但仍然适用于Navigation Toolbox™算法和其他应用程序。
扩展功能
版本历史
介绍了R2019b
另请参阅
binaryOccupancyMap
|mobileRobotPRM
(机器人系统工具箱)|controllerPurePursuit
(机器人系统工具箱)|rosReadOccupancyGrid
(ROS工具箱)|rosWriteOccupancyGrid
(ROS工具箱)