Publisher_消息发布 and Subscriber_消息订阅

创建一个Publisher(n.advertise)

消息发布,发布速度消息给turtle

ros::Publisher turtle_pub;

发布到一个话题上

//发布到话题名:"/turtle1/cmd_vel"   消息缓存数量10
//发布的消息的类型:geometry_msg::Twist
//rostopic list 查看当前有那些话题
turtle_pub=n.advertise<geometry_msg::Twist>("/turtle1/cmd_vel",10);

//定义发布频率 10次每秒
ros::Rate loop_rate(10);

//geometry_msg::Twist变量名:vel_msg
//用定义的发布者变量去发布具体的消息vel_msg(含三轴角速度和线速度)
while(ros::ok()){
    geometry_msg::Twist vel_msg;
    turtle_pub.publish(vel_msg);
    loop_rate.sleep();
}

创建一个Subscriber(n.subscribe)

订阅消息,订阅turtle的速度消息

ros::Subscriber turtle_sub;

发布到一个话题上

//订阅话题名下的消息:"/turtle1/pose"   消息缓存数量10  订阅到后要做什么 callback
//pose上是turtle的姿态消息
turtle_sub=n.subscribe("/turtle1/pose"10 , callback);

//阻塞进程不结束,一直检测"/turtle1/pose"上的消息,调用callback
ros::spin();

callback消息处理

//pose话题下的消息类型:ConstPtr& msg  里面有:msg->x,msg->y;
//节点名:turtlesim  消息内容定义的名字:Pose  变量名:ConstPtr& msg
void posecallback(const turtlesim::Pose::ConstPtr& msg)
posted @   流光最璀璨i  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示