用MATLAB三步完成机器人搭建

全世界只有3.14 % 的人关注了

爆炸吧知识

如果说机器人是一粒种子,那么《机器人大擂台》这档节目就是那个播种人。节目中,不同选手操纵着机器人,在擂台上各显神威 —— 冲撞、翻滚、撬杠、喷火等各种技能,总能令人眼花缭乱,同时点燃心中关于机器人的各种幻想。

用MATLAB三步完成机器人搭建

另一个例子是无人机。如果说分拣机器人还属于各大物流公司的核心机密,如下凡天仙一般平日里难得一睹芳容,那无人机早已化身邻家女孩,平易近人地装点着我们的生活:

用MATLAB三步完成机器人搭建

动图来自《美国国家地理》

银河补习班里有句经典台词:“我的孩子,上的是全世界最好的补习班,银河补习班。”今天,MATLAB就为你带来宇宙最强机器人补习班,手把手教你如何建造属于自己的机器人! 

许多人认为 MATLAB 是数学或教育软件。事实上,MATLAB 最初被广泛采用是在控制工程领域,随后开发了多种技术领先的算法包和工具箱,并被全球各大高校广泛采纳为数学教育软件 [1]。即将进入机器人补习班的你,准备好了吗/p>

第一步:安装机器人工具箱

工欲善其事,必先利其器,我们首先需要安装 MATLAB 的机器人工具箱(Robotics System Toolbox)。我们既可以上MathWorks 官网 [2] 下载,又可以通过打开 MATLAB 主界面,单击“添加项”(Add-Ons) 选项进行操作。

用MATLAB三步完成机器人搭建

目前软件已更新至最新版本R2020a,增加更多功能,小伙伴可以尝试康康

操作完成后,打开 MATLAB 并输入

如果能找到如下信息

那么恭喜,机器人工具箱已安装成功!

第二步:你想要什么样的机器人模是关键

我们要设计的第一个机器人,是一条可以自由转动的机械手臂。在 MATLAB 中,机械手臂由不同的连杆(Link)通过关节(Joint)拼接而成。依活动状态分,关节又可分为旋转型平移型,其意义顾名思义 [2]:

用MATLAB三步完成机器人搭建

而输入下面的命令,我们即可一睹该机械手臂的庐山真面目:

用MATLAB三步完成机器人搭建

此外,我们还可以给连杆和关节赋予诸如质量、转动惯量、惯性矩阵之类的参数,此处限于篇幅故略去之,有兴趣的小伙伴可以参考链接 [1] 或 [2]。实践出真知,理解以上概念最好的方式,就是逐个调整代码中的参数,观测结果变化。

第三步:看!它左手右手一个慢动作!

我们已经知道如何用 MATLAB 搭建一个简单的机器人了。然而这样搭建的机器人,和小朋友用积木搭建的玩具并无二致 —— 既然是用软件做成的机器人,我们自然希望它能动起来。我们以加拿大机器人公司 Kinova 的第三代机械臂为例,来看看 MATLAB 如何让这支麒麟臂动起来。

用MATLAB三步完成机器人搭建

不难看出,第三代 Kinova 是由 8 根连杆和 8 个关节拼接而成。如果我们要想知道某个具体连杆的信息,例如名叫 “Shoulder_Link” 的连杆, 依次输入

即可分别查询属于该连杆的关节,以及关节到母连杆和子连杆的转移矩阵。如此一来,我们就可以从这种方法重建出第三代 Kinova 机械臂了!

现在我们有两种方法可以让让机械臂动起来。第一种方法是通过变换关节旋转角度的方式,这种方法叫正运动学(Forward kinematics);第二种方法是通过给定每个连杆末端位置,这种方法叫逆运动学(Inverse kinematics)。正运动学可以很方便地对机械臂进行直接操控,而逆运动学则更有利于直接指定机械臂完成任务,例如抓取处于某位置的快递等等。这两种方法各有千秋。

有几何背景的读者知道,n 维欧式空间中的刚体形变可分为平移(Translation)、旋转(Rotation)和镜像(Reflection)三种,这三种变化可以用作用,或者矩阵来表示。由这三种作用组成的群叫做欧几里得群(Euclidean Group)记作 E(n),因为 E(n) 中的元素都可以用矩阵表示,所以 E(n) n+1 阶矩阵群的子群(具体解释见下图)。群 E(n) 中只由平移和旋转(不含镜像)构成的子群叫做特殊欧几里得群,记作 SE(n)。

用MATLAB三步完成机器人搭建

机械臂的初始位置。红色点表示机械臂所要经过的路径点

最后得到的轨迹图如下:

用MATLAB三步完成机器人搭建

k 表示离散的时刻。如果 f 和 h 都是线性矩阵,那直接让上面两式对 x, z 分别求偏导数,然后再更新 x 和 z 的值即可(F_a, H_a 分别表示 f 和 h 对变量 a 的偏导数向量):

用MATLAB三步完成机器人搭建

P<k> 是卡曼滤波在时刻 k 的协方差矩阵,该矩阵在更新变量 x 时会起到作用

推导过程令人头秃我们来看一看代码及实现过程吧!

用MATLAB三步完成机器人搭建

参考文献

[1]https://ww2.mathworks.cn/campaigns/products/trials.htmlrodcode=RO&s_eid=PEP_23398

[2] https://ww2.mathworks.cn/products/robotics.html_eid=PEP_23398

[3] 蔡自兴, 谢斌. 《机器人学》. 清华大学出版社; 2000.

[4]https://www.mathworks.com/matlabcentral/fileexchange/71130-trajectory-planning-for-robot-manipulators

来源:数据与算法之美

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月12日
下一篇 2020年4月12日

相关推荐