LeGO-LOAM-KITTI 从入门到入土(2)
第二次尝试,可以算是“轻车熟路”吧,或者说是“历经毒打”hhh
第一次在Ubuntu20.04上的尝试见上一篇文章
前期准备:下载16.04.6镜像,制作启动盘,卸载Ubuntu 20.04,重装双系统,下载KITTI-Odometry-Velodyne各sequences对应的rawdata 找了一圈,最后用官方的链接丢迅雷里下的,我的速度普遍在2Mb/s以上,能接受
补充说明,y7000装ubuntu16.04时出现黑屏,无网络的问题,均在CSDN解决,感谢。
早上和师兄交流了一下,确定了我们用的各个库和依赖的版本,确实和我之前一直尝试使用的差了很多。论沟通的重要性哈哈。另外今天发现seq03对应的rawdata2011_09_26_drive_0067
已经在KITTI上找不到了。查了一圈,17年起就没有了。这个问题留待解决吧,看到别人论文里有直接指出这一点的,应该不影响大局。
这波轻车熟路,基本都很顺利。装pykitti的时候可能因为python版本比较低受了点小挫折。
但是吧,一切就绪之后,还是没点云…迷茫了。明天弄nsh试试吧
周一休息了一天,周二跑nsh,第一遍没点云有velodyne,研究了一下把–clock加上,就顺利输出了。但是跑kitti的时候还是不太行,我感觉是camera_init没有transform引起的,问一下师兄吧。
师兄说把camera_init的frame_id改了,确实没解决问题。自己又查了下,发现一部分原因是Topic没匹配,在utility.h
中修改extern const string pointCloudTopic = "/kitti/velo/pointcloud";
是一部分解决问题的思路,改完后有NaN,想到代码应该也有不少要修改的地方。
于是直接装kitti-lego-loam,果然跑出了轨迹,很开心。但是问题仍然存在,反射强度好像没了,报警告Failed to find match for field 'intensity'.
看了看bag,好像确实没这个数据了,有点蒙蔽
经查,kitti2bag把intensity保存成了“i”,修改后应该能解决问题;另在使用evo时出现了scipy版本太低没有translation的尴尬问题。昨天理应升级好了,但是当时没有解决,今日再看。https://github.com/tomas789/kitti2bag/issues/37
另,发现scipy升级的是usr/local/bin里的python,而evo用的是usr/bin里面那个的scipy。sudo rm删除旧的scipy后调用新的解决问题
intensity问题按照上述链接成功解决。保存了pose,试着转换成kitti格式对比
和师兄交流了一下,确认他们是已经做过了精度测量。心里有点轻松也有点失落吧,总之还是先做完
拖了好久,回学校忙完继续收尾。在kk的帮助下用linux命令grep
,sed
解决了之前的类型转换问题,更新了一下evo的库,一路没什么障碍。用/laser_odom_to_init/pose/pose做对比,结果问题很大,偏离的很离谱。改用/aft_mapped_to_init后并没有好转。
和师兄做了汇报,暂时算是终止了这个任务
也终止了我对SLAM的学习 :(