关于Rate类,声明注释中是这么解释的“Class to help run loops at a desired frequency”,也就是帮助(程序)按照期望的频率循环执行。 我们看看一个ROS节点是怎么使用Rate类的,如下图所示的例子。 首先用Rate的构造函数实例化一个对象loop_rate。调用的构造函数如下。 可见,构造函数使用输入完成了对三个参数的初始...
ros::Rate loop_rate(10); 它似乎在创建某种类型的对象,但是这看起来像是一个函数调用,并且我看不出该对象的命名位置。这行代码是做什么的?我理解ros中的loop_rate是什么,但我是c++的新手,不了解它的语法。 代码语言:javascript 复制 #include "ros/ros.h" #include "std_msgs/String.h" #include <sstrea...
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(...
ros::Publisher chatter_pub = n.advertise<geometry_msgs::PoseStamped>("chatter", 10); //initialize chatter ros::Rate loop_rate(10); //generate pose by ourselves. double positionX, positionY, positionZ; double orientationX, orientationY, orientationZ, orientationW; //We just make the robot h...
publish(msg); ros::spinOnce(); loop_rate.sleep(); } return 0; } 2.创建订阅者 接下来,我们创建一个名为 subscriber_node.cpp的文件来订阅 chatter主题并打印接收到的消息。(文件的操作和前面的一样,不再赘述) 文件名:subscriber_node.cpp #include "ros/ros.h" #include "std_msgs/String.h" ...
7:ros::Rate loop_rate(10)这个很好理解,我的程序如果在不断地发布信息,那么有时候我会想控制发布的信息的快慢,这行表示你希望你发布信息的速度为10Hz。这个函数要和loop_rate.sleep()配合使用才能达到控制速度目的。 8:while(ros::ok())要是ros不OK,程序就退出了。什么时候ROS不OK呢?上面提供的中文链接中...
ros::Rate loop_rate(10); while (ros::ok()) { /* code for loop body */ //初始化geometry_msgs::Twist消息类型 geometry_msgs::Twist vel_msg; vel_msg.linear.x = 0.5; vel_msg.angular.z = 0.2; //发布消息 turtle_vel_pub.publish(vel_msg); ...
ros::Rate loop_rate(1); int count = 0; while (ros::ok()) { // 初始化learn_topic::Person类型的消息 learning_topic::Person person_msg; person_msg.name = "Tom"; person_msg.age = 18; person_msg.sex = learning_topic::Person::male; ...
; int sec = 0; while(ros::ok() && sec++ < 5){ loop_rate.sleep(); ...