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

2345网址大全设主页访问网站克隆镜像做关键字seo

2345网址大全设主页访问,网站克隆镜像做关键字seo,中信建设有限责任公司薛松,开源企业网站内容管理系统如是我闻: 终于让我给摸索出来了,在这里描述一下问题场景。 假使说我们有一个机械臂操作的任务,这样婶的 Isaac Lab | Push 我们想做多目标的任务,这时候需要向环境中添加第二个目标,像这样 Isaac Lab | Add target 那…

如是我闻: 终于让我给摸索出来了,在这里描述一下问题场景。

假使说我们有一个机械臂操作的任务,这样婶的

Isaac Lab | Push

我们想做多目标的任务,这时候需要向环境中添加第二个目标,像这样

Isaac Lab | Add target

那么就需要改动如下代码。

1. 添加新的目标命令

假如你的环境保留了IsaacLab他提供的的文件结构,像这样
在这里插入图片描述

我们应该有一个叫做 ****_env_cfg.py 的文件环境名,在lift环境里,有一个 lift_env_cfg.py,在reach 环境中,有一个reach_env_cfg.py。也许你有一个自己命名的文件,但是没有关系。

****_env_cfg.py 中,我们包装了如环境设置ObjectTableSceneCfg,目标命令CommandsCfg,动作空间ActionCfg,观察空间ObservationCfg,随机化事件EvetCfg,奖励函数RewardsCfg,终止条件TerminationsCfg等项

我们首先需要改动的在 ****_env_cfg.py 中,找到目标命令类CommandsCfg,他可能长这样

@configclass
class CommandsCfg:"""Command terms for the MDP."""object_pose = mdp.UniformPoseCommandCfg(asset_name="robot",body_name=MISSING,  # will be set by agent env cfgresampling_time_range=(5.0, 5.0),debug_vis=True,ranges=mdp.UniformPoseCommandCfg.Ranges(pos_x=(0.3, 0.7), pos_y=(-0.3, 0.3), pos_z=(0.0, 0.0), roll=(0.0, 0.0), pitch=(0.0, 0.0), yaw=(0.0, 0.0)),)

这里只写了一个目标命令object_pose,我们直接复制粘贴,可以得到

@configclass
class CommandsCfg:"""Command terms for the MDP."""object_pose = mdp.UniformPoseCommandCfg(asset_name="robot",body_name=MISSING,  # will be set by agent env cfgresampling_time_range=(5.0, 5.0),debug_vis=True,ranges=mdp.UniformPoseCommandCfg.Ranges(pos_x=(0.3, 0.7), pos_y=(-0.3, 0.3), pos_z=(0.0, 0.0), roll=(0.0, 0.0), pitch=(0.0, 0.0), yaw=(0.0, 0.0)),)object2_pose = mdp.UniformPoseCommandCfg(asset_name="robot",body_name=MISSING,  # will be set by agent env cfgresampling_time_range=(5.0, 5.0),debug_vis=True,ranges=mdp.UniformPoseCommandCfg.Ranges(pos_x=(0.3, 0.7), pos_y=(-0.3, 0.3), pos_z=(0.0, 0.0), roll=(0.0, 0.0), pitch=(0.0, 0.0), yaw=(0.0, 0.0)),)

这样我们就有两个目标命令了(傻笑)。

2. 将新的目标命令添加到观察空间中

还是在这个****_env_cfg.py 文件中,找到观察空间类ObservationCfg

@configclass
class ObservationsCfg:"""Observation specifications for the MDP."""@configclassclass PolicyCfg(ObsGroup):"""Observations for policy group."""joint_pos = ObsTerm(func=mdp.joint_pos_rel)joint_vel = ObsTerm(func=mdp.joint_vel_rel)object_position = ObsTerm(func=mdp.object_position_in_robot_root_frame)target1_object1_position = ObsTerm(func=mdp.generated_commands, params={"command_name": "object_pose"})# Add object2 position in robot root frameobject2_position = ObsTerm(func=mdp.object2_position_in_robot_root_frame)actions = ObsTerm(func=mdp.last_action)def __post_init__(self):self.enable_corruption = Trueself.concatenate_terms = True# observation groupspolicy: PolicyCfg = PolicyCfg()

这里我们需要添加新的target_object_position,所以object2_position后面会加一句。

@configclass
class ObservationsCfg:"""Observation specifications for the MDP."""@configclassclass PolicyCfg(ObsGroup):"""Observations for policy group."""joint_pos = ObsTerm(func=mdp.joint_pos_rel)joint_vel = ObsTerm(func=mdp.joint_vel_rel)object_position = ObsTerm(func=mdp.object_position_in_robot_root_frame)target1_object1_position = ObsTerm(func=mdp.generated_commands, params={"command_name": "object_pose"})# Add object2 position in robot root frameobject2_position = ObsTerm(func=mdp.object2_position_in_robot_root_frame)target2_object2_position = ObsTerm(func=mdp.generated_commands, params={"command_name": "object2_pose"})actions = ObsTerm(func=mdp.last_action)def __post_init__(self):self.enable_corruption = Trueself.concatenate_terms = True# observation groupspolicy: PolicyCfg = PolicyCfg()

当然这里使用的是我个人的一种情况举例,只是为了告诉老铁们如果添加了新的目标到环境里,不要忘了把他加到观察空间中哦!

3. 把body_name的名字传进去

事情是这样的,让我们回过头去看目标命令类的代码CommandsCfg

@configclass
class CommandsCfg:"""Command terms for the MDP."""object_pose = mdp.UniformPoseCommandCfg(asset_name="robot",body_name=MISSING,  # will be set by agent env cfgresampling_time_range=(5.0, 5.0),debug_vis=True,ranges=mdp.UniformPoseCommandCfg.Ranges(pos_x=(0.3, 0.7), pos_y=(-0.3, 0.3), pos_z=(0.0, 0.0), roll=(0.0, 0.0), pitch=(0.0, 0.0), yaw=(0.0, 0.0)),)object2_pose = mdp.UniformPoseCommandCfg(asset_name="robot",body_name=MISSING,  # will be set by agent env cfgresampling_time_range=(5.0, 5.0),debug_vis=True,ranges=mdp.UniformPoseCommandCfg.Ranges(pos_x=(0.3, 0.7), pos_y=(-0.3, 0.3), pos_z=(0.0, 0.0), roll=(0.0, 0.0), pitch=(0.0, 0.0), yaw=(0.0, 0.0)),)

他的body_name属性是没有(Missing)的,他的注释后面说 will be set by agent env cfg,会被agent的环境配置传进来,这就神奇了。

众所周知,agent的环境配置在这个文件夹下,以lift任务为例在这里插入图片描述
打开我们想更改的配置文件,我们能看到这样的代码

@configclass
class Franka2CubePushEnvCfg(Push2EnvCfg):def __post_init__(self):# post init of parentsuper().__post_init__()# Set Franka as robotself.scene.robot = FRANKA_PANDA_CFG.replace(prim_path="{ENV_REGEX_NS}/Robot")# Set actions for the specific robot type (franka)self.actions.body_joint_pos = mdp.JointPositionActionCfg(asset_name="robot", joint_names=["panda_joint.*"], scale=0.5, use_default_offset=True)self.actions.finger_joint_pos = mdp.BinaryJointPositionActionCfg(asset_name="robot",joint_names=["panda_finger.*"],open_command_expr={"panda_finger_.*": 0.04},close_command_expr={"panda_finger_.*": 0.0},)# Set the body name for the end effectorself.commands.object_pose.body_name = "panda_hand"

可以看到是在最后一行,他把panda_hand的名字传进来了, 所以我们要为新的目标命令也把名字传过去,修改后的代码会像

@configclass
class Franka2CubePushEnvCfg(Push2EnvCfg):def __post_init__(self):# post init of parentsuper().__post_init__()# Set Franka as robotself.scene.robot = FRANKA_PANDA_CFG.replace(prim_path="{ENV_REGEX_NS}/Robot")# Set actions for the specific robot type (franka)self.actions.body_joint_pos = mdp.JointPositionActionCfg(asset_name="robot", joint_names=["panda_joint.*"], scale=0.5, use_default_offset=True)self.actions.finger_joint_pos = mdp.BinaryJointPositionActionCfg(asset_name="robot",joint_names=["panda_finger.*"],open_command_expr={"panda_finger_.*": 0.04},close_command_expr={"panda_finger_.*": 0.0},)# Set the body name for the end effectorself.commands.object_pose.body_name = "panda_hand"self.commands.object2_pose.body_name = "panda_hand"

4. 设计新的奖励函数

这一步就说不明白了,因为大家搓出来的任务都不大一样。但终归我们加了新的目标,是为了做新的强化学习训练的,那就又得为新的目标更改新的奖励函数。

但是通过上面的步骤,新的目标标记会出现在环境中在这里插入图片描述就是这样

非常的有品

以上

http://www.yayakq.cn/news/770109/

相关文章:

  • 做公司网站每年多少钱广州网站设计公司济南兴田德润o简介图片
  • 经营网站需要注意什么seo教程网站
  • 网站的首屏 一屏 二屏是什么意思做网站好公司哪家好
  • 做外贸的免费网站如何设计一个网页问卷
  • 张家界建设网站的公司单页网站域名
  • 网站模板怎么设计自助式建站平台
  • 郓城网站制作网站的权重是什么意思
  • 内网网站建设所需硬件设备衡水提供网站制作公司电话
  • 专业建站公司加盟企业没有网站怎么做seo优化
  • 邯郸大网站企业设计网站
  • 网上做任务的网站数据库wordpress
  • 常用网站布局台州椒江网站制作公司
  • 网站建设 学生作业中国人自己的空间站
  • 域名申请证书快速整站优化
  • 好的营销网站设计公司wordpress小工具九宫格
  • 百度网站是怎么做的网站服务器租用注意事项
  • 工业信息化部网站备查询网站建设规划申请
  • 建设网站的叫什么职位旅游商业网站策划书
  • 中国建设银行网站对公业务流程国际新闻稿件
  • 高端大气的企业网站模板网页微信下载
  • 别人是怎么建设网站的企业网站建设方案如何
  • 足球比分网站建设手机配件网站模板
  • 用外国人的照片做网站网站文章的作用
  • 网站开发 认证国家企业公司网
  • 那个网站做毕业设计松江工业区网站建设
  • app 网站 同时做大丰做网站哪家最好
  • 专营网站建设1g1m wordpress
  • 网站模板 带手机端北京市建设工程审核网站
  • 浙江住房和建设网站wordpress 教程
  • 济南金融行业网站开发网页设计与制作模板免费