按照安装说明重新编译opencv WITH_CUDA=ON 可以用cmake-gui编译通过
2020.12.29
出现段错误:
eigen 3.4.4版本不能通过eigen 3.2.10版本的奇异值分解函数
需要重装eigen3.2.10
同时重新编译ceres

跑通离线建图代码:

地下停车场

使用数据/media/csc105/samsungT5/shangqi/test/dw_000_110216_101449.000_150322_default
图片来源(“input”, boost::program_options::valuestd::string(&inputDir)->default_value("/media/csc105/samsungT5/shangqi/0507/dw_000_060519_203212.000_150322_default"), “Location of the folder containing all input data. Files must be named camera_%02d_%05d.jpg. In case if event file is specified, this is the path where to find frame_X/ subfolders”)


输出结果在
/media/csc105/samsungT5/shangqi/test/dw_000_110216_101449.000_150322_default/camodocal_data0.5/pointcloud_5

2020.12.30
地上室外
。。。
新年快乐啊哈哈哈哈哈哈

2021.1.2
室外可跑
其他的参数都是先验外参、输出标定结果和点云图路径,可以不改
build_map.launch 可以不变
build_map_test.cc只需要改input为/media/csc105/samsungT5/shangqi/0418/dw_000_110216_083027.000_150322_default


在线定位
修改online_localize.launch
pcd_filename

修改test_location_ceres_node.cpp

rosbag play -r 0.5 ‘/media/csc105/samsungT5/ououtdoor2.3ag.bag’



rosbag play -r 0.5 ‘/media/csc105/samsungT5/ououtdoor4.bag’



rosbag play -r 0.5 ‘/media/csc105/samsungT5/ououtdoor2.bag’



2021.1.5
在线SLAM
修改online_multi_odometry_k.launch

特别是

<arg name="calibDir" default="/home/csc105/multi/src/multi_odom_slam/data/calibparam0.25" />
<arg name="mapfile" default="/home/csc105/multi/src/multi_odom_slam/data/ATD_parking/camodocal_data0.5/" />

一开始使用了自己test文件输出结果的calibparam0.25和camodocal_data0.5
但是其中calibparam0.25的extrin…txt不存在 初始化一直有误,相机数量不对,一直为0,访问越界

rosbag play ‘/media/csc105/samsungT5/test_2018-12-11-21-13-16.bag’

gps数据获得
gps_common_test.launch里面打开两个结点一个是ros官方gps_common,需要sudo apt-get install ros-***-gps-common;这个节点的任务是将gps数据转换成轨迹,
默认Subscribed Topics
fix (sensor_msgs/NavSatFix)

Published Topics
odom (nav_msgs/Odometry)
可以通过

<remap from="odom" to="vo"/>
<remap from="fix" to="/gps" />

改变topic名字
另一个节点是save——gps对应于ead_data/scripts/save_gps.py,这个需要到硬盘里找一下,gitee上面删掉了,这个python文件里面接受/vo这个topic,保存位姿,文档路径修改`

gps_f = open("/home/csc105/multi/src/multi_odom_slam/read_data/poses/gps_outdoor4.txt",'w')
odom_f = open("/home/csc105/multi/src/multi_odom_slam/read_data/poses/system_poses.txt",'w')

因为这个是ros的python,所以是python2,不需要进入conda环境,但是还是需要安装python的包
如pip install xlrd 注意不是pip3
如果运行正确,会有save gps!的输出
在线SLAM位姿输出
路径在multi_odom_slam/config/odom_config.yaml文件中pose_graph_save_path参数路径下

pose_graph_save_path: "/home/csc105/multi/src/multi_odom_slam/output/2/" # save and load path

!!!这里需要打开一个本来被注释掉的线程
pose_graph_node.cpp623 keyboard_command_process = std::thread(command);
这个command函数 在放完数据包之后 输入s 就开始保存pose(posegraph.savePoseGraph())到这个路径下的tum_pose.txt,对于这个txt的保存
pose_graph.cpp:

1018 fprintf (pFile1, "%f %f %f %f %f %f %f %f\n",(*it)->time_stamp,
1019                 PG_tmp_T.x(), PG_tmp_T.y(), PG_tmp_T.z(),
1020                 PG_tmp_Q.x(), PG_tmp_Q.y(), PG_tmp_Q.z(), PG_tmp_Q.w());

要改成这样,一开始的%lld有问题
他还有很多其他的保存 关键帧的kp和dp,各种格式的位姿

运行convertpose.py文件,前面得到的gps位姿对应gpsfile,在线slam得到的位姿对应camfile,输出的相机真值文件对应camgtout
convertpose.py需要在硬盘里找一下/media/csc105/samsungT5/shangqi/scripts/

camgtout = open('/media/csc105/samsungT5/shangqi/0423/outdoortest/16/camgt.txt', 'w')
gpsfile='/home/csc105/multi/src/multi_odom_slam/read_data/poses/gps_outdoor4.txt'
camfile='/home/csc105/multi/src/multi_odom_slam/output/2/tum_poses.txt'

//这里还有问题 但是可以直接用gpsfile和camfile对比,时间上可能要改一下倍数关系
选择在pose——graph.cpp里面改1018行(it)->time_stamp10e8,

evo评估
evo_rpe home/csc105/multi/src/multi_odom_slam/read_data/poses/gps_outdoor4.txt’ ‘/home/csc105/multi/src/multi_odom_slam/output/2/tum_poses.txt’ -va –t_max_diff 10000000 -p

cut --delimiter " " --fields 1-8 msckf_traj.txt > clean.tum
evo_traj tum ekftagscarto0.tum -p

环视相机代码调试日记相关推荐

  1. basler相机的调试与配置以及多相机同时运行(完整版)

    之前在实验室做过一段时间basler相机的调试与配置工作,现将当时的工作整理汇总,以方便日后再用.注:本博客引用的所有视频链接,皆为自己实验室之前的师兄所录制,当做了我当时这部分工作入门的教学视频. ...

  2. android 模拟nfc tag,android nfc tag3 调试日记

    android nfc tag3 调试日记 又到了每天最愉快的调试android nfc模块的时候.nfcpy中有一段示例代码:listen.py 大致是模拟nfc tag3卡片.里面对pmm(设备号 ...

  3. ST-P3:首篇基于环视相机的端到端自动驾驶框架!(ECCV2022)

    作者 | PerceptionX  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/544387122 点击下方卡片,关注"自动驾驶之心"公众 ...

  4. 视觉SLAM十四讲--第13讲 实践:设计SLAM系统(最详细的代码调试运行步骤)

    文章目录 一. 代码目录介绍及运行步骤 代码目录: 如何运行 二. 代码调试问题 1. 准备工作 2. 遇到的问题及解决办法 3. 成功运行 三. 代码理解 核心算法结构 数据结构: 算法 代码理解及 ...

  5. 【VS实践】代码调试与错误处理

    程序员的装逼技能:调试,错误处理和快捷键 学计算机3年,只知道一些基础的理论知识,写代码和调试很差,基本不会什么吧! 花时间了解一下关于这块的东西!以前觉得调试就是代码写出来一运行,有问题了分析那里出 ...

  6. 转:Python 代码调试技巧

    Python 代码调试技巧 转载于:https://www.cnblogs.com/kira2will/p/4254754.html

  7. 树形dp——树的重心(2) 代码调试理解

    和树的最大独立问题类似,先任选一个结点作为根节点,把无根树变成有根树,然后设d(i)表示以i为根的子树的结点的个数.不难发现d(i)=∑d(j)+1,j∈s(i).s(i)为i结点的所有儿子结点的编号 ...

  8. 三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》

    案例需求:在销售订单上新增一个按钮,在订单明细中新增一个字段,命名[即时库存]. 点击按钮,弹出"Hello World!",并获取订单明细物料的即时库存,填入字段[即时库存]. ...

  9. 【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )

    文章目录 一.Android 平台代码调试器代码 二.Android.mk 构建脚本内容 三.Application.mk 构建脚本内容 四.正式编译 五.博客资源 一.Android 平台代码调试器 ...

最新文章

  1. RelativeLayout布局,不希望文本盖住其他组件
  2. 电抗电路的串并联的转换
  3. 怎么注销midas服务器程序,MIDAS的服务器镜像技术
  4. mysql 获取昨天凌晨_MySQL慢日志体系建设
  5. HttpServletRequest说明
  6. Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX
  7. linux 关闭本地防火墙_如何使用Linux防火墙阻止本地欺骗地址
  8. 不能调试的问题的解决
  9. es 按条件查询数据总条数
  10. python爬取斗鱼弹幕,Python爬虫日记八:利用API实时爬取斗鱼弹幕
  11. Web服务器之搭建python自带静态Web服务器
  12. python 聚类 客户细分_【火炉炼AI】机器学习027-项目案例:用聚类算法建立客户细分模型...
  13. cassandra vs. voldemort
  14. 读《洞穴奇案》——从虐猫到禁食狗肉,自然法真的存在吗?
  15. UOJ #141. 【UER #4】量子态的棋盘
  16. 手机抽奖页面代码html,html5大转盘抽奖支持手机转盘抽奖代码
  17. freemarker html 换行,java使用freemarker模板导出word,合并单元格,单元格内换行
  18. 大数据培训Spark 高频面试考点分享
  19. 步进电机+protues
  20. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 30 章 可靠性和预写式日志_30.4. WAL配置...

热门文章

  1. 能在多种前端框架下使用的表格控件
  2. “牌面”养成记8:打好牌,从做好这60件事开始[上]
  3. 自动驾驶性能和车辆动力学评估软件,助你一整个拿捏自动驾驶
  4. 测绘地理信息毕业生有充足职业选择
  5. python决策树可视化——graphviz报错
  6. 第三圣谛:灭谛——苦的止息
  7. DSSS扩频通信的频谱特征matlab仿真
  8. Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局
  9. 14. Fabric2.2 区块链农产品溯源系统 - 智能合约安装
  10. 华为手机助手上架流程_这才是华为手机语音助手正确打开方式,远比你想象的要强大很多!...