ROS及C++中如何记录程序运行时间并使用rqt_plot工具实时绘制运行时间
程序员文章站
2022-05-27 14:52:01
...
ROS及C++中如何记录程序运行时间并使用rqt_plot工具实时绘制运行时间
ROS及C++中常用的记录时间的方式
示例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**,你会看到如下图所示的图形:
上一篇: 1026 程序运行时间
下一篇: PATB:1026程序运行时间