robosuite-自建夹具bug

2024-05-28 14:36
文章标签 bug 自建 夹具 robosuite

本文主要是介绍robosuite-自建夹具bug,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

场景:

robosuite 中创建自己的夹具

问题描述

Traceback (most recent call last):File "collect_human_demonstrations_auto.py", line 436, in <module>dataset_states_to_obs(output_filename, save_name+"-obs.hdf5")File "/home/idm/Shares/imitation/haier_environments/my_envs/utils/dataset_states_to_obs.py", line 221, in dataset_states_to_obstraj = extract_trajectory(File "/home/idm/Shares/imitation/haier_environments/my_envs/utils/dataset_states_to_obs.py", line 85, in extract_trajectoryobs = env.reset_to(initial_state)File "/home/idm/Shares/imitation/robomimic/robomimic/envs/env_robosuite.py", line 157, in reset_toxml = self.env.edit_model_xml(state["model"])File "/home/idm/Shares/imitation/robosuite/robosuite/environments/base.py", line 536, in edit_model_xmlprint("old_path:", old_path)
ValueError: max() arg is an empty sequence

原因分析:

下列代码中有相应的代码路径及代码解释,其中,源码中存在一个 val == robosuite 的操作,即所有的文件路径中都需要包含 robosuite 这个词(没有查明原因),考虑这个ind 参数是与 new_pathold_path 相关,所以就动态的print 了一下,发现这俩变量是恒等的,暂时没有领悟到作者这样作的意图是什么;

 def edit_model_xml(self, xml_str):"""This function edits the model xml with custom changes, including resolving relative paths,applying changes retroactively to existing demonstration files, and other custom scripts.Environment subclasses should modify this function to add environment-specific xml editing features.Args:xml_str (str): Mujoco sim demonstration XML file as stringReturns:str: Edited xml file as string"""path = os.path.split(robosuite.__file__)[0]path_split = path.split("/")# replace mesh and texture file pathstree = ET.fromstring(xml_str)root = treeasset = root.find("asset")meshes = asset.findall("mesh")textures = asset.findall("texture")all_elements = meshes + texturesfor elem in all_elements:old_path = elem.get("file")if old_path is None:continueold_path_split = old_path.split("/")import ipdb; ipdb.set_trace()print("old_path:", old_path)print("old_path_split:", old_path_split)ind = max(loc for loc, val in enumerate(old_path_split) if val == "robosuite")  # last occurrence indexnew_path_split = path_split + old_path_split[ind + 1 :]new_path = "/".join(new_path_split)# print("new_path:", new_path)# if new_path == old_path:# print("new_path == old_path")# else:# print("new_path != old_path")# elem.set("file", new_path)elem.set("file", old_path)return ET.tostring(root, encoding="utf8").decode("utf8")

解决方案:

既然是恒等的,那就直接删掉就好,修改后的代码如下:

 def edit_model_xml(self, xml_str):"""This function edits the model xml with custom changes, including resolving relative paths,applying changes retroactively to existing demonstration files, and other custom scripts.Environment subclasses should modify this function to add environment-specific xml editing features.Args:xml_str (str): Mujoco sim demonstration XML file as stringReturns:str: Edited xml file as string"""path = os.path.split(robosuite.__file__)[0]path_split = path.split("/")# replace mesh and texture file pathstree = ET.fromstring(xml_str)root = treeasset = root.find("asset")meshes = asset.findall("mesh")textures = asset.findall("texture")all_elements = meshes + texturesfor elem in all_elements:old_path = elem.get("file")if old_path is None:continueelem.set("file", old_path)return ET.tostring(root, encoding="utf8").decode("utf8")

这篇关于robosuite-自建夹具bug的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010841

相关文章

JavaBug系列-解决SpringBoot返回Xml结构的问题

JavaBug系列之SpringBoot返回Xml结构的问题 Java医生一、关于错误信息二、如何解决问题 Java医生 本系列记录常见Bug,以及诊断过程和原因 作者:Java医生 教学: Java企业项目辅导,专注于辅导新入职员工,解决各种问题! V:study_51ctofx 一、关于错误信息 如图,SpringBoot请求返回Xml格式信息 通过以上信息分析,

JavaBug系列- Failed to load driver class com.mysql.cj.jdbc.Driver in either of HikariConfig class load

JavaBug系列之Mysql驱动问题 Java医生一、关于错误信息二、如何解决问题 Java医生 本系列记录常见Bug,以及诊断过程和原因 Java/一对一零基础辅导/企业项目一对一辅导/日常Bug解决/代码讲解/毕业设计等 V:study_51ctofx 一、关于错误信息 APPLICATION FAILED TO START Description: Fai

【解决bug之路】npm install node-sass(^4.14.1)连环报错解决!!!(Windows)

有关node-sass的深入分析可参考:又报gyp ERR!为什么有那么多人被node-sass 坑过? 主要有如下三方面错误,请自查: 1.node,npm版本需与node-sass版本匹配,像node-sass(^4.14.1)就得node 14.x版本才可以,node 16不行 gyp ERR! build error15 gyp ERR! stack Error: `

排查 MyBatis XML 配置中的 IF 语句与传值名称不匹配的 Bug

文章目录 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 前言,在改一个bug得时候发现一个有意思得问题,就是mybatis得xml中if判断得问题,传值名字不匹配依旧可以进行判断,如下图 传值userName,但是有意思得事情出现了,进了if,并且没有报错,尝试了两次都是这

彻底解决魅族手机无法彻底卸载应用的bug

使用Flyme系统的同学可能会遇到一个问题: 卸载了某些软件(例如通过开发者模式调试安装的应用)后,实际这个应用还残留在系统,当你用低版本或者其他签名的apk覆盖安装的时候会提示“安装失败”,要求你卸载后重新安装。 可是无论你从应用列表寻找还是清理垃圾,都根本找不到这个应用。 闹鬼?这个bug一直伴随着flyme,可怜工程师们竟然一个都没发现。 今天笔者教大家一招解决这个问题。

今天做了freemaker 导出word文档 的bug修复,解决 \n换行 问题

结合Freemaker导出文件 public void exportSimpleWord() throws Exception{// 要填充的数据, 注意map的key要和word中${xxx}的xxx一致Map<String,String> dataMap = new HashMap<String,String>();dataMap.put("username", "张三");dataMap.

【软件测试】软件测试-----什么是Bug?Bug是如何分级的?Bug的生命周期是怎样的?如何描述一个Bug?

博客目录 一.软件测试的生命周期二.BUG的定义和级别2.1 bug的概念.2.2 如何描述一个bug.2.3bug的级别2.3.1 bug分级的意义.2.3.2 bug的四种级别. 三.BUG的生命周期.四.当与开发人员发生冲突该如何处理(高频面试)五.总结 一.软件测试的生命周期 软件测试贯穿于软件的整个生命周期,针对这句话我们一起来看一下软件测试是如何贯穿软件的整个生命周

【ListView】有关填充bug

假设要实现如下效果 ListView里若使用RelativeLayot则会出现错误 得不到垂直线的填充 线性布局的高度设置为match_parent会使高度为0,必须给它一个固定值,比如20dp ListView建议使用LinearLayout在最外层,而最外层的宽高无论如何设置都无法确定的,建议第二层也使用linearLayout来布局 【实现

ListView数据只有显示不全bug

Android编程中,ScrollView嵌套ListView时,会无法正确的计算ListView的大小。解决的办法有如下两种: 解决方案1: 直接把包含ListView控件的ScrollView控件从布局文件中去除,留下ListView控件,这是最简单快捷的解决办法,如果一定要在ScrollView中包含ListView,则参考解决方案2:

ScrollView嵌套listview滑动位置底部bug

三种方案,个人推荐第三种: 1 sv.fullScroll(ScrollView.FOCUS_UP); 2 sv.setScrollY(0); 3 sv.smoothScrollTo(0,20); 滑动冲突解决listView: public class ListViewForScrollView extends ListView {public ListVie