机器人识别本科论文--基于windows的家庭服务机器人仿真(编辑修改稿)内容摘要:

goto(obj1):表示要求机 器人移动到 obj的位置。 pickup(obj1):表示手爪拿起 size属性为 small的 obj1, 最终状态为 obj1在机器人的盘子或手爪中。 putdown(obj1):表示将 机器人的盘子或手爪中的 obj1放下, 最终状态为 obj1不在机器人的盘子或手爪中。 opendoor(obj1):表示机器人打开 obj1的门, 最终状态为 obj1的门开着。 putin(obj1, obj2):表示机器人将 size属性为 small的 obj1放到 size属性为 big的 obj2的内部, 最终状态为 obj1在 obj2的内部 , 并且 obj2 处于关闭状态。 命令中 info定义如下: info=on(obj1,obj2)/near(obj1,obj2)/onplate()/inside(obj1)/dooropen(obj1)。 near(obj1, obj2): 表示物体 size属性为 small的 obj1在 size属性为 big的 obj2旁边。 即obj1与 obj2 位置 属性 相同。 10 inside(obj1, obj2): 表示 size属性为 small的 obj1在 size属性为 big的 obj2 里面。 dooropen(obj):表示物体 obj 的门处于打开状态。 命令中 cons定义如下: cons = not task/ not info / not not info not info:表示在 整个命令执行过程中 , info 所描述的情况都禁止出现。 not not info:表示在 整个命令执行过程中 , info 所描述的情况都必须保 持原有状态。 自然语言任务 自然语言交互 是 用户用 特 的英语 定 词汇来表达任务描述 的方式 [4]。 例如: “ Give me the green cup which is on the table.”,“The green book is on the bed.”, “The cup which is green is near the table.”, “There must be a cup in the cupboard.”.比赛中自然语言可以出现的词汇如 表 21所示 表 21 词汇表 词汇类型 词汇 代词 me 冠词 a、 an、 the 助动词 must 动词 do、 be、 give、 put、 go、 pick、 open 副词 there、 not 名词 plate、所有物体种类 在仿真过程中,使用很少的的词汇避免了复杂的环境场景。 代词只有用户 “me”。 对于任务描述中的目标,一般用祈使句表达,例如:“ Go to the bed.”,“Pick up the bottle which is green.”。 其中主动动词含义解释如表 22 表 22 主动动词含义 对于补充信息,用陈述句表达,一般为 “A is on/near/next to/inside B” 或者 “There is A on/near/next to/in B” 的形式, 他们同为 A和B 的位置属性相同 ,除了 B 为 plate 的情况,此时解释为 A 在 机器人的盘子里。 任务描述中约束用“ Do not …” ,“ There must (not) be … ”,或者“„ must(not) be …” 的方式表达。 “Do not” 后面一般接任务目标,例如“ Do not pickup the red cup”, “Do not put the green bottle on the table.”。 “There must (not) be” 后面一般 接信息描述。 仿真评分标准 一般情况下,一个任务集包含很多条命令,每执行一条命令计分器根据完成任务过程中维护的约束去记分。 正常情况下,完成一个命令获得十分,维护一个约束获得五分,完成一个补充信息十分,执行一次 move减 去三分,执行其他原子动作减一分。 动词 用法含义 give 一般用法为 “give somebody A”或“ give A to somebody”在指令交互中 转 为 give(human, A) put 一般用法为 “put A in/on/near/next to/down to B”, 在指令交互中表示为 puton(A,B)/putin(A,B)/putdowm(A) go 一般用法为“ go to A” 在指令交互中表示为 goto(A) pick 一般用法为“ pick up A” 在指令交互中表示为 pickup(A) open 一般用法为“ open A” 在指令交互中表示为 opendoor(A)。 11 问题得分 = 10乘以 完成的目标数目 + 5乘以 维护的约束数目 乘以 sgn(完成的目标数目 )扣去 3乘以 move 行动个数 减去 其他行动个数。 仿真比赛平台 仿真过程中 使用 ChallengeServer 作为比赛平台 ChallengeServer 负责管理比赛问题集(场景描述和任务描述),在比赛中调用参赛程序,使其在规定的时间( 5 秒)内对一个问题求解,并对输出的规划结果打分,最后按总分给所有参赛程序 [13]。 各参赛程序的接口部分用 C++ 实现,需要继承 Plug 类,实现相应的接口函数,并生成动态链接库( dll 文件)。 ChallengeServer 通过加载动态链接库来调用参赛程序。 为了方便调试, ChallengeServer 源代码 res 文件夹包含一些场景描述和任务描述样例。 比赛平台将在 Window XP 系统下运 行,比赛所用机器配置如下: CPU: AMD Athlon(tm) II X4 620 Memory: 2GB ChallengeServer 在 Windows XP 系统 Visual Studio 2020 下用 C++ 开发,目前只支持装有 VS2020 的 Windows 系统,因此要运行平台,需要先安装 VS2020 ChallengeServer 通过加载各参赛队伍生成的动态链接库( dll 文件),来调用参赛程序。 参赛程序需要继承 Plug 类,并实现相应的接口函数。 可以参照 ChallengeServer 源代码中 sample 文件夹下代码。 具体细节如下: planner/ 文件,构造 Plug 类的子类。 Plug 类构造函数的参数。 Plan()函数,实现规划程序。 对于每个问题,平台将调用 Plan()函数,给予 5 秒的计算时间。 GetTestName(const char* amp。 dname, const char* amp。 tname)函数,获得记录当前场景描述的文件名 dname 和记录当前任务描述的文件名 tname。 ,来输出相应的规划结果。 ,来输出相应的规划结果。 在测试开始前有数需要初始化,可重载 Init() 函数实现。 ,可重载 Fini() 函数实现。 EXPORT,参数为相应的类名,将工程配置成生成动态链接库的方式,即可将相应的程序打包成平台可调用的动态链接库 3 编程动作序列规划 机器人在仿真环境内在规定时间里根据场景描述和任务描述规划出结果,也就是原子动作序列。 Plateform 中的评价程序会更据此原子动作序列与需要完成的任务做对比,并根据任务的完成效果来评分。 对于任务有两种类型一种为基本任务,另一种为复合型任务。 基本任务类似于点对点,如需要机器人帮助人取到某样东西,或者是需要把某件可以动的物品转移到另 12 外一个位置。 复合型任务包含若干基本任务组合,一般情况下机器人会独立完成每一件任务。 如一个简单的复合任务要,将可移动的小物体 A 和 B 拿给人。 机器人通常情况下会把 A先拿给人然后在把 B拿给人但是这样机器人的工作效率很低。 但是经过规划以后,我么可以以最少的原子动作去完成此 [6]。 指令语言动作规划 在求解过程中,由于程序的的先后划分顺序,对于一个问题集的求解通常是:先规划出前面的原子动作序列,然后再依次依据前一次的动作序列所产生的场景描述来完成后面所有的的原子动作序列。 在实际的操作过程中,对于这样的原子动作序列,机器人的执行效率很低,一般情况下我们不会采用。 对于不同问题中的的场景描述和任务描述,我们希望的是在产生最少的原子动作序列情况下,完成任务。 对于指令交互的原子动作规划我们用一下行动方案来介 [7]: 任务指令: give(human,green cup ) give(human,blue bottle) . 场景描述如表 和表 所示。 位置 爪子 盘子 1 0 0 物体编号 种类 颜色 大小 位置 1 human big 20 2 desk big 30 3 teapoy big 32 4 cup green small 32 5 bottle blue small 32 在场景描述中机器人的属性( location、 hold、 plate, )很重要,在解决问题前我们需要对于机器人做预处理。 我们要考虑机器人手中、盘子中是否有物体,如果有该物体是否和任务相关。 机器人只有一只手、一个盘子所以组合在一起就有一下几种情况:假设机器人的手中或盘子中有物体存在,我们先要考虑手中是否有物体存在即“ plate_id”:是否为零,若不为零则首先处理手中物 [9]。 手中物体若与任务相关则可以直接完成该任务中的一条命令,若与任务不相关则直接放下。 然后在考虑盘子中的状态,处理方法与手中处理方法相同。 以下为代码中对于机器人的属性信息与处理办法: if(hold_id!=0||plate_id!=0)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。