ROS学习笔记(3)

本文涉及的产品
资源编排,不限时长
简介: 话题通信

话题通信(实时不断传输信息)
1.编写发布方
2.编写订阅方
3.配置文件并执行

建一个文档
1.编写发布方
1.包含头文件
2.初始化节点
3.创建句柄
4.创建发布者
5.编辑发布的数据

//1.包含头文件
#include "ros/ros.h"
#include "std_msgs/String.h"

int main(int argc, char **argv[])
{

//2.初始化节点
ros::init(argc, argv, "talker");

/、3.创建句柄
ros::NodeHandle nh;

//4.创建发布者对象ros::Publisher pub = nh.advertise<功能包名称::泛型>("话题名");
ros::Publisher chatter_pub = n.advertise<std_msgs::String>("xinXi", 10);

//编辑发布数据
std_msgs::String msg;


 //当ros节点存活时就发送
 while(ros::ok)
{
     msg.data = "hello";
     pub.publish(msg);
}

return 0;
}

再建一个文档
2.编写订阅方
1.包含头文件
2.初始化节点
3.创建句柄
4.创建订阅者
5.处理订阅信息

// 1.包含头文件
#include "ros/ros.h"
#include "std_msgs/String.h"

void doMsg(const std_msgs::String::ConstPtr &msg)
{

ROS_INFO("收到数据为:%s",msg_p->data.c_str());

}

int main(int argc, char *argv[])
{

//不加这一行输出的汉字会变成乱码
setlocale(LC_ALL,"");
//2.初始化 ROS 节点:命名
ros::init(argc,argv,"listener");
//3.实例化 ROS 句柄
ros::NodeHandle nh;

//4.实例化 订阅者 对象
ros::Subscriber sub = nh.subscribe<std_msgs::String>("话题名",10,doMsg);
//5.处理订阅的消息(回调函数   doMsg)

ros::spin();

return 0;

}

配置CMakeLists文件

 # add_executable(${PROJECT_NAME}_node src/test01_pub_node.cpp)

改为:

 add_executable(发布者功能文件名 src/发布者功能文件名.cpp)
 add_executable(订阅者功能文件名 src/订阅者功能文件名.cpp)

target_link_libraries(${PROJECT_NAME}
# ${catkin_LIBRARIES}
)
改为:
target_link_libraries(发布者功能文件名
${catkin_LIBRARIES}
)

target_link_libraries(订阅者功能文件名
${catkin_LIBRARIES}
)
最后在工作空间下进行编译就可以执行了

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
XML 数据可视化 机器人
ubuntu16.04下ROS操作系统学习笔记(三 / 四)ROS基础-ROS中的关键组件(上)
ubuntu16.04下ROS操作系统学习笔记(三 / 四)ROS基础-ROS中的关键组件
122 0
|
算法 数据可视化 机器人
ubuntu16.04下ROS操作系统学习笔记(九)Moveit(上)
ubuntu16.04下ROS操作系统学习笔记(九)Moveit(上)
235 0
|
机器学习/深度学习 传感器 机器人
ubuntu16.04下ROS操作系统学习笔记(九)Moveit(下)
ubuntu16.04下ROS操作系统学习笔记(九)Moveit(下)
134 0
|
机器学习/深度学习 传感器 Ubuntu
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(下)
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(下)
384 0
|
存储 传感器 编解码
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM(上)
ubuntu16.04下ROS操作系统学习笔记(八)机器人SLAM与 Gmapping-Hector_slam-Cartographer--ORB_SLAM
173 0
|
机器学习/深度学习 算法 决策智能
ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别(下)
ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别(下)
403 0
|
存储 机器学习/深度学习 编解码
ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别(上)
ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别(上)
496 0
|
机器学习/深度学习 机器人 中间件
ubuntu16.04下ROS操作系统学习笔记(五)gazebo物理仿真环境搭建、加载服务端模型数据减少报错
ubuntu16.04下ROS操作系统学习笔记(五)gazebo物理仿真环境搭建、加载服务端模型数据减少报错
226 0
|
机器学习/深度学习 传感器 XML
ubuntu16.04下ROS操作系统学习笔记(四 )机器人系组成、URDF机器人建模、xacro模型优化
ubuntu16.04下ROS操作系统学习笔记(四 )机器人系组成、URDF机器人建模、xacro模型优化
266 0
|
机器学习/深度学习 传感器 数据可视化
ubuntu16.04下ROS操作系统学习笔记(三 / 四)ROS基础-ROS中的关键组件(下)
ubuntu16.04下ROS操作系统学习笔记(三 / 四)ROS基础-ROS中的关键组件(下)
157 0

推荐镜像

更多