里程计是什么东西?

    很多SLAM的论文中涉及到里程计这个概念。下面这段话是从一篇论文中复制过来的,基本符合里程计的解释,刚入门的童鞋们可以看看:
     里程计作为移动机器人相对定位的有效传感器,为机器人提供了实时的位姿信息。移动机器人里程计模型决定于移动机器人结构和运动方式,即移动机器人运动学模型。
    针对双轮差动移动机器人平台,里程计的工作原理是根据安装在左右两个驱动轮电机上的光电编码器来检测车轮在一定时间内转过的弧度,进而推算机器人相对位姿的变化 。

linux下的程序运行时间测量

方法一:

计算整个程序运行的时间。可以使用time命令,譬如我要运行的文件是app,正常情况下是在终端里面输入./app ,我们可以使用time  ./app运行程序,在程序结束后,会看到一些时间参数,其中Real是程序实力占用时间user是程序用时间包括一些输出信息等,sys是系统使用时间,比如库的调用。

 

方法二:

测量程序中部分代码运行时间。

首先包含头文件:

#include <sys/time.h>

然后新建时间结构:

struct timeval StartTime;
struct timeval EndTime;
double TimeUse=0;
gettimeofday(&StartTime, NULL);

//要测量的程序代码

gettimeofday(&EndTime, NULL);

TimeUse = 1000000*(EndTime.tv_sec-StartTime.tv_sec)+EndTime.tv_usec-StartTime.tv_usec;
TimeUse/=1000;
cout<<“总花费时间为:”<<TimeUse<<“ms”<<endl;
cout<<“总花费时间为:”<<TimeUse/1000<<“s”<<endl;
cout<<“总花费时间为:”<<(int)(TimeUse/1000)/60<<“分”<<((int)(TimeUse/1000))%60<<“秒”<<endl;