Isaac Lab(isaac sim)中使用python ros

ROS(Robot Operating System)为机器人技术提供了标准化的开发框架和中间件,通过定义接口和约定,简化了硬件与软件的集成,提高了开发效率。它拥有强大的工具集和生态系统,支持从算法开发到系统集成的全过程,促进了技术创新与合作。

Isaac Lab是机器人训练平台,那么做数据驱动的机器人工作时,就很有必要与ROS打通,尤其在Sim2Real领域,很多Real的机器人环境都是基于ROS的。总之,ROS在机器人技术的全链条中,包括Sim2Real过程,都扮演着至关重要的角色。

经过实践我发现,在isaac lab里使用python ros似乎不是一个好的事情,官方目前还没有例程,找到一个相关issue,官方回答使用python ros似乎非常的慢,他们打算使用c++方法,实践也似乎证明了这一点,好在配置不复杂,加两个环境变量即可;

首先在isaac lab代码里添加启用ros2_bridge插件:

import omni
ext_manager = omni.kit.app.get_app().get_extension_manager()
ext_manager.set_extension_enabled_immediate("omni.isaac.ros2_bridge", True)

然后运行isaac lab 程序,会看到没有配置环境变量错误,主要为 RMW_IMPLEMENTATION PTAH这两个

[110.973s] Isaac Sim Python App is loaded.
[112.605s] Simulation App Startup Complete
[112.640s] [ext: omni.isaac.ros2_bridge-2.26.4] startup
2024-07-15 06:26:01 [112,595ms] [Warning] [omni.isaac.ros2_bridge.scripts.extension] ROS_DISTRO env var not found, Please source ROS2 Foxy, or Humble, before enabling this extension
[112.645s] Using backup internal ROS2 humble distro

[116.239s] To use the internal libraries included with the extension please set:
RMW_IMPLEMENTATION=rmw_fastrtps_cpp
PATH=%PATH%;d:/omniverse/pkg/isaac_lab/isaaclab/_isaac_sim/exts/omni.isaac.ros2_bridge/humble/lib
Before starting Isaac Sim

2024-07-15 06:26:05 [116,189ms] [Error] [omni.isaac.ros2_bridge.scripts.extension] ROS2 Bridge startup failed
import rclpy failed

根据错误,设置环境变量即可 

该方法应该在isaac sim相关的python程序中也适用;

 打开WLS2 ubuntu,即可看到发布出来的 ros2 topic

isaac sim 与 WLS2 ros2实现通信可以看这篇文章: 

isaac sim 与 WLS2 ros2实现通信_isaac sim ros2-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Vulcan_S/article/details/140289796

### NVIDIA Isaac SimIsaac LabIsaac Gym 的功能区别与应用场景 #### 1. **Isaac Sim** Isaac Sim 是一款由 NVIDIA 提供的强大仿真平台,主要用于开发和测试机器人技术。其核心特点如下: - 初次运行时会经历一段预热期以建立着色器缓存[^1]。 - 资源管理方面,资产文件存储于 `/NVIDIA/Assets/Isaac/2023.1.1` 文件夹中,并可通过 `Isaac Utils > Nucleus Check` 进行位置确认。 - 支持高保真度渲染以及 ROS 集成等功能[^2],使其成为更全面的机器人学习环境。 对于希望创建复杂场景并利用先进图形处理能力的研究者来说,这是一个理想的选择。 #### 2. **Isaac Gym** 虽然同样隶属于 NVIDIA 的产品线,但 Isaac Gym 更专注于展示底层物理引擎的能力而非提供完整的解决方案集。具体特性包括: - 主要目标在于演示基础物理学模拟效果而不是构建全方位适用型仿真实验室。 - 不支持诸如柔性材料间相互作用之类的高级特性。 因此适合那些仅仅关注特定领域性能表现评估或者早期概念验证阶段工作的团队采用。 #### 3. **Isaac Lab** 作为连接虚拟世界与现实世界的桥梁之一,Isaac Lab 尤其强调实际操作训练价值所在之处。例如,在 TacEx 模块化触觉模拟框架项目里提到过如何借助此工具完成像物品推动这样的精细动作练习任务[^3]: - 可以为用户提供沉浸式的互动体验机会以便更好地掌握某些技能技巧; - 同时也能够促进新算法模型的研发进程——比如通过强化学习方法改进机械臂抓取成功率等等案例均有所体现。 综上所述,三款软件各有侧重方向不同从而满足多样化需求群体的要求。 ```python # 示例代码:启动带有重置选项的 Isaac Sim import subprocess def launch_isaac_sim(reset=False): command = ["isaac-sim"] if reset: command.append("--reset-user") process = subprocess.Popen(command) return process.pid pid = launch_isaac_sim(True) print(f"Launched ISAAC SIM with PID {pid}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值