有做平面SLAM的小伙伴来交流一下啊~
接下来的日子估计会是很难熬的吧。
灰灰必须自己编程了,没有退路了。
但是刚刚解决了一个超小的问题,结束后竟然也会不自主地微笑。这种小问题接下来还会有超级多,需要加快速度,提高效率啊。
不然真毕不了业了(手动狗头微笑)
记录记录。
===================================================================================
问题1.
在.h文件中想要包含<ros/ros.h>,结果提示找不到这个文件,先检查了环境变量,没有问题,接着就是在cmakelists里面了,参考网友帮助,在Cmakelists中,将
include_directories(include ${PCL_INCLUDE_DIRS})
改成
include_directories(include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})
编译通过就OK了。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
类包含:
plane3d是属于定义了因子图的节点和边。
1.获取地面边界(RGB,label):根据输入,不需要位姿,地面标记为255,墙被标记为0.
2.获取平面方程(包含自动连接的地面2d分割线,T)从地面边界和当前位姿来极端平面方程,同时调用函数计算边界多边形
----------------------------------------------------------------------------------------------------
fatal error: ros/ros.h: No such file or directory
find_package(catkin REQUIRED COMPONENTS roscpp std_msgs sensor_msgs cv_bridge image_transport compressed_image_transport)
find_package(OpenCV REQUIRED)
include_directories(${catkin_INCLUDE_DIRS})
在其最后增加一行。
=================================================================================
2019/5/8
1.cv2eigen(a,b)实现opencv中的Mat转为eigen中定义的matrix4f.
==================================================================================
2019/5/9
遇到错误:
/bin/sh: 1: Syntax error: "(" unexpected
在Makefile中查到出问题的是make语句中的$(shell pwd)部分。
后来发现代码目录的目录名中包含了括号!把目录改名,去掉名字中的括号,恢复正常。(`—`)内心天啦噜。
==================================================================================
2019/5/14 coding debug
#error1:use of deleted function
这种错误的最常见原因是在您向类中添加了一些自定义构造函数后 - 编译器停止创建默认构造函数 ,如果通过默认构造函数创建了类的实例,则会出现此错误。 只需明确地添加默认构造函数。
但源码是没有变的。最后的问题是我在.文件中定义的一个参数,参数类型后面多加了一个&。查了好久的问题啊。
#error2:invalid use of incomplete type
没有将头文件包含进来。
=====================================================
2019/5/16
c++中用到python代码
error1: fatal error: pyconfig.h: 没有那个文件或目录
应该是boost.python 安装时找不到 pyconfig.h
sudo apt-get install python-dev
没用。。。
错误是:
/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: 没有那个文件或目录
自己查了一下,在/usr/include/python2.7或者3.5下确实有pyconfig.h,于是在管理员权限下去改了wrap_python.hpp的路径。
将# include <pyconfig.h>改为了:
# include </usr/include/python2.7/pyconfig.h>
#include <patchlevel.h>
#include "/usr/include/python2.7/patchlevel.h"
# include "/usr/include/python2.7/Python.h"
//# include <Python.h>
写死路径之后,就不出现找不到上述3个文件的问题了。
error2: .so:对某个函数未定义的引用
已经是一天内第二次遇见这个问题了。第一次解决的办法是,在cmakelists里面加入对应的src和.h文件。
../lib/libORB_SLAM2.so:对‘cv::line_descriptor::LSDDetector::detect(cv::Mat const&, std::vector<std::vector<cv::line_descriptor::KeyLine, std::allocator<cv::line_descriptor::KeyLine> >, std::allocator<std::vector<cv::line_descriptor::KeyLine, std::allocator<cv::line_descriptor::KeyLine> > > >&, int, int, cv::line_descriptor::LSDDetector::LSDOptions&, cv::Mat const&)’未定义的引用
src子文件夹下的文件需要在CMakeLists.txt里面include,也就是说有可能executable文件link到source或者include文件时没有找到函数或变量所在的文件,所以说它们未定义。因此将函数或变量所在文件添加到source或者include中并link到可执行文件,即可解决。
第一阶段的make成功了。还是开森的~
====================================================================