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

### 关于Isaac Lab中与机械臂相关的开发或应用 #### 使用Isaac Lab加速机械臂的仿真训练 NVIDIA推出的Isaac Lab是一个GPU加速、性能优化的应用程序,旨在支持机器人技术的学习和发展。通过利用该平台,开发者能够创建复杂的环境来测试和培训机械臂的行为模式[^1]。 对于机械臂的具体应用场景而言,Isaac Lab允许研究人员设置多个并行仿真的实例,从而极大地提高了实验效率。这些仿真实验可以用来验证控制算法的有效性或是探索新型的人工智能驱动策略。由于它建立在强大的Isaac Sim之上,因此也继承了许多高级特性,比如高精度物理模拟以及丰富的传感器建模能力,这对于实现逼真度极高的机械臂运动至关重要[^2]。 #### 集成ROS/ROS2接口简化编程流程 为了方便广大科研工作者和技术爱好者快速上手,Isaac Lab还提供了对Robot Operating System (ROS)ROS2的支持。这意味着用户可以直接调用现有的大量开源库函数完成诸如路径规划、抓取物体等复杂任务;同时也便于与其他硬件设备互联互通,进一步拓展了系统的适用范围。 ```python import rospy from sensor_msgs.msg import Image, PointCloud2 from geometry_msgs.msg import PoseStamped def callback(data): # 处理来自机械臂摄像头的数据流或其他感知信息 pass rospy.init_node('mechanical_arm_listener', anonymous=True) sub = rospy.Subscriber("/camera/image_raw", Image, callback) rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): rate.sleep() ``` 此段Python代码展示了如何订阅由安装在机械臂末端执行器处相机所发布的图像消息,并对其进行处理分析的一个简单例子。实际项目中可能还会涉及到更多类型的传感输入如力矩反馈、深度图等等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值