# quadtree_map **Repository Path**: sldasm2666_admin/quadtree_map ## Basic Information - **Project Name**: quadtree_map - **Description**: 二值四叉树栅格地图 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-08-01 - **Last Updated**: 2024-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 这是什么? 这是一个二值四叉树栅格地图的实现。 ### 为什么要使用四叉树栅格地图? * 降低运行时内存占用。以一个大小10e4×10e4的栅格地图为例,其运行时内存占用约为400m,这是不可接受的。使用四叉树可以大幅降低内存占用 * 降低存储时的硬盘空间占用。当地图结构较为简单时,二进制存储的四叉树地图占用空间比压缩的PNG格式更小 ### 这个四叉树地图的实现有什么特别的? * 实现了构建时的实时节点合并,内存占用更低 * 支持保存和加载PNG、二进制格式,适用更多场景 # 依赖 opencv3 ```bash sudo apt install libopencv-dev ``` 以上指令会在ubuntu20.04下安装opencv4。quadtree_map仅仅依赖opencv进行图片的保存和加载,所以应该经过简单的修改就可以适配opencv4 # 构建 ```bash mkdir build cd build cmake .. make ``` # 运行测试 ```bash ../bin/test_quadtree ``` 你可以自由修改test_quadtree.cpp的代码 # 备注 * grid_map支持的地图格式:PNG、PGM * quadtree_map支持的地图格式:PNG、PGM、BIN(二进制保存的四叉树叶子节点) * quadtree_map保存文件名的含义:quadtreemap_地图中心点在世界坐标系中的x坐标_地图中心点在世界坐标系中的y坐标_地图中心点在世界坐标系中的yaw角_地图格子边长 * 代码中所有长度单位为米,所有角度单位为弧度 * 地图坐标系和世界坐标系均为前右系,地图坐标系原点在地图中心