Layout Config
layout_config 支持大量的布局预设及灵活配置;基础的两个 key 是:
ignored_objects:被忽略不参与布局的对象列表(names/UIDs)。type:布局类型字符串。
下面按 layout type 逐项说明。
None 表示保持场景文件中已有的布局,不做随机化。适用于你已经有一个手工摆放好的布局并希望保持其不变的场景。
注意:通过 add_additional_object_from_path 或 load_object_from_path 新加载的物体在 None 模式下默认不会被放到桌面(程序实现中会将它们放置在远离桌面的地方),需要使用其它 layout type 将它们放入桌面区域。
random_all
Section titled “random_all”random_all 会对场景中(除 ignored_objects 指定的外)所有物体随机放置并避免碰撞,等价于对整张桌面使用 global_range 的大 bbox。
random_custom_tableset
Section titled “random_custom_tableset”random_custom_tableset 允许对每个物体单独指定布局规则。你需要提供 custom_tableset 字典,其中 key 为 meta object 名称,value 为该对象的布局配置。
示例结构:
layout_config: ignored_objects: [] type: random_custom_tableset in_order: true # 是否按 custom_tableset 中的顺序依次布局 custom_tableset: "apple": type: global_range random_range_angle: 360 random_range_h: 0.7 random_range_w: 0.4 random_range_x: -0.2 random_range_y: -0.35 "plate": type: global_range random_range_angle: 360 random_range_h: 0.7 random_range_w: 0.4 random_range_x: -0.2 random_range_y: -0.35 "banana": type: global_range random_range_angle: 360 random_range_h: 20 random_range_w: 20 random_range_x: -10 random_range_y: -10常见的单个对象布局类型:
-
global_range:在世界坐标系指定的 XYWH 区域内随机放置,并把物体底面贴到桌面。区域由random_range_x,random_range_y,random_range_w,random_range_h定义,物体在[0, random_range_angle]度内随机旋转;最终与桌面区域取交集。物体的边缘必须落在 bbox 内(若 bbox 小于物体尺寸,布局会失败)。random_all实际上等价于为每个对象指定一个覆盖整张桌面的global_range。示例:
"apple":type: global_rangerandom_range_angle: 360random_range_h: 0.7random_range_w: 0.4random_range_x: -0.2random_range_y: -0.35 -
fixed_global_range:将物体放在固定 XY 位置(pos_x,pos_y),并把物体底面贴到桌面。物体仍会在[0, random_range_angle]内旋转(可设置为 0)。可指定pos_z固定 z。不保证碰撞规避。示例:
"bread":pos_x: -0.17217pos_y: -0.45642random_range_angle: 0type: fixed_global_range -
centric_range:在物体中心的邻域内随机放置并规避碰撞。该邻域由物体 bbox 向上下左右扩展h/2与w/2得到。旋转从[0, angle]采样;若angle_bilateral: true则从[-angle, +angle]采样。示例:
"box":w: 0.05h: 0.05angle: 0angle_bilateral: falsetype: centric_range
所有布局类型都支持以下可选参数:
additional_height:浮点数,使物体相对于桌面上升该米数。reset_orientation:布尔值,是否在开始时重置物体朝向。默认的重置朝向为四元数[0.5, 0.5, 0.5, 0.5]。orientation:指定一个朝向来覆盖默认重置朝向。