MATLAB - 机器人动力学 - 质心(Center of Mass)

系列文章目录


前言


一、用法

com = centerOfMass(robot)

com = centerOfMass(robot,configuration)

com,comJac = centerOfMass(robot,configuration)

二、说明

  • com = centerOfMass(robot) 计算机器人模型在原点构型处相对于基础坐标系的质心位置。
  • com = centerOfMass(robot,configuration) 计算机器人模型在指定关节配置处相对于基准坐标系的质心位置。
  • com,comJac = centerOfMass(robot,configuration) 还返回质心雅各布系数,它将质心速度与关节速度联系起来。

三、示例

3.1 计算机器人配置的质量中心和雅各布系数

从机器人系统工具箱™ loadrobot 中加载库卡 LBR iiwa 机器人模型。该模型被指定为刚体树(rigidBodyTree)对象。

Matlab 复制代码
lbr = loadrobot("kukaIiwa14")
Matlab 复制代码
lbr = 
  rigidBodyTree - 属性:

     NumBodies: 10
        Bodies: {[1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]  [1×1 rigidBody]}
          Base: [1×1 rigidBody]
     BodyNames: {'iiwa_link_0'  'iiwa_link_1'  'iiwa_link_2'  'iiwa_link_3'  'iiwa_link_4'  'iiwa_link_5'  'iiwa_link_6'  'iiwa_link_7'  'iiwa_link_ee'  'iiwa_link_ee_kuka'}
      BaseName: 'world'
       Gravity: [0 0 0]
    DataFormat: 'struct'

将数据格式设置为 "行"。对于所有动力学计算,数据格式必须是 "行 "或 "列"。

Matlab 复制代码
lbr.DataFormat = "row";

计算机器人原点配置的质心位置和雅各布。

Matlab 复制代码
[comLocation,comJac] = centerOfMass(lbr);
show(lbr);
hold all
plot3(comLocation(1),comLocation(2),comLocation(3),Marker="x",MarkerSize=30,LineWidth=5);

四、输入参数

robot - 机器人模型 ------ 刚体树对象

以刚体树对象形式指定的机器人模型。要使用质量中心函数,请将数据格式属性设置为 "行 "或 "列"。
configuration - 机器人配置 ------ 矢量

机器人配置向量,包含机器人模型中所有非固定关节的位置。您可以使用 homeConfiguration(机器人)、randomConfiguration(机器人)或指定自己的关节位置来生成配置。要使用矢量形式的配置,请将机器人的 DataFormat 属性设置为 "行 "或 "列"。

五、输出参数

com - 质量中心位置 ------ x y z 矢量

质心位置,以 x y z 向量形式返回。该向量描述了指定配置的质心相对于车身坐标系的位置,单位为米。
comJac - 质量中心雅各布矩阵 ------ 3 乘 n 矩阵

质量中心雅各布,以 3 乘 n 矩阵形式返回,其中 n 是机器人的速度自由度。

六、参考

1 Featherstone, Roy. Rigid Body Dynamics Algorithms. Springer US, 2008. DOI.org (Crossref), doi:10.1007/978-1-4899-7560-7.

相关推荐
java资料站18 分钟前
十一、Spring AI Alibaba · 高级 · 多智能体(Multi-agent)
人工智能·spring·microsoft
2601_9556624627 分钟前
情感解说视频如何提升感染力?配音细节很关键
人工智能·音视频·语音识别·视频
Cc.Y27 分钟前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
苏醒的人生30 分钟前
电商品牌物料AI生图工具推荐:让品牌调性一套到底
人工智能
lank_M35 分钟前
截图OCR预处理在普通屏上翻车,Retina截图却没事
图像处理·人工智能·计算机视觉·ocr
Aloudata35 分钟前
LookML 语义模型 vs 企业级独立语义层:BI 建模语言能否承担企业语义底座?
数据库·人工智能·数据分析·数据资产·dataagent
阿森_dev1 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
龙亘川1 小时前
AI 协同赋能城市治理:支撑政协数字化履职的技术路径探析
大数据·人工智能·智慧城市·开源软件·数据可视化
通信大模型1 小时前
IEEE TCCN | 面向低空经济网络的Agentic AI驱动多无人机轨迹优化
网络·人工智能·无人机
by209991 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态