用途:在 Isaac Sim 场景中为楼层区域自动布置基础设施相机,使目标比例的平面被观测到。基于 isaacsim.sensors.rtx.placement 的 CameraPlacementManager API。
主要能力:解析目标范围(显式 XY 边界或导航网格范围),按 patch_size 在 focus_height 焦点平面切分网格并标记可达单元;对四个基本方向估计候选相机视锥的地面覆盖,贪心选择新增未覆盖单元最多的位姿;达到 target_coverage_ratio、用完 num_cameras 预算或新增相机增益低于 min_coverage_increase 时停止。支持 preflight、scope、place、coverage 等动作,可输出 camera_info_payload.json。
使用方式:脚本是 python_server 载荷,非独立程序。前置条件为 Isaac Sim 6 / Kit 110 且 python_server 运行(端口 8226),启用 isaacsim.sensors.rtx.placement 扩展,场景已加载并烘焙导航网格或提供 scope=xmin,xmax,ymin,ymax。可通过 run_script("scripts/place_camera_max_coverage.py", args=["action=preflight"]) 调用,或经 isaac-sim-remote 客户端发送。典型流程:preflight 检查扩展/场景/范围,scope 确认边界,place 布点,coverage 调试绘制并记录覆盖率。也可直接调用 place_camera_in_target_scope_explicit。
适用场景:设施监控布局、需要按覆盖率而非固定数量布点的楼层相机规划。
限制:不构建该扩展,需从指定 kit 文件消费 pin;仅支持实时 Kit,覆盖率使用单一焦点平面,无多层模型;贪心解不保证最小集合;成本随面积/patch_size² 增长,大场景可能耗时数十秒;output_camera_data 默认 False 时即使成功也返回 None,异常被吞入 carb.log_error 并返回部分列表,应核对场景而非返回值;单目标无遮挡视图应改用 place-camera-aim-at。