ros学习笔记之——evo工具的使用(代码片段)

gwpscut gwpscut     2023-01-27     532

关键词:

之前博客《ROS学习笔记之——VICON的使用》用vincon获得了机器人的真实轨迹,并且通过amcl可以获得了机器人的定位结果,下面通过EVO包来表征performance(本文不像网上大部分博客复制粘贴别人的图,连跑都没跑过)

by the way

不得不说这csdn的编辑器真的十分垃圾。。。。。

哦不,不是一般的十分垃圾

开始正文~

安装

首先安装EVO工具

sudo apt install python-pip
pip install evo --upgrade --no-binary evo

运行ros包并且看一下topic

roscore
rosbag play /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag
rostopic list

将/turtlebot2/viconros/mocap/pos作为ground truth, /amcl_pose作为定位输出。

轨迹可视化

evo_traj bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /amcl_pose --ref=/turtlebot2/viconros/mocap/pos -va -p --plot_mode=xy

绝对轨迹误差 (Absolute Trajectory Error, ATE)

(对应evo工具中的“evo_ape”命令)

绝对轨迹误差(absolute trajectory error)**直接计算相机位姿的真实值与SLAM系统的估计值之间的差。程序首先根据位姿的时间戳将真实值和估计值进行对齐, 然后计算每对位姿之间的差值, 并最终以图表的形式输出, 该标准非常适合于评估视觉 SLAM 系统的性能。

绝对轨迹误差是估计位姿和真实位姿的直接差值,可以非常直观地反应算法精度和轨迹全局一致性

evo_ape bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va --plot --plot_mode=xy

显然,默认出来的是平移误差

但实际可以根据需要选择不一样的参数

 

 比如下面设定角度与平移

evo_ape bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va -r trans_part --plot --plot_mode=xy
evo_ape bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va -r angle_deg --plot --plot_mode=xy

第一句跟上面是一样的。第二句的结果如下所示

通过下面这样也可以看到参数的选择:

相对位姿误差 (Relative Pose Error, RPE)

(对应evo工具中的“evo_rpe”命令)

相对位姿误差(relative pose error)用于计算相同两个时间戳内的位姿变化量的差, 同样, 在用时间戳对齐之后, 真实位姿和估计位姿均每隔一段相同时间计算位姿的变化量, 然后对该变化量做差, 以获得相对位姿误差, 该标准适合于估计系统的漂移

evo_rpe bag /home/kwanwaipang/dataset/gwphku/amcl_vicon_2021-11-04-11-18-50.bag /turtlebot2/viconros/mocap/pos /amcl_pose -va --plot --plot_mode=xy

 

参考资料

https://github.com/uzh-rpg/rpg_trajectory_evaluation

https://github.com/MichaelGrupp/evo
SLAM_轨迹算法精度评价指标(ATE、RPE)_惊鸿一博-CSDN博客
SLAM_轨迹算法精度评价指标(ATE、RPE)_惊鸿一博-程序员宅基地 - 程序员宅基地
小白学SLAM——使用评测工具EVO评估误差 - 知乎

ros实验笔记之——evo(代码片段)

...eventcamera仿真(dvsgazebo)》介绍了DVS的gazebo仿真。博客《ROS学习笔记之——ESVO复现及DAVIS346测试》介绍了ESVO以及事件相 查看详情

ros学习笔记之——vicon的使用(代码片段)

最近要测量定位算法的精度,打算用vicon来提供groundtruth入门vicon其实就相当于一个传感器,在机载电脑上安装VICON-ROS包,这个包就相当于驱动接收来自VICON的数据在机载电脑上编译(需要用cm编译)编译完了之... 查看详情

ros学习笔记之——davis346calibration(代码片段)

之前博客《ROS实验笔记之——DAVIS346测试》已经对davis346相机进行了测试。接下来正式开始gan,先看看如何做calibration官方给的标定在(rpg_dvs_ros/README.mdatmaster·uzh-rpg/rpg_dvs_ros·GitHub)这里面有关于dvs的校正。由于davis有... 查看详情

ros学习笔记之——esvo复现及davis346测试(代码片段)

之前博客《学习笔记之——EventCamera调研》已经介绍过事件相机。本博文对科大开源的ESVO以及本团队购买的DAVIS346进行测试分析。本博文仅供本人学习记录用,不做任何商业用途~目录原理学习代码运行事件相机的driver安... 查看详情

ros学习笔记之——3dmapmerge(代码片段)

之前博客《ROS实验笔记之——基于cartographer的多机器人SLAM地图融合》已经实现了2Dmapmerge,也做了大量这方面的demotwo基于两个turtlebot2的多机器人SLAM地图融合本博文看看3dmapmerge方面的资料首先呢有CCM-SLAM(https://github.com/VI... 查看详情

ros学习笔记之——messagefilters的应用(代码片段)

message_filters用于对齐多种传感信息的时间戳,对齐时间戳有两种方式,一种是时间戳完全对齐:ExactTimePolicy ,另一种是时间戳相近:ApproximateTimePolicymessage_filters作用是:同时订阅并发布话题时间同步... 查看详情

ros实验笔记之——davis346测试(代码片段)

之前博客《ROS学习笔记之——ESVO复现及DAVIS346测试》介绍了dvs驱动的安装。本博文对到手的时间相机进行测试。运行命令roslaunchdvs_rendererdavis_mono.launch但是运行的时候出现报错[WARN][1632472696.858249337]:Cameracalibrationfile/home/kwanwaipang/.r... 查看详情

ros学习笔记之——msckf(代码片段)

原理精度方面,MSCKF应该与graphoptimazation差不多,但是其对算力要求没有那么高~http://www.xinliang-zhong.vip/msckf_notes/#header-n1369DemoMSCKF_MONOhttps://github.com/daniilidis-group/msckf_mono运行此包时,注 查看详情

ros学习笔记之——基于已有的rosbag重新录制rosbag(代码片段)

首先通过下面命令查看当前rosbag的topicrosbaginforslidar-outdoor-gps.bag此处把tf去掉rosbagrecord/imu/odom_scout/fix/front_scan/heading/rslidar_points/tf_static但在执行前还需要执行rosparamsetuse_sim_timetruerosparamgetuse_sim_time运 查看详情

ros1学习笔记:ros命令行工具的使用(ubuntu20.04)(代码片段)

参考B站古月居ROS入门21讲:ROS命令行工具的使用基于VMwareUbuntu20.04Noetic版本的环境文章目录一、启动小海龟二、计算图可视化工具:rqt_graph三、常用命令:1、节点rosnode显示节点列表:rosnodelist查看节点信息:ro... 查看详情

ros实验笔记之——基于prometheus的无人机运动规划(代码片段)

本博文基于Prometheus项目来学习无人机的运动规划。关于该项目的配置可以参考《ROS实验笔记之——基于Prometheus自主无人机开源项目的学习与仿真》Demo演示基于2D-LiDAR的APF路径规划基于rgbdcamera的APF路径规划基于3D-LiDAR的Astar路径... 查看详情

ros学习笔记之——gazebo仿真(代码片段)

本博文是本人学习gazebo的学习记录。 Gazebo是一款3D仿真器,支持机器人开发所需的机器人、传感器和环境模型,并且通过搭载的物理引擎可以得到逼真的仿真结果。Gazebo是近年来最受欢迎的三维仿真器之一,并被选... 查看详情

ros实验笔记之——intelrealsensel515激光相机的使用(代码片段)

最近实验室购买了IntelRealsensel515相机。本博文记录使用过程~ 驱动安装先到官网安装驱动:https://github.com/IntelRealSense/realsense-roshttps://github.com/IntelRealSense/realsense-ros安装realsense2_camerasudoapt-getinstallros-melod 查看详情

蓝桥ros机器人之现代c++学习笔记7.3期物(代码片段)

学习了如下程序://futureexample#include<iostream>//std::cout#include<future>//std::async,std::future#include<chrono>//std::chrono::milliseconds//anon-optimizedwayofcheckingforprimenum 查看详情

ros2学习笔记19--探索ros2doctor工具(代码片段)

概要:这篇主要介绍ros2doctor工具环境:ubuntu20.04,ros2-foxy,vscode最后如果没有陈述实操过程中碰到问题的话,则表示该章节都可被本人正常复现.2.2.11探索ros2doctor工具(原文:https://docs.ros.org/en/foxy/Tutorials/Get... 查看详情

蓝桥ros机器人之现代c++学习笔记7.4条件变量(代码片段)

学习如下代码://condition_variableexample#include<iostream>//std::cout#include<thread>//std::thread#include<mutex>//std::mutex,std::unique_lock#include<condition_variable>//std 查看详情

ros仿真笔记之——基于rrt_exploration的单个机器人自主探索建图(代码片段)

...文已经介绍过机器人exploration以及多机器人SLAMmapmerage《ROS学习笔记之——多机器人探索环境》《ROS仿真笔记之——基于gazebo的多机器人探索环境仿真》《ROS仿真笔记之——多移动机器人SLAM地图融合》《ROS仿真笔记之——移动机... 查看详情

ros进二阶学习笔记--关于rospy和parameters(代码片段)

...作paramhttp://wiki.ros.org/rosparam -- ROSTool之rosparam用法ros进阶学习笔记(24)--关于rospy和parameters进行rospy编程时,需要用到parameter,但如何灵活用好它,还需进一步学习总结。节点程序如何声明parameter,是global... 查看详情