2020.4.29
workspace的package缺少依赖,方法1:apt-get-install安装到默认目录下,2:github下载安装到自己的目录,链接里的方法安装到指定目录,这里能不能install两说,catkin_make编译肯定是没问题的,使用前source一下,或者加到主目录的.bashrc。
对于clion,如果找不到该package,又没法source,那么在追加到主目录.bashrc的基础上,在clion目录下启动clion就可以了,或者安装到clion平时可以检测的默认package安装目录应该也是可以的。
2019.11.26
主要函数在integral_image_normal.hpp中
pcl::IntegralImageNormalEstimation<PointInT, PointOutT>::computeFeature (PointCloudOut &output)
这里动态确定了窗口的大小。
2019.11.20
static成员变量除了声明,必须要显式定义(定义才真的分配内存),不可以在声明中初始化,只有在定义中才可以初始化(默认0初始化;
static在编译时初始化,可以没有类的对象,不与对象绑定,因此 不可以在类的构造函数中初始化;
在定义中初始化时前面不要加static。
shared_ptr初始化方式:
std::shared_ptr<TYPE> p1 = make_shared<TYPE>(CONSTRUCT_ARG)
std::shared_ptr<TYPE> p2(new TYPE)
std::shared_Ptr<TYPE> p3; p3.reset(new TYPE)//先定义后初始化
std::shared_ptr<TYPE> p4 = px
px.reset()//计数-1
reset()包含两个操作。当智能指针中有值的时候,调用reset()会使引用计数减1.当调用reset(new xxx())重新赋值时,智能指针首先是生成新对象,然后将旧对象的引用计数减1(当然,如果发现引用计数为0时,则析构旧对象),然后将新对象的指针交给智能指针保管
2019.11.19
测试代码运行时长的时候,发现远比估计时间要长,发现catkin_make默认编译方式是debug
catkin_make -DCMAKE_BUILD_TYPE=Release就好了
2019.11.18
std::chrono计时
2019.11.14
11日的问题其实一直没有很好的解决,然后尝试把本来的package给删掉了。
编译成功,然后新出现的问题是报错nodelet加载node不成功,.so搜索到了但是加载不成功,一直怀疑是cmakelists.txt,.xm等文件的问题,憋了两天。今天把代码挨个函数的注释找出错误出现的地方,最后定位到make_shared函数,这个函数可以安全的生成shared_ptr,但是这里不知道为什么就是不行,尝试换成std::shared_ptr p(new CLASS)的形式就完美解决了。这里是shared_ptr参考。
11日的修改package名字的方法或许也是没问题的,不过这里的这个问题是最主要的,很奇怪在同事的机器上就没问题。
Ubuntu16修改显示亮度:最简单的方式解决ubuntu 16.04 屏幕亮度问题
2019.11.11
安装两个同名的package
将新的package放到一个新的catkin_workspace的src文件夹下后,要将该workspace的devel、build删除,在package文件夹下的.xml,.cmakelists, .launch等文件中更新package的名字(这个过程比较复杂,特别是大的项目),重新catkin_make一下。
如果用新的package名无法启动launch文件或者不存在这个package,使用echo $ROS_PACKAGE_PATH指令确认该package是否在ros的package的路径中,不在的话,添加之,在主目录的./bashrc文件中追加export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/你的工作空间路径/src
再次确认echo $ROS_PACKAGE_PATH,在的话应该就没问题了。
另外,更改package名字坑比较多,最好是把原来的暂时不用的package给改名屏蔽掉。
2019.11.7
PCL依赖QT, VTK等很多包,没有安装的情况下为了使用apps文件夹下的demo真的很费时间
修改过ifm深度相机的ip之后,修改了package中launch文件中的ip, 还需要修改ifm3d库的ip,按照官方troubleshoot来。若驱动报错-100001,不记得几个0个,提示连接不上,IFM3D_IP=....., no_proxy=.....,写入.bashrc。如果报错opencv...so.3.3找不到,版本冲突,sudo apt-get remove libopencv-dev。若提示nodelet启动不了,甚至rviz也不可以了,说明ROS本身出问题了,直接sudo apt-get install ros-kinetic-descktop-full,好像是这个指令,就是重装ROS,因为只是类似于修复所以很快就完事了。