文档首页>
自动驾驶云服务 Octopus>
用户指南>
仿真服务>
Open SCENARIO2.0场景说明>
动态场景>
附录 Appendix>
ALKS样例>
逻辑场景(以CutOutMultipleBlockingTargets为例)
更新时间:2024-05-13 GMT+08:00
逻辑场景(以CutOutMultipleBlockingTargets为例)
逻辑场景的ALKS样例,本文只介绍CutOutMultipleBlockingTargets,更多参数介绍,请查看官方文档。
osc2.0场景
import standard scenario CutOutMultipleBlockingTargets: # map map: map map.set_map_file("./ALKS_Road.xodr") # parameter Ego_InitPosition_LaneId: string = ['-4', '-1'] Ego_InitSpeed_Ve0: speed = [20mps, 40mps, 60mps, 80mps] LeadVehicle_InitDistance_dx0: length = [40m..80m] Ego_Odr: odr_point = map.create_odr_point(road_id: '0', lane_id: Ego_InitPosition_LaneId, s: 5.0m, t: 0.0m) Ego_InitPosition: pose_3d with: keep(it.odr_point == Ego_Odr) Blocking1_Odr: odr_point = map.create_odr_point(road_id: '0', lane_id: Ego_InitPosition_LaneId, s: 500.0m, t: 0.0m) Blocking1_InitPosition: pose_3d with: keep(it.odr_point == Blocking1_Odr) Blocking2_Odr: odr_point = map.create_odr_point(road_id: '0', lane_id: Ego_InitPosition_LaneId, s: 515.0m, t: 0.0m) Blocking2_InitPosition: pose_3d with: keep(it.odr_point == Blocking2_Odr) LeadVehicle_Odr: odr_point = map.create_odr_point(road_id: '0', lane_id: Ego_InitPosition_LaneId, s: LeadVehicle_InitDistance_dx0, t: 0.0m) LeadVehicle_InitPosition: pose_3d with: keep(it.odr_point == LeadVehicle_Odr) FrontOfLead_Distance_dx0_f: length = 50.0m Lateral_Velocity_Vy: speed = [0.1mps..1.0mps] m_direction : distance_direction = longitudinal m_mode : distance_mode = bounding_boxes m_rate_profile: dynamics_shape = [step, linear] m_dimension: dynamics_dimension = rate m_side: lane_change_side = [left, right] Duration: time = [30s, 40s, 50s] # entity Ego_Name: string = ["Audi_A3_2009_black", "Audi_A3_2009_red"] LeadVehicle_Name: string = "Audi_A3_2009_red" TargetBlocking2_Name: string = "Audi_A3_2009_blue" Ego_Controller: string = "DefaultDriver" Ego: vehicle with: keep(it.name == Ego_Name) keep(it.initial_bm == Ego_Controller) target_blocking1: person with: keep(it.name == "Christian") keep(it.model == "male_adult") target_blocking2: vehicle with: keep(it.name == TargetBlocking2_Name) lead_vehicle: vehicle with: keep(it.name == LeadVehicle_Name) # storyboard do parallel(duration: Duration): # init Ego.assign_init_position(position: Ego_InitPosition) Ego.assign_init_speed(Ego_InitSpeed_Ve0) target_blocking1.assign_init_position(position: Blocking1_InitPosition) target_blocking2.assign_init_position(position: Blocking2_InitPosition) lead_vehicle.assign_init_position(position: LeadVehicle_InitPosition) lead_vehicle.assign_init_speed(Ego_InitSpeed_Ve0) serial: # act1: ActivateALKSControllerAct wait elapsed(10000s) Ego.activate_controller(true, true) # lateral, longitudinal serial: # act2: CutOutAct wait lead_vehicle.object_distance(reference: target_blocking1, direction: m_direction, mode: m_mode) < FrontOfLead_Distance_dx0_f lead_vehicle.change_lane(number_of_lanes: 1, side: m_side, reference: lead_vehicle, rate_peak: Lateral_Velocity_Vy, rate_profile: m_rate_profile, dimension: m_dimension)
父主题: ALKS样例