Ошибка сегментации в средстве просмотра PCL ⇐ C++
-
Anonymous
Ошибка сегментации в средстве просмотра PCL
В настоящее время я работаю с ROS 2 скромным над Ubuntu Ubuntu 22.04.3 и облаком точек rosbag. Однако теперь я получаю [ros2run] Ошибка сегментации при запуске узла. Я получаю ошибку только тогда, когда пытаюсь визуализировать облако точек с помощью PCL 1.12.1. Если я закомментирую средство просмотра, ошибки не произойдет. Есть ли у вас идеи, что может вызвать эту проблему и как ее исправить?
#include #include #include #include #include класс SimplePointCloudSubscriber: public rclcpp::Node { публика: SimplePointCloudSubscriber() : Node("simple_point_cloud_subscriber") { подписка_ = this->create_subscription( "/velodyne_points", 10, std::bind(&SimplePointCloudSubscriber::pointCloudCallback, this, std::placeholders::_1)); } частный: void pointCloudCallback (const Sensor_msgs::msg::PointCloud2::SharedPtr msg) { RCLCPP_INFO(this->get_logger(), «Получено сообщение PointCloud2»); pcl::PointCloud::Ptr cloud(new pcl::PointCloud()); pcl::fromROSMsg(*msg, *cloud); просмотрщик_.showCloud(облако); } rclcpp::Subscription::SharedPtr subscribe_; pcl::visualization::CloudViewerviewer_{"Простой Cloud Viewer"}; }; int main(int argc, char **argv) { rclcpp::init(argc, argv); rclcpp::spin(std::make_shared()); rclcpp:: выключение (); вернуть 0; }
В настоящее время я работаю с ROS 2 скромным над Ubuntu Ubuntu 22.04.3 и облаком точек rosbag. Однако теперь я получаю [ros2run] Ошибка сегментации при запуске узла. Я получаю ошибку только тогда, когда пытаюсь визуализировать облако точек с помощью PCL 1.12.1. Если я закомментирую средство просмотра, ошибки не произойдет. Есть ли у вас идеи, что может вызвать эту проблему и как ее исправить?
#include #include #include #include #include класс SimplePointCloudSubscriber: public rclcpp::Node { публика: SimplePointCloudSubscriber() : Node("simple_point_cloud_subscriber") { подписка_ = this->create_subscription( "/velodyne_points", 10, std::bind(&SimplePointCloudSubscriber::pointCloudCallback, this, std::placeholders::_1)); } частный: void pointCloudCallback (const Sensor_msgs::msg::PointCloud2::SharedPtr msg) { RCLCPP_INFO(this->get_logger(), «Получено сообщение PointCloud2»); pcl::PointCloud::Ptr cloud(new pcl::PointCloud()); pcl::fromROSMsg(*msg, *cloud); просмотрщик_.showCloud(облако); } rclcpp::Subscription::SharedPtr subscribe_; pcl::visualization::CloudViewerviewer_{"Простой Cloud Viewer"}; }; int main(int argc, char **argv) { rclcpp::init(argc, argv); rclcpp::spin(std::make_shared()); rclcpp:: выключение (); вернуть 0; }
Мобильная версия