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

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

相关文章:

  • 解决HuggingFaceEmbeddings模型加载报错:缺少sentence-transformers依赖包
  • 作业(6)
  • WebGL图形编程实战【3】:矩阵操控 × 从二维到三维的跨越
  • 将网页操作的脚本自动保存成yaml ,然后修改使用
  • vueRouter的hash模式跟history的区别
  • pip show protobuf ValueError: invalid literal for int() with base 10: ‘‘
  • 小迪安全109-php模型动态调试,反序列化,变量覆盖,tp框架,原生pop链
  • 第30周Java分布式入门 分布式基础
  • C++20:make_shared_for_overwrite与make_unique_for_overwrite
  • 关于deepseek
  • 自动化构建攻略:Jenkins + Gitee 实现 Spring Boot 项目自动化构建
  • 免费OpenAI gpt-4o-mini-tts API调用(已开源)
  • 如何快速解决django存储session变量时出现的django.db.utils.DatabaseError错误
  • 在Windows下VSCodeSSH远程登录到Ubuntu
  • MySQL多表查询核心指南
  • Unity程序嵌入Qt后点击UI按钮Button没有反应
  • 上海芯片企业列表
  • 豪越消防一体化安全管控平台:消防管理智能化
  • 《深度剖析SQL之WHERE子句:数据过滤的艺术》
  • uni-app:指引蒙层
  • 临朐门户网站/下载百度2023最新版安装
  • 网站建设操作系统/推广赚钱软件排行
  • 做图素材的网站有哪些/新媒体运营是做什么
  • wordpress 可以干嘛/seo关键词首页排名
  • 湛江大型网站模板建设/免费的模板网站
  • 惠民县建设局网站/网络运营怎么学