Isaac Sim机器人基本操作及关键词汇英中文对照

一、机器人基本操作(三种实现方式)

Isaac Sim提供GUI、Extension脚本、Standalone Python三种核心操作方式,覆盖从可视化调试到自动化运行的全场景需求,以下以Franka Emika Panda机械臂为例,详细说明核心操作流程。

(一)GUI方式(可视化交互,适合快速调试)

1. 添加机器人到场景
  1. 新建场景:点击顶部菜单栏「File > New Stage」创建空白场景。
  2. 添加机器人:点击「Create > Robot > Franka Emika Panda Arm」,机械臂将自动加载到场景中。
2. 查看机器人关节属性
  1. 打开物理检查器:点击「Tools > Physics > Physics Inspector」,左侧将弹出属性窗口。
  2. 选择目标机器人:在左侧窗口中选中「Franka」,将自动显示关节的上下限、默认位置等基础信息。
  3. 查看高级属性:点击属性窗口右上角的汉堡图标,可展开关节刚度(stiffness)、阻尼(damping)等参数。
  4. 参数修改与保存:修改参数后机器人会实时响应动作变化,点击绿色对勾可将修改设为默认值。
3. 控制机器人运动
  1. 生成控制图:点击「Tools > Robotics > Omnigraph Controllers > Joint Position」,打开控制器配置弹窗。
  2. 绑定机器人:在「Articulation Position Controller Inputs」弹窗中,为「Robot Prim」字段点击「Add」,选择「Franka」作为目标机器人,点击「OK」生成控制图。
  3. 启动仿真与调整关节:
    • 点击场景工具栏「Play」启动仿真。
    • 两种方式打开关节控制面板:在「Stage」树中选中「JointCommandArray」节点,或通过「Window > Graph Editors > Action Graph」打开图形编辑器,选择生成的「Position_Controller」图。
    • 在属性面板中,滑动或输入以「input*」开头的参数(对应机器人从基座开始的各个关节),即可控制机械臂运动。

(二)Extension脚本方式(API编程,适合场景定制)

1. 添加机器人到场景
  1. 打开脚本编辑器:在Isaac Sim界面中打开「Script Editor」。
  2. 运行以下代码(自动加载Franka机械臂并设置初始位置):
python 复制代码
import carb
from isaacsim.core.prims import Articulation
from isaacsim.core.utils.stage import add_reference_to_stage
from isaacsim.storage.native import get_assets_root_path
import numpy as np

assets_root_path = get_assets_root_path()
if assets_root_path is None:
    carb.log_error("Could not find Isaac Sim assets folder")
usd_path = assets_root_path + "/Isaac/Robots/Franka/franka.usd"
prim_path = "/World/Arm"

add_reference_to_stage(usd_path=usd_path, prim_path=prim_path)
arm_handle = Articulation(prim_paths_expr=prim_path, name="Arm")
arm_handle.set_world_poses(positions=np.array([[0, -1, 0]]))  # 设置机械臂初始位置
2. 查看机器人关节信息
  1. 确保已完成「添加机器人」步骤(arm_handle已初始化)。
  2. 点击场景「Play」启动物理仿真,在脚本编辑器新建标签页,运行以下代码:
python 复制代码
# 获取关节数量
num_joints = arm_handle.num_joints
print("关节数量: ", num_joints)

# 获取关节名称
joint_names = arm_handle.joint_names
print("关节名称: ", joint_names)

# 获取关节运动范围限制
joint_limits = arm_handle.get_dof_limits()
print("关节限制: ", joint_limits)

# 获取当前关节位置
joint_positions = arm_handle.get_joint_positions()
print("关节位置: ", joint_positions)
  1. 实时打印关节状态(每帧更新):
python 复制代码
import asyncio
from isaacsim.core.api.simulation_context import SimulationContext

async def test():
    def print_state(dt):
        joint_positions = arm_handle.get_joint_positions()
        print("实时关节位置: ", joint_positions)
    simulation_context = SimulationContext()
    await simulation_context.initialize_simulation_context_async()
    await simulation_context.reset_async()
    simulation_context.add_physics_callback("printing_state", print_state)  # 添加物理回调

asyncio.ensure_future(test())
  1. 移除实时打印回调:
python 复制代码
simulation_context = SimulationContext()
simulation_context.remove_physics_callback("printing_state")
3. 控制机器人运动
  1. 启动仿真(点击「Play」),运行以下代码控制关节位置:
python 复制代码
# 设置关节到目标位置(随机姿态)
arm_handle.set_joint_positions([[-1.5, 0.0, 0.0, -1.5, 0.0, 1.5, 0.5, 0.04, 0.04]])

# 重置所有关节到初始位置(0角度)
arm_handle.set_joint_positions([[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]])
  1. 若需每帧发送控制指令,需将代码嵌入物理回调(参考「实时打印关节状态」的回调逻辑)。

(三)Standalone Python方式(独立运行,适合批量测试)

1. 运行独立脚本
  1. 定位脚本路径:Isaac Sim安装根目录下的standalone_examples/tutorials/getting_started_robot.py
  2. 打开终端,执行以下命令运行(需提前配置Isaac Sim环境):
    • Linux系统:./python.sh standalone_examples/tutorials/getting_started_robot.py
    • Windows系统:python.bat standalone_examples\tutorials\getting_started_robot.py
2. 核心脚本逻辑说明
  • 初始化仿真环境:通过SimulationApp启动仿真,支持GUI/无头模式(headless=False显示GUI)。
  • 场景管理:通过World对象统一控制物理渲染、对象管理。
  • 显式仿真步进:通过my_world.step()手动控制仿真帧推进,循环中可实现多阶段动作切换(如机械臂移动/复位、移动机器人启停)。
  • 示例逻辑:脚本运行4个周期,交替控制机械臂和移动机器人的运动状态,最后一个周期实时打印移动机器人关节位置。

二、关键词汇英中文对照

英文术语 中文翻译 说明
Stage 场景/舞台 承载所有仿真对象(机器人、环境、传感器)的容器
Robot Prim 机器人基元 机器人在场景中的核心对象标识,用于绑定控制逻辑
Articulation 关节链/ articulated机器人 用于管理多关节机器人的核心类,提供关节控制API
Joint 关节 机器人可运动的连接部件(如旋转关节、移动关节)
Joint Position 关节位置 关节的角度或位移状态(核心控制参数)
Joint Velocity 关节速度 关节运动的角速度或线速度
Joint Effort 关节力矩 驱动关节运动的力或力矩
DOF (Degree of Freedom) 自由度 机器人独立运动的维度(Franka机械臂通常为9个自由度)
Joint Limits 关节限制 关节运动的上下边界(如角度范围、位移范围)
Physics Inspector 物理检查器 可视化查看/修改机器人物理属性的工具
OmniGraph 全能图 Isaac Sim可视化编程工具,用于搭建控制逻辑
Action Graph 动作图 OmniGraph的核心类型,用于编辑机器人控制流程
JointCommandArray 关节指令数组 存储所有关节控制指令的节点(GUI方式控制核心)
SimulationContext 仿真上下文 管理仿真初始化、重置、回调的核心类
Physics Callback 物理回调 每帧物理计算后执行的自定义函数(用于实时控制/数据打印)
Standalone Python 独立Python模式 脱离Isaac Sim GUI,通过脚本独立启动仿真的运行方式
Extension 扩展模式 在Isaac Sim GUI内通过脚本编辑器运行代码的模式
USD (Universal Scene Description) 通用场景描述文件 存储机器人模型、场景布局的标准格式(Franka模型文件为franka.usd)
Prim Path 基元路径 场景中对象的唯一标识路径(如/World/Arm
Set Joint Positions 设置关节位置 控制机器人关节到目标姿态的核心API
Get Joint Positions 获取关节位置 读取机器人当前关节状态的核心API
Stiffness 刚度 关节抵抗形变的特性(影响运动平滑度)
Damping 阻尼 关节运动的阻力(用于减少震荡)
SimulationApp 仿真应用 独立模式下启动Isaac Sim仿真的入口类
World 世界对象 独立模式下管理场景、物理、渲染的核心对象
Step 步进 推进仿真的单帧计算(包含渲染和物理更新)
相关推荐
weixin_5134499612 小时前
PCA、SVD 、 ICP 、kd-tree算法的简单整理总结
c++·人工智能·学习·算法·机器人
这个昵称叫什么好呢15 小时前
nvidia显卡驱动升级造成的无法开机(黑屏)问题
机器人
施努卡机器视觉18 小时前
阴极铜机器人剥片:SNK施努卡的双线并行自动化解决方案
运维·机器人·自动化
Olivia0514051419 小时前
Voohu:音频变压器在平衡传输与地环路隔离中的设计要点
网络·机器人·信息与通信
wWYy.19 小时前
ROS:服务机制(Service)
机器人
好家伙VCC19 小时前
# 发散创新:用 Rust实现高性能物理引擎的底层架构设计与实战在游戏开发、虚拟仿真和机器人控
java·开发语言·python·rust·机器人
MFXWW219 小时前
特斯拉 Optimus Gen3 手臂设计解析:从 “能抓“ 到 “会用“ 的工程革命
人工智能·机器人
QYR-分析20 小时前
全球轻量化新能源汽车市场分析:现状、机遇与发展展望
人工智能·机器人
一个小浪吴啊21 小时前
Hermes Agent集成飞书机器人 飞书机器人快速集成Hermes Agent指南
ai·机器人·飞书·ai编程
熵减纪元21 小时前
人形机器人日报:东京开始聊“照护落地”,机器人训练数据也有人专门出来做了
机器人