ROS----窃听小乌龟行动计划

160 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

ROS----窃听小乌龟行动计划

已经知道乌龟运动所订阅的topic为/turtle1/cmd_vel 想要得到小乌龟是如何运动的,我们就需要知道/turtle1/cmd_vel的内容,首先在终端中测试一下我们的监听手段: 首先启动小乌龟画圆的节点,然后。。。

rostopic echo /turtle1/cmd_vel

可以看到我们从画圆节点发送出来的topic内容 接下来需要使用C++来编写相应的节点,监听/turtle1/cmd_vel

#include <ros/ros.h>
#include <geometry_msgs/Twist.h>

//回调函数,其中的参数为订阅到的话题定义的消息
void Listener_Callback(const geometry_msgs::Twist& Twist)
{
    ROS_INFO("X:%f,Y:%f,Z:%f\n",Twist.linear.x,Twist.linear.y,Twist.linear.z);
    ROS_INFO("X:%f,Y:%f,Z:%f\n",Twist.angular.x,Twist.angular.y,Twist.angular.z);
}

int main(int argc,char** argv)
{
    ros::init(argc, argv, "listenercpp");
    ros::NodeHandle n;
    ros::Subscriber sub = n.subscribe("/turtle1/cmd_vel", 1000, Listener_Callback);//订阅/turtle1/cmd_vel这个话题,传入相应的回调函数
    ros::spin();//阻塞此处一直订阅相应的topic

}