2023.9.11
今天收到的任务是要运行shuoyang的代码github.com/ShuoYangRob… 并且评估它的效果
1.准确度(局部定位的精度) 2.运行效率(CPU占用,实时性等)
这个代码主要关于开源足式机器人多传感器融合里程计,其主要结构如图
为了运行代码,首先需要docker,这部分的学习内容在我的另一篇文章里,Docker
2023.9.18
这两天忙了很多东西,首先选择矩池云的服务器替代本机,然后修改Dockerfile前面添加https://ghproxy.com/
然后对需要子模块的库,我直接fork到自己的库,然后修改.submoudle文件,在链接前面继续加前缀,层层深入全部fork到我的github里,这样就下载结束了。
编译的时候cmake版本不足就查看之前的版本有没有cmake要求低的,当然后续的也要适配,git clone指定tag的命令
git clone -b tag link
或者先git clone到本地,github创建新的库,然后添加远程分支然后push
生成镜像之后,就把镜像上传到docker hub里,需要三步
首先要登录
docker login
docker tag localimage:tag remoteimage:tag(eg. docker tag cerberus:v1 zy12347/cerberus:v1)
docker push remoteiamge:tag
docker run 运行镜像的时候,可以挂载,挂载命令为
docker run -v local:remote -it dockerimage
docker运行时的文件可在主机上运行cp
docker cp dockerid:remotefile local file
bag转txt
rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt
Txt_name.txt要先修改权限
需要下载带有groundtruth的dataset
要分析准确度时要用到evo包
详细使用情况在这篇文章中 www.guyuehome.com/18717
截止到现在,我有的是一个编译好的image,在这个image的基础上呢,我需要做的是
挂载运行 docker run
sudo catkin build编译
source devel/setup.bach激活vilo库
roslaunch运行指定命令保留需要的数据
rosbag echo保留实际值与预测值
docker cp id:path localpath 导出来
使用evo预测准确度
或者可以先尝试rosbag echo能不能直接全输出来
2023.9.19
今天借了实验室的一台电脑,果然好多了,只要稍微该一下其中两个包的版本及子模块的版本就好了,build很顺利,让我想起来前几天瞎忙真的难崩
build之后就尝试运行,先sudo catkin build,然后source /devel/setup.bash 最后roslaunch很顺利就运行了。
可是!!!
运行完后output file里没有任何东西,跑了一遍又一遍就是没有,逐渐怀疑人生。
昨天晚上就是陷入无脑的重复,虽然熬到很晚但其实没有任何意义。最后的结果就是也没跑出来
今天早上起床后,认真看代码找文件之间的关系,尝试输出变量。最后想到会不会是权限的问题。
在Cerberus挂载目录下创建时要用sudo权限,果然是你!
结果sudo roslaunch的时候找不到roslaunch的命令,于是想激活权限或者直接用绝对路径运行roslaunch,结果都不可以。
转变思路:在Cerberus目录外创建文件夹再次尝试运行,终于成功了!!!
现在只是输出了bag里面的数据,还要分析准确度与运行效率之类的东西,任重道远,接着干!
难崩,查了半天格式,需要tum格式,具体为 timestamp,pos_x,pos_y,pos_z,qua_x,qua_y,qua_z,qua_w 修改了main.cpp函数输出想要的数据,然后编写python文件更改格式,最重要的是timestamp默认单位是s,最后格式为1.02e+9这种,所以需要注意转换一下
关于evo命令如下
evo_ape tum fr2_desk_groundtruth.txt fr2_desk_ORB.txt -va --plot --plot_mode xz --save_results results/ORB_fr2_desk.zip
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz
其中tum和kitti为格式,可替换
今天稍微写点代码计算时间段内平均的相对误差
又改了一版,已经在github里面保存