【MR】现代机器人学-UR5机械臂正向动力学仿真-2(零外力、零关节力矩、初始J2=-1rad)...

news/2024/11/25 15:49:06/

Python计算仿真生成路径点csv文件,coppeliasim加载路径点进行可视化演示。

922ad6c342a1dcf7e548d81fa1bfd438.png仿真截图

Coppeliasim加载仿真结果视频演示

Python程序:基于MR算法库的正向动力学仿真

import numpy as np
import modern_robotics as mr
from pprint import pprintnp.set_printoptions(formatter={'float': lambda x: "{0:0.3f}".format(x)})M01 = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.089159], [0, 0, 0, 1]]
M12 = [[0, 0, 1, 0.28], [0, 1, 0, 0.13585], [-1, 0, 0, 0], [0, 0, 0, 1]]
M23 = [[1, 0, 0, 0], [0, 1, 0, -0.1197], [0, 0, 1, 0.395], [0, 0, 0, 1]]
M34 = [[0, 0, 1, 0], [0, 1, 0, 0], [-1, 0, 0, 0.14225], [0, 0, 0, 1]]
M45 = [[1, 0, 0, 0], [0, 1, 0, 0.093], [0, 0, 1, 0], [0, 0, 0, 1]]
M56 = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0.09465], [0, 0, 0, 1]]
M67 = [[1, 0, 0, 0], [0, 0, 1, 0.0823], [0, -1, 0, 0], [0, 0, 0, 1]]
G1 = np.diag([0.010267495893, 0.010267495893,  0.00666, 3.7, 3.7, 3.7])
G2 = np.diag([0.22689067591, 0.22689067591, 0.0151074, 8.393, 8.393, 8.393])
G3 = np.diag([0.049443313556, 0.049443313556, 0.004095, 2.275, 2.275, 2.275])
G4 = np.diag([0.111172755531, 0.111172755531, 0.21942, 1.219, 1.219, 1.219])
G5 = np.diag([0.111172755531, 0.111172755531, 0.21942, 1.219, 1.219, 1.219])
G6 = np.diag([0.0171364731454, 0.0171364731454, 0.033822, 0.1879, 0.1879, 0.1879])
Glist = [G1, G2, G3, G4, G5, G6]
Mlist = [M01, M12, M23, M34, M45, M56, M67] 
Slist = [[0,         0,         0,         0,        0,        0],[0,         1,         1,         1,        0,        1],[1,         0,         0,         0,       -1,        0],[0, -0.089159, -0.089159, -0.089159, -0.10915, 0.005491],[0,         0,         0,         0,  0.81725,        0],[0,         0,     0.425,   0.81725,        0,  0.81725]]
#关节初始配置  J2=-1 rad
thetalist = np.array([0.0, -1, 0.0, 0.0, 0.0, 0.0])
dthetalist = np.zeros((6,))
taulist = np.zeros((6,))
g = np.array([0.0, 0.0, -9.81])
Ftip = np.zeros((6,))
dt = 0.005thetamat = thetalist.copy()for i in range(1000):ddthetalist = mr.ForwardDynamics(thetalist, dthetalist, taulist, g, Ftip, Mlist, Glist, Slist)[thetalist, dthetalist] = mr.EulerStep(thetalist, dthetalist, ddthetalist, dt)thetamat = np.vstack((thetamat, thetalist))np.savetxt("simulation2.csv", thetamat, delimiter=",")

输出结果:

177bdb6e312bb3ef309f4ec5e8932c11.png

The End


http://www.ppmy.cn/news/715013.html

相关文章

用css画一个csdn程序猿

效果如下&#xff1a; 头部 我们先来拆解一下&#xff0c;程序猿的结构 两只耳朵和头是圆形组成的&#xff0c;耳朵内的红色部分也是圆形 先画头部&#xff0c;利用圆角实现头部形状 借助工具来快速实现圆角效果 https://9elements.github.io/fancy-border-radius/ <div…

视频目标检测与轨迹跟踪代码案例

前言 通过阅读相关文献及测试&#xff0c;找到了一种基于多模板匹配的改进方法&#xff0c;可以对遥感视频卫星中的移动目标进行探测&#xff0c;并绘制其轨迹。根据实验结果发现&#xff0c;可以比较有效的对运动目标进行跟踪。 一、原理 核心思想比较简单。即通过不同旋转角度…

Cortex-M4

系统内核 总线框架数据存储中断异常寄存器异常返回Systick延时处理器模式任务切换 总线框架 数据存储 中断异常 寄存器 异常返回 Systick延时 /*** brief 延时程序&#xff0c;单位us* param 延时数量* retval None* note 主频180Mhz, 8分频作为时钟源*/ void delay_us(uint…

pytorch实战13:基于pytorch实现YOLOv1(长长文)

基于pytorch实现YOLOv1&#xff08;长长文&#xff09; 前言 ​ 本篇文章的目的是记录自己实现yolo v1的过程&#xff0c;在此过程中&#xff0c;参考了许多开源的代码和博客&#xff0c;赞美大佬们。 参考文献和代码 YOLO v1代码参考&#xff1a;&#xff08;读书人的事情&…

linux系统断电文件系统损坏规避方法

1. 如果有大电容&#xff0c;检测到断电后先做dismount&#xff0c;然后再走标准关机流程。 #!/bin/bashPATH/sbin:/bin:/usr/sbin:/usr/binmount -o remount,ro / umount -f -a -r > /dev/null 2>&1 fp popen("ps -e | grep \app\ | awk \{print $1}\&qu…

“Windows 资源保护找到了损坏文件但无法修复其中某些文件”的问题

很多人都会用sfc /scannow来解决系统文件损坏的问题&#xff0c;但有时也会遇到连sfc都无法修复的情况&#xff0c;最常见的就是出现“Windows 资源保护找到了损坏文件但无法修复其中某些文件 CBS.Log windir\Logs\CBS\CBS.log中有详细信息”&#xff0c;其实这是因为系统文件在…

Linux写文件断电保存,linux 写文件操作,异常掉电后,文件损坏丢失(0kb)

今天调试程序,在做异常断电测试时,再开机发现文件是0 kb, 通过log查询,文件已经写入完成。不明白为何掉电之后文件就没了。 查到下面的博文解决了该问题。 通过 fflush->fsync->fclose解决该问题 一、问题描述 Linux系统,嵌入式程序开发。 程序运行过程中,有读写配…

excel文件修复工具_OFFICE文件图标空白的修复方法(亲测有效)

前两天,我的一位同事反馈他的电脑中OFFICE2016出现了问题,操作系统为WIN10,图标显示异常为空白,但不影响打开使用(只是该兄弟为强迫症患者,求我给修复好)。显示效果如下图: office图标显示空白 PS:造成这种情况的原因一般是装过WPS,卸载后又安装了OFFICE;又或者是win1…