function P = multilane_roads(P)

% Road Definition

% make a list of straight roads:
% a road is defined by its euclidean frame 
% (i.e. the x-axis of the frame is aligned with the road) 
% each road can have multiple lanes, each lane is defined by the 
% ey-offset of its center, its width, and direction.
% then a vehicle state is simply defined by the road id, lane id,
% x-coordinate in the road frame, and forward velocity

% road is oriented south->noth
P.roads(1).frame = se2_frame(0, -50, pi/2);
P.roads(1).s_end = 100; % assume road is from 0 to s_end
P.roads(1).lanes(1).ey = -6;
P.roads(1).lanes(1).width = 4;
P.roads(1).lanes(1).dir = 1;

P.roads(1).lanes(2).ey = -2;
P.roads(1).lanes(2).width = 4;
P.roads(1).lanes(2).dir = 1;

P.roads(1).lanes(3).ey = 2;
P.roads(1).lanes(3).width = 4;
P.roads(1).lanes(3).dir = 1;

P.roads(1).lanes(4).ey = 6;
P.roads(1).lanes(4).width = 4;
P.roads(1).lanes(4).dir = 1;

% intersection: s-coordinates start.s0 and final.sf, and road sign
P.roads(1).intersection.s0 = -30;
P.roads(1).intersection.sf = -20;
P.roads(1).intersection.sign = P.kYield;
P.roads(1).intersection.other_road_id = 2;

% road is oriented west->east
P.roads(2).frame = se2_frame(-50, -50, 0);
P.roads(2).s_end = 100;
P.roads(2).lanes(1).ey = -2;
P.roads(2).lanes(1).width = 4;
P.roads(2).lanes(1).dir = 1;

P.roads(2).lanes(2).ey = 2;
P.roads(2).lanes(2).width = 4;
P.roads(2).lanes(2).dir = -1;

% intersection start, end, and sign
P.roads(2).intersection.s0 = -10;
P.roads(2).intersection.sf = -20;
P.roads(2).intersection.sign = P.kNone;
P.roads(2).intersection.other_road_id = 1;