机器人设计总体流程
建立刚体树
直接导入rigidBodyTree相对来说需要掌握的技能比较多,先通过simulink模块的SimScape工具箱更容易入手。
建立如上图所示模型,步骤如下:
1. 建立基本模块,每个模型都必须使用三个blocks
- Solver Configuration:确定使用哪种ode求解器;
- World Frame:定义世界坐标系;
- Mechanism Configuration:定义重力和作用在其所有机制上的任何其他力。
2. 从base到end-effector建立机器人模型:
-
Body Elements:包含圆柱形基座(Base)、长方体Link1、Link2、正方体End Effector。相应的模块均在Body Elements目录下,具体尺寸参数双击修改。
-
Frames and Transforms:将世界坐标系直接与上述刚体组件相连时,会默认世界坐标系位于组件中心。例如想让世界坐标系位于base底部,则需要添加Rigid Transforms模块;Base模块与关节相连时,同样需要坐标转换。如图所示:
-
Joints:根据关节运动方式确定相应模块,这里Base、Link1和Link2之间都是转动(Revolute Joint),Link2和End-Effector之间是固连(Weld Joint)。 进行坐标变换时需要注意,转动关节默认沿坐标轴Z轴旋转。
3. 最终模型
其中子系统Base(见图1)、Link1、Link2结构相似,子系统End Effector结构如下:
模型仿真
点击运行,出现如下界面:
此时模型没有添加运动模块,始终位于初始构型。可以点击左侧目录观察各部位。特别需要检查个关节和组件坐标系是否建立正确。(组件坐标系位于组件中心、关节坐标系位于关节处,且旋转轴为z轴)
模型载入
建立m文件,代码如下:
Ts=0.001;
[TwoDoFs,ArmInfo]=importrobot('TwoDoFs'); %引号内为slx文件名
点击运行,工作区出现rigidBodyTree类型变量TwoDoFs。
机器人设计的相关内容介绍到这里,后续介绍如何进行关节运动仿真。