在机械臂仿真教学里,最先要解决的不是高深的控制算法,而是能不能在一个可复现的环境里把机械臂模型建出来、把运动学算出来、把运动过程动起来。MATLAB机器人工具箱10.4(Robotics Toolbox for MATLAB,简称RTB)就是用来完成这件事的常用工具。它把机械臂建模、正逆运动学、轨迹规划、可视化等能力整合成一套比较一致的接口,很多高校机器人课程和论文复现代码都基于它。这篇教学面向刚接触机械臂仿真的读者,以两连杆平面机械臂为主线,从安装RTB 10.4、建立SerialLink模型,到用fkine做正运动学、用ikine做逆运动学、用jtraj规划关节轨迹,最后用teach交互窗口验证仿真结果。整个过程中不仅给出命令,还会解释每步背后的原因,以及最容易踩到哪几个坑。
1. 先理解RTB 10.4在机械臂仿真里的定位
1.1 它解决什么问题,不解决什么问题
RTB是一套面向机器人学的MATLAB工具箱,主要能力集中在运动学、动力学、轨迹规划和可视化。在机械臂仿真教学中,RTB最大的价值是让学习者不必从零编写齐次变换矩阵,也能直观地看到末端位姿随关节角变化的关系。它用SerialLink描述完整机械臂,用Link描述单个连杆,再用DH参数把每个连杆的几何关系组织起来。
需要区分的是,RTB与MATLAB官方Robotics System Toolbox并不相同。RTB是第三方开源工具箱,接口风格偏向传统机器人学教材,适合快速理解DH参数、正逆解和轨迹规划。官方Robotics System Toolbox则围绕RigidBodyTree、URDF导入、ROS接口等现代工作流设计。教学初期用RTB可以更快建立几何直觉,后续如果需要做URDF或ROS,再学习官方工具箱也不迟。
RTB也不负责真实物理引擎级别的接触和碰撞仿真。两连杆在图形窗口里运动,本质是运动学层面的位姿更新,而不是刚体受力碰撞后的物理响应。如果要做高保真物理仿真,通常要搭配Simscape Multibody或Gazebo。理解这一点,后面看到RTB仿真结果时就不会高估它的物理真实性。
1.2 SerialLink、Link和DH参数的关系
机械臂可以理解为一组连杆和关节串联。RTB里,Link描述单个连杆,SerialLink把多个Link串成完整机械臂。描述连杆用的DH参数,是Denavit和Hartenberg提出的一套规则,用四个量确定相邻坐标系之间的变换:
- theta:两个相邻关节轴之间的转角,通常就是转动关节变量。
- d:沿前一个关节轴方向的偏置距离。
- a:连杆长度,即两个关节轴之间的公垂线距离