예제 #1
0
                            dynamic="no",
                            orientation="+",
                            zOffset=0.00,
                            country="US",
                            Type="R1",
                            subtype="1",
                            value=0.00)
    signals = pyodrx.Signals()
    signals.add_signal(signal1)
    roads.append(pyodrx.create_straight_road(i, signals=signals))
    # use this instead to change the number of lanes in the crossing
    # roads.append(pyodrx.generators.create_straight_road(i, length=100, junction=-1, n_lanes=2, lane_offset=3))
    angles.append(i * 2 * np.pi / incoming_roads)

# use this for a T-crossing instead
# angles = [0,np.pi/2, 3*np.pi/2]

print(roads)
junc = pyodrx.create_junction_roads(roads, angles, 8)
odr = pyodrx.OpenDrive('myroad')
junction = pyodrx.create_junction(junc, 1, roads)

odr.add_junction(junction)
for r in roads:
    odr.add_road(r)
for j in junc:
    odr.add_road(j)

odr.adjust_roads_and_lanes()
pyodrx.run_road(odr, os.path.join("..", "pyoscx", "esmini"))
예제 #2
0
                       id=4,
                       left_lanes=0,
                       right_lanes=1,
                       road_type=1))

# add some connections to non junction roads
roads[0].add_successor(pyodrx.ElementType.junction, 1)
roads[1].add_successor(pyodrx.ElementType.junction, 1)
roads[2].add_predecessor(pyodrx.ElementType.junction, 1)

# add connections to the first connecting road
roads[3].add_predecessor(pyodrx.ElementType.road, 0, pyodrx.ContactPoint.end)
roads[3].add_successor(pyodrx.ElementType.road, 2, pyodrx.ContactPoint.start)

# add connections to the second connecting road with an offset
roads[4].add_predecessor(pyodrx.ElementType.road, 1, pyodrx.ContactPoint.end)
roads[4].add_successor(pyodrx.ElementType.road,
                       2,
                       pyodrx.ContactPoint.start,
                       lane_offset=-2)

junction = pyodrx.create_junction(roads[3:], 1, roads[0:3])

# create the opendrive
odr = pyodrx.OpenDrive('myroad')
for r in roads:
    odr.add_road(r)
odr.adjust_roads_and_lanes()
odr.add_junction(junction)
pyodrx.run_road(odr, os.path.join('..', '..', 'esmini'))
예제 #3
0
lane5 = pyodrx.Lane(a=3)
lane5.add_roadmark(rm_solid)

lanesec3.add_right_lane(lane5)

# create the lane links
lanelinker = pyodrx.LaneLinker()
lanelinker.add_link(predlane=lane1, succlane=lane3)
lanelinker.add_link(predlane=lane2, succlane=lane4)
lanelinker.add_link(predlane=lane3, succlane=lane5)

# create the lanes with the correct links
lanes = pyodrx.Lanes()
lanes.add_lanesection(lanesec1, lanelinker)
lanes.add_lanesection(lanesec2, lanelinker)
lanes.add_lanesection(lanesec3, lanelinker)

# create the road
road = pyodrx.Road(1, planview, lanes)

# create the opendrive
odr = pyodrx.OpenDrive('myroad')
odr.add_road(road)

# adjust the roads and lanes
odr.adjust_roads_and_lanes()

# view the road
pyodrx.run_road(odr, '/home/mander76/local/scenario_creation/esmini')