当前位置: 首页 > news >正文

普通网站跟营销型网站的对比网站推广公司排名

普通网站跟营销型网站的对比,网站推广公司排名,2345网址导航12年11个,长沙免费模板建站如是我闻#xff1a; “在之前的指南中#xff0c;我们讨论了独立脚本#xff08; standalone script#xff09;的基本工作原理以及如何在模拟器中生成不同的对象#xff08;prims#xff09;。在指南03中#xff0c;我们将展示如何创建并与刚体进行交互。为此#xf…如是我闻 “在之前的指南中我们讨论了独立脚本 standalone script的基本工作原理以及如何在模拟器中生成不同的对象prims。在指南03中我们将展示如何创建并与刚体进行交互。为此我们使用Orbit中提供的assets.RigidObject类。” 指南03 对应于orbit/source/standalone/tutorials/01_assets目录下的run_rigid_object.py 脚本让我们先搂一眼完整的代码 # Copyright (c) 2022-2024, The ORBIT Project Developers. # All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause This script demonstrates how to create a rigid object and interact with it... code-block:: bash# Usage./orbit.sh -p source/standalone/tutorials/01_assets/run_rigid_object.pyfrom __future__ import annotationsLaunch Isaac Sim Simulator first.import argparsefrom omni.isaac.orbit.app import AppLauncher# add argparse arguments parser argparse.ArgumentParser(descriptionTutorial on spawning and interacting with a rigid object.) # append AppLauncher cli args AppLauncher.add_app_launcher_args(parser) # parse the arguments args_cli parser.parse_args()# launch omniverse app app_launcher AppLauncher(args_cli) simulation_app app_launcher.appRest everything follows.import torchimport omni.isaac.core.utils.prims as prim_utilsimport omni.isaac.orbit.sim as sim_utils import omni.isaac.orbit.utils.math as math_utils from omni.isaac.orbit.assets import RigidObject, RigidObjectCfg from omni.isaac.orbit.sim import SimulationContextdef design_scene():Designs the scene.# Ground-planecfg sim_utils.GroundPlaneCfg()cfg.func(/World/defaultGroundPlane, cfg)# Lightscfg sim_utils.DomeLightCfg(intensity2000.0, color(0.8, 0.8, 0.8))cfg.func(/World/Light, cfg)# Create separate groups called Origin1, Origin2, Origin3# Each group will have a robot in itorigins [[0.25, 0.25, 0.0], [-0.25, 0.25, 0.0], [0.25, -0.25, 0.0], [-0.25, -0.25, 0.0]]for i, origin in enumerate(origins):prim_utils.create_prim(f/World/Origin{i}, Xform, translationorigin)# Rigid Objectcone_cfg RigidObjectCfg(prim_path/World/Origin.*/Cone,spawnsim_utils.ConeCfg(radius0.1,height0.2,rigid_propssim_utils.RigidBodyPropertiesCfg(),mass_propssim_utils.MassPropertiesCfg(mass1.0),collision_propssim_utils.CollisionPropertiesCfg(),visual_materialsim_utils.PreviewSurfaceCfg(diffuse_color(0.0, 1.0, 0.0), metallic0.2),),init_stateRigidObjectCfg.InitialStateCfg(),)cone_object RigidObject(cfgcone_cfg)# return the scene informationscene_entities {cone: cone_object}return scene_entities, originsdef run_simulator(sim: sim_utils.SimulationContext, entities: dict[str, RigidObject], origins: torch.Tensor):Runs the simulation loop.# Extract scene entities# note: we only do this here for readability. In general, it is better to access the entities directly from# the dictionary. This dictionary is replaced by the InteractiveScene class in the next tutorial.cone_object entities[cone]# Define simulation steppingsim_dt sim.get_physics_dt()sim_time 0.0count 0# Simulate physicswhile simulation_app.is_running():# resetif count % 250 0:# reset counterssim_time 0.0count 0# reset root stateroot_state cone_object.data.default_root_state.clone()# sample a random position on a cylinder around the originsroot_state[:, :3] originsroot_state[:, :3] math_utils.sample_cylinder(radius0.1, h_range(0.25, 0.5), sizecone_object.num_instances, devicecone_object.device)# write root state to simulationcone_object.write_root_state_to_sim(root_state)# reset bufferscone_object.reset()print(----------------------------------------)print([INFO]: Resetting object state...)# apply sim datacone_object.write_data_to_sim()# perform stepsim.step()# update sim-timesim_time sim_dtcount 1# update bufferscone_object.update(sim_dt)# print the root positionif count % 50 0:print(fRoot position (in world): {cone_object.data.root_state_w[:, :3]})def main():Main function.# Load kit helpersim_cfg sim_utils.SimulationCfg()sim SimulationContext(sim_cfg)# Set main camerasim.set_camera_view(eye[1.5, 0.0, 1.0], target[0.0, 0.0, 0.0])# Design scenescene_entities, scene_origins design_scene()scene_origins torch.tensor(scene_origins, devicesim.device)# Play the simulatorsim.reset()# Now we are ready!print([INFO]: Setup complete...)# Run the simulatorrun_simulator(sim, scene_entities, scene_origins)if __name__ __main__:# run the main functionmain()# close sim appsimulation_app.close() 代码解析 在这个脚本中我们将主函数main分割成两个独立的函数这两个函数是在模拟器中设置任何模拟的两个主要步骤 场景设计顾名思义这部分负责将所有图元 prims添加到场景中。 模拟运行这部分负责步进模拟器与场景中的原始物体进行互动例如改变它们的姿态并对它们应用指令。 区别这两个步骤是必要的因为第二步只有在第一步完成并且模拟器被重置后才会发生。一旦模拟器被重置自动播放模拟新的启用物理的原始物体prims不应该被添加到场景中因为这可能会导致意外的行为。然而可以通过它们各自的句柄respective handles与原始物体prims进行互动。 场景设计 与前一个指南类似我们使用地面平面和光源填充场景。此外我们使用assets.RigidObject类将一个刚体添加到场景中。这个类负责在输入路径处生成原始物体并初始化它们对应的刚体物理句柄。 在本指南中我们使用与“生成对象指南”中的刚体圆锥相似的生成配置创建一个圆锥形的刚体对象。唯一的区别是现在我们将生成配置包装进assets.RigidObjectCfg类中。这个类包含有关资产生成策略、默认初始状态和其他元信息的信息。当这个类传递给assets.RigidObject类时它会在播放模拟时生成对象并初始化相应的物理句柄。 作为例子关于多次生成刚体原始物体我们创建了它们的父Xform原始物体/World/Origin{i}这对应于不同的生成位置。当正则表达式/World/Origin*/Cone传递给assets.RigidObject类时它会在每个/World/Origin{i}位置生成刚体原始物体。例如如果场景中存在/World/Origin1和/World/Origin2则刚体原始物体分别在位置/World/Origin1/Cone和/World/Origin2/Cone处生成。 # Create separate groups called Origin1, Origin2, Origin3# Each group will have a robot in itorigins [[0.25, 0.25, 0.0], [-0.25, 0.25, 0.0], [0.25, -0.25, 0.0], [-0.25, -0.25, 0.0]]for i, origin in enumerate(origins):prim_utils.create_prim(f/World/Origin{i}, Xform, translationorigin)# Rigid Objectcone_cfg RigidObjectCfg(prim_path/World/Origin.*/Cone,spawnsim_utils.ConeCfg(radius0.1,height0.2,rigid_propssim_utils.RigidBodyPropertiesCfg(),mass_propssim_utils.MassPropertiesCfg(mass1.0),collision_propssim_utils.CollisionPropertiesCfg(),visual_materialsim_utils.PreviewSurfaceCfg(diffuse_color(0.0, 1.0, 0.0), metallic0.2),),init_stateRigidObjectCfg.InitialStateCfg(),)cone_object RigidObject(cfgcone_cfg)由于我们是想与刚体进行互动我们将这个实体返回给主函数。然后在模拟循环中使用这个实体与刚体进行互动。在后续的指南中我们将看到使用scene.InteractiveScene类处理多个场景实体的更便捷方式。 # return the scene informationscene_entities {cone: cone_object}return scene_entities, origins运行模拟循环 我们修改模拟循环已进行与刚体的互动包括三个步骤 在固定时间间隔重置模拟状态、步进模拟以及更新刚体的内部缓冲区。 为了简便一些我们从场景的字典中提取出刚体的实体并将其存储在一个变量中。 在固定时间间隔重置模拟状态 为了重置生成的刚体原始物体的模拟状态我们需要设置它们的姿态和速度。这两者共同定义了生成的刚体对象的根状态。重要的是要注意这个状态是在模拟世界框架中定义的而不是它们的父Xform原始物体的框架。这是因为物理引擎只理解世界框架而不理解父Xform原始物体的框架。因此在设置之前我们需要将刚体原始物体的期望状态转换到世界框架中。 我们使用assets.RigidObject.data.default_root_state属性来获取生成的刚体原始物体的默认根状态。这个默认状态可以从assets.RigidObjectCfg.init_state属性配置我们在这个指南中将其保留为身份。然后我们随机化根状态的平移并使用assets.RigidObject.write_root_state_to_sim()方法设置刚体原始物体的期望状态。正如名称所示这个方法将刚体原始物体的根状态写入到模拟缓冲区中。 # reset root stateroot_state cone_object.data.default_root_state.clone()# sample a random position on a cylinder around the originsroot_state[:, :3] originsroot_state[:, :3] math_utils.sample_cylinder(radius0.1, h_range(0.25, 0.5), sizecone_object.num_instances, devicecone_object.device)# write root state to simulationcone_object.write_root_state_to_sim(root_state)# reset bufferscone_object.reset()PS我这段真看了半天就只能直译了我现在的理解是我们要是想刷新这个圆锥的状态就必须找出他的根状态在根状态上做改变当然如果是单纯的图形的话在上一级Xform上改动也就可以了也就是这一段代码对orbit同样绝望还必须得用的可以私信我我们一起研究一下 root_state cone_object.data.default_root_state.clone()步进模拟 在步进模拟之前我们执行assets.RigidObject.write_data_to_sim()方法。这个方法将其他数据比如外部力写入模拟缓冲区。在本指南中我们没有对刚体施加任何外部力所以这个方法不是必需的。然而为了完整性我们将他写在这里。 # apply sim datacone_object.write_data_to_sim()更新状态 在步进模拟之后我们更新刚体原始物体的内部缓冲区以便在assets.RigidObject.data属性内反映它们的新状态。这是通过使用assets.RigidObject.update()方法完成的。 # update bufferscone_object.update(sim_dt)代码执行 现在我们已经讲解了代码让我们运行脚本并查看结果 ./orbit.sh -p source/standalone/tutorials/01_assets/run_rigid_object.py这应该会打开一个带有地面平面、灯光和几个绿色圆锥的舞台。圆锥必须从随机高度落下并落在地面上。 要停止模拟可以关闭窗口或在UI中按停止按钮或在终端中按CtrlC。 本指南展示了如何生成刚体对象并将它们包装在RigidObject类中以初始化它们的物理句柄这允许设置和获取它们的状态。在下一个指南中我们将看到如何与由关节连接的刚体对象集合即关节物体进行互动。 愿本文渡一切机器人模拟器苦 以上
http://www.zqtcl.cn/news/94128/

相关文章:

  • 网站建设与管理案例柳洪轶wordpress学校站模板
  • 湖北省和住房建设厅官方网站自媒体专业
  • 榆林网站开发自己建设购物网站
  • 新材建设局网站百度提问首页
  • 网站优化网站建设栅格布局 网站设计
  • 网站建设销售前景网站手机开
  • 网站建站 用户注册北京网站建设方案报价
  • jsp做网站 案例网站模板 招聘
  • 德州建设银行兑换网站服务器网站跳转怎么做的
  • 金华专业做网站公司湖南网站建设服务
  • 企业网站设计沈阳苏宁电器网站建设特点分析
  • 建设工程类公司网站易语言可以做api网站对接吗
  • 青岛做网站皆赴青岛博wordpress 数据库 备份
  • 外贸公司网站空间哈尔滨seo优化专注
  • 建筑行业综合查询平台优化推广联盟
  • 北京管庄网站建设公司开平网站制作
  • 如何做销售直播网站最专业网站建设
  • 太原市住房和城乡建设局的网站首页网络推广服务外包公司
  • 湘icp备 网站建设 农业 湖南稿定设计免费版
  • 公司网站推广方法陕西省住房建设厅官网
  • 网站关键词排名突然没了无锡企业网站建设报价
  • 找做网站的人网站改版 301跳转
  • 网站备案一次就可以了吧营销管理培训课程
  • 怎么做网站背景专做民宿预定的网站
  • wordpress安装谷歌分析代码建网站seo
  • 百度外卖网站建设与维护方法建设 银行网网站
  • 小程序开发定制开发上海优化价格
  • 来宾住房和城乡建设局网站做外贸推广要做哪些平台
  • 无锡建设网站制作wordpress 知乎
  • 动漫网站源码免费怎么怎么做网站