RSO入门3总结:ROS-Topic话题消息的定义和使用

10 篇文章 0 订阅
6 篇文章 0 订阅

RSO入门3总结:ROS-Topic话题消息的定义和使用

前言

日常强推古月大大
本次实现:话题的自定义并且能发布和订阅(主要订阅和发布的Person.msg消息为姓名,年龄和性别)
环境:Ubuntu20.04、ros-noetic

准备

下面的代码一个也不能错,注意大小写,空格,TAP,单复数,,,

定义person.msg文件

进入learning_topic功能包,创建msg元功能包(文件夹)
进入msg文件夹,创建Person.msg文件

touch Person.msg

打开Person.msg文件,写入下列代码:

string name
uint8 sex
uint8 age

uint8 unknown = 0
uint8 male = 1
uint8 female = 2

ros会根据这个文件编译出C++或者.py文件

设置编译规则

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

打开package.xml(我的路径是:/home/linder/桌面/catkin_wksp/src/learning_topic

添加以下代码

<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>

如图
在这里插入图片描述

在CMakeLists.txt文件中添加编译选项

打开CMakeLists.txt文件将以下代码写入如图位置:

message_generation

如图:
在这里插入图片描述再添加如下代码:

add_message_files(FILES Person.msg)
generate_messages(DEPENDENCIES std_msgs) 

如图
在这里插入图片描述然后在catkin_pack代码 #CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs turtlesim后面添加message_runtime形成
#CATKIN_DEPENDS geometry_msgs roscpp rospy std_msgs turtlesim message_runtime
如图
代码前面用#注释的
![在这里插入图片描述](https://img-blog.csdnimg.cn/bc91a7998fc945dc9711ea00d7fb1f45.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZGVyVmVu,size_20,color_FFFFFF,t_70,g_se,x_16

编译测试

在工作空间下使用catkin_make进行编译

cd catkin_wksp/
catkin_make

编译结果:
如果有错请检查相关步骤,或者书写是否正确
在这里插入图片描述编译成功后会在/home/linder/桌面/catkin_wksp/devel/include/learning_topic生成Person.h文件
在这里插入图片描述

里面主要是根据Person.msg文件中的相关代码生成的可以用ros调用的类,接口之类的

将person_publisher.cpp和person_subscriber.cpp文件复制到/home/linder/桌面/catkin_wksp/src/learning_topic/src路径下,相关的代码连接在上一节古月大大那儿,微信关注回复就行

将如下代码添加到CMakeLists.txt中

add_executable(person_publisher src/person_publisher.cpp)
target_link_libraries(person_publisher ${catkin_LIBRARIES})
add_dependencies(person_publisher ${PROJECT_NAME}_generate_messages_cpp)


add_executable(person_subscriber src/person_subscriber.cpp)
target_link_libraries(person_subscriber ${catkin_LIBRARIES})
add_dependencies(person_subscriber ${PROJECT_NAME}_generate_messages_cpp)

在这里插入图片描述

标题开始进行发布者和订阅者的使用

在catkin_wksp目录下进行编译

cd catkin_wksp/
catkin_make

打开新终端运行

roscore

在这里插入图片描述

打开新终端运行发布者

cd catkin_wksp
source devel/setup.bash
rosrun learning_topic person_publisher

在这里插入图片描述

打开新终端运行订阅者

cd catkin_wksp
source devel/setup.bash
rosrun learning_topic person_subscriber

在这里插入图片描述订阅者可以先回车进行订阅,这时候发布者没有进行发布,所以订阅者没有数据,然后再讲发布者进行回车,然后两个界面都有消息,消息就是person_publisher.cpp文件中写的信息(CTRL+C停止)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值