项目地址
github:
https://github.com/halostorm/PCAT_open_source
视频教学:
https://v.youku.com/v_show/id_XNDYxNjY4MDExMg==.html?spm=a2h0k.11417342.soresults.dtitle
https://v.youku.com/v_show/id_XNDYxNjY4MDI5Mg==.html?spm=a2hzp.8244740.0.0
安装ros
自行安装。
下载和安装
下载并解压PCAT_open_source
(源码地址:https://github.com/halostorm/PCAT_open_source) or
git clone https://github.com/halostorm/PCAT_open_source
安装PCAT_open_source
            
            
              cpp
              
              
            
          
          cd PCAT_open_source
sh install.sh
        解决报错
1 缺头文件
            
            
              cpp
              
              
            
          
          /home/guo/文档/guo/PCAT_open_source/src/rviz_cloud_annotation/src/rviz_cloud_annotation_points_io.cpp:110:19: error: 'setw' is not a member of 'std'; did you mean 'set'?
  110 |           << std::setw(w) << weight_steps << std::setw(w) << file_weight_steps << "\n";
        这个编译错误表明在 rviz_cloud_annotation_points_io.cpp 文件中,编译器找不到 std::setw 的定义。std::setw 是 C++ 标准库 中的一个函数,用于设置输出流的字段宽度。要解决这个问题,你需要在文件中包含 头文件。
解决方法
在 rviz_cloud_annotation_points_io.cpp 文件的开头添加以下头文件:
            
            
              cpp
              
              
            
          
          #include <iomanip>  // 用于 std::setw
        重新编译项目:
catkin_make
        2 cv版本不兼容
            
            
              cpp
              
              
            
          
          /home/guo/文档/guo/PCAT_open_source/src/rviz_cloud_annotation/src/rviz_cloud_annotation_plugin.cpp:1553:51: error: 'CV_LOAD_IMAGE_COLOR' was not declared in this scope
 1553 |     cv::Mat image = cv::imread(imagePath.c_str(), CV_LOAD_IMAGE_COLOR);
        这个错误是由于 OpenCV 版本更新导致的 API 变更。CV_LOAD_IMAGE_COLOR 是 OpenCV 2.x 的宏定义,在 OpenCV 3.x 和 4.x 中已被弃用,改用 cv::IMREAD_COLOR。
解决方案
- 修改 rviz_cloud_annotation_plugin.cpp 文件
将: 
            
            
              cpp
              
              
            
          
          cv::Mat image = cv::imread(imagePath.c_str(), CV_LOAD_IMAGE_COLOR);
        改为:
            
            
              cpp
              
              
            
          
          cv::Mat image = cv::imread(imagePath.c_str(), cv::IMREAD_COLOR);
        3 yaml库版本不兼容
            
            
              cpp
              
              
            
          
          home/guo/文档/guo/PCAT_open_source/devel/lib/rviz_cloud_annotation/rviz_cloud_annotation_node: error while loading shared libraries: libyaml-cpp.so.0.5: cannot open shared object file: No such file or directory
process[annotation_rviz-3]: started with pid [10340]
        #检查已安装的版本
            
            
              cpp
              
              
            
          
          ls /usr/lib/x86_64-linux-gnu/libyaml-cpp*  # 查看是否存在更高版本(如libyaml-cpp.so.0.6)
        #创建符号链接(指向 0.6 版本)
            
            
              cpp
              
              
            
          
          sudo ln -sf /usr/lib/x86_64-linux-gnu/libyaml-cpp.so.0.6 /usr/lib/libyaml-cpp.so.0.5
sudo ldconfig
        #验证符号链接
            
            
              cpp
              
              
            
          
          ls -l /usr/lib/libyaml-cpp.so.0.5
        4 pcl版本不兼容
            
            
              cpp
              
              
            
          
          /home/guo/文档/guo/PCAT_open_source/devel/lib/rviz_cloud_annotation/rviz_cloud_annotation_node: error while loading shared libraries: libpcl_segmentation.so.1.8: cannot open shared object file: No such file or directory
process[annotation_rviz-3]: started with pid [15211]
        #一键式为所有PCL组件创建符号链接
            
            
              cpp
              
              
            
          
          for lib in $(ls /usr/lib/x86_64-linux-gnu/libpcl_*.so.1.10); do
    sudo ln -sf $lib ${lib%.1.10}.1.8
done
sudo ldconfig
        #验证创建结果
            
            
              cpp
              
              
            
          
          ls -l /usr/lib/x86_64-linux-gnu/libpcl_{segmentation,filters,common,io}.so.1.8
        安装完成后
运行 sh run.sh
显示的rviz没有任何报错
导入pcd文件
复制待标注的点云.pcd格式文件到 lidar_annotation/pcd/ 文件夹下
(如果你手上只有.bin文件,可以参考这篇博客进行.bin文件转换为.pcd文件,链接为:https://blog.csdn.net/r1141207831/article/details/103795677)
(注意:标注工具默认支持激光雷达pcd格式点云,Field为[x,y,z,intensity],如果使用XYZRGB等其他pcd format,请在src/rviz_cloud_annotation/launch/annotation.launch中更改pcd_type参数的value.)
导入文件后再次运行sh run.sh,文件夹下自动填充一下文件,之后按照教程进行标注即可。
