Camera Sensor Topics
Usage: Use the overview table to locate a topic and its description, type, transport, and configuration notes. The last column links to its JSON configuration in the appendix. The appendix JSON code blocks are final configurations that RFrame
ChannelConfigLoadercan load directly (keys are instance names; copy them into your process configuration under{"channels": {...}}). Configuration notes list only explicit settings that differ from framework defaults. Unlisted fields use framework defaults; do not add them yourself.
For field definitions, see §7.3 of the RFrame Development Guide.Notes:
All image sensor messages are built-in ROS 2 Humble messages.
1. Interface Overview
| Camera | Topic | Description | Type | Transport | Configuration notes | Configuration details |
|---|---|---|---|---|---|---|
| Head camera | /robby/sensors/camera/head/color/raw | Head camera raw color image | sensor_msgs/msg/Image | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Head camera | /robby/sensors/camera/head/color/compressed | Head camera compressed color image | sensor_msgs/msg/CompressedImage | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Head camera | /robby/sensors/camera/head/depth/raw | Head camera raw depth image | sensor_msgs/msg/Image | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Head camera | /robby/sensors/camera/head/depth/compressed | Head camera compressed depth image | sensor_msgs/msg/CompressedImage | Hybrid.shm, Hybrid.zenoh (zenoh across machines; same-machine SHM is unaffected) | auto_route=false; remote_backend=zenoh; memory_size=5242880 | JSON / Schema |
| Left wrist camera | /robby/sensors/camera/wrist_left/color/raw | Left wrist camera raw color image | sensor_msgs/msg/Image | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Left wrist camera | /robby/sensors/camera/wrist_left/color/compressed | Left wrist camera compressed color image | sensor_msgs/msg/CompressedImage | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Left wrist camera | /robby/sensors/camera/wrist_left/depth/raw | Left wrist camera raw depth image | sensor_msgs/msg/Image | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Right wrist camera | /robby/sensors/camera/wrist_right/color/raw | Right wrist camera raw color image | sensor_msgs/msg/Image | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Right wrist camera | /robby/sensors/camera/wrist_right/color/compressed | Right wrist camera compressed color image | sensor_msgs/msg/CompressedImage | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
| Right wrist camera | /robby/sensors/camera/wrist_right/depth/raw | Right wrist camera raw depth image | sensor_msgs/msg/Image | Hybrid.shm, Hybrid.ros2 | auto_route=false; memory_size=5242880; QoS best_effort | JSON / Schema |
2. Appendix: JSON Configuration
Each configuration corresponds to one overview row, with the instance name as its key. Only fields that differ from framework defaults are included. See the RFrame Deployment Guide for defaults.
2.1. head (Head camera)
2.1.1. /robby/sensors/camera/head/color/raw
{
"robby_sensors_camera_head_color_raw": {
"type": "hybrid",
"topic": "/robby/sensors/camera/head/color/raw",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/Image"
},
"ros2": {
"type_name": "sensor_msgs/msg/Image",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.1.1.1. Type Schema
Type: sensor_msgs/msg/Image
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains an uncompressed image
# (0, 0) is at top-left corner of image
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
# If the frame_id here and the frame_id of the CameraInfo
# message associated with the image conflict
# the behavior is undefined
uint32 height # image height, that is, number of rows
uint32 width # image width, that is, number of columns
# The legal values for encoding are in file src/image_encodings.cpp
# If you want to standardize a new string format, join
# ros-users@lists.ros.org and send an email proposing a new encoding.
string encoding # Encoding of pixels -- channel meaning, ordering, size
# taken from the list of strings in include/sensor_msgs/image_encodings.hpp
uint8 is_bigendian # is this data bigendian?
uint32 step # Full row length in bytes
uint8[] data # actual matrix data, size is (step * rows)
Semantics: Uncompressed color image from the head camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. height and width are the numbers of image rows and columns, respectively, with pixel origin (0,0) at the top left. encoding specifies the meaning, order, and data width of pixel channels; is_bigendian specifies byte order. step is the full row size in bytes, and the Schema defines the length of data as step×height. Do not assume that rows have no padding. The frame_id of the associated CameraInfo should match the image. The maintainer must supply the actual color channel order, resolution, frame rate, and whether the image is rectified or aligned.
2.1.2. /robby/sensors/camera/head/color/compressed
{
"robby_sensors_camera_head_color_compressed": {
"type": "hybrid",
"topic": "/robby/sensors/camera/head/color/compressed",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/CompressedImage"
},
"ros2": {
"type_name": "sensor_msgs/msg/CompressedImage",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.1.2.1. Type Schema
Type: sensor_msgs/msg/CompressedImage
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains a compressed image.
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
string format # Specifies the format of the data
# Acceptable values:
# jpeg, png, tiff
uint8[] data # Compressed image buffer
Semantics: Compressed color image from the head camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. format describes the compression format; the current Schema comments list jpeg, png, and tiff. data is a compressed byte stream and must be decoded according to the actual format and publisher conventions; it cannot be treated directly as an uncompressed pixel matrix. The message has no explicit width, height, or step fields. The maintainer must supply the actual color channel order, resolution, frame rate, and whether the image is rectified or aligned.
2.1.3. /robby/sensors/camera/head/depth/raw
{
"robby_sensors_camera_head_depth_raw": {
"type": "hybrid",
"topic": "/robby/sensors/camera/head/depth/raw",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/Image"
},
"ros2": {
"type_name": "sensor_msgs/msg/Image",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.1.3.1. Type Schema
Type: sensor_msgs/msg/Image
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains an uncompressed image
# (0, 0) is at top-left corner of image
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
# If the frame_id here and the frame_id of the CameraInfo
# message associated with the image conflict
# the behavior is undefined
uint32 height # image height, that is, number of rows
uint32 width # image width, that is, number of columns
# The legal values for encoding are in file src/image_encodings.cpp
# If you want to standardize a new string format, join
# ros-users@lists.ros.org and send an email proposing a new encoding.
string encoding # Encoding of pixels -- channel meaning, ordering, size
# taken from the list of strings in include/sensor_msgs/image_encodings.hpp
uint8 is_bigendian # is this data bigendian?
uint32 step # Full row length in bytes
uint8[] data # actual matrix data, size is (step * rows)
Semantics: Uncompressed depth image from the head camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. height and width are the numbers of image rows and columns, respectively, with pixel origin (0,0) at the top left. encoding specifies the meaning, order, and data width of pixel channels; is_bigendian specifies byte order. step is the full row size in bytes, and the Schema defines the length of data as step×height. Do not assume that rows have no padding. The frame_id of the associated CameraInfo should match the image. The maintainer must specify the actual depth pixel encoding, physical units and scale factor, invalid values, measurement range, and whether depth is aligned to the color image. These cannot be determined from the topic name or this generic Schema alone.
2.1.4. /robby/sensors/camera/head/depth/compressed
{
"robby_sensors_camera_head_depth_compressed": {
"type": "hybrid",
"topic": "/robby/sensors/camera/head/depth/compressed",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"remote_backend": "zenoh",
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/CompressedImage"
}
}
}
2.1.4.1. Type Schema
Type: sensor_msgs/msg/CompressedImage
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains a compressed image.
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
string format # Specifies the format of the data
# Acceptable values:
# jpeg, png, tiff
uint8[] data # Compressed image buffer
Semantics: Compressed depth image from the head camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. format describes the compression format; the current Schema comments list jpeg, png, and tiff. data is a compressed byte stream and must be decoded according to the actual format and publisher conventions; it cannot be treated directly as an uncompressed pixel matrix. The message has no explicit width, height, or step fields. The maintainer must specify the actual depth pixel encoding, physical units and scale factor, invalid values, measurement range, and whether depth is aligned to the color image. These cannot be determined from the topic name or this generic Schema alone. The depth compression container, whether compression is lossless, and the decoded depth encoding must also be specified. The CompressedImage type alone does not imply that ordinary image decoding can recover depth.
2.2. wrist_left (Left wrist camera)
2.2.1. /robby/sensors/camera/wrist_left/color/raw
{
"robby_sensors_camera_wrist_left_color_raw": {
"type": "hybrid",
"topic": "/robby/sensors/camera/wrist_left/color/raw",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/Image"
},
"ros2": {
"type_name": "sensor_msgs/msg/Image",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.2.1.1. Type Schema
Type: sensor_msgs/msg/Image
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains an uncompressed image
# (0, 0) is at top-left corner of image
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
# If the frame_id here and the frame_id of the CameraInfo
# message associated with the image conflict
# the behavior is undefined
uint32 height # image height, that is, number of rows
uint32 width # image width, that is, number of columns
# The legal values for encoding are in file src/image_encodings.cpp
# If you want to standardize a new string format, join
# ros-users@lists.ros.org and send an email proposing a new encoding.
string encoding # Encoding of pixels -- channel meaning, ordering, size
# taken from the list of strings in include/sensor_msgs/image_encodings.hpp
uint8 is_bigendian # is this data bigendian?
uint32 step # Full row length in bytes
uint8[] data # actual matrix data, size is (step * rows)
Semantics: Uncompressed color image from the left wrist camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. height and width are the numbers of image rows and columns, respectively, with pixel origin (0,0) at the top left. encoding specifies the meaning, order, and data width of pixel channels; is_bigendian specifies byte order. step is the full row size in bytes, and the Schema defines the length of data as step×height. Do not assume that rows have no padding. The frame_id of the associated CameraInfo should match the image. The maintainer must supply the actual color channel order, resolution, frame rate, and whether the image is rectified or aligned.
2.2.2. /robby/sensors/camera/wrist_left/color/compressed
{
"robby_sensors_camera_wrist_left_color_compressed": {
"type": "hybrid",
"topic": "/robby/sensors/camera/wrist_left/color/compressed",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/CompressedImage"
},
"ros2": {
"type_name": "sensor_msgs/msg/CompressedImage",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.2.2.1. Type Schema
Type: sensor_msgs/msg/CompressedImage
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains a compressed image.
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
string format # Specifies the format of the data
# Acceptable values:
# jpeg, png, tiff
uint8[] data # Compressed image buffer
Semantics: Compressed color image from the left wrist camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. format describes the compression format; the current Schema comments list jpeg, png, and tiff. data is a compressed byte stream and must be decoded according to the actual format and publisher conventions; it cannot be treated directly as an uncompressed pixel matrix. The message has no explicit width, height, or step fields. The maintainer must supply the actual color channel order, resolution, frame rate, and whether the image is rectified or aligned.
2.2.3. /robby/sensors/camera/wrist_left/depth/raw
{
"robby_sensors_camera_wrist_left_depth_raw": {
"type": "hybrid",
"topic": "/robby/sensors/camera/wrist_left/depth/raw",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/Image"
},
"ros2": {
"type_name": "sensor_msgs/msg/Image",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.2.3.1. Type Schema
Type: sensor_msgs/msg/Image
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains an uncompressed image
# (0, 0) is at top-left corner of image
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
# If the frame_id here and the frame_id of the CameraInfo
# message associated with the image conflict
# the behavior is undefined
uint32 height # image height, that is, number of rows
uint32 width # image width, that is, number of columns
# The legal values for encoding are in file src/image_encodings.cpp
# If you want to standardize a new string format, join
# ros-users@lists.ros.org and send an email proposing a new encoding.
string encoding # Encoding of pixels -- channel meaning, ordering, size
# taken from the list of strings in include/sensor_msgs/image_encodings.hpp
uint8 is_bigendian # is this data bigendian?
uint32 step # Full row length in bytes
uint8[] data # actual matrix data, size is (step * rows)
Semantics: Uncompressed depth image from the left wrist camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. height and width are the numbers of image rows and columns, respectively, with pixel origin (0,0) at the top left. encoding specifies the meaning, order, and data width of pixel channels; is_bigendian specifies byte order. step is the full row size in bytes, and the Schema defines the length of data as step×height. Do not assume that rows have no padding. The frame_id of the associated CameraInfo should match the image. The maintainer must specify the actual depth pixel encoding, physical units and scale factor, invalid values, measurement range, and whether depth is aligned to the color image. These cannot be determined from the topic name or this generic Schema alone.
2.3. wrist_right (Right wrist camera)
2.3.1. /robby/sensors/camera/wrist_right/color/raw
{
"robby_sensors_camera_wrist_right_color_raw": {
"type": "hybrid",
"topic": "/robby/sensors/camera/wrist_right/color/raw",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/Image"
},
"ros2": {
"type_name": "sensor_msgs/msg/Image",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.3.1.1. Type Schema
Type: sensor_msgs/msg/Image
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains an uncompressed image
# (0, 0) is at top-left corner of image
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
# If the frame_id here and the frame_id of the CameraInfo
# message associated with the image conflict
# the behavior is undefined
uint32 height # image height, that is, number of rows
uint32 width # image width, that is, number of columns
# The legal values for encoding are in file src/image_encodings.cpp
# If you want to standardize a new string format, join
# ros-users@lists.ros.org and send an email proposing a new encoding.
string encoding # Encoding of pixels -- channel meaning, ordering, size
# taken from the list of strings in include/sensor_msgs/image_encodings.hpp
uint8 is_bigendian # is this data bigendian?
uint32 step # Full row length in bytes
uint8[] data # actual matrix data, size is (step * rows)
Semantics: Uncompressed color image from the right wrist camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. height and width are the numbers of image rows and columns, respectively, with pixel origin (0,0) at the top left. encoding specifies the meaning, order, and data width of pixel channels; is_bigendian specifies byte order. step is the full row size in bytes, and the Schema defines the length of data as step×height. Do not assume that rows have no padding. The frame_id of the associated CameraInfo should match the image. The maintainer must supply the actual color channel order, resolution, frame rate, and whether the image is rectified or aligned.
2.3.2. /robby/sensors/camera/wrist_right/color/compressed
{
"robby_sensors_camera_wrist_right_color_compressed": {
"type": "hybrid",
"topic": "/robby/sensors/camera/wrist_right/color/compressed",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/CompressedImage"
},
"ros2": {
"type_name": "sensor_msgs/msg/CompressedImage",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.3.2.1. Type Schema
Type: sensor_msgs/msg/CompressedImage
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains a compressed image.
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
string format # Specifies the format of the data
# Acceptable values:
# jpeg, png, tiff
uint8[] data # Compressed image buffer
Semantics: Compressed color image from the right wrist camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. format describes the compression format; the current Schema comments list jpeg, png, and tiff. data is a compressed byte stream and must be decoded according to the actual format and publisher conventions; it cannot be treated directly as an uncompressed pixel matrix. The message has no explicit width, height, or step fields. The maintainer must supply the actual color channel order, resolution, frame rate, and whether the image is rectified or aligned.
2.3.3. /robby/sensors/camera/wrist_right/depth/raw
{
"robby_sensors_camera_wrist_right_depth_raw": {
"type": "hybrid",
"topic": "/robby/sensors/camera/wrist_right/depth/raw",
"handler": "reader",
"hybrid": {
"enable_shm": true,
"enable_remote": true,
"auto_route": false
},
"shm": {
"memory_size": 5242880,
"type_name": "sensor_msgs/msg/Image"
},
"ros2": {
"type_name": "sensor_msgs/msg/Image",
"qos": {
"reliability": "best_effort"
}
}
}
}
2.3.3.1. Type Schema
Type: sensor_msgs/msg/Image
Source: ROS 2 Humble standard module sensor_msgs (declared as a dependency by RTypes)
# This message contains an uncompressed image
# (0, 0) is at top-left corner of image
std_msgs/Header header # Header timestamp should be acquisition time of image
# Header frame_id should be optical frame of camera
# origin of frame should be optical center of cameara
# +x should point to the right in the image
# +y should point down in the image
# +z should point into to plane of the image
# If the frame_id here and the frame_id of the CameraInfo
# message associated with the image conflict
# the behavior is undefined
uint32 height # image height, that is, number of rows
uint32 width # image width, that is, number of columns
# The legal values for encoding are in file src/image_encodings.cpp
# If you want to standardize a new string format, join
# ros-users@lists.ros.org and send an email proposing a new encoding.
string encoding # Encoding of pixels -- channel meaning, ordering, size
# taken from the list of strings in include/sensor_msgs/image_encodings.hpp
uint8 is_bigendian # is this data bigendian?
uint32 step # Full row length in bytes
uint8[] data # actual matrix data, size is (step * rows)
Semantics: Uncompressed depth image from the right wrist camera. According to the Schema, header.stamp should be the image acquisition time, and header.frame_id should identify the camera optical frame: its origin is at the optical center, with x pointing right in the image, y down, and z forward. The device-specific time synchronization method and frame_id name remain to be confirmed by the maintainer. height and width are the numbers of image rows and columns, respectively, with pixel origin (0,0) at the top left. encoding specifies the meaning, order, and data width of pixel channels; is_bigendian specifies byte order. step is the full row size in bytes, and the Schema defines the length of data as step×height. Do not assume that rows have no padding. The frame_id of the associated CameraInfo should match the image. The maintainer must specify the actual depth pixel encoding, physical units and scale factor, invalid values, measurement range, and whether depth is aligned to the color image. These cannot be determined from the topic name or this generic Schema alone.