ROS入门:话题
2024-09-18 17:05:18
1.listener.cpp
#include "ros/ros.h"
#include "std_msgs/String.h"
//回调函数,接收到话题后进入
void chatterCallback( const std_msgs::String::ConstPtr& msg )
{
ROS_INFO( "heard:[%s]", msg->data.c_str() ); } int main( int argc, char** argv )
{
ros::init(argc,argv,"listener"); //初始化一个名为listener的节点 ros::NodeHandle n; ros::Subscriber sub = n.subscribe("chatter",1000,chatterCallback); //订阅一个话题 ros::spin(); //节点进入循环状态 return 0;
}
2.talker.cpp
#include "ros/ros.h"
#include "std_msgs/String.h"
#include <sstream> int main(int argc, char **argv) {
ros::init(argc, argv, "talker");
ros::NodeHandle n; ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000); //发布一个话题
ros::Rate loop_rate(10); //设置循环的频率,10hz int count = 0; while (ros::ok()) {
std_msgs::String msg;
std::stringstream ss;
ss << "helloworld" << count;
msg.data = ss.str(); chatter_pub.publish(msg); ros::spinOnce(); loop_rate.sleep();
++count;
}
return 0;
}
3.CMakeList.txt加入
add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker ${PROJECT_NAME}_generate_messages_cpp) add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})
add_dependencies(listener ${PROJECT_NAME}_generate_messages_cpp)
最新文章
- linux 学习 day1
- bzoj 1079 着色方案
- IOS开发之控件篇UINavigationController第二章 - 标题
- 【iOS】Object-C注释
- ConcurrentHashMap原理分析
- 79.Android之动画基础
- 清除浮动after
- linux安装hadoop 1.2.1
- phonegap+html5开发app的一些总结
- mysql概要(十四)索引(补充:外键级联操作)
- netbeans git 配置(ssh方式)
- Cocos2D-x权威指南:核心类成员CCNode
- 使用 Spring 2.5 TestContext 测试DAO层
- 201521123089 《Java程序设计》第10周学习总结
- Java 数据库程序设计
- 第02节:JMS基本概念和模型
- Android中的数据储存
- 熟悉 JUnit 测试
- 机器学习之MCMC算法
- java压缩图片质量