Example #1
0
    def _create_vehicles(self) -> None:
        """Create some new random vehicles of a given type, and add them on the road."""
        other_vehicles_type = utils.class_from_path(
            self.config["other_vehicles_type"])
        other_per_controlled = near_split(
            self.config["vehicles_count"],
            num_bins=self.config["controlled_vehicles"])

        self.controlled_vehicles = []
        for others in other_per_controlled:
            vehicle = Vehicle.create_random(
                self.road,
                speed=25,
                lane_id=self.config["initial_lane_id"],
                spacing=self.config["ego_spacing"])
            vehicle = self.action_type.vehicle_class(self.road,
                                                     vehicle.position,
                                                     vehicle.heading,
                                                     vehicle.speed)
            self.controlled_vehicles.append(vehicle)
            self.road.vehicles.append(vehicle)

            for _ in range(others):
                vehicle = other_vehicles_type.create_random(
                    self.road, spacing=1 / self.config["vehicles_density"])
                vehicle.randomize_behavior()
                self.road.vehicles.append(vehicle)
Example #2
0
    def _create_vehicles(self) -> None:
        """Create some new random vehicles of a given type, and add them on the road."""
        other_vehicles_type = utils.class_from_path(
            self.config["other_vehicles_type"])
        other_per_controlled = near_split(
            self.config["vehicles_count"],
            num_bins=self.config["controlled_vehicles"])

        self.controlled_vehicles = []
        t = 0
        l = 1
        for others in other_per_controlled:
            # controlled_vehicle = self.action_type.vehicle_class.create_random(
            #     self.road,
            #     amir=False,
            #     speed=np.random.randint(23,29),

            #     lane_id=1,
            #     spacing=self.config["ego_spacing"]
            # )
            flags = [False, True] + [False for i in range(others - 1)]
            # array=[t,None,np.random.randint(23,25)]
            for i in range(others + 1):
                if i == t:
                    controlled_vehicle = self.action_type.vehicle_class.create_random(
                        self.road,
                        amir=False,
                        speed=np.random.randint(23, 29),
                        lane_id=1,
                        spacing=self.config["ego_spacing"])
                    self.controlled_vehicles.append(controlled_vehicle)
                    self.road.vehicles.append(controlled_vehicle)
                else:
                    back = False
                    speed = np.random.randint(23, 29)
                    self.road.vehicles.append(
                        other_vehicles_type.create_random(
                            self.road,
                            amir=flags[i],
                            speed=speed,
                            spacing=1 / self.config["vehicles_density"]))