《机器人学》MATLAB 机器人工具箱 应用指南一

MATLAB Robotics Toolbox 应用指南

以下内容将详细解析工具箱的使用方法及示例代码实现原理,分为路径配置、核心指令解析和代码实现三部分。

首先先下载RTB.mltbx工具箱(双击即可直接下载)


一、工具箱路径优先级设置

当存在同名函数时,需确保工具箱路径优先被调用:

操作流程

  1. 路径窗口操作

    • 全选路径列表中所有 C:\Users\chujiacheng\...\Robotics Toolbox for MATLAB\ 开头的目录
    • 连续点击 上移箭头 图标,将选中的路径移至列表顶部
    • 勾选 保存路径以用于将来的会话 → 应用 → 确定

原理说明:MATLAB按路径列表从上至下搜索函数,顶置路径可避免内置函数覆盖。


二、核心指令功能速查

分类 指令 作用
坐标变换 transl(x,y,z) 生成平移齐次变换矩阵(4×4),或从变换矩阵提取平移向量
trotx(θ) 绕 X 轴旋转 θ 弧度的齐次变换矩阵
troty(θ) 绕 Y 轴旋转 θ 弧度的齐次变换矩阵
trotz(θ) 绕 Z 轴旋转 θ 弧度的齐次变换矩阵
tr2rpy(T) 从变换矩阵提取 RPY 角(滚转、俯仰、偏航)
rpy2tr(r,p,y) 用 RPY 角生成齐次变换矩阵
坐标系可视化 trplot(T) 绘制变换矩阵对应的坐标系
tranimate(T1,T2) 从坐标系 T1 动画变换到 T2
机器人建模 Link() 创建连杆对象(DH 参数)
SerialLink() 串联机器人对象,支持正逆运动学
fkine(robot,q) 机器人正运动学,计算末端位姿
ikine(robot,T) 机器人逆运动学,求解关节角
轨迹规划 ctraj(T1,T2,n) 两个位姿之间的笛卡尔轨迹
jtraj(q1,q2,n) 两个关节角之间的关节空间轨迹

三、坐标系变换代码解析

Matlab 复制代码
% 清除命令窗口、工作空间变量,并关闭所有图形窗口
clc
clear
close all

% =========================
% 坐标变换部分:定义齐次变换矩阵
% =========================

% T1: 绕Z轴旋转π/6弧度,然后沿X轴平移2个单位
% trotz(theta) 生成绕Z轴的旋转矩阵,transl(x,y,z) 生成平移矩阵
T1 = trotz(pi/6) * transl(2,0,0); % 组合旋转和平移

% T2: 绕Z轴旋转π/4弧度,然后沿X轴平移1个单位
T2 = trotz(pi/4) * transl(1,0,0); % 组合旋转和平移

% T: 从世界坐标系到坐标系2的总体变换,T1 * T2 表示顺序变换
T = T1 * T2; % 组合两个变换矩阵

% =========================
% 图形窗口设置:创建3D绘图环境
% =========================

% 创建一个白色背景的图形窗口
figure('Color','w')

% 保持当前图形,允许多次绘图叠加
hold on
% 添加网格
grid on
% 设置坐标轴比例相等
axis equal

% 设置3D视图
view(3)

% 添加坐标轴标签
xlabel('X','FontSize',14)
ylabel('Y','FontSize',14)
zlabel('Z','FontSize',14)

% 添加标题
title('连续坐标变换','FontSize',16)

% 设置坐标轴范围,确保可视化效果清晰
xlim([-1 4])
ylim([-1 4])
zlim([-1 4])

% =========================
% 坐标系绘制:世界坐标系、坐标系1和坐标系2
% =========================

% 绘制世界坐标系(原点),使用单位矩阵 eye(4) 表示
% trplot 函数用于绘制变换矩阵对应的坐标系
trplot(eye(4), ... % 单位矩阵表示世界坐标系
    'frame','0', ... % 坐标系标签为 '0'
    'rgb', ... % 使用RGB颜色表示各轴
    'length',0.8, ... % 坐标轴长度
    'thick',2) % 坐标轴线宽

% 绘制坐标系1,基于变换矩阵 T1
trplot(T1, ... % T1 对应的坐标系
    'frame','1', ... % 坐标系标签为 '1'
    'rgb', ... 
    'length',0.8, ...
    'thick',2)

% 绘制坐标系2,基于变换矩阵 T(T1 * T2)
trplot(T, ... % T 对应的坐标系
    'frame','2', ... % 坐标系标签为 '2'
    'rgb', ...
    'length',0.8, ...
    'thick',2)

% =========================
% 提取坐标原点:用于后续绘图
% =========================

% 世界坐标系原点 (0,0,0)
p0 = [0 0 0]; 

% 提取坐标系1的原点坐标(从 T1 的平移部分获取)
% transl 函数提取变换矩阵的平移向量
p1 = transl(T1); 

% 提取坐标系2的原点坐标(从 T 的平移部分获取)
p2 = transl(T); 

% =========================
% 连杆绘制:连接各坐标系原点
% =========================

% 绘制从世界坐标系原点 (p0) 到坐标系1原点 (p1) 的连杆
plot3([p0(1) p1(1)], ... % X坐标
      [p0(2) p1(2)], ... % Y坐标
      [p0(3) p1(3)], ... % Z坐标
      'LineWidth',4, ... % 线宽
      'Color',[0.5 0.2 0.2]) % 颜色(深红色)

% 绘制从坐标系1原点 (p1) 到坐标系2原点 (p2) 的连杆
plot3([p1(1) p2(1)], ...
      [p1(2) p2(2)], ...
      [p1(3) p2(3)], ...
      'LineWidth',4, ...
      'Color',[0.2 0.2 0.9]) % 颜色(蓝色)

% =========================
% 原点标记:突出显示各坐标系原点
% =========================

% 绘制世界坐标系原点标记(黑色圆点)
plot3(p0(1),p0(2),p0(3), ...
    'ko', ... % 黑色圆形标记
    'MarkerFaceColor','k', ... % 填充黑色
    'MarkerSize',8) % 标记大小

% 绘制坐标系1原点标记(红色圆点)
plot3(p1(1),p1(2),p1(3), ...
    'ro', ... % 红色圆形标记
    'MarkerFaceColor','r', ... % 填充红色
    'MarkerSize',8)

% 绘制坐标系2原点标记(蓝色圆点)
plot3(p2(1),p2(2),p2(3), ...
    'bo', ... % 蓝色圆形标记
    'MarkerFaceColor','b', ... % 填充蓝色
    'MarkerSize',8)

% =========================
% 文本标签:为各原点添加说明文字
% =========================

% 在世界坐标系原点添加文本 ' Base'
text(p0(1),p0(2),p0(3), ...
    ' Base', ...
    'FontSize',12)

% 在坐标系1原点添加文本 ' Frame1'
text(p1(1),p1(2),p1(3), ...
    ' Frame1', ...
    'FontSize',12)

% 在坐标系2原点添加文本 ' Frame2'
text(p2(1),p2(2),p2(3), ...
    ' Frame2', ...
    'FontSize',12)
 

关键注意事项:

如果你运行结果是这样的一条直线,恭喜你,没把第一节(一、工具箱路径优先级设置)看完,喜提错误一个!!

**错误原因:**当存在同名函数时,工具箱路径在最下面不会优先被调用。

正确运行结果

相关推荐
nwsuaf_huasir9 小时前
RD图绘制-雷达回波模拟-距离多普勒图绘制
算法·matlab·语音识别
AI机器学习算法9 小时前
深度学习实战-基于迁移学习MobileNet的可回收物与生活垃圾图像分类模型
数据结构·人工智能·python·深度学习·算法·机器学习·大模型
sheji1059 小时前
扫地机器人行业 企业篇-追觅科技
人工智能·机器人·智能硬件
星恒随风9 小时前
从机器学习基础到 MLP(上)
开发语言·人工智能·笔记·学习·机器学习
deardao10 小时前
【NeuriPS-25】检索增广生成的时序零概率预测
人工智能·机器学习·数据挖掘·transformer·时间序列
Eloudy10 小时前
分析力学中的初积分
人工智能·算法·机器学习
懒惰的coder10 小时前
LQR控制算法
matlab
一一哥Sun10 小时前
第03课:AI的“大脑“是怎么工作的?——机器学习、深度学习一网打尽
人工智能·深度学习·机器学习
zhangrelay10 小时前
机器人销量与趋势--智能大模型版本--2026
学习·机器人