ROS Subscriber

Block Category: Extensions > ROS

Outputs: Determined by the ROS Message Type parameter.

      A: Double

      angular[x,y,z]: Angular acceleration in x y and z direction; 3x1 matrix double

      B: Double

      Byte[data]: Array of data matrix

      char data: Character data

      com[x,y,z]: Center of mass; 3x1 matrix double

      covariance[36]: Row-major representation of the 6x6 covariance matrix;  36x1 matrix double

      Empty data: Empty data

      floatx [data]: Multidimensional array

      force[x,y,z]: 3x1 matrix double

      frame_id: Frame associated with the data; string

      G: Double

      intx [data]: Multidimensional array; matrix double

      ix: Double

      iyx: Double

      izz: Double

      [label]: Label of given dimension; string

      linear[x,y,z]: Linear acceleration in x y and z direction; 3x1 matrix double

      M: Mass in kilograms; double

      offset: Padding values preceding data; unsigned integer

      position[x,y,z]: Position in free space in x y z coordinates; 3x1 matrix double

      quaternion[x,y,z,w]: Orientation in free space in quaternion form; 4x1 matrix double

      R: Double

      Rotation[x,y,z,w]: Orientation in free space in quaternion form; 4x1 matrix double

      seq: Consecutively increasing ID; integer

      [size]: Size of given dimension; unsigned integer

      [stride]: Stride of given dimension; unsigned integer

      string data: String data

      theta: Rotation angle in radiance; double

      time: Current ROS server time; double

      timestamp: Time at which the data is received; double

      torque[x,y,z]: 3x1 matrix double

      translation[x,y,z]: Vector in free space in x y and z direction; 3x1 matrix double

      UIntx [data]: Multidimensional array

      [x]: Growable matrix

      X: Double

      [y]: Growable matrix

      Y: Double

      [z]: Growable matrix

      Z: Double

 

Description: The ROS Subscriber block allows communication with ROS-enabled robots. ROS Subscriber receives ROS messages of a specific type from the specified ROS topic. The message is updated, if necessary, at each time step. Messages are exchanged between ROS Publisher and ROS Subscriber blocks until the simulation terminates.

A screenshot of a computer

Description automatically generated

Communication protocol: Indicates UDP or Websocket communication protocol. UDP is faster, but works only with ROS 1.

Port: Indicates a dedicated port number set by the ROS bridge server.

ROS Message Type: Defines the type of message and the data format. The ROS Message Type determines the outputs on the ROS Subscriber block. For example, geometry_msgs/Pose is a representation of pose in free space, composed of position and quaternion (orientation), which are the outputs to the block.

ROS Subscriber recognizes two types of messages: geometry and standard. Message types are described at https://index.ros.org/p/geometry_msgs/ and https://index.ros.org/p/std_msgs/.

ROS Server IP: Indicates the ROS bridge server name or IP address. If you do not have a ROS bridge server, you can install one on Windows Subsystem for Linux (WSL) on Windows 10+. If you do, to access the IP address, open a Linux shell by entering WSL in the Search box in the lower left corner of your screen and enter ifconfig | grep -o 'inet [0-9.]\+' Use the first inet address from the displayed list.

ROS Topic: Lists the available ROS topics. Click Refresh Topics to refresh the list.

Status: Displays the connectivity to the ROS server. Click Check Status to see the current connectivity.

Subscriber Client ID: Indicates the ID required to differentiate between different instances of the subscriber.

Examples

See Examples > Blocks > Extensions > ROS.