环视相机代码调试日记
按照安装说明重新编译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
环视相机代码调试日记相关推荐
- basler相机的调试与配置以及多相机同时运行(完整版)
之前在实验室做过一段时间basler相机的调试与配置工作,现将当时的工作整理汇总,以方便日后再用.注:本博客引用的所有视频链接,皆为自己实验室之前的师兄所录制,当做了我当时这部分工作入门的教学视频. ...
- android 模拟nfc tag,android nfc tag3 调试日记
android nfc tag3 调试日记 又到了每天最愉快的调试android nfc模块的时候.nfcpy中有一段示例代码:listen.py 大致是模拟nfc tag3卡片.里面对pmm(设备号 ...
- ST-P3:首篇基于环视相机的端到端自动驾驶框架!(ECCV2022)
作者 | PerceptionX 编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/544387122 点击下方卡片,关注"自动驾驶之心"公众 ...
- 视觉SLAM十四讲--第13讲 实践:设计SLAM系统(最详细的代码调试运行步骤)
文章目录 一. 代码目录介绍及运行步骤 代码目录: 如何运行 二. 代码调试问题 1. 准备工作 2. 遇到的问题及解决办法 3. 成功运行 三. 代码理解 核心算法结构 数据结构: 算法 代码理解及 ...
- 【VS实践】代码调试与错误处理
程序员的装逼技能:调试,错误处理和快捷键 学计算机3年,只知道一些基础的理论知识,写代码和调试很差,基本不会什么吧! 花时间了解一下关于这块的东西!以前觉得调试就是代码写出来一运行,有问题了分析那里出 ...
- 转:Python 代码调试技巧
Python 代码调试技巧 转载于:https://www.cnblogs.com/kira2will/p/4254754.html
- 树形dp——树的重心(2) 代码调试理解
和树的最大独立问题类似,先任选一个结点作为根节点,把无根树变成有根树,然后设d(i)表示以i为根的子树的结点的个数.不难发现d(i)=∑d(j)+1,j∈s(i).s(i)为i结点的所有儿子结点的编号 ...
- 三、K3 Cloud 开发插件《K3 Cloud插件开发新手指导 + K3 Cloud插件开发代码调试》
案例需求:在销售订单上新增一个按钮,在订单明细中新增一个字段,命名[即时库存]. 点击按钮,弹出"Hello World!",并获取订单明细物料的即时库存,填入字段[即时库存]. ...
- 【Android 逆向】代码调试器开发 ( 使用 NDK 中的 ndk-build + Android.mk 编译 Android 平台的代码调试器可执行应用 )
文章目录 一.Android 平台代码调试器代码 二.Android.mk 构建脚本内容 三.Application.mk 构建脚本内容 四.正式编译 五.博客资源 一.Android 平台代码调试器 ...
最新文章
- RelativeLayout布局,不希望文本盖住其他组件
- 电抗电路的串并联的转换
- 怎么注销midas服务器程序,MIDAS的服务器镜像技术
- mysql 获取昨天凌晨_MySQL慢日志体系建设
- HttpServletRequest说明
- Mybatis There is no getter for property named 'XXX' in 'class java.lang.XXX
- linux 关闭本地防火墙_如何使用Linux防火墙阻止本地欺骗地址
- 不能调试的问题的解决
- es 按条件查询数据总条数
- python爬取斗鱼弹幕,Python爬虫日记八:利用API实时爬取斗鱼弹幕
- Web服务器之搭建python自带静态Web服务器
- python 聚类 客户细分_【火炉炼AI】机器学习027-项目案例:用聚类算法建立客户细分模型...
- cassandra vs. voldemort
- 读《洞穴奇案》——从虐猫到禁食狗肉,自然法真的存在吗?
- UOJ #141. 【UER #4】量子态的棋盘
- 手机抽奖页面代码html,html5大转盘抽奖支持手机转盘抽奖代码
- freemarker html 换行,java使用freemarker模板导出word,合并单元格,单元格内换行
- 大数据培训Spark 高频面试考点分享
- 步进电机+protues
- PostgreSQL 10.1 手册_部分 III. 服务器管理_第 30 章 可靠性和预写式日志_30.4. WAL配置...
热门文章
- 能在多种前端框架下使用的表格控件
- “牌面”养成记8:打好牌,从做好这60件事开始[上]
- 自动驾驶性能和车辆动力学评估软件,助你一整个拿捏自动驾驶
- 测绘地理信息毕业生有充足职业选择
- python决策树可视化——graphviz报错
- 第三圣谛:灭谛——苦的止息
- DSSS扩频通信的频谱特征matlab仿真
- Android实训案例(八)——单机五子棋游戏,自定义棋盘,线条,棋子,游戏逻辑,游戏状态存储,再来一局
- 14. Fabric2.2 区块链农产品溯源系统 - 智能合约安装
- 华为手机助手上架流程_这才是华为手机语音助手正确打开方式,远比你想象的要强大很多!...