コード例 #1
0
 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()],
コード例 #2
0
"""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())
コード例 #3
0
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)
コード例 #4
0
                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))
コード例 #5
0
"""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))
コード例 #6
0
            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 -
コード例 #7
0
            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))
コード例 #9
0
    """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))
コード例 #10
0
                                                 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))
コード例 #11
0
)
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()