资讯详情

【多传感器融合定位】【2】【python版本的切换和evo的安装】【evo的使用记录】

2【python切换和版本evo的安装】【evo使用记录

  • 0 前言
  • 1 基于evo里程计精度评价
    • 1.1 安装evo和切换python版本
      • 1.1 ubuntu18.04下切换python版本
      • 1.2 安装pip3
      • 1.3 安装evo
      • 1.4 测试
      • 1.5 python版本退回
    • 1.2 evo的使用
      • 1.2.1 evo使用须知
      • 1.2.1 分段统计精度(相对位置误差RPE:relative pose error)
      • 1.2.2 计算整体轨迹误差
      • 1.2.3 绘制运行轨迹 evo_traj
        • 1.2.3.1 绘制单个或多个文件的运动轨迹
  • 2 关于使用vscode编译slam工程,c_cpp_properties.json文件的配置
    • 2.1 首先生成c_cpp_properties.json文件
    • 2.2 包含进自己创建的头文件

0 前言

1 基于evo里程计精度评价

  • 使用组合导航的结果作为真实值evo里程计精度评估工具

1.1 安装evo和切换python版本

1.1 ubuntu18.04下切换python版本

  • 参考:ubuntu切换python版本

  • 安装evo之前要把evo切换到ubuntu所携带的python3版本可参考上述链接

1.2 安装pip3

sudo apt install python3-pip 

1.3 安装evo

  • 注意安装evo提前安装可能存在的依赖问题
sudo apt-get install tcl-dev tk-dev python3-tk 

然后安装evo

pip install evo --upgrade --no-binary evo 

然后

echo 'export  PATH=$PATH:/home/bupo/.local/bin' >>~/.bashrc source ~/.bashrc 

参考文章:安装VO/SLAM测评工具evo遇到的坑 如下: 在这里插入图片描述

1.4 测试

  • 我没有测试,想参考测试ubuntu18.04安装evo,以及python版本切换中的第7节

1.5 python版本退回

为了保证ros正常使用需要下一步python版本从python3切换至python2,可以保证安装evo后ros正常使用。

sudo update-alternatives --config python 

选择python2的默认版本即可

1.2 evo的使用

T(0,0) T(0,1) T(0,2) T(0,3) T(1,0) T(1,1) T(1,2) T(1,3) T(2,0) T(2,1) T(2,2) T(0,3)
//其中 平移矩阵为t( T(0,3),T(1,3) , T(0,3))

1.2.1 evo使用须知

  • evo支持一下几种数据格式:

  • 在使用evo的时候都要在工具后面先给出想要处理的数据格式如:
evo_traj tum -h(查看帮助)

1.2.1 分段统计精度(相对位姿误差RPE:relative pose error)

evo_rpe kitti ground_truth.txt laser_odom.txt -r trans_part --delta 100 --plot --plot_mode xyz
  • 其中–delta 100表示的是每隔100米统计一次误差,这样统计的其实就是误差的百分比,和kitti的odometry榜单中的距离误差指标就可以直接对应了。

1.2.2 计算整体轨迹误差

evo_ape kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyz

1.2.3 绘制出运行轨迹 evo_traj

1.2.3.1 绘制单个或多个文件的运动轨迹

  • 单个文件
evo_traj kitti laser_odom.txt -p
  • 多个文件
evo_traj kitti laser_odom.txt ground_truth.txt -p
  • 多个文件,但存在参考轨迹,这里就把ground_truth.txt当作参考轨迹
evo_traj kitti laser_odom.txt --ref ground_truth.txt -va -p

其中ref是参考轨迹,-va是对齐后的详细信息,-p是画出图像,也可以使用 –plot_mode {xy,xz,yx,yz,zx,zy,xyz} 来选择单独绘制某个平面的信息

evo_traj kitti laser_odom.txt -p --plot_mode xy
  • 演示为单个,输出的图像包括:
  1. 轨迹三维图
  2. 平移的XYZ数据 3 绕轴(X,Y,Z)旋转的数据(roll,pitch,yaw)(滚转角,俯仰角,偏航角)
evo_traj kitti ground_truth.txt laser_odom.txt -p --plot_mode=xy

2 关于使用vscode编译slam工程,c_cpp_properties.json文件的配置

2.1 首先生成c_cpp_properties.json文件

  • 按下ctrl+shitf+P,输入并选择ROS:Update C++ Properties即可更新c_cpp_properties.json里面的头文件路径,里面有ros的路径,devel中include的路径,各个功能包include的路径,会默认包含~/.bashrc文件中包含的source(查看~/.bashrc,为sudo gedit ~/.bashrc
  • 此时的c_cpp_properties.json为:
{
    "configurations": [
        {
            "browse": {
                "databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db",
                "limitSymbolsToIncludedHeaders": false
            },
            "includePath": [
                "/opt/ros/melodic/include/**",
                "/usr/include/**"
            ],
            "name": "ROS",
            "intelliSenseMode": "gcc-x64",
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu11",
            "cppStandard": "c++14"
        }
    ],
    "version": 4
}

参考:VSCode调试ROS程序

2.2 包含进自己创建的头文件

  • 如果仅仅执行上一步,会出现提示,这是由于找不到自己创建的头文件导致的
  • 解决方案: 在c_cpp_properties.jsonincludePath参数下,加上该头文件的位置,如所缺失的头文件一般在include文件下,:

  • 但是添加了仍然会出现找不到的提示,此时把鼠标放在该头文件处,会弹出查看问题快速修复,点击快速修复

  • 点击添加到“xx/xxx/xxx”,会自动把该文件的目录添加进去

标签: va传感器传感器reftk7480传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台