为机械臂构建一个基于PPO训练、ROS2工作流以及仿真到现实的具身AI研究的Isaac Lab RL抓取系统
如何在 Isaac Lab 中构建机器人臂 RL RL 抓取系统 | NEROERO 手臂
本项目提出了一种基于Nero机械臂SO-ARM101和NVIDIA Isaac Lab的具身AI操作强化学习工作流。该框架以仿真驱动为核心,用于训练和评估机器人操作策略,重点在于为系统实现从仿真到现实的迁移做好准备。
1. 项目设置与环境准备
1.11 安装 Isaac Lab
请按照官方指南安装 Isaac Lab:
• Isaac Lab Lab Lab 管道安装指南
我们使用基于 pip 的安装方法(推荐)。
环境:
•虚拟环境 Conda
•Python 开发环境
•NVIDIA Isaac Lab
•Nero机械臂项目依赖项
1.22 安装 uv uv 包管理器
该项目使用 uv 作为 Python Python 包管理器。
作为一款快速的下一代工具,uv 提供了:
•更快的软件包安装
•高效的依赖解析
•内置虚拟环境管理
与 pip 等传统工具相比,uvuv 可简化设置,并减少基于 Python 的机器人和具身人工智能工作流中的环境问题。
首先,使用单个命令安装 uv:
安装后,请重启终端或运行以下命令以激活 uv uv uv 环境:
1.33 克隆仓库并安装依赖项
接下来,克隆项目仓库,进入项目目录,然后使用 `uv``` 命令一次性安装所有所需依赖:
uv 会自动创建虚拟环境并安装所有必要的依赖包。整个过程通常只需几分钟,比传统的 pip pip 安装流程快得多。
2. 环境验证
为了验证任务设置,我们首先确认 Nero 机械臂和 Piper Piper 所需的仿真环境已正确注册:
预期输出应包含 Isaac-Nero-Reach-v0 和 Isaac-Piper-Reach-v0,以确认环境已成功安装。
接下来,使用无动作代理运行模拟测试,以验证环境执行情况,并确保机器人控制流程按预期工作:
如果仿真窗口启动且机械臂按预期运行,即可确认环境已就绪。
3. 项目文件结构
该目录结构清晰地展示了项目的组织架构,便于扩展新的使用场景,例如Nero机械臂示例。
4. 下载URDF模型
本项目使用了 agx_arm_urdf 仓库中的 Nero URDFDF 模型。克隆该仓库后,将 Nero Nero 目录复制到 isaac_so_arm101 项目的 robots 文件夹中:
模型复制完成后,需修改 nero_description.urdf 文件,使其与 Isaac Lab Lab 兼容。由于原始 URDF 使用的是 ROS ROS ROS 风格的包路径,因此这些引用必须转换为相对路径,以便正确解析链接和网格文件。以下为 base_link_link 配置示例。
编辑前
编辑后
5.配置 Isaac 实验文件
步骤1:导入URDF模型
修改URDF文件后,需要编写一个Python脚本来导入URDF模型,并配置机械臂的电机属性,包括刚度、阻尼及其他相关参数。
此脚本通常放置在:
src/isaac_so_arm101/robots/nero/nero.py
该文件的内容如下:
接下来,创建一个 __init__.py 文件,将该目录初始化为一个 Python Python 模块。
步骤2. 创建任务配置文件
在 tasks/liftift 目录中,创建以下文件:
•nero_joint_pos_env_cfg.py
•nero_lift_env_cfg.py
nero_joint_pos_env_cfg.py 文件定义了关节位置控制的环境配置,包括可控制的关节、机器人末端执行器连杆以及基本任务参数。
nero_lift_env_cfg.py 文件提供了升降任务的基础环境配置。它指定了任务奖励、惩罚、策略设置、目标点位置和方块位置,这些共同定义了环境的行为和目标。
然后,需要将“nero reach”任务注册到 src/isaac_so_arm101/tasks/reach/__init__.py 中。
6. 以赛亚实验室培训与评估流程
首先,激活 Condadada 环境:
然后切换到项目目录:
以无头模式启动 Isaac-Nero-Lift-Cube-v0 任务,以减少 GPU 和显示开销:
如果您的硬件足够强大,还可以启用可视化功能进行训练,直接观察学习过程:
该任务已训练1000次迭代。训练完成后,使用以下命令评估所学习的策略:
该工作流程还可扩展至更复杂的操作场景,包括多对象抓取和避障,其中Nero机械臂可作为从模拟到现实的迁移目标。
本文编译自hackster.io





