Ubuntu18.04+DSO+ROS(catkin)配置问题贴
分类:
文章
•
2024-07-01 12:44:58
- 关于Ubuntu+DSO在数据集运行部分,小心路径即可;
一些依赖库的安装在dso之中即可,在dso文件夹中build编译生成;
编译通过会在dso/build/lib中生成libdso.a库文件,在dso/build/bin中生成dso_dataset文件;
(从而判断你自己的安装路径有没有出错)。
- 在dso_dataset文件同目录下测试sequnce_n 数据集,任一个序列下载即可;
- 安装ziplib用来读取数据库压缩包里的图片,原以为不用解压直接读取,但是最后测试的时候,还是要绝对路径下不同的文件;
输入:cd ~/dso/build/bin
./dso_dataset files=/home/…/dso/build/bin/dataset/sequence_01/images.zip calib=/home/…/dso/build/bin/dataset/sequence_01/camera.txt gamma=/home/…/dso/build/bin/dataset/sequence_01/pcalib.txt vignette=/home/…/dso/build/bin/dataset/sequence_01/vignette.png preset=0 mode=0
数据集运行成功后会在同目录下生成result.txt文件,是相机运动过程中每帧的外参,数据集上运动的速度还是很快的;
- 用自己摄像头实时运行DSO (catkin版),事先配置ROS,参考链接很多,测试出来节点控制的小乌龟就可以,不难。
但是注意版本Ubuntu的版本对应不同的ROS,如果不适配就会出现 E:无法定位软件包的问题。
我参考的配置链接 Ubuntu18.04+Melodic
配置成功之后测试小海龟。
- ROS配置成功之后按照 ROS调用外接摄像头 配置;
其中catkin_ws是新建的工作空间,不同的博客一般命名为catkin_ws或者catkin_dso,名称而已不影响,重要的是catkin_的前缀。
代码理解: export DSO_PATH=/home/…/dso/
#这里的DSO_PATH值得是dso的路径,后面省略的地方就是先前安装dso的那个文件夹;
安装编译dso_ros和安装编译usb_cam之后,运行dso;
代码理解: gedit ~/catkin_ws/src/dso_ros/camera.txt输入,是直接弹出文档,在里面的空白的文档里面输入camera的参数。
- 关于dso中笔记本相机标定,参考 dso-ros外接摄像头 暂时没有配置,直接找的网上的,数据的不对不会影响到是否可以调用dso,但是会影响到运行的效率与精度。后续补充
- 运行dso;
首先第一个终端输入roscore (Roscore 大写无法调出);
第二个终端输入source ~/catkin_dso/devel/setup.bash #这个是环境的配置,有很多链接都没有,不清楚是不是因为Ubuntu+配置的问题(疑惑脸,因为网上大多数都是Ubuntu14或者16的配置);
代码理解: roslaunch usb_cam usb_cam-test.launch #调出自己的摄像头
第三个终端输入source ~/catkin_dso/devel/setup.bash #作用同上;
rosrun dso_ros dso_live image:=/usb_cam/image_raw calib=/home/…/catkin_dso/src/dso_ros/camera.txt mode=1
这里的路径不同的博客里面不尽相同,主要的依据是你的camera.txt的路径(手动搜索也行),之后enter运行
- 迄今为止出现的一个最大的问题就是:
Couldn’t find executable named dso_live below /home/chuanxu/catkin_dos/src/dso_ros 找不到这个可执行文件。
参考一 最后一个问题,没有对CMakeLists.txt进行改动,编译生成的bin将会存在build目录下,rosrun会找不到,要想修改的话,修改cmake.list中bin文件路径,就是将其中一行代码set(EXECUTABLE_OUTPUT_PATH $/bin)替换成set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)。
但是我在整体的文件夹下搜索,根本没有生成dso_live这个文件,所以应该是之前配置的错误。
wrong
参考二 中error2,dso-ros的版本问题,安装包的名字就是dso-ros.catkin,排除;先前讲的camera.txt的路径,也不是。
wrong
参考三 关于干工作空间功能包,可能自己之前配置破坏了一些文件,就按照操作把catkin_dso工作空间重新理了一番,然后按照之前的步骤重新配置生成,还是不行同样的问题。
wrong
参考四 可能是dso-ros的版本问题,这个里面选用了蓝鲸智能修改之后的dso_ros版本,这个我用着可以,按照之前的操作,可以运行处dso
right至少适合我
- 上面的参考四有一个问题
如果使用外接USB摄像头的话:修改launch中的usb_cam-test.launch的video0为video1就可以了;
不清楚他对外部摄像头的定义是什么,我是外接的USB摄像头,修改成video1,但是无法调出的问题,后来改回video0,可以执行。