Skip to main content
Skip table of contents

ROS1 Protocol

Hi, we’re currently fixing missing pieces of this documentation. We are aware of the issues in this page and are working to fix them. Please leave an email with our team and we will notify you when the fixes go live.

This section explains the message types, message topics, and message structures exchanged over ROS 1. Note that any mention of ROS in this page refers to ROS 1.

Intro

Before we start

ROS communicates between different nodes using rostopics that are structured according to standard ROS messages. These standard messages can be extended with custom messages, but these extensions must be compiled and built separately.

MORAI SIM also requires a large extended custom message set – this can be downloaded from a public GitHub repository here: ROS Message File Github

How ROS works

ROS communications are conducted by either topics, services, or actions. Topics are one-way, continuous data streams, suitable for data that needs to be constantly updated, such as sensor states, user input streams, and general telemetry. Topics are composed of message files that have the .msg extension.

Services are an event-triggered one-to-one exchange where a request is processed and a corresponding response is returned to the requester. Typically useful for queries and one-time requests. Services are defined by service messages and have the .srv extension.

The protocols listed in this page will follow either a single .msg format or the request/response structure of a .srv file. Look for each message in their respective msg or srv folders in /morai_msgs.

Ego Network

The Ego Network is a collection of signals and data that relate directly to the egovehicle within the simulation. All network settings categorized under the Ego Network are located in the Ego Network tab of the Network Settings window.

Ego Network is further divided into Cmd Control messages and Publisher/Subscriber/Service type messages.

Cmd Control Tab

Publisher, Subscriber, Service Tab

Ego Ctrl Cmd

Ego Ctrl Cmd (also MoraiCmdController) messages (shorthand for ego control commands) are used to send control command signals to the egovehicle. These messages typically contain command inputs for steering, moving, and stopping the ego.

  • Message Type: morai_msgs/CtrlCmd

  • Default Topic: /ctrl_cmd

No

Name

Type

Unit

Remarks

1

longlCmdType

int32

 

Index to determine the control method.
1: Throttle control, 2: Velocity control, 3: Acceleration control

2

accel

float64

-

Refers the vehicle’s accelerator, and the range value is 0:1.

3

brake

float64

-

Refers the brake of the vehicle, and the range value is 0:1.

4

steer angle

float64

rad

Refers to the front steer angle of the vehicle, measured in radians.

5

velocity

float64

km/h

(Only active if CmdType == 2)

6

acceleration

float64

m/s2

(Only active if CmdType == 3)

EXTRA Alternatives to EgoCtrlCmd

Some alternative message types are offered for non-automotive users (e.g. robotics, defense). If not otherwise instructed by your account manager or solutions partner, these messages will not be used. The following messages are typically used mutually exclusively.

WeBOTCmdController

For users of the WeBOT series of robots

  • Message Type: geometry_msgs/Twist

  • Default Topic: /commands/vel

Ground Vehicle Direct Ctrl Cmd

For direct control of skid-steer enabled vehicles

  • Message Type: morai_msgs/GVDirectCmd

  • Default Topic: /gv_direct_cmd

No

Name

Type

Len [byte]

Description

1

steer_type

uint32_t

4

Refer to the Table 1.

2

throttle

float

4

Range is -1:1

3

skid_steering

float

4

Range is -1:1

4

steer_angle

float[10]

40

Range is -1:1

Ground Vehicle State Ctrl Cmd

For state control of skid-steer enabled vehicles

  • Message Type: morai_msgs/GVStateCmd

  • Default Topic: /gv_state_cmd

No

Name

Type

Len [byte]

Description

1

TargetLongitudinalVelocity

float

4

m/s

2

TargetAngularVelocity

float

4

rad/s

Ghost Ctrl Cmd

Ghost Mode refers to a feature in MORAI SIM where instead of providing live command inputs to the ego, you can read a recorded data file (maybe in a rosbag file) and use the data log to control the ego vehicle. This is similar to re-simulation features of other simulation products.

Activate GhostCtrlCmd by using the drop-down menu to switch from the default MoraiCmdController

  • Message Type: morai_msgs/GhostMessage

  • Default Topic: /ghost_ctrl_cmd

No

Name

Type

Unit

Remarks

1

position

Vector3

m

Specify the egovehicle’s position (X, Y, Z).

2

rotation

Vector3

deg

Specify the egovehicle’s rotation (Roll, Pitch, Yaw).

3

velocity

float64

km/h

Speed of the egovehicle.

4

steering_angle

float64

deg

Steer angle of the egovehicle’s front wheel.

NPC Ghost Cmd

Control commands for NPC/traffic vehicles that controlled externally using Ghost Mode.

  • Message Type: morai_msgs/NpcGhostCmd

  • Default Topic: /NpcGhost_Topic

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

npc_list

NpcGhostInfo[]

-

NPC Ghost Vehicle information

NPC Ghost Info

  • Message Type: morai_msgs/NpcGhostInfo

  • Default Topic: N/A (is a subtype)

No

Name

Type

Unit

Remarks

1

unique_id

int32

-

unique_id value of the NPC Ghost Vehicle (Example: 2,3,4..)

2

name

string

-

Model name of the NPC Ghost Vehicle (Example: 2016_Kia_Niro(HEV))

3

position

Vector3

m

Position of the NPC Ghost Vehicle (X, Y, Z) in ENU coordinates
(X: east, Y: north, Z: up)

4

rpy

Vector3

deg

Rotation of the NPC Ghost Vehicle (Roll, Pitch, Yaw)

5

steering_angle

float32

deg

Steering angle in degrees

6

vehicle_speed

float32

km/h

Vehicle velocity in kph

7

turn_signal

uint32

-

Indicates the current state of the turn signal
(0: off, 1: left, 2: right, 3: both (hazard lights))

8

brake_light

bool

-

Indicates brake lights (false: off, true: on)

Ego Vehicle Status

Ego Vehicle Status (also MoraiInfoPublisher) streams status telemetry of the egovehicle. Most vehicle dynamics data and control status data are provided and typically used for closed-loop control.

  • Message Type: morai_msgs/EgoVehicleStatus

  • Default Topic: /Ego_topic

No

Name

Type

Unit

Remarks

1

header

Header

-

Message header.

2

unique_id

int32

-

unique id value of the object.

3

acceleration

Vector3

m/s2

Current acceleration vector value of the egovehicle.

4

position

Vector3

m

Current position of the egovehicle.

5

velocity

Vector3

m/s

Current velocity vector value of the egovehicle.

6

heading

float64

deg

Indicates the vehicle’s heading (deg).

7

accel

float32

-

Refers to the vehicle’s acceleration pedal and the range value is 0:1.

8

brake

float32

-

Refers to the vehicle’s brake and the range value is 0:1.

9

front_steer_angle

float32

deg

Refers to the current front wheel angle value of the ego.

10

rear_steer_angle

float32

deg

Rear wheel angle of the ego

11

lateral_offset

float32

12

tire_lateral_force_fl

float32

13

tire_lateral_force_fr

float32

14

tire_lateral_force_rl

float32

15

tire_lateral_force_rr

float32

16

side_slip_angle_fl

float32

17

side_slip_angle_fr

float32

18

side_slip_angle_rl

float32

19

side_slip_angle_rr

float32

20

tire_cornering_stiffness_fl

float32

21

tire_cornering_stiffness_fr

float32

22

tire_cornering_stiffness_rl

float32

23

tire_cornering_stiffness_rr

float32

24

distance_left_lane_boundary

float32

m

Distance of the egovehicle’s center from the nearest left lane boundary marking

25

distance_right_lane_boundary

float32

m

Distance of the egovehicle’s center from the nearest left lane boundary marking

26

cross_track_error

float32

m

Distance from the center of the lane (right is positive)

Object Status List

Object Status List (also MoraiObjectInfoPublisher) lists and contains details of the 20 closest objects around the egovehicle. Objects are NPC vehicles, pedestrians, or placed static obstacles. This list is updated as the egovehicle moves around the scene and is ordered from closest object to the furthest.

  • Message Type: morai_msgs/ObjectStatusList

  • Default Topic: /Object_topic

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

num_of_npcs

int32

-

Number of NPC vehicles which the user spawned.

3

num_of_pedestrian

int32

-

Number of pedestrians the user spawned.

4

num_of_obstacle

int32

-

Number of obstacles (static objects) the user spawned.

5

npc_list

ObjectStatus

-

NPC Vehicle information ( Refer to the below ObjectStatus type.)

6

pedestrian_list

ObjectStatus

-

Pedestrian information ( Refer to the below ObjectStatus type.)

7

obstacle_list

ObjectStatus

-

Obstacle information (Refer to the below ObjectStatus type.)

Object Status

  • Message Type: morai_msgs/ObjectStatus

  • Default Topic: N/A (is a subtype)

No

Name

Type

Unit

Remarks

1

unique_id

int32

-

Object’s unique id value.

2

type

int32

-

0: Pedestrian, 1: NPC vehicle, 2: Static object (obstacle), -1: egovehicle.

3

name

string

-

Object name.

4

heading

float64

deg

Indicates the object’s heading (deg).

5

velocity

Vector3

km/h

Current velocity vector value of the object.

6

acceleration

Vector3

m/s2

Current acceleration vector value of the object.

7

size

Vector3

m

Object’s size (width, length, height)

8

position

Vector3

m

Object’s current position (in ENU coordinates)

Collision Data

CollisionData records the most recent collision between the egovehicle and any placed object (vehicles/pedestrians/obstacles). Does not register collisions with the environment.

  • Message Type: morai_msgs/CollisionData

  • Default Topic:  /CollisionData

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

global_offset_x

float64

 

The x-axis position of the collided object w.r.t the map coordinate system

3

global_offset_y

float64

 

The y-axis position of the collided object w.r.t the map coordinate system

4

global_offset_z

float64

 

The z-axis position of the collided object w.r.t the map coordinate system

5

collision_object

ObjectStatus[]

-

An object’s collision data with the egovehicle.

Get Traffic Light Status

Get Traffic Light Status (also TLStatusPublisher) queries the closest traffic light to the egovehicle and returns the type of traffic light and what the current lit state is. Useful as a ground truth reference for any vision detectors for traffic lights. Only works when using a scene with traffic lights enabled.

  • Message Type: morai_msgs/GetTrafficLightStatus

  • Default Topic: /GetTrafficLightStatus

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

trafficLightIndex

string

-

Unique index value of the traffic light.

3

trafficLightType

int16

-

Returns the type of the traffic light.

0: Red/Yellow/Green
1: Red/Yellow/Green_with_left_arrow
2: Red/Yellow/Green_with_left_arrow/Green
100: Yellow/Yellow/Yellow

4

trafficLightStatus

int16

-

Current state value of the traffic light.

1: Red
4: Yellow
16: Green
32: Green_with_left_arrow
-1: default (not lit)

Combined lights (multiple lights on simultaneously) can be applied using standard bitwise operations

Set Traffic Light Control

Set Traffic Light Control (also TLCtrlSubscriber) is the control command that instead instructs a specific traffic light to change to the user’s desired state. A user may generate multiple topics to set more than one traffic light in the scene. Like Get Traffic Light Status, only works when the loaded scene has traffic lights enabled.

  • Message Type: morai_msgs/SetTrafficLight

  • Default Topic: /SetTrafficLight

No

Name

Type

Unit

Remarks

1

trafficLightIndex

string

-

Unique index value of the traffic light.

2

trafficLightStatus

int16

-

Desired state value of the traffic light.

1: Red
4: Yellow
16: Green
32: Green_with_left_arrow
-1: default (not lit)

Get Intersection Status

IntersectionStatusPublisher (Sim → User)

  • Message Type: morai_msgs/IntersectionStatus

  • Default Topic: /InsnStatus

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

intersection_index

int32

-

Intersection index.

3

intersection_status

int16

-

Intersection status.

4

intersection_status_time

float32

s

Elapsed time(s) in the current intersection status.

Set Intersection Control

IntersectionControlSubscriber (User → Sim)

  • Message Type: morai_msgs/IntersectionControl

  • Default Topic: /InsnControl

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

intersection_index

int32

-

Intersection index.

3

intersection_status

int16

-

Intersection Status.

4

intersection_status_time

float32

-

Elapsed time (s) in the current intersection status.

Scenario Load

MORAISLSubscriber (User → Sim)

  • Message Type: morai_msgs/ScenarioLoad

  • Default Topic: /ScenarioLoad

No

Name

Type

Unit

Remarks

1

file_name

string

-

Scenario_file_name to load.

2

delete_all

bool

-

  • True : Delete and load Scenario Data excluding the egovehicle.

  • False : Load all the Scenario Data.

3

load_network_connection_data

bool

-

  • True : Load network connection.

  • False : Not loading the network connection.

4

load_ego_vehicle_data

bool

-

  • True : Load Ego Scenario Data.

  • False : Not loading the Ego Scenario Data.

5

load_surrounding_vehicle_data

bool

-

  • True : Load NPC Vehicle Scenario Data.

  • False : Not loading the NPC Vehicle Scenario Data.

6

load_pedestrian_data

bool

-

  • True : Load pedestrian Scenario Data.

  • False : Not loading the pedestrian Scenario Data.

7

load_object_data

bool

-

  • True : Load Object Scenario Data.

  • False : Not loading the Object Scenario Data.

8

set_pause

bool

-

  • True : Keep it in pause mode after loading the scenario (Press the ESC key to switch to the Play mode).

  • False : Immediately switch to Play mode after loading the scenario.

SaveSensorData

SensorSyncDataSubscriber (User → Sim)

  • Message Type: morai_msgs/SaveSensorData

  • Default Topic: /SaveSensorData

No

Name

Type

Unit

Remarks

1

is_custom_file_name

bool

-

Determines if the save file name is custom input by the user

2

custom_file_name

string

-

The custom save file name input by the user

3

file_dir

string

-

The full path string of the save file

Turn Signal Lamp Control

Lamps

  • Message Type: morai_msgs/Lamps

  • Default Topic: /lamps

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

turnSignal

int8

-

0: No signal, 1: Left turn signal, 2: Right turn signal

3

emergencySignal

int8

-

0: No signal, 1: Emergency lamps on

Replay Info

MoraiReplayInfoPublisher (Sim → User)

  • Message Type: morai_msgs/ReplayInfo

  • Default Topic: /ReplayInfo_topic

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

ego_acc

float64

-

Refers to the vehicle’s acceleration pedal value, and the range value is 0~1.

3

ego_brake

float64

-

Refers to the vehicle’s brake pedal value, and the range value is 0~1.

4

ego_steer

float64

deg

Refers to the front wheel angle of the vehicle, measured in degrees.

5

orientation

Quaternion

-

Current orientation.

6

linear_acceleration

Vector3

 

Current acceleration.

7

angular_velocity

Vector3

 

Current angular velocity.

8

num_of_npcs

int32

-

Number of NPC vehicles user spawned.

9

num_of_pedestrian

int32

-

Number of pedestrians user spawned.

10

num_of_obstacle

int32

-

Number of objects (static objects) user spawned.

11

npc_list

ObjectStatus

-

NPC vehicle information.

12

pedestrian_list

ObjectStatus

-

Pedestrian information.

13

obstacle_list

ObjectStatus

-

Obstacle information.

SensorPoseSubscriber

  • Message Type: morai_msgs/SensorPosControl

  • Default Topic: /SensorPosControl

No

Name

Type

Unit

Remarks

1

sensor_index

int16

-

Sensor index for identifying each sensor

메세지프로토콜1.png

Index number follows the numbers shown in the sensor UI

2

pose_x

float32

m

 

3

pose_y

float32

m

 

4

pose_z

float32

m

 

5

roll

float32

rad

Sensor Roll angle.

6

pitch

float32

rad

Sensor Pitch angle.

7

yaw

float32

rad

Sensor Yaw angle.

rosbag Playback

Used with its corresponding service message (MoraiSimProcServiceProvider), the rosbag Playback command (also MoraiSimProcHandle) contains the specific playback commands and conditions that are sent to the simulator.

  • Message Type : morai_msgs/MoraiSimProcHandle

No

Name

Type

Unit

Remarks

1

sim_process_status

uint8

-

 Current playback state

1: Playing, 2: Paused, 32: Stopped

2

replay_option

int16

-

Defines the specific type of command

0x0001: load file
0x0010: designate target
0x0100: set start time
0x1000: set playback speed

Which options are chosen determine which of the following fields (replay_speed, start_time, etc) are read. Note that multiple options can be chosen simultaneously with bitwise AND.

3

rosbag_file_name

string

-

The filename of the rosbag file to load

4

replay_target_option

int16

-

Designates the target of the playback command

0x0001: egovehicle
0x0010: NPC vehicle
0x0100: pedestrian actor

5

replay_speed

int32

-

Playback speed value multiplier (e.g., 1x, 2x, …)

6

start_time

int32

ms

Start time in milliseconds

Event Control Request

Event Control Request (also MoraiEventCmdServiceProvider) sends external commands to start single events that change the state of the vehicle. Differs from the Ego Ctrl Cmd message as Event Control Request is a one-time message and not a continuous command message.

  • Service Type: morai_msgs/MoraiEventCmdSrv

  • Service Name: /Service_MoraiEventCmd

CODE
EventInfo request
---
EventInfo response

Event Info

Event Info packs state info that is sent and later received from the simulator. Acts as both the request and response message format.

  • Message Type: morai_msgs/EventInfo

  • Default Topic:

No

Name

Type

Unit

Remarks

1

option

int8

-

Defines which of the following commands is to be applied. Multiple commands can be selected simultaneously through bitwise AND

0x0001: ctrl_mode
0x0010: gear
0x0100: lamps
0x1000: set_pause

2

ctrl_mode

int32

-

Sets the vehicle’s control mode
1: Keyboard, 2: Gamepad input, 3: External input, 4: Auto (MORAI internal controller)

3

gear

int32

-

Changes the gear of the vehicle

-1: No change, 1: Parking, 2: Reverse, 3: Neutral, 4: Drive

No manual gear levels are assigned with this command

4

lamps

Lamps

-

Controls the lights of the vehicle. Refer to the Lamps type

5

set_pause

bool

-

When true: pauses the simulation

Map Data Call

Map Specifications Call (also MoraiMapSpecServiceProvider) asks the simulator for the specifications of the currently loaded driving environment. Data is received through the MapSpec message.

  • Service Type: morai_msgs/MoraiMapSpecSrv

  • Service Name: /Service_MoraiMapSpec

CODE
MapSpecIndex request
---
MapSpec response

Map Spec Index

  • Message Type : morai_msgs/MapSpecIndex

No

Name

Type

Unit

Remarks

1

load_map_data

bool

-

Queries whether map data is called

Map Spec Return

  • Message Type : morai_msgs/MapSpec

No

Name

Type

Unit

Remarks

1

plane_coordinate_system

int32

-

The map’s coordinate reference system

0: Uses UTM CRS, 1: Uses TM CRS

2

utm_num

int32

-

Indicates the numbered UTM zone. Range is 1:60

3

utm_offset

Vector3

-

Sets a local offset in [x, y, z] coordinates

4

ellipse

string

-

Ellipsoid type (e.g.: WGS84, GRS80, etc)

5

central_latitude

float64

-

Central latitude (acts as x-axis origin)

6

central_meridian

float64

-

Central longitude (acts as y-axis origin)

7

scale_factor

float64

-

Scale multiplier, typically set to 1.0

8

false_easting

float64

-

Additional x-axis offset

9

false_northing

float64

-

Additional y-axis offset


Simulator Network

The Simulator Network tab attempts to distinguish signals not directly related to the egovehicle and organizes these signals in a separate tab. Many of these signals are service messages.

Some service messages are defined in the Simulator Network tab, but their request/response signals may be defined in the Ego Network tab. This UI issue is known and inconvenient, but should not affect the underlying function.

Simulator Network tab

Scenario Load Service

Scenario Load Service (also MoraiSLServiceProvider) calls a request to load into a scenario and instructs the simulator to search for requested local files. This feature is used to start scenarios externally using ROS as an API.

  • Service Type: morai_msgs/MoraiScenarioLoadSrv

  • Service Name: /Service_MoraiSL

NONE
ScenarioLoad request
---
MoraiSrvResponse response

Scenario Load

Refer to the message contents in the Ego Network section here (link)

Run rosbag Replay Service

Starting a rosbag replay (also MoraiSimProcServiceProvider) starts the process to load a rosbag file and replay its saved data track.

  • Service Type: morai_msgs/MoraiSimProcSrv

  • Service Name: /Morai_SimProc

CODE
MoraiSimProcHandle request
---
MoraiSrvResponse response

Morai Sim Proc Handle

Refer to the message contents in the Ego Network section here (link)

Replay System Status

(also MoraiSimProcStatusPublisher)

  • Message Type: morai_msgs/MoraiSimProcStatus

  • Default Topic: /sim/process/state/msg/MoraiSimProcStatus

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

latest_command_time

Time

-

The timestamp of the last MoraiSimProcHandle value received (using the time in SimProcHandle/header).

If it has not been received at all, it will be 0.

3

command_result

uint8

-

0x00: initial, 0x01: success, 0x10: command failed, 0x20: failed rosbag file load, 0x30: loaded rosbag but failed

4

current_mode

uint8

-

0x01: simulation mode, 0x10: replay mode

5

current_status

uint8

-

0x01: running, 0x10: paused, 0x20: paused and reached end of rosbag file

Multi Ego Setting

Multi Ego Settings (also MultiEgoTransformHandler) is used to control multiple vehicles in a scene with external controllers.

  • Message Type: morai_msgs/MultiEgoSetting

  • Default Topic: /ego_setting

No

Name

Type

Unit

Remarks

1

number_of_ego_vehicle

int32

-

Number of Multi-Ego vehicles.

2

camera_index

int32

-

Unique index of the vehicle to be viewed when setting up Multi-ego.

3

ego_index

int32[]

-

unique index of the Multi-ego to control.

4

global_position_x

float64[]

 

Current X-axis position of Multi-ego.

5

global_position_y

float64[]

 

Current Y-axis position of Multi-ego.

6

global_position_z

float64[]

 

Current Z-axis position of Multi-ego (elevation).

7

global_roll

float32[]

 

Current Roll angle of the Multi-ego.

8

global_pitch

float32[]

 

Current Pitch angle of the Multi-ego.

9

global_yaw

float32[]

 

Current heading angle of the Multi-ego.

10

velocity

float32[]

 

Multi-Ego’s velocity

11

gear

int8[]

-

1: Parking, 2: Reverse, 3: Neutral, 4: Drive

12

ctrl_mode

int8[]

-

1: keyboard mode, 16: automode

NPC Vehicle Collision Data

Returns the collisions between different NPC vehicles into VehicleCollisionInfoPublisher. Is distinct from Collision Data, which only logs collisions involving the egovehicle.

  • Message Type: morai_msgs/VehicleCollisionData

  • Default Topic: /VehicleCollisionData

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

collisions

VehicleCollision[]

-

Collided NPC vehicles list.

Vehicle Collision List

VehicleCollision is a list used in VehicleCollisionInfoPublisher and does not have a separate topic for independent use.

  • Message Type: morai_msgs/VehicleCollision

  • Default Topic: N/A (is a subtype)

No

Name

Type

Unit

Remarks

1

crashed_vehicles

ObjectStatus[]

-

Collided NPC vehicle information.

Traffic Light Status

Traffic Light Status (also MoraiSLServiceProvider) asks the simulator for the current state of a specific traffic light in the driving environment. Unlike the Get Traffic Light Status message in the Ego Network section, this service is not limited to just the closest traffic light to the egovehicle, but it can query data from the entire map.

  • Service Type: morai_msgs/MoraiTLInfoSrv

  • Service Name: /Morai_TLSrv

CODE
MoraiTLIndex request
---
MoraiTLInfo response

Traffic Light Index

  • Message Type: morai_msgs/MoraiTLIndex

No

Name

Type

Unit

Remarks

1

idx

string

-

Unique ID of the requested traffic light

Traffic Light Info

  • Message Type: morai_msgs/MoraiTLInfo

No

Name

Type

Unit

Remarks

1

header

Header

-

 

2

idx

string

-

Unique index value of the traffic light.

4

status

int16

-

Current state value of the traffic light.

0x0001: Red
0x0100: Yellow
0x0001 0000: Green
0x0010 0000: Green left arrow
-1: default (not lit)

Combined lights (multiple lights on simultaneously) can be applied using standard bitwise operations

Vehicle Specifications Request

Vehicle Specifications Request (also MoraiVehicleSpecServiceProvider) similar to the Map Data Call service, asks the simulator for information on a specific selected vehicle. Is valid as long as the selected vehicle exists in the scene (having a unique ID value). Returns information via the VehicleSpec message. This message pair is useful for querying the simulator for ground truth data of NPC vehicles to compare to sensor model outputs (e.g., bounding box sizes)

  • Service Type: morai_msgs/MoraiVehicleSpecSrv

  • Service Name : /Service_MoraiVehicleSpec

CODE
VehicleSpecIndex request
---
VehicleSpec response

Vehicle Spec Index

  • Message Type: morai_msgs/VehicleSpecIndex

No

Name

Type

Unit

Remarks

1

unique_id

int32

-

Unique ID of the requested vehicle

Vehicle Spec Return

  • Message Type: morai_msgs/VehicleSpec

No

Name

Type

Unit

Remarks

1

size

Vector3

-

Vehicle’s size in the X, Y, and Z axes

2

wheel_base

float32

m

Length of the vehicle’s wheelbase

3

max_steering

float64

deg

Maximum steering angle

4

overhang

float32

m

Length of the vehicle’s front overhang

5

rear_overhang

float32

m

Length of the vehicle’s rear overhang

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.