주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

LaneWidthNode

RoadRunner 장면의 차선 폭 프로필의 노드

R2025a 이후

    설명

    LaneWidthNode 객체는 차선 폭 프로필의 노드를 나타냅니다. 차선 폭 프로필은 인접한 노드 쌍 사이의 스팬으로 연결된 노드의 순서 있는 컬렉션으로 표현되는 일련의 파라미터 스팬으로 구성됩니다. 시퀀스의 각 노드는 도로를 따라 특정 위치를 나타내며 해당 지점의 차선 너비와 너비 경사도에 대한 정보를 포함합니다. RoadRunner는 도로 기준선의 시작점으로부터의 거리로 각 노드의 위치를 나타냅니다.

    생성

    RoadRunner 장면의 차선 너비 프로필에서 LaneWidthNode 객체를 검색하려면 해당 LaneWidthProfile 객체의 Nodes 속성을 추출합니다. 예를 들어, widthNodes = LaneWidthProfile1.Nodes는 차선 너비 프로필 LaneWidthProfile1의 모든 노드를 추출합니다.

    속성

    모두 확장

    노드 시작 부분의 스팬 너비(미터)로, [0, 200] 범위의 숫자형 스칼라로 지정됩니다.

    노드 끝부분의 스팬 너비(미터)로, [0, 200] 범위의 숫자형 스칼라로 지정됩니다.

    노드 시작 부분의 경사도로, 숫자형 스칼라로 지정됩니다. 음수 값은 도로의 기준 차선에서 바깥쪽으로 기울어집니다.

    노드 끝부분의 경사도로, 숫자형 스칼라로 지정됩니다. 음수 값은 도로의 기준 차선 안쪽으로 기울어집니다.

    폭 프로필을 나타내는 스팬 시퀀스를 따라갈 때의 노드의 거리(미터)로, 숫자형 스칼라로 지정됩니다. 거리는 도로의 시작점을 기준으로 합니다. 기본적으로 차선 폭 프로필은 두 개의 노드가 있는 하나의 스팬으로 구성되며, 하나는 도로의 시작점에 있고 다른 하나는 도로의 끝에 있습니다. 시작 노드의 경우 기본 거리는 0이고, 끝 노드의 경우 기본 거리는 도로의 길이와 같습니다. insertNode 함수를 사용하면 시작 노드와 끝 노드 사이의 너비 프로필을 따라 추가 노드를 추가할 수 있습니다. 이러한 중간 노드의 경우 (0, N) 범위 내의 거리 값을 지정할 수 있습니다. 여기서 N은 도로의 총 길이입니다.

    읽기 전용 속성입니다.

    차선 폭 프로필의 노드 시작 부분에 연결된 스팬으로, LaneWidthSpan 객체로 표현됩니다.

    읽기 전용 속성입니다.

    차선 폭 프로필의 노드 끝에 연결된 스팬으로, LaneWidthSpan 객체로 표현됩니다.

    예제

    모두 축소

    여러 개의 주행 차선과 단일 병합 차선이 포함된 수평 도로가 있는 RoadRunner 장면을 만듭니다. 차선 병합은 도로가 좁아지거나 차선이 폐쇄되는 경우와 같이 차량이 여러 차선에서 단일 차선으로 안전하게 합류할 수 있도록 해줍니다.

    기존 프로젝트의 경로를 지정하여 roadrunner 객체를 만듭니다. 예를 들어, 이 코드는 "C:\RR\MyProject"에 있는 Windows® 컴퓨터의 프로젝트 경로를 보여줍니다. 이 코드는 RoadRunner가 기본 위치에 설치되어 있다고 가정하고 장면과 프로젝트를 열고, 닫고, 저장하는 등의 기본 작업을 수행하기 위한 함수를 제공하는 객체 rrApp을 반환합니다.

    rrApp = roadrunner(ProjectFolder="C:\RR\MyProject");

    참고: 처음으로 MATLAB®에서 RoadRunner를 열거나 마지막으로 MATLAB에서 연 이후 RoadRunner 설치 위치를 변경한 경우 roadrunnerSetup 함수를 사용하여 RoadRunner를 열 때 사용할 새 기본 프로젝트 및 설치 폴더를 지정할 수 있습니다. 해당 드롭다운에서 Across MATLAB sessions 옵션을 선택하면 MATLAB 세션 사이에 이러한 폴더를 저장할 수 있습니다.

    newScene 함수를 사용하여 현재 프로젝트에 새로운 RoadRunner 장면을 만들고, roadrunner 객체 rrApp을 지정합니다.

    newScene(rrApp);

    현재 RoadRunner 인스턴스 rrApp에 대한 객체를 참조하는 RoadRunner 저작 API rrApi에 대한 객체를 생성합니다. rrApi 객체를 사용하면 MATLAB을 사용하여 도로 및 차선 컴포넌트를 추가하고 수정하는 등의 방식으로 장면을 프로그래밍 방식으로 작성할 수 있습니다.

    rrApi = roadrunnerAPI(rrApp);

    저작 API 객체 rrApiScene 속성에서 장면의 객체를 추출합니다. 추출된 Scene 객체를 사용하면 도로 및 차선과 같은 장면 요소를 추가할 장면을 지정할 수 있습니다.

    scn = rrApi.Scene;

    저작 API 객체 rrApi의 프로젝트 속성에서 RoadRunner 프로젝트의 Project 객체를 추출합니다. 추출된 Project 객체를 사용하면 에셋 객체를 검색할 현재 RoadRunner 세션의 프로젝트 폴더를 지정할 수 있습니다. 에셋 객체를 사용하여 장면의 차선에 표시를 할당할 수 있습니다.

    prj = rrApi.Project;

    addLineArcRoad 함수를 사용하여 장면에 길이 200m의 수평 도로를 추가합니다. RoadRunner 로컬 좌표계의 X축과 Y축을 따라 도로의 제어점 위치를 지정하여 도로의 위치를 지정합니다. 이러한 제어점은 도로의 시작과 끝 위치를 정의합니다. 제어점의 위치를 수정하여 장면 원점을 기준으로 도로의 길이와 방향을 조정할 수 있습니다. 직선-호 곡선의 시작점과 끝점 사이에 제어점을 추가하여 도로 곡선의 곡률과 반경을 조정할 수도 있습니다.

    controlPoints = [-100 0; 100 0];
    rrHorizontalRoad = addLineArcRoad(scn,controlPoints);

    도로 객체 rrHorizontalRoadReferenceLane 속성에서 도로의 참조 차선을 추출합니다. 참조 차선은 RoadRunner 장면에서 도로의 중앙 차선 또는 참조선을 정의합니다. 이 차선은 너비가 없으며 다른 모든 차선을 배치하는 기준이 되며, RoadRunner는 기준선에서 바깥쪽으로 배치합니다.

    refLane = rrHorizontalRoad.ReferenceLane;

    getAsset (RoadRunner Scenario) 함수를 사용하여 프로젝트 prj에서 DashedSingleWhite.rrlms 에셋을 나타내는 차선 표시 스타일 객체를 추출합니다. 기준 차선의 표시 프로필을 정의하려면 먼저 기준 차선 객체 refLane의 차선 표시 프로필 객체 refLaneMarkingProfile을 추출합니다. 그런 다음, 차선 표시 프로필 객체 refLaneMarkingProfileSpans 속성에서 차선 표시를 배치할 스팬을 나타내는 차선 표시 스팬 객체 refLaneSpan을 추출합니다. 마지막으로 추출된 스팬 객체의 LaneMarkingStyle 속성을 설정하여 흰색 점선 표시 스타일로 참조 차선을 표시합니다.

    dashedWhiteMarkingStyle = getAsset(prj,"<PROJECT>/Assets/Markings/DashedSingleWhite.rrlms","LaneMarkingStyle");
    refLaneMarkingProfile = refLane.LaneMarkingProfile;
    refLaneSpan = refLaneMarkingProfile.Spans;
    refLaneSpan.LaneMarkingStyle = dashedWhiteMarkingStyle;

    addLaneToLeft 함수를 사용하여 수평 도로의 왼쪽에 전진 방향으로 주행 차선을 추가합니다. 추가된 차선의 LaneTypeTravelDirection 속성을 사용하여 차선의 유형과 이동 방향을 지정합니다.

    horizontalLane1 = addLaneToLeft(refLane);
    horizontalLane1.LaneType = "Driving";
    horizontalLane1.TravelDirection = "Forward";

    insertNode 함수를 사용하여 90m와 110m 거리에 두 개의 노드를 삽입하여 차선 표시 프로필을 4개의 스팬으로 분할합니다.

    insertNode(horizontalLane1.LaneMarkingProfile,90);
    insertNode(horizontalLane1.LaneMarkingProfile,110);

    horizontalLane1 객체의 LaneMarkingProfile 속성에서 차선의 차선 표시 프로필을 나타내는 객체를 추출합니다. 차선 표시 프로필은 차선의 바깥쪽 경계에 있는 표시를 나타냅니다.

    horLane1MarkingProfile = horizontalLane1.LaneMarkingProfile;

    이제 차선 표시 프로필 객체 horLane1MarkingProfileSpans 속성에서 원하는 차선 표시를 배치할 스팬을 나타내는 스팬 객체 horLane1Span을 추출합니다. 차선 표시 프로필의 첫 번째 스팬을 흰색 점선 표시 유형으로 표시합니다.

    horLane1Span = horLane1MarkingProfile.Spans(1);
    horLane1Span.LaneMarkingStyle = dashedWhiteMarkingStyle;

    흰색 실선 표시 스타일을 나타내는 차선 표시 스타일 객체 solidWhiteMarkingStyle을 추출하고 이를 사용하여 차선 표시 프로필의 세 번째 스팬을 표시합니다.

    solidWhiteMarkingStyle = getAsset(prj,"<PROJECT>/Assets/Markings/solidsingleWhite.rrlms","LaneMarkingStyle");
    horizontalLane1Span = horizontalLane1.LaneMarkingProfile.Spans(3);
    horizontalLane1Span.LaneMarkingStyle = solidWhiteMarkingStyle;

    수평 도로의 오른쪽에 주행 방향을 정하고 주행 차선을 추가하고, 단색 흰색 표시 스타일로 경계를 표시합니다.

    horizontalLane2 = addLaneToRight(refLane);
    horizontalLane2.LaneType = "Driving";
    horizontalLane2.TravelDirection = "Forward";
    horLane2MarkingProfile = horizontalLane2.LaneMarkingProfile;
    horLane2Span = horLane2MarkingProfile.Spans;
    horLane2Span.LaneMarkingStyle = solidWhiteMarkingStyle;

    첫 번째 수평 차선의 왼쪽에 병합 차선을 추가하고, 여기에 흰색 표시 스타일을 추가합니다.

    shortLane = addLaneToLeft(horizontalLane1);
    shortLane.LaneType = "Driving";
    shortLane.TravelDirection = "Forward";
    shortLaneSpan = shortLane.LaneMarkingProfile.Spans(1);
    shortLaneSpan.LaneMarkingStyle = solidWhiteMarkingStyle;

    차선의 WidthProfile 속성을 지정하여 병합 차선의 너비 프로필을 구성합니다. 도로 시작 지점에서 110m 떨어진 지점에서 합류 차선의 너비는 0으로 줄어듭니다. 병합 차선 경계에 폭 프로필을 생성하려면 도로 시작점에서 90m 떨어진 곳에 노드를 삽입하고, StartSlopeEndSlope 속성을 각각 사용하여 노드의 시작 및 끝 경사를 설정합니다. 폭 프로필의 최종 노드의 시작과 끝에서 경사를 지정하고 폭을 0으로 지정하면 폭 프로필은 점차 병합 차선의 폭을 0으로 줄입니다.

    shortLaneWidthProfile = shortLane.WidthProfile;
    widthChangingNode = insertNode(shortLaneWidthProfile,90);
    widthChangingNode.StartSlope = 0;
    widthChangingNode.EndSlope = 0.10;
    endNode = shortLaneWidthProfile.Nodes(end);
    endNode.Distance = 110;
    endNode.StartWidth = 0;
    endNode.EndWidth = 0;
    endNode.StartSlope = 0.10;
    endNode.EndSlope = 0.0;

    A three-lane road in a RoadRunner scene, in which the leftmost lane merges into the center lane, converging into a two-lane road.

    버전 내역

    R2025a에 개발됨