乐聚社区
标题: BOTEC虚拟赛任务场景缺陷报告及改进建议 [打印本页]
作者: lss 时间: 2021-10-25 23:53
标题: BOTEC虚拟赛任务场景缺陷报告及改进建议
本帖最后由 lss 于 2021-10-25 23:53 编辑
显然botec的场景有多个问题,其中大多数同样的问题已经在AIAC的场景中解决过了,但是botec这边没有动静。
1. 计时代码逻辑问题
简单的说,botec中的计时逻辑为成功条件达到时计时不更新,否则计时更新。这意味着如果先达到成功条件,再破坏成功条件,就相当于没有完成。比如task01,如果你按的太猛导致按钮又弹起来,计时就会继续。这不太好。
解决方案:参考AIAC场景代码思路,设置一个complete_flag,初始置0,达到成功条件时置1,但是不达到也不会置0. 当complete_flag为1时不更新计时。不过如果设计初衷即是当前这样,也可以不改。
2. task06判定代码错误问题
场景的判定代码,即Talos子代码57行: if (position[2] > 0.02) 错误,应该是3,因为lua的数组是从1开始数的。
解决方案:改成3,参考task05.
3. 阀门计算碰撞的模型问题
botec的task03和task04场景中,阀门与机器人手爪的碰撞交互行为看起来很奇怪,很不精确的样子。这是因为阀门的模型本身不是凸形状,而场景选择的仿真物理引擎Newton只支持对凸形状的仿真碰撞计算,因此在计算碰撞时会用模型的凸包代替(CoppeliaSim说的)。这导致仿真行为和现实世界,和人的预想存在很大差异,非常不优雅。
解决方案:参考AIAC场景的模型,应该把阀门的模型替换成一个组合形状,其中每一个子形状都是凸的。这一步的做法有不少,也许可以导入模型时就导入几个组件再在coppeliasim拼起来,或者对当前模型进行凸包分解,或者直接把AIAC场景中的模型拖过来,再改颜色。总之办法很多。
这个任务我还没实际尝试,只是基于知识和"关闭阀门"任务的经验。由于多种原因,采用纯动力学仿真的方法模拟抓取瓶子的做法是不明智的。最主要的原因是仿真行为将和现实世界有很大差异,原因有同问题2的凸包,以及场景中Talos手爪其实是凸形状,让我怀疑仿真场景中很难抓紧瓶子。即使解决上述问题,其代价可能是大量计算资源消耗在计算手爪和瓶子的动力学交互,这仍是很不明智的。目前来说,最主要的问题是手爪很可能难以抓紧瓶子。
解决方案:参考AIAC的task07和task08,用代码控制瓶子的行为,使瓶子看起来被爪子抓住了一样。
5. "推开障碍"任务的碰撞计算问题
"推开障碍"任务指task07和task08. 类似问题2和问题3,虽然小推车很大,推起来很容易,但是当前情况下推的行为看起来可能会有点怪。
解决方案:把小推车的形状改为凸形状的组合也许是可行的。但在这种情况下,虽然碰撞看起来更精确,但可能会给题目本身带来额外的难度。因为Talos的手臂只有3个关节,不能任意控制手爪的姿态,两只手横握横杆似乎是十分困难的。因此实际做法需要测试和权衡。
6. "取走危险化合物"任务文字描述和实际判断规则不匹配问题
"取走危险化合物"任务指task05和task06. 文字描述说"仿真环境会指定机器人拿走特定颜色的化合物",但是实际上环境没有发布任何明确的指定机器人应当拿走哪一个锥形瓶的信息。判定代码表明,成功的条件是拿走最右边的瓶子并扔进桶里(或者桶外面,其实只要瓶子比桶低就行,因为没有约束x和y方向)。这意味着你总是应该选择最右边的瓶子,并且忽略关卡的文字描述。显然这不优雅,不论是实际的判定规则,还是实际与文字描述不符这一点。
解决方案:如果使文字描述与实际一致,最简单的方法是修改文字描述。但是这个方法很不优雅,优雅的方法是修改场景以符合文字描述,也就是向机器人指定哪一个瓶子应该被拿走。一个方法是像AIAC的task07和task08这样,把其它的几个瓶子藏到桌子后方。我认为更好的一个方法是随机决定要拿走的瓶子,并以发布ros消息的方式向机器人通告。其中细节,如消息的名字,内容代表的含义在文字描述中添加。
7. "推开障碍"任务文字描述和实际判断规则不匹配问题
如一些选手反映的这样,文字描述称需要推过标志线,但是地上看不到标志线。判定代码表明确实需要向前推一段,但是"标志线"只存在于代码逻辑中,实际并不存在。
解决方案:增加一条标志线,或者修改文字描述,说"需要推一段距离,直到判定成功"或者含糊其辞,不说要推多少距离。
8. 深度图像控制信息错误问题
问题描述和解决方案在这个帖子已经描述:深度图像读取问题的帖子。显然出题者已经知道如何解决,可是出题者只建议选手自己修改,但是距前面提到的帖子发布接近一个月,官方的场景也没改。虽然可以在接收端处理,但是这种错误显得出题者很不专业。
解决方案:照着改就行。另外,建议不要改为以米为单位,而是返回归一化的深度值。如果修改为以米为单位,请明确通知参赛选手,包括在微信群通知。
以上为我发现并总结的任务场景问题及改进建议,值得出题者和参赛选手重视。希望主办方尽早解决,不要摆烂。
作者: wukunjie 时间: 2021-10-27 10:44
好的,已经了解该贴的各种问题以及感谢提出的建议,我们会尽快给出解答;你们可以在这个项目里面查看lssue来了解我们的解决进度
作者: wukunjie 时间: 2021-10-27 10:57
你们可以在相关项目里面查看lssue来了解我们的解决进度 ,相关项目的链接:https://www.lejuhub.com/roban-feedback/qa/-/issues
作者: wukunjie 时间: 2021-11-15 17:18
所有问题都已经修复并在相关项目里作回复,大家可以进入链接: https://www.lejuhub.com/roban-feedback/qa/-/issues 里查看
作者: fzy 时间: 2022-10-19 16:04
你好,他里面提到的手抓抓取化合物有点矫枉过正了,目前的情况是手抓到瓶子后即使悬浮在安全桶上张开爪瓶子也不会掉下去,而会一直跟随手部动作回到大腿的位置,导致判断无法生效。
欢迎光临 乐聚社区 (https://bbs.lejurobot.com/) |
Powered by Discuz! X3.4 |