(一):c++代码
#include<ros/ros.h>
#include<turtlesim/Pose.h>
#include<iomanip>
void poseMessageReceived(const turtlesim::Pose & msg)
{
ROS_INFO_STREAM(std::setprecision(2) << std::fixed
<< " position =(" << msg.x << " , " << msg.y << " ) "
<< " *direction=" << msg.theta);
}
int main(int argc, char** argv)
{
ros::init(argc, atgv, "subscribe_to_pose");
ros::NodeHandle nh;
ros::Subscriber sub = nh.subscribe("turtle1/pose", 1000,
&poseMessageReceived);
ros::spin();
}
(二):代码解释
#include<ros/ros.h>
#include<turtlesim/Pose.h>
#include<iomanip>
第一个头文件是所有ros程序都必须有的
第二个头文件是这次用到的消息的主题
第三个头文件是用于控制输入输出
<

本文详细介绍了ROS中订阅者程序的实现,包括c++代码解析、回调函数的工作原理,如ros::spin()和ros::spinOnce()的差异。程序依赖于turtlesim库,通过订阅主题获取并显示位姿数据。
最低0.47元/天 解锁文章
930

被折叠的 条评论
为什么被折叠?



