技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
odometry-slam【数据与研究】This skill guides a Researcher through gradSLAM odometry selection, ICP configuration, map fusion, and small deterministic RGB-D SLAM workflows.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill when a task must localize RGB-D frames, build a global
Pointclouds map, or choose between known poses, point-to-plane ICP, and
GradICP. Start with the input contract in
the API reference, then select a workflow from
the workflow guide. The bundled smoke programs are
CPU-only, in-memory, and do not download data or open a viewer:
python scripts/pointfusion_smoke.py --helppython scripts/icpslam_smoke.py --helpgt when each frame has trustworthy poses. It is the deterministic
baseline and is the appropriate first check for a new RGB-D/data pipeline.icp for non-differentiable point-to-plane LM alignment when the
consecutive clouds have sufficient overlap, usable map normals, and a good
initial pose.gradicp when the alignment path must retain the package's
differentiable GradLM-style update. Treat this as a differentiable odometry
provider, not as proof that every map-building operation is differentiable.ICPSLAM and PointFusion accept only the exact strings gt, icp, and
gradicp; reject any other value before constructing a long run.colors: (B,L,H,W,3), depths: (B,L,H,W,1), intrinsics (B,1,4,4), and,
when available, poses (B,L,4,4). Pass channels_first=True only for the
corresponding (B,L,C,H,W) tensors.RGBDImages object for frames and a Pointclouds object for map or
live clouds. Point lists are (N,3) and normals must have the same shape as
their point list. Use sequence slices such as frames[:, t] for a one-frame
object.dsratio=1 or 2 on a tiny test, then increase it only after
correspondence counts and pose output are sensible. downsample_rgbdimages
and the SLAM localization path require a one-frame RGB-D object.ICPSLAM(odom=..., dsratio=..., numiters=..., damp=..., dist_thresh=..., lambda_max=..., B=..., B2=..., nu=..., device=...) returns
(pointclouds, poses); poses are (B,L,4,4) and the map contains one global
cloud per batch item.PointFusion has the same odometry/solver arguments and additionally uses
dist_th, angle_th (degrees), and sigma for correspondence filtering and
confidence-weighted fusion. Its map contains normals, colors, and confidence
features when valid depths are present.forward(frames), give a sequence. For step, give a one-frame
live_frame; pass prev_frame for icp/gradicp, and pass None on the
first frame. With gt, poses on the live frame are used directly and
prev_frame is not the odometry input.gt smoke first, then the same fixture with icp and gradicp. Check
pose and padded map shapes, finite values, device, and point counts before
interpreting trajectory quality.GradICP keeps tensor operations in the update path and is intended for
differentiable odometry. Nearest-neighbor index selection, conditionals,
point-cloud padding, and map fusion still limit smooth end-to-end gradients;
this skill does not claim a full differentiable SLAM graph. ICP uses a
trust-region/LM branch and is primarily an alignment routine. Ground truth
computes T = inverse(T1) @ T2 from the supplied poses. Keep CPU as the
portable baseline; an accelerated device is additive evidence, not implied by
successful CPU execution.
TUM, ICL, and ScanNet workflows need a user-provided dataset root and the
adapter's expected files/metadata. They are not replaced by the tiny smoke
fixture. Ask for the dataset layout and pose/depth conventions, validate one
batch into the RGB-D shape contract, and only then hand that batch to
PointFusion or ICPSLAM. Do not download data, open GUI viewers, or claim
that an external sequence was validated when only a synthetic fixture ran.
For extension failures, invalid odometry choices, missing normals, empty correspondences, shape/device mismatches, fusion thresholds, and external-data handoff, use troubleshooting. For exact signatures, output shapes, solver controls, and fusion helper contracts, use the API reference. The scripts are intentionally small adapters, not replacements for dataset validation or benchmark runs.