前言
Apollo自带了一些工具能够制作简单的高精地图
Lgsvl仿真环境下制作高精地图
在没有实车的情况下,我们可以通过Lgsvl仿真器使用相对地图模块。
本文使用的Apollo版本:6.0
- 打开Lgsvl仿真器,选择Cube Town地图,进入仿真环境
2.打开Dreamview,并确认Apollo与仿真器连接
bash scripts/bootstrap_lgsvl.sh
bash scripts/bridge.sh
打开Localization
模块
4.录制数据包
开始录制
cyber_recorder record -a -o map_gen_test.record
操控车辆沿着地图行驶一圈后,停止录制。得到数据包map_gen_test.record
2. 提取路径
/apollo/bazel-bin/modules/tools/map_gen/extract_path test.csv map_gen_test.record.00000
生成test.csv
路径文件
3. 生成地图
bash /apollo/scripts/create_map_from_xy.sh --xy test.csv --map_name test
/apollo/bazel-bin/modules/map/tools/bin_map_generator --map_dir=/apollo/modules/map/data/test --output_dir=/apollo/modules/map/data/test
然后在modules/map/data/test
路径下生成了对应的地图文件。
至此完成了高精地图的制作。
4. 打开dreamview,选择地图文件test
打开Control
、Localization
、Prediction
、Planning
、Routing
模块,选择test高精地图,即可加载制作好的高精地图,可以完成导航功能。
此外,modules/tools/map_gen
文件夹下还有两个脚本map_gen.py
和map_gen_two_lanes_right_ext.py
,前者可以额外生成左边的两个车道,后者可以额外生成右边的一个车道。
为高精地图添加信号灯
Apollo还提供了一个工具add_signal.py
,可以向高精地图中添加信号灯。
首先准备map_signal.pb.txt
文件,一个简单的示例:
stop_line{
segment{
line_segment{
point{
x: 592668.26
y: 4134482.99
}
point{
x: 592671.56
y: 4134482.99
}
}
}
}
id{
id: "5"
}
type: MIX_2_HORIZONTAL
然后运行
/apollo/bazel-bin/modules/tools/map_gen/add_signal base_map.txt map_signal.pb.txt
会生成一个处理后的高精地图文件,进行查看
可以看到,信号灯被添加到了指定的位置