ROS发布&订阅字符串
来源:互联网 发布:猎趣钓鱼网站源码 编辑:程序博客网 时间:2024/06/14 20:26
Ros版本 :Kinetic
Linux版本:Ubuntu16.04
Step1:创建工作分区
mkdir -p workSpace/srccd ~/workSpace/srccatkin_init_workspaceStep2:创建工程包
(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_makeStep3:书写发布节点
(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 <sstream>int main(int argc,char **argv){ros::init(argc,argv,"publish");ros::NodeHandle ch;ros::Publisher chatterPublish = ch.advertise<std_msgs::String>("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]
注:由于时间原因,很多内容未详细展开,如有问题,请在下方留言
注:由于时间原因,里面很多内容未能展开,如有大家有什么疑问,请在下方留言
阅读全文
1 0
- ROS发布&订阅字符串
- ROS学习(-)基本概念+发布&订阅消息
- ROS:编写简单的发布、订阅
- ROS下视频消息发布与订阅
- ROS总结——ROS消息发布和订阅
- ros的topic:创建消息类型、发布、订阅
- ROS 基础: 在同一个节点里订阅和发布消息
- ROS中订阅两个消息,发布一个数据。
- ROS简单的发布器节点和订阅器节点
- Python和C++程序发布和订阅ROS话题
- ROS(2)发布器和订阅器
- ROS学习笔记--消息发布器和订阅器
- ROS:消息发布器和订阅器(c++)
- ros 参数服务器 消息发布和订阅 机器人避障
- ROS学习笔记(八):消息的发布与订阅
- ROS笔记--主题发布节点和主题订阅节点
- ROS学习笔记2 消息发布与订阅
- ROS&OpenCV进行摄像头数据的采集与订阅发布
- YYS FZU
- 设计模式之--观察者模式
- Maven 各种jar下载
- JSP通过表格显示数据库的信息
- 筷子
- ROS发布&订阅字符串
- Vector,ArrayList,LinkedList的区别与适用场景
- 使用pymsql存取图片
- Docker中配置国内镜像
- Area in Triangle (计算几何)
- QGC中地图
- Number Sequence(不知道啥方法,不过做出来了,不容易啊)
- struts、hibernate、spring、 mybatis、 spring boot 等面试题汇总
- Android中定时执行任务的3种实现方法