Detection2D
results are the class hypotheses for the box; id tracks the object across frames.
Preview
The figure robot_msgs.viz.plot(example) draws for the example below.

Fields
| Name | Type | Default |
|---|---|---|
header | Header | Header() |
results | tuple[ObjectHypothesisWithPose, ...] | () |
bbox | BoundingBox2D | required |
id | str | '' |
Example
One instance from the package's own test catalog; the output is its real repr().
Detection2D(header=Header(stamp=1761600000.25, frame_id='camera_color_optical_frame'), results=(ObjectHypothesisWithPose(hypothesis=ObjectHypothesis(class_id='bottle', score=0.91), pose=Pose(position=Point(x=0.4, y=-0.1, z=0.25), orientation=Quaternion(x=-0.10566871683993562, y=0.6991667342497077, z=0.10566871683993563, w=0.6991667342497078))),), bbox=BoundingBox2D(center=Pose2D(x=60.0, y=120.0, theta=0.0), size_x=100.0, size_y=200.0), id='7')to_dict() as JSON
{
"_type": "vision/Detection2D",
"header": {
"_type": "std/Header",
"stamp": 1761600000.25,
"frame_id": "camera_color_optical_frame",
"meta": {}
},
"results": [
{
"_type": "vision/ObjectHypothesisWithPose",
"hypothesis": {
"_type": "vision/ObjectHypothesis",
"class_id": "bottle",
"score": 0.91
},
"pose": {
"_type": "geometry/Pose",
"position": {
"_type": "geometry/Point",
"x": 0.4,
"y": -0.1,
"z": 0.25
},
"orientation": {
"_type": "geometry/Quaternion",
"x": -0.10566871683993562,
"y": 0.6991667342497077,
"z": 0.10566871683993563,
"w": 0.6991667342497078
}
},
"covariance": null
}
],
"bbox": {
"_type": "vision/BoundingBox2D",
"center": {
"_type": "geometry/Pose2D",
"x": 60.0,
"y": 120.0,
"theta": 0.0
},
"size_x": 100.0,
"size_y": 200.0
},
"id": "7"
}Long arrays are cut after 16 values and say so with “…”.
Functions
Constructors
Classmethods and staticmethods: ways to build one.
Properties
Read-only views computed from the fields.
best: ObjectHypothesisWithPose | NoneThe highest-scoring hypothesis (first one wins a tie), or None without results.