Esempio n. 1
0
    def Create_actors(self, world, blueprint_library):
        ego_list = []
        npc_list = []
        obstacle_list = []
        sensor_list = []
        # ego车辆设置---------------------------------------------------------------
        ego_bp = blueprint_library.find(id='vehicle.lincoln.mkz2017')
        # 坐标建立
        ego_transform = Transform(
            Location(x=160.341522, y=-371.640472, z=0.281942),
            Rotation(pitch=0.000000, yaw=0.500910, roll=0.000000))
        # 车辆从蓝图定义以及坐标生成
        ego = world.spawn_actor(ego_bp, ego_transform)
        if ego is None:
            print('ego created failed')
        else:
            ego_list.append(ego)
            print('created %s' % ego.type_id)

        # 视角设置------------------------------------------------------------------
        spectator = world.get_spectator()
        # spec_transform = ego.get_transform()
        spec_transform = Transform(
            Location(x=140.341522, y=-375.140472, z=15.281942),
            Rotation(pitch=0.000000, yaw=0.500910, roll=0.000000))
        spec_transform.location += carla.Location(x=60, z=45)
        spec_transform.rotation = carla.Rotation(pitch=-90, yaw=90)
        spectator.set_transform(spec_transform)

        # npc设置--------------------------------------------------------------------
        npc_transform = ego_transform
        for i in range(1):
            npc_transform.location += carla.Location(x=-15, y=-3.5)
            npc_bp = blueprint_library.find(id='vehicle.lincoln.mkz2017')
            npc_bp.set_attribute('color', '229,28,0')
            npc = world.try_spawn_actor(npc_bp, npc_transform)
            if npc is None:
                print('No.%s npc created failed' % i)
            else:
                npc_list.append(npc)
                print('created %s' % npc.type_id)

        # 障碍物设置------------------------------------------------------------------
        obstacle_transform = ego_transform
        for i in range(28):
            if i == 0:
                obsta_bp = blueprint_library.find(
                    id='vehicle.mercedes-benz.coupe')
                obstacle_transform.location += carla.Location(x=95, y=3.8)
                obstacle = world.try_spawn_actor(obsta_bp, obstacle_transform)
                obstacle_transform.location += carla.Location(x=0, y=-5.3)
                if obstacle is None:
                    print('%s obstacle created failed' % i)
                else:
                    obstacle_list.append(obstacle)
                    print('created %s' % obstacle.type_id)
            else:
                obsta_bp = blueprint_library.find(
                    id='static.prop.streetbarrier')
                obstacle_transform.location += carla.Location(x=-3.5, y=7.4)
                obstacle1 = world.try_spawn_actor(obsta_bp, obstacle_transform)
                obstacle_list.append(obstacle1)
                obstacle_transform.location += carla.Location(y=-7.4)
                obstacle2 = world.try_spawn_actor(obsta_bp, obstacle_transform)
                obstacle_list.append(obstacle2)

        # 传感器设置-------------------------------------------------------------------
        ego_collision = SS.CollisionSensor(ego)
        npc_collision = SS.CollisionSensor(npc)
        # lane_invasion = SS.LaneInvasionSensor(ego)
        sensor_list.append(ego_collision)
        sensor_list.append(npc_collision)
        return ego_list, npc_list, obstacle_list, sensor_list
Esempio n. 2
0
    def Create_actors(self,world, blueprint_library): 
        ego_list = []
        npc_list = []
        obstacle_list = []
        sensor_list = []
        # ego车辆设置---------------------------------------------------------------
        ego_bp = blueprint_library.find(id='vehicle.lincoln.mkz2017')
        # 坐标建立
        ego_transform = Transform(Location(x=30, y=-4.350967, z=0.1), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        # 车辆从蓝图定义以及坐标生成
        ego = world.spawn_actor(ego_bp, ego_transform)
        ego_list.append(ego)
        print('created %s' % ego.type_id)

        # 视角设置------------------------------------------------------------------
        spectator = world.get_spectator()
        spec_transform = Transform(Location(x=30, y=-4.350967, z=0), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        spec_transform.location += carla.Location(x=-15,z=50)
        spec_transform.rotation = carla.Rotation(pitch=-90,yaw=0,roll=-0.000000)
        spectator.set_transform(spec_transform)

        # npc设置--------------------------------------------------------------------
        npc_transform = Transform(Location(x=30, y=-4.350967, z=0.1), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        for i in range(1):
            npc_transform.location += carla.Location(x=-11,y=6)
            npc_transform.rotation = carla.Rotation(pitch=0.348271,yaw=275, roll=-0.000000)
            npc_bp = blueprint_library.find(id='vehicle.lincoln.mkz2017')
            # print(npc_bp.get_attribute('color').recommended_values)
            npc_bp.set_attribute('color', '229,28,0')
            npc = world.try_spawn_actor(npc_bp, npc_transform)
            if npc is None:
                print('%s npc created failed' % i)
            else:
                npc_list.append(npc)
                print('created %s' % npc.type_id)

        # 障碍物设置------------------------------------------------------------------
        obsta_bp = blueprint_library.find(id='static.prop.streetbarrier')
        #障碍物1
        obstacle_transform1 =Transform(Location(x=30, y=-4.350967, z=0), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        obstacle_transform1.location += carla.Location(x=14,y=1.8)
        obstacle_transform1.rotation = carla.Rotation(pitch=0, yaw=0, roll=0.000000)
        for i in range(10):
            obstacle1 = world.try_spawn_actor(obsta_bp, obstacle_transform1)
            obstacle_transform1.location += carla.Location(x=-2.5,y=-0.04)
            obstacle_list.append(obstacle1)
        #障碍物2
        obstacle_transform2 =Transform(Location(x=30, y=-4.350967, z=0), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        obstacle_transform2.location += carla.Location(x=-8.5,y=1.82)
        obstacle_transform2.rotation = carla.Rotation(pitch=0, yaw=275, roll=0.000000)
        for i in range(4):
            obstacle2 = world.try_spawn_actor(obsta_bp, obstacle_transform2)
            obstacle_transform2.location += carla.Location(x=-0.1,y=2.5)
            obstacle_list.append(obstacle2)
        #障碍物3
        obstacle_transform3 =Transform(Location(x=30, y=-4.350967, z=0), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        obstacle_transform3.location += carla.Location(x=13,y=-1.8)
        obstacle_transform3.rotation = carla.Rotation(pitch=0, yaw=0, roll=0.000000)
        for i in range(9):
            obstacle3 = world.try_spawn_actor(obsta_bp, obstacle_transform3)
            obstacle_transform3.location += carla.Location(x=-2.5,y=-0.1)
            obstacle_list.append(obstacle3)
        #障碍物4
        obstacle_transform4 =Transform(Location(x=30, y=-4.350967, z=0), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        obstacle_transform4.location += carla.Location(x=-24,y=-52)
        obstacle_transform4.rotation = carla.Rotation(pitch=0, yaw=270, roll=0.000000)
        for i in range(15):
            obstacle4 = world.try_spawn_actor(obsta_bp, obstacle_transform4)
            obstacle_transform4.location += carla.Location(x=-0.05,y=2.5)
            obstacle_list.append(obstacle4)
        #障碍物5
        obstacle_transform5 =Transform(Location(x=30, y=-4.350967, z=0), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        obstacle_transform5.location += carla.Location(x=-20.5,y=-52)
        obstacle_transform5.rotation = carla.Rotation(pitch=0, yaw=270, roll=0.000000)
        for i in range(13):
            obstacle5 = world.try_spawn_actor(obsta_bp, obstacle_transform5)
            obstacle_transform5.location += carla.Location(x=-0.05,y=2.5)
            obstacle_list.append(obstacle5)
        #障碍物6
        obstacle_transform6 =Transform(Location(x=30, y=-4.350967, z=0), 
                    Rotation(pitch=-0.348271, yaw=180, roll=-0.000000))
        obstacle_transform6.location += carla.Location(x=-20,y=-21)
        obstacle_transform6.rotation = carla.Rotation(pitch=0, yaw=45, roll=0.000000)
        for i in range(8):
            obstacle6 = world.try_spawn_actor(obsta_bp, obstacle_transform6)
            obstacle_transform6.location += carla.Location(x=1.7,y=2.4)
            obstacle_list.append(obstacle6)
        # 传感器设置-------------------------------------------------------------------
        ego_collision = SS.CollisionSensor(ego)
        npc_collision = SS.CollisionSensor(npc)
        ego_invasion = SS.LaneInvasionSensor(ego)
        npc_invasion = SS.LaneInvasionSensor(npc)
        sensor_list.extend([[ego_collision,ego_invasion],[npc_collision,npc_invasion]])

        return ego_list,npc_list,obstacle_list,sensor_list
Esempio n. 3
0
    def Create_actors(self, world, blueprint_library):
        ego_list = []
        npc_list = []
        obstacle_list = []
        sensor_list = []
        # ego车辆设置---------------------------------------------------------------
        ego_bp = blueprint_library.find(id='vehicle.lincoln.mkz2017')
        # 坐标建立
        ego_transform = Transform(Location(x=9, y=-110.350967, z=0.1),
                                  Rotation(pitch=0, yaw=-90, roll=-0.000000))
        # 车辆从蓝图定义以及坐标生成
        ego = world.spawn_actor(ego_bp, ego_transform)
        ego_list.append(ego)
        print('created %s' % ego.type_id)

        # 视角设置------------------------------------------------------------------
        spectator = world.get_spectator()
        # spec_transform = ego.get_transform()
        spec_transform = Transform(Location(x=9, y=-115.350967, z=0),
                                   Rotation(pitch=0, yaw=180, roll=-0.000000))
        spec_transform.location += carla.Location(x=-5, z=60)
        spec_transform.rotation = carla.Rotation(pitch=-90,
                                                 yaw=1.9,
                                                 roll=-0.000000)
        spectator.set_transform(spec_transform)

        # npc设置--------------------------------------------------------------------
        npc_transform = Transform(Location(x=9, y=-110.350967, z=0.1),
                                  Rotation(pitch=0, yaw=-90, roll=-0.000000))
        for i in range(1):
            npc_transform.location += carla.Location(x=-18, y=-24)
            npc_transform.rotation = carla.Rotation(pitch=0,
                                                    yaw=0,
                                                    roll=-0.000000)
            npc_bp = blueprint_library.find(id='vehicle.lincoln.mkz2017')
            # print(npc_bp.get_attribute('color').recommended_values)
            npc_bp.set_attribute('color', '229,28,0')
            npc = world.try_spawn_actor(npc_bp, npc_transform)
            if npc is None:
                print('%s npc created failed' % i)
            else:
                npc_list.append(npc)
                print('created %s' % npc.type_id)

        # 障碍物设置------------------------------------------------------------------
        obsta_bp = blueprint_library.find(id='static.prop.streetbarrier')
        # 障碍物1
        obstacle_transform1 = Transform(
            Location(x=9, y=-110.350967, z=0),
            Rotation(pitch=0, yaw=-90, roll=-0.000000))
        obstacle_transform1.location += carla.Location(x=50, y=-27, z=3)
        obstacle_transform1.rotation = carla.Rotation(pitch=0,
                                                      yaw=0,
                                                      roll=0.000000)
        for i in range(30):
            obstacle1 = world.try_spawn_actor(obsta_bp, obstacle_transform1)
            obstacle_transform1.location += carla.Location(x=-2.5,
                                                           y=-0.05,
                                                           z=-0.12)
            obstacle_list.append(obstacle1)
        # 障碍物2
        # obstacle_transform2 = Transform(Location(x=9, y=-110.350967,z=0),
        #             Rotation(pitch=0, yaw=-90, roll=-0.000000))
        # obstacle_transform2.location += carla.Location(x=-2.8,y=-18.5)
        # obstacle_transform2.rotation = carla.Rotation(pitch=0, yaw=0, roll=0.000000)
        # for i in range(7):
        #     obstacle2 = world.try_spawn_actor(obsta_bp, obstacle_transform2)
        #     obstacle_transform2.location += carla.Location(x=-2.5)
        #     obstacle_list.append(obstacle2)
        # # 障碍物3
        # obstacle_transform3 = Transform(Location(x=9, y=-110.350967,z=0),
        #             Rotation(pitch=0, yaw=-90, roll=-0.000000))
        # obstacle_transform3.location += carla.Location(x=-1.65,y=-17.5)
        # obstacle_transform3.rotation = carla.Rotation(pitch=0, yaw=90, roll=0.000000)
        # for i in range(10):
        #     obstacle3 = world.try_spawn_actor(obsta_bp, obstacle_transform3)
        #     obstacle_transform3.location += carla.Location(x=0.006,y=2.5)
        #     obstacle_list.append(obstacle3)
        # # 障碍物4
        # obstacle_transform4 = Transform(Location(x=9, y=-110.350967,z=0),
        #             Rotation(pitch=0, yaw=-90, roll=-0.000000))
        # obstacle_transform4.location += carla.Location(x=2.45,y=-15)
        # obstacle_transform4.rotation = carla.Rotation(pitch=0, yaw=90, roll=0.000000)
        # for i in range(10):
        #     obstacle4 = world.try_spawn_actor(obsta_bp, obstacle_transform4)
        #     obstacle_transform4.location += carla.Location(y=2.5)
        #     obstacle_list.append(obstacle4)

        # 传感器设置-------------------------------------------------------------------
        ego_collision = SS.CollisionSensor(ego)
        npc_collision = SS.CollisionSensor(npc)
        ego_invasion = SS.LaneInvasionSensor(ego)
        npc_invasion = SS.LaneInvasionSensor(npc)
        sensor_list.extend([[ego_collision, ego_invasion],
                            [npc_collision, npc_invasion]])

        return ego_list, npc_list, obstacle_list, sensor_list