Generation Config
generation_config 控制数据生成过程。当前 GenManip 的本质任务为 Pick-and-Place,下面补充更详细的可选项与语义。
Goal 基础
Section titled “Goal 基础”goal 使用嵌套列表来表示逻辑关系:
- 外层列表 = 逻辑 OR(选择多种可替代的目标集合)
- 内层列表 = 逻辑 AND(同一目标集合内的多个约束需同时满足)
示例:
[[{banana → left of plate}], [{banana → right of plate}]]:香蕉可以放在盘子的左边 或 右边。[[{banana → left of plate}, {cup → right of plate}]]:香蕉必须放在左边,杯子必须放在右边(两个要求同时成立)。
每个目标项至少包含 obj1_uid、obj2_uid 与 position。抓取姿态通常由 AnyGrasp 提供。
此外,goal 还支持三层列表(three-level list)——用于在同一 Config 中定义若干互相独立的任务并随机抽取执行(表示不同任务的集合),这与把多个目标放在同一内层(AND)语义不同(AND 表示同时满足多个条件,而三层列表表示在不同任务间采样)。
扩展的 Goal 示例
Section titled “扩展的 Goal 示例”示例(较为完整的 goal 配置):
obj1_uid:- 'bread4'obj2_uid:- 'beef'position:- topfixed_position: truefixed_position_config: translation: [0.0, 0.02, -0.01] orientation: [0.924, -0.383, 0.0, 0.0]force_fixed_grasp: truefixed_grasp_config: translation: [0.0, 0.0, -0.03]allow_fixed_grasp: truemesh_top_only: trueignored_uid:- 'plate'- 'bread2'arm: automotion_config: pre_grasp_distance: 0.08 post_grasp_distance: 0.16 pre_place_distance: null post_place_distance: 0.08GenManip 的 Pick-and-Place 轨迹生成策略如下:
- 计算抓取位姿(grasp pose)与放置位姿(place pose)。
- 基于抓取/放置位姿沿夹爪朝向推导出四个辅助位姿:
pre_grasp、post_grasp、pre_place、post_place。默认位移距离分别为0.08m、0.16m、0.16m、0.08m。 - 在这些位姿之间进行插值,得到连续的轨迹(motion)。
固定抓取 / 固定放置(Fixed grasp / Fixed placement)
Section titled “固定抓取 / 固定放置(Fixed grasp / Fixed placement)”-
allow_fixed_grasp(bool):允许在 AnyGrasp 无响应时使用固定计算的抓取位姿(基于 mesh top)。 -
force_fixed_grasp(bool):强制使用固定抓取位姿(直接忽略 AnyGrasp)。 -
fixed_grasp_config:用于指定固定抓取位姿的相对平移与朝向,例如:fixed_grasp_config:translation: [0.0, 0.0, -0.03] # 相对平移orientation: [0.924, -0.383, 0.0, 0.0] # 绝对朝向,四元数 wxyz -
fixed_position(bool):是否使用固定放置位置(默认放置在容器中心,放置物底面与容器顶端对齐)。 -
fixed_position_config:覆盖默认放置位置的平移与朝向,例如:fixed_position_config:translation: [0.0, 0.02, -0.01] # 相对平移orientation: [0.924, -0.383, 0.0, 0.0] # 绝对朝向,四元数 wxyz -
ignored_uid:放置计算时应忽略(不作为碰撞物考虑)的 UID 列表(例如在堆叠场景中忽略某些已有物体)。 -
mesh_top_only:若为true,仅使用物体网格的最高点来计算抓取位姿;默认会使用裁剪区域(crop)后的 mesh 的顶点集合。
其他生成选项
Section titled “其他生成选项”arm:字符串,"auto" | "left" | "right",用于双臂场景指定使用哪只机械臂;auto会选择距离抓取位姿最近的臂。motion_config:字典,包含pre_grasp_distance、post_grasp_distance、pre_place_distance、post_place_distance。若为null,表示跳过对应的动作阶段。
示例:
motion_config: pre_grasp_distance: 0.08 post_grasp_distance: 0.16 pre_place_distance: null post_place_distance: 0.08Action Path 与 Planner
Section titled “Action Path 与 Planner”- Action Path:通常设置为
mode: auto且robot: 0,GenManip 会基于 goal 自动解析出动作序列(action sequence)。 - planner:当前默认使用
curobo(实验中表现优于早期的mplib)。建议保留默认设置,除非你有特殊需要。