ROS实操入门系列(七)ROS topic通讯之自定义复杂msg消息类型解决实际需求二(详解)

需求升级

  1. 根据上一章的需求一,进行升级。已知有两个节点,其中一个节点是Publisher,另外一个节点是Subscriber。Publisher发布的消息是 团队数据,包含了以下内容:
    在这里插入图片描述

  2. 根据需求类型,定义msg文件,其中student是上一章定义的消息类型,在同一个包中可以直接引用在这里插入图片描述

CMakeLists文件配置

  1. package.xml在上一章中已经添加配置,不需要再次配置

    find_package(catkin REQUIRED COMPONENTS
      roscpp
      rosmsg
      rospy
      message_generation
      geometry_msgs
    )
    
     add_message_files(
       FILES
       student.msg
       team.msg
     )
    
     generate_messages(
       DEPENDENCIES
       std_msgs  # Or other packages containing msgs
       geometry_msgs
     )
    
    catkin_package(
    #  INCLUDE_DIRS include
    #  LIBRARIES student_msgs
      CATKIN_DEPENDS roscpp rosmsg rospy message_runtime
    #  DEPENDS system_lib
    )
    
  2. 编译项目

    cd 工作空间
    catkin_make
    

    遇到下面错误1:可以删除工作空间中的build和devel,然后再次catkin_make在这里插入图片描述
    遇到下面错误2:在这里插入图片描述
    需要根据提示去generate_messages中添加,因为我在该msg文件中是用了geometry_msgs类型,所以需要进行添加

  3. 命令校验

    rosmsg show student_msgs/team
    

    在这里插入图片描述

编写代码

  1. 这一步很重要!!!退出clion, 在运行clion的窗口进入到工作空间目录执行 source devel/setup.bash, 需要重新把环境加载,不然写代码时找不到刚才写的消息类

  2. 编写publisher在这里插入图片描述

  3. 编写subscriber在这里插入图片描述

  4. 运行两个文件查看结果
    在这里插入图片描述

https://www.lanqiao.cn/courses/2947,提供准备好的云主机ros环境,进行实操,课程包括了 Topic 通讯, Service 通讯,ROS 自定义消息,URDF可视化,TF坐标转换等技术要点。每个技术点都会结合例子先把原理讲解清楚,为了达到学以致用的目的,我们会再进行知识拓展,针对每个技术点实现对应的生动有趣的需求,保证学完后会有很大的收获。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值