Isaac Sim教程05 机器人简单组装及传感器

Isaac Sim 机器人简单组装及传感器了解

版权信息

Copyright 2023 Herman Ye@Auromix. All rights reserved.

This course and all of its associated content, including but not limited to text, 
images, videos, and any other materials, are protected by copyright law. 
The author holds all rights to this course and its contents.

Any unauthorized use, reproduction, distribution, or modification of this course 
or its contents is strictly prohibited and may result in legal action. 
This includes, but is not limited to:
Copying or distributing course materials without express written permission.
Reposting, sharing, or distributing course content on any platform without proper attribution and permission.
Creating derivative works based on this course without permission.
Permissions and Inquiries

If you wish to use or reproduce any part of this course for purposes other than personal learning, 
please contact the author to request permission.

The course content is provided for educational purposes, and the author makes no warranties or representations 
regarding the accuracy, completeness, or suitability of the course content for any specific purpose. 
The author shall not be held liable for any damages, losses, 
or other consequences resulting from the use or misuse of this course.

Please be aware that this course may contain materials or images obtained from third-party sources. 
The author and course creator diligently endeavor to ensure that these materials 
are used in full compliance with copyright and fair use regulations. 
If you have concerns about any specific content in this regard, 
please contact the author for clarification or resolution.

By enrolling in this course, you agree to abide by the terms and conditions outlined in this copyright notice.

学习目标

  • 熟悉Isaac Sim中机器人的关节及关节驱动配置
  • 了解Isaac Sim中关节树的概念
  • 熟悉Isaac Sim中的传感器配置
  • 熟悉Isaac Sim的视口调整

难度级别

初级中级高级

预计耗时

25 mins

学习前提

对象类型状态
Ubuntu22.04操作系统软件已确认
Isaac Sim软件已配置
Isaac Sim基本概念知识已了解
Isaac Sim基本使用知识已了解
Isaac Sim高级使用知识已了解

在这里插入图片描述
图中的机器人可以视作由三个杆件(links)和两个转动关节(revolute joints)组成的。

创建关节joint

Stage中,按下Ctrl,先选中父杆件Parent Link(此处为robot_body)再选中子杆件Child Link(此处为wheel_right),随后选中Create->Physics->Joint->Revolute Joint,创建一个Joint,并重命名为wheel_right_joint
在这里插入图片描述

检查wheel_right_joint这个prim属性中的父子关系和转动轴系是否正确,如果不正确就需要进一步调整。
在这里插入图片描述

点击左侧工具栏中的Play检查,会发现右轮已经和身体绑定,而尚未设置joint的左轮正常掉落了。
在这里插入图片描述
随后以相同的方式设置身体到左轮的joint,重新点击左侧工具栏中的Play检查,并拖动机器人身体Prim,检查轮子的转动情况是否正常。
在这里插入图片描述

创建关节驱动joint drive

添加了joint只能代表不同杆件间有了机械连接,但是还不能够控制和驱动,因此需要进一步添加关节驱动的API。
按下Ctrl选中Stage里的两个joint并依次点击Add->Physics->Angular Drive
在这里插入图片描述
为两个关节设置一定的目标速度(Target Velocity)和阻尼(Damping),此处分别为20010000,随后按下Play查看效果,应该发现小车开始以指定的速度运动
在这里插入图片描述

创建关节树Articulation(可选的)

Articulation(关节树)是一种高级概念,它通过将多个刚体及其之间的关节连接成一个层次结构,构建了一个关节树。这个树结构包含一个关节根(articulation root),它负责连接整个树的各个部分,从而形成一个统一的系统。

关节树的优势在于能够更有效地模拟多体系统的相互作用、运动和碰撞,从而降低计算的复杂性。通过使用关节树,我们能够实现更高的仿真准确性,减少关节误差,处理具有不同质量比的刚体,同时提高仿真效率。

将物体组织成关节树可以实现更高的模拟保真度,减少关节误差,并能够处理关节体之间更大的质量差异。这些设计具有零关节误差,同时能够处理关节体之间更大的质量比。

举例来说,考虑一个机械手臂的树结构:根部位于地平面的底部,旋转关节将不同的连杆连接到机械手,整个树结构只有一个分支,通过棱柱关节将两个夹具部分连接到手臂,实现了线性接头。

对于布娃娃,我们可以将任何肢体作为根,从而构建的结构仍然是一棵树。例如,我们可以选择头部作为根,然后使用球形关节将躯干连接到头部,接着使用球形关节连接手臂,以此类推。这种方法使我们能够轻松创建不同的布娃娃结构。

在这里插入图片描述
能够提高效率的具体原因和解释可以参考articulations,此处不进一步解释。

在这个小车的案例中,robot_body作为Articulation Root,选中Primrobot_body并依次点击Add->Physics->Articulation Root来将关节链转化为关节树

在这里插入图片描述

添加传感器

Omniverse Isaac Sim 提供了多种传感器,可用于感知环境和机器人的状态。此处以最为常见的Camera为例。

确定传感器轴系

在添加以相机为例的传感器前需要先确定轴系,参考Isaac、USD、ROS的传感器轴系说明

添加相机

依次点击Create->Camera来添加相机,并重命名为robot_camera,将他拖动到robot_body下和机器人的身体绑定,并通过调整相机的位置和姿态来感受合适的位置。
在这里插入图片描述

调整相机的视野方向,使得它位于机器人的前部头顶,略微朝下观察前方,此时Play,相机会随着机器人一起动。
在这里插入图片描述

在这里插入图片描述

相机检查器

将相机添加到场景中后,可以通过相机检查器扩展来管理我们的相机。
依次点击Isaac Utils->Camera Inspector,随后点击REFRESH来刷新相机列表。
在这里插入图片描述

  • 相机文本框
    有时在代码中需要提供一个合适的视角来查看场景,通常可以用GUI里调整相机角度来尝试,文本则是相机位置和方向的文字描述,可以通过复制来移植到代码中,方便代码开发。
    在这里插入图片描述
  • 新建视口Viewport
    当前Isaac Sim所看到的直接的窗口就是一个Viewport,可以通过相机检查器来创建一个视口,比如此时希望有世界顶部的一个相机,就可以选择Camera->OmniverseKit_Top,并点击CREATE VIEWPORT来新增视口。

在这里插入图片描述

在这里插入图片描述

固定相机关系

有时候不小心移动了相机的视野,这个时候的相机Transform就会变化,调回去比较麻烦,如果在相机和父关节间加上一个固定的Transform关系,则每次不小心弄乱了相机的视野时,都可以通过将相机自身Transform全部置0来恢复原有状态。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM arthas下载工具

工具下载地址 链接:https://pan.baidu.com/s/1qkn9HabhuwTiwbKVQ7BXnA?pwdv5ww 提取码:v5ww 启动语句 java -jar arthas-boot.jar输入你的线程,这里是2 dashboardJVM优化 堆的初始大小 最大大小 年轻代的大小 线程栈大小 新生代、伊甸…

ROS2教程08 ROS2的功能包、依赖管理、工作空间配置与编译

ROS2的功能包、依赖管理、工作空间配置与编译 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyrigh…

市域社会治理(智慧网格)解决方案:PPT全文47页,附下载

关键词:市域社会治理解决方案,智慧网格解决方案,市域社会治理重点内容,市域社会治理调研报告,智慧网格综合管理平台 一、市域社会治理建设背景 市域社会治理是在信息化背景下,为了适应城市化、现代化、社…

当发送“Hello,World”时,channel发生了什么?

一、Netty概述 1.Netty是什么? Netty 是一个异步的、基于事件驱动的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端。 2.Netty的地位怎么样? Netty 在 Java 网络应用框架中的地位就好比:Spring 框架在 JavaEE …

个人作品集

个人作品集 封面设计 排版设计 3D建模 Pr剪辑 个人剪辑作品 场景搭建

国产AI边缘计算盒子,双核心A55丨2.5Tops算力

边缘计算盒子 双核心A55丨2.5Tops算力 ● 2.5TopsINT8算力,支持INT8/INT4/FP16多精度混合量化。 ● 4路以上1080p30fps视频编解码,IVE模块独立提供图像基础算子加速。 ● 支持Caffe、ONNX/PyTorch深度学习框架,提供resnet50、yolov5等AI算…

Java异常详解大全(2023版)

Java异常详解 异常分类1.Throwable2. Error(错误)3. Exception(异常)3.1 运行时异常 RuntimeException3.2 编译时异常(受检查异常)ClassNotFoundException + IOException4.常见的运行时异常5.异常如何处理Java 的异常处理是通过 5 个关键词来实现的:try、catch、throw、…

【从零开始学习JVM | 第二篇】字节码文件的组成

前言: 字节码作为JAVA跨平台的主要原因,熟练的掌握JAVA字节码文件的组成可以帮助我们解决项目的各种问题,并且在面试中,关于字节码部分的内容却是一大考点和难点,因此我们在这里穿插讲解一下字节码文件的组成。 目录 …

[跑代码-遇到问题-报错3]BK-SDM. KeyError: ‘up_blocks.0‘

File "src/kd_train_text_to_image.py", line 790, in mainKeyError: up_blocks.0 出问题的原因 dict acts_tea读到dict acts_stu没有读到dict 原因是 unet_teacher的结构后面直接接down_blocks(正常)unet_teacher.down_blocks 但是unet的结构…

java:springboot3集成swagger(springdoc-openapi-starter-webmvc-ui)

背景 网上集成 swagger 很多都是 Springfox 那个版本的,但是那个版本已经不更新了,springboot3 集成会报错 Typejavax.servlet.http.HttpServletRequest not present,我尝试了很多才知道现在用 Springdoc 了,今天我们来入门一下 …

对标Gen-2!Meta发布新模型进军文生视频赛道

随着扩散模型的飞速发展,诞生了Midjourney、DALLE 3、Stable Difusion等一大批出色的文生图模型。但在文生视频领域却进步缓慢,因为文生视频多数采用逐帧生成的方式,这类自回归方法运算效率低下、成本高。 即便使用先生成关键帧,再生成中间帧新方法。如…

aikit 2023 3D与机械臂结合!

引言 今天我们主要了解3D摄像头是如何跟机械臂应用相结合的。我们最近准备推出一款新的机械臂套装AI Kit 2023 3D,熟悉我们的老用户应该知道,我们之前的AI Kit 2023套装使用的是2D摄像头。 随着技术进步,市场需求和领域的扩大,2D的…

第一百九十回 自定义一个可选择的星期组件

文章目录 1. 概念介绍2. 实现方法2.1 实现思路2.2 实现方法3. 示例代码4. 内容总结我们在上一章回中介绍了"如何让Text组件中的文字自动换行"相关的内容,本章回中将介绍 如何自定义一个可选择的星期组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

在Word中移动页面主要靠导航窗格,有了它,移动页面就事半功倍

本文包括有关在Microsoft Word 2019、2016和Office 365中使用导航窗格移动页面以及复制和粘贴页面的说明。 如何设置导航窗格以重新排列页面 Microsoft Word并不将文档视为单独页面的集合,而是将其视为一个长页面。正因为如此,重新排列Word文档可能会很复杂。在Word中移动页…

C++ 操作MinIO做文件数据的上传和下载(踩坑与经验)包含编译包

前言 最近在做项目流程优化,准备将之前的java对文件的操作转换到c端,因此做了基于c的minio操作的测试demo。期间的各种踩坑与问题,花了一天时间总算是成功了,当然还有一些小问题,等待后续其他大拿解决。 项目环境 v…

linux 中crontab 定时任务计划创建时间文件夹示例

1.创建一个sh脚本 /usr/bin/mkdir 是mkdir命令的路径 /usr/bin/chmod 是chmod命令的路径 2.编辑定时任务 crontab -e

Hadoop学习笔记(HDP)-Part.11 安装Kerberos

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

最新测试开发招聘信息汇总,内含社招和实习生岗位~

1 科大讯飞 [武汉/合肥/西安] 科大讯飞(教育事业部) - 移动、服务端高级测试开发工程师 一、移动方向高级测试开发工程师 岗位职责: 1.负责教育 BG 中 APP/SDK/软硬一体等产品类型的专项测试工作,包括专项测试方案设计、自动化测…

csp 现值计算 C语言

号: 202212-1 试题名称: 现值计算 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 问题描述 评估一个长期项目的投资收益,资金的时间价值是一个必须要考虑到的因素。简单来说,假设…

背包问题学习

背包问题是常见的动态规划dp的问题 下面用到的符号: 常用n表示物品数, m表示背包容积f[i][j]表示i件物品, j的背包容量的最大价值w[i]表示第i件物品的价值, v[i] 表示第i件物品的容量f[0][0~m] 0, 所以n可以从1开始遍历一般是有两层嵌套循环 第一层遍历物品, 第二层遍历背包…