You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rerun comes with built-in support for modelling spatial relationships between entities through.
6
+
Rerun comes with built-in support for modeling spatial relationships between entities.
7
7
This page details how the [different archetypes](https://rerun.io/docs/reference/types/archetypes#transforms) involved interact with each other and explains how geometric transforms are set up in Rerun.
8
8
9
9
## Transform hierarchies with entity paths
10
10
11
11
The [`Transform3D`](https://rerun.io/docs/reference/types/archetypes/transform3d) archetype allows you to specify how one coordinate system relates to another through translation, rotation, and scaling.
12
12
13
13
The simplest way to use transforms is through entity path hierarchies, where each transform describes the relationship between an entity and its parent path.
14
-
Note that by default, all entities are connected via an identity transforms (to opt out of that, you have to use explicit transform frames, more on that later).
14
+
Note that by default, all entities are connected via identity transforms (to opt out of that, you have to use explicit transform frames, more on that later).
Note that unlike in ROS, you can log your transform relationship on _any_ entity.
87
87
However, currently once an entity specified the relation between two frames, this relation may no longer be logged on any other entity.
88
88
89
-
Named transform frames have a few of advantages over entity path based hierarchies:
89
+
Named transform frames have several advantages over entity path based hierarchies:
90
90
* topology may change over time
91
91
* which entity is associated with which frame may change over time (it can also be [overridden via blueprint](..concepts/visualizers-and-overrides.md))
92
-
* several entities may be associated with the same frame without
92
+
* several entities may be associated with the same frame
93
93
* frees up entity paths for semantic rather than geometric organization
94
94
95
95
## Entity hierarchy based transforms under the hood - entity derived transform frames
96
96
97
97
Under the hood, Rerun's entity path hierarchies actually use the same transform frame system as named frames.
98
-
For each entity path, an associated transform frame with the prefix `tf#`automatically is automatically created:
98
+
For each entity path, an associated transform frame with the prefix `tf#` is automatically created:
99
99
for example, an entity `/world/robot` gets frame `tf#/world/robot`.
100
100
101
101
Path based hierarchies are then established by defaults the Viewer uses (also referred to as fallbacks):
102
-
Given an entity `/word/robot`:
103
-
* if no `CoordinateFrame::frame` is specified, it automatically defaults to `tf#/word/robot`
104
-
* if no `Transform3D::child_frame` is specified, it automatically defaults to `tf#/word/robot`
105
-
* if no `Transform3D::parent_frame` is specified, it automatically defaults to the parent's implicit frame, `tf#/word`
102
+
Given an entity `/world/robot`:
103
+
* if no `CoordinateFrame::frame` is specified, it automatically defaults to `tf#/world/robot`
104
+
* if no `Transform3D::child_frame` is specified, it automatically defaults to `tf#/world/robot`
105
+
* if no `Transform3D::parent_frame` is specified, it automatically defaults to the parent's implicit frame, `tf#/world`
106
106
107
-
The only special properties these implicit frames have over their named counter parts is that they
107
+
The only special properties these implicit frames have over their named counterparts is that they
In Rerun, pinhole cameras are also treated as spatial relationships that define projections from 3D spaces to 2D subspaces.
167
-
This unified approach allows the same transform system to handle both traditional 3D-to-3D transforms and 3D-to-2D projections seamlessly.
166
+
In Rerun, pinhole cameras are not merely another archetype that can be visualized,
167
+
they are also treated as spatial relationships that define projections from 3D spaces to 2D subspaces.
168
+
This unified approach allows the to handle both traditional 3D-to-3D transforms and 3D-to-2D projections.
168
169
169
170
The [`Pinhole`](https://rerun.io/docs/reference/types/archetypes/pinhole) archetype defines this projection relationship through its intrinsic matrix (`image_from_camera`) and resolution.
170
171
Both implicit & named coordinate frames are supported, exactly as on [`Transform3D`](https://rerun.io/docs/reference/types/archetypes/transform3d).
@@ -217,8 +218,8 @@ For 2D spaces and other entities, view coordinates currently have currently no e
217
218
Unlike with [`Transform3D`](https://rerun.io/docs/reference/types/archetypes/transform3d), poses do not propagate through the transform hierarchy
218
219
and can store an arbitrary amount of transforms on the same entity.
219
220
220
-
An entity that has both [`Transform3D`](https://rerun.io/docs/reference/types/archetypes/transform3d)
221
-
without `child_frame`/`parent_frame` as well as`InstancePoses3D`,
221
+
For an entity that has both [`Transform3D`](https://rerun.io/docs/reference/types/archetypes/transform3d)
0 commit comments