提交 ae5e2373 编写于 作者: Z zhouyao 提交者: Jiangtao Hu

try to load utm zone id from local map folder

上级 e52a0286
......@@ -119,6 +119,8 @@ DEFINE_double(imu_to_ant_offset_uz, 0.0, "Imu ant offset z uncertainty");
// common
DEFINE_double(imu_rate, 1.0, "");
DEFINE_bool(if_utm_zone_id_from_folder, true,
"load utm zone id from local map folder");
DEFINE_int32(local_utm_zone_id, 50, "UTM zone id");
DEFINE_bool(trans_gpstime_to_utctime, true, "");
DEFINE_int32(gnss_mode, 0, "GNSS Mode, 0 for bestgnss pose, 1 for self gnss.");
......
......@@ -90,6 +90,7 @@ DECLARE_double(imu_to_ant_offset_uz);
// common
DECLARE_double(imu_rate);
DECLARE_bool(if_utm_zone_id_from_folder);
DECLARE_int32(local_utm_zone_id);
DECLARE_bool(trans_gpstime_to_utctime);
DECLARE_int32(gnss_mode);
......
......@@ -119,6 +119,11 @@
# default: 1.0
--imu_rate=1.0
# Whether load utm zone id from local map folder
# type: bool
# default: true
--if_utm_zone_id_from_folder=true
# local_utm_zone_id.
# type: int
# default: int
......
......@@ -168,8 +168,18 @@ void MSFLocalization::InitParams() {
AERROR << "lidar_extrin: " << localizaiton_param_.lidar_extrinsic_file;
AERROR << "lidar_height: " << localizaiton_param_.lidar_height_file;
// common
localizaiton_param_.utm_zone_id = FLAGS_local_utm_zone_id;
// try load zone id from config file in local_map folder
if (FLAGS_if_utm_zone_id_from_folder) {
bool success = LoadZoneIdFromFile(localizaiton_param_.map_path,
&localizaiton_param_.utm_zone_id);
if (!success) {
AWARN << "Can't load utm zone id from config file, use default value.";
}
}
AINFO << "utm zone id: " << localizaiton_param_.utm_zone_id;
// common
localizaiton_param_.imu_rate = FLAGS_imu_rate;
localizaiton_param_.enable_lidar_localization =
FLAGS_enable_lidar_localization;
......@@ -382,5 +392,25 @@ bool MSFLocalization::LoadGnssAntennaExtrinsic(
return false;
}
bool MSFLocalization::LoadZoneIdFromFile(
const std::string &folder_path, int *zone_id) {
std::string map_zone_id_folder;
if (common::util::DirectoryExists(folder_path + "/map/000/north")) {
map_zone_id_folder = folder_path + "/map/000/north";
} else if (common::util::DirectoryExists(folder_path + "/map/000/south")) {
map_zone_id_folder = folder_path + "/map/000/south";
} else {
return false;
}
auto folder_list = common::util::ListSubDirectories(map_zone_id_folder);
for (auto itr = folder_list.begin(); itr != folder_list.end(); ++itr) {
*zone_id = std::stoi(*itr);
return true;
}
return false;
}
} // namespace localization
} // namespace apollo
......@@ -87,6 +87,7 @@ class MSFLocalization : public LocalizationBase {
double *offset_x, double *offset_y,
double *offset_z, double *uncertainty_x,
double *uncertainty_y, double *uncertainty_z);
bool LoadZoneIdFromFile(const std::string &folder_path, int *zone_id);
private:
apollo::common::monitor::MonitorLogger monitor_logger_;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册