ros一个节点同时订阅和发布话题,ros查看发布的话题
文章目录前言一、新建一个活性氧簇(活性氧物种的缩写)工作空间并创建功能包二、创建一个味精消息三、发布话题四、订阅话题前言Ubuntu18.04
罗斯旋律
一、新建一个活性氧簇(活性氧物种的缩写)工作空间并创建功能包将创建路径名称柳絮_ws/src
CD ~/柳絮_ws/src/
柳絮_初始化_工作空间
CD ~/柳絮_ws/
柳絮_制作
“回声”源~/柳絮_ws/devel/setup.bash ~/.没有则创建
来源~/。没有则创建
CD ~/柳絮_ws/src/
柳絮_创建_pkg主题罗斯普罗斯比标准消息执行完毕后建立了工作空间柳絮_ws,并创建了功能包话题。
二、创建一个味精消息在主题包的目录下创建味精文件夹并在味精文件中添加消息成员
CD/home/mobot/柳絮_ws/src/topic
创建目录消息
激光唱片消息
gedit example.msg
填入以下内容:
STD _ msgs/头标题
float32测试一
int32测试2标题是消息头,包含了序列号,时间戳,帧id,一般每个消息都有这个成员,其他的成员可以根据需要随便取。
编辑package.xml文件
gedit/home/mobot/柳絮_ws/src/topic/package.xml确保它包含以下两行且没有被注释。如果没有,添加进去:
构建依赖消息生成/构建依赖
执行_依赖消息运行时/exec _依赖
修改主题包下面的CMakeLists.txt文件:
gedit/home/mobot/柳絮_ws/src/topic/CMakeLists.txt将消息_生成添加到成分列表中
添加运行时依赖关系柳絮_依赖消息_运行时
添加味精文件
添加消息文件(
文件
示例。消息
)
确保生成消息()函数被调用
生成消息(
属国
标准消息
)
添加完后无需编译使用rosmsg显示示例即可查看是否添加成功
三、发布话题进入柳絮_ws/src/topic/src中新建节点程序
CD ~/柳絮_ws/src/topic/src
文字编辑器发布会一个简单的发布节点程序如下,可以直接复制到公共频道中
#包含罗斯/罗斯. h
#include std_msgs/String.h
#包含流
#includetopic/example.h
int main(int argc,char **argv)
{
ros:init(argc,argv, pub );
ROS:节点句柄nd;
ROS:Publisher publish=nd。advertise topic:example(/topic/example ,10);
ROS:Rate loop _ Rate(10);
while (ros:ok())
{
题目:举例举例;
example.test1=1.5
example.test2=2
发布.发布(示例);
loop _ rate睡眠();
}
返回0;
}修改主题包下面的CMakeLists.txt文件:
gedit/home/mobot/柳絮_ws/src/topic/CMakeLists.txt在文件的最后加上:
添加可执行文件(公共资源中心/公共资源中心)
目标_链接_库(发布$ {柳絮_库})然后编译
CD ~/柳絮_ws
柳絮_制作。~/柳絮_ws/devel/setup.bash运行:
罗斯科雷
罗斯伦主题酒吧然后执行:
话题回声/话题/例子出现下面的信息说明发布成功
四、订阅话题进入柳絮_ws/src/topic/src中新建节点程序
CD ~/柳絮_ws/src/topic/src
文字编辑器子卡片打印处理机(Card Print Processor的缩写)一个简单的发布节点程序如下,可以直接复制到亚卡片打印处理机(Card Print Processor的缩写)中
#包含罗斯/罗斯. h
#include std_msgs/String.h
#包含流
#includetopic/example.h
void订户回调(const topic:example:const ptr msg)
{
printf(test1=%f,test2=%d\n ,msg- test1,msg-test2);
}
int main(int argc,char **argv)
{
罗斯:订户订户;
ros:init(argc,argv, sub );
ROS:节点句柄nd;
订户=nd。subscribe(话题/例子,5,订阅者回调);
ROS:Rate loop _ Rate(10);
while (ros:ok())
{
loop _ rate睡眠();
ROS:spin once();
}
返回0;
}修改主题包下面的CMakeLists.txt文件:
gedit/home/mobot/柳絮_ws/src/topic/CMakeLists.txt在文件的最后加上:
添加可执行文件(子src/子cpp)
目标_链接_库(子美元{柳絮_库})然后编译
CD ~/柳絮_ws
柳絮_制作。~/柳絮_ws/devel/setup.bash运行:
罗斯伦潜艇潜艇可以看到打印出了订阅到的话题
运行rqt _图表结果如下:
代码地址:
git @ gitee。com:Mbot/ROS-主题-模板。饭桶
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。