0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于MATLAB中的机械臂算法的分析和介绍

MATLAB 来源:djl 作者:MathWorks 2019-09-11 14:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

中文路径在英语中可能有两种翻译:

path

trajectory

首先告诉大家,我们所说的“路径”的是后者——trajectory。我们看一下这两种“路径”在机械臂的世界里有什么区别。

设想机械臂的end-effector要从A点运动到B点:

关于MATLAB中的机械臂算法的分析和介绍

从A到B叫path:

关于MATLAB中的机械臂算法的分析和介绍

如果我们规定从A到B这个path,必须在特定的时间(t0–t6),经过这7个点。

那么这7个点叫waypoints。路径(trajectory)指的是通过这7个点的具体计划(例如什么时间,以什么速度等等)。规划我们如何经过这7个点的算法,叫做路径规划(trajectoryplanning)算法。

上面这7个点,如果机械臂的end-effector在通过的时候,位置连续、速度连续、甚至加速度也是连续的,那么我们说这个 trajectory 是平滑的(smooth)。

机械臂中有几种比较常见的trajectory:

Trapezoidal Trajectories(梯形路径)

关于MATLAB中的机械臂算法的分析和介绍

梯形路径指的是:

end-effector在相邻waypoints之间的速度是象梯形一样,先线性加速,然后速度保持不变,在接近目标后线性减速。梯形路径的优点是比较简单实用,但是在每个waypoint会有停顿。下图是一个机械臂走梯形路径的样例:在过waypoints的时候,会完全停止,所以走的是直线,速度和加速度肯定不连续。

关于MATLAB中的机械臂算法的分析和介绍

Polynomial Trajectories(多项式路径)

其中又分三次多项式和五次多项式。分别写作:

关于MATLAB中的机械臂算法的分析和介绍

三次多项式可以记录end-effector的速度、位置的信息。五次多项式可以记录end-effector的位置、速度、加速度的信息。下图是一个五次多项式的例子,可以看到速度、加速度都是连续的。三次或者五次多项式的trajectory在通过waypoints的时候速度都是连续的,这和梯形路径是不一样的。

关于MATLAB中的机械臂算法的分析和介绍

下图是一个机械臂走五次多项式路径的样例:为了保证过waypoints的时候速度不停顿,走的是曲线。

关于MATLAB中的机械臂算法的分析和介绍

B-splines(B样条曲线)

B 样条曲线将除了起始点和终点外,将其他的 waypoints 看成是控制点(controlpoints)。机械臂的end-effector并不会真正通过这些controlpoints,而在他们之间找一条平滑的曲线。这样做的目的是在平滑加速度和曲线拟合的准确性之间找一个折衷方法。

关于MATLAB中的机械臂算法的分析和介绍

(图片来自于Wikipedia)

如果一个trajectory只有这7个点,无论机械臂控制器的运动控制模块如何强大,都无法保证做到“平滑”的运行。我们必须对路径点进行插值(interpolation)。

下图的橙色点为插值点示意:

关于MATLAB中的机械臂算法的分析和介绍

在了解插值后,我们来看一下路径规划出来的信息如何和传递到反向运动学(inversekinematics)。反向运动学模块将确保end-effector按照规划出来的路径运行,即路径跟随(trajectoryfollowing)。

这里,我们按插值类型情况分两种模式:

1. Trajectory interpolated in task space

在这种模式下,中间插值的点是在taskspace(即XYZ坐标系,或者叫笛卡尔坐标系)进行插值。下图表明了这一过程,这时候trajectorygeneration只需要做一次,产生所有的waypoints和interpolationpoints(插值点)。然后运动控制系统在每个控制周期都必须调用inversekinematics算法去做路径跟随(trajectoryfollowing)。

关于MATLAB中的机械臂算法的分析和介绍

2.Trajectory interpolated in joint space

在这种模式下,中间插值点的点是在jointspace(即对关节角度插值)。下图表明了这一过程。这时候trajectorygeneration也只需要做一次,但做的过程和taskspace的做法不同。即在每一个waypoint调用一次inversekinematics,然后对关节角度的进行插值。Trajectoryfollowing模块只需执行插值后的角度指令。

关于MATLAB中的机械臂算法的分析和介绍

角度方向插值(orientation interpolation)

我们刚才谈到的插值,都是针对end-effector的位置(position,即XYZ的坐标)。我们不应该忽略end-effector的角度方向(orientation)插值。我们看一段动画来了解一下,什么是orientation的插值:

可以看到,随着end-effector的移动,它的方向也在不断做出平滑的调整,在end-effector运行到目标位置后,它的方向也调整到位。当然,有很多场合角度方向是不需要调整的。例如:喷漆机械臂,永远将end-effector指向喷漆作业面。

MATLAB 中的机械臂路径规划算法

在R2019a 发布后RoboticsSystemToolbox(RST)中多了几个机械臂路径规划的MATLAB函数和Simulink模块。

MATLAB函数:

关于MATLAB中的机械臂算法的分析和介绍

Simulink模块:

关于MATLAB中的机械臂算法的分析和介绍

不管是MATLAB函数还是类似Simulinkblock,大概这么几项功能:

生成梯形或者多项式的位置 trajectory

生成角度方向的 trajectory

将上两者合二为一的生成既包含位置,也包含角度方向(合称pose)的trajectory——即基于homogeneoustransforms的posetrajectory。

让我们写几行代码,来产生一个三次多项式的trajectory:

关于MATLAB中的机械臂算法的分析和介绍

可以看到,位置是连续的。如果我们将速度(qd)、加速度(qdd)画出来,可以看到qdd是不连续的。

关于MATLAB中的机械臂算法的分析和介绍

Simulink示例

在MATLABfileexchange里搜索“TrajectoryPlanningforRobotManipulators”,会找到一个用多种方式产生trajectory的例子。

用一张表格总结如下:

关于MATLAB中的机械臂算法的分析和介绍

这里有两点值得注意:

无论是MATLAB函数还是Simulinkblock,所有角度方向的插值都是基于SLERP(sphericallinearinterpolation)。这是一种基于四元数(quaternions)的插值法。不会造成下图所示的“不走近路,绕远路”的问题。例如,角度要从0度转到30度。因为圆周是360度,错误的方式是从0度转到330度–虽然也能到达指定位置或者角度,但它是错误的。在manipJointTrajectory模型中,因为用到了基于jointspace(关节角度)的插值,读者可以注意一下如何处理这个问题。

关于MATLAB中的机械臂算法的分析和介绍

Time-scaling。在manipTransformTrajectoryTimeScaling模型中,如果不加timescaling这个模块,那么所有的角度变化和位置变化都是基于线性插值。如果加入了“想要的”速度、加速度信息---即timescaling。我们可以使角度变化和位置变化按照我们想要的梯形或者多项式形式去调整。例如,我想让角度一开始不变,然后快速变化,最后速度为0。

关于MATLAB中的机械臂算法的分析和介绍

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 加速度
    +关注

    关注

    0

    文章

    88

    浏览量

    21046
  • 机械臂
    +关注

    关注

    14

    文章

    606

    浏览量

    26224
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    幻尔科技SO-ARM101机械,源自全球顶级AI社区Hugging Face的LeRobot项目来了!

    这不是一台普通的机械。它源自全球顶级AI社区HuggingFace的LeRobot项目,是一个完全开源的“具身智能”实验平台。简单来说,它的使命是为AI赋予一个能够与真实世界交互的身体,让算法
    的头像 发表于 05-15 15:06 1111次阅读
    幻尔科技SO-ARM101<b class='flag-5'>机械</b><b class='flag-5'>臂</b>,源自全球顶级AI社区Hugging Face的LeRobot项目来了!

    桌面级六自由度机械开源项目介绍

    想 DIY 一台 6 轴机械却苦于方案零散、算法难懂?这款全开源桌面级 6 自由度机械直接把全套方案打包奉上!从硬件 PCB、CNC 结
    的头像 发表于 05-13 11:16 432次阅读
    桌面级六自由度<b class='flag-5'>机械</b><b class='flag-5'>臂</b>开源项目<b class='flag-5'>介绍</b>

    当OpenClaw遇上机械,效率革命来袭 # OpenClaw # 机械 # HMI测试

    机械
    东舟技术
    发布于 :2026年04月14日 14:10:34

    机器人主控核心板米尔RK3576 + ROS2,NPU加速实现目标跟随与机械抓取

    获得),而机械末端到基座(end_effector_link → arm_base_link)的变换则随关节角度实时变化。 在ROS,我们需要: 标定相机到机械
    发表于 04-10 21:23

    大象机器人myCobot 320机械如何凭实力走进顶尖学府

    在复旦大学邯郸校区某栋实验楼里,一堂关于《机器人学导论》的课程刚刚结束。学生们没有急着离开,而是围在实验台前,对着桌面上一台精巧的白色机械,热烈地讨论着刚刚跑通的抓取算法
    的头像 发表于 03-20 09:43 374次阅读

    告别围栏时代!激光雷达让机械产线“智能守卫”效率飙升

    某知名制药企业的无菌制剂灌装生产线上,并排部署了8台高精度灌装机械,在A级洁净区(ISO5级)环境下工作,这些机械需要寻求安全防护方案来替代传统的围栏方案。传统方案(围栏)和安全光
    的头像 发表于 12-02 07:32 440次阅读
    告别围栏时代!激光雷达让<b class='flag-5'>机械</b><b class='flag-5'>臂</b>产线“智能守卫”效率飙升

    什么是 GNSS 杠杆,它在 GNSS/INS 传感器融合算法起什么作用?

    的基本参数。除了数据表中提供的信息外,本文还对GNSS杠杆进行了更深入的分析。GNSS杠杆设置考虑了MTi(测量惯性数据的位置)与GNSS接收器天线位置之间的相对
    的头像 发表于 11-24 12:05 552次阅读
    什么是 GNSS 杠杆<b class='flag-5'>臂</b>,它在 GNSS/INS 传感器融合<b class='flag-5'>算法</b><b class='flag-5'>中</b>起什么作用?

    复合机器人对比传统AGV和机械的优势何在?

    复合机器人对比传统AGV和机械的优势,核心在于它突破了单一设备的功能局限,实现了“移动+操作”的深度协同,尤其在上下料和物料转运场景优势显著。经世智能复合机器人:重新定义上下料与物料转运的效率
    的头像 发表于 11-21 15:32 1946次阅读
    复合机器人对比传统AGV和<b class='flag-5'>机械</b><b class='flag-5'>臂</b>的优势何在?

    传统测试设备的局限与协作机械的破局

    在协作式测试设备的研发与落地中,北京沃华慧通测控技术有限公司凭借深厚的测控技术积累,成为行业核心赋能者。作为专注于智能测控设备研发的高新技术企业,北京沃华慧通测控技术有限公司深度把握协作机械的技术特性,构建了 “机械
    的头像 发表于 10-11 09:34 702次阅读
    传统测试设备的局限与协作<b class='flag-5'>机械</b><b class='flag-5'>臂</b>的破局

    机器人机械效率提升的革命性解决方案:上海永铭电容器实践

    在现代自动化与精密制造,机器人机械(人形/工业)的稳定性与效率至关重要。电容器作为电路的基本组件,对机器人机械
    的头像 发表于 09-01 10:06 738次阅读
    机器人<b class='flag-5'>机械</b><b class='flag-5'>臂</b>效率提升的革命性解决方案:上海永铭电容器实践

    EtherCAT转Profinet协议转换网关实现PLC与机械通讯的配置案例

    在某汽车零部件制造企业的生产线,面临着设备协议不兼容的问题。该生产线的核心控制系统采用的是西门子S7-1500PLC,其通信协议为Profinet,而用于零部件加工的机械则采用EtherCAT协议。由于协议差异,
    的头像 发表于 08-30 10:55 936次阅读
    EtherCAT转Profinet协议转换网关实现PLC与<b class='flag-5'>机械</b><b class='flag-5'>臂</b>通讯的配置案例

    协作机械产品介绍

    电子发烧友们、工业自动化从业者、科研工作者们注意啦!今天给大家重磅介绍一款在机械领域表现极为亮眼的产品——协作机械,它正以卓越性能重塑行
    发表于 08-07 17:20 0次下载

    DFT算法与FFT算法的优劣分析

    一概述 在谐波分析,我们常常提到的两个词语,就是DFT算法与FFT算法,那么一款功率分析仪/谐波分析
    的头像 发表于 08-04 09:30 1855次阅读

    PROFINET转MODBUS TCP网关在机械通信操作的应用研究

    在特定的汽车零部件生产工厂焊接生产线上,机械被应用于焊接作业,其控制体系基于Profinet协议。同时,工厂的自动化控制体系以西门子S7-1200PLC为核心,通过ModbusTCP协议实现
    的头像 发表于 07-03 16:56 745次阅读
    PROFINET转MODBUS TCP网关在<b class='flag-5'>机械</b><b class='flag-5'>臂</b>通信操作<b class='flag-5'>中</b>的应用研究

    GZCOM-NET:为机械测试带来高效无线解决方案!

    在智慧工厂机械的性能和安全性需通过静态与动态测试来保障。批量化测试时,后台需实时显示数据曲线和异常数据。GZCOM-NET凭借高效稳定的无线传输,为机械
    的头像 发表于 06-20 11:36 980次阅读
    GZCOM-NET:为<b class='flag-5'>机械</b><b class='flag-5'>臂</b>测试带来高效无线解决方案!