terrain_map_node是高程地图的发布节点,代码位置quad_sdk\quad_utils\src\terrain_map_publisher_node.cpp和terrain_map_publisher.cpp。改代码主要功能是初始化地图参数,从data/目录下读取高程地图分层数据(顶点xyz,法向量nxnynx,以及滤波后的nx_filt、ny_filt、nz_filt),并发布到/robot_1/terrain_map_raw(原始地形图)。
具体代码整理出了一版代码执行及引用的关系图,可以参考阅读。
该节点生成的静态地形地图,如果想通过点云直接生成地形图,可以参考 elevation_mapping的demo例子,可以利用深度相机或者雷达生成的点云经过gridmap生成地形图,再进行分层调优。
地图运行及展示原理可以编译和运行一下“ elevation_mapping”的demo例子,地址为:“GitHub - robomechanics/elevation_mapping: Robot-centric elevation mapping for rough terrain navigation”