当前位置: 首页 > news >正文

MATLAB - 使用运动学 DH 参数构建机械臂

系列文章目录


前言


一、

 使用 Puma560® 机械手机器人的 Denavit-Hartenberg (DH) 参数,逐步建立刚体树形机器人模型。在连接每个关节时,指定其相对 DH 参数。可视化机器人坐标系,并与最终模型进行交互。

DH 参数定义了每个刚体通过关节与其父体连接的几何形状。这些参数遵循四种变换惯例:

  • A - 两个 Z 轴之间公共法线的长度,垂直于两个轴
  • α - 共同法线的旋转角度
  • d - 沿 Z 轴在法线方向上从父代到子代的偏移量
  • θ - X 轴沿前 Z 轴的旋转角度

以矩阵形式指定 Puma560 机器人 [1] 的参数。

dhparams = [0   	pi/2	0   	0;0.4318	0       0       00.0203	-pi/2	0.15005	0;0   	pi/2	0.4318	0;0       -pi/2	0   	0;0       0       0       0];

创建一个刚体树对象 

robot = rigidBodyTree;

为刚体对象创建一个单元数组,为关节对象创建另一个单元数组。迭代 DH 参数,执行此过程:

  1. 创建一个具有唯一名称的刚体对象。
  2. 创建并命名一个外旋刚体关节对象。
  3. 使用 setFixedTransform 使用 DH 参数指定关节的体到体变换。该函数会忽略 DH 参数的最后一个元素 theta,因为体的角度取决于关节位置。
  4. 使用 addBody 将躯体附加到刚体树。
bodies = cell(6,1);
joints = cell(6,1);
for i = 1:6bodies{i} = rigidBody(['body' num2str(i)]);joints{i} = rigidBodyJoint(['jnt' num2str(i)],"revolute");setFixedTransform(joints{i},dhparams(i,:),"dh");bodies{i}.Joint = joints{i};if i == 1 % Add first body to baseaddBody(robot,bodies{i},"base")else % Add current body to previous body by nameaddBody(robot,bodies{i},bodies{i-1}.Name)end
end

使用 showdetails 或 show 函数验证机器人是否已正确构建。showdetails 功能在 MATLAB® 命令窗口中列出机器人的所有机构。show功能显示指定配置(默认为原点)的机器人。

showdetails(robot)
--------------------
Robot: (6 bodies)Idx    Body Name   Joint Name   Joint Type    Parent Name(Idx)   Children Name(s)---    ---------   ----------   ----------    ----------------   ----------------1        body1         jnt1     revolute             base(0)   body2(2)  2        body2         jnt2     revolute            body1(1)   body3(3)  3        body3         jnt3     revolute            body2(2)   body4(4)  4        body4         jnt4     revolute            body3(3)   body5(5)  5        body5         jnt5     revolute            body4(4)   body6(6)  6        body6         jnt6     revolute            body5(5)   
--------------------
figure(Name="PUMA Robot Model")
show(robot);

二、与机器人模型互动

使用交互式刚体树(interactiveRigidBodyTree)对象可视化机器人模型,以确认其尺寸。 

figure(Name="Interactive GUI")
gui = interactiveRigidBodyTree(robot,MarkerScaleFactor=0.5);

单击并拖动交互式图形用户界面中的标记,重新定位末端执行器。图形用户界面使用逆运动学求解关节位置,以实现与指定末端执行器位置的最佳匹配。右键单击特定的身体坐标系,将其设置为目标标记体,或更改设置特定关节位置的控制方法。 

三、下一步

现在您已经在 MATLAB® 中建立了模型,接下来可能要采取以下步骤。

  • 执行逆运动学,根据所需的末端执行器位置获得关节配置。除模型参数外,指定机器人约束条件,包括瞄准约束条件、笛卡尔边界和姿势目标。
  • 根据航点和其他参数,利用梯形速度曲线、B-样条曲线或多项式轨迹生成轨迹。
  • 利用机器人模型和快速探索随机树(RRT)路径规划器执行机械手规划。
  • 对环境中的障碍物进行碰撞检测,确保机器人安全有效地运动。

参考资料

[1] Corke, P. I., and B. Armstrong-Helouvry. “A Search for Consensus Among Model Parameters Reported for the PUMA 560 Robot.” Proceedings of the 1994 IEEE International Conference on Robotics and Automation, 1608–13. San Diego, CA, USA: IEEE Computer Soc. Press, 1994. https://doi.org/10.1109/ROBOT.1994.351360.

http://www.lryc.cn/news/281523.html

相关文章:

  • 2024年腾讯云新用户优惠云服务器价格多少?
  • 如何在原型中实现继承和多态
  • MySQL/Oracle 的 字符串拼接
  • 【Java SE语法篇】10.String类
  • 【Python】数据可视化--基于TMDB_5000_Movie数据集
  • 学习Vue的插槽总结
  • 第九篇 API设计原则与最佳实践
  • 新版AndroidStudio配置maven阿里云镜像
  • 【OSG案例详细分析与讲解】之十一:【多效果的3D动画】
  • 一道使用LinkedList和Stack解决的算法题
  • 通用外设-W25Q64
  • Spring MVC MVC介绍和入门案例
  • android使用ndk开发
  • 行为型设计模式——模板方法模式
  • 曲面上偏移命令的查找
  • 世邦spon IP网络对讲广播系统任意文件上传漏洞
  • mp4文件全部转换为mp3
  • 深信服技术认证“SCSA-S”划重点:逻辑漏洞
  • Linux grep命令教程:强大的文本搜索工具(附案例详解和注意事项)
  • 网络安全的威胁PPT
  • CUDA驱动深度学习发展 - 技术全解与实战
  • 如何做用户分层和标签体系
  • Vue+Element Ui实现el-table自定义表头下拉选择表头筛选
  • 使用Java连接MongoDB (6.0.12) 报错
  • 数学建模day16-预测模型
  • Vue3响应式系统(一)
  • MStart | MStart开发与学习
  • GoZero微服务个人探索之路(一)Etcd:context deadline exceeded原因探究及解决
  • C语言从入门到实战——结构体与位段
  • java如何修改windows计算机本地日期和时间?