保龄球之二.PDF

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
保龄球之二

07 保龄球之二 升级 !智能保龄球 ! 上一节课我们 已经学过怎样用机器人打保龄球 了,是不是觉得 还不够?如果我们的机器人能够完全智能的自己去寻找球瓶而 不用你来帮他事先瞄准是不是更好?这一节课 ,我们就来讲讲 怎样让机器人 自己去寻找球瓶并 自行回到起点。 1 在起始位置放开机器人 ,让机器人 自行将球瓶推出黑线。 2 将瓶子推出黑线后 ,机器人返回起始位置 自行把其他球瓶推出黑线。 分析 我们可以分析出机器人的整个运动过程是 :找瓶子→推瓶子→ 返回起点→找瓶子……这样一个循环的过程 : 第一步 我们 已经知道机器人出发的第一步就是应该先找到球瓶方位 , 因此这一步我们就帮助机器人来寻找到前方的球瓶。 1 在 “开始”事件下 ,增加 自定义变量 “找到”并赋值 : 这个变量用于标记机器人是否找到球瓶 ,找到时设置 为1,未找到时,设置为0。初始默认值为0。 2 我们观察发现 ,当机器人在起点位置并且前方有瓶子 存在时,它的左右侧感应数据的和一般会大于20。 我们可以设置一个 自定义变量 “瞄准值”来表示这个 数值。也就是 当机器人扫描后发现左右感应器的和大 于这个数值时,就认为这个位置前方有球瓶。 3 增加消息变量 “寻找” ,并在 “开始”事件下 ,增加 发送 “寻找”的消息语句 : 4 增加接收 “寻找”消息的语句 : 表示在收到 “寻找”消息后 ,运行该语句块下方所有 的拼接语句。这个事件就是用于扫描剩余球瓶位置的。 5 在 “寻找”事件的下 ,增加 自定义变量 “i” ,并赋值 : “i”是用于计数扫描次数 ,可以用来控制扫描的范围。 6 在 “寻找”事件的下 ,添加带条件的循环语句 : 该循环条件表示当 “找到”标记参数等于1或扫描次数 “i”大于5时,结束循环。 7 在循环体 内增加用于扫描球瓶位置的条件判断语句 : 这个条件判断为真时,表示机器人距离感应器感应到前方有 球瓶 ,因此 ,需要将 “找到”标记设置为1;否则 ,表示未 找到球瓶 ,需要继续扫描 ,因此设置左右轮速度进行原地旋 转 ,每次旋转0.1秒后 , “i”计数增加1,然后重头开始循环。 8 在循环体后添加扫描结束的操作 : 用条件判断语句来判断上面的扫描循环结束是因为找到球瓶 还是扫描计数达到上限。 如果是找到了球瓶 ,则发送 “推瓶子”消息 ,机器人开始执 行 “推瓶子”事件来把瓶子推出底线。 如果是扫描计数达到上限而未找到球瓶 ,则表示前面已经没 有球瓶了,发警报声提示运行结束。 9 当收到 “推瓶子”消息后 ,我们需要使用前进事件 : 10 在 “推瓶子”事件下添加重置 “找到”变量的语句 : 把 “找到”标记变量重新设置为0 ,用以下一次返回到 起始点后的重新扫描。 还记得我们在上一课中学过的,怎样让机器人在前进过程中 调整 自身方向面朝 “球瓶”推进的方法吗?将这个方法的所 有代码拼接添加到 “推瓶子”事件下。 这样 ,当机器人就可以先寻找瓶子方位然后再去推瓶子了。 第二步 让机器人推完瓶子后 ,还可以自行沿着球场边缘的黑线返回起 始点 ,开始新一轮推瓶子。 1 需要在推完瓶子后返回,因此我们需要先添加 “返回” 消息 ,并且在推瓶子的功能后也就是上一步的 “前进” 事件的最后 ,添加发送 “返回”的消息语句 : 也就是 当机器人把瓶子推出黑线后 ,就可以开始进行 “返回”初始点的操作了。 接下去 ,我们就看看是怎样让机器人返回初始点的。 2 增加接收 “返回”消息事件 : 表示在收到 “返回”消息后 ,运行该语句块下方所有 的拼接语句。 3 在 “返回”事件下 ,添加 自定义变量 “基本速度”、 “理想值”、 “系数” ,并赋值 : 这些变量用于控制机器人沿黑线行走的速度。 4 增加亮灯语句

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档