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"))
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'))
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')