Esempio n. 1
0
    def _prepare_vehicle(self, vehicle_type, object_id, car_width, car_length,
                         road_width, road_length, car_rear_end_lon,
                         car_right_lat, car_speed, occupied_region):
        """
        Setup Ego vehicle
        """
        rss_vehicle_a = rss.Object()

        rss_vehicle_a.objectType = vehicle_type
        rss_vehicle_a.velocity.speedLonMin = physics.Speed(car_speed)
        rss_vehicle_a.velocity.speedLonMax = physics.Speed(car_speed)
        rss_vehicle_a.velocity.speedLatMin = physics.Speed(0.0)
        rss_vehicle_a.velocity.speedLatMax = physics.Speed(0.0)
        rss_vehicle_a.objectId = object_id

        occupied_region.latRange.minimum = physics.ParametricValue(
            car_right_lat)
        occupied_region.latRange.maximum = physics.ParametricValue(
            (car_right_lat + car_width) / road_width)
        occupied_region.lonRange.minimum = physics.ParametricValue(
            car_rear_end_lon / road_length)
        occupied_region.lonRange.maximum = physics.ParametricValue(
            (car_rear_end_lon + car_length) / road_length)

        rss_vehicle_a.occupiedRegions.append(occupied_region)

        return rss_vehicle_a
Esempio n. 2
0
    def _prepare_world_model(self):
        """
        Setup RSS world model
        """

        rss_vehicle_a = rss.Object()
        rss_vehicle_b = rss.Object()

        rss_vehicle_a.objectType = rss.ObjectType.EgoVehicle
        rss_vehicle_a.velocity.speedLonMin = physics.Speed(20.0)
        rss_vehicle_a.velocity.speedLonMax = physics.Speed(20.0)
        rss_vehicle_a.velocity.speedLatMin = physics.Speed(0.0)
        rss_vehicle_a.velocity.speedLatMax = physics.Speed(0.0)
        rss_vehicle_a.objectId = 0

        occupied_region = rss.OccupiedRegion()
        occupied_region.segmentId = 0
        occupied_region.latRange.minimum = physics.ParametricValue(0)
        occupied_region.latRange.maximum = physics.ParametricValue(
            2.0 / self.road_width)
        occupied_region.lonRange.minimum = physics.ParametricValue(0.)
        occupied_region.lonRange.maximum = physics.ParametricValue(
            5.0 / self.road_length)

        rss_vehicle_a.occupiedRegions.append(occupied_region)

        rss_vehicle_b.objectType = rss.ObjectType.OtherVehicle
        rss_vehicle_b.velocity.speedLonMin = physics.Speed(10.0)
        rss_vehicle_b.velocity.speedLonMax = physics.Speed(10.0)
        rss_vehicle_b.velocity.speedLatMin = physics.Speed(0.0)
        rss_vehicle_b.velocity.speedLatMax = physics.Speed(0.0)
        rss_vehicle_b.objectId = 1

        occupied_region.lonRange.minimum = physics.ParametricValue(
            100.0 / self.road_length)
        occupied_region.lonRange.maximum = physics.ParametricValue(
            (5.0 + 100) / self.road_length)
        rss_vehicle_b.occupiedRegions.append(occupied_region)

        rss_scene = rss.Scene()

        rss_scene.egoVehicle = rss_vehicle_a
        rss_scene.object = rss_vehicle_b
        rss_scene.situationType = rss.SituationType.SameDirection

        road_segment = rss.RoadSegment()
        lane_segment = rss.LaneSegment()
        lane_segment.id = 0
        lane_segment.length.minimum = physics.Distance(self.road_length)
        lane_segment.length.maximum = physics.Distance(self.road_length)
        lane_segment.width.minimum = physics.Distance(self.road_width)
        lane_segment.width.maximum = physics.Distance(self.road_width)
        lane_segment.type = rss.LaneSegmentType.Normal
        lane_segment.drivingDirection = rss.LaneDrivingDirection.Positive
        road_segment.append(lane_segment)
        rss_scene.egoVehicleRoad.append(road_segment)
        rss_scene.objectRssDynamics.responseTime = physics.Duration(0.5)
        rss_scene.objectRssDynamics.alphaLat.accelMax = physics.Acceleration(
            1.)
        rss_scene.objectRssDynamics.alphaLat.brakeMin = physics.Acceleration(
            1.)
        rss_scene.objectRssDynamics.alphaLon.accelMax = physics.Acceleration(
            4.)
        rss_scene.objectRssDynamics.alphaLon.brakeMax = physics.Acceleration(
            8.)
        rss_scene.objectRssDynamics.alphaLon.brakeMinCorrect = physics.Acceleration(
            4.)
        rss_scene.objectRssDynamics.alphaLon.brakeMin = physics.Acceleration(
            4.)
        rss_scene.objectRssDynamics.lateralFluctuationMargin = physics.Distance(
            0.)

        self.world_model = rss.WorldModel()

        self.world_model.timeIndex = 1
        self.world_model.scenes.append(rss_scene)
        self.world_model.egoVehicleRssDynamics.responseTime = physics.Duration(
            0.2)
        self.world_model.egoVehicleRssDynamics.alphaLat.accelMax = physics.Acceleration(
            0.1)
        self.world_model.egoVehicleRssDynamics.alphaLat.brakeMin = physics.Acceleration(
            0.1)
        self.world_model.egoVehicleRssDynamics.alphaLon.accelMax = physics.Acceleration(
            0.1)
        self.world_model.egoVehicleRssDynamics.alphaLon.brakeMax = physics.Acceleration(
            8.)
        self.world_model.egoVehicleRssDynamics.alphaLon.brakeMin = physics.Acceleration(
            4.)
        self.world_model.egoVehicleRssDynamics.alphaLon.brakeMinCorrect = physics.Acceleration(
            4.)
        self.world_model.egoVehicleRssDynamics.lateralFluctuationMargin = physics.Distance(
            0.)