32.Isaac教程--操纵运动规划

news2024/11/16 22:22:50

操纵运动规划

在这里插入图片描述
ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html

Isaac SDK 为机械臂的运动规划提供了以下组件:

  • EndEffectorGlobalPlanner:使用逆运动学将末端执行器的笛卡尔目标转换为关节角度目标。 此小码可以接收笛卡尔目标(3d 姿势)作为复合消息,或从姿势树中读取。

  • MultiJointPlanner:生成轨迹以将关节列表从起始状态移动到目标状态。 该组件包含消息的通用解析代码,并且需要一个额外的组件来实现 MultiJointPlannerInterface。

  • MultiJointLqrPlanner:使用 LQR 实现 MultiJointPlannerInterface。 LQR 求解器将每个关节独立对待,并自动调整时间以找到不超过最小和最大速度和加速度约束的有效轨迹。 它还确保轨迹中的最后一个状态是接收到的目标。

    该组件仅在目标更改时输出新计划。 使用 speed_maxspeed_minacceleration_maxacceleration_min 配置参数确保计划对机器人可行。

  • MultiJointRmpPlanner:使用 RMPFlow 实现 MultiJointPlannerInterface。 它通过在多个时间步长上整合 RMPFlow 策略的输出来输出短轨迹。 因为 RMPFlow 充当本地反应控制器,所以它期望目标状态不会离起始位置太远。 有关 RMPFlow 工作原理的更多信息,请参阅下面的论文。

  • MultiJointController:对从规划器接收到的轨迹进行插值以确定要发送的当前命令。 此小代码可以根据 control_mode 配置输出关节位置或速度命令。 插值基于轨迹中的时间戳和当前滴答时间——具有小的前瞻性,可以使用 command_delay 配置参数进行配置,以考虑控制循环中的延迟。

这些小码需要一个 kinematic_tree 配置参数,该参数必须引用一个 kinematic-tree 文件。 小代码使用运动树配置来检索关节的数量及其名称,以解析和序列化 CompositeProto 消息。 有关创建运动学树文件的更多信息,请参阅操纵运动学文档。

操纵子图

Isaac SDK 提供了一个集成了 MultiJointPlanner、MultiJointController 和 KinematicTree 组件的子图。 您可以在 packages/planner/apps/multi_joint_lqr_control.subgraph.json(使用 MultiJointLqrPlanner)或 packages/planner/apps/multi_joint_rmp_control.subgraph.json(使用 MultiJointRmpPlanner)找到这个子图。 子图提供以下接口边:

  • state (input): “subgraph/interface/joint_state”

  • target (input): “subgraph/interface/joint_target”

  • command (output): “subgraph/interface/joint_command”

消息

与操作相关的组件使用 CompositeProto 消息进行通信。 具有 rank-1 张量的 CompositeProto 用于单个状态或命令。 以下示例显示了两个关节的状态:

CompositeProto: {
  "schema": [
    {"entity": "shoulder", "element_type": Float64, "measure": Position},
    {"entity": "shoulder", "element_type": Float64, "measure": Speed},
    {"entity": "elbow", "element_type": Float64, "measure": Position},
    {"entity": "elbow", "element_type": Float64, "measure": Speed}
  ],
  "schema_hash": "...",
  "values": {
    "element_type": Float64,
    "sizes": [19],
    "dataBufferIndex": 0
  }
}
buffers: [[0.7, 0.3, -0.4, 0.1]]

具有 2 阶张量的 CompositeProto 表示轨迹。 张量的第一个维度是时间步数。 每个时间步长的时间戳都是架构的一部分。 以下示例显示了两个关节在 t=0 和 t=0.1 时具有两个时间步长的轨迹:

CompositeProto: {
  "schema": [
    {"entity": "timestamp", "element_type": Float64, "measure": Time},
    {"entity": "joint1", "element_type": Float64, "measure": Position},
    {"entity": "joint2", "element_type": Float64, "measure": Position},
    {"entity": "joint1", "element_type": Float64, "measure": Speed},
    {"entity": "joint2", "element_type": Float64, "measure": Speed}
  ],
  "schema_hash": "...",
  "values": {
    "element_type": Float64,
    "sizes": [10 , 4],
    "dataBufferIndex": 0
  }
}
buffers: [[[0, 0.3, 0.7, -0.4, 0.1], [0.1, 0.32, 0.72, -0.3, 0.15]]]

更多精彩内容:
https://www.nvidia.cn/gtc-global/?ncid=ref-dev-876561

在这里插入图片描述

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

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

相关文章

云原生技能树-容器镜像制作、发布、拉取和运行

创建仓库 请在你自己的 gitcode.net 上创建一个仓库,命名为cloud_native_hello_py,目录结构如下: . ├── .dockerignore ├── .gitignore ├── Dockerfile ├── README.md └── src├── main.py└── requirements.txt其中 ma…

avb校验相关与块校验原理

一、启动校验流程 edk2/QcomModulePkg/Library/avb/VerifiedBoot.c DEBUG ((EFI_D_ERROR, "LoadImageAndAuth failed %r\n", Status)); in LoadImageAndAuth()edk2/QcomModulePkg/Application/LinuxLoader/LinuxLoader.c DEBUG ((EFI_D_ERROR, "LoadImageAndAu…

docker部署redis后,修改配置文件的requirepass后无效

解决方案 执行docker run命令时不要使用参数–requirepass docker部署redis流程(问题复现) 1. 启动redis容器 在服务器docker运行时,执行下列命令。(会自动在远程仓库下载镜像) redis: docker run \ --restartalw…

高等数学【合集】

文章目录极限计算求导计算极限计算 第一步:先看x→value确定类型第一步:先看x \rightarrow value确定类型第一步:先看x→value确定类型 7种未定型:∞∞,00,1∞,0∞,∞0,00,∞−∞7种未定型: \frac{\infty}{\infty},\frac{0}{0},1^{\infty},0^{\infty},\infty^0,0^0,\infty-\inf…

win10开机后桌面无图标问题解决办法

本篇文章主要讲解win10下桌面无图标的问题解决办法。 日期:2023年1月21日 作者:任聪聪 主要原因: 这个问题的原因是资源管理器或者注册表中有垃圾注册数据导致,实际上和显卡没有任何关系,但有些情况是由于驱动问题导致…

OSPF 特殊区域介绍、Stub、Totally Stub、NSSA、Totally NSSA

1.1.0 路由 OSPF 特殊区域介绍、Stub、Totally Stub、NSSA、Totally NSSA 特殊区域的产生和注意事项 产生:OSPF通过划分区域减小网络内路由器的LSDB的规模。对于那些位于AS边界的非骨干区域如果该设备是较为低端的路由器,则无法承受过多的路由条目。为此…

前端学习第一阶段:1-4章

学习总结:前四章学习总体来说不太难理解,如果时间宽裕,一天之内可以学完。 第一章 前端就业班课程导学 第二章 HTML5 CSS3课前导学 第三章 VSCode编辑器的使用 第四章 HTML 4-1 HTML初识 List item 01-基础班学习路线 List item 02-HTML简…

【Linux_】环境变量

【Linux_】环境变量 心有所向,日复一日,必有精进专栏:《Linux_》作者:沂沐沐目录 【Linux_】环境变量 什么是环境变量 常见变量 查看环境变量方法 环境变量相关的命令 通过系统调用获取或设置环境变量 环境变量通常是具有全…

代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

文章目录LeetCode 236. 二叉树的最近公共祖先题目讲解思路LeetCode 701.二叉搜索树中的插入操作题目讲解思路LeetCode 450.删除二叉搜索树中的节点题目讲解思路示图总结既然还是要生活,那么就学会主宰生活LeetCode 236. 二叉树的最近公共祖先 题目讲解 思路 求最小…

【数据结构与算法】详解二叉树以及模拟实现二叉树

文章目录前言:1.二叉树的定义2.二叉树的相关术语3.二叉树的性质4.特殊的二叉树5.二叉树的遍历前序遍历中序遍历后序遍历层序遍历6.获取树中节点的个数方法1:遍历思想方法2:子问题的思想7.获取叶子节点的个数方法1:遍历思想方法2:子问题的思想8.获取第K层节点的个数9.获取二叉树…

链表(LinkedList)

链表(LinkedList) 链表是有序的列表,但是其在内存的存储不一定连续 由这张图我们可以看出 链表是以节点的方式来存储的,是链式存储 每个节点包含data域,next域:指向下一个节点 我们可以发现链表的各个节点不一定是连续存储的 …

再见了HDMI Alt

点击上方“LiveVideoStack”关注我们▲扫描图中二维码或点击阅读原文▲了解音视频技术大会更多信息编者按:其实在未能推出配套线缆和适配器的那一刻,HDMI Alt模式就已经没有未来了。HDMI已全面落后DisplayPort。本文来自Arstechnica。文/Scharon Hardin…

【SpringCloud】Nacos的安装与启动

【SpringCloud】Nacos的安装与启动 一、下载安装包 二、解压 三、端口配置 四、启动 五、访问 【SpringCloud】Nacos的安装与启动 一、下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: GitHu…

分享149个PHP源码,总有一款适合您

PHP源码 分享149个PHP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 149个PHP源码下载链接:https://pan.baidu.com/s/1RKnEbbhpfUndnMrxG8rSIQ?pwd0nqp 提取码&#x…

LINUX学习之文本编辑器VIM/VI(八)

简介 VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器 VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计 VIM 与 VI 编辑器完全兼容 模式转换 如下图所示,一般模式下输入i、…

选出相似的文本按照相似度排序difflib.get_close_matches

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 选出相似的文本 按照相似度排序 difflib.get_close_matches 选择题 对于以下python代码表述错误的是? from difflib import get_close_matches myText"python" myList[&…

23种设计模式(十六)——备忘录模式【状态变化】

备忘录模式 文章目录 备忘录模式意图什么时候使用备忘录真实世界类比备忘录模式的实现备忘录模式的优缺点亦称:调解人、控制器、Intermediary、Controller、Mediator 意图 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将这个对…

穿越万年的轮回[期望dp]

首先我们设置dpi,0/1,0/1dp_{i,0/1,0/1}dpi,0/1,0/1​表示经过iii次操作之后开头为red/edrred/edrred/edr,结尾为red/edrred/edrred/edr的串的期望redredred字符串个数。 然后我们考虑转移: 首先我们要来思考一下期望的本质,这样一个状态&…

「Python|VS Code」如何在VS Code中使用Jupyter Notebook运行Python代码

本文主要介绍如何在VS Code安装Jupyter Notebook的扩展并创建notebook文件,并在notebook中运行python代码。同时,介绍使用Jupyter notebook运行python代码的好处。 文章目录安装Jupyter notebook扩展并运行代码Jupyter notebook的好处安装Jupyter notebo…

第十章 STM32F103+ESP8266接入机智云 实现小型IOT智能家居项目

前言 最近有不少小伙伴私信留言,想要我推出一章能够通过APP进行远程控制并获取传感器信息的实验教程。说实话在嵌入式毕设里边,这算是中等偏上水平的了。刚好我也有兴趣写写。全篇4700多字,我写的很详细,按着文章一步一步操作即可…