辽阳专业网站建设品牌,wordpress去视频广告,wordpress 常用 代码,wordpress内链插件1 前言
最近在使用robosuite时,需要在仿真环境中可视化物体的目标位置,从而方便观察训练情况,可视化的物体有以下要求:
形状尺寸与操作的物体一样半透明只有visual,不与场景其他物体有碰撞可以在每次step后设置位置,且固定在设定的位置,不受重力影响
2 方法
找了半天,最终确…1 前言
最近在使用robosuite时,需要在仿真环境中可视化物体的目标位置,从而方便观察训练情况,可视化的物体有以下要求:
形状尺寸与操作的物体一样半透明只有visual,不与场景其他物体有碰撞可以在每次step后设置位置,且固定在设定的位置,不受重力影响
2 方法
找了半天,最终确定了基本思路:
在环境reset时,初始化一个与操作物体的形状尺寸一样的物体,可以加在xml模型,或通过robosuite内置的模型API,设置模型只有visual,颜色半透明.在任务每次step时,设置物体的位置
以下代码只用于robosuite中,原始mujoco不可用: (1) 初始化物体并载入任务仿真场景
# 初始化操作物体
self.cube BoxObject(namecube,density100,size_min[0.03, 0.03, 0.03],size_max[0.06, 0.06, 0.06],rgba[1, 0, 0, 1],materialredwood,
)
# 初始化仅可视化的目标物体
self.cube_target BoxObject(namecube_target,sizeself.cube.size,rgba[1, 0, 0, 0.5],obj_typevisual,jointsNone,
)
...
self.model ManipulationTask(mujoco_arenamujoco_arena,mujoco_robots[robot.robot_model for robot in self.robots],mujoco_objects[self.cube, self.cube_target],
)(2) 在任务每次step时,设置物体的位置
cube_target_id self.env.sim.model.body_name2id(cube_target_main) # 获取仅可视化的目标物体的id
self.env.sim.model.body_pos[cube_target_id] np.array([0, 0, 1]) # 设置新位置
self.env.sim.model.body_quat[cube_target_id] np.array([1, 0, 0, 0]) # 设置新四元数 wxyz3 可视化结果
图中,桌子上的红色木纹方块是cube,更高的半透明红色方块是cube_target.