본 페이지에서는 사용자가 호출할 수 있는 Remote Procedure에 대해서 설명한다.


Procedure 정의

Ego

SetEgoCtrlCmd(EgoCtrlCmd) returns (ServiceResponse)

Ego 차량 제어

SetEgo(SetEgoParam) returns (Result)

Ego 차량 spawn 후 초기 설정

SendEgoCruiseCtrl(EgoCruiseCtrl) returns (Empty)

Ego 차량 Cruise Mode 설정

Connect (stream ServiceRequest) returns (stream ServiceResponse)

MORAI SIM에 Connect 및 MORAI SIM으로부터 차량 상태 정보 수신 활성화

Return message로 Ego, Multi-Ego vehicle의 상태 정보를 수신할 수 있다.

ServiceRequest

Connect(…) procedure 호출 시 ServiceRequest의 각 field는 아래와 같다.

ServiceResponse

Ego vehicle 상태 정보와 Multi-Ego vehicle의 상태 정보 수신을 service_name field를 통해 구분할 수 있다.


MultiEgo

SendMultiEgoCtrlCmd(MultiEgoCtrlCmdList) returns (ServiceResponse)

Multi-Ego 차량 control

SendMultiEgoEventCmd(MultiEgoEventCmdRequestList) returns (MultiEgoEventCmdResponseList)

Multi-Ego 차량 Event control

SendCreateMultiEgoVehicle(CreateMultiEgoVehicleRequestList) returns (ActorResponseList)

NPC vehicle 생성 요청 시점에 simulator에 동일한 unique_id를 가진 NPC vehicle 존재하는 경우,
임의로 unique_id 할당하여 NPC vehicle 생성함

SendDeleteMultiEgoVehicle(DeleteMultiEgoVehicleRequest) returns (ServiceResponse)

모든 Multi-Ego 차량 destroy

SendDeleteTargetMultiEgoVehicle(TargetUniqueId) returns (Empty)

지정한 unique_id에 해당하는 Multi-Ego vehicle만 destroy

Connect (stream ServiceRequest) returns (stream ServiceResponse)

MORAI SIM에 Connect 및 MORAI SIM으로부터 차량 상태 정보 수신 활성화

Return message로 Ego, Multi-Ego vehicle의 상태 정보를 수신할 수 있다.

ServiceRequest

Connect(…) procedure 호출 시 ServiceRequest의 각 field는 아래와 같다.

ServiceResponse

Ego vehicle 상태 정보와 Multi-Ego vehicle의 상태 정보 수신을 service_name field를 통해 구분할 수 있다.


Built-in Scenario

LoadSimScenario(Scenario) returns (Empty)

시나리오(Morai 자체 포맷) 로딩


Open Scenario

Start(StartRequest) returns (ServiceResponse)

OpenSCENARIO 서비스 Start Command

Stop(StopRequest) returns (ServiceResponse)

OpenSCENARIO 서비스 Stop Command


GetLeftLink(LinkInfo) returns (GetLinkResponse)

특정 Link의 좌측 link query

GetRightLink(LinkInfo) returns (GetLinkResponse)

특정 Link의 우측 각 link query

GetToLinks(LinkInfo) returns (GetLinkResponseList)

특정 Link의 전방 link query

GetFromLinks(LinkInfo) returns (GetLinkResponseList)

특정 Link의 후방 각 link query

GetVehiclesOnLink(LinkInfo) returns (GetVehiclesOnLinkResponseList)

특정 link에 vehicle 존재 시 unique_id 리턴


SpawnPoint

CreateSpawnPoint(CreateSpawnPointList) returns (ActorResponseList)

Spawn Point 생성

EnableSpawnPoint(EnableSpawnPointList) returns (ActorResponseList)

Spawn Point Enable/Disable

SetSpawnPoint(SetSpawnPointList) returns (ActorResponseList)

Set Spawn Point

SetPedestrianSpawnPoint(SetPedestrianSpawnPointList) returns (ActorResponseList)

Set Pedestrian Spawn Point


Traffic

GetTrafficLightInfoByLink(LinkInfo) returns (TLInfo)

Link ID 통해 해당 위치의 Traffic Light id, state 획득

GetTrafficLightInfoByUid(TargetUniqueId) returns (TLInfo)

Traffic Light ID 통해 해당 위치의 Traffic Light id, state 획득

GetIntscnTLInfo(TargetUniqueId) returns (TLInfoList)

IntscnID 통해 해당 위치의 Traffic Light id, state 획득

SetTrafficLightState(TLStateParamList) returns (ActorResponseList)

신호등의 state(light color) 변경


Intersection

SetIntersectionState(IntscnStateParamList) returns (ActorResponseList)

교차로 state 변경

SetIntersectionSchedule(IntscnScheduleParamList) returns (ActorResponseList)

교차로 schedule 변경


FaultStatus

SetFaultStatusOnCtrl(FaultInjectionCtrlList) returns (ActorResponseList)

차량 [Accel, Brake, Steering] 에 Fault 발생

SetFaultStatusOnTire(FaultInjectionTireList) returns (ActorResponseList)

차량 Tire 에 Fault 발생

SetFaultStatusOnSensor(FaultInjectionSensorList) returns (ActorResponseList)

차량에 부착된 Sensor에 Fault 발생


Friction

CreateMapObject(CreateMapObjectList) returns (ActorResponseList)

마찰력 제어 가능 Object(ex. 물 웅덩이) 생성

SetFrictionOnArea(FrictionControlAreaList) returns (ActorResponseList)

마찰력 제어 가능 Object 설정


Sensor

AddSensor(SensorSettingList) returns (SensorResponseList)

차량에 센서 부착

RemoveSensor(RemoveSensorList) returns (SensorResponseList)

차량에 부착되어 있는 센서 제거

SetGroundTruthSensor(SetGroundTruthSensorList) returns(Result)

GT(Ground Truth) sensor 세팅

GetGroundTruthData(TargetSensorList) returns(GroundTruthList)

Get GT(Ground Truth) sensor Data


Pedestrian

CreatePedestrian(PedestrianSpawnList) returns (ActorResponseList)

simulator scene에 pedestrian 생성

SendStartPedestrian(PedestrianActionList) returns (ActorResponseList)

start pedestrian animation


Obstacle / Object

CreateObstacle(ObstacleSpawnList) returns (ActorResponseList)

obstacle spawn

DeleteSpawnObstacles(CategoryObstacles) returns (Empty)

obstacle 제거

ObjectPause(ObjectPauseList) returns (Result)

unique_id 지정으로 특정 object만 pause / resume


Driving Path

SendVehicleRoutes(RouteList) returns (VehicleRouteResultList)

차량의 주행 경로를 mgeo link id 기반 지정

SendVehicleDestinations(DestinationList) returns (VehicleRouteResultList)

차량의 주행 경로를 좌표 기반 지정

SendVehiclePathOffset(PathOffsetList) returns (Empty)

차량의 차선 중앙 유지 정도 설정

GetVehicleAuxState(TargetUniqueIdList) returns (VehicleAuxStateInfoList)

차량 Aux state 획득


Simulator

Pause(Empty) returns (Result)

Simulator Pause

Resume(Empty) returns (Result)

Simulator Pause

LoadMap(Map) returns (Result)

Simulator 맵 로딩