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

网站代码优化方法郑州关键词seo

网站代码优化方法,郑州关键词seo,最新时事政治热点汇总,成都网络维护机器人控制可以直接给定关节角进行驱动实现功能,完成任务,但是关节角不是很直观而且做teleoperation或者是结合VLA模型时候,用eef pose会更符合直觉一些,isaacsim用的是LulaKinematics,因为IsaacLab现在是ETHZ的团队在…

机器人控制可以直接给定关节角进行驱动实现功能,完成任务,但是关节角不是很直观而且做teleoperation或者是结合VLA模型时候,用eef pose会更符合直觉一些,isaacsim用的是LulaKinematics,因为IsaacLab现在是ETHZ的团队在开发,所以他们倾向于differentialIK和OSC(operational space controller),最新版本的IsaacLab也更新了DifferentialIKController的包,终于不用自己照着isaacgym重新写包了,官方连接在这里:

Using a task-space controller — Isaac Lab Documentation

我把代码直接粘贴过来了,官方文档里对每个代码块都有解释,这个代码风格和direct workflow RL很像,建议亲手复现一下有助于后续开发自己的强化学习环境,后续我会更新这个文档,添加我个人开发经验进来:

# Copyright (c) 2022-2025, The Isaac Lab Project Developers.
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause"""
This script demonstrates how to use the differential inverse kinematics controller with the simulator.The differential IK controller can be configured in different modes. It uses the Jacobians computed by
PhysX. This helps perform parallelized computation of the inverse kinematics... code-block:: bash# Usage./isaaclab.sh -p scripts/tutorials/05_controllers/run_diff_ik.py""""""Launch Isaac Sim Simulator first."""import argparsefrom isaaclab.app import AppLauncher# add argparse arguments
parser = argparse.ArgumentParser(description="Tutorial on using the differential IK controller.")
parser.add_argument("--robot", type=str, default="franka_panda", help="Name of the robot.")
parser.add_argument("--num_envs", type=int, default=128, help="Number of environments to spawn.")
# 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.app"""Rest everything follows."""import torchimport isaaclab.sim as sim_utils
from isaaclab.assets import AssetBaseCfg
from isaaclab.controllers import DifferentialIKController, DifferentialIKControllerCfg
from isaaclab.managers import SceneEntityCfg
from isaaclab.markers import VisualizationMarkers
from isaaclab.markers.config import FRAME_MARKER_CFG
from isaaclab.scene import InteractiveScene, InteractiveSceneCfg
from isaaclab.utils import configclass
from isaaclab.utils.assets import ISAAC_NUCLEUS_DIR
from isaaclab.utils.math import subtract_frame_transforms##
# Pre-defined configs
##
from isaaclab_assets import FRANKA_PANDA_HIGH_PD_CFG, UR10_CFG  # isort:skip@configclass
class TableTopSceneCfg(InteractiveSceneCfg):"""Configuration for a cart-pole scene."""# ground planeground = AssetBaseCfg(prim_path="/World/defaultGroundPlane",spawn=sim_utils.GroundPlaneCfg(),init_state=AssetBaseCfg.InitialStateCfg(pos=(0.0, 0.0, -1.05)),)# lightsdome_light = AssetBaseCfg(prim_path="/World/Light", spawn=sim_utils.DomeLightCfg(intensity=3000.0, color=(0.75, 0.75, 0.75)))# mounttable = AssetBaseCfg(prim_path="{ENV_REGEX_NS}/Table",spawn=sim_utils.UsdFileCfg(usd_path=f"{ISAAC_NUCLEUS_DIR}/Props/Mounts/Stand/stand_instanceable.usd", scale=(2.0, 2.0, 2.0)),)# articulationif args_cli.robot == "franka_panda":robot = FRANKA_PANDA_HIGH_PD_CFG.replace(prim_path="{ENV_REGEX_NS}/Robot")elif args_cli.robot == "ur10":robot = UR10_CFG.replace(prim_path="{ENV_REGEX_NS}/Robot")else:raise ValueError(f"Robot {args_cli.robot} is not supported. Valid: franka_panda, ur10")def run_simulator(sim: sim_utils.SimulationContext, scene: InteractiveScene):"""Runs the simulation loop."""# Extract scene entities# note: we only do this here for readability.robot = scene["robot"]# Create controllerdiff_ik_cfg = DifferentialIKControllerCfg(command_type="pose", use_relative_mode=False, ik_method="dls")diff_ik_controller = DifferentialIKController(diff_ik_cfg, num_envs=scene.num_envs, device=sim.device)# Markersframe_marker_cfg = FRAME_MARKER_CFG.copy()frame_marker_cfg.markers["frame"].scale = (0.1, 0.1, 0.1)ee_marker = VisualizationMarkers(frame_marker_cfg.replace(prim_path="/Visuals/ee_current"))goal_marker = VisualizationMarkers(frame_marker_cfg.replace(prim_path="/Visuals/ee_goal"))# Define goals for the armee_goals = [[0.5, 0.5, 0.7, 0.707, 0, 0.707, 0],[0.5, -0.4, 0.6, 0.707, 0.707, 0.0, 0.0],[0.5, 0, 0.5, 0.0, 1.0, 0.0, 0.0],]ee_goals = torch.tensor(ee_goals, device=sim.device)# Track the given commandcurrent_goal_idx = 0# Create buffers to store actionsik_commands = torch.zeros(scene.num_envs, diff_ik_controller.action_dim, device=robot.device)ik_commands[:] = ee_goals[current_goal_idx]# Specify robot-specific parametersif args_cli.robot == "franka_panda":robot_entity_cfg = SceneEntityCfg("robot", joint_names=["panda_joint.*"], body_names=["panda_hand"])elif args_cli.robot == "ur10":robot_entity_cfg = SceneEntityCfg("robot", joint_names=[".*"], body_names=["ee_link"])else:raise ValueError(f"Robot {args_cli.robot} is not supported. Valid: franka_panda, ur10")# Resolving the scene entitiesrobot_entity_cfg.resolve(scene)# Obtain the frame index of the end-effector# For a fixed base robot, the frame index is one less than the body index. This is because# the root body is not included in the returned Jacobians.if robot.is_fixed_base:ee_jacobi_idx = robot_entity_cfg.body_ids[0] - 1else:ee_jacobi_idx = robot_entity_cfg.body_ids[0]# Define simulation steppingsim_dt = sim.get_physics_dt()count = 0# Simulation loopwhile simulation_app.is_running():# resetif count % 150 == 0:# reset timecount = 0# reset joint statejoint_pos = robot.data.default_joint_pos.clone()joint_vel = robot.data.default_joint_vel.clone()robot.write_joint_state_to_sim(joint_pos, joint_vel)robot.reset()# reset actionsik_commands[:] = ee_goals[current_goal_idx]joint_pos_des = joint_pos[:, robot_entity_cfg.joint_ids].clone()# reset controllerdiff_ik_controller.reset()diff_ik_controller.set_command(ik_commands)# change goalcurrent_goal_idx = (current_goal_idx + 1) % len(ee_goals)else:# obtain quantities from simulationjacobian = robot.root_physx_view.get_jacobians()[:, ee_jacobi_idx, :, robot_entity_cfg.joint_ids]ee_pose_w = robot.data.body_state_w[:, robot_entity_cfg.body_ids[0], 0:7]root_pose_w = robot.data.root_state_w[:, 0:7]joint_pos = robot.data.joint_pos[:, robot_entity_cfg.joint_ids]# compute frame in root frameee_pos_b, ee_quat_b = subtract_frame_transforms(root_pose_w[:, 0:3], root_pose_w[:, 3:7], ee_pose_w[:, 0:3], ee_pose_w[:, 3:7])# compute the joint commandsjoint_pos_des = diff_ik_controller.compute(ee_pos_b, ee_quat_b, jacobian, joint_pos)# apply actionsrobot.set_joint_position_target(joint_pos_des, joint_ids=robot_entity_cfg.joint_ids)scene.write_data_to_sim()# perform stepsim.step()# update sim-timecount += 1# update buffersscene.update(sim_dt)# obtain quantities from simulationee_pose_w = robot.data.body_state_w[:, robot_entity_cfg.body_ids[0], 0:7]# update marker positionsee_marker.visualize(ee_pose_w[:, 0:3], ee_pose_w[:, 3:7])goal_marker.visualize(ik_commands[:, 0:3] + scene.env_origins, ik_commands[:, 3:7])def main():"""Main function."""# Load kit helpersim_cfg = sim_utils.SimulationCfg(dt=0.01, device=args_cli.device)sim = sim_utils.SimulationContext(sim_cfg)# Set main camerasim.set_camera_view([2.5, 2.5, 2.5], [0.0, 0.0, 0.0])# Design scenescene_cfg = TableTopSceneCfg(num_envs=args_cli.num_envs, env_spacing=2.0)scene = InteractiveScene(scene_cfg)# Play the simulatorsim.reset()# Now we are ready!print("[INFO]: Setup complete...")# Run the simulatorrun_simulator(sim, scene)if __name__ == "__main__":# run the main functionmain()# close sim appsimulation_app.close()

跑一下看看效果:

##安装IsaacLab时候没有用conda搞虚拟环境用下面的代码:./isaaclab.sh -p scripts/tutorials/05_controllers/run_diff_ik.py##有虚拟环境的可以之间python运行,可以调整并行环境数量保证运行流畅
python scripts/tutorials/05_controllers/run_diff_ik.py --num_envs 16

http://www.dtcms.com/wzjs/367550.html

相关文章:

  • 网站设计大概收费范围搜索引擎优化的方法与技巧
  • 赣州做网站的公司做搜索引擎推广多少钱
  • 上海网站设计公司电话免费行情网站大全搜狐网
  • 网站开发教程 布局拉新十大推广app平台
  • 网页上传 网站天津seo数据监控
  • 织梦瀑布流网站模板seo优化器
  • 威海做网站推广的企业线上运营推广
  • 网站建设大德通众包优化一下
  • 嘉兴 做企业网站个人怎么在百度上做推广
  • 福州做网站互联网公司迅雷磁力链bt磁力天堂
  • wordpress心情评论插件网站优化排名操作
  • 政府网站用的什么cms系统淘宝关键词排名怎么查
  • wordpress 翻页设置全国推广优化网站
  • asp网站制作教程中国培训网的证书含金量
  • 手机版网站开发公司磁力猫引擎入口
  • 在哪找做网站的科学新概念seo外链
  • wordpress上传vps后安装seo可以从哪些方面优化
  • 做网站对外贸有什么用微信信息流广告投放
  • 5000元做网站值么seo搜索引擎优化入门
  • wordpress 站点主页推广官网
  • 腾讯云网站制作教程网络营销推广策划案例
  • 跨境独立站建站平台有哪些网站制作报价表
  • 关键词排名优化公司哪家好云南seo网络优化师
  • 网站开发项目私活seo优化网站教程百度
  • 海宏集团网站建设各大免费推广网站
  • 上海建设工程管理网站外链平台有哪些
  • 南京网站关键词优化百度客户端电脑版下载
  • 网站logo下载重庆网站建设软件
  • 南宁律师网站建设产品推广文案
  • 犀牛做网站的公司怎么做网页宣传