python中 使用EVO工具 批量评估里程计 脚本

本文介绍了一种通过Python脚本自动化评估视觉SLAM算法在KITTI数据集上的表现的方法。解决了因不同操作系统换行符导致的脚本运行问题,并调整了SSH环境变量以确保脚本能在远程服务器上正确执行。

背景

从win10远程ubuntu服务器跑代码,
使用slam的evo工具在KITTI odometry数据集上对网络预测的位姿序列进行评估,

一共十个序列,需要输10次命令行(evo_traj/ evo_ape/evo_rpe…balabala),非常不方便,
因此想写在python文件的test.py里面,输出预测位姿后保存到文件然后调用命令行直接评估,同时保存评估结果.

理想丰满,现实就不是了:

  • 发现编辑的脚本文件跑不通,查了下发现是dos与unix的底层字符不一样(\ \ \n 和\n的区别),
  • 脚本语言太底层了还涉及到环境变量非常麻烦.

解决问题:

  1. dos 与unix字符不同的问题:
    在编辑完.sh脚本之后转换一下:
    os.system(f"dos2unix ./utils/evo.sh")
    os.system(f"sed -i 's/\r//' ./utils/evo.sh")
    
  2. 环境变量问题
    ssh远程的终端有login和unlogin的区别(还有个忘记名字了), 造成的结果是ssh的终端的环境变量不一定和pycharm里面设置好的远程解释器的环境变量一样, 解决办法:
    test.py 最后添加代码:
    os.putenv("PATH", "/home/phy12321/anaconda3/envs/torch17/bin:/home/phy12321/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin")
    
    上面
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值