前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的巡线机器小车

简单的巡线机器小车

作者头像
用户1594945
发布2018-07-20 14:50:11
1.8K0
发布2018-07-20 14:50:11
举报
文章被收录于专栏:AI启蒙研究院AI启蒙研究院

巡线是机器人的基本技术,也是大家学习机器人时最先要做的。能够巡线的自动装置具有机器人的全部特点:使用传感器收集周围环境的信息,并据此调整机器人的运动状态。想象这样一个场景:在沙漠中的一辆小车,离开沙漠唯一的办法就是沿着黑色的柏油马路一直往前形式。

设计思想

道路是蜿蜒曲折的,既不能实现设定好路线,又无法预测,小车只能是“看一步走一步”。道路有多曲折,小车的轨迹就有多复杂。尽管小车路线复杂,但其动作只有简单的两种:

  • 前进(当小车在柏油路上时);
  • 随机转向(当小车在沙土中时,试图回到柏油路上)。

当然,随机转向存在诸多不确定性,可能会彻底偏离路线。另一种方式是让巡线机器人沿着线的边缘走,因为如果沿着黑线本身走,当机器人偏离黑线,传感器“看到沙漠”时,我们不知道机器人到底在线的哪一边,是在线的右边还是左边?如果沿着线的边缘走,当光电传感器“看到白色”,我们知道机器人在线边缘(线)的左边,当光电传感器“看到黑色”,我们知道机器人在线边缘的右边(在线上)。因为机器人跟随的是线条的左边,因此这种方式被称为“左手法则”。当然左手法则依赖于,开始小车的状态必须线条在小车的左边。

算法描述

小车复杂的轨迹,就是这两种动作拼接而成的。而什么时候执行这两种动作,也是非常显而易见的。将小车每一次的循环串联起来,构成了小车完整的前进路线。所以小车的行为就可以描述为:

看一步:检测当前位置:(0)沙土上,(1)马路上。 走一步:(0)时执行(A)前进,(1)时执行(B)随机转向 or 左手法则。 循环:重复执行“看一步走一步”的过程。

具体实现

准备材料

乐高主控×1,颜色传感器×1,电机×2,乐高积木若干。

步骤

1. 打开乐高可视化编程软件(PAD或者PC版本)

2. 使用可视化编程,将代码逻辑实现成如下所示。

抽象理论

巡线机器小车程序虽然简单,但背后用到了深刻的思想,深入挖掘程序里面的数学思想,有助于我们更好自己DIY优化自己的巡线机器人。

  • 从计算机程序的角度上讲,我们在这个程序中用到了3中逻辑:1)顺序,2)分支,3)循环。理论表明这三种逻辑是完备的。这意味着所有可以用计算机实现的逻辑都可以只用这3个逻辑实现。换句话说,以后我们见到的所有程序都可以用这3个逻辑来实现。顺序很简单,就是计算机按顺序一条条执行指令。所谓分支,在这个例子中,就是“走一步”是执行(A)前进还是(B)随机转向的二选一。循环即重复执行“看一步走一步”的过程。
  • 另外,还用到了分治的思想。即把一个大问题分解成无数小问题来解决。小车的轨迹很复杂,但通过分解成无数个“看一步走一步”动作就迎刃而解了。“看一步走一步”就是把小车复杂轨迹这个大问题分解成的小问题。分治有两个基本条件:1)问题可以被分解成子问题;2)子问题重叠。条件1)是显而易见的,条件2)意味着所分解的子问题要有相同的结构。计算机擅长的就是执行重复的动作。这个例子中,子问题不但有相同的结构,甚至完全一样。
  • 从数学模型上看,可以把寻线机器小车系统看作一个函数。函数本质上是一个映射:给定任意符合条件(定义域内)的输入,有且只有一个输出。把这个小车系统看作一个函数f,输入(0)时,输出(A)前进,输入(1)时输出(B)随机转向。
  • f(0)=A
  • f(1)=B 更多思考

这种巡线方式能够完成巡线任务,但效果并不是很好。在比较直的线上完成巡线任务,在编程中设置动作细小的转弯方式,整体巡线效果看起来还算不错;但是如果线上有较大的弯度,你又采用明显的转向动作让机器人完成巡线,机器人就会来回摆动,横向穿过线条。机器人只“知道”两件事情:转左和转右。用这种方法巡线,通常机器人的速度不会很快。如何使巡线更有效率(又快又准确)呢?

在不增加传感器的情况下,采用PID来控制小车是个不错的选择。我们将在下一篇文章专门讲解PID巡线小车。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI启蒙研究院 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 当然,随机转向存在诸多不确定性,可能会彻底偏离路线。另一种方式是让巡线机器人沿着线的边缘走,因为如果沿着黑线本身走,当机器人偏离黑线,传感器“看到沙漠”时,我们不知道机器人到底在线的哪一边,是在线的右边还是左边?如果沿着线的边缘走,当光电传感器“看到白色”,我们知道机器人在线边缘(线)的左边,当光电传感器“看到黑色”,我们知道机器人在线边缘的右边(在线上)。因为机器人跟随的是线条的左边,因此这种方式被称为“左手法则”。当然左手法则依赖于,开始小车的状态必须线条在小车的左边。
    • 准备材料
      • 步骤
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档