1、使用acos出现nan
分析: acos(cos_value),参数cos_value的值超出了[-1,1],有时候计算机算的小数点保留得不好,就会造成这样的问题。
解决方法: cos_value = fminl(fmaxl(cos_value, -1.0), 1.0); //限制值在[-1, 1]
2、C++ 中计算时间
解决方法: C/C++中,定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元, #define CLOCKS_PER_SEC ((clock_t)1000)
#include <iostream>
#include “time.h”
using namespace std;
clock_t start,finish;
start = clock();
...
finish = clock();
double duration = (double)(finish - start) / CLOCKS_PER_SEC;
cout << "The program uses "<< duration <<" seconds"<< endl;
3、roboware studio 显示问题
**问题:**roboware studio打开代码显示的字体变得很细,也不知道是怎么回事。这个软件现在国内好像不让用,可查的资料比较少,查“vscode字体变粗怎么办”,找到相关答案,算是显示比较正常一点,说白了就是加粗。 解决方法: 1)file -> seting -> font weight 修改 2)sudo apt-get install gnome-tweaks 字体改为标准(灰度)
4、C++中获得当前运行进制文件所在的位置
#include <stdio.h>
#include <unistd.h>
int main()
{
char *buffer;
if((buffer = getcwd(NULL, 0)) == NULL)
{
perror("getcwd error");
}
else
{
printf("%s\n", buffer);
}
}
5、tf WARN
问题:
[ WARN] [1645501914.574800560]: Detected jump back in time of 0.962313s. Clearing TF buffer.
分析: 找到tf报WARN的地方,只有当now < last_update 时候才会触发
解决方法: 可能的解决方法,将电脑的时间和网络时间同步关掉,理论上不可能发生时间串了。
|