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

【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。如果所有关节速度都小于此阈值,则认为机器人处于静止状态。


http://www.kler.cn/a/613223.html

相关文章:

  • YOLOv8 中的损失函数解析
  • 构建可扩展、可靠的网络抓取、监控和自动化应用程序的终极指南
  • 【天梯赛】L2-004 这是二叉搜索树吗(经典问题C++)
  • Go语言中regexp模块详细功能介绍与示例
  • 什么是架构,以及当前市面主流架构类型有哪些?
  • X.509证书与证书请求生成原理及其应用(C/C++代码实现)
  • STM32基础教程——旋转编码器测速
  • Mysql的单表查询和多表查询
  • 记录一次TDSQL事务太大拆过binlog阈值报错
  • Python+requests实现接口自动化测试框架
  • JavaWeb——事务管理、AOP
  • [HCIA]网络基础
  • 使用 WSL + Ubuntu + Go + GoLand(VSCode) 开发环境配置指南
  • 人工智能-群晖Docker部署DB-GPT
  • OSI 七层模型和四层模型(TCP/IP 模型)
  • 【时时三省】(C语言基础)逻辑运算符和逻辑表达式
  • 最小生成树(蓝桥云课)
  • 从图神经网络入门到gcn+lstm
  • C#多线程并发控制
  • 科技赋能建筑业变革:中建海龙创新引领高质量发展新路径