• Isaac-gym(4): 物理模拟


    希望和正在或者想要学习使用ISAAC-GYM的朋友一起有一个讨论群,尝试互帮互助,交流学习内容~
    目前刚开始尝试,不知道能不能建立起来,如果有意向请私戳!!
    ——2023.02

    1. 建立执行器(actor)

    • 函数create_actor将一个执行器添加到环境中,并返回一个执行器句柄,该句柄可用于以后与该执行器交互。最好在创建参与者期间保存句柄,而不是在模拟运行时每次都查找句柄。许多附带的示例都是这样做的:
    # cache useful handles
    envs = []
    actor_handles = []
    
    print("Creating %d environments" % num_envs)
    for i in range(num_envs):
        # create env
        env = gym.create_env(sim, env_lower, env_upper, num_per_row)
        envs.append(env)
    
        # add actor
        actor_handle = gym.create_actor(env, asset, pose, "actor", i, 1)
        actor_handles.append(actor_handle)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 执行器句柄特定于创建执行器的环境。在actor上操作的API函数需要环境引用和执行器句柄,因此通常将它们缓存在一起

    聚合:执行器的集合

    • 仅用于PhysX;
    • 要将多个参与者放入一个聚合中,您应该将调用create_actor包含在begin_aggregateend_aggregate,例如:
    gym.begin_aggregate(env, max_bodies, max_shapes, True)
    gym.create_actor(env, ...)
    gym.create_actor(env, ...)
    gym.create_actor(env, ...)
    ...
    gym.end_aggregate(env)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 聚合中只能包含来自同一环境的参与者。
    • -创建聚合时,有必要指定刚体和形状的最大数量,该数量应为将放置在聚合中的所有角色中的实体和形状的总数。对应get_asset_rigid_body_countget_asset_rigid_shape_count
    • 实例:python/rlgpu/tasks/franka.py

    2. 执行器组成部分

    • 每个执行器都有一组刚体、关节和自由度:
    num_bodies = gym.get_actor_rigid_body_count(env, actor_handle)
    num_joints = gym.get_actor_joint_count(env, actor_handle)
    num_dofs = gym.get_actor_dof_count(env, actor_handle)
    
    • 1
    • 2
    • 3

    2.1 刚体

    • 每个刚体由一个或多个刚体形状组成;
    • 可以自定义每个参与者的刚体和形状属性;
    • 示例:body_physics_props.py

    2.2 关节

    • 保留URDF和MJCF模型中定义的关节

    2.3 DOF

    • 每个自由度都可以独立驱动;
    • 可以将控件应用于各个自由度,或使用数组同时处理所有参与者自由度。

    3. 控制执行器

    • 使用自由度来控制Actor
    • 对于每个DOF,可以设置驱动模式、限制、刚度、阻尼和目标。

    4. 执行器缩放

    5. 物理状态

  • 相关阅读:
    236. 二叉树的最近公共祖先
    深入了解Elasticsearch的CRUD:ES Java API之增删改查
    C++ Reference: Standard C++ Library reference: C Library: cwctype: iswdigit
    Python办公自动化【Word】
    redis的持久化
    详解memcpy和memmove函数的使用
    React报错之Invalid hook call
    MySQL InnoDB引擎优势以及共享表空间扩容和日志文件详解
    《零基础学机器学习》笔记-第1课-MNIST数字识别
    kr第三阶段(二)32 位汇编
  • 原文地址:https://blog.csdn.net/hongliyu_lvliyu/article/details/124955512