历史上的今天
今天是:2025年01月02日(星期四)
2019年01月02日 | 【机器人讲堂】机器人的基本传感器原理
2019-01-02 来源:易心STEAM编程
一台可被称作机器人的机器,必须要能感应环境并对其产生影响。这也是传感器做为机器人学关键的原因,而懂得使用传感器打造智能机器人,对有心打进机器人学圈子的各位而言至关重要。
在本文中,我们要认识的是称为「感知>判断>动作」(sense > think > act)的机器人运作。这个运作在机器人学的应用相当广泛,也是了解如何编写机器人程序一个很好的切入点。让我们开始吧!
选择传感器
我们有多少物理特性可以测量,就有多少传感器可以使用,但我们先从HC-SR04超音波距离传感器开始,因为它便宜、单纯,而且在机器人学中用途广泛(它还有很方便的Arduino数据库)。
定义机器人模型
这个传感器可以侦测距离,所以我们先做一个会闪避障碍物的简单机器人吧。这种机器人可以前进、后退,并定点旋转到任何方向。距离传感器就安装在机器人的正面。有了这个机器人的概念之后,让我们来看如何让它运作。
什么是感知、判断、动作?
感知、判断、动作是一种决策循环,可以用来为机器人解决很多问题,而且非常地简单。在我们的例子中,机器人必须感测前方是否有障碍物,接着判断是否可以前进、或是否应该转弯或后退,之后便会依照决定来动作。这样的逻辑可以套用在任何机器人上,适用任何传感器,几乎可以进行任何动作。
了把这种逻辑写成用来控制机器人的程序代码,我们必须描述得更加精确,让我们由以下的方法来创造简单的机器人行为模式:
1. 机器人感应前方3cm内是否有任何障碍物。
2. 若无障碍物,则前进。
3. 若有障碍物,则后退。
这很容易转换为程序代码,但我们可以预见这套逻辑会让机器人在遇到墙壁时卡在前后来回的循环。它会先前进直到侦测到墙壁,接着后退到侦测不到墙壁,然后再前进,不断重复。我们可以用以下的方式来改良它的行为模式。
1. 机器人感应前方3cm内是否有障碍物。
2. 若无障碍物,则前进。
3. 若有障碍物,则右转,再返回第1步。
机器人会重复这个循环,直到找出3cm内没有墙面的方向。
现在我们就有了一个可以确实让机器人避开障碍物的感知、判断、动作模型。这并不是很精密的模型,我们还可以增加很多细节来提升闪避障碍物的能力。
即使是简单的机器人,只要运用复杂的感知、判断、动作模型,还是可以设计出非常聪明的行为模式。这就是机器人学的精随:聪明的都在软件里!
我们目前的行为模式效率有点低,因为机器人要右转的时候需要先左转三次。现在我们在前面的三步骤后面加上第四步来改良行为模式:
4. 若有障碍物,则左转,再返回第1步。
1. 机器人侦测前方3cm内是否有障碍物。
2. 若无障碍物,则前进。
3. 若有障碍物,则左转并再次侦测。
4. 若无障碍物,则前进并重设循环。
5. 若有障碍物,则右转并再次侦测。
6. 若无障碍物,则前进并重设循环。
7. 若有障碍物,则机器人继续右转,直到无障碍物。
样一来机器人就会检查左右两边有没有墙面,代表它的移动会更有效率。我们现在可以发现连这样简单的行为,在描述上也开始变得复杂,但如果把这套行为模式想成一系列的感知、判断、动作循环,就更容易理解了。
就这样,我们已经把一套简单的感知、判断、动作行为模式建构成可以实际应用的障碍闪避程序。接下来要把这套行为模式转换成程序代码很容易,而我们也就可以开始做各种机器人学的尝试了。再加装更多距离传感器,甚至不同种类的传感器,便能让机器人的行为模式更加精密。只要记得把动作分解成感知、判断、动作的循环,就能做到很多事!
史海拾趣
|
1.802.15简介 2.Microchip ZigBee 协议栈更改版 3.Ti原版开发板说明 4.Zigbee毕业设计提纲 5.ZigBee概述 6.ZigBee技術規格與測試方案之發展 7.单极天线的PCB设计说明(new) 8.基于CC2430的经济实用型Zigbee开发套件 9.基于MSP430 的ZigBee80 ...… 查看全部问答> |
|
电脑的reset按钮都是非常非常小的,不过Windows出生以后,人们对于reset按钮的应用就频繁起来。当然我们也可以应用Ctrl + Alt + Del,但对于Windows 98致命的Kernel 32毛病,我们还是不得不弯下腰寻找那渺小的reset按钮。国外一名玩友看来厌倦了这 ...… 查看全部问答> |
|
初学CE,平台是S3C2440 + wince5.0 在网上找了个周立功的按键中断流驱动程序,就按着这个程序开始写了个串口流驱动,程序在WaitForSingleObject()处停止了,无法进入线程处理。可能是什么原因呀? com0是CE调试串口,我写的驱动是对com1操作。 ...… 查看全部问答> |
|
WinCE5.0 我的CE Device已经有FAT32的分区了 请问如何把CE Device在连接PC后,当作U盘? 看到很多大侠已经实现了: “WinCE5有,支持那个U盘的。那个core os service下面那个usb host support加一个usb storeage class driver,然后加一个devic ...… 查看全部问答> |
|
请各位参加工作的朋友们给小弟指明一条路~~感谢! 偶现在大三下了,今年11月份就开始找工作了。。眼前想抓紧时间学点东西,好找个好工作·但不知道学什么好,望各位朋友给点建议~ 我想做嵌入式开发,软件,硬件,现在还没有定,准备都要好好学 ...… 查看全部问答> |
|
三星44B0X+SL811HST,无操作系统,可以正确识别到1.1的U盘,但因为现在大多是2.0的U盘,发现有的2.0的U盘在做完 GetMaxLUN后,如果做Inquiry,也可以成功,但接下来做ReadFormatCapacity时,BulkIn会产生STALL,也就是读不到 FormatCapacity的内 ...… 查看全部问答> |
|
做一个控制摄像头的单片机... 控制IC的参数 调节参数是白天适当的变暗 晚上适当的变亮 使效果最佳 \'要求I2C接口\' 市面上哪些型号的单片机能满足功能而又实惠的&n ...… 查看全部问答> |
|
【低功耗】满足低功耗FPGA需求,Actel推出5μW产品延长电池寿命 为了满足便携式应用对功耗的严苛要求,Actel公司宣布推出业界最低功耗的现场可编程门阵列(FPGA)--IGLOO系列。这个以Flash为基础的产品系列的静态功耗为5μW,是最接近竞争产品功耗的四分之一;与目前领先的PLD产品比较,更可延长便携式应用的电池寿 ...… 查看全部问答> |




