IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 古月居_ROS发布订阅字符串数据 -> 正文阅读

[人工智能]古月居_ROS发布订阅字符串数据

文章目录

C++版本

??Hello_pub.cpp如下:

#include "ros/ros.h"
#include "std_msgs/String.h" /* 普通文本类型的消息 */

int main ( int argc, char *argv[] ) {
    setlocale ( LC_ALL, "" ); /* 设置编码 */

    /* 初始化ROS节点,talker是节点名称,需要保证运行后,在ROS网络拓扑中唯一 */
    ros::init ( argc, argv, "talker" );
    ros::NodeHandle nh; /* 实例化ROS句柄 */

    /* 实例化发布者对象。队列中最大保存的消息数为10,超出此阀值时,先进的先销毁(时间早的先销毁) */
    ros::Publisher pub = nh.advertise<std_msgs::String> ( "chatter", 10 );

    std_msgs::String msg;
    msg.data = "你好啊!!!";
    ros::Rate r ( 1 );

    while ( ros::ok() ) {
        pub.publish ( msg );
        ROS_INFO ( "发送的消息:%s", msg.data.c_str() );
        r.sleep();
    }

    return 0;
}

??Hello_sub.cpp如下:

#include "ros/ros.h"
#include "std_msgs/String.h"

void doMsg ( const std_msgs::String::ConstPtr& msg_p ) {
    ROS_INFO ( "我听见:%s", msg_p->data.c_str() );
}

int main ( int argc, char  *argv[] ) {
    setlocale ( LC_ALL, "" );
    ros::init ( argc, argv, "listener" );
    ros::NodeHandle nh;
    /* 实例化订阅者对象 */
    ros::Subscriber sub = nh.subscribe<std_msgs::String> ( "chatter", 10, doMsg );
    ros::spin(); /* 循环读取接收的数据,并调用回调函数 */
    return 0;
}

??在CMakeLists.txt中添加编译选项:

add_executable(Hello_pub src/Hello_pub.cpp)
add_executable(Hello_sub src/Hello_sub.cpp)

target_link_libraries(Hello_pub ${catkin_LIBRARIES})
target_link_libraries(Hello_sub ${catkin_LIBRARIES})

python版本

??talker_p.py如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
from std_msgs.msg import String

if __name__ == "__main__":
    rospy.init_node("talker_p")
    pub = rospy.Publisher("chatter", String, queue_size=10)
    msg = String()
    msg_front = "hello 你好"
    count = 0
    rate = rospy.Rate(1)

    while not rospy.is_shutdown():
        msg.data = msg_front + str(count)
        pub.publish(msg)
        rate.sleep()
        rospy.loginfo("写出的数据:%s", msg.data)
        count += 1

??listener_p.py如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import rospy
from std_msgs.msg import String

def doMsg(msg):
    rospy.loginfo("接收到的数据:%s", msg.data)

if __name__ == "__main__":
    rospy.init_node("listener_p")
    sub = rospy.Subscriber("chatter", String, doMsg, queue_size=10)
    rospy.spin()
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:28:02  更:2021-09-23 11:28:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 0:54:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码