项目:Trossen Arm MuJoCo

仓库有什么

  • 适用于特罗森人工智能机器人的MuJoCo XML模型:

    • WidowX 人工智能(单臂操纵器)

    • 固定式AI(双臂固定平台)

    • 移动式人工智能(双臂移动机械手机)

  • 用于笛卡尔末端效应控制的差分逆动运动控制器

  • 示范脚本的取景和目标

  • 运动捕捉与联合控制模拟环境

  • 用于模仿学习的数据采集和可视化工具

安装

bash 复制代码
#克隆仓库
git clone https://github.com/TrossenRobotics/trossen_arm_mujoco.git ~/trossen_arm_mujoco

#创建并激活Conda环境
conda create --name trossen_mujoco_env python=3.10
conda activate trossen_mujoco_env

#安装包及依赖
cd ~/trossen_arm_mujoco
pip install -e .

#验证安装 若看到机器人执行 pick-and-place 动作,则安装成功
python3 trossen_arm_mujoco/scripts/wxai_pick_place.py

Assets

所有机器人模型均位于 trossen_arm_mujoco/assets中

资源文件夹包含按机器人类型组织的所有机器人模型,以及网格文件和场景配置

复制代码
trossen_arm_mujoco/assets/
├── meshes/          # STL files for robot components
├── wxai/
│   ├── wxai_base.xml              # WidowX AI base model
│   ├── wxai_follower.xml          # WidowX AI follower arm with camera
│   ├── scene.xml                  # Basic visualization scene
│   ├── scene_wxai_pick_place.xml  # Pick-and-place scene
│   └── scene_wxai_follow_target.xml # Target following scene
├── stationary_ai/
│   ├── stationary_ai.xml          # Dual-arm stationary platform
│   ├── stationary_ai_mocap.xml    # Mocap-enabled model with weld constraints
│   ├── scene.xml                  # Basic visualization scene
│   ├── scene_stationary_ai_pick_place.xml # Pick-and-place with handoff
│   ├── scene_joint.xml            # Joint-controlled setup
│   └── scene_mocap.xml            # Motion capture-controlled setup
└── mobile_ai/
    ├── mobile_ai.xml              # Mobile base + dual-arm
    ├── scene.xml                  # Basic visualization scene
    └── scene_mobile_ai_pick_place.xml # Mobile pick-and-place

WidowX AI - 单臂操纵器:

  • 6-DOF 臂:wxai_base.xml

  • 带摄像头的6-DOF臂:wxai_follower.xml

固定式AI - 双臂固定平台:

  • 共享基座上的双臂WXAI

移动式人工智能 - 移动操控器:

  • 差分驱动移动底座

  • 双WXAI臂

运动捕捉与关节控制环境

动作捕捉 (stationary_ai/scene_mocap.xml):

  • 使用预定义的mocap机身,根据脚本端效应器运动来移动机器人手臂

  • 用于定义任务轨迹和生成参考动议

关节控制 (stationary_ai/scene_joint.xml):

  • 为每个接头使用位置控制器,类似于实际机器人设置

  • 用于重放录制的轨迹,并具有逼真的关节水平控制

  • 实现在渲染输出中可见的模拟图像,无需移动图像

Demo

WidowX AI - 单臂操纵器:

bash 复制代码
python3 trossen_arm_mujoco/scripts/wxai_pick_place.py

固定式AI - 双臂固定平台:

bash 复制代码
python3 trossen_arm_mujoco/scripts/stationary_ai_pick_place.py

移动式人工智能 - 移动操控器:

bash 复制代码
python3 trossen_arm_mujoco/scripts/wxai_follow_target.py

目标跟踪演示:

bash 复制代码
python3 trossen_arm_mujoco/scripts/wxai_follow_target.py

模块

trossen_arm_mujoco 文件夹包含运行仿真、执行策略、录制行程和可视化结果所需的所有 Python 模块

模拟

  1. ee_sim_env.py

    • 负载stationary_ai/scene_mocap.xml(基于动作捕捉的控制)。

    • 武器通过跟随指挥位置移动到MOCAP机身来移动。

    • 用于生成脚本策略,以预定义的方式控制机器人的手臂。

  2. sim_env.py

    • 负载stationary_ai/scene_joint.xml(位置控制接头)。

    • 使用联合控制器而不是模卡器。

    • 重播来自 ee_sim_env.py 的联合轨迹,实现在渲染输出中可见的 mocap 机身,实现清晰的仿真视觉效果。

脚本策略执行

  1. protemed_policy.py

    • 为机器人手臂设计预脚本动作,以执行拾取物体等任务。

    • 利用运动捕捉体生成平滑的运动轨迹。

    • 在当前设置中,策略旨在拾取一个红块,并在环境中随机设置块位置。

数据收集

数据收集过程通过两个阶段模拟机器人行为:由mocap驱动的录制阶段,然后是一个用于观察的清晰回放阶段。 该管道可让您在笛卡尔空间中定义机器人移动,捕捉相应的关节轨迹,然后采集逼真的传感器数据

运动捕捉

运动捕捉(动捕)刚体

运动捕捉刚体是虚拟刚性刚体 ,通过刚性约束固定在每条机械臂的最终关节 link_6 上。该设计支持直观的运动定义,并自动完成逆运动学求解

刚性约束特性

动捕刚体通过焊接约束 刚性固连于 link_6。当动捕刚体运动时,仿真器会保证机器人末端执行器与其同步跟随。

笛卡尔空间控制

无需手动下发关节角度指令,只需通过脚本策略在三维空间(x、y、z)移动动捕刚体,机械臂各关节会自动调整姿态以实现跟随。

关节状态记录

在末端执行器跟踪动捕刚体的过程中,仿真器会记录每个时间步所需的关节构型,这些数据将被保存为动作轨迹

在关节控制环境中回放

录制好的关节轨迹会在第二个仿真场景中回放,该场景满足以下条件:

  • 移除动捕刚体(例如在 stationary_ai/scene_joint.xml 中)
  • 机械臂直接通过关节位置指令控制
  • 采集观测数据时不会引入动捕相关的干扰信息

回放过程中:

  • 采集多视角相机图像
  • 记录关节状态反馈
  • 记录奖励函数值及其他元数据

流程

1.生成数据

运行 record_sim_episodes.py

  1. 启动由 mocap 驱动的仿真 ee_sim_env.py。

  2. 执行一份有剧本的笛卡尔政策。

  3. 保存生成的联位轨迹。

  4. 立即在一个干净的关节控制模拟 sim_env.py 中重放轨迹以收集观测结果。

    • 从4个不同角度传输摄像头

    • 执行期间的固定立场

    • 行动(输入联合职位)

    • 表示成功或失败的奖励值

bash 复制代码
python trossen_arm_mujoco/scripts/record_sim_episodes.py \
    --task_name sim_transfer_cube \
    --data_dir trossen_arm_mujoco/data/sim_transfer_cube \
    --num_episodes 5 \
    --onscreen_render

1.保存数据

所有观测和元数据均以 .hdf5 格式保存,每集包含一个文件

~/trossen_arm_mujoco/trossen_arm_mujocodata/sim_transfer_cube/episode_0.hdf5

~/trossen_arm_mujoco/trossen_arm_mujocodata/sim_transfer_cube/episode_1.hdf5

2.可视化数据

使用 wisual_eps.py 脚本将剧集转换为视频:

bash 复制代码
python trossen_arm_mujoco/scripts/visualize_eps.py \
    --data_dir trossen_arm_mujoco/data/sim_transfer_cube \
    --output_dir trossen_arm_mujoco/data/output/videos \
    --fps 50

3.模拟到真实

要将该集部署在真实硬件上,请运行:

bash 复制代码
python trossen_arm_mujoco/scripts/replay_episode_real.py \
    --data_dir trossen_arm_mujoco/data/sim_transfer_cube \
    --episode_idx 0 \
    --fps 10 \
    --left_ip 192.168.1.5 \
    --right_ip 192.168.1.4
相关推荐
兢谨网安2 小时前
AI安全:从技术加固到体系化防御的实战演进
人工智能·安全·网络安全·渗透测试
m0_747304162 小时前
GNN学习
学习
NAGNIP2 小时前
一文搞懂CNN经典架构-DenseNet!
算法·面试
CoderJia程序员甲2 小时前
GitHub 热榜项目 - 日榜(2026-03-29)
人工智能·ai·大模型·github·ai教程
道法自然|~2 小时前
BugCTF黄道十二宫
算法·密码学
龙腾AI白云2 小时前
什么是AI智能体(AI Agent)
人工智能·深度学习·自然语言处理·数据分析
Sagittarius_A*2 小时前
监督学习(Supervised Learning)
人工智能·学习·机器学习·监督学习
向上的车轮3 小时前
AI智能体开发:需求分析要点与实战指南
人工智能·需求分析
fobwebs3 小时前
wordpress GEO插件指南
人工智能·wordpress·geo·ai搜索优化·geo优化