机器人控制系列教程之Simulink中模型搭建(1)

机器人模型获取

接上期:机器人控制系列教程之控制理论概述,文中详细讲解了如何通过Solidworks软件导出URDF格式的文件。文末提到了若需要将其导入到Simulink中可在命令行中输入smimport('urdf/S_Robot_urdf.urdf'),MATLAB将自动打开Simulink以Simscape模块的形式生成模型文件。当然,MATLAB软件内置还是有很多机器人的模型,各位可以到MATLAB官方查看,MATLAB机器人工具箱(相关的安装教程可见:)中,可在MATLAB命令行中输入models即可看到机器人工具箱中所有机器人的模型。本节对应的模型文件见文末!

>> models
ABB, IRB140, 6DOF, modified_DH (mdl_irb140_mdh)
ABB, IRB140, 6DOF, standard_DH (mdl_irb140)
ABB, S4_2.8, S4 2.8m reach version, 6DOF, standard_DH (mdl_S4ABB2p8)
Adept, Cobra600, 4DOF, standard_DH (mdl_cobra600)
Aldebaran, NAO, humanoid, 4DOF, standard_DH (mdl_nao)
Baxter, Rethink Robotics, 7DOF, standard_DH (mdl_baxter)
Fanuc, AM120iB/10L, 6DOF, standard_DH (mdl_fanuc10L)
Fanuc, M16, 6DOF, standard_DH (mdl_M16)
Franka-Emika, PANDA, 7DOF, standard_DH (mdl_panda)
Kinova, Jaco, 6DOF, standard_DH (mdl_jaco)
Kinova, Mico, 6DOF, standard_DH (mdl_mico)
Kuka, KR5, 6DOF, standard_DH (mdl_KR5)
Kuka, LWR, 7DOF, standard_DH (mdl_LWR)
Motoman, HP6, 6DOF, standard_DH (mdl_motomanHP6)
Rethink Robotics, Sawyer, 7DOF, standard_DH (mdl_sawyer)
Stanford, Stanford Arm, prismatic, 6DOF, standard_DH (mdl_stanford)
Stanford, Stanford arm, prismatic, 6DOF, modified_DH (mdl_stanford_mdh)
Trossen Robotics, PhantomX Pincher, 4DOF, standard_DH (mdl_phantomx)
Unimation, Puma560, dynamics, 6DOF, modified_DH (mdl_puma560akb)
Unimation, Puma560, dynamics, 6DOF, standard_DH (mdl_puma560)
Unimation, Puma560, on XY base, redundant, 8DOF, standard_DH (mdl_p8)
Universal Robotics, UR10, 6DOF, standard_DH (mdl_ur10)
Universal Robotics, UR3, 6DOF, standard_DH (mdl_ur3)
Universal Robotics, UR5, 6DOF, standard_DH (mdl_ur5)
generic, 6DOF, standard_DH (mdl_offset6)
generic, 6DOF, standard_DH (mdl_simple6)
generic, ball shape, hyper redundant, 50DOF, standard_DH (mdl_ball)
generic, coil, hyper redundant, 50DOF, standard_DH (mdl_coil)
generic, planar, 1DOF, standard_DH (mdl_onelink)
generic, planar, 1DOF, standard_DH (mdl_planar1)
generic, planar, 2DOF, modified_DH (mdl_twolink_mdh)
generic, planar, 2DOF, standard_DH (mdl_planar2)
generic, planar, 2DOF, symbolic, standard_DH (mdl_planar2_sym)
generic, planar, 3DOF, standard_DH (mdl_planar3)
generic, planar, dynamics, 2DOF, standard_DH (mdl_twolink)
generic, planar, dynamics, 2DOF, symbolic, standard_DH (mdl_twolink_sym)
hyper redundant, 10DOF, standard_DH (mdl_hyper3d)
planar, hyper redundant, 10DOF, standard_DH (mdl_hyper2d)

Robotics System Toolbox(MATLAB官方安装包)也有许多机器人的模型可见:https://ww2.mathworks.cn/help/robotics/ref/importrobot.html。

Toolbox区别

MATLAB 中有两个用于机器人学和机器人控制的工具箱:Robotics Toolbox 和 Robotics System Toolbox。这两个工具箱在功能和范围上有一些区别,但它们都旨在为用户提供处理机器人相关问题的功能和工具。

  • Robotics Toolbox是 Peter Corke 开发的一个 MATLAB 工具箱,提供了一系列用于机器人学和机器人控制的函数和工具。它主要用于教学和研究,提供了大量的基本功能,包括机器人的运动学、逆运动学、动力学、轨迹规划等。Robotics Toolbox 中包含了一些经典的算法和模型,如 Puma560 机器人模型,以及一些用于仿真和控制的工具和函数。
  • Robotics System Toolbox 是 MathWorks 官方发布的一个工具箱,作为 MATLAB 的一部分提供。它是一个更加全面和专业化的工具箱,旨在处理实际机器人应用中的问题,包括传感器集成、导航、视觉处理等。Robotics System Toolbox 不仅包括了机器人学和机器人控制方面的功能,还提供了一系列用于与实际机器人系统进行通信和交互的工具,如 ROS(机器人操作系统)的接口、机器人仿真环境的连接等。

因此,尽管两个工具箱都涉及机器人学和机器人控制,但 Robotics Toolbox 主要用于教学和研究,提供了基本的功能和算法,而 Robotics System Toolbox 则更专注于实际应用,提供了更全面和专业化的功能,适用于实际的工程项目和应用场景。
但需要注意的是:Robotics Toolbox 是由 Peter Corke 开发并维护的,目前距离上次维护已经是4年前了,对Simulink的适配较差且整个软件需要单独安装;而Robotics System Toolbox基本上每个新的MATLAB的版本(2019a以来)都有维护,内置在Simulink的库中,配合Simulink强大的功能可以做很多有趣的事情!

实例

本次笔者使用的模型是KUKA的iiwa7串联七自由度机器人,可以看下他们官网对这款机器人的介绍:“KMR iiwa 自主型机器人灵活,可以实现人机合作。它将 LBR iiwa 灵敏轻型机器人和自主移动式平台的优点综合在一个系统中。KMR iiwa 不受地点限制、高度灵活——为满足工业 4.0 的要求创造了理想条件。”

这个机器人的默认是已经内置到了MATLAB中,只需要在MATLAB命令行中输入:smimport('iiwa7.urdf'),即可在Simulink中打开这个机器人的模型,是由Simscape搭建,你可自定义设置其关节的驱动方式和输出的信息。

下面有一个已经搭建好的机器人模型,并且已经通过了验证大家可以自行下载:https://pan.baidu.com/s/1gXF2CQCOh4MKeGZ6aa9Egg?pwd=tech,提取码:tech(若链接失效,可进群咨询获取!)。针对上述生成的模型主要做了如下的几条修改:

  1. 每个关节都设置了驱动方式为运动,且导出了每个关节的位置、速度、加速度以及驱动力矩的大小为了后续进行控制器设计时作为反馈。

  1. 在默认的Simulink的“建模”->“模型属性”中设置了回调InitFcn,进行加载机器人的三维模型和URDF文件,并且设置数据格式(以列为准)和重力方向大小,如下:

  1. 将模型进行封装,添加icon图像。

到此,模型的相关设置结束,下一篇推文笔者将重点介绍Simulink中的Robotics System Toolbox库的一些重点模块。欢迎持续关注!

往期推荐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《数据结构与算法基础 by王卓老师》学习笔记——1.4算法与算法分析

一、算法 1.1算法的研究内容 1.2算法的定义 1.3算法的描述 以下是算法的自然语言描述 以下是算法的传统流程图表示 以下是NS流程图表示 1.4算法和程序的区别与联系 1.5算法的五个特性 1.6算法设计的要求 Robustness也称为鲁棒性 二、算法分析 2.1算法时间效率的度量 2.1.1事…

JavaParser抽取测试用例对应的被测方法

背景介绍 博主目前要做的工作需要将一个java项目的所有RD手写的测试用例和被测方法对应起来,最后将得到的结果存入一个json文件。 本教程以项目GitHub - binance/binance-connector-java 为例。 结果展示 最终会得到一个 funcTestMap.json,里面存放着…

快速清理Word中的嵌套表格

实例需求:Word文档中表格有的单元格中包含嵌套表格(注意其中表格中有合并单元格),如下图所示。 现在需要删除单元格顶部的嵌套表格(如上图中的表格1和表格3),如下图所示,如果表格较多…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 数字排列游戏(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

Elasticsearch-Rest-Client

Elasticsearch-Rest-Client&#xff1a;官方RestClient&#xff0c;封装了ES操作&#xff0c;API层次分明&#xff0c;上手简单。 1. 导入依赖 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high…

14-6 小型语言模型在商业应用中的使用指南

人工智能 (AI) 在商业领域的发展使众多工具和技术成为人们关注的焦点&#xff0c;其中之一就是语言模型。这些大小和复杂程度各异的模型为增强业务运营、客户互动和内容生成开辟了新途径。本指南重点介绍小型语言模型、它们的优势、实际用例以及企业如何有效利用它们。 基础知识…

Windows 系统 Solr 8.11.3 安装详细教程(最新)

Windows 系统 Solr 8.11.3 安装详细教程 说明什么是Solr下载与解压如何启动启动命令&#xff1a;浏览器中打开dashboard其他命令查看关闭命令 说明 本次只是简单安装&#xff0c;为了在项目中使用&#xff0c;如果在公开服务器中安装需要更改开放端口&#xff0c;配置权限等。 …

Python28-1 机器学习算法之决策树

决策树&#xff08;Decision Tree&#xff09; 决策树算法是一种常用的机器学习算法&#xff0c;属于监督学习范畴。它可以用于分类和回归任务&#xff0c;具有易于理解和解释的特点。决策树通过递归将数据分割成更小的子集&#xff0c;构建一个树形结构&#xff0c;其中每个节…

iOS开发中用到的自定义UI库

文章目录 前言cell 左右滑动菜单日历组件仿QQ 侧滑抽屉仿探探、陌陌的卡牌滑动库头部缩放视图自定义UITabbar刮刮乐广告横幅 前言 本文中的UI组件&#xff0c;是作者在移动应用开发中都用到过的。 确实&#xff0c;找到对的三方库可以快速帮助我们构建App, 极大程度上提高了生…

Websocket在Java中的实践——最小可行案例

大纲 最小可行案例依赖开启Websocket&#xff0c;绑定路由逻辑类 测试参考资料 WebSocket是一种先进的网络通信协议&#xff0c;它允许在单个TCP连接上进行全双工通信&#xff0c;即数据可以在同一时间双向流动。WebSocket由IETF标准化为RFC 6455&#xff0c;并且已被W3C定义为…

C++ | Leetcode C++题解之第204题计数质数

题目&#xff1a; 题解&#xff1a; class Solution { public:int countPrimes(int n) {vector<int> primes;vector<int> isPrime(n, 1);for (int i 2; i < n; i) {if (isPrime[i]) {primes.push_back(i);}for (int j 0; j < primes.size() && i …

【建设方案】工单系统建设方案(Word原件)

工单管理系统解决方案 1、工单创建&#xff1a;根据告警信息创建工单。 2、工单管理&#xff1a;列表形式展示所有工单信息及进度状态。 3、工单处理&#xff1a;对接收的工单进行处理反馈。 4、工单催办&#xff1a;根据工单时效自动发送工单催办消息通知。 5、工单归档&#…

Allegro如何单独导出一个封装?

Allegro如何单独导出一个封装? Allegro如何导出封装? 在用Allegro进行PCB设计时,有时候需要从其它的项目中导出需要的封装,但一般情况下不需要全部的封装,只需要其中的某一个封装,那么怎么导出呢? 具体操作方法如下 首先需要在Allegro的安装目录下安装两个文件。(文件附…

css 流动边框

一、背景流动边框 实现原理&#xff1a; 用背景进行旋转&#xff0c;超出我们想显示的范围则hidden&#xff0c;就有以上的效果&#xff0c;可以用after或者before元素来实现也可以。 <!DOCTYPE html> <html lang"en"><head><meta charset&qu…

Ubuntu-22.04 安装Confulence

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

第四节:如何使用注解方式从IOC中获取bean(自学Spring boot 3.x的第一天)

大家好&#xff0c;我是网创有方&#xff0c;上一节学习了如何理解Spring的两个特性IOC和AOP&#xff0c;这一节来基于上节的内容进行一个简单实践。这节要实现的效果是通过IOC容器获取到Bean&#xff0c;并且将Bean的属性显示打印出来。 第一步&#xff1a;创建pojo实体类stu…

操作系统之《处理器机调度算法》【知识点+详细解题过程】

目录 PS:处理机调度算法相关公式&#xff1a; 1、【FCFS】先来先服务调度算法 2、【SJF&#xff08;SPF&#xff09;】短作业&#xff08;进程&#xff09;优先调度算法 3、【HRRF】最高响应比优先算法 4、【SRTF】最短剩余时间优先调度算法&#xff08;抢占式&am…

SpringCloudAlibaba基础四 微服务调用组件OpenFeign

JAVA 项目中如何实现接口调用&#xff1f; 1&#xff09;Httpclient HttpClient 是 Apache Jakarta Common 下的子项目&#xff0c;用来提供高效的、最新的、功能丰富的支持 Http 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新版本和建议。HttpClient 相比传统 …

COB显示屏厂家为您详细解析COB显示屏的制造流程

倒装COB显示屏所采用的工艺与传统SMD LED显示屏完全不同&#xff0c;其是直接把LED发光芯片封装于PCB基板之上&#xff0c;因此其能够提供更小的像素间距&#xff0c;并且产品表面覆盖有高分子材料涂层&#xff0c;能够增强产品的防磕碰能力以及防水能力&#xff0c;在之前的文…

STM32开发方式的演变与未来展望

一、STM32开发方式的演变 自2007年STM32微控制器首次亮相以来&#xff0c;其开发方式经历了从寄存器到标准库&#xff0c;再到HAL&#xff08;硬件抽象层&#xff09;的演变。 1.寄存器开发&#xff08;2007年-2010年代初&#xff09; 最初&#xff0c;由于初期缺乏足够的软…