ROS实操入门系列(七)ROS topic通讯之自定义复杂msg消息类型解决实际需求二(详解)
需求升级
-
根据上一章的需求一,进行升级。已知有两个节点,其中一个节点是Publisher,另外一个节点是Subscriber。Publisher发布的消息是 团队数据,包含了以下内容:
-
根据需求类型,定义msg文件,其中student是上一章定义的消息类型,在同一个包中可以直接引用
CMakeLists文件配置
-
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 )
-
编译项目
cd 工作空间 catkin_make
遇到下面错误1:可以删除工作空间中的build和devel,然后再次catkin_make
遇到下面错误2:
需要根据提示去generate_messages中添加,因为我在该msg文件中是用了geometry_msgs类型,所以需要进行添加 -
命令校验
rosmsg show student_msgs/team
编写代码
-
这一步很重要!!!退出clion, 在运行clion的窗口进入到工作空间目录执行 source devel/setup.bash, 需要重新把环境加载,不然写代码时找不到刚才写的消息类
-
编写publisher
-
编写subscriber
-
运行两个文件查看结果