Object-Level Randomizations¶
The Data Generation
module allows developers to introduce randomizations at the object level. That is, the assets being spawned in a scene can have a variety of their properties randomized. This allows for more variety in the collected data and leads to a more rounded dataset at the end. These randomizations can also be used to induce edge-case scenarios to the dataset; again for obtaining a better dataset.
The following properties can be randomized through the module:
An example for configuring these randomizations at an asset level can be found in datacollector_config.jsonc
Texture¶
Allows for the texture of the asset to be randomized. This feature can be configured using the following param:
"texture": [ // List of different textures to choose from.
"default",
"shiny_texture",
"matte_texture"
]
Scale¶
Allows for the scale of the asset to be randomized. Scale is a unit-less multiple that is applied to the x
, y
and, z
dimensions of the asset. This feature can be configured using the following param:
"scale": {
"amount": 2, // Number of variations to produce.
"upper_bound": 100, // Upper bound of the scale factor.
"lower_bound": 50 // Lower bound of the scale factor.
}
Rotation¶
Allows for the rotational-orientation of the asset to be randomized. This type of randomization can be applied to either of the rotational axes - roll
, pitch
or yaw
. This feature can be configured using the following param:
"rotation": {
"amount": 2, // Number of variations to produce.
"upper_bound": 90.0, // Upper bound of rotation, in degrees.
"lower_bound": -90.0, // Lower bound of rotation, in degrees.
"axis": "roll" // Axis for rotation.
}
Translation¶
Allows for the position of the asset to be randomized. This type of randomization can be applied to either of the cartesian axes - x
, y
or z
. This feature can be configured using the following param:
"rotation": {
"amount": 2, // Number of variations to produce.
"upper_bound": 90.0, // Upper bound of rotation, in degrees.
"lower_bound": -90.0, // Lower bound of rotation, in degrees.
"axis": "roll" // Axis for rotation.
}
Flip¶
Allows for randomized flipping of the asset along an axis. This type of randomization can be applied to either of the rotational axes - roll
, pitch
or yaw
. This feature can be configured using the following param:
"flip": {
"axis": "roll", // Axis for flipping.
"initial_rpy": [
20,
0,
0
] // Starting roll, pitch, yaw of the object.
}