gRPC Procedures
본 페이지에서는 사용자가 호출할 수 있는 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는 아래와 같다.
service_name : ““
msg : ““
ServiceResponse
Ego vehicle 상태 정보와 Multi-Ego vehicle의 상태 정보 수신을 service_name field를 통해 구분할 수 있다.
Ego vehicle의 상태 정보
service_name : “/morai_msgs/EgoState“
msg : EgoState
Multi-Ego vehicle의 상태 정보
service_name : “/morai_msgs/MultiEgoState“
msg : list of MultiEgoState
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는 아래와 같다.
service_name : ““
msg : ““
ServiceResponse
Ego vehicle 상태 정보와 Multi-Ego vehicle의 상태 정보 수신을 service_name field를 통해 구분할 수 있다.
Ego vehicle의 상태 정보
service_name : “/morai_msgs/EgoState“
msg : EgoState
Multi-Ego vehicle의 상태 정보
service_name : “/morai_msgs/MultiEgoState“
msg : list of MultiEgoState
Built-in Scenario
LoadSimScenario(Scenario) returns (Empty)
시나리오(Morai 자체 포맷) 로딩
Open Scenario
Start(StartRequest) returns (ServiceResponse)
OpenSCENARIO 서비스 Start Command
Stop(StopRequest) returns (ServiceResponse)
OpenSCENARIO 서비스 Stop Command
Link
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
Simulator Pause
Resume(Empty) returns (Result)
Simulator Pause
Simulator 맵 로딩