RightCircularArc( radius=3 * random.random() + 0.5, angle=0.1 + math.pi / 2 * random.random(), ), Intersection( size=2, turn=random.choices( [ Intersection.RIGHT, Intersection.LEFT, Intersection.STRAIGHT ], weights=[1, 1, 2], k=1, )[0], angle=(70 + 40 * random.random()) * math.pi / 180, rule=random.choices( [ Intersection.EQUAL, Intersection.PRIORITY_STOP, Intersection.PRIORITY_YIELD, Intersection.STOP, Intersection.YIELD, ], weights=[1, 1, 1, 1, 1], k=1, )[0], ), BlockedArea( obstacles=random.choice([[get_random_obstacle()], []])), ZebraCrossing(), StraightRoad(obstacles=random.choice([[get_random_obstacle()],
"""A simple road for the onboarding task.""" from simulation.utils.road.road import Road # Definition of the road class from simulation.utils.road.sections import StraightRoad from simulation.utils.road.sections import Intersection road = Road() road.append(StraightRoad()) road.append(StraightRoad(length=2)) road.append(Intersection()) road.append(StraightRoad())
import math import os from simulation.utils.road.road import Road from simulation.utils.road.sections import Intersection, StraightRoad speed_limit = int(os.environ.get("SPEED_LIMIT", 30)) road = Road() road.append(StraightRoad(length=4)) road.append(Intersection(turn=Intersection.RIGHT, angle=math.radians(90))) s = StraightRoad(length=4) s.add_speed_limit(0, speed=speed_limit) road.append(s)
depth=0.32, spots=[ ParkingSpot(width=0.2), ParkingSpot( width=0.11, kind=ParkingSpot.OCCUPIED, obstacle=ParkingObstacle() ), ParkingSpot(width=0.71), ParkingSpot( width=0.11, kind=ParkingSpot.OCCUPIED, obstacle=ParkingObstacle() ), ParkingSpot(width=0.56), ParkingSpot(width=0.73, kind=ParkingSpot.BLOCKED), ParkingSpot(width=1.14), ], ) ], ) ) road.append(LeftCircularArc(radius=1.41, angle=math.radians(140))) road.append(StraightRoad(length=1.53)) road.append(Intersection(angle=math.radians(70), size=1.8)) road.append(RightCircularArc(radius=1.285, angle=math.radians(290))) road.append(Intersection(angle=math.radians(110), size=1.8)) road.append(RightCircularArc(radius=1.81, angle=math.radians(50))) road.append(LeftCircularArc(radius=2.24, angle=math.radians(20))) road.append(StraightRoad(length=3.94)) road.append(LeftCircularArc(radius=1.26, angle=math.radians(90))) road.append(StraightRoad(length=1.06)) road.append(LeftCircularArc(radius=1.28, angle=math.radians(90))) road.append(StraightRoad(length=0.05))
"""A simple road for the onboarding task.""" import math import os from simulation.utils.road.road import Road # Definition of the road class from simulation.utils.road.sections import Intersection, StraightRoad road = Road() road.append(StraightRoad(length=4)) # Read turn / angle / rule from environment variables turn = int(os.environ.get("INTERSECTION_TURN", Intersection.STRAIGHT)) angle = math.radians(float(os.environ.get("INTERSECTION_ANGLE", 90))) rule = int(os.environ.get("INTERSECTION_RULE", Intersection.EQUAL)) road.append(Intersection(turn=turn, angle=angle, rule=rule)) road.append(StraightRoad(length=4))
depth=0.4, spots=[ ParkingSpot(kind=ParkingSpot.FREE, width=0.5), ParkingSpot(kind=ParkingSpot.OCCUPIED, width=0.7, obstacle=ParkingObstacle()), ParkingSpot(kind=ParkingSpot.BLOCKED), ], ) ], ) # - Ending sphinx parking_area - # - Beginning sphinx intersection - intersection = Intersection(size=2, turn=Intersection.RIGHT, angle=math.radians(110)) # - Ending sphinx intersection - # - Beginning sphinx zebra_crossing - zebra_crossing = ZebraCrossing(length=0.5) # - Ending sphinx zebra_crossing - # - Beginning sphinx left_arc - left_arc = LeftCircularArc(radius=2, angle=math.radians(90)) # - Ending sphinx left_arc - # - Beginning sphinx blocked_area - blocked_area = BlockedArea(length=1, width=0.2) # - Ending sphinx blocked_area -
depth=0.5, spots=[ ParkingSpot(kind=ParkingSpot.BLOCKED), ParkingSpot(), ParkingSpot(kind=ParkingSpot.OCCUPIED, obstacle=ParkingObstacle()), ], ), ], right_lots=[ ParkingLot( start=1.5, spots=[ ParkingSpot(width=0.7, kind=ParkingSpot.BLOCKED), ParkingSpot(width=0.7), ], ) ], ) road.append(parking_area) road.append(LeftCircularArc(radius=2, angle=math.radians(90))) road.append(LeftCircularArc(radius=1.5, angle=math.radians(90))) road.append(RightCircularArc(radius=1.5, angle=math.radians(90))) road.append(LeftCircularArc(radius=2.5, angle=math.radians(60))) road.append(StraightRoad(length=0.8)) road.append(LeftCircularArc(radius=2.5, angle=math.radians(120))) road.append(Intersection(size=3.2, angle=math.radians(110))) road.append(StraightRoad(length=1.66)) road.append(LeftCircularArc(radius=1, angle=math.radians(90))) road.close_loop()
import os from simulation.utils.road.road import Road # Definition of the road class from simulation.utils.road.sections import Intersection, StraightRoad def direction_str_to_int(env: str) -> int: """Convert a turn env variable to an Intersection attribute. This allows to specify "straight,left,right" as turn options through environment variables. """ turn = os.environ.get(env, "straight") return getattr(Intersection, turn.upper()) # Read environment variables: first_turn = direction_str_to_int("FIRST_TURN") second_turn = direction_str_to_int("SECOND_TURN") """Definition of the actual road. Just a straight beginning and then two intersections. """ road = Road() road.append(StraightRoad(length=2)) road.append(Intersection(turn=first_turn, rule=Intersection.STOP)) road.append(StraightRoad(length=1)) road.append(Intersection(turn=second_turn, rule=Intersection.YIELD)) road.append(StraightRoad(length=2))
"""Convert a rule env variable to an Intersection attribute. This allows to specify "equal, yield, stop, priority_yield, priority_stop" as rule options through environment variables. """ rule = os.environ.get(env, "equal") return getattr(Intersection, rule.upper()) # Read environment variables: first_turn = direction_str_to_int("FIRST_TURN") second_turn = direction_str_to_int("SECOND_TURN") first_rule = rule_str_to_int("FIRST_RULE") second_rule = rule_str_to_int("SECOND_RULE") first_angle = math.radians(float(os.environ.get("FIRST_ANGLE", 90))) second_angle = math.radians(float(os.environ.get("SECOND_ANGLE", 90))) distance = float(os.environ.get("INTERSECTION_DISTANCE", 1)) """Definition of the actual road. Just a straight beginning and then two intersections with a short straight in between. """ road = Road() road.append(StraightRoad(length=2)) road.append(Intersection(turn=first_turn, angle=first_angle, rule=first_rule)) road.append(StraightRoad(length=distance)) road.append(Intersection(turn=second_turn, angle=second_angle, rule=second_rule)) road.append(StraightRoad(length=2))
y=-0.2, width=0.3, depth=0.25), ), ParkingSpot(kind=ParkingSpot.BLOCKED), ], ) ], )) road.append( LeftCircularArc(radius=2, angle=math.pi / 2, right_line_marking=RoadSection.MISSING_LINE_MARKING)) road.append(StraightRoad(length=0.45)) road.append(LeftCircularArc(radius=2, angle=math.pi / 2)) road.append(Intersection(size=3, turn=Intersection.RIGHT)) road.append( LeftCircularArc(radius=1.5, angle=math.pi, obstacles=[StaticObstacle()])) road.append(Intersection(size=3, turn=Intersection.RIGHT)) left_arc = LeftCircularArc( radius=1.5, angle=math.pi / 2, left_line_marking=RoadSection.MISSING_LINE_MARKING, ) left_arc.add_speed_limit(arc_length=0, speed=30) road.append(left_arc) road.append(ZebraCrossing()) road.append(StraightRoad(length=1))
) road.append(custom_part_one) road.append(StraightRoad(length=0.1)) road.append(RightCircularArc(radius=3, angle=math.radians(17))) road.append(StraightRoad(length=0.08)) road.append( CubicBezier( p1=Point(0.1, 0), p2=Point(0.9, -0.05), p3=Point(1.0, -0.05), left_line_marking=StraightRoad.MISSING_LINE_MARKING, right_line_marking=StraightRoad.MISSING_LINE_MARKING, middle_line_marking=StraightRoad.MISSING_LINE_MARKING, ) ) road.append( CustomSection.from_yaml( os.path.join(os.path.dirname(__file__), "./cc20_scans/training_loop.yaml") ) ) road.append(StraightRoad(length=0.85)) road.append( Intersection(size=1.1, angle=math.radians(82), exit_direction=Intersection.STRAIGHT) ) road.append( CustomSection.from_yaml( os.path.join(os.path.dirname(__file__), "./cc20_scans/training_part2.yaml") ) ) road.close_loop()