【ManiSkill】环境success条件和reward函数学习笔记

1. “PickCube-v1”

info["success"]:用于指示任务是否成功完成

布尔型张量,在环境的evaluate()方法中计算并返回:

"success": is_obj_placed & is_robot_static

这确保了机器人不仅能将物体准确放置在目标位置,而且能够稳定地保持静止,模拟现实世界中的稳定抓取和放置任务;

状态量说明
is_obj_placed立方体的位置与目标位置(绿色球体)之间的
L2距离≤goal_thresh(0.025m)
is_robot_static机器人的关节速度小于0.2

is_obj_placed:判断物体是否被成功放置在目标位置

is_obj_placed = (
    torch.linalg.norm(self.goal_site.pose.p - self.cube.pose.p, axis=1)
    <= self.goal_thresh
)

具体功能:

  • 通过计算红色立方体与绿色目标球体之间的L2距离来判断
  • 当距离小于或等于 goal_thresh(0.025m)时返回 True
  • 作为任务成功条件的一部分(还需要机器人静止)
  • 在奖励函数中用于增强静态奖励部分

在evaluate函数中的应用:

  • is_robot_static 相结合判断任务是否成功完成
  • 成功放置物体但机器人未静止不算作任务成功

在奖励计算中的应用:

  • 当物体放置在目标位置时,增加静态奖励;
  • 当满足成功条件时(物体放置且机器人静止),给予成功奖励值5;[code]

is_robot_static:判断机器人是否处于静止状态

当机器人成功抓取立方体并将其移动到目标位置后,系统会检查机器人是否稳定静止,以确保任务完成的稳定性和质量。

is_robot_static = self.agent.is_static(0.2)

该变量通过调用 BaseAgent 类中的 is_static() 方法实现,具体检查机器人的关节速度(“q velocity”)是否低于0.2。如果所有关节速度都小于此阈值,则认为机器人处于静止状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值