当前位置: 首页 > news >正文

pos网站源码建设工程培训

pos网站源码,建设工程培训,wordpress 去除邮箱,做推广哪个网站最好写在前面: Matlab不仅支持DH参数建模,也支持直接使用结构化描述文件urdf建模,urdf是一种类似html的结构文本,能结构化描述各个关节、连杆的关系和属性。 要求提前建好模,并按照关节导出stl文件,这部分在6…

写在前面:

Matlab不仅支持DH参数建模,也支持直接使用结构化描述文件urdf建模,urdf是一种类似html的结构文本,能结构化描述各个关节、连杆的关系和属性。

要求提前建好模,并按照关节导出stl文件,这部分在6.1节已经完备讲过了。如果没有现成模型,可以等我把xMate7的模型传到资源上。

如果是自行建模,大家可能遇到的一个问题是如何修改坐标系原点,可以参考https://blog.csdn.net/2301_80226956/article/details/149453062?spm=1001.2014.3001.5502


质量分布描述在《机器人学导论》(约翰J克雷格著)第118页,如果没看过也没关系,下面我们会一起快速复习一遍。

惯性张量复习速通

物理性质描述是构建模型必不可少的一部分,我们常用结构化文件urdf来描述一个机械臂,其中就需要计算惯性张量。

物体平动时,我们用质量直接描述他的惯性特征。

而在刚体转动时,我们也要一种能表征质量分布的方式,于是我们引入惯性张量矩阵
他描述了刚体在三维空间中绕其质心旋转时的惯性特性,它决定了物体“抵抗转动”的能力——就像质量描述物体抵抗平动的能力一样。

他是一个对称矩阵:

{}^A I = \begin{pmatrix} I_{xx} & -I_{xy} & -I_{xz} \\ -I_{xy} & I_{yy} & -I_{yz} \\ -I_{xz} & -I_{yz} & I_{zz} \end{pmatrix}

其中主对角线上Ixx、Iyy、Izz是惯性矩,其余交叉项是惯性积

I_{xx} = \iiint_V (y^2 + z^2) \rho \, dv \\ I_{yy} = \iiint_V (x^2 + z^2) \rho \, dv \\ I_{zz} = \iiint_V (x^2 + y^2) \rho \, dv \\ I_{xy} = \iiint_V xy \rho \, dv \\ I_{xz} = \iiint_V xz \rho \, dv \\ I_{yz} = \iiint_V yz \rho \, dv

要注意,惯性张量矩阵的计算依赖于选取的坐标系,一般我们直接用关节坐标系来计算。
特别地,有时候选取坐标系会使得交叉项惯量积为0,此时坐标系的三根轴被称为主轴,对应的惯性矩被称为主惯性矩

我们常用平行轴定理将惯量积置零,使其变成主对角线矩阵,简化计算。

比如,这是以长方体一个角为原点建系得到的惯性张量矩阵,我们希望通过转换坐标系,将惯量积置零:

{}^A I = \begin{pmatrix} \frac{m}{3}(l^2 + h^2) & -\frac{m}{4}wl & -\frac{m}{4}hw \\ -\frac{m}{4}wl & \frac{m}{3}(w^2 + h^2) & -\frac{m}{4}hl \\ -\frac{m}{4}hw & -\frac{m}{4}hl & \frac{m}{3}(l^2 + w^2) \end{pmatrix}

平行轴定理如下:

{}^A I_{zz} = {}^C I_{zz} + m(x_c^2 + y_c^2) \\ {}^A I_{xy} = {}^C I_{xy} - mx_cy_c

那么我们可以通过更改原点:将在角上的坐标系转移到体心上

\mathbf{p} = \begin{pmatrix} x_c \\ y_c \\ z_c \end{pmatrix} = \frac{1}{2} \begin{pmatrix} w \\ l \\ h \end{pmatrix}

由平行轴定理,我们可以得到:

{}^C I_{zz} = \frac{m}{12} (\omega^2 + l^2) \\ {}^C I_{xy} = 0

此时就完成了置零,成功将其变成主对角矩阵。

{}^C I = \begin{pmatrix} \frac{m}{12}(h^2 + l^2) & 0 & 0 \\ 0 & \frac{m}{12}(\omega^2 + h^2) & 0 \\ 0 & 0 & \frac{m}{12}(l^2 + \omega^2) \end{pmatrix}

一般solidworks在工具栏可以用“评估”获得每个连杆的惯性张量矩阵,但我们还是要会算。

同时,如果使用AI生成urdf文件,一定要检查inertia一栏,是否按照[0][0]、[1][1]、[2][2]、[1][2]、[1][3]、[2][3]的顺序填写惯性张量矩阵。任何不确定的参数,都可以读document。


虽然绝大多数时候都可以由AI或solidworks生成urdf文件,但是由于某些原因,仍然可能导致结构性错误,这个时候就需要我们看懂urdf文件才能修改了。

URDF描述文件的结构

我们看下结构,

urdf和html类型,也是通过节点描述机器人的物理与几何结构,其中:

最外层是机器人节点:

1. <robot name="xMate7">

<robotname="xMate7"><link>...</link><joint>...</joint>
</robot>
  • 定义了一个名为 xMate7 的机器人模型。
  • 下面有多个link和joint节点。link代表连杆,joint代表关节,意味着所有连杆和关节都属于这个机器人。

接下来来看link关节如何写:

2. <link>:机器人的连杆

<linkname="base"><inertial>...</inertial><visual>...</visual><collision>...</collision>
</link>

每个 <link> 代表机器人的一个刚体部件,例如底座、手臂节段等。

每个 link 包含三类节点:

子标签作用
<inertial>质量参数:描述该部件的质量、质心位置和惯性张量(用于动力学仿真)
<visual>视觉参数:使用什么 3D 模型(STL 文件)、颜色等
<collision>定义用于碰撞检测的几何形状(通常也用 STL,也可简化为立方体/圆柱)

一般碰撞禁止区域<collision>都会比实体部分大不少,同时会取一个更平整简洁的立方体、圆柱体简化计算,以免碰撞。

其中

<inertial>详述

<inertial>包括origin、mass、inertia三部分

<inertial><originxyz="-0.0190975185922809 3.63607466931301E-05 0.0741764160993386"rpy="0 0 0" /><massvalue="5.27639214386426" /><inertiaixx="0.0277370875503954"ixy="2.17941599274713E-05"ixz="-0.00396137885321739"iyy="0.0357761993501891"iyz="4.48688518868532E-06"izz="0.0304451579710877" />
</inertial>

origin定义了连杆相对于连杆原点的偏移和旋转,显然是六维的。

mass定义了该连杆的质量。

inertia定义了惯性张量矩阵,分别是矩阵的[0][0]、[1][1]、[2][2]、[1][2]、[1][3]、[2][3],为什么呢?因为他是对称矩阵,因此只要知道矩阵的上三角的元素就能得知整个矩阵的值。{}^A I = \begin{pmatrix} I_{xx} & -I_{xy} & -I_{xz} \\ -I_{xy} & I_{yy} & -I_{yz} \\ -I_{xz} & -I_{yz} & I_{zz} \end{pmatrix}

<visual>详述

<visual>包括了origin、geometry、material三部分

<visual><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://xMate7/meshes/base.STL" /></geometry><materialname=""><colorrgba="1  0 0 1" /></material>
</visual>

origin定义了 <visual> 模型相对于其所属 <link> 坐标系的位置和姿态偏移

geometry定义了视觉模型的几何形状,可以用简单的正方体和圆柱体替代,也可以使用stl模型。

material定义了视觉模型的材质属性,主要是颜色或纹理。

<collision>详述

<collision>包括了origin、geometry两部分

<collision><originxyz="0 0 0"rpy="0 0 0" /><geometry><meshfilename="package://xMate7/meshes/base.STL" /></geometry>
</collision>

origin定义了碰撞模型相对于其所属 <link> 坐标系的位置和姿态偏移

geometry定义了碰撞检测所使用的几何形状。

3. <joint>:机器人的关节

<link>...</link>
<jointname="Joint1"type="revolute"><originxyz="0 0 0.404"rpy="-1.5708 0 0" /><parentlink="base" /><childlink="Link1" /><axisxyz="0 -1 0" /><limitlower="-2.9671"upper="2.9671"effort="0"velocity="0" />
</joint>
<link>...</link>

joint主要定义连接哪两个连杆?两个连杆以什么方式连接?是否有限制?

type定义了两个连杆连接的方式,这里是"revolute"就是旋转关节。

originl定义从 父 link 坐标系 到 关节坐标系 的变换

axis定义了关节的运动轴方向(在关节坐标系下),这里绕y轴旋转

limit定义了关节变量的上下限。

而parent和child节点就指明了当前joint连接哪两个连杆,每个joint和link都有自己的名字,因此是用名字指定父连杆和子连杆。

4. 文件路径说明

每一个Link都需要把stl文件的路径导入

filename="package://xMate7/meshes/base.STL"

也可以是你模型的真实路径

filename="D:\工程\0. xMateSimFinal\版本二\xMate7\meshes\base.STL"

写好URDF文件后,可以在matlab用importrobot进行导入

% 导入 URDF 机器人模型
robot = importrobot('xMate7/urdf/xMate7.urdf');

加载代码

% 清除工作区
clear all; clc; close all;% 导入 URDF 机器人模型
robot = importrobot('xMate7/urdf/xMate7.urdf');%改成你的文件路径% 设置数据格式(可选)
robot.DataFormat = 'row';% 显示机器人(在零位姿态 q = zeros(1,7))
figure('Position', [600, 300, 800, 600]);
show(robot, 'Frames', 'off');  % 'off' 表示不显示坐标系
title('xMate7 机器人模型 - 默认姿态');
axis equal;
view([-250, 30]);  % 设置视角
grid on;
axis([-0.6 0.8 -0.4 0.6 0 1.0]);  % 调整坐标轴范围以便更好查看

这里最后的axis代表展示的区间,你可以调大一些。

如果出现下面的视图证明成功!

http://www.dtcms.com/a/522164.html

相关文章:

  • 合肥商务科技学校网站建设做旅游网站的目的和意义
  • 南宁网站推广¥做下拉去118cr网站建设怎么用长尾做标题
  • 深圳找人做网站网站改版建设 有哪些内容
  • 做网站如何防止被骗python3 网站建设
  • 宁波专业网站建设公司新泰网页定制
  • 不用代码做网站的工具包头哪里做网站
  • 苏州区网站建设北京模型设计制作
  • 句容网站制作哪家好国内类似wordpress
  • 天津环保网站建设概念网站开发项目拖延周期
  • iis网站物理路径确定网站推广目标
  • 网易那个自己做游戏的网站是什么原因东莞阳光网投诉查看
  • flash 3d 网站源码住房建设网站
  • HarmonyOS 项目入门:构建跨设备智能应用的强大框架
  • 法律行业网站建设校园电商平台网站建设
  • dw做网站弊端阿里logo设计平台
  • 衡水网站建设制作html音乐播放器代码
  • 算法面经常考题整理(3)大模型
  • 柯城网站建设新版lnmp安装wordpress
  • 甘肃建设厅网站二级建造师报名时间香河县住房和城乡建设局网站
  • 购物网站开发流程图莱州 网站制作
  • 做网站建设话术找人做网站排名优化
  • 怎么制作网站源码网站建设工具
  • 东莞网站设计智能 乐云践新wordpress自动发现
  • 网站跳转到另外一个网站怎么做软件开发工具是什么意思
  • 网站建设的基本费用深圳大型网络科技公司
  • 小型企业网站如何建设广告投放方式
  • 吉安网站建设jxthw苏州建设培训中心网站
  • 上海网站设计工作室网站建设 会议纪要
  • 怎么做自己的网站教程北京做网做
  • 江苏缘生源建设工程有限公司网站个人主页经典句子