首页/文章/ 详情

Carla实战 | 手把手教您在Carla中运行OpenSCENARIO 2.0示例

1年前浏览4490

                     

Step1:场景编写

基于 OpenSCENARIO 2.0 的场景描述简短易读,且表达能力丰富,如对于一个 NPC 变道场景,其描述如下:



































import basic.osc
scenario top:    path: Path    path.set_map("Town04")    path.path_min_driving_lanes(3)
   ego_vehicle: Model3    npc: Rubicon
   event start    event end    event left    event right
   do serial:        get_ahead: parallel(duration: 15s):            ego_vehicle.drive(path) with:                speed(20kph)                lane(1, at: start)            npc.drive(path) with:                lane(right_of: ego_vehicle, at: start)                position(15m, behind: ego_vehicle, at: start)                position(20m, ahead_of: ego_vehicle, at: end)
       change_lane: parallel(duration: 5s):            ego_vehicle.drive(path)            npc.drive(path) with:                change_lane(lane_changes:[1..2], side: left)
       slow: parallel(duration: 20s):            ego_vehicle.drive(path)            npc.drive(path) with:                speed(20kph)
               
               

Step2:运行Carla

使用 Docker 启动 Carla 仿真器:                

docker run -d --privileged --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw -p "2000-2003":"2000-2003" carlasim/carla:0.9.14 ./CarlaUE4.sh -nosound
               

                       

Step3:运行场景

打开第一个终端,运行控制程序:                



git clone git@github.com:carla-simulator/scenario_runner.gitcd scenario_runnerpython manual_control.py -a --rolename=ego_vehicle
               

打开另一个终端运行编写的场景文件:


python scenario_runner.py --openscenario2 srunner/examples/change_lane.osc
               
在 Carla 中的渲染效果如下图:                
               
NPC变道场景效果图                
               
               

示例场景代码简要说明




























scenario top - 场景执行入口path: Path - 场景运行的路径path.set_map("Town04") - 内置函数,设置地图path.path_min_driving_lanes(3) - 内置函数,用于约束场景发生的路同一方向至少有三条车道。
ego_vehicle: Model3 - 定义主车为Model3npc: Rubicon - 定义NPC车辆为Rubicon
# start事件和end事件分别表示某个时间段的开始和结束。left事件和right事件可以用在变道函数中。event startevent endevent leftevent right
# 场景事件可以为serial:顺序执行;parallel:并行执行;one_of:执行其中一个# 此场景中有三个顺序事件,get_ahead, change_lane, slow, 可以自定义名称do serial  # duration 指定此阶段时间持续15s  get_ahead: parallel(duration: 15s):    ...  # 主车保持正常行驶,npc执行change_lane的变道操作。  # npc会从2车道变道到1车道,并且在5秒内完成。  change_lane: parallel(duration: 5s):    ...  # 主车和npc正常行驶20秒,然后场景结束  slow: parallel(duration: 20s):    ...
               

本文通过OpenScenario2.0场景描述和Carla运行示例,帮助您应用更先进的标准概念和自动驾驶仿真工具链,促进开发符合业务需求和复杂场景的应用。

参考链接


                     
                     
开源地址:https://github.com/carla-simulator/scenario_runner                  
场景示例参考:https://github.com/carla-simulator/scenario_runner/blob/master/srunner/examples/change_lane.osc                  

OpenSCENARIO V2.0.0标准发布地址:https://www.asam.net/standards/detail/openscenario/v200



           
深信科创              

             

           
致力于自动驾驶工业软件            
             
深信科创是一家专注于提供自动驾驶仿真及智慧交通解决方案的国家高新技术企业。公司基于人工智能软件测试数字孪生大数据等技术,一直致力于自动驾驶领域的研发和探索,拥有一支高素质的研发团队,自主研发了自动驾驶仿真及数据闭环工具链SYNKROTRON®  Oasis产品系列,能够提供高精度传感器模型动力学模型感知级交通环境仿真解决方案等,客户可以在仿真平台上对自动驾驶系统开展大规模的仿真测试和模型训练,提前识别自动驾驶系统缺陷降低实车测试成本消除场景端落地的安全隐患,加速自动驾驶技术在场景端的安全落地。            

来源:孙工自动驾驶
python自动驾驶数字孪生控制渲染人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-11-23
最近编辑:1年前
孙工自动驾驶
硕士 专注自动驾驶仿真测试
获赞 19粉丝 28文章 82课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈