今天来了以后给我传了几个具体标定的代码
奈何还没有找到多余的显示器,只能通过远程连接linux桌面,于是要把这些代码拷贝到远程的桌面上,记录一下用到的命令,打开本地terminal,输入:
scp -r 文件路径 远程系统用户名@IP地址:/home/远程系统用户名/文件路径
我的完整命令行:
之后输入远程的那边的用户密码即可拷贝成功。
然后首先我想先编译一下ros工程,但是按照编译的流程,出现很奇怪的错误:
catkin_make是编译的命令,但是却说命令找不到,问了带教老师,老师说catkin是ros自带的编译工具,那ros已经安装了,不应该没有,于是我又试了一下测试ros是否安装的命令:
仍然是找不到命令,于是我开始怀疑ros究竟有没有安装成功,或者是没有加入环境变量的问题,于是又重新设置了环境变量,但还是没有解决,最终仔细去看了一下/opt路径下的ros安装包,发现安装的版本是eloquent,这个是ros2的版本,怀疑还是ros2与ubuntu18.04的不相兼容,并且老师说给我的工程是ros1的,问题应该就在这里了,所以重新安装ros1的melodic版本(不同版本的ubuntu对应不同版本的ros,具体对应关系参考以下链接)
放一个非常完整的ros安装及编译的教程ROS入门教程,按照里面的安装配置过程,终于是成功安装了,测试得到了以下结果:
真的是一个大坑,终于可以开始准备编译,但是没有想到的是这才是debug的开始…
首先按照前面的入门教程创建一个工作空间:
mkdir -p catkin_ws/src
在src下放入整个工程的代码,然后在catkin_ws的目录下开始编译,输入以下命令:
catkin_make
但是今天最大的努力就是让这个1%变成了98%,但还是没有到100%,基本上是每编译10%就会报错,刚开始报的错都比较好解决,在这里记录一下。
- The build space at ‘×××/build’ was previously built
这个是由于我在创建新的工作空间catkin_ws之前仍然是在test这个为ros-eloquent这个版本的工作空间下编译的,所以重新创建一个工作空间就可以了,或者参考一下链接:
https://blog.csdn.net/qq_42735696/article/details/112801451 - Could not find a package configuration file provided by "jsk_recognition_msgs”
解决办法:
sudo apt-get install ros-melodic-jsk-recognition-msgs
- Project ‘cv_bridge’ specifies ‘/usr/include/opencv’ as an include dir, which is not found.
解决办法:https://blog.csdn.net/qq_43310597/article/details/109256838 - nlopt.hpp找不到对应的文件
解决办法:
sudo apt-get install libnlopt-dev
- 接下来就是非常棘手的问题,由于代码的版本比较老,而现在下载的库是opencv4.1.1的,导致很多头文件找不到以及函数不存在的问题,总的来说我添加了以下几个头文件:
#include <opencv2/imgproc.hpp> //去掉#include <opencv/cv.h>
#include "opencv2/calib3d/calib3d.hpp"
#include <opencv2/highgui/highgui_c.h>
#include "opencv2/imgproc/imgproc_c.h"
#include <opencv2/highgui/highgui.hpp>
参考链接如下:
https://blog.csdn.net/weixin_44312186/article/details/89000922
https://blog.csdn.net/qq_48705696/article/details/110530758
https://blog.csdn.net/yuteng12138/article/details/105204292
还有一些函数的问题我根据提示改成了现在版本里面的函数写法,于是解决掉这些bug,就已经编译了98%,但是还有几个错误,怎么也是解决不了,问了带教老师,但是带教老师这两天稍微有点忙,所以也是没能解决,希望这周之内能解决吧。