ROS常用代码(C++)
本部分仅包含ROS常用基础代码,不包含解释,仅为自己方便之用,如有叙述不明确请谅解;
目录结构
.
├── CMakeLists.txt
├── include
│ └── learning_communication
├── launch
│ └── start_demo_with_listener.launch
├── msg
│ └── Person.msg
├── package.xml
├── src
│ ├── client.cpp
│ ├── listener.cpp
│ ├── server.cpp
│ ├── talker.cpp
│ ├── turtle_tf_broadcaster.cpp
│ └── turtle_tf_listener.cpp
└── srv
└── AddTwoInts.srv
Topic
Publisher
#include <sstream>
#include "ros/ros.h"
#include "std_msgs/String.h"
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);
int count = 0;
while(ros::ok())
{
std_msgs::String msg;
std::stringstream ss;
ss << "hello world " << count;
msg.data = ss.str();
ROS_INFO("%s", msg.data.c_str() );
chatter_pub.publish(msg);
loop_rate.sleep();
++count;
}
return 0;
}
Subscriber
#include "ros/ros.h"
#include "std_msgs/String.h"
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("[%s]", msg -> data.c_str());
}