首先,为什么要用Isaac Sim进行仿真?俗话说一图胜千言,那视频得胜万言了,我们直接上NVIDIA官方视频:

https://images.nvidia.cn/cn/youtube-replicates/VW-dOMBFj7o.mp4

最直接的感受就是照片级的仿真画面,以及与AI算法的集成,硬件加速、基于开源的USD格式……

行了,视频已经胜万言了,话不多说。让我们一起来一步一步做出类似视频里的效果吧。

首先简单说一下开发环境。Isaac Sim是基于NVIDIA Omniverse 平台的一个工具,因此需要首先安装Omniverse,Isaac Sim及Omniverse对硬件有一定要求,特别是显卡,具体可以参考官网:

1. Isaac Sim Requirements — Omniverse Robotics documentation

此次教程中的开发环境:

硬件:

  • CPU:Intel Core i7

  • GPU:RTX 3080

  • RAM:32GB

  • Storage:SSD

软件

  • Ubuntu 20.04

  • NVIDIA Omniverse 1.6.10

  • Isaac Sim 2022.1.1

  • Blender 3.4.0

步骤:

官网下载Omniverse Launcher并安装:

2. Basic Isaac Sim Installation — Omniverse Robotics documentation

安装好之后,启动Omniverse Launcher。

为便于大家快速找到重点,教程中的图片用蓝色线、框对关键信息进行了标记。

在EXCHANGE栏可以找到Isaac sim。可以找到版本信息以及安装或启动按钮,安装之后在LIBRARY栏也可以快速找到并启动Isaac sim:

启动之后,会有各种模式的选项,我们现在选择默认选项即可:

这就是启动之后的界面啦:

今天的教程我们使用的素材是经典的开源模型:NEOR mini,通过下面的GitHub就可以下载,只需下载车身和一个车轮即可:

neor_mini/mini_sim18_ws/src/neor_mini/meshes at Melodic · COONEO/neor_mini · GitHub

因为Isaac sim目前并不支持直接导入STL格式的文件,因此我们需要先进行格式转换,这里就要用到另一款强大的开源软件Blender:

启动Blender,删掉默认的立方:

首先我们看看Blender支持导入的格式,这里可以看到其支持USD格式导入:

并且也支持导出USD格式,所以我们也可以直接导出USD格式,大家可以试试。今天我们介绍导出为另一种格式。

首先导入车身STL文件:

然后导出为.obj格式。

同样的,导入并导出车轮的相应文件。

回到Isaac sim,我们首先建立一个Ground plane, 其拥有碰撞属性。

接下来导入已转换好格式的车身文件:

这里我们可以看到Isaac sim目前支持导入的格式:

导入NEOR mini车身:

接着导入车轮:

车轮导入后需要将其移动到合适的位置,下边框选的参数可以作为参考,第一个车轮调试好之后,其它的车轮就比较简单了,首先选中第一个车轮,复制一个:

然后移动到合适的位置,只需调整X轴的参数即可:

接着再次选中第一个车轮,再复制一个:

然后移动到合适的位置,这里主要的区别是车轮进行了翻转:

复制刚刚调整好的车轮:

向前移动, 与前边的车轮对齐就可以了:

在调整的时候需要注意这里有两种坐标模式:全局和局部。黄颜色小点时为局部坐标系,在这一坐标系下调整位置会比较方便。

到这里,小车的几何形状就呈现出来啦。

接下来我们给其赋予物理属性。如下图,选中车身和全部车轮,右键,依次选择Add > Physics > Rigid Body with Colliders Preset。

然后我们把小车移动到地面之上,顺便看看整体效果:

NVIDIA Isaac Sim进行机器人仿真

接着我们选择左边栏的播放键,看看会有什么现象:

NVIDIA Isaac Sim机器人仿真

可以看到小车已经具有重力和碰撞的物理属性。那怎么让小车跑起来呢?我们先来把个部件的名称规范一下,双击各部件名字就可以修改名称。

然后我们依次选中车身和左后轮,右键,如下图所示依次选择Create > Physics > Joints > Revolute Joint。

软件会配置一些参数,但需要进行确认和调整旋转方向:

同样的方式将车身与另外三个车轮进行Revolute Joint的添加:

参考相应参数:

上面只是添加了物理上的关联,接下来我们还需要添加驱动才能让小车动起来,选中四个Revolute Joint,右键,依次选择Add > Physics > Angular Drive。

接下来我们需要对两侧的两组车轮分别进行速度和阻尼的设置:

至此,小车就可以跑起来啦

NVIDIA Isaac Sim机器人仿真 添加驱动

既然Isaac sim的特点之一就是照片级的仿真以及实时渲染,那我们就来对小车的外观进行一下美化,我们直接上材质。在视窗下方的选项中可以找到材质栏,里边已经有NVIDIA内置的一些材质,我们可以在左边的列表中选择金属,选择一个拖动到车身上就可以看到效果啦:

在左边列表选择塑料材质, 选择其中一个拖动到车轮上:

这就是整体效果啦

来试试其它材质,并且加入场景:

NVIDIA Isaac Sim机器人仿真 效果①

这个效果比较接近NEOR mini的真车效果:

NVIDIA Isaac Sim机器人仿真 效果②

让NEOR mini在里面逛逛吧:

NVIDIA Isaac Sim机器人仿真 运行效果①

NVIDIA Isaac Sim机器人仿真 运行效果②

本期的分享就到这里啦,模型的创建/导入有多种方式,今天主要对其中一种方式进行了分享,不足之处,敬请提出意见和建议。欢迎大家一起交流机器人研发的经验与心得。

创作不易,如果喜欢这篇内容,请您也转发给您的朋友,一起分享和交流创造的乐趣,也激励我们为大家创作更多的机器人研发攻略,让我们一起learning by doing!

手把手教你使用NVIDIA Isaac Sim进行机器人仿真①相关推荐

  1. Nvidia Isaac Sim ROS机器人仿真和AMR开发环境

    效果非常赞. ☞ 2020年最好的机器人学仿真工具软件汇总_zhangrelay的博客-CSDN博客_机器人仿真软件 由 Omniverse 提供支持的 NVIDIA Isaac Sim 是一种可扩展 ...

  2. 手把手教你备份 nvidia jetson agx xavier 系统(亲测有效、超详细)

    手把手教你备份 nvidia jetson agx xavier 系统(亲测有效.超详细) 此版本适合小白,网上虽然很多教程,但是对于超级小白来说还是有点粗略了,教程奉上! 文章目录 手把手教你备份 ...

  3. 石头机器人拖地水量调节_宅小秘课堂:手把手教你如何用好石头扫地机器人T6...

    [CNMO评测]从上架众筹到如今,石头扫地机器人T6已经亮相有一段时间,宅小秘作为提前拿到产品的科技编辑(嘚瑟的插会腰),在这期间里,将石头扫地机器人T6作为家中清扫的主力机.随着众筹结束以及各大平台 ...

  4. 手把手教你安装nvidia显卡驱动

    首先先查一下自己的显卡型号: 看到我的显卡是GeForce GTX 1050 在官方下载网站:https://www.nvidia.cn/Download/index.aspx?lang=cn 找到对 ...

  5. 【超详细】【ubunbu 22.04】 手把手教你安装nvidia驱动,有手就行,隔壁家的老太太都能安装

    目录 前言 一.英伟达官网下载驱动 二.更新软件列表和安装必要软件.依赖 三.禁用默认驱动 四.进入tty模式 1.关闭图形界面进入tty模式 2.进入tty以后需要输入用户名和密码登录. 3.禁用X ...

  6. 手把手教你制作一个简单的聊天机器人(图灵api)

    前言:在无聊的时候打打游戏.听听歌还不如来找个人来陪你聊天,今天来教大家制作一个聊天机器人,这样就不会无聊了,在线聊天机器人地址借愁哥哥机器人(可能有点丑,大家将就一下 (

  7. “夸夸群”5分钟20块?!手把手教你定制一款专属夸夸机器人

    大数据文摘出品,转载请联系大数据文摘公众号 作者:李雷.蒋宝尚 最近你有没有被各种"夸夸群"刷屏? 彻底将"夸夸群"引爆的,是一个女生在微博上讲述的男友赠送三八 ...

  8. 手把手教你配置 免费 开源的qq机器人框架--mirai

    Mirai是一个免费开源高效率 支持全平台的qq机器人框架 应广大网友的需求,今天就来给大家安排教程啦 麻烦来点评论点赞 ~嘿嘿嘿 自己不想折腾的也可以使用我的"你的专属机器人 小染同学&q ...

  9. 怎么用Matlab搭建PID控制器,手把手教你设计PID控制器 | 内附MatLab仿真

    EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 本帖最后由 HelloEE 于 2019-11-25 17:15 编辑 8 E9 J7 _8 ?! v7 M9 f0 C5 ...

最新文章

  1. 一个小灯泡引发大论战:千万粉丝科普up主翻车,伊朗“唐马儒”、李永乐等下场,30万公里导线引百万网友围观...
  2. Eclipse中使用git前账号密码等的配置问题
  3. 使用jQuery for Asp.Net 我的开发环境配置
  4. 为什么选择Java?Java具体好在哪?
  5. Docker镜像由于代理问题导致不能下载的解决办法
  6. vb6 由于超出容量限制 不能创建新事务_分布式限流?你也能轻松玩转(没啥新技术)...
  7. page.ClientScript.RegisterStartupScript
  8. c++ 高效解析url算法
  9. Hdu - 1002 - A + B Problem II
  10. freemarker ftl文件简单语法整理
  11. win7 插入鼠标自动禁用触摸板
  12. 子群的陪集-》群的拉格朗日定理
  13. eclipse设置背景图片(并非更换主题)
  14. Vue安装必要插件element-ui插件及axios依赖(详细)
  15. 只需四天,从零开始选购笔记本电脑【转】【荐】
  16. python绘制爱心气球_婚房布置气球爱心教程-婚房气球布置心形方法简单【蜜匠婚礼】...
  17. CF1282 B 背包
  18. Pytorch机器学习(六)——YOLOV5中的自适应图片缩放letterbox
  19. python求平均值,python 怎么求平均值
  20. 华为运营商级路由器配置示例 | 配置OptionB方式跨域BGP VPLS示例(ASBR兼做PE)

热门文章

  1. HTML中怎么使文字各种居中对齐?(代码示例)
  2. 摩根斯坦利面试题库_面试哭了居然还拿到摩根士丹利Offer!
  3. forEach用法与map用法区别
  4. 面试的这些禁忌,你踩中了么?
  5. iptables 做NAT代理上网
  6. 达索系统赋能汽车零部件行业创新研发
  7. Web软件快速开发平台WebBuilder V8.7.1发布
  8. Android开发真等于废人?再不刷题就晚了!
  9. 普思立:激光锡焊在医疗行业的应用
  10. 二值化函数cvThreshold()参数CV_THRESH_OTSU的疑惑【转】