jiuwensymbiosis SO-101 固定相机手眼标定(Eye-to-Hand)完整实战指南:从示教采集到 T_base_cam 发布

发布时间:2026/10/13 14:19:14
jiuwensymbiosis SO-101 固定相机手眼标定(Eye-to-Hand)完整实战指南:从示教采集到 T_base_cam 发布
具身智能人工智能AI Agent机器人计算机视觉Agent 编排【免费下载链接】jiuwensymbiosisJiuwen Symbiosis就是一个能懂人话、看得见物理世界、长了四肢的智能助手。用户不需要示教不需要教它怎么抓东西怎么走路就像指挥一个经验丰富的工人一样用自然语言下任务它就能自己完成感知、理解、规划、执行。项目地址https://gitcode.com/openJiuwen/jiuwensymbiosis点击查看免费下载本指南讲解如何在 jiuwensymbiosis 项目中为 5 关节 SO-101 机械臂完成 eye-to-hand固定相机、标定板装在夹爪上手眼标定先手动示教 waypoint再自动回放采集、求解并发布正式的T_base_cam标定文件最后接入运行配置。读完你不仅能跑通 CLI 三阶段流程还能理解示教姿态要求、质量门禁observability / target consistency / reload smoke、退出码语义与故障排查的内在原理。本文适用于需要精细控制参数、批量脚本化或离线重解标定的场景。适用场景与核心概念本文只适用于以下固定组合机械臂SO-1015 个臂关节shoulder_pan / shoulder_lift / elbow_flex / wrist_flex / wrist_roll通过 LeRobot Feetech STS3215 舵机驱动相机固定在桌面、支架或机器人基座附近不随机械臂运动标定方式eye-to-hand眼在手外标定板刚性固定在夹爪上随机械臂一起运动求解结果T_base_cam即相机坐标系到机器人 base 坐标系的固定 4×4 变换平移单位为 mm。在 SO-101 适配器中camera_mount被类型系统限定为唯一取值eye_to_hand见 jiuwensymbiosis/adapters/so101/config.pySo101Config.camera_mount: Literal[eye_to_hand]from_dict加载器会拒绝其他任何值并抛出明确错误。这意味着 eye-to-hand 是该适配器唯一支持的标定拓扑配置中的挂载方式就是整个标定子系统的唯一权威来源。整个流程分为三个阶段阶段CLI 模式作用是否需要硬件1--collect-poses手动示教一组关节 waypoint是2--auto自动回放 waypoint、采集图像、求解并尝试发布正式标定是3--replay使用 station 归档离线重新求解否阶段 1 和阶段 2 是首次标定的必需步骤阶段 3 用于换算法、调阈值或复查结果。首次标定建议先使用 GUI 向导如果这是你第一次做标定建议优先使用图形界面的标定向导而不是直接操作 CLIpython -m jiuwensymbiosis_gui --gui workbench # 打开后进入「工具 → 手眼标定」向导把本文的全部步骤串成四步并补上了命令行没有的三件事没有标定板时可直接生成可打印 PDF含校验标尺防止打印缩放导致的静默误差对应工作台中的板面打印模块 jiuwensymbiosis_gui/workbench/board_print.py示教时实时显示标定板识别到了多少角点——命令行只能盲按回车废姿态要等采集完才暴露质量门禁失败时给出对应的改进动作见 jiuwensymbiosis_gui/workbench/pages/calibration_view.py它把CalibrationDecision.failed_checks逐条映射为可操作建议。向导与 CLI 调用的是同一套标定代码jiuwensymbiosis-calibrate-eye-to-hand背后的统一工作流产出的标定文件也完全相同。CLI 的价值在于精细控制参数、批量脚本化、离线重解。1. 安全与硬件准备开始前必须逐项确认SO-101 已完成 LeRobot 电机标定配置中的robot_id与 LeRobot 标定时使用的 ID 一致LeRobot 官方标定流程要求此处不再附外部链接按官方文档操作即可用lerobot-find-port确认串口路径固定相机支架牢固整个采集期间相机不得移动、转动或重新对焦标定板刚性固定在夹爪上不能在采集过程中松动相机视野覆盖 SO-101 的主要工作区域USB 连接稳定急停或断电手段触手可及自动采集前清空机械臂周围障碍物手动示教会释放 5 个臂关节的力矩SO-101 的肘关节受重力影响明显必须用另一只手托住机械臂。⚠️ 标定配置会使用较宽的关节限位和放宽的工作空间限制只适合受控标定。不要把这些安全参数直接复制到日常运行配置正式运行配置见 configs/so101/so101.yaml。底层实现上disable_torque_on_disconnect: false表示标定过程中断连时保持舵机力矩避免elbow_flex等重力负载关节失力矩后下坠断连时的清理路径_settle_holding_joints会先展宽死区来抑制舵机极限环再恢复寄存器见 jiuwensymbiosis/adapters/so101/lowlevel.py。2. 安装依赖SO-101 适配器要求Python 3.12。建议在项目环境中一次安装标定和 SO-101 依赖python -m pip install -e .[gui,calib,so101]guiextra 安装现有工作台的 NiceGUI 依赖nicegui2,3与pillow10calibextra 提供标定依赖opencv-python4.8,5.0ChArUco 需要 OpenCV 4.7/4.8 以上主模块支持且标定求解依赖cv2.calibrateHandEyeOpenCV 5.x 已移除该顶层名、pyrealsense22.57RealSense 出厂内参 取帧so101extra 提供lerobot[feetech,kinematics]0.6.0,0.7与引脚驱动。只运行无界面 CLI 工作流时可改装.[calib,so101]。如需运行标定子系统测试pytest tests/unit_tests/calibration/标定求解在缺 OpenCV 时会给出精确安装提示见 jiuwensymbiosis/calibration/domain/solver.py 的_require_cv2这是calibextra 不混入重型 GPU 栈的原因。3. 准备 ChArUco 标定板推荐使用5×7 的 ChArUco 板。没有现成标定板时可调用仓库自带的共享板生成器生成可打印 PNGpython -c from scripts.calibrate.handeye_board import BoardSpec, generate_board_image; generate_board_image(BoardSpec(charuco, 5, 7, 20.86, 15.2), tmp/so101_charuco.png)该生成器scripts/calibrate/handeye_board.py以 300 DPI、40px 边距输出图像BoardSpec的square_size_mm被强制作为毫米单位直接决定输出平移尺度。打印和安装要求按100% 比例打印关闭“适应页面”或自动缩放打印后用尺子实际测量方格边长和 marker 边长将实测值用于后续所有命令的--square-size-mm和--marker-size-mm把纸张平整贴在硬质平板上避免弯曲、翘边和反光将硬板刚性固定在夹爪上尽量避免夹爪遮挡 marker 或角点。以下示例统一假设实测参数为boardcharuco squares-x5 squares-y7 square-size-mm20.86 marker-size-mm15.2如果实际尺寸不同必须同步修改阶段 2 的采集命令。方格尺寸错误会直接造成平移尺度错误——solvePnP的物体点坐标直接由square_size_mm构造见BoardSpec.chessboard_object_points尺寸偏差会成比例地进入最终T_base_cam的平移。4. 查询 SO-101 串口和相机序列号查询机械臂串口按 LeRobot 提示此步骤需要先拔掉电脑上的机械臂 USB 连接线lerobot-find-port查询 RealSense 序列号rs-enumerate-devices | grep Serial Number也可以使用 Pythonpython -c import pyrealsense2 as rs; crs.context(); print([d.get_info(rs.camera_info.serial_number) for d in c.devices])5. 配置标定环境以项目内的 scripts/calibrate/so101_calibrate.yaml 为模板。建议复制成本机配置避免把设备路径和序列号提交到仓库cp scripts/calibrate/so101_calibrate.yaml scripts/calibrate/so101_calibrate.local.yaml至少检查以下字段env: cfg: low_level: name: so101 port: /dev/your_port robot_id: so101_left calibration_dir: null # 标定时以连接瞬间的实际关节角作为 home。 home_use_init_pose: true disable_torque_on_disconnect: false joint_limits: shoulder_pan: [-180.0, 180.0] shoulder_lift: [-180.0, 180.0] elbow_flex: [-180.0, 180.0] wrist_flex: [-180.0, 180.0] wrist_roll: [-180.0, 180.0] # 固定相机的挂载方式。SO-101 标定只允许 eye_to_hand。 camera_mount: eye_to_hand camera_serial: your-camera-serial camera_resolution: [640, 480] camera_fps: 30 calibration: adapter_module: jiuwensymbiosis.adapters.so101 trajectory: space: joint output: tmp/so101_eye_to_hand.json observability: min_relative_rotation_deg: 5.0 min_axis_separation_deg: 15.0 min_max_rotation_deg: 20.0 min_translation_baseline_mm: 30.0 duplicate_rotation_deg: 2.0 duplicate_translation_mm: 5.0 # SO-101 舵机在重力负载下可能存在约 3.5° 稳态偏差。 capture_gate: reach_rotation_deg: 4.0 reach_translation_mm: 0.5 exposure_rotation_deg: 1.0 exposure_translation_mm: 0.5关键字段解读结合模板文件内注释与源码home_use_init_pose: trueconnect 时把当前关节角作为 home 并豁免safety_validated门禁。标定每次起始位不同正合此意同时z_min_safe_mm / z_max_safe_mm / workspace_bounds设为 null/极大值以放宽笛卡尔安全边界避免标定位姿被 SafetyRail 误拦joint_limits±180°标定用宽软限位。真机运行配置请用收紧后的限位见 configs/so101/so101.yamlcamera_mount: eye_to_hand不要把camera_mount放到顶层calibration:中它的唯一权威来源是env.cfg.low_level.camera_mount模板文件注释明确声明。标定 CLI 从设备device.camera_mount读取挂载方式绝不由用户重复声明capture_gate决定 station 的实际位姿是否足够接近指令值以允许采图。SO-101 的 STS3215 舵机没有积分项在重力负载下elbow_flex接近 0° 时稳态偏差可达约 3.5°因此默认 0.5° 的 reach 门禁会误跳过有效 station标定使用真实关节角的 FK只要实际位姿落在门内就是有效观测。reach_rotation_deg: 4.0即盖住约 3.5° 稳态偏差并留 0.5° 余量observability观测性阈值全部角度单位为度、长度单位为毫米CLI 也提供同名参数可覆盖。注意模板 YAML 中move_timeout_s: 5.0、joint_tolerance_deg: 3.5、settle_overcompensate: false属于标定专用短超时与紧到位容差max_relative_target: null保持 null避免 LeRobot 二次逐轴裁剪。后续命令统一使用环境变量export CALIB_CONFIGscripts/calibrate/so101_calibrate.local.yaml如果不想使用 shell 变量可把命令中的$CALIB_CONFIG直接替换为配置文件路径。6. 阶段 1手动示教 waypoint⚠️ 运行下列命令前必须先托住机械臂防止突然松开力矩导致机械臂掉落。命令运行后机械臂会松开力矩建议先阅读下方交互过程和示教姿态要求再开始操作。运行jiuwensymbiosis-calibrate-eye-to-hand \ --config $CALIB_CONFIG \ --collect-poses tmp/so101_wp.npz--collect-poses只记录关节 waypoint不拍摄标定图像因此此阶段的板参数不参与计算。底层实现上collect_waypointsjiuwensymbiosis/calibration/workflows/collect.py调用device.manual_guidance()上下文管理器在上下文内循环提示move to waypoint N then Enter to record (qfinish)最终写出带自描述元数据的 waypoint 归档。交互过程CLI 连接 SO-101程序关闭 5 个臂关节的力矩夹爪力矩保持开启见disable_arm_torque只关ARM_JOINT_ORDER五关节jiuwensymbiosis/adapters/so101/lowlevel.py托住肘部将机械臂缓慢移动到第一个姿态确认标定板完整出现在固定相机视野中然后按 Enter 记录重复移动和记录建议准备 1220 个 waypoint少于 2 个会直接报错拒绝完成后输入q并按 Enter程序先同步当前关节目标preset_current_joint_goal再恢复力矩并写出tmp/so101_wp.npz。恢复力矩必须先 preset 当前位姿再上电否则机械臂会弹回上一次的目标位置——这正是restore_torque_at_current_pose先写目标后使能的原因jiuwensymbiosis/adapters/so101/lowlevel.py。示教姿态要求机械臂运动过程中标定板不要碰到物体或桌面否则导致标定板移动或变形直接影响标定结果至少覆盖两条不同的旋转轴不要只绕单一轴转动最大相对旋转建议达到20° 以上标定板在相机坐标系中的平移范围建议超过 30 mm覆盖视野中央、左右、前后和不同距离避免所有姿态集中在小区域每个姿态都要保证板完整、清晰、不过曝并尽量减少夹爪遮挡不要重复记录几乎相同的姿态。如果力矩恢复失败程序会报ManualGuidanceRecoveryError。此时继续托住机械臂停止后续自动流程检查电机总线并人工恢复安全姿态。7. 阶段 2预演与自动采集7.1 先执行 dry-rundry-run 会检查 archive 类型、adapter、mount、关节顺序、单位、周期性和轨迹插值但不会运动或拍照jiuwensymbiosis-calibrate-eye-to-hand \ --config $CALIB_CONFIG \ --auto tmp/so101_wp.npz \ --n-stations 20 \ --dry-run \ --out tmp/so101_eye_to_hand.json从源码看jiuwensymbiosis/calibration/workflows/execute.pydry-run 也会完成轨迹稠密化joint 空间按max_joint_step_deg插值从而把关节顺序/单位/周期性元数据与实机核对——这些检查纯计算、绝不命令设备。只有 dry-run 成功后才进入真机自动采集。7.2 自动采集、求解和发布确认急停可达、工作区无障碍物后运行jiuwensymbiosis-calibrate-eye-to-hand \ --config $CALIB_CONFIG \ --board charuco \ --squares-x 5 --squares-y 7 \ --square-size-mm 20.86 --marker-size-mm 15.2 \ --auto tmp/so101_wp.npz \ --n-stations 20 \ --confirm-estop \ --cross-check \ --min-corners 16 \ --out tmp/so101_eye_to_hand.json几个关键参数的默认值来自 scripts/calibrate/hand_eye_calib.py 的 argparse 定义--board默认charuco--min-corners默认 16、下限 6cv2.solvePnP默认求解至少需要 6 组点对--max-joint-step-deg默认 5.0--method默认PARK。注意 CLI 入口jiuwensymbiosis-calibrate-eye-to-hand在 pyproject.toml 中映射到scripts.calibrate.eye_to_hand_calib:main它只是统一流程的薄封装额外强制require_mounteye_to_hand见 scripts/calibrate/eye_to_hand_calib.py与hand_eye_calib.main共享同一套 Python 应用流程。自动流程会依次执行对应 execute.py 的execute_calibration校验 waypoint archive 的 adapter、mount 和关节元数据validate_archive_ownership会核对 archive 元数据中的 adapter 包名与当前加载的适配器一致按默认不超过 5° 的关节步长插值轨迹SO-101 支持move_joint_path流式下发中间点按trajectory_hz发送、只在段末 settle在第一次运动前抓取一帧验证固定相机、内参和图像数据可用_dynamic_camera_preflight帧被丢弃station 仍采新鲜帧移动至采样位置并等待稳定_settle优先调用wait_until_settled否则以 0.08s 周期轮询关节位姿连续 3 次变化 ≤0.1° 判定稳定硬上限 5s 防止舵机卡死挂起检查实际姿态与目标姿态的偏差reach gate注意这里只是诊断——标定记录的是真实关节角的 FK未到位但稳定的位姿仍是几何自洽的有效观测拍摄图像并检测 ChArUco 板CharucoDetector.detectBoard→matchImagePoints→solvePnP求T_cam_target与重投影 RMS见 handeye_board.py检查曝光前后机械臂是否漂移exposure gate采图前后两次读位姿旋转 ≤1.0°、平移 ≤0.5mm 才接受记录通过 gate 的 station并写出 station 归档*.stations.npz自描述含 adapter_module、mount、joint 元数据、每次尝试的 capture meta 含被拒原因求解T_base_cam执行观测性和刚性一致性门禁通过 SO-101 运行时 loader 做reload smoke全部通过后才发布正式标定。--n-stations是目标采样数和尝试上限不保证最终接受同样数量的 station。板检测失败、到位偏差过大或曝光期间漂移的站点会被跳过capture_meta会逐一记录 reason如capture_error、detect:...、exposure_drift。7.3 输出文件和退出码成功时产生tmp/so101_eye_to_hand.json正式 schema-2 标定顶层包含T_base_camtmp/so101_eye_to_hand.stations.npz自描述 station 归档可用于离线重解。如果求解完成但质量门禁或 reload smoke 未通过会产生tmp/so101_eye_to_hand.candidate.json仅供 REVIEW矩阵位于candidate.T_base_cam运行时 loader 不会加载它。如果有效 station 少于求解下限MIN_STATIONS 3即 OpenCVcalibrateHandEye的硬下限实际推荐 1020见 solver.py程序可能只返回 REVIEW 状态而不生成 candidate 文件此时应查看日志和 station 归档重新示教或改善成像后再采集。退出码退出码含义0正式发布成功或 dry-run 成功1执行错误2preflight 契约检查失败3只得到 REVIEW/candidate未发布正式标定只有退出码为0且输出 JSON 顶层存在T_base_cam时才可作为运行时标定使用。退出码 3 是“有产物但不是可加载标定”的刻意设计——candidate 报告也是产物但绝不能以 0 退出。8. 阶段 3离线重解可选station 归档允许你不连接任何硬件地换算法、调阈值、复查结果。8.1 不带配置只生成 candidatejiuwensymbiosis-calibrate-eye-to-hand \ --replay tmp/so101_eye_to_hand.stations.npz \ --method HORAUD \ --cross-check \ --out tmp/so101_eye_to_hand_horaud.json没有--config时不会发布正式标定只会生成tmp/so101_eye_to_hand_horaud.candidate.json正常退出码为3。此时归档元数据是唯一的 mount 权威replay_calibration校验metadata.mount后直接求解见 jiuwensymbiosis/calibration/workflows/replay.py。8.2 带配置允许正式发布jiuwensymbiosis-calibrate-eye-to-hand \ --replay tmp/so101_eye_to_hand.stations.npz \ --config $CALIB_CONFIG \ --method HORAUD \ --cross-check \ --out tmp/so101_eye_to_hand_horaud.json该模式无需连接机械臂和相机但会使用配置确认 adapter 与camera_mount作为一致性断言归档才是发布权威并通过 SO-101 loader 做 reload smoke。只有质量门禁和 reload smoke 均通过时才会写出正式 JSON。可用求解方法包括PARK、TSAI、HORAUD、ANDREFF和DANIILIDIS对应 OpenCVcv2.CALIB_HAND_EYE_*常量见 solver.py。eye-to-hand 求解时 OpenCV 消费的是inv(T_base_flange)即 base→gripper 逆变换最终得到T_base_cam。建议以PARK为主CLI 默认方法用--cross-check检查不同方法之间是否存在明显分歧报告max_rotation_deg / max_translation_mm不要仅因为某种方法能通过门禁就忽略采样质量。9. 应用到 SO-101 运行配置先备份正式标定文件到稳定位置mkdir -p configs/so101/calibration cp tmp/so101_eye_to_hand.json configs/so101/calibration/so101_eye_to_hand.json然后在 SO-101 运行配置的env.cfg.low_level中设置camera_mount: eye_to_hand camera_serial: 与标定时相同的固定相机序列号 calib_path: configs/so101/calibration/so101_eye_to_hand.jsoncalib_path字段config.py让运行时通过load_calibration_artifact加载 schema-2 JSON未配置时感知工具在调用时抛错fail-closed 语义。使用前检查正式 JSONpython -c import json; pjson.load(open(configs/so101/calibration/so101_eye_to_hand.json)); assert p.get(schema_version)2 and T_base_cam in p; print(calibration artifact OK)schema 词汇定义在 jiuwensymbiosis/calibration_schema.py当前版本CURRENT_SCHEMA_VERSION 2eye-to-hand 的帧字段为T_base_cameye-in-hand 为T_flange_cam两种 mount 以不同字段发布。标定文件与物理安装是一一对应的。以下任一情况发生后都必须重新标定固定相机或支架被移动SO-101 基座位置或朝向改变标定板在夹爪中的安装发生松动或变化后重新采集相机更换、内参发生变化或分辨率模式改变。10. 常见故障排查现象常见原因处理建议ManualGuidanceRecoveryError示教结束后力矩恢复失败托住肘部停止自动流程检查电机总线并人工恢复安全姿态camera preflight failed序列号错误、USB 不稳定或内参不可读检查camera_serial、USB 连接、RealSense 驱动和相机占用情况board not detected板出视野、角点被遮挡、反光、模糊或尺寸参数错误重新示教姿态改善光照降低运动速度核对板规格reach gate failed舵机稳态偏差过大或 waypoint 不可达检查实际姿态和机械负载不要盲目继续放宽reach_rotation_degexposure drift拍摄期间舵机仍在漂移检查机械负载、供电和关节稳定性改善 settle 状态observability_flange_axes姿态只围绕单一轴变化重新示教增加至少另一条旋转轴的变化observability_camera_axes标定板相对固定相机的运动退化增加板的倾斜、旋转和视野内平移确认板与夹爪刚性连接observability_*_trans平移覆盖太小扩大工作区内的前后、左右或远近变化observability_duplicateswaypoint 过于相似删除重复姿态并重新采集只生成 candidate质量门禁或 reload smoke 失败查看 candidate 的reasons修复采样问题后重新采集或重解标定后投影存在固定偏差板尺寸错误、相机/基座移动或坐标安装不一致重新测量板尺寸确认硬件未移动然后重新标定门禁失败名与EyeToHandAcceptancePolicy.decidejiuwensymbiosis/calibration/domain/quality.py产出的failed_checks一一对应eye-to-hand 侧要求法兰侧与相机侧双端可观测性各至少 2 条旋转轴、轴分离 ≥15°、最大旋转 ≥20°、平移基线 ≥30mmT_flange_target刚性不变量平移 std ≤3mm、旋转 max ≤2°。固定相机看到静止标定板会直接触发observability_camera_axes——这正是“不要把所有姿态挤在一个小区域”这条要求的量化依据。调试时可在命令末尾增加--debug获取更详细日志。不要直接手工把 candidate 中的矩阵复制到正式 schema-2 文件以绕过质量门禁和 reload smoke。11. 命令速查# 1. 示教 waypoint jiuwensymbiosis-calibrate-eye-to-hand \ --config $CALIB_CONFIG \ --collect-poses tmp/so101_wp.npz # 2. 无运动预检 jiuwensymbiosis-calibrate-eye-to-hand \ --config $CALIB_CONFIG \ --auto tmp/so101_wp.npz --n-stations 20 --dry-run \ --out tmp/so101_eye_to_hand.json # 3. 真机采集、求解、发布 jiuwensymbiosis-calibrate-eye-to-hand \ --config $CALIB_CONFIG \ --board charuco --squares-x 5 --squares-y 7 \ --square-size-mm 20.86 --marker-size-mm 15.2 \ --auto tmp/so101_wp.npz --n-stations 20 \ --confirm-estop --cross-check \ --out tmp/so101_eye_to_hand.json # 4. 离线重解并重新执行发布门禁 jiuwensymbiosis-calibrate-eye-to-hand \ --replay tmp/so101_eye_to_hand.stations.npz \ --config $CALIB_CONFIG \ --method HORAUD --cross-check \ --out tmp/so101_eye_to_hand_horaud.json延伸阅读标定子系统在仓库中的位置统一 CLI 应用流程scripts/calibrate/hand_eye_calib.pyargparse 与三种互斥模式--collect-poses / --auto / --replayeye-to-hand 别名 scripts/calibrate/eye_to_hand_calib.py标定配置模板scripts/calibrate/so101_calibrate.yamlGUI 内置档案见 jiuwensymbiosis_gui/workbench/data/calibration_profiles.yaml工作流编排collect_waypoints示教、execute_calibration自动采集、replay_calibration离线重解、solve_and_publish / publish_with_reload发布门禁分别位于 jiuwensymbiosis/calibration/workflows/ 下的 collect.py、execute.py、replay.py、publication.py求解与质量门禁jiuwensymbiosis/calibration/domain/solver.pyOpenCVcalibrateHandEye 5 种方法 交叉校验、jiuwensymbiosis/calibration/domain/quality.pyAXXB 残差、观测性、刚性一致性、两类验收策略标定板生成与检测scripts/calibrate/handeye_board.pyschema-2 契约jiuwensymbiosis/calibration_schema.pySO-101 适配器jiuwensymbiosis/adapters/so101/lowlevel.py手动引导力矩恢复、jiuwensymbiosis/adapters/so101/config.pycamera_mount校验与calib_pathGUI 四步向导jiuwensymbiosis_gui/workbench/pages/calibration_view.py 与 jiuwensymbiosis_gui/workbench/calibration_engine.py测试pytest tests/unit_tests/calibration/覆盖求解、质量门禁、归档、发布产物与集成契约如 tests/unit_tests/calibration/test_quality.py、tests/unit_tests/calibration/test_integration.py。赞分享具身智能人工智能AI Agent机器人计算机视觉Agent 编排【免费下载链接】jiuwensymbiosisJiuwen Symbiosis就是一个能懂人话、看得见物理世界、长了四肢的智能助手。用户不需要示教不需要教它怎么抓东西怎么走路就像指挥一个经验丰富的工人一样用自然语言下任务它就能自己完成感知、理解、规划、执行。项目地址https://gitcode.com/openJiuwen/jiuwensymbiosis点击查看免费下载相关推荐Jiuwen Symbiosis 中 SO-101 固定相机 hand-eye 标定实战从示教 waypoint 到 T_base_cam 发布Jiuwen Symbiosis 中 SO 101 固定相机 hand eye 标定实战从示教 waypoint 到 T_base_cam 发布 本篇围绕 J具身智能人工智能AI Agent机器人计算机视觉Agent 编排Jiuwen Symbiosis 手眼标定实战指南Eye-in-Hand 与 Eye-to-Hand 的采集、求解、质检与复验全流程Jiuwen Symbiosis 手眼标定实战指南Eye in Hand 与 Eye to Hand 的采集、求解、质检与复验全流程 手眼标定是让机械臂上的具身智能人工智能AI Agent机器人计算机视觉Agent 编排jiuwensymbiosis 示例工程实战用 jiuwensymbiosis-run 跑通 SO-101 与 Cruzr 真机任务jiuwensymbiosis 示例工程实战用 jiuwensymbiosis run 跑通 SO 101 与 Cruzr 真机任务 本文是 jiuwensy具身智能人工智能AI Agent机器人计算机视觉Agent 编排创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考