Motion Planning
GraspTrajBuilder filters grasps, optionally IK-converts them onto an arm, then plans with build_motion_planner: a WarpPlanner by default, or its base TorchPlanner when MotionPlannerConfig.backend is "torch".
Convert floating-base grasps into deployable trajectories: filter, optional IK-convert to fixed, then plan.
target_xy (S, 2) overrides the ori-gate target when scenes lack a target mesh (e.g. deploy perception).
Grasp traj builder: floating-base grasps -> deployable trajectories (stages/traj_builder).
Fixed-base arm+hand robot trajectories are planned for; also the camera-mount robot. None if floating-only.
Floating-base hand-only robot the input grasps come from.
True: filter + IK-convert floating grasps, build trajectories for the fixed robot. False: plan grasps as-is.
Motion planner config for the trajectory from the init pose to the grasp pose.
Hand-axis cone filter on optimized grasps: which hand_coord_spec axis to check. None disables it.
Direction hand_axis should point, in the robot base frame (world for floating hands).
Hand-axis cone half-angle in degrees.
Reject grasps where the contact-avoid point is closer to the target than the contact point on that link.
Reject grasps whose hand spheres overlap the target by more than pen_filter_threshold (m); fingertip ok.
Reject grasps whose arm qpos (L2 over arm joints) is further than this from robot rest pose; None disables.
Half-width (fraction of each arm joint's range around its midpoint) the IK solution must lie in; 1.0 disables.
Ori-gate half-angle (deg) for the floating->fixed IK conversion; 45 = default, 90 effectively disables.
Plan against a table-only scene (object removed), mirroring deployment. Pre/post qpos use the real scene.
TorchPlanner on robokit's MotionPlanner: joint-goal plans, or one plan from start through the lift.
Plan a padded batch: needs grasp_qpos, returns pre/post-grasp qpos + full_traj_qpos unless pre-post-only.
Compute E_pen + E_smooth for a trajectory; mirrors optimize_trajs loss, a benchmark reference metric.
One robokit plan: start → pre-grasp against the scene, then grasp, the locked hold and the lift without it.
robokit times every segment but the hold, which keeps num_steps_holding; the plan is sampled every control_dt and padded with its last frame to num_steps when shorter. Returns it and the start → pre-grasp penetration.
Trajectory optimization params — hand-independent defaults.
Motion planner backend. 'warp' (default; robokit MotionPlanner, fixed-base only) is faster than 'torch'.
Pre-grasp arm gradient move
Pre-grasp hand gradient move
Post-grasp hand gradient move
Lifting distance
Padding distance
Optimization steps
Penetration weight
Arm smooth weight
Hand smooth weight
Velocity smooth weight
Number of steps in pre-grasp
Number of steps in pre-to-grasp
Number of steps in holding
Close gradually during holding instead of settling at the closed pose.
Number of steps in post-grasp
Seconds per trajectory step, the simulator's control period.
Fixed base, warp: one robokit plan through start, pre-grasp, grasp, hold and lift, timed by robokit except the hold (num_steps_holding); at least num_steps long. False optimizes start → pre-grasp alone and fills the other phases at their step counts.
Self-collision weight (warp only). 0 disables the term; the robokit q_goal preset ships it off.
Self-collision margin in metres; only read when the weight is > 0.
DOF indices whose start values come from grasp_qpos, not init pose; also locked during post-grasp lift IK.
Number of samples per batch
Number of grasps to plan per scene (pad/truncate to this)