话题与广播

欢迎访问我的博客首页


1. 话题


  从 cartographer_ros/node_constants.h 中可以看到 cartographer 订阅 4 类共 7 种话题:

// 1.1 Range Data。
constexpr char kLaserScanTopic[] = "scan";             // 激光雷达。
constexpr char kMultiEchoLaserScanTopic[] = "echoes";  // 多回波激光雷达。
constexpr char kPointCloud2Topic[] = "points2";        // 点云。
// 1.2 IMU Data。
constexpr char kImuTopic[] = "imu";
// 1.3 Odometry Pose。
constexpr char kOdometryTopic[] = "odom";
// 1.4 Fixed Frame Pose。
constexpr char kNavSatFixTopic[] = "fix";
constexpr char kLandmarkTopic[] = "landmark";

其中前 6 种话题使用的消息类型是 ROS 官方定义的 common_msgs 中的 sensor_msgs 和 nav_msgs,第 7 种路标话题使用的消息类型是自定义的。

1.1 Landmark


  这是 cartographer 使用的唯一一个自定义消息类型,定义在 cartographer_ros/cartographer_ros_msgs/msg 中的 LandmarkList.msg 和 LandmarkEntry.msg。这两个文件内容如下

# LandmarkList.msg
std_msgs/Header header
cartographer_ros_msgs/LandmarkEntry[] landmarks

# LandmarkEntry.msg
string id
geometry_msgs/Pose tracking_from_landmark_transform
float64 translation_weight
float64 rotation_weight

  使用 rqt_bag landmarks_demo_uncalibrated.bag 查看该消息。在左侧 landmark 上右键选择 View -> Raw,可以看到消息内容:

请添加图片描述

图 1 Landmark 消息

2. 广播


  运行 cartographer 时,打开一个终端并输入 rosrun tf view_frames 会在终端目录生成两个文件 frames.pdf 和 frames.gv。pdf 文件内容如下:
在这里插入图片描述

图 2 cartographer 中的广播

  从图 2 可以看出,有 2 个节点通过广播共发送 5 种变换:节点 robot_state_publisher 发布 3 种变换,节点 cartographer_node 发布 2 种变换。

节点 robot_state_publisher 被 backpack_2d.launch 启动,这是一个系统节点。它根据 urdf 文件,广播机器人各关节的两个连杆坐标系间的相对位姿。

<param name="robot_description" textfile="$(find cartographer_ros)/urdf/backpack_2d.urdf" />   
<!--系统包 robot_state_publisher 的节点 robot_state_publisher-->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

节点 cartographer_node 通过函数 Node::PublishLocalTrajectoryData 发布地图、里程计、机器人本体间的相对位姿。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值