주요 콘텐츠

Cuboid To 3D Simulation

액터를 직육면체 좌표에서 3차원 시뮬레이션 좌표로 변환

  • Cuboid To 3D Simulation block

라이브러리:
Automated Driving Toolbox / Driving Scenario and Sensor Modeling

설명

Cuboid To 3D Simulation 블록은 세계 좌표의 직육면체 액터 자세를 Simulation 3D Vehicle with Ground Following 블록에서 사용되는 X, Y, 좌표로 변환합니다. 변환된 값을 사용하여, 주행 시나리오 디자이너 앱으로 생성한 액터의 3차원 시뮬레이션 환경 내에 차량 위치를 설정합니다. 장면의 지면 지형은 차량의 롤(x축 회전), 피치(y축 회전), 고도(z축 위치)를 결정합니다.

단일 액터 자세 또는 여러 액터 자세가 포함된 버스를 지정할 수 있습니다. 기본적으로, 이 블록은 버스에 있는 첫 번째 액터의 자세를 변환합니다. 자세를 변환할 액터를 지정하려면 해당 액터의 ActorID를 지정합니다.

직육면체 주행 시나리오와 3차원 시뮬레이션 주행 시나리오에서 좌표계는 동일하지만, 차량의 원점은 다릅니다. 직육면체 주행 시나리오에서 차량 원점은 뒤 차축 중심 아래의 지면에 있습니다. 이 블록은 이 원점을 차량의 기하 중심 아래에 있는 3차원 시뮬레이션 환경에서 사용되는 원점으로 변환합니다. 다음 표는 두 환경 간의 원점 차이를 보여줍니다. 직육면체 주행 시나리오는 Scenario Reader 블록을 사용하여 읽어와야 합니다.

직육면체 차량 원점3차원 시뮬레이션 차량 원점

Cuboid vehicle in blue with origin at the center of the rear axle

3D simulation vehicle in red with origin at the geometric center of the vehicle

예제

포트

입력

모두 확장

세계 좌표의 직육면체 액터 자세로, MATLAB 구조체가 포함된 Simulink 버스로 지정됩니다.

이 구조체 입력을 얻으려면 Scenario Reader 블록을 사용하여 시나리오에서 액터를 읽어옵니다. 기본적으로 Scenario Reader 블록은 액터를 에고 차량 좌표로 출력합니다. 이러한 자세를 에고 차량 좌표에서 세계 좌표로 변환하려면 Vehicle To World 블록을 사용합니다.

이 버스의 구조체에는 단일 액터 자세 또는 여러 액터 자세가 포함될 수 있습니다.

단일 자세 구조체

단일 액터 자세를 지정하려면 구조체에 다음 필드가 포함되어야 합니다.

필드설명
ActorID

시나리오 정의 액터 식별자로, 양의 정수로 지정됩니다.

R2024b:

FrontAxlePosition

차량의 앞 차축 위치로, [x y z] 형식의, 요소를 3개 가진 행 벡터로 지정됩니다. 단위는 미터입니다.

참고

하나 이상의 차량에 대한 앞 차축 궤적이 주행 시나리오에 포함되지 않은 경우 ActorPoses 구조체에는 이 필드가 포함되지 않습니다.

Position

액터의 위치로, [x y z] 형식의 실수 값 벡터로 지정됩니다. 단위는 미터입니다.

Velocity

x 방향, y 방향 z 방향의 액터 속도(v)로, [vx vy vz] 형식의 실수 값 벡터로 지정됩니다. 단위는 초당 미터입니다.

Roll

액터의 롤 각도로, 실수 값 스칼라로 지정됩니다. 단위는 도입니다.

Pitch

액터의 피치 각도로, 실수 값 스칼라로 지정됩니다. 단위는 도입니다.

Yaw

액터의 요 각도로, 실수 값 스칼라로 지정됩니다. 단위는 도입니다.

AngularVelocity

x 방향, y 방향, z 방향의 액터 각속도(ω)로, [ωx ωy ωz] 형식의 실수 값 벡터로 지정됩니다. 단위는 초당 도입니다.

여러 자세 구조체

여러 액터 자세를 지정하려면 구조체에 다음 필드가 포함되어야 합니다.

필드설명유형
NumActors액터 개수음이 아닌 정수
Time현재 시뮬레이션 시간실수 값 스칼라
Actors액터 자세액터 자세 구조체의 NumActors 길이 배열

Actors의 각 액터 자세 구조체에는 다음 필드가 있어야 합니다.

필드설명
ActorID

시나리오 정의 액터 식별자로, 양의 정수로 지정됩니다.

R2024b:

FrontAxlePosition

차량의 앞 차축 위치로, [x y z] 형식의, 요소를 3개 가진 행 벡터로 지정됩니다. 단위는 미터입니다.

참고

하나 이상의 차량에 대한 앞 차축 궤적이 주행 시나리오에 포함되지 않은 경우 ActorPoses 구조체에는 이 필드가 포함되지 않습니다.

Position

액터의 위치로, [x y z] 형식의 실수 값 벡터로 지정됩니다. 단위는 미터입니다.

Velocity

x 방향, y 방향 z 방향의 액터 속도(v)로, [vx vy vz] 형식의 실수 값 벡터로 지정됩니다. 단위는 초당 미터입니다.

Roll

액터의 롤 각도로, 실수 값 스칼라로 지정됩니다. 단위는 도입니다.

Pitch

액터의 피치 각도로, 실수 값 스칼라로 지정됩니다. 단위는 도입니다.

Yaw

액터의 요 각도로, 실수 값 스칼라로 지정됩니다. 단위는 도입니다.

AngularVelocity

x 방향, y 방향, z 방향의 액터 각속도(ω)로, [ωx ωy ωz] 형식의 실수 값 벡터로 지정됩니다. 단위는 초당 도입니다.

이 블록은 Actors 배열에서 1개의 자세만을 변환합니다. 변환할 자세를 지정하려면 액터 ID 지정을 선택한 다음, 변환에 사용할 ActorID 파라미터를 사용하여 액터의 ActorID를 지정합니다.

출력

모두 확장

3차원 시뮬레이션 좌표에서 액터의 종방향 위치로, 숫자형 스칼라로 반환됩니다. 단위는 미터입니다.

이 좌표계에서 X축의 양의 방향을 보면 양의 Y축은 왼쪽을 가리키고 Z축은 위쪽을 가리킵니다.

3차원 시뮬레이션 환경에서 차량의 X 위치를 지정하려면 이 포트를 Simulation 3D Vehicle with Ground Following 블록의 X 입력 포트에 연결합니다.

3차원 시뮬레이션 좌표에서 액터의 횡방향 위치로, 숫자형 스칼라로 반환됩니다. 단위는 미터입니다.

이 좌표계에서 X축의 양의 방향을 보면 양의 Y축은 왼쪽을 가리키고 Z축은 위쪽을 가리킵니다.

3차원 시뮬레이션 환경에서 차량의 Y 위치를 지정하려면 이 포트를 Simulation 3D Vehicle with Ground Following 블록의 Y 입력 포트에 연결합니다.

3차원 시뮬레이션 좌표에서 Z축을 중심으로 한 액터의 요 방향 각도로, 숫자형 스칼라로 반환됩니다. 단위는 도입니다.

이 좌표계에서 Z축의 양의 방향을 보면 요는 시계 방향으로 양의 값을 가집니다. 그러나 2차원 하향식 원근법으로 시뮬레이션을 보면 음의 Z축을 따라 장면을 보기 때문에 요는 반시계 방향으로 양의 값을 가집니다.

3차원 시뮬레이션 환경에서 차량의 요 방향 각도를 지정하려면 이 포트를 Simulation 3D Vehicle with Ground Following 블록의 Yaw 입력 포트에 연결합니다.

파라미터

모두 확장

이 파라미터를 선택하면 변환에 사용할 ActorID 파라미터가 활성화되고, 3차원 시뮬레이션 좌표로 변환할 직육면체 액터 자세의 ActorID를 지정할 수 있습니다.

이 파라미터의 선택을 해제하면 블록은 입력 Actor 버스에서 첫 번째 액터 자세를 변환합니다.

3차원 시뮬레이션 좌표로 변환할 직육면체 액터의 ActorID 값으로, 양의 정수로 지정됩니다. 이 파라미터는 입력 액터 버스의 유효한 ActorID여야 합니다.

종속성

이 파라미터를 활성화하려면 액터 ID 지정을 선택합니다.

  • 인터프리터형 실행 — MATLAB 인터프리터를 사용하여 모델을 시뮬레이션합니다. 이 옵션은 시작 시간을 줄입니다. 인터프리터형 실행 모드에서는 블록의 소스 코드를 디버그할 수 있습니다.

  • 코드 생성 — 생성된 C/C++ 코드를 사용하여 모델을 시뮬레이션합니다. 시뮬레이션을 처음 실행하면 Simulink는 블록에 대한 C/C++ 코드를 생성합니다. 이 C 코드는 모델이 바꾸지 않는 한 후속 시뮬레이션에 재사용됩니다. 이 옵션은 시작 시간이 조금 더 걸립니다.

확장 기능

모두 확장

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2020a에 개발됨