ROS发布&订阅字符串
发布日期:2021-05-09 12:07:26 浏览次数:4 分类:技术文章

本文共 3332 字,大约阅读时间需要 11 分钟。

Ros版本   :Kinetic

Linux版本:Ubuntu16.04

Step1:创建工作分区   

mkdir -p workSpace/srccd ~/workSpace/srccatkin_init_workspace

Step2:创建工程包

 

(1)进入工作空间

 

cd ~/workSpace/src

(2)使用 catkin_create_pkg 命令创建,格式为:catkin_create_pkg+包名+std_msgs rospy roscpp(std_msgs rospy roscpp为包依赖)

 

 

catkin_create_pkg first std_msgs rospy roscpp

(3)编译工程包

 

 

cd ~/workSpacecatkin_make

Step3:书写发布节点

 

(1)切换到刚才创建的first工程包

 

cd ~/workSpace/src/first

(2)进入到src文件中

 

 

cd ./src

(3)创建publish.cpp文件

 

 

touch publish.cpp

(4)打开publish.cpp文件并书写下面代码

 

 

#include "ros/ros.h"#include "std_msgs/String.h"#include 
int main(int argc,char **argv){ ros::init(argc,argv,"publish"); ros::NodeHandle ch; ros::Publisher chatterPublish = ch.advertise
("chatter",1000); ros::Rate loop_rate(25); int count = 0; while(ros::ok()) { std_msgs::String msg; std::stringstream stringStr; stringStr << count; msg.data = stringStr.str(); ROS_INFO("%s",msg.data.c_str()); chatterPublish.publish(msg); ros::spinOnce(); loop_rate.sleep(); ++count; } return 0;}

Step4:书写接收节点

(1)创建subscribe.cpp文件

 

 

touch subscribe.cpp

(2)打开subscribe.cpp文件并书写下面代码

 

 

#include "ros/ros.h"#include "std_msgs/String.h"void chatterCallback(const std_msgs::String::ConstPtr& msg){	ROS_INFO("I heard : [%s]",msg->data.c_str());}int main(int argc,char **argv){	ros::init(argc,argv,"subscribe");		ros::NodeHandle ch;	ros::Subscriber chatterSubscribe = ch.subscribe("chatter",1000,chatterCallback);	ros::spin();	return 0;}

Step5:编辑CMakeLists.txt文件

 

(1)切换到first工程包下

 

cd ..

 

(2)打开first工程包下CMakeLists.txt文件

 

gedit CMakeLists.txt

(3)在CMakeLists.txt文件后添加如下语句

 

 

include_directories(include ${catkin_INCLUDE_DIRS})add_executable(publish src/publish.cpp)target_link_libraries(publish ${catkin_LIBRARIES})add_executable(subscribe src/subscribe.cpp)target_link_libraries(subscribe ${catkin_LIBRARIES})

 

 

 

Step5:程序测试

(1)切换到workSpace 文件下

 

cd ~/workSpace

(2)编译工程包

 

 

catkin_make

(3)在运行ROS前,需要先打开核心程序

 

 

roscore

(4) 进行程序注册

 

cd ~/workSpacesource ./devel/setup.bash

(5)运行publish节点

 

source ./devel/setup.bashrosrun first publish

(6)publish效果如下

[ INFO] [1503411559.389559783]: 728[ INFO] [1503411559.429590639]: 729[ INFO] [1503411559.469584022]: 730[ INFO] [1503411559.509559116]: 731[ INFO] [1503411559.549610605]: 732[ INFO] [1503411559.589573180]: 733[ INFO] [1503411559.629562030]: 734[ INFO] [1503411559.669586479]: 735[ INFO] [1503411559.709607218]: 736[ INFO] [1503411559.749559386]: 737[ INFO] [1503411559.789595977]: 738[ INFO] [1503411559.829607695]: 739[ INFO] [1503411559.869589854]: 740[ INFO] [1503411559.909561388]: 741

(7)运行subscribe节点

source ./devel/setup.bashrosrun first subscribe

(8)subscribe效果如下

 

 

[ INFO] [1503411559.389923540]: I heard : [728][ INFO] [1503411559.430051186]: I heard : [729][ INFO] [1503411559.470006422]: I heard : [730][ INFO] [1503411559.510059517]: I heard : [731][ INFO] [1503411559.550007881]: I heard : [732][ INFO] [1503411559.590005653]: I heard : [733][ INFO] [1503411559.630056561]: I heard : [734][ INFO] [1503411559.670017638]: I heard : [735][ INFO] [1503411559.710036361]: I heard : [736][ INFO] [1503411559.750000053]: I heard : [737][ INFO] [1503411559.789929008]: I heard : [738][ INFO] [1503411559.830030398]: I heard : [739][ INFO] [1503411559.869964462]: I heard : [740][ INFO] [1503411559.909935796]: I heard : [741]

注:由于时间原因,很多内容未详细展开,如有问题,请在下方留言

更多《计算机视觉与图形学》知识,可关注下方公众号:

在这里插入图片描述

 

注:由于时间原因,里面很多内容未能展开,如有大家有什么疑问,请在下方留言

 

 

 

 

 

 

 

 

 

转载地址:https://blog.csdn.net/CSS360/article/details/77371778 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python--修改工作目录
下一篇:刷野打怪上王者-OpenCV

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2023年09月08日 09时15分59秒