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

embedded/2024/9/25 18:32:24/

系列文章目录


前言


一、用法

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)对象。

lbr = loadrobot("kukaIiwa14")
lbr = rigidBodyTree - 属性:NumBodies: 10Bodies: {[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'

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

lbr.DataFormat = "row";

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

[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.


http://www.ppmy.cn/embedded/17630.html

相关文章

DIY高考倒计时小软件python实现

目录 一.前言 二.完整代码 三.代码分析 一.前言 高考倒计时是指从当前日期到高考日期之间的天数倒计时。高考是指中国的普通高等学校招生全国统一考试,是中国教育系统中最为重要和决定性的考试之一。在高考前,学生和家长通常会关注离高考还有多少天,以便合理安排备考时间…

【MySQL】基础知识

1、安装配置环境 数据库版本:MySQL8.3版本图形界面:Navicat premium 2、关于数据存储 MySQL 数据库系统从大到小依次是数据库服务器、数据库、数据表、数据表的行与列。一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建…

【MySQL】创建和管理数据库

1、创建数据库 创建数据库——CREATE DATABASE 数据库名;创建数据库并指定字符集——CREATE DATABASE 数据库名 CHARACTER SET 字符集;判断数据库是否已经存在,不存在则创建数据库——CREATE DATABASE IF NOT EXISTS 数据库名; 2、使用数据库 查看当前所有的数据库…

基于nest框架的redis streams实现mq(bullmq)

官网文档地址:Documentation | NestJS - A progressive Node.js framework 0.队列简介 队列是一种强大的设计模式,可以帮助您处理常见的应用程序扩展和性能挑战。队列可以帮助您解决的一些问题示例如下: (1)平滑处理峰。例如&…

鸿蒙云函数调试坑点

如果你要本地调试请使用 const {payload, action} event.body/** 本地调试不需要序列化远程需要序列化 */ // const {payload, action} JSON.parse(event.body) const {payload, action} event.body 注意: 只要修改云函数,必须上传云函数 如果使用 const {pay…

Android OTG U盘无法显示在系统文件管理的修改

Android OTG U盘无法显示在系统文件管理的修改 文件:frameworks\base\services\core\java\com\android\server\StorageManagerService.java 函数:private void onVolumeCreatedLocked(VolumeInfo vol) 如下修改: private void onVolumeCreat…

【LLVM】在Windows中配置LLVM开发环境

本文内容 0.动机1. 安装Visual Studio 20192 安装Python3已安装Python未安装Python 3. 配置Visual Studio4.安装LLVM获取源码将LLVM切换到我们的目标版本编译LLVM 0.动机 想着ubuntu用着别手,看看能不能在Windows中进行开发。于是就动手实践了下 Getting Started w…

第12章 最佳的UI体验——Material Design实战

第12章 最佳的UI体验——Material Design实战 其实长久以来,大多数人都认为Android系统的UI并不算美观,至少没有iOS系统的美观。以至于很多IT公司在进行应用界面设计的时候,为了保证双平台的统一性,强制要求Android端的界面风格必…