在之前的orb-slam2稠密点云工作中,得到的点云生成八叉树是倾斜的,导致在生成pgm地图或者八叉树路径规划都不是特别合适,最近刚好想起了这件事,所幸解决了问题。
这是之前得到的八叉树:这个地面大概倾斜了45度,只在rviz下修改网格的平面并不能解决问题,还是得从点云坐标下手。
我这里是用了 Meshlab这款软件,打开终端输入下面指令下载安装:
sudo apt-get install meshlab
安装成功后终端输入meshlab 就可以打开软件,出现下面界面就是下载成功。
meshlab支持修改的格式有ply,所以还需要将之前得到的pcd文件转换为ply格式,这里需要做一个格式转换。
利用已经安装好的pcl库将.pcd转换为.ply:
pcl_pcd2ply XXX.pcd XXX.ply
双击生成的.ply文件,可以直接在meshlab中打开,如下图
选择Filters->Normals,Curvatures and Orientation ->Transform:Rotate,会弹出下面窗口,选择Y axis(Y轴),origin。Rotation Angle是调整角度,这里要根据自己的点云来修改,可以先给一个负角度-20,点击Apply,然后看看点云转动的角度,慢慢将倾斜的点云调整过来,X axis(X轴也是一样的方法)
修改好了后,点击file,Save Project As,保存修改后的ply文件,然后需要将修改后的ply文件转换为pcd文件
.ply转换为.pcd:
git clone https://github.com/qixuxiang/ply2pcd.git
复制下来后文件如下:
修改main.c,第17行的路径改为自己的ply文件保存路径,第18行的路径改为自己的pcd文件路径。
修改CMakeLists.txt中的pcl版本,我之前一直用的都是pcl1.1,我这里第5行写的就是1.1,如果不知道自己pcl的版本,输入 dpkg -l | grep libpcl 查询
然后开始编译:
cd ply2pcd
mkdir build && cd build
cmake ..
make
运行可执行程序,可以在指定路径下得到一个pcd文件
cd ply2pcd/build
./ply2pcd
然后还是用之前的方法,我前面的博客有写,用这个修改后的pcd文件生成八叉树,这里就直接展示结果了,看着还不错吧(¬_¬)