Skip to content

Commit 1d9000f

Browse files
committed
Add autoware_map_msgs/LaneletMapBin
Signed-off-by: Barış Zeren <bzeren1819@gmail.com>
1 parent a33b0a6 commit 1d9000f

File tree

5 files changed

+42
-3
lines changed

5 files changed

+42
-3
lines changed

map/autoware_dynamic_lanelet_provider/include/autoware/dynamic_lanelet_provider/dynamic_lanelet_provider.hpp

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ class DynamicLaneletProviderNode : public rclcpp::Node
4242
void updateMap(const geometry_msgs::msg::Point & pose);
4343
bool should_update_map() const;
4444

45+
static void convertLaneletMapBinToHADMapBin(
46+
const autoware_map_msgs::msg::LaneletMapBin & lanelet_map_bin,
47+
autoware_auto_mapping_msgs::msg::HADMapBin & had_map_bin);
48+
4549
rclcpp::Publisher<autoware_auto_mapping_msgs::msg::HADMapBin>::SharedPtr dynamic_map_pub_;
4650

4751
rclcpp::Client<autoware_map_msgs::srv::GetDifferentialLanelet2Map>::SharedPtr map_loader_client_;

map/autoware_dynamic_lanelet_provider/src/dynamic_lanelet_provider.cpp

+14-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,9 @@ void DynamicLaneletProviderNode::updateMap(const geometry_msgs::msg::Point & pos
160160
status = result.wait_for(std::chrono::seconds(1));
161161
}
162162

163-
dynamic_map_pub_->publish(result.get()->differential_map);
163+
autoware_auto_mapping_msgs::msg::HADMapBin had_map_bin;
164+
convertLaneletMapBinToHADMapBin(result.get()->differential_map, had_map_bin);
165+
dynamic_map_pub_->publish(had_map_bin);
164166
}
165167

166168
void DynamicLaneletProviderNode::onOdometry(const nav_msgs::msg::Odometry::ConstSharedPtr & msg)
@@ -178,6 +180,17 @@ bool DynamicLaneletProviderNode::should_update_map() const
178180
return distance > dynamic_map_loading_update_distance_;
179181
}
180182

183+
void DynamicLaneletProviderNode::convertLaneletMapBinToHADMapBin(
184+
const autoware_map_msgs::msg::LaneletMapBin & lanelet_map_bin,
185+
autoware_auto_mapping_msgs::msg::HADMapBin & had_map_bin)
186+
{
187+
had_map_bin.header = lanelet_map_bin.header;
188+
had_map_bin.data = lanelet_map_bin.data;
189+
had_map_bin.map_version = lanelet_map_bin.version_map;
190+
// had_map_bin.map_format =
191+
// static_cast<unsigned char>(std::stoi(lanelet_map_bin.version_map_format));
192+
}
193+
181194
} // namespace dynamic_lanelet_provider
182195
} // namespace autoware
183196

map/map_loader/include/map_loader/lanelet2_map_loader_node.hpp

+5
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <rclcpp/rclcpp.hpp>
2424

2525
#include <autoware_auto_mapping_msgs/msg/had_map_bin.hpp>
26+
#include <autoware_map_msgs/msg/lanelet_map_bin.hpp>
2627
#include <tier4_map_msgs/msg/map_projector_info.hpp>
2728

2829
#include <lanelet2_projection/UTM.h>
@@ -31,6 +32,7 @@
3132
#include <string>
3233

3334
using autoware_auto_mapping_msgs::msg::HADMapBin;
35+
using autoware_map_msgs::msg::LaneletMapBin;
3436
using tier4_map_msgs::msg::MapProjectorInfo;
3537

3638
class Lanelet2MapLoaderNode : public rclcpp::Node
@@ -44,6 +46,9 @@ class Lanelet2MapLoaderNode : public rclcpp::Node
4446
static HADMapBin create_map_bin_msg(
4547
const lanelet::LaneletMapPtr map, const std::string & lanelet2_filename,
4648
const rclcpp::Time & now);
49+
static LaneletMapBin create_lanelet_map_bin_msg(
50+
const lanelet::LaneletMapPtr map, const std::string & lanelet2_filename,
51+
const rclcpp::Time & now);
4752

4853
private:
4954
using MapProjectorInfo = map_interface::MapProjectorInfo;

map/map_loader/src/lanelet2_map_loader/lanelet2_differential_loader_module.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ bool Lanelet2DifferentialLoaderModule::differentialLanelet2Load(
160160
lanelet::utils::overwriteLaneletsCenterline(map, 5.0, false);
161161

162162
const auto map_bin_msg =
163-
Lanelet2MapLoaderNode::create_map_bin_msg(map, lanelet2_paths[0], rclcpp::Clock().now());
163+
Lanelet2MapLoaderNode::create_lanelet_map_bin_msg(map, lanelet2_paths[0], rclcpp::Clock().now());
164164

165165
response->differential_map = map_bin_msg;
166166
} else {
@@ -178,7 +178,7 @@ bool Lanelet2DifferentialLoaderModule::differentialLanelet2Load(
178178
lanelet::utils::overwriteLaneletsCenterline(map, 5.0, false);
179179

180180
const auto map_bin_msg =
181-
Lanelet2MapLoaderNode::create_map_bin_msg(map, lanelet2_paths[0], rclcpp::Clock().now());
181+
Lanelet2MapLoaderNode::create_lanelet_map_bin_msg(map, lanelet2_paths[0], rclcpp::Clock().now());
182182

183183
response->differential_map = map_bin_msg;
184184
}

map/map_loader/src/lanelet2_map_loader/lanelet2_map_loader_node.cpp

+17
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,23 @@ HADMapBin Lanelet2MapLoaderNode::create_map_bin_msg(
198198
return map_bin_msg;
199199
}
200200

201+
LaneletMapBin Lanelet2MapLoaderNode::create_lanelet_map_bin_msg(
202+
const lanelet::LaneletMapPtr map, const std::string & lanelet2_filename, const rclcpp::Time & now)
203+
{
204+
std::string format_version{}, map_version{};
205+
lanelet::io_handlers::AutowareOsmParser::parseVersions(
206+
lanelet2_filename, &format_version, &map_version);
207+
208+
LaneletMapBin map_bin_msg;
209+
map_bin_msg.header.stamp = now;
210+
map_bin_msg.header.frame_id = "map";
211+
map_bin_msg.version_map_format = format_version;
212+
map_bin_msg.version_map = map_version;
213+
lanelet::utils::conversion::toBinMsg(map, &map_bin_msg);
214+
215+
return map_bin_msg;
216+
}
217+
201218
std::vector<std::string> Lanelet2MapLoaderNode::getLanelet2Paths(
202219
const std::vector<std::string> & lanelet2_paths_or_directory) const
203220
{

0 commit comments

Comments
 (0)