组装一个简单的机器人
Omniverse Isaac Sim 的 GUI 界面功能与 NVIDIA Omniverse™ USD Composer 中使用的功能相同,这是一款专门用于构建世界的应用程序。在本系列教程中,我们将重点介绍与机器人使用最相关的 GUI 功能。如需更复杂的通用世界创建,请查看 Omniverse Composer。
上面链接讲的是如何生成更加复杂/拟真的世界。目前我们学习过程中暂时用不到这些,后面需要进行工业设计的时候再来研究。
在本教程中,我们将装配一个简单的“机器人”,该机器人具有三个链接和两个旋转关节,以介绍关节和关节的基本概念。我们将在“添加简单对象”中获取添加到舞台上的对象,并将它们变成一个具有矩形身体和两个圆柱形轮子的模拟移动机器人。虽然对于从导入 Onshape 文档或 URDF 导入器导入的机器人来说,不需要此步骤,但这些是调整机器人和组装带有关节的对象时需要理解的重要概念。
学习目标
本教程详细介绍了如何装配两轮移动机器人,并介绍了如何:
-
组织阶段树层次结构
-
在两个刚体之间添加接头
-
添加关节驱动器和关节属性
-
添加发音
-
通过关节速度控制器移动机器人
开始
先决条件
-
完成所有入门教程,并设计一个小车isaac sim 教程(三)-CSDN博客
添加关节
-
如果您正在继续学习介绍性教程并保存了自己的 mock_robot.usd,请使用 File> Open 打开它。否则,请加载 Isaac/Samples/Rigging/MockRobot/mock_robot_no_joints.usd 中提供的资产。不要将其加载为引用,因为您必须对文件进行永久性修改。
-
要在两个主体之间添加关节,请单击父主体,然后单击子主体。 对于我们的模拟机器人,选择 ,然后在按住 的同时选择 。在两个实体都高亮显示的情况下,右键单击并选择“创建>物理>关节”>“旋转关节”。 显示在“舞台树”下。将其重命名为 。
body
Ctrl + Shift
wheel_left
RevoluteJoint
wheel_left
wheel_joint_left
-
在“属性”选项卡中验证 body0 是(立方体),body1 是(圆柱体)。
/mock_robot/body
/mock_robot/wheel_left
-
将关节的轴更改为 Y。
-
如果仔细观察,关节的两个局部框架未对准。要更正它,请转到局部旋转 0 并使 x = 0 度。接下来,转到局部旋转 1 并使 x = -90 度。此处的示例仅显示了方向错位,您可能会看到平移错位,具体取决于您的机器人。
-
对右侧车轮接头重复步骤 1-4。
译者注:在自己尝试的过程中,如果不进行保存与重新加载,得到的小车坐标轴是和教程不同的,不能完全按照教程来做。这里视频选用自己录制的。轴向与原文有差异,但效果是一致的。
在添加接头之前,三个刚体在按下 Play 后分别掉落在地上。现在有了关节连接,身体就会像连接在一起一样掉落。 要看到它们像通过旋转关节连接一样一起移动,您可以通过按住键并单击并拖动视口中机器人的任何部分来拖动机器人。Shift
添加联合驱动器
添加接头可增加机械连接。为了能够控制和驱动关节,您必须添加关节驱动 API。 选择两个关节,然后单击“属性”选项卡中的按钮,然后选择“物理>角度驱动”以同时向两个关节添加驱动器。+ Add
-
位置控制:对于位置控制的关节,设置高刚度和相对较低的阻尼或零阻尼。
-
速度控制:对于速度控制器关节,设置高阻尼和零刚度。
对于车轮上的关节,速度控制更有意义,因此将两个车轮的阻尼设置为 1e4*,将*目标速度设置为 200。 如果您正在处理范围有限的关节,则可以在“属性”选项卡的“原始 USD 属性”下限(上限)下>设置这些关节。 按“播放”键,查看模拟移动机器人开走。
添加衔接
尽管直接驱动关节可以移动机器人,但这并不是计算效率最高的方式。将事物制作成关节可以实现更高的仿真保真度,减少关节误差,并且可以处理关节体之间的更大质量比。有关其背后的物理模拟的更多信息,请参阅物理核心:衔接。 要将一系列相连的刚体和关节转换为关节,请设置关节根来锚定关节树。根据 Physics Core: Articulation 中有关定义发音树的说明:
对于固定基座关节,将“关节根组件”添加到:1) 将关节基座与世界连接起来的固定关节,或 2) USD 层次结构中固定关节的祖先。第二个选项允许从添加到场景中的单个根组件创建多个关节。每个后代固定关节都定义了一个关节基链接。 对于浮基衔接,将衔接根组件添加到:1) 根刚体链接或 2) USD 层次结构中根链接的祖先。
在本教程中,将关节根添加到机器人身体:
-
在树上选择。
body
-
在“属性”选项卡中打开 + 添加。
-
将 Physics > Articulation Root 添加。
验证生成的机器人是否与 中提供的资产匹配。Isaac/Samples/Rigging/MockRobot/mock_robot_rigged.usd
添加控制器
在关节成为关节的一部分之后,您可以使用工具来测试机器人的运动。
-
转到 Isaac Utils > Common Omnigraphs 并添加“Articulation Velocity Control”图。此图表允许您通过设置每个关节的目标速度来控制机器人的运动。
在自己的软件里面没有找到这个选项,所以暂时跳过这个步骤
-
系统将提示您输入必要的参数。单击“Articulation Root”的“添加”按钮,然后选择带有 Articulation Root API 的 prim,在本例中为 /mock_robot/body。
-
由于此机器人的 Articulation Root API 与机器人的根 prim 不同,因此您必须添加“Robot Root”参数。在本例中为 /mock_robot。
-
单击“确定”以创建图形。
-
要移动机器人,请按“播放”开始模拟。如果您设置了任何默认位置或速度目标,机器人将立即开始向这些目标移动。要更改联合命令,请在舞台树的 /World/Graphs/articulation_velocity_controller{_n}/JointCommandArray 下高亮显示 JointCommandArray,并在 Property Manager Tab -> Raw USD Properties“中更改联合角度。
注意
关节控制器使用弧度,当您在舞台树上选择各个关节时,您在 Drive API 下找到的默认 USD 属性以度为单位。
对于这个特定的机器人,它也可以使用差分控制器进行控制。有关 Omnigraph 控制器快捷方式的更多信息,请转到常用的 Omnigraph 快捷方式。
总结
在本教程中,您学习了使用关节连接刚体,添加关节驱动器以控制关节,将关节链转换为关节,并使用关节速度控制器控制机器人。
后续步骤
-
继续阅读添加摄像头和传感器,了解如何向汽车添加摄像头。
延伸阅读
Physics Core,了解有关关节和关节的更多详细信息。