Apollo使用方法;map_gen工具使用

apollo之高精地图

介绍

apollo的高精度地图采用了opendrive格式,opendrive是一个统一的地图标准,这样保证了地图的通用性。

apollo之map模块

代码目录结构:

├── data           // 生成好的地图
│   └── demo
├── hdmap          // 高精度地图
│   ├── adapter    // 从xml文件读取地图(opendrive保存格式为xml)
│   │   └── xml_parser
│   └── test-data
├── pnc_map        // 给规划控制模块用的地图
│   └── testdata
├── proto          // 地图各元素的消息格式(人行横道,车道线等)
├── relative_map   // 相对地图
│   ├── common
│   ├── conf
│   ├── dag
│   ├── launch
│   ├── proto
│   ├── testdata
│   │   └── multi_lane_map
│   └── tools
├── testdata       // 测试数据?
│   └── navigation_dummy
└── tools          // 工具

apollo 高精地图

Map()

message Header {
  optional bytes version = 1;   //地图版本
  optional bytes date = 2;      //地图时间
  optional Projection projection = 3; //投影方法
  optional bytes district = 4;        //区
  optional bytes generation = 5;      //
  optional bytes rev_major = 6;       //
  optional bytes rev_minor = 7;       //
  optional double left = 8;           //左
  optional double top = 9;            //上
  optional double right = 10;         //右
  optional double bottom = 11;        //底
  optional bytes vendor = 12;         //供应商
}

Lane()

车道结构:

message Lane {
  optional Id id = 1;         //编号
  optional Curve central_curve = 2;     //中心曲线
  optional LaneBoundary left_boundary = 3;          //左边界
  optional LaneBoundary right_boundary = 4;         //右边界
  optional double length = 5;                       //长度
  optional double speed_limit = 6;           //速度限制
  repeated Id overlap_id = 7;                //重叠区域id
  
  repeated Id predecessor_id = 8;           //前任id
  repeated Id successor_id = 9;             //继任者id

 
  repeated Id left_neighbor_forward_lane_id = 10;    //左边相邻前方车道id
  repeated Id right_neighbor_forward_lane_id = 11;   //右边相邻前方车道id
  enum LaneType {               //车道类型
    NONE = 1;                  //无
    CITY_DRIVING = 2;           //城市道路
    BIKING = 3;                 //自行车
    SIDEWALK = 4;               //人行道
    PARKING = 5;                //停车
  };
  optional LaneType type = 12;         //车道类型
  enum LaneTurn {
    NO_TURN = 1;        //直行
    LEFT_TURN = 2;      //左转弯
    RIGHT_TURN = 3;     //右转弯
    U_TURN = 4;         //掉头
  };
  optional LaneTurn turn = 13;          //转弯类型
  repeated Id left_neighbor_reverse_lane_id = 14;       //左边相邻反方向车道id
  repeated Id right_neighbor_reverse_lane_id = 15;      //右边相邻反方向车道id

  optional Id junction_id = 16;

  repeated LaneSampleAssociation left_sample = 17;      //中心点与最近左边界之间的关联
  repeated LaneSampleAssociation right_sample = 18;     //中心点与最近右边界之间的关联
  enum LaneDirection {
    FORWARD = 1;     //前
    BACKWARD = 2;    //后,潮汐车道借用的情况?
    BIDIRECTION = 3;  //双向
  }
  optional LaneDirection direction = 19;   //车道方向
 
  repeated LaneSampleAssociation left_road_sample = 20;    //中心点与最近左路边界之间的关联
  repeated LaneSampleAssociation right_road_sample = 21;    //中心点与最近右路边界之间的关联
}

Road()

message RoadSection {
  optional Id id = 1;
  // 本节所包含的车道
  repeated Id lane_id = 2;
  // 截面边界
  optional RoadBoundary boundary = 3;
}

// 道路是车道、道路边界等交通要素的集合。
// 它提供道路的一般信息。
message Road {
  optional Id id = 1;
  repeated RoadSection section = 2;

  // 如果车道不在路口,路口id为空。
  optional Id junction_id = 3;
}

具体生成方法

确保在docker容器中

先进入apollo目录下

1. 启动docker

bash docker/scripts/dev_start.sh

在这里插入图片描述

2. 开始docker

bash docker/scripts/dev_into.sh

在这里插入图片描述

3. 在docker中编译apollo源码

bash apollo.sh build_cpu

在这里插入图片描述

启动DreamView

./scripts/bootstrap.sh [start | stop | restart]

在这里插入图片描述

打开浏览器

:http://localhost:8888/

在这里插入图片描述

下载预录资源

python3 rosbag_helper.py demo_3.5.record

在这里插入图片描述

cyber_recorder play -f demo_3.5.record -l

在这里插入图片描述
界面显示如图
在这里插入图片描述

生成好的地图

参考

查看当前轨迹

python modules/tools/map_gen/plot_path.py test.csv

在这里插入图片描述

生成地图

python modules/tools/map_gen/map_gen.py points 

在这里插入图片描述
得到
在这里插入图片描述

查看地图

python modules/tools/mapshow/mapshow.py -m map_test.csv.txt

在这里插入图片描述

apollo 地图生成

base_map.bin
python modules/tools/create_map/convert_map_txt2bin.py -i mymap/map_test.csv.txt -o mymap/base_map.bin 

-o:存放路径

在这里插入图片描述

sim_map.bin
./bazel-bin/modules/map/tools/sim_map_generator -map_dir=mymap/ -output_dir=mymap/ 

在这里插入图片描述

routing_map.bin
./bazel-bin/modules/routing/topo_creator/topo_creator -map_dir=mymap/ --flagfile=modules/routing/conf/routing.conf

生成地图另外一种方法

参考

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

其它

linux 文件解锁

sudo chmod -R 777 路径

pip install 豆瓣源

pip install pyinstaller -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值