Skip to content

Commit 154de93

Browse files
committed
変更:PCDマップ読み取りの場所で、PLYファイルも読み取れるようにした
1 parent 71dfd23 commit 154de93

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

include/lidar_localization/lidar_localization_component.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#include <pcl/registration/ndt.h>
99
#include <pcl/registration/gicp.h>
10+
#include <pcl/io/ply_io.h>
1011

1112
#include <tf2/transform_datatypes.h>
1213
#include <tf2/utils.h>

src/lidar_localization_component.cpp

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,27 @@ CallbackReturn PCLLocalization::on_activate(const rclcpp_lifecycle::State &)
8484

8585
if (use_pcd_map_) {
8686
pcl::PointCloud<pcl::PointXYZI>::Ptr map_cloud_ptr(new pcl::PointCloud<pcl::PointXYZI>);
87-
pcl::io::loadPCDFile(map_path_, *map_cloud_ptr);
88-
RCLCPP_INFO(get_logger(), "Map Size %ld", map_cloud_ptr->size());
87+
// load a pcd or ply file
88+
if (map_path_.rfind(".pcd") != std::string::npos) {
89+
RCLCPP_INFO(get_logger(), "Loading pcd map from: %s", map_path_.c_str());
90+
if (pcl::io::loadPCDFile(map_path_, *map_cloud_ptr) == -1) {
91+
RCLCPP_ERROR(get_logger(), "Failed to load pcd file: %s", map_path_.c_str());
92+
return CallbackReturn::FAILURE;
93+
}
94+
} else if (map_path_.rfind(".ply") != std::string::npos) {
95+
RCLCPP_INFO(get_logger(), "Loading ply map from: %s", map_path_.c_str());
96+
if (pcl::io::loadPLYFile(map_path_, *map_cloud_ptr) == -1) {
97+
RCLCPP_ERROR(get_logger(), "Failed to load ply file: %s", map_path_.c_str());
98+
return CallbackReturn::FAILURE;
99+
}
100+
} else {
101+
RCLCPP_ERROR(
102+
get_logger(), "Unsupported map file format. Please use .pcd or .ply: %s",
103+
map_path_.c_str());
104+
return CallbackReturn::FAILURE;
105+
}
89106

107+
RCLCPP_INFO(get_logger(), "Map Size %ld", map_cloud_ptr->size());
90108
sensor_msgs::msg::PointCloud2::SharedPtr map_msg_ptr(new sensor_msgs::msg::PointCloud2);
91109
pcl::toROSMsg(*map_cloud_ptr, *map_msg_ptr);
92110
map_msg_ptr->header.frame_id = global_frame_id_;

0 commit comments

Comments
 (0)