6、自定义话题消息与使用

6.1、自定义话题消息

切换至~/catkin_ws/src/learning_topic功能包目录下,然后新建一个文件夹,命名为msg,用来存放自定义的话题消息。

6.1.1、定义msg文件

切换至msg目录下,新建一个空白的msg文件,以msg为后缀表示代表是msg文件。这里我们以Information.msg为例子说明下,把以下代码复制到刚刚创建好的msg文件里边。

6.1.2、在package.xml中添加功能包依赖

6.1.3、在CMakeLists.txt添加编译选项

6.1.4、编译生成语言相关文件

6.1.5、C++语言实现

1)、切换至~/catkin_ws/src/learning_topic/src下,新建两个cpp文件,命名为Information_publisher.cpp和Information_subscriber.cpp,把以下代码分别复制到里边,

Information_publisher.cpp

Information_subscriber.cpp

2)、修改CMakeLists.txt文件

3)、核心部分

这里的实现流程和之前的一样,主要不一样的就是引入头文件和使用自定义消息文件:

引入头文件是

前边learning_topic是功能包名字,后边的Information.h是刚才创建的msg文件产生的头文件名字

使用自定义消息文件是

4)、运行程序

5)、运行截图

image-20220225104538769

6)、程序说明

Information_publisher作为发布者,不断向“/company_info”这个话题里边发布消息内容,并且打印发布的消息;而作为订阅者的Information_subscriber,也不断接收“/company_info”这个话题的内容,然后在回调函数里边打印出来。

6.1.6、Python语言实现

1)、切换至~/catkin_ws/src/learning_topic/script下,新建两个py文件,命名为Information_publisher.py和Information_subscriber.py,把以下代码分别复制到里边,

Information_publisher.py

Information_subscriber.py

2)、核心部分

这里主要是说明下如何导入自定义的消息模块和使用:

导入

使用

3)、运行程序

运行程序前,先给py文件增加可执行权限

运行程序

4)、运行截图

image-20220225105730967