机器人操纵,第1部分:运动学
在这个博客中,塞巴斯蒂安·卡斯特罗将讨论机器人操纵与MATLAB仿真软件。金宝app这一部分将讨论运动学 ,下一个部分将讨论动力学。
- - - - - - - - - - - -
在机器人机械手速成班
让我们先从一个快速的运动学和动力学的比较。
- 运动学是运动的分析不考虑部队。在这里,我们只需要长度等几何性质和自由度机械手机构。
- 动力学分析运动引起的力量。除了几何,我们现在需要质量和惯性参数计算的加速度。
机器人机械手通常由几个关节。关节是由转动(旋转)或棱镜(线性)自由度(景深)。因此,关节位置可以控制机器人的终端执行器在3 d空间。
如果你知道机器人的几何形状及其所有关节位置,你能做数学和计算任意点在机器人的位置和姿态。这就是所谓的正运动学(颗)。
更频繁的机器人操纵的问题,然而,恰恰相反。我们想计算所需的关节角,末端执行器达到一个特定的位置和姿态。这就是所谓的逆运动学(反向),更难以解决。
求解逆运动学
取决于你的机器人几何、本土知识可以解决分析或数值。
- 分析解决方案金宝搏官方网站意味着你可以推出,在封闭的关节位置的表达式给出所需的终端执行器的位置。这是有益的,因为你所有的离线工作,解决本土知识会很快。与所有工程:如果你有一个系统的精确模型,你应该好好利用它!
- 数字解决方案金宝搏官方网站通常是缓慢和可预测分析的解决方案,但他们比分析解决方案可以解决困难问题(下面我们扩大)。金宝搏官方网站然而,这些解决方案形式的初始条金宝搏官方网站件,引入不确定性优化算法的选择,甚至是随机的机会。所以,你可能不会得到你想要的答案。
终端执行器的三维姿势可以指定由6个参数:位置和3为取向。从技术上讲,你可以推出一个分析的解决方案如果有6 nonredundant关节机械手,假设所需的位置是可获得的。
机器人设计师一直聪明确保机械手自由度高可控性,同时确保本土知识分析解决方案是可能的。金宝搏官方网站例如,我一直在软件工程师Nanodegree Udacity机器人,其中一个项目涉及到分析本土知识的库卡KR2106自由度机械手。此机械手有一个球形的手腕,将位置和姿态分析动力学问题。你可以在GitHub上找到我的那样。
所以…为什么你会选择一个数值解吗?这里有一些想法。
- 机械手有冗余自由度(总是这样7或更高)
- 你不想推导出数学和数值解的计算资源
- 你的目标位置是无效的,但你仍然想要尽可能接近它
- 有多个,甚至是无限的,分析解决方案金宝搏官方网站
- 你想介绍多个复杂的约束
情况下有多个解决方案,相对容易处理分析本土知识。金宝搏官方网站
(左)翼正好有两个解决方案——“上”或“下”。金宝搏官方网站
(右)以来本土知识无限的解决方案的任何旋转基础是金宝搏官方网站有效的。
复杂的操作情况下很可能适合数值解。
(左)7自由度机械手末端执行器位置可以与多个有效的解决方案。金宝搏官方网站
(右)的例子在机械手位置约束之间的两个坐标框架。
总结,解决动力学分析是快速、准确、可靠。然而,当你走向更困难的问题,数值解往往更容易实现,甚至是必要的。金宝搏官方网站
代表在MATLAB和Simulink机器人机械手金宝app
现在,你希望有一个基本的想法为什么机械手运动学是重要的,以及他们能解决什么样的现实问题。内置有两种方法可以处理机器人机械手模型在MATLAB和Simulink仿真。金宝app
MATLAB
- 怎样去:创建一个刚体树对象
- 当使用:解决前进和逆运动学和动力学,提取机械性能(雅可比矩阵、质量矩阵、重力力矩,等等)。
金宝app
- 怎样去:创建一个Simscape多体模型
- 当使用:系统级的动态模拟、集成与作动器的物理模型,接触力学等。
两个刚体树对象和Simscape多体模型可以从头开始创建的,或进口统一的机器人描述格式(URDF)文件。此外,Simscape多体还可以导入3 d模型从常见的CAD软件。我的同事Christoph哈恩写了博客在这。
2018年开始发布,机器人系统工具箱包括一个机械手算法模型块库金宝app。这些模块允许您执行对象从刚体运动学和动力学分析树模型,这使得上面的两个表征系统级仿真和控制设计应用程序一起工作。金宝app第2部分中您将了解更多关于这个。
…是的,这些块生成C / c++代码可以部署独立的算法在MATLAB和Simulink之外。金宝app
在MATLAB和Simulink逆运动学金宝app
机器人系统工具箱提供了两种数值为机械手逆运动学动力学:
下面是一些示例MATLAB代码和一个动画的广义动力学模型考虑索耶,7自由度的手臂。在这里,我们设定一个限制终端执行器的位置,同时执行,终端执行器指向一个单独的目标点附近的地面上。
索耶= importrobot(索耶。urdf”、“MeshPath”,……fullfile (fileparts ((“sawyer.urdf”)),“. .”,“网格”,“sawyer_pv”));gik =机器人。GeneralizedInverseKinematics (“RigidBodyTree”,索耶,…ConstraintInputs,{“位置”,“目标”});%的目标位置约束targetPos = (0.5, 0.5, 0);handPosTgt = robotics.PositionTarget (‘right_hand’,‘TargetPosition targetPos);%的目标目标约束靶点= (1 0、-0.5);handAimTgt = robotics.AimingConstraint (“right_hand”、“靶点”,“靶点);%解决广义动力学[gikSoln solnInfo] = gik (sawyer.homeConfiguration, handPosTgt handAimTgt)显示(索耶,gikSoln);
什么你能想到其他约束运动流畅?
逆运动学在更大的图景
一旦你测试你的本土知识解决方案,MATLAB和Simulink让你探索下一个步骤来建立一个完整的金宝app机器人操作系统,如:
- 将本土知识与机器人动力学的模拟
- 添加其他算法,如监管逻辑,知觉和路径规划
- 自动生成独立的从你的算法和C / c++代码部署到硬件或中间件,如活性氧
我们在视频中讨论这个“机器人机械手设计算法”,四自由度特性ROBOTIS OpenManipulator平台。你可以下载的示例文件MATLAB中央文件交换。
(视频)MATLAB和Simu金宝applink机器人领域:设计机器人机械手算法
结论
你们中的很多人可能为现有的机器人开发算法已经内置的关节转矩控制器。从这个角度来看,你可以假设机器人关节充分跟踪您提供任何有效的定位点。
运动学本身可能是有用的设计运动规划算法,以及执行分析完全基于机器人几何——例如,工作空间分析或避碰。
在下一个部分,我们将进一步讨论机械手动力学和如何促进低级控制设计与MATLAB仿真软件的应用程序。金宝app
随时与我们给我们评论或电子邮件roboticsarena@mathworks.com。我希望你喜欢阅读!
——塞巴斯蒂安
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。