自学内容网 自学内容网

ros2bag形式的bd3点云文件转换为pcd格式的点云文件

需求:

        这周机械臂规划组让我提供几组采摘场景下的果梗叶藤点云数据,我直接用ros2bag给录了几组。但后面需要使用pcd格式的点云数据,我就又给想办法转换格式。后面的需求的抽帧,只需要几帧的pcd就行。再往后是对点云的直通滤波过滤点周围无用的点云。

解决:

        最开始的办法,直接使用pcl_ros功能包自带的转换节点,这种方法在ros1中又很多应用,随便一搜一大堆,但ros2上使用起来到处是坑,放弃了。

        还是自己写一个db3文件转pcd文件的ros2节点比较使用且容易实现,节点代码如下。该节点使用pcl库中的pcl_conversions方法实现,filters方法实现滤波。
 

#include <iostream>
#include <memory>
#include <string>
#include <rclcpp/rclcpp.hpp>
#include <sensor_msgs/msg/point_cloud2.hpp>
#include <pcl_conversions/pcl_conversions.h>
#include <pcl/filters/passthrough.h>
#include <pcl/io/pcd_io.h>

class BagToPCDConverter : public rclcpp::Node {
public:
    BagToPCDConverter(const std::string &bag_file, const std::string &output_directory)
        : Node("bag_to_pcd_c

原文地址:https://blog.csdn.net/jianlai_/article/details/142594940

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!