将 UTM 地图转换为 MGRS 地图格式#
概述#
如果要在 Autoware 中使用 MGRS(军事网格参考系)格式, 您需要将 UTM(通用横轴墨卡托)地图转换为 MGRS 格式. 为此,我们将使用 Leo Drive 提供的 UTM to MGRS pointcloud converter ROS 2 软件包.
安装#
依赖#
- ROS 2
- PCL-conversions
- GeographicLib
要安装依赖项:
sudo apt install ros-humble-pcl-conversions \
geographiclib-tools
编译#
cd <PATH-TO-YOUR-ROS-2-WORKSPACE>/src
git clone https://github.com/leo-drive/pc_utm_to_mgrs_converter.git
cd ..
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
用法#
安装转换器工具后,
我们需要定义北距,
pc_utm_to_mgrs_converter.param.yaml 中本地 UTM 地图原点的东距和椭球体高度.
例如,您可以使用 latitude、
来自 GNSS/INS 传感器的 navsatfix 消息中的经度和高度值.
来自 navsatfix 消息的 ROS 2 主题回显示例
header:
stamp:
sec: 1694612439
nanosec: 400000000
frame_id: GNSS_INS/gnss_ins_link
status:
status: 0
service: 1
latitude: 41.0216110801253
longitude: 28.887096461148346
altitude: 74.28264078891529
position_covariance:
- 0.0014575386885553598
- 0.0
- 0.0
- 0.0
- 0.004014162812381983
- 0.0
- 0.0
- 0.0
- 0.0039727711118757725
position_covariance_type: 2
之后,您需要将纬度和经度值转换为北距和东距值. 您可以使用 Internet 上的任何转换器将纬度经度值转换为 UTM. (即 UTMconverter)
现在,我们准备更新 pc_utm_to_mgrs_converter.param.yaml,
我们的 Navsatfix 消息示例:
/**:
ros__parameters:
# Northing of local origin
- Northing: 4520550.0
+ Northing: 4542871.33
# Easting of local origin
- Easting: 698891.0
+ Easting: 658659.84
# Elipsoid Height of local origin
- ElipsoidHeight: 47.62
+ ElipsoidHeight: 74.28
最后,我们将更新 pc_utm_to_mgrs_converter.launch.xml 中的输入和点云地图路径:
...
- <arg name="input_file_path" default="/home/melike/projects/autoware_data/gebze_pospac_map/pointcloud_map.pcd"/>
+ <arg name="input_file_path" default="<PATH-TO-YOUR-INPUT-PCD-MAP>"/>
- <arg name="output_file_path" default="/home/melike/projects/autoware_data/gebze_pospac_map/pointcloud_map_mgrs_orto.pcd"/>
+ <arg name="output_file_path" default="<PATH-TO-YOUR-OUTPUT-PCD-MAP>"/>
...
设置包后,我们将启动 pc_utm_to_mgrs_converter:
ros2 launch pc_utm_to_mgrs_converter pc_utm_to_mgrs_converter.launch.xml
转换过程将开始,
您应该Saved data points saved to<YOUR-OUTPUT-MAP-PATH> 消息.
MGRS 格式的点云地图应保存在输出地图目录中.