Matlab 机器人工具箱 动力学

文章目录

  • R.dyn
  • R.fdyn
  • R.accel
  • R.rne
  • R.gravload
  • R.inertia
  • R.coriolis
  • R.payload
  • 参考链接

#

官网:Robotics Toolbox - Peter Corke

R.dyn

查看动力学参数

mdl_puma560;
p560.dyn;%查看puma560机械臂所有连杆的动力学参数
p560.dyn(2);%查看puma560机械臂第二连杆的动力学参数
p560.links(2).dyn;%查看puma560机械臂第二连杆的动力学参数

R.fdyn

正动力学函数,根据力矩求解关节值。

[Tsim, q, qd] = R.fdyn(T, torqfun)

输入:T表示整个时间间隔,torqfun表示力矩函数
输出:Tsim表示每个采样时间点,q、qd表示各关节角度、角速度

[T, q, qd] = R.fdyn(T, torqfun, q0, dq0, ARG1, ARG2, ...)
% PD控制例子
[t, q] = R.fdyn(10, @mytorqfun, qstar, P, D);
function tau = mytorqfun(t, q, qd, qstar, P, D)
tau = P*(qstar-q) + D*qd;

设定关节角度、角速度的初值,并确定力矩函数中所含的参数。

R.accel

计算角加速度。

qdd = R.accel(q,qd,torqfun); %输入位置、速度、力矩,求解角加速度
% torqfun = [0,30,6,0,0,0];%设定一组关节力
bot_nf=bot.nofriction();
[T,q,qd] = bot_nf.fdyn(1, torqfun)
for i=1:65,qdd = bot_nf.accel(q(i,:),qd(i,:),torqfun)
end

R.rne

根据关节值求解所需力矩。

% 根据关节角度、角速度、角加速度等信息,求解各关节所需力矩
tau = R.rne(q, qd, qdd)
% 根据关节角度、角速度、角加速度、机器人末端作用力fext,求解各关节所需力矩
tau = R.rne(q, qd, qdd, grav, fext)
% 其中grav是重力加速度
% 其中fext=[Fx Fy Fz Mx My Mz]

R.gravload

求解重力载荷

>> mdl_puma560;
>> p560.gravload([1 2 3 4 5 6])%给定关节角度,求解出重力载荷
ans =0.0000   -7.9683    8.4581   -0.0197    0.0027         0

R.inertia

求解关节空间惯性矩阵

>> mdl_puma560;
>> p560.inertia([1 2 3 4 5 6])%给定关节角度,求解出关节空间惯性矩阵
ans =2.6152   -0.6550   -0.0363    0.0001    0.0010    0.0000-0.6550    4.3038    0.2953   -0.0008   -0.0017    0.0000-0.0363    0.2953    0.9366   -0.0009   -0.0006    0.00000.0001   -0.0008   -0.0009    0.1926    0.0000    0.00000.0010   -0.0017   -0.0006    0.0000    0.1713    0.00000.0000    0.0000    0.0000    0.0000    0.0000    0.1941

R.coriolis

求解科氏力和向心力的耦合矩阵

>> mdl_puma560;
>> qd = [0.1 0.1 0.1 0.1 0.1 0.1];%给定关节速度
>> C = p560.coriolis(qn,qd)%给定关节角度、关节速度,计算科式力和向心力的耦合矩阵
C =-0.0267   -0.1291    0.0170   -0.0000   -0.0003    0.00000.0627    0.0386    0.0771   -0.0002   -0.0000   -0.0000-0.0361   -0.0387   -0.0001   -0.0001   -0.0003   -0.00000.0000    0.0001   -0.0000    0.0000    0.0000   -0.0000-0.0000    0.0001    0.0002   -0.0000   -0.0000   -0.00000.0000    0.0000    0.0000    0.0000    0.0000         0

R.payload

求解有效载荷

>> mdl_puma560;
>> p560.inertia([1 2 3 4 5 6])%没有施加有效载荷时的惯性矩阵
ans =2.6152   -0.6550   -0.0363    0.0001    0.0010    0.0000-0.6550    4.3038    0.2953   -0.0008   -0.0017    0.0000-0.0363    0.2953    0.9366   -0.0009   -0.0006    0.00000.0001   -0.0008   -0.0009    0.1926    0.0000    0.00000.0010   -0.0017   -0.0006    0.0000    0.1713    0.00000.0000    0.0000    0.0000    0.0000    0.0000    0.1941
>> p560.payload(1,[0,0.1,0.2])%施加有效载荷
>> p560.inertia([1 2 3 4 5 6])%施加有效载荷后的惯性矩阵
ans =2.8033   -0.8506   -0.0951    0.0079    0.0778    0.0368-0.8506    4.6513    0.4828   -0.0858   -0.1011   -0.0584-0.0951    0.4828    1.1338   -0.0988   -0.0169   -0.02140.0079   -0.0858   -0.0988    0.2416    0.0029    0.00820.0778   -0.1011   -0.0169    0.0029    0.2120    0.01920.0368   -0.0584   -0.0214    0.0082    0.0192    0.2041

参考链接

MATLAB机器人工具箱【3】—— 动力学相关函数及用法

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

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

相关文章

(C语言)qsort函数详解

目录 1. qsort解释 2. qsort实例 2.1 qsort排列整形数组类型: 2.2 qsort排列结构体类型数据(字符串): 2.3 qsort排列结构体类型数据(整形): 1. qsort解释 我们可以进入网站:qso…

STM32 (2)

1.stm32编程模型 将C语言程序烧录到芯片中会存储在单片机的flsah存储器中,给芯片上电后,Flash中的程序会逐条进入到CPU中去执行,进而CPU去控制各种模块(即外设)去实现各种功能。 2.寄存器和寄存器编程 CPU通过控制其…

RabbitMQ使用

目录 初识MQ 同步通讯和异步通讯​编辑 同步通讯 同步调用存在的问题 总结 同步调用优点: 同步调用的问题: 异步通讯 事件驱动优势 总结 什么是MQ RabbitMQ快速入门 RabbitMQ概述和安装 RabbitMQ结构和概念​编辑 总结 常见消息模型 不同…

matplotlib折线图

matplotlib折线图 假设一天中每隔两个小时的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15], 画出对应的气温折线图 # 导入库 from matplotlib import pyplot as plt# 传入x轴和y轴数据, 是一个可迭代对象 # x轴和y轴的数据一起组成了所有要绘制出来的坐标 x range…

如何在Vue中实现事件处理?

Vue是一种流行的JavaScript框架,广泛应用于前端开发。在Vue中,事件处理是一个非常关键的概念,可以帮助我们实现用户与页面的交互,今天我们就来探讨一下如何在Vue中实现事件处理。 首先,让我们先了解一下在Vue中如何绑…

CentOS下安装Kafka3

kafka是分布式消息队列,本文讲述其在centos(centos 7.5)下的安装。安装过程可以参考其官方文档https://kafka.apache.org/36/documentation.html 首先在官网 https://kafka.apache.org/downloads 下载Kafka二进制文件(官网的压缩包…

2024-03-03 作业

作业要求: 1.使用fwrite、fread将一张随意的bmp图片,修改成德国的国旗 2.使用提供的getch函数,编写一个专门用来输入密码的函数,要求输入密码的时候,显示 * 号,输入回车的时候,密码输入结束 作业…

[Java 探索之路~大数据篇] 新时代大数据流处理入门指南

本文主要介绍大数据基础,以及 flink 流计算 文章目录 【基础知识】1. 批处理与流处理1.批处理2.流处理 2. 为什么需要一个优秀的流处理框架1. 股票交易的业务场景2.生产者——消费者模型3. 流处理框架要解决的诸多问题(1)可扩展性&#xff08…

数据分析-Pandas数据的画图设置

数据分析-Pandas数据的画图设置 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表&#x…

LSTM 长短期记忆递归神经网络

1、神经网络简介 1.1 神经网络起源 人工神经网络(Aritificial Neural Networks, ANN)是一种仿生的网络结构,起源于对人类大脑的研究。人工神经网络(Aritificial Neural Networks)也常被简称为神经网络(Ne…

2024-03-03 c++

🌸 MFC进度条控件 | Progress Control 1。新建MFC项目(基于对话框、静态库) 2。添加控件,删除初始的3个多余控件 加1个progress control,修改其marquee为true,添加变量:变量名为test_progress。…

如何开好一家汽车美容店,汽车美容保养与装饰教学

一、教程描述 本套教程共由17张VCD组合而成,教程内容主要包括:美容店的设立和管理,汽车系统与内部结构,汽车美容工具与美容设备,美容用品的选择与使用,车身打蜡镀膜与内外清洁,车身抛光与漆面处…