在机器人研发领域,仿真技术正在逐渐成为不可或缺的一环。而Isaac Sim,作为 NVIDIA 推出的功能强大的仿真平台,因其高效、灵活和逼真的特性,备受开发者青睐。在这个系列推文中,我们将带你逐步了解 Isaac Sim 的核心功能、使用技巧和应用场景,帮助你快速上手并探索其无限可能。本期作为第二期,将为大家揭开 Isaac Sim 的序幕,一起进入这片虚拟仿真的世界吧!原文链接:https://www.yuque.com/g/ryanjiwtpey/aumvf4/yyhruy8kts47s34v/collaborator/join?token=szoLcoWDy2LLWj5t&source=doc_collaborator#1 制作一个简易小车入门1.1 添加和抓取形状1.2 给物体添加物理属性
图片
刚体,碰撞体,预设属性如果添加了,那么开始仿真之后,它就会像真实世界中的物体。图片
就倒地了如果 enable取消勾选,物体就不会倒地图片
1.3 测试碰撞属性同上1.4 编辑物理属性比如摩擦力图片
图片
1.5 编辑物理属性比如颜色和反射率首先选择你要改变的物体,再点击颜色设置图片
再选中车体,选择 material图片
1.6 建立图元prim图片
图片
1.7 添加关节· 选中 body和left wheel,然后create一个revolute joint· 此时会出现一个绿色的圆圈,调整它的 axis,使得圆圈的朝向和轮子旋转的方向一致即可· 点击开始仿真按钮,按住 shift按键,单击车子任意部位,即可拖动它运动图片
1.8 添加驱动· 同时选中两个关节,添加角度驱动器图片
· 位置控制:对于位置控制关节,设置高刚度和相对低或零阻尼。· 速度控制:对于速度控制器关节,设置高阻尼和零刚度。对于车轮上的关节,速度控制更有意义,因此将两个车轮的阻尼设置为1e4*,并将目标速度设置为200。如果您使用的关节范围有限,则可以在“属性”选项卡的“原始USD属性”>“下限(上限)”下进行设置。按下“播放”即可看到模拟移动机器人启动。1.9 添加关节根articulation图片
1.10 添加相机和传感器图片
1.11 添加激光雷达https://docs.omniverse.nvidia.com/isaacsim/latest/advanced_tutorials/tutorial_advanced_range_sensor_lidar.html#isaac-sim-app-tutorial-advanced-range-sensor-lidar细节在第 13.1中的激光雷达导入1.12 更复杂的机器人https://docs.omniverse.nvidia.com/isaacsim/latest/advanced_tutorials/tutorial_advanced_rigging_robot.html#isaac-sim-app-tutorial-advanced-rigging-robot图片
1.13 调用外部python编译器通过调用外部的编辑器来操作 isaac sim或者通过 WINDOW EXTENSIONS图片
· 打开一个新的 terminal,输入telnet localhost 8223· 输入代码,回车仅在空的 Stage运行以下脚本,并且只运行一次。Isaac Sim Core API原始 USD API功能多样且详细,但很复杂,尤其是对于初学者来说。Isaac Sim有一组核心API,可简化机器人模拟器的一些常用操作。这些API抽象了默认参数设置。以下API:设置舞台添加具有物理和碰撞预设的长方体设置物理和视觉材料属性Plain Textimport numpy as npfrom omni.isaac.core.objects import DynamicCuboidfrom omni.isaac.core.objects.ground_plane import GroundPlanefrom omni.isaac.core.physics_context import PhysicsContextPhysicsContext()GroundPlane(prim_path='/World/groundPlane', size=10, color=np.array([0.5, 0.5, 0.5]))DynamicCuboid(prim_path='/World/cube',position=np.array([-.5, -.2, 1.0]),scale=np.array([.5, .5, .5]),color=np.array([.2,.3,0.]))2 编辑器使用2.1 调用vscode2.1.1 Isaac Sim VS Code Edition先要在 vscode中安装插件在 4.0.0中快速打开vscode的方法是在扩展管理中使能扩展插件,如下图片
在更早的版本,则打开 Isaac Sim App Selector图片
详情见链接https://docs.omniverse.nvidia.com/isaacsim/latest/reference_material/reference_user_interface.html#isaac-sim-app-selector点击图片
创建一个空的 python脚本,输入代码,点击左侧的运行按钮,得到一个球体图片
图片
更多细节可以参考https://marketplace.visualstudio.com/items?itemName=NVIDIA.isaacsim-vscode-edition2.2 在vscode中debug用python文件· 打开 Isaac Sim App Selector详情见链接https://docs.omniverse.nvidia.com/isaacsim/latest/reference_material/reference_user_interface.html#isaac-sim-app-selector图片
· vscode中要先安装isaac插件Isaac Sim VS Code Editioncode .打开之后,我们测试一个demo,文件目录如下,加一个断点。图片
· 点击左侧的 run and debug按钮,点击debug即可。或者按F5也可以图片
· 传参数更改一下 launch.json和python文件Shell{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387'version': '0.2.0','configurations': [{'name': 'Python: Current File','type': 'python','request': 'launch','program': '${file}','console': 'integratedTerminal','env': {'EXP_PATH': '${workspaceFolder}/apps','RESOURCE_NAME': 'IsaacSim'},'python': '${workspaceFolder}/kit/python/bin/python3','envFile': '${workspaceFolder}/.vscode/.standalone_examples.env','preLaunchTask': 'setup_python_env','args': ['--/persistent/isaac/asset_root/default=\'omniverse://my_server\'']},{'name': 'Python: Current File','type': 'python','request': 'launch','program': '${file}','console': 'integratedTerminal','env': {'RESOURCE_NAME': 'IsaacSim'},'python': '${workspaceFolder}/kit/python/bin/python3','envFile': '${workspaceFolder}/.vscode/.standalone_examples.env','preLaunchTask': 'setup_python_env'},{'name': 'Python: Attach (windows-x86_64/linux-x86_64)','type': 'python','request': 'attach','port': 3000,'host': 'localhost'},{'name': '(Linux) isaac-sim','type': 'cppdbg','request': 'launch','program': '${workspaceFolder}/kit/kit','args': ['${workspaceFolder}/apps/omni.isaac.sim.kit','--ext-folder', '${workspaceFolder}/exts','--ext-folder', '${workspaceFolder}/apps'],'stopAtEntry': false,'cwd': '${workspaceFolder}','environment': [],'externalConsole': false,'MIMode': 'gdb','setupCommands': [{'description': 'Enable pretty-printing for gdb','text': '-enable-pretty-printing','ignoreFailures': true}]}]}图片
2.3 debug在isaac sim中跑的应用和vscode交互· 运行 isaac sim· 在 isaac sim顶部工具栏的窗口,扩展中搜索omni.kit.debug.vscode,使能它,然后可以看到一行红字“VS Code Debugger Unattached”图片
· 运行你刚刚的 vscode,点击debug的按钮旁边的下拉菜单图片
这时候红色字变蓝色了· 上一步能成功,原因在于 vscode和isaac sim之间配置了相同的ip和端口图片
想要更改参数,在 app selector中添加即可Shell--/exts/omni.kit.debug.python/host='127.0.0.1'--/exts/omni.kit.debug.python/port=3000Shell{'name': 'Python: Attach (windows-x86_64/linux-x86_64)','type': 'python','request': 'attach','port': 3000,'host': '127.0.0.1'},·点击 isaac sim中的Break,那么断点就会在vscode中出现3 核心API3.1 hello world工具栏选择 hello world,点击containning folder,你就可以看到这个例子包含的代码文件图片
图片
在 Isaac Sim中,world 是一个单例对象,它管理仿真环境的整体状态。以下是一个小练习:1.打开hello_world.py 文件。2.修改代码,通过重新创建一个新的 Stage(场景)。3.在脚本中添加一段逻辑,使用户可以点击按钮来加载 'Hello World'场景。4.同时,添加打印信息,以便在 Terminal中查看相关提示或状态信息。通过以上步骤,你将更直观地理解 Isaac Sim的交互流程以及world 对象的功能!https://docs.omniverse.nvidia.com/isaacsim/latest/core_api_tutorials/tutorial_core_hello_world.html4 总结Isaac Sim 的强大不仅体现在其逼真的仿真效果,还在于它为开发者提供了灵活的工具链和广泛的扩展可能。本期只是我们探索之旅的开始。在接下来的推文中,我们将深入剖析更多功能模块与实际应用案例,助你玩转 Isaac Sim。欢迎关注我们,期待与你一起在仿真世界中探索未来!附加资料1.文档https://docs.omniverse.nvidia.com/https://developer.nvidia.com/isaac/simomniverse 开发者文档https://docs.omniverse.nvidia.com/dev-guide/latest/index.htmlisaac sim 开发者文档https://docs.omniverse.nvidia.com/isaacsim/latest/index.htmlisaac lab 开发者文档https://isaac-sim.github.io/IsaacLab/isaac sim 写代码 API 参考文档https://docs.omniverse.nvidia.com/py/isaacsim/index.htmlisaac extension 文档https://docs.omniverse.nvidia.com/py/isaacsim/index.htmlros ros2 文档https://docs.omniverse.nvidia.com/isaacsim/latest/ros_ros2_tutorials.htmlhttps://player.bilibili.com/player.html?bvid=BV1a44y1N79U&autoplay=0AI 仓库:使用 Isaac Sim 和 Isaac ROS 实现视觉导航Autonomous machines are forecasted to dramatically increase the efficiency of warehouses, factories, and other industrial environments. NVIDIA Isaac ROS GEMs enable novel applications by empowering robots to intelligently perceive complex 3D environments. In this video, we showcase a camera-based navigation pipeline in which a robot uses NVIDIA’s GPU-accelerated visual SLAM algorithm (https://github.com/NVIDIA-ISAAC-ROS/i...) to find its location in the world. GPU-accelerated, real-time 3D scene reconstruction (https://github.com/NVIDIA-ISAAC-ROS/i...) is used to map its environment and plan collision-free trajectories. Finally, we demonstrate how Replicator, which is part of NVIDIA Isaac Sim (https://developer.nvidia.com/isaac-sim), can be used to procedurally generate industrial spaces in which to develop and validate robotics systems. Empower your robot with GPU-accelerated robotics algorithms today!2.视频教程https://player.bilibili.com/player.html?bvid=BV1B24y1s7Hc&autoplay=0讲义在百度网盘资料链接: https://pan.baidu.com/s/1RGOQ4UOwcEGEhWMZRyfDXA?pwd=kvq7 提取码: kvq73. github 教程https://github.com/isaac-sim/IsaacSim-ros_workspaceshttps://github.com/NVIDIA-AI-IOT/Nav2-with-Isaac-ROS-GEMshttps://developer.nvidia.com/blog/accelerate-ai-enabled-robotics-with-advanced-simulation-and-perception-tools-in-nvidia-isaac-platform/图片
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。