您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 萝卜圈仿真---机器人沿墙走思路指南
萝卜圈三维机器人在线仿真平台萝卜圈三维机器人在线仿真平台机器人沿墙走思路指南萝卜圈网络技术有限公司日期:2012/08/30版本:1.1萝卜圈三维机器人在线仿真平台1、沿墙走算法的思路说明沿墙走算法在萝卜圈三维机器人仿真平台的很多任务里都有体现,这个算法也涉及到了循环嵌套等逻辑思维问题,一直以来也是很多相关教材的必学内容之一。注意:任何一个算法都是相对灵活的,需要结合具体的任务场景元素来做变通,所以我们在讲解这个思路时以图一、图二这两个场景来具体分析。沿墙走的宗旨是机器人不撞墙,所以其算法归纳起来其实就是三点:机器人与墙壁的状态处理方法1前面有墙要转弯不转弯机器人前方会撞墙2侧面离墙太近或者太远要转弯离墙近不转弯机器人侧面会撞墙离墙远分两种情况1、侧面有墙但是离墙很远,需要考虑另外一边的状况,所以不能离墙太远行走。见图一:如果机器人离左边墙太远行走,机器人右边就掉下悬崖见图二:如果机器人离左边墙太远行走,机器人右边就撞到右边的墙壁2、处于墙壁的拐角处,这种情况必须转弯。见图二:A、B两处3侧面离墙不近不远往前走机器人处于安全区域,可以前行图1图2萝卜圈三维机器人在线仿真平台机器人沿墙走可以用两种传感器来完成:障碍传感器和距离传感器。2、以障碍传感器沿左墙走为例2.1、机器人搭建思路指南机器人离墙的远近是一个相对的概念,用障碍传感器时需要在前方安装一个传感器,侧面安装两个传感器,近的设置距离为120,远的设置距离为200(具体场景具体调整)。因为机器人是有惯性的,所以在安装传感器的时候需要给传感器一个向前的角度,这样在检测到转角的地方有利于转弯。传感器的角度依据机器人的速度可以进行适当的调节,机器人速度越快侧方的传感器与正前方的夹角越小。图3中前方传感器接口为“31”,左边看得近的传感器接口为“32”,左边看得远的传感器接口为“33”。图3三个障碍传感器沿左边墙壁走的机器人样例萝卜圈三维机器人在线仿真平台2.2、程序设计思路在写程序之前我们要注意到,沿墙走的宗旨就是机器人不撞墙。下面我们以左边有墙壁为例来编写这个程序。图4三个障碍传感器沿左墙走编程思路主程序永远循环判断前方是否有墙壁右转弯判断左方是否离墙壁比较近右转弯判断左方是否离墙壁不近不远程序结束直行左转前面、近的都没有,远的有前面、近的、远的都没有,机器人处于离左边墙壁比较远或者墙壁往左转弯的位置萝卜圈三维机器人在线仿真平台第一个【if判断】判断前方是否有墙壁,有,则执行机器人右转(建议原地转的方式:左边前进,右边等速后退)。当前方没检测到墙壁时执行第二个【if判断】判断左边近距离的障碍传感器是否检测到墙壁,有,则执行机器人右转(建议采用同向弧线转的方式:左边为正向,右边也正向,但是右边速度比左边慢)。当前方和左边近的障碍传感器都没检测到墙壁时执行第三个【if判断】判断左边远的障碍传感器是否检测到墙壁,有,则直行(这个地方不一定要直行,可以根据墙壁的弯曲度来确定参数,如图一:墙壁一直行往左边弯曲的,所以可以采取左边和右边同为正向,但是左边比右边稍慢的方式来提高机器人速度;如图二:墙壁是笔直的,所以采取走直线的方式)。当三个传感器都没检测到墙壁时,机器人离墙较远或者墙壁在往左拐角处,机器人需要左转(建议采用同向弧线转的方式:左边为正向,右边也正向,但是左边速度比右边慢)。“31”端口“32”端口“33”端口图5三个障碍传感器沿左墙走程序示意图萝卜圈三维机器人在线仿真平台下面把三个障碍传感器沿墙走的思路按下表来进行一个归纳(0表示没看到,1表示看到):前方障碍传感器左边近的障碍传感器左边远的障碍传感器机器人状态000左转001直行010右转011右转100右转101右转110右转111右转从上表的列表中我们可以总结归纳出:1)只要前方障碍传感器的返回值为1,机器人要右转,包含四种状态;2)只要左边近的障碍传感器返回值为1,机器人要右转,包含两种状态;3)当前方和左边近的障碍传感器返回值为0,左边远的返回值为1时,机器人直行;4)当三个传感器返回值都为0时,机器人左转。所以在程序的编写时,机器人前方障碍传感器的判断处于第一优先级;左边近的障碍传感器的判断处于第二优先级;左边远的障碍传感器的判断处于第三优先级;最后一种状态即为三个障碍传感器都没检测到墙壁放在最后。萝卜圈三维机器人在线仿真平台3、以距离传感器沿左墙走为例3.1、机器人搭建思路指南用距离传感器时需要在前方和侧方各安装一个传感器。因为机器人是有惯性的,所以在安装传感器的时候需要给传感器一个向前的角度,这样在检测到转角的地方有利于转弯。传感器的角度依据机器人的速度可以进行适当的调节,机器人速度越快传感器与正前方的夹角越小。图6中前方传感器接口为“31”,左边传感器接口为“32”。图6二个距离传感器沿左边墙壁走的机器人样例萝卜圈三维机器人在线仿真平台3.2、程序设计思路图7二个距离传感器沿左墙走编程思路主程序永远循环判断前方距离是否小于150右转弯判断左方距离是否小于120右转弯判断左方距离是否大于200程序结束直行左转左边离墙壁的距离在120到200之间,机器人离墙壁不远不近左边距离大于200说明:机器人处于离左边墙壁比较远或者墙壁往左转弯的位置萝卜圈三维机器人在线仿真平台第一个【if判断】判断前方是否离墙壁较近,较近,则执行机器人右转(建议原地转的方式:左边前进,右边等速后退)。当前方离墙壁较远时执行第二个【if判断】判断左边离墙壁是否较近,是,则执行机器人右转(建议采用同向弧线转的方式:左边为正向,右边也正向,但是右边速度比左边慢)。当前方和左边都离墙壁都不近时执行第三个【if判断】判断左边是否离墙壁很远,很远,机器人离墙较远或者墙壁在往左拐角处,机器人需要左转(建议采用同向弧线转的方式:左边为正向,右边也正向,但是左边速度比右边慢)。剩下的情况就是机器人离墙不远不近,则直行(这个地方不一定要直行,可以根据墙壁的弯曲度来确定参数,如图一:墙壁一直行向左边弯曲的,所以可以采取左边和右边同为正向,但是左边比右边稍慢的方式来提高机器人速度;如图二:墙壁是笔直的,所以采取走直线的方式)。“32”端口“31”端口“32”端口图8二个距离传感器沿左墙走程序示意图萝卜圈三维机器人在线仿真平台技术支持需要技术支持,请联系我们。萝卜圈网络技术有限公司网站:电话:0571-87672482邮件:tech@iRobotQ.comQQ群:6562718
本文标题:萝卜圈仿真---机器人沿墙走思路指南
链接地址:https://www.777doc.com/doc-2177334 .html