Cartographer源码篇:源码分析(1)

本文分析了cartographer_ros的文件结构、节点关系及代码结构,重点介绍了cartographer_node、occupancy_grid_node和pbstream_map_publisher节点的功能。cartographer_ros作为ROS接口,负责订阅传感器数据、发布处理结果,并提供了地图保存等服务。主要流程包括数据订阅、轨迹管理和地图发布。
摘要由CSDN通过智能技术生成

在安装编译cartographer-1.0.0的时候,我们可以看到代码主要包括cartorgarpher_ros、cartographer、ceres-sover三个部分。其中,ceres-solver用于非线性优化,求解最小二乘问题;cartographer_ros为ROS平台的封装,获取传感器数据,显示和保存处理结果;cartographer为算法的底层实现,处理传感器数据,构建地图。作为ROS平台的封装,cartographer_ros没做实质性的工作,但是其充当了cartographer程序的守门人的角色,包含通往cartographer的钥匙,故本次先针对cartographer_ros作一个简单快速的分析。

cartographer_ros文件结构

首先看下cartographer_ros的文件结构,如下图所示:

cartographer_ros目录

然后我们具体分析下各目录的内容:

cartographer_ros_msgs:部分msg、srv文件;

cartographer_rviz:与rviz显示相关的文件;

cartographer_ros/cartographer_ros:基于ROS实现的主要程序,包含各节点的实现文件,入口节点cartographer_node的实现文件node_mian.cc就在这里;

configuration_files目录

cartographer_ros/configuration_files:参数配置文件,包括机器人参数、建图参数、定位参数、文件保存参数等;

launch目录

cartographer_ros/launch:节点启动文件,包括机器人、建图、定位、文件保存等节点;

cartographer_ros节点关系

通过实际运行,分析一下ros节点的情况:

cartographer_ros节点图

cartographe

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值