Apollo详解之地图模块———制作高精地图

前言

Apollo自带了一些工具能够制作简单的高精地图

Lgsvl仿真环境下制作高精地图

在没有实车的情况下,我们可以通过Lgsvl仿真器使用相对地图模块。
本文使用的Apollo版本:6.0

  1. 打开Lgsvl仿真器,选择Cube Town地图,进入仿真环境
    Apollo详解之地图模块———制作高精地图_第1张图片

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路径下生成了对应的地图文件。
Apollo详解之地图模块———制作高精地图_第2张图片
至此完成了高精地图的制作。
4. 打开dreamview,选择地图文件test
打开ControlLocalizationPredictionPlanningRouting模块,选择test高精地图,即可加载制作好的高精地图,可以完成导航功能。
Apollo详解之地图模块———制作高精地图_第3张图片
此外,modules/tools/map_gen文件夹下还有两个脚本map_gen.pymap_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

会生成一个处理后的高精地图文件,进行查看
Apollo详解之地图模块———制作高精地图_第4张图片
可以看到,信号灯被添加到了指定的位置

你可能感兴趣的:(Apollo)