SLAM 轨迹评估方法 evo(包括GPS坐标转换成TUM)

这篇具有很好参考价值的文章主要介绍了SLAM 轨迹评估方法 evo(包括GPS坐标转换成TUM)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装 evo

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

SLAM轨迹

运行ORBSLAM

rosrun ORB_SLAM3 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/RealSense_T265.yaml false 

之后会生成一个TUM格式的轨迹FramTrajectory_TUM_Format.txt

GPS轨迹

我们也需要将获取的GPS轨迹转化成笛卡尔坐标下TUM格式坐标

import math 
import numpy as np 
import rospy
from std_msgs.msg import std_msgs
from plot_py.msg import INS_Data
import time
from matplotlib.animation import FuncAnimation
import os
from math import sin,cos,radians
a = 6378137. #长轴
f = 1 / 298.257223563 #扁率
fle = open("/home/jiangz/catkin_ws/src/plot_py/data/GPS_301_short.txt",mode = 'w')
def gps_to_cartesion(lat,lon,alt):
    lat = radians(lat)
    lon = radians(lon)
    print (lat,lon,alt)
    b = a * (1 - f)
    e = (a ** 2 - b ** 2) ** 0.5 / a
    N = a / (1 - e ** 2 * sin(lat) ** 2) ** 0.5

    # 计算XYZ坐标
    X = (N + alt) * cos(lat) * cos(lon)
    Y = (N + alt) * cos(lat) * sin(lon)
    Z = (N * (1 - e ** 2) + alt) * sin(lat)

    return X,Y,Z

def callback(data):
    
    x,y,z = gps_to_cartesion(data.latitude,data.longitude,data.altitude)
    stamp = data.header.stamp
    time = float(stamp.secs) + (stamp.nsecs / 1e+9 ) 
    fle.write(str(time) +" "+str(x) +" "+str(y) + " " + str(z))
    fle.write(" 0. 0. 0. 0.\n")
    # print(x,y,z)
    print(str(time) +" "+str(x) +" "+str(y) + " " + str(z))
    print("\n")

def save_as_txt():
    rospy.init_node('GPS',anonymous=True) 
    rospy.Subscriber("/ins_data",INS_Data,callback)
    rospy.spin() 
    fle.close()
    
save_as_txt()

使用此代码,将GPS的经纬度海拔信息转换成笛卡尔坐标下的坐标,并且保存成TUM格式

画出图像

轨迹对比图像

链接:https://www.guyuehome.com/18717
里详细介绍了evo方法
gps evo,slam,python,matplotlib,numpy,人工智能
原谅我的GPS测量误差大得离谱。。。。

标题单一图像

在ORBSLAM里面自带了一个画图的工具
/evaluation/evaluate_ate_scale.py

python evaluation/evaluate_ate_scale.py FrameTrajectory_TUM_Format.txt FrameTrajectory_TUM_Format.txt --plot PLOT 

其中第一个txt文件是真实轨迹,后一个是测量轨迹,正常来说会对两个轨迹进行对比,但是犹豫GPS轨迹在转换成笛卡尔坐标系后,还需要求出R和T之后,才能得到SLAM轨迹相同Scale 的轨迹图,所以使用这个方法比对会比较麻烦。

执行完成后,会在当前目录下生成一个名为PLOT的文件。

gps evo,slam,python,matplotlib,numpy,人工智能文章来源地址https://www.toymoban.com/news/detail-812387.html

到了这里,关于SLAM 轨迹评估方法 evo(包括GPS坐标转换成TUM)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SLAM和里程计评估工具——evo使用方法全解

            本帖的主要内容是整理evo的使用方法及各种命令,不含安装步骤及过程,还未安装的请移步其他博主。         evo目前支持的公开数据集格式有: TUM、KITTI、EuRoC 以及 ROS bagfile 。如果使用的数据集格式为这些中的某一种,那么无须额外的数据格式处理,就可以

    2024年02月08日
    浏览(48)
  • GPS学习(一):在ROS2中将GPS经纬度数据转换为机器人ENU坐标系,在RVIZ中显示坐标轨迹

    本文记录在Ubuntu22.04-Humbel中使用NMEA协议GPS模块的过程,使用国产ROS开发板鲁班猫(LubanCat )进行调试。 在淘宝找了款性价比较高的轮趣科技GPS北斗双模定位模块作为入门学习使用,支持GNSS系统(北斗、GPS、GLONASS、日本的QZSS以及卫星增强系统SBAS),定位精度在2.5m左右,属于民用

    2024年02月03日
    浏览(69)
  • 轨迹评估工具使用:evo安装以及学习

    核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差。支持多种数据集的轨迹格式( TUM、KITTI、EuRoC MAV、ROS的bag ),同时支持这些数据格式之间进行相互转换。在此仅对其基本功能做简要介绍。 evo工具github地址 在终端使用安装命令即可: 注:需要安装一下相关的

    2024年02月06日
    浏览(38)
  • SLAM精度评定工具——EVO使用方法详解

    系统版本:Ubuntu20.04 ROS版本:Noetic EVO是用于处理、评估和比较里程计和SLAM算法的轨迹输出的工具。 注意:本文的评测是在kitti数据集下进行评测,其他的数据集也支持评测。 安装EVO,可以执行下面这条命令。 evo工具主要有6个常用命令     evo_ape:用于评估绝对位姿误差  

    2024年01月19日
    浏览(34)
  • LiveGBS国标GB/T28181国标平台功能-电子地图移动位置订阅mobileposition地图定位GPS轨迹坐标位置获取redis获取位置

    正常情况,是开启mobileposition位置订阅,订阅设备位置 国标设备菜单-》编辑 勾选是否开启 位置订阅 LiveGBS-》基础配置-》信令服务配置-》显示更多配置-》全局订阅项目 有的时候对接的下级,下级过来的位置变化不是通过 mobileposition 位置订阅上报的,而是通过 catalog notify 上

    2024年02月08日
    浏览(77)
  • 行人轨迹预测ETH数据集坐标转换

    前记 最近几天对CVPR2018的一篇行人轨迹预测Social GAN进行了复现,过程中发现ETH数据集中行人的坐标已经转为了世界坐标,因此无法进行可视化,询问博主后得知要通过单应矩阵H将世界坐标反转为像素坐标,经过多次尝试成功反转,以此记录。 ETH数据集 官方链接下载的数据集

    2024年02月03日
    浏览(38)
  • Java转换坐标系,GPS(WGS84)大地200(CGCS200)、百度(BD-09)、高德(GCJ-02)互转,一文搞懂坐标系、坐标转换

    1.分不清的坐标系 WG-S84: 地理坐标系统,GPS仪器记录的经纬度信息,Google Earth采用,Google Map中国范围外使用,高德地图中国范围外使用。 GCJ-02: 投影坐标系统,火星坐标系,中国国家测绘局制定的坐标系统,由WGS-84加密后的坐标。Google中国和搜搜地图,arcgis地图,高德地图

    2024年02月03日
    浏览(50)
  • Unity中实现世界坐标到GPS经纬度的转换解决方案

    在Unity3D中,将世界坐标转换为GPS经纬度是一个常见的需求,特别是在开发基于地理位置的应用程序时。本文将提供一种详细的解决方案,包括相应的源代码,以帮助您实现这一转换。 步骤1:获取参考点的GPS经纬度 首先,您需要获取一个已知GPS经纬度坐标和对应的Unity世界坐

    2024年02月03日
    浏览(49)
  • 视觉SLAM数据集(一):TUM DataSet

    首先给出数据集下载地址:TUM Dataset Download。 如果你是第一次做实验,建议下载xyz的数据集,因为它的动作相对很小,只包含桌面上的一小部分。一旦成功测试,就可以试试desk数据集,它包含四张桌子和几个闭环。 从Kinect相机拍摄的RGB-D数据集格式如下: 我们提供带时间戳

    2024年02月03日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包