ROS及C++中如何记录程序运行时间并使用rqt_plot工具实时绘制运行时间

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**,你会看到如下图所示的图形:
在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值