示例1:C++中简单实现
#include <time.h> #include <iostream> clock_t start, finish; double duration; start = clock(); /* 主题程序执行部分 */ finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; cout<<"The run time is:"<<duration<<endl;示例2:ROS中简单实现
#include <time.h> #include <iostream> int main(int argc, char** argv) { ros::init(argc,argv,"RecordTime"); clock_t startTime,endTime; startTime = ros::Time::now().toNSec(); /* 主体程序运行 */ endTime = ros::Time::now().toNSec(); cout << "The run time is:" << (double)(endTime - startTime) / 10e6 << "ms" << endl; }示例3:ROS中以话题形式实现并使用rqt_plot进行实时绘制
#include <std_msgs/Float64.h> #include <time.h> int main(int argc, char** argv) { ros::init(argc,argv,"RecordTime"); ros::NodeHandle nh; ros::Publisher pub_time; pub_time = nh.advertise<std_msgs::Float64>("/run_time",10); clock_t start; start = clock(); /* 主体程序运行 */ clock_t finish; finish = clock(); std_msgs::Float64 duration; duration.data = (double)(finish - start) / CLOCKS_PER_SEC; pub_time.publish(duration); }前期工作: 打开终端,运行roscore,在运行程序节点之后,在终端中输入以下命令:
rosrun rqt_plot rqt_plot输入命令后会弹出以下窗口,在窗口中Topic文本框中输入所要绘制的话题名称,如下图中所示的**/turtle1/pose/x**,/turtle1/pose/y 按下减号按钮会显示一组菜单让你隐藏图形中指定的话题。 现在隐藏掉你刚才添加的话题并添加**/turtle1/pose/theta**,你会看到如下图所示的图形: