我们使用了speed_bump_overlaps 道路重叠的方式,ctrl+鼠标左键可点击进入查看。
第112行为全局的配置参数,for循环的意思是车辆遇到speed_bump就会减速
speed_bump_start_s与speed_bump_end_s作加减相当于加长或缩短了减速带的一个矩形的宽度大小。
代码输入:buildtool create --template plugin \
下面正式开始:
打开网址:星火自动驾驶大赛赛事集锦--交汇路口减速慢行场景(方法一)_Apollo开发者社区
找到 2 新增插件配置流程
复制前五行代码粘贴到vs中,他是同步插件的指令。回车,然后找到相应的目录结构。
然后使用配置参数,输入代码:buildtool profile config init --package planning --profile=default && aem profile use default
接下来更改插件名:
mv modules/planning/traffic_rules/region_speed_limit/plugin_region_speed_limit_description.xml modules/planning/traffic_rules/region_speed_limit/plugins.xml
改完后cd该目录然后替换region_speed_limit.pb.txt文件名称为default_conf.pb.txt
然后重新进入workspace空间:cd /apollo_workspace/
检查一下目录树
代码:tree modules/planning/traffic_rules/region_speed_limit/
检查目录树是否一致。
然后查看配置文件是否生效:查看配置文件是否同步到profiles/default中
代码:tree profiles/default/modules/planning/planning_component/
只要有就是对的
输入:ll profiles/default
只要指向default,则也是对的
接下来进入3.2,开始代码部分,复制以下代码到相应的目录下
同样地,复制粘贴到region_speed_limit.h
同样地,BUILD文件也是如此:
继续复制plugins.xml的内容
最后复制region_speed_limit.proto
修改default_conf.pb.txt
复制完毕,接下来修改代码:
1.将下述文件中的23行代码pnc_junction_overlaps修改为crosswalk_overlaps
2.将数据结构修改一下
修改后:
3.修改default_conf.pb.txt
修改前:修改后:
接下来继续控制台输入
首先我们明白一个要求,车辆不可能在碰到人行道就进行减速,而是在人行道之前就需要进行减速。我们就把buffer改大,改成之前的10 10 8 ,然后进行一个编译。
编译代码:buildtool build -p modules/planning/
编译完成后继续复制粘贴增加新插件
注意:插件是有优先级的,越在上面的部分优先级越高,越先调用traffic_rules。
所以,我们需要变换一下优先级,把RegionSpeedLimit剪贴放到crosswalk上面
改完配置参数就需要编译代码:
接下来给新增插件输出日志
修改BUILD
代码:PLANNING_COPTS = ["-DMODULE_NAME=\\\"planning\\\""]
再添加planning日志依赖:
代码:copts = PLANNING_COPTS
看看日志是否生效的方法:
输入:AINFO << "crosswalk_conf : " << config_.limit_speed() << " " << config_.forward_buffer() << " " << config_.backward_buffer();
或者:AINFO << "硬件配置是否加载成功: : " << config_.limit_speed() << " " << config_.forward_buffer() << " " << config_.backward_buffer();
添加到cc文件中,然后编译代码:buildtool build -p modules/planning/
打开日志,切到data里面的log查看最新的日志
用cat检查一下,看看参数是否改对。
输入代码:aem profile use default
tar -zcvf crosswalk_limit.tar.gz modules/planning/ profiles/default/
注意:其中crosswalk_limit.tar.gz是文件名
然后提交之