Isaacsim文档简记

Isaacsim

名词介绍

  • c-space:描述机器人姿态的多维空间,每个维度是机器人的一个自由度DoF。
  • frame:某个部件的位置(坐标系原点)姿态(xyz轴方向,四元数)。常见的如world/base/joint/link frame等
  • Articulation:多关节连接的物体,如机器人、机械臂等,其结构通常为多关节(joint)连接多个连杆 (link),封装了关节约束、质量、惯性等参数。能够读取各关节位置、速度、受力,使用ArticulationAction控制关节运动的位置、速度、扭矩,获取整体或局部位姿。

Assets

实体对象,基于USD的复合数据格式,包括以下部分:

  • 几何 Geometry:包括1. Mesh,即多边形模型;2. Collision Shape,碰撞检测,通常比mesh简单以简化计算。
  • Transform Hiearchy:以父子关系组织的坐标变换,形成骨架结构,例如关节的子节点为连杆
  • Physics Properties:定义物理引擎中的行为,包括Mass/Inertia/Collision Group/动力学类型(static/dynamic/kinematic)
  • Material:视觉材质(UsdShade)包括颜色、粗糙度、金属度、透明度、自发光。物理材质(UsdPhysics)包括静摩擦系数、动摩擦系数、恢复系数(Restitution)、密度。
  • Joints:针对可运动的asset。包括关节类型,运动限位、阻尼、刚度等。
  • Sensors:传感器及其参数
  • Metadata:额外信息如名称、作者、版本、标签等

Physics

Motion Generation(extension)

Kinematics Solver (KS)

负责前向和逆向动力学计算,其对机器人模型有其内在表示。主要属性如下:所有关节名、所有frame name、base pose、避障。

  • Articulation Kinematics Solver:将Articulation映射至KS,包含前向和逆向的映射方法
  • Lula Kinematics Solver: 不包含避障,但可以set/get内部设置,需要机器人的URDF和YAML(关节列表及默认c-space)。
Trajectory Generation

用于定义c-space和task-space的轨迹。

  • Trajectory Interface:连续时间轨迹。包括起始和终止时间、活动关节及其目标位置或角度(关于时间的函数)
  • Articulation Trajectory:用轨迹映射(控制)Articulation。两个方法:1. 获得指定时间点的ArticulationAction;2. 间隔timestep的ArticulationAction采样点列表。
  • Lula Trajectory Generator:用于通过c-space或task-space的waypoints生成轨迹(插值),两个class分别为LulaCSpaceTrajectoryGeneratorLulaTaskSpaceTrajectoryGenerator。同样需要提供URDF和YAML(加速和扭转限制)。
  • LulaCSpaceTrajectoryGenerator:起止速度均为0,加速均最大以使总轨迹时间最短。
  • LulaTaskSpaceTrajectoryGenerator:一系列的task-space targets和end effector frame name。
Path Planner Algorithm

用于在c-space的起止位姿之间,或为达到task-space的目标位姿,生成一条避障路线。其对机器人也有内部表达,不同于USD。

  • Active and Watched Joints: 为从usd映射到pathplanner内部表达,需要fullfill .get_activate_joint().get_watched_joints()。前者要控制,后者要观测以规划。
  • Inputs: World State: 通过pathplanner.add_sphere()可以将world中的移动障碍物加入计算,目前(4.5.0)仅支持sphere和cone。
  • Inputs: Robot State:通过PathPlanner.set_robot_base_pose()设置base pose;通过PathPlanner.get_active_joints()PathPlanner.get_watched_joints()指定的顺序获得关节位置。
  • Outputs: Path:compute_path返回一系列waypoints,可以插值形成避障路线。
  • Path Planner Visualizer:可视化规划路径,匹配机器人关节与规划器关节,核心函数PathPlannerVisualizer.compute_plan_as_articulation_actions(max_c-space_dist)可将规划结果转换为机器人可直接执行的ArticulationAction指令,并通过插值保证平滑,参数max_c-space_dist控制路径精细度。
Lula RRT

用于PathPlanner,其中c-space用RRT-Connect,task-space用Jacobian transpose RRT。RRT当前不支持目标方向。
文件需要URDF、YAML描述文件、YAML配置文件(RRT参数如终止条件、探索权重、step size)

Motion Policy Algorithm

Motion Policy接受机器人的状态,输出一个期望的状态变化量,过程中考虑单或多目标、约束、环境状态。

  • Active and Watched Joints:同上
  • Input:World States:同上
  • Inputs: Robot State:同上
  • Outputs: Robot Joint Targets:控制目标关节
  • Articulation Motion Policy:其需要一个Articulation和一个MotionPolicy初始化,目标是映射两者的关节,其核心函数ArticulationMotionPolicy.get_next_articulation_action()根据当前状态和MotionPolicy获得可执行的关节控制指令。
  • Motion Policy Controller:将一个MotionPolicy包装为一个BaseController
RMPFlow

利用黎曼几何中的度量张量(metric tensor),离障碍物越近的地方将度量张量放得越大,因此通过最短路径寻找即可实现在c-space中实现智能避障。需要一个URDF、YAML描述文件(包括球形障碍)以及RMP配置文件。

RMPFlow Tuning Guide

通常使用example configuration即可,根据实际机器人的关节数以及尺寸大小对其做相应修改。如果还需要继续调整,则关闭所有RMP及惯量,依次重启RMP以微调。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容