2、MATLAB机器人工具箱入门:安装Robotics Toolbox,熟悉Link、SerialLink等核心类,构建第一个机器人模型。

好,咱们正式开始动手了。

上一章聊了聊运动学的基本概念,说白了就是搞清楚“关节怎么动,末端怎么走”。但光有理论不行,得有个趁手的工具。我个人最常用的,就是MATLAB的Robotics Toolbox。这玩意儿就像一把瑞士军刀,专门用来捣鼓机器人建模、仿真和控制。

2.1 安装Robotics Toolbox

先说说安装。这事儿其实不复杂,但新手容易踩坑。我记得最早我用的是R2014a版本,那时候还得手动下载工具箱文件,再设置路径,麻烦得很。

现在简单多了。你打开MATLAB,在命令行窗口敲一行代码就行:

% 安装Robotics Toolbox(推荐方式)
% 打开MATLAB附加功能管理器
% 或者直接运行:
matlab.addons.install('Robotics Toolbox');

嗯,这里要注意。MATLAB的附加功能管理器有时候会抽风,下载到一半卡住。我建议你直接去MathWorks官网,搜索“Robotics Toolbox”,下载离线安装包。然后手动安装:

% 手动安装方式
% 1. 下载 .mltbx 文件
% 2. 双击文件,或者运行:
matlab.addons.install('你的路径/Robotics_Toolbox.mltbx');
避坑指南: 我曾经遇到过安装后找不到工具箱的情况。后来发现是MATLAB路径没刷新。你可以在命令行运行 rehash toolboxcache,或者干脆重启一下MATLAB。这招基本能解决90%的安装问题。

安装完成后,验证一下:

% 验证安装
ver('robotics')
% 如果显示版本信息,说明安装成功

2.2 核心类:Link 和 SerialLink

工具箱装好了,接下来认识两个最重要的“人物”——LinkSerialLink

Link 代表一个连杆。你可以把它想象成机器人的一根“骨头”。每个Link都有几个关键参数:

  • theta:关节角度(旋转关节)或位移(移动关节)
  • d:连杆偏距
  • a:连杆长度
  • alpha:连杆扭转角
  • sigma:关节类型(0=旋转,1=移动)

这些参数其实就是DH参数。你想想看,一个机器人就是由一串Link串起来的。

SerialLink 则是把这些Link串起来的“绳子”。它代表整个串联机器人。你给它一组Link,它就帮你算正解、逆解、画图、做动画。

我个人习惯用标准DH法(Standard DH)。工具箱默认也是这个。如果你用改进DH(Modified DH),记得在创建Link时指定 'modified'

2.3 构建第一个机器人模型

光说不练假把式。咱们直接上手,搭一个最简单的2自由度平面机器人。就像人的手臂,只有肩关节和肘关节。

% 构建第一个机器人模型:2自由度平面臂
% 清空环境
clear; clc; close all;

% 创建两个连杆
% Link 1:肩关节,长度1米
L1 = Link('d', 0, 'a', 1, 'alpha', 0, 'standard');
% Link 2:肘关节,长度0.8米
L2 = Link('d', 0, 'a', 0.8, 'alpha', 0, 'standard');

% 将连杆组合成机器人
robot = SerialLink([L1 L2], 'name', '我的第一个机器人');

% 显示机器人信息
robot.display();

% 查看机器人结构
robot.teach();

运行这段代码,你会看到一个交互式窗口。拖动滑块,机器人就会动起来。我第一次看到这个效果时,还挺兴奋的——原来自己写的代码真的能让一个“虚拟手臂”动起来。

小技巧: robot.teach() 是个好东西。调试时用它来手动调整关节角度,直观感受机器人姿态变化。我在做项目时,经常先用teach模式验证运动学正解对不对。

咱们再深入一点。看看这个机器人正运动学怎么算:

% 正运动学计算
% 设定关节角度(单位:弧度)
q = [pi/4, pi/6];  % 肩关节45度,肘关节30度

% 计算末端位姿
T = robot.fkine(q);
disp('末端位姿矩阵:');
disp(T);

输出的 T 是一个4x4的齐次变换矩阵。它告诉你末端在空间中的位置和姿态。说白了,就是“手在哪儿,朝哪个方向”。

2.4 知识体系总览

为了让你对整个工具箱的使用有个全局认识,我画了张图:

MATLAB机器人工具箱核心知识体系 Robotics Toolbox Link 类(连杆) SerialLink 类(机器人) 关键属性 theta, d, a, alpha, sigma 标准DH / 改进DH 核心方法 fkine() - 正运动学 teach() - 交互调试 构建机器人 = 多个Link + 一个SerialLink

这张图把工具箱的核心逻辑说清楚了。你只需要记住:先定义每个Link,再用SerialLink把它们串起来。就这么简单。

2.5 避坑与经验

最后,分享几个我踩过的坑:

  • DH参数顺序别搞反:标准DH的theta、d、a、alpha顺序是固定的。我刚开始写代码时,把a和d写反了,结果机器人姿态完全不对,查了半天才发现。
  • 角度单位是弧度:工具箱默认用弧度。如果你习惯用角度,记得用 deg2rad() 转换。我有个同事直接用角度传进去,机器人直接“飞”了。
  • teach() 窗口卡死怎么办:有时候拖动滑块太快,窗口会卡住。别慌,关掉窗口重新运行一次就行。这是工具箱的老毛病了。

核心要点:

  1. 安装工具箱:推荐离线安装,避免网络问题
  2. Link类:定义单个连杆的DH参数
  3. SerialLink类:组合Link,提供正解、逆解、可视化
  4. 第一个模型:2自由度平面臂,用teach()交互验证

好了,这一章就到这儿。你可以在MATLAB里把代码敲一遍,感受一下机器人从无到有的过程。下一章咱们聊聊正运动学怎么算得更深一些。


专注资料整理