Matlab - Solidworks 机器人建模(1)—— 浅谈Matlab机器人建模思路

2023-11-19

本文的讨论对象仅局限于刚体模型
Matlab建立机器人模型主要有两个方面(当然不排除有其他的,我只说我知道的):

  1. Rigidbody tree 坐标系模型
  2. Simsacpe 物理模型

建立rigidbody tree模型主要是为了能够使用matlab自带的一些机器人函数,减少我们的工作量,因为这个建模方法本质上是定义好了机器人内部的坐标系关系。比如说Matlab 2019b里面就自带了帮你计算机器人FK,IK以及动力学方程的函数。这样的话你只需要知道如何正确地使用这些函数,你就不需要自己推导那些复杂的正逆运动学动力学方程,直接开始仿真。下图展示了Matlab robotics system toolbox里面的一些功能模块
在这里插入图片描述

而 Simscape 模型主要是模型可视化,方便你仿真时看到模型是如何响应和如何运动的。我个人目前的使用习惯是结合两个建模方法,就是说先建好rigidbody tree模型以能够使用自带函数,再得到Simscape模型来可视化仿真。在仿真的时候前面正逆运动学,动力学算法部分用 rigidbody tree 模型结合matlab函数得到轨迹信号,控制信号等等,接着在模型部分用 Simscape 模型来代表我们实际的机器人模型接收控制信号进行仿真。

那么问题来了:

  1. 我怎么得到 rigidbody tree模型?rigidBodyTree直接建模看这里
  2. 我又怎么得到simsacpe模型?

你要是头比较铁,rigidbody tree 模型和 simscape 模型都可以从最基本的坐标系,基本结构块生建出来,rigidBodyTree还好说,simscape模型直接建模还是有点恐怖了(我相信没有人会这么做)。Matlab 和 solidworks 提供了很方便的模型转化功能。方便我们通过solidworks机械模型来转换出我们需要的matlab模型。

转换方向有这几种:

  1. solidworks 机械模型直接转换成 simscape 模型,想了解的可以看这个文章 《如何把solidworks模型转换成simscape模型》
  2. solidworks转换成urdf模型,再从urdf模型分别转换成rigidbody tree模型以及simscape模型。想了解的可以看《如何把cad文件转化成urdf》,以及《如何把urdf导入到matlab》

建议直接采用方法2的转换方式,原因有:

  • 方法1转换出来的模型没法配置关节连杆之间的关系,导出来的结构很玄学。
  • 方法1导出来的模型里面的各种参数不是用数字表示,而是用变量表示的。虽然方便同步修改同名参数,但是很不直观。
  • 方法2导出来的 simscape 模型各种参数直接用数字表示,比较直观方便修改。
  • 方法1并没有给我们rigidbody tree模型,运动学和动力学等等方程需要你自己提前算好才能去部署,另外部署起来也不容易
  • 方法2可以同时获得rigidbody tree模型和simscape模型,且这两个模型之间坐标关系是对应的。rigidbody tree模型可以让我们方便的使用自带机器人学工具模块

那我不想学Solidworks也没有机器人的机械模型文件咋办?看这篇文章

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab - Solidworks 机器人建模(1)—— 浅谈Matlab机器人建模思路 的相关文章

  • 清除history内容

    history记录是记录在 bash history中的 history c 清除的是当前会话的记录 原来的记录是不会被清除的 可以直接删除 bash history 清空这个文件cat dev null gt bash history
  • c++ - 抽象类 和 多态当中一些问题

    抽象类 纯虚函数 在虚函数的后面写上 0 则这个函数为纯虚函数 class A public virtual void func 0 纯虚函数不需要写函数的定义 他有类似声明一样的结构 抽象类概念 我们把具有纯虚函数的类 叫做抽象类 所谓抽
  • C++ 惯用法之 CRTP

    背景 CRTP 是 一种 C 的设计方法 其巧妙的结合了继承和模板编程技术 可以用来给类提供额外的功能 CRTP 概述 CRTP 的基本特征表现为 基类是一个模板类 派生类在继承该基类时 将派生类自身作为模板参数传递给基类 实现示例 tem
  • ACE命令参数解析

    ACE提供了ACE Get Opt类来处理命令行参数选项 这个类是一个迭代器 用于解析按照自然数方式计数的参数向量 它包装了POSIX的getotp 函数的功能 但是与getopt 函数不同 ACE Get Opt类的每个实例都维护有自己的
  • 【Vue】终极笔记:面试必胜宝典,大厂面试题源码级详解 (持续更新!!!)

    Vue经典面试题源码级详解 1 Vue组件之间通信方式有哪些 分析 思路分析 回答范例 1 组件通信常用方式有以下8种 2 根据组件之间关系讨论组件通信最为清晰有效 2 v if 和 v for哪个优先级更高 分析 思路分析 回答范例 3
  • mysql运行语句时出现 FUNCTION *** does not exist

    我在运行MYSQL时 经常出现这种问题 一阵搜索后 原来问题出现在函数与括号之间的空格上 比如 写成 concat 这样就出错了 需要去掉空格 concat 就好了 资料来源 在这个网址找到方法 http blog 152 org 2009
  • [Spring Boot]08 IDEA接入MyBatisCodeHelper代码自动生成器

    目录 前言 一 插件市场安装插件 二 使用插件自动生成代码 前言 上次介绍了 原生mybatis的方法 06 Spring Boot接入mybatis通用mapper插件自动生成器 这次 再介绍下插件MyBatisCodeHelper Pr
  • P4wnP1 USB与赛门铁克反病毒绕过

    最近 我使用P4wnP1 image把我手头的Raspberry Pi Zero W转换成了一个bad USB 我的最终目标是运行远程命令shell 同时绕过已启用完全保护的最新版Symantec SEP 我通过创建自己的有效负载paylo
  • QGis二次开发 -- 源码编译终极篇

    由于是开源软件 QGis版本迭代比较快 在保持long term release版本的基础上 每个月都会有一个monthly release的新版本发布 源码工程变化快速 给想要上手编译开发的新人朋友带来了一些困惑 我之前分别写过QGis1
  • pytorch crossentropy为nan

    pytorch crossentropy为nan 交叉熵损失函数的具体为 loss x ln z 1 x ln 1 z z softmax pred x 这样当z为0 0时会出现loss为nan的情况 本人的具体原因 网络中用了MultiH
  • nginx启动、关闭、重启及常用的命令

    转自 https blog csdn net veryisjava article details 72917894 nginx常用命令 启动 cd usr local nginx sbin nginx nginx服务启动后默认的进程号会放
  • Error creating bean with name ‘com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration‘:

    报错图 原因分析 与MybatisPlusProperties的配置有关 该配置用于配置MyBatis Plus的全局设置 BindException表示在将mybatis plus global config db config前缀下的属
  • 凛冬已至 冰凌垂挂 岁末年初

    时光荏苒 岁月蹉跎 时间一分一秒从我们身边流过 岁月的脚步声也是越来越小 还没来得及跟眼前的2022挥手道别 2023已经出现在我们的眼前向我们问好 2023 就是新的一年 总会给我们带来无数的幻想和憧憬 虽然现在的我还没有一个真正的新年
  • QT基础学习(12)---事件过滤

    文章目录 事件过滤 一 事件过滤 实现该功能的方法就是在目标部件 自定义的图片显示部件 上注册事件过滤器 此时的事件过滤器就是我们所说的监视对象 完成这些步骤之后 当目标部件有事件产生后 首先会传递给监视对象 事件过滤器 进行处理而不是该事
  • 华为OD机试 - 猜字谜(Java)

    题目描述 小王设计了一个简单的猜字谜游戏 游戏的谜面是一个错误的单词 比如nesw 玩家需要猜出谜底库中正确的单词 猜中的要求如下 对于某个谜面和谜底单词 满足下面任一条件都表示猜中 变换顺序以后一样的 比如通过变换w和e的顺序 nwes
  • Kibana报错:Kibana server is not ready yet解决方法

    环境及版本 elasticsearch和kibana均为包安装的7 6 2 系统为unbutu22 04 1 部署完后访问kibana的web界面 出现kibana server is not ready yet 遇到这个问题后也是搜索了一

随机推荐

  • python注意事项

    python注意事项 1 缩进问题 每一个缩进都可能会导致有bug 因此要格外注意缩进 对齐 空格问题 尤其是循环体下的空格 一定要对齐 一般是缩进4格 2 标点符号的使用小结 逗号后面要有空格 冒号也是 等号前后都要有空格 3 字符串使用
  • MBA-day31 绝对值的几何意义

    绝对值的几何意义 1 x 2 x 4 由图可知 x 有 3 处取值区间 x gt 2 无最大值 x gt 4 无最大值 2 lt x lt 4 当x取值为 2和4时 存在几何意义中的最小值为 6 2 x 2 x 4 3 是否有根 由题1中
  • JAVAWEB编程题

    1 登陆验证代码
  • 人工智能大模型加速数据库存储模型发展 行列混合存储下的破局

    数据存储模型 专栏内容 postgresql内核源码分析 手写数据库toadb 并发编程 toadb开源库 个人主页 我的主页 座右铭 天行健 君子以自强不息 地势坤 君子以厚德载物 概述 在数据库的发展过程中 关系型数据库是一个里程碑式的
  • STL标准模板库学习笔记三(STL哈希容器)

    关联式容器 排序 的底层实现采用的树存储结构 更确切的说是红黑树结构 无序容器 哈希 的底层实现采用的是哈希表的存储结构 基于底层实现采用了不同的数据结构 因此和关联式容器相比 无序容器具有以下 2 个特点 无序容器内部存储的键值对是无序的
  • 欢迎访问阿里云Go Module代理仓库服务

    简介 go module公共代理仓库 代理并缓存go模块 你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题 加速你的构建 地址 https mirrors aliyun com goproxy 使用帮助 1 使用go1 11以
  • leetcode刷题__删除有序数组中的重复项

    文章目录 题目描述 Java解决方法 题目描述 Java解决方法 class Solution public int removeDuplicates int nums int len nums length if len 0 return
  • Day81-爱心代码音乐版

    项目地址 截止到2023 9月有效 点击跳转 先看效果 素材来自网络 自己加了播放音乐的效果 直接上代码
  • 快速排序算法及其改进算法实现

    快速排序算法不稳定 快速排序算法在大多数的计算机上运行得都比其他排序算法快 而且排序算法消耗资源少 就平均时间而言快排是所有内部排序中最好的一个 对于已经排好的数组 最速排序有最坏时间复杂度为o n 2 当数组长度很小时 快排往往比其他排序
  • 【openGL2021版】链接FBX模型库

    openGL2021版 链接FBX模型库 大家好 我是Lampard猿奋 欢迎来到船新的openGL基础系列的博客 今天主要实现的是链接FBX模型第三方库 一 demo回顾 上周我已经实现了粒子系统 可以看到场景中已经存在着像萤火虫一样的闪
  • Wsl 开发环境配置

    Apt换源 切换清华源 sudo sed i s http archive ubuntu com https mirrors tuna tsinghua edu cn g etc apt sources list sudo sed i s
  • 图文详解 排序算法对比以及能解决的问题

    我们会使用的排序算法 总结源自 极客时间 王争老师 地址 https time geekbang org column intro 126 能看到所有的算法和数据结构的网站 https visualgo net en 这里是关于排序算法的链
  • 六大设计原则--开闭原则

    定义 software entities like classes modules and functions should be open for extension but closed for modifications 一个软件实体
  • php background,CSS BACKGROUND定位背景上下左右偏移

    css中我们经常使用background加载图片作为背景 这个背景图片可以通过具体属性的设置调整其上下左右偏移 调整背景图的上下左右偏移可以通过设置background属性或background position属性来实现 我们以div加背
  • Linux:非root、普通用户安装rpm(fontconfig、fc-cache命令)、中文字体

    前提 非root帐号 普通帐号 不能使用yum rpm命令 没root权限 安装fontconfig 测试是否安装 安装字体后需要使用fontconfig包的fc cache fv命令刷新字体缓存 可以使用下面命令测试 二选一就行 fc l
  • java版kafka producer实现

    需求 1 kafka server已经配置完全 且设定了访问限制 基于这一点 必须要设定认证 及预先分配的账号密码 2 由于项目开发环境是java 且不允许使用LogStash 基于这一点 必须实现一个java版的producer 先贴一份
  • error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

    原因是你两个类的头文件互相包含了 这样是有问题的 参考博客 error C4430 缺少类型说明符 假定为 int 注意 C 不支持默认 int 很多不懂呀 博客园
  • CountDownLatch、CyclicBarrier、Semaphore源码解析

    1 CountDownLatch 计数器 CountDownLatch CountDownLatch 类位于java util concurrent包下 利用它可以实现类似计数器的功能 比如有一个任务A 它要等待其他4个任务执行完毕之后才能
  • Spring Boot + Vue + Shiro 实现前后端分离

    前后端分离思想 前端只利用 Json 来和后端进行交互 后端不返回页面 只返回 Json 数据 前后端之间完全通过 public API 约定 Springboot 就不再赘述了 Controller 层返回 Json 数据 Request
  • Matlab - Solidworks 机器人建模(1)—— 浅谈Matlab机器人建模思路

    本文的讨论对象仅局限于刚体模型 Matlab建立机器人模型主要有两个方面 当然不排除有其他的 我只说我知道的 Rigidbody tree 坐标系模型 Simsacpe 物理模型 建立rigidbody tree模型主要是为了能够使用mat