用途:在 MATLAB 中构建机械臂模型(rigidBodyTree),用于仿真、可视化、逆运动学、运动规划、抓放与轨迹等下游任务,并验证每个运动学解。适用于按名称提到的机械臂(如 UR5e、KUKA iiwa14、Panda、Kinova Gen3),或加载、导入、仿真、可视化机械臂,以及抓取、添加视觉/碰撞几何、装夹爪、选择 inverseKinematics 与 generalizedInverseKinematics、验证 IK/GIK 解等场景。
主要能力与流程:一、确定模型来源,优先级为 loadrobot(库内机器人,含碰撞网格、惯量、视觉)、importrobot(用户有 URDF/Xacro/SDF)、按 DH 参数构建;缺少碰撞网格会导致运动规划误报无碰撞。二、加载或构建模型,始终设置 DataFormat="row"。例如 robot = loadrobot("universalUR5e", DataFormat="row"); 或 robot = importrobot("myRobot.urdf", DataFormat="row"); URDF 仅有视觉几何时可用 vhacdOptions 做碰撞分解。三、确保存在 tool0 且局部 Z 轴沿手臂向外,KUKA iiwa 需用 Ry(90°) 纠正。四、配置视觉与碰撞几何,抓取类任务必须装配抓取器,先用 addSubtree 并设 ReplaceBase=false,再在接触点添加固定 contact frame 并对其求解 IK。五、用 FK(getTransform)与 IK 验证模型,单一位姿用 inverseKinematics,多约束用 generalizedInverseKinematics。六、强制验证每个 IK/GIK 解:检查 ExitFlag、位置误差(阈值 1e-3 m)、约束违反,以及连续路点间关节跳变是否超过 30 度。
限制:不涵盖无碰撞运动规划(RRT、CHOMP)、轨迹生成(contopptraj 等)、闭环并联机构(delta、Stewart)、移动机器人导航与动力学仿真,这些属于其他领域。缺少事实的部分暂未提供。