Apollo---实战;加入地图,显示到dreamview中

这篇博客介绍了如何在Apollo框架下创建和管理高精地图。首先在 Apollo 的地图目录下新建地图文件夹并放入 base_map.bin 文件。接着,从LGSVL获取或转换地图文件,生成 routing_map 和 sim_map。利用 generate_map.sh 脚本进行地图生成,并通过 mapshow 工具可视化地图。最后,详细说明了将 base_map.txt 转换为 .bin 文件的步骤,并提供了重启 Dreamview 以应用新地图的指令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.新建地图文件夹

Create a new map folder under APOLLO_ROOT/modules/map/data/ and put base_map.bin in the folder.

在modules/map/data下建立一个自己的地图,比如highway101

2. 获取base_map.bin

可以到LGSVL里library库里找到想加载的地图,然后下载对应apollo格式的.bin地图文件,重命名为base_map.bin

如果是其他格式的,比如OpenDrive的文件,则需要转到Apollo支持的格式.bin文件
https://github.com/daohu527/imap

具体转换下次介绍。

3.生成地图

  • base_map是最完整的地图,包含所有道路和车道几何形状和标识。其他版本的地图均基于base_map生成。
  • routing_map包含base_map中车道的拓扑结构,可以有以下命令生成:
    dir_name=modules/map/data/demo # example map directory
    ./scripts/generate_routing_topo_graph.sh --map_dir ${dir_name}
  • sim_map是一个适用于Dreamview视觉可视化,基于base_map的轻量版本。减少了数据密度,以获得更好的运行时性能。可以由以下命令生成:
    dir_name=modules/map/data/demo # example map directory
    bazel-bin/modules/map/tools/sim_map_generator --map_dir= d i r n a m e − − o u t p u t d i r = {dir_name} --output_dir= dirnameoutputdir={dir_name}

generate_map.sh如下:

#!/usr/bin/env bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

cd "${DIR}/.."

source "$DIR/apollo_base.sh"

if [ $# -eq 0 ]; then
  echo "Please specify name of your map directory."
else
  dir_name=modules/map/data/$1
  bazel-bin/modules/map/tools/sim_map_generator --map_dir=${dir_name} --output_dir=${dir_name}
  bash scripts/generate_routing_topo_graph.sh --map_dir ${dir_name}
fi

执行下面的命令:

cd /apollo
generate_map.sh YOUR_MAP_FOLDER_NAME

4.重启生效

重启dreamview:

./scripts/bootstrap.sh stop && ./scripts/bootstrap.sh
或
./scripts/bootstrap.sh restart

个人操作步骤:

首先从库里添加一个地图,比如highway101GE 

然后下载对应的base_map.bin

然后docker 环境下,

bash ./scripts/generate_routing_topo_graph.sh --map_dir modules/map/data/highway101
生成routing_map.bin  routing_map.txt

bazel-bin/modules/map/tools/sim_map_generator --map_dir=modules/map/data/highway101 --output_dir=modules/map/data/highway101
生成sim_map.bin  sim_map.txt
最后重启生效:
bash scripts/bootstrap_lgsvl.sh restart


启动加
bash docker/scripts/dev_start.sh --map dgm

--map_dir=/apollo/modules/map/data/dgm

5.mapshow的使用

mapshow

简单来说,就是一个apollo框架中,用python脚本写一个可视化高精地图的工具。

该工具默认在 “/apollo/modules/tools/mapshow” 目录下。
所有可以运行一下命令将库添加到python运行库中。当然你也可以直接在此目录下运行,就不用添加运行环境了。

source scripts/apollo_base.sh
usage: python mapshow.py [-h] -m MAP [-sl] [-l LANEID [LANEID …]]

optional arguments:

-h, --help show this help message and exit

-m MAP, --map MAP Specify the map file in txt or binary format

-sl, --showlaneids Show all lane ids in map

-l LANEID [LANEID …], --laneid LANEID [LANEID …] Show specific lane id(s) in map

显示基本的道路图

python mapshow.py -m /path/to/map/file

6. base_map.txt文件转.bin

(1) txt文件生成

【OpenDrive 转Apollo】

参考这里。

(2)txt 文件转bin

cd modules/tools/create_map$

python3 convert_map_txt2bin.py -i …/…/map/data/dgm/base_map.txt -o …/…/map/data/dgm/base_map.bin

参考:

https://www.svlsimulator.com/docs/system-under-test/apollo-master-instructions/

https://www.svlsimulator.com/docs/system-under-test/apollo5-0-instructions/#adding-an-hd-map

参考LGSVL 高精地图使用教程

apollo 地图可视化工具MapShow的使用

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值