代码复现,我能行之DMP-MATLAB

news2024/11/26 14:47:29

代码复现,我能行——系列一

一、基础概念

Dynamic Movement Primitives (DMP),中文为动态运动基元或动态运动原语,由美国University of Southern California的Stefan Schaal教授团队于2002年提出,是一种用于轨迹模仿学习的方法,可以将机械臂末端轨迹建模为一个弹簧阻尼二阶系统,用于轨迹的复现和泛化,避免了机械臂繁琐的手动编程。

二、原作者信息及环境

DMP-MATLAB代码是由MIT大学Dr. Moses开源,作者全名为Moses C. Nah,是韩国奥林匹克金牌获得者,本科在首尔大学,硕博在MIT,很厉害的履历。特别之处,Dr. Moses的导师是Nevil Hogan,也就是阻抗控制的提出者

代码连接:
https://github.com/mosesnah-shared/DMP-MATLAB

环境:
MATLAB2021以上版本,我使用的是MATLAB R2023a(因为复现这个程序,特意安装了最新版本的MATLAB)

复现本代码需要在MATLAB安装作者开发的Explicit-MATLAB----a MATLAB-based robotic simulator based on differential geometry. 也就是一种基于MATLAB的使用微分几何的机器人模拟器。

Explicit-MATLAB网址:
https://github.com/explicit-robotics/Explicit-MATLAB/tree/e2de82e60f118e1a8fa247367339899c1f510336#authors

三、复现过程

1.首先下载DMP-MATLAB压缩文件,解压到个人存放程序的文件夹

下载链接:https://github.com/mosesnah-shared/DMP-MATLAB

在这里插入图片描述

2.下载Explicit-MATLAB模拟器

下载链接:https://github.com/explicit-robotics/Explicit-MATLAB/tree/e2de82e60f118e1a8fa247367339899c1f510336#authors

同样下载ZIP压缩文件,解压到DMP-MATLAB文件夹下,先把该文件夹下原有的Explicit-MATLAB删除,因此之前是空的。

3.在MATLAB安装Explicit-MATLAB模拟器

在这里插入图片描述

打开MATLAB R2023a,通过上方菜单栏将当前文件夹设置为Explicit-MATLAB文件夹。运行setup.m脚本以包括所有子文件夹。或者也可以直接在命令行窗口中执行以下命令:

setup

如果命令行窗口中出现以下行,则表示已安装成功!

'EXPlicit (c) Moses C. Nah & Johannes Lachner 2022-2023, https://explicit-robotics.github.io'

4.在MATLAB运行DMP程序

在这里插入图片描述

MATLAB导航至DMP-MATLAB的examples文件夹,运行main_IL_iiwa_pos.m程序,中间可能显示路径问题,根据提示进行修改即可,很简单。

四、复现结果展示

在这里插入图片描述
在这里插入图片描述

完结,撒花~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【转存】Lambda 表达式完整教程

Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的。具体原理放到下一篇。本篇我们首先感受一下使用La…

【LeetCode-中等题】114. 二叉树展开为链表

文章目录 题目方法一:前序遍历(构造集合) 集合(构造新树)方法二:原地构建方法三:前序遍历--迭代(构造集合) 集合(构造新树) 题目 方法一&#x…

中间继电器 ZQGZ-PY31 DC220V 导轨安装 品牌:JOSEF约瑟

ZQGZ-04、31、22、40导轨安装系列中间继电器用于电力系统继电保护及各种自动控制线路中。以增加保护和控制线路中的触点数量及触电容量。 系型型号 ZQGZ-04 ZQGZ-31 ZQGZ-22 ZQGZ-40 ZQGZ-RJ04 ZQGZ-RJ31 ZQGZ-RJ22 ZQGZ-RJ40 ZQGZ-PJ04 ZQGZ-PJ31 ZQGZ-PJ22 ZQGZ-PJ40 …

iPhone 15 Pro与iPhone 13 Pro:最大的预期升级

如果你在2021年首次发布iPhone 13 Pro时就抢到了它,那么你的合同很可能即将到期。虽然距离iPhone 15系列还有几周的时间,但你可能已经在想:是时候把你的旧iPhone升级为iPhone 15 Pro了吗? 我们认为iPhone 13 Pro是你现在能买到的最好的手机之一。但如果你想在2023年晚些时…

JVM解密: 解构类加载与GC垃圾回收机制

文章目录 一. JVM内存划分二. 类加载机制1. 类加载过程2. 双亲委派模型 三. GC垃圾回收机制1. 找到需要回收的内存1.1 哪些内存需要回收?1.2 基于引用计数找垃圾(Java不采取该方案)1.3 基于可达性分析找垃圾(Java采取方案) 2. 垃圾回收算法2.1 标记-清除算法2.2 标记…

国标GB28181视频平台EasyGBS国标平台智能边缘计算网关关于小区电动车进电梯的应用方案设计

一、行业背景 随着人工智能技术的不断成熟与落地,各行各业也逐渐融入AI智能检测技术,尤其是在视频监控领域,通过AI视频智能检测与分析,可以大大提高视频的自动化、智能化监控能力。比如在小区的管理中,由电动车上楼入…

了解 Socks 协议:它的过去、现在与未来

在网络世界的江湖中,有一名叫做 Socks 协议的高手,它凭借着一招“代理”绝技,在网络安全领域独步天下。今天,就让我们来了解一下这位神秘高手的过去、现在和未来。 在过去,互联网世界的江湖可谓是风起云涌,…

JavaScript 中 如何在数组中找到两个值的和等于给定的值

在JavaScript中&#xff0c;您可以使用两种常见的方法来找到数组中两个值的和等于给定的值。 方法一&#xff1a;使用双重循环 function findSum(arr, target) {for (let i 0; i < arr.length; i) {for (let j i 1; j < arr.length; j) {if (arr[i] arr[j] target…

WebVR — 网络虚拟现实

推荐&#xff1a;使用 NSDT编辑器 快速搭建3D应用场景 虚拟现实设备 随着Oculus Rift和许多其他生产设备即将上市&#xff0c;未来看起来很光明——我们已经有足够的技术来使VR体验“足够好”&#xff0c;可以玩游戏。有许多设备可供选择&#xff1a;像Oculus Rift或HTC Vive这…

如何利用课间休息时间?这个工具很重要

在不断演变的时代&#xff0c;学校不再仅仅是知识的源泉&#xff0c;它们也正在成为创新和科技应用的舞台。新零售模式的崭新风貌正在逐渐融入校园&#xff0c;而自动售货机作为这一变革的重要组成部分&#xff0c;为学校带来了前所未有的便利与活力。 在这个充满机遇的背景下&…

分享一篇关于如何使用BootstrapVue的入门指南

你想轻松地创建令人惊叹且响应式的在线应用程序吗&#xff1f;使用BootstrapVue&#xff0c;您可以快速创建美观且用户友好的界面。这个开源工具包是基于Vue.js和Bootstrap构建的&#xff0c;非常适合开发现代Web应用程序。本文将介绍其基础知识&#xff0c;让您可以开始使用这…

数据结构day04(概念、顺序表)

今日任务 2.冒泡排序和选择排序 #define MAX 10typedef struct{int id; }data;typedef struct seq{data arr[MAX];int len; }seqList,*seqListP;/** function: 选择排序* param [ in] * param [out] * return */ int selectSort(seqListP p){if(is_empty(p))return 1;…

springboot整合Excel填充数据

填充一组数据 准备模板 封装数据 import java.util.ArrayList; import java.util.List;/*** 使用实体类封装填充数据** 实体中成员变量名称需要和Excel表各种{}包裹的变量名匹配*/ Data public class FillData {private String name;private int age;// 生成多组数据代码pub…

采购退款,撸卡撸货高成功率的下单方法,到底应该怎么做?

市面上的网络环境有非常多种&#xff0c;纯ip类的有luminati&#xff0c;922&#xff0c;G3&#xff0c;M5&#xff0c;谷歌fi&#xff0c;纯环境类的有VM&#xff0c;ads, 巨象&#xff0c;林肯法球等等。还有VPS比如无间道&#xff0c;手机AWZ /ALS 还有一些环境IP的比如云手…

地图设计指南之30大要点

1 明确的目的 ● 地图设计的第一步&#xff0c;先问问自己设计地图的目的是什么&#xff1f; 2标题 ● 地图标题应反映地图的用途&#xff0c;应该向读者揭示重要的信息&#xff0c;不应该让读者猜测地图的内容。标题一般包括主题和地理位置信息。 3适当利用模板 ● 和使用…

刷完这个笔记,15K不能再少了....

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿到理想…

朝夕光年游戏自动化测试实践

朝夕光年是面向全球用户与开发者的游戏研发与发行业务品牌&#xff0c;致力于服务全球玩家&#xff0c;帮助玩家在令人惊叹的虚拟世界中一起玩耍与创造。 在游戏的研发过程中&#xff0c;游戏自动化一直是开展难度较大的工程&#xff0c;具体包括机房机架、设备调度、软件框架、…

伦敦银资金管理的技巧

前面的文章中&#xff0c;笔者多次提到过&#xff0c;在伦敦银投资中&#xff0c;技术分析并不是全部。有的投资者认为伦敦银投资就等于技术分析&#xff0c;我们通过技术分析找到入场和出场的点&#xff0c;自然就能够盈利。如果技术高超的话&#xff0c;盈利将会越来越多&…

Java 动态规划 Leetcode 740. 删除并获得点数

题目 对于该题的题目分析&#xff0c;已经代码分析都一并写入到了代码注释中 代码 class Solution {public int deleteAndEarn(int[] nums) {//核心思路&#xff1a;//由于我们获得 nums[i] 的点数之后&#xff0c;就必须删除所有等于 nums[i] - 1 和 nums[i] 1 的元素//假设…

性价比高的照明品牌,五大性价比高的照明品牌台灯推荐

很多家长有时候会说孩子觉得家里的台灯灯光刺眼&#xff0c;看书看久了就不舒服。这不仅要看光线亮度是否柔和&#xff0c;还要考虑台灯是不是有做遮光式设计。没有遮光式设计的台灯&#xff0c;光源外露&#xff0c;灯光会直射孩子头部&#xff0c;孩子视线较低&#xff0c;很…