3.9 KiB
{
"actor_info_list": [
{
"actor_name": "...",
"actor_file": "...", // The name of the digital asset corresponding to the model in the models folder
"actor_type": "glb", // Type of digital asset, currently available types are glb, obj, urdf, box
"x_limit": [[-0.25, -0.05], [0.05, 0.25]], // X-coordinate limits for object generation
"y_limit": [[-0.2, 0.05]], // Y-coordinate limits for object generation
"z_limit": [[0.78]], // Z-coordinate limits for object generation
"qpose": [[1, 0, 0, 0]], // Initial orientation of the object as a quaternion
"is_static_or_fix_root_link": false, // Whether the object is fixed
"ylim_prop": true, // Protection for the generated y-coordinate range to prevent object generation
"rotate_tag": false, // Whether the object rotates randomly
"rotate_limit": [], // The range of random rotation of the object on the xyz axes
"convex": true, // Whether the object's collision volume is a convex hull
"z_val_protect": true, // Set to true when generating diverse objects
"actor_data_from": "file", // Source of model data, either 'file' or a custom function name
"rand_model_id": false, // Whether to generate diverse models
"mass": 0.01 // Model mass
},
//...
],
"rand_create_actor": true, // For generating non-critical models for a cluttered desktop
"rand_actor_num": 4, // Number of non-critical models generated
"rand_choice_actor_list": [ // List of models for a cluttered desktop
{
"actor_name": "...",
"actor_file": "...",
"actor_type": "glb",
"x_limit": [[-0.35, 0.35]],
"y_limit": [[-0.15, 0.3]],
"z_limit": [[0.8]],
"qpose": [[-0.5, 0.5, 0.5, 0.5]],
"is_static_or_fix_root_link": false,
"ylim_prop": false,
"rotate_tag": true,
"rotate_limit": [[1.57, 0, 0]],
"convex": false,
"z_val_protect": true,
"actor_data_from": "file",
"rand_model_id": false,
"mass": 0.01
},
//...
],
"actor_dis_lim_mat": [[0, 0.2, 0.2, 0.2, 0.2], // Matrix to limit the minimum distance between objects
[0.2, 0, 0.2, 0.2, 0.2],
[0.2, 0.2, 0, 0.2, 0.2],
[0.2, 0.2, 0.2, 0, 0.2],
[0.2, 0.2, 0.2, 0.2, 0]],
"actor_position_link": false, // Whether different object poses are linked
"actor_position_num": 0, // Number of random poses for different objects
"other_actor_data": [] // List of other potentially used pose information
}
Notes:
-
In most cases, you only need to pay attention to the fields:
actor_name,actor_file,actor_type,x_limit,y_limit,z_limit,qpose,is_static_or_fix_root_link, andactor_dis_lim_mat. -
When
actor_typeisbox,actor_data_frommust be a custom function, refer to blocks_stack_easy and block_handover files. -
If
rand_model_idis True, you need to defineself.id_listin the corresponding task code. -
rand_create_actoris generally False, and when it is False,rand_choice_actor_listis not needed; -
The
actor_dis_lim_matmatrix can be empty, in which case there is no restriction on the distance between objects; -
other_actor_datais used to store other potentially used pose information, and you need to define the corresponding variable names in the file, refer to dual_bottles_pick_easy.json file.