机器人与机械臂 夜晚,你正在书桌前看书,机器人从厨房送来一杯水,轻轻地放在书桌上。这个机器人不仅能够移动,还拥有像人一样的“手臂”——机械臂。 当可移动的机器人安装了机械臂,这个机器人就拥有了很多优势,也具有了灵活的操纵能力,在执行任务时,效率也会更高。 7.1 机械手 学习内容 (1)学会使用齿轮、蜗杆、齿条等机械件设计各种机械结构。 (2)学习设计各种机械手和旋转结构。 (3)学会设计程序,对机械手的开合动作进行编程。 机械手是机器人模仿人手的动作对物体进行抓取、搬运或操作某种工具的装置。例如在地面上遗落了一个乐高零件,当机器人遇到并发现这个零件时,机器人伸出机械手将零件抓取上来,然后运送到零件箱的位置,机器人控制机械手释放零件到零件箱内。 机械手通常有夹持型机械手和吸盘式机械手,例如真空吸盘或磁性吸盘。夹持型机械手的手部模仿了人的手指,“手指”的数量有二指、三指、四指等,其中以二指的机械手使用最多。下面根据连杆、齿轮、蜗杆、齿条等机械结构的特点设计几种夹持型的机械手。 7.1.1 机械手设计 1.齿轮平行轴传动机械手 如图7.1.1和图7.1.2所示,机械手只有上边的“手指”可以运动,下边的“手指”是固定的,并且使用大型电机来控制,特点是力量大。 图7.1.1 单指运动机械手:左侧 图7.1.2 单指运动机械手:右侧 由于两个相邻齿轮间传动的方向是相反的,通过改进结构,可以让机械手的两指都运动起来,如图7.1.3所示。 图7.1.3 两指运动的机械手 2.齿轮垂直传动机械手 (1)单垂直轴传动的机械手。 如图7.1.4所示,机械手使用了一个“U”形结构件,两个20齿单面斜齿轮采用垂直轴传动设计,即每个20齿单面斜齿轮独立使用一个2号轴来搭建,如图7.1.5和图7.1.6所示。当12齿单面斜齿轮转动时,两个20齿单面斜齿轮可以相互反向转动,使得机械手的两个手指能够同时张开和闭合。机械手的长度可以通过更换不同型号的轴来改变机械手臂的长度,以满足机器人执行不同任务的需要。机械手的指端选用了橡胶零件,可以大大增加机械手在抓取物体时的摩擦力。由于机械手结构设计简单,体积小,但结构牢固性相对较弱,所以一般用于夹取轻小或带有环状结构的物体。 图7.1.4 单垂直轴传动的机械手 搭建 图7.1.5 指端搭建 图7.1.6 指端与齿轮搭建 (2)双垂直轴传动的机械手。 如图7.1.7所示,机械手使用了两个“U”形结构件,采用了齿轮加速设计,20齿齿轮带动12齿齿轮转动,所以该机械手夹持物体的力量较小,机械手搭建参见图7.1.8和图7.1.9。 图7.1.7 双垂直轴传动的机械手 搭建 图7.1.8 垂直轴传动搭建 图7.1.9 机械手搭建完成 (3)平行轴传动与垂直轴传动组合设计的机械手。 如图7.1.10所示,该机械手结合了以上两个机械手结构的优点,采用平行轴传动与垂直轴传动组合设计的方法,通过齿轮减速,由一个12齿单斜面齿轮带动两个20齿齿轮,再通过16齿齿轮传动将两个反向旋转的动力分别传递给机械手的两个手指,所以该机械手的综合性能明显好于前面两种机械手。根据不同任务的需要,可以将机械手的16齿齿轮更换为12齿齿轮搭配20齿齿轮或8齿齿轮搭配24齿齿轮,机械手搭建参见图7.1.11~图7.1.14。 图7.1.10 平行轴传动与垂直轴传动组合设计的机械手 搭建 图7.1.11 中型电机与12齿单面齿轮搭建 图7.1.12 16齿齿轮与20齿齿轮搭建 图7.1.13 四个“T”形薄梁搭建 图7.1.14 机械手搭建完成 (4)垂直轴传动与连杆组合设计的机械手。 如图7.1.15所示,机械手采用了3个垂直轴传动和连杆结构设计,使得机械手的手指在张开和闭合的过程中几乎是相互平行的,多用于夹持截面为矩形的物体,机械手搭建参考图7.1.16~图7.1.18。 图7.1.15 垂直轴传动与连杆组合设计的机械手 搭建 图7.1.16 正交连接件与3号轴搭建 图7.1.17 齿轮搭建 图7.1.18 机械手搭建完成 3.蜗杆传动的机械手 (1)长臂机械手。 机械手采用蜗杆传动设计,如图7.1.19所示,由一个蜗杆带动两个24齿齿轮反向转动,要使24齿齿轮转动一圈,则蜗杆需要转动24圈,即减速24倍,所以蜗杆式机械手在夹持物体时会输出很大的夹持力量,可以通过更换不同型号的直孔梁和轴来改变机械手臂的长度,机械手搭建参考图7.1.20~图7.1.24。 图7.1.19 蜗杆式长臂机械手 搭建 图7.1.20 蜗杆与24齿齿轮搭建 图7.1.21 “T”形薄梁搭建 图7.1.22 正交连接件搭建 图7.1.23 机械手臂搭建 图7.1.24 完成机械手搭建 (2)短臂机械手。 短臂机械手也采用蜗杆传动设计,如图7.1.25所示,一个蜗杆带动两个24齿齿轮反向转动,机械手臂的长度不可调节,机械手搭建参考图7.1.26~图7.1.29。 图7.1.25 蜗杆式短臂机械手 搭建 图7.1.26 “T”形薄梁搭建 图7.1.27 蜗杆与24齿齿轮搭建 图7.1.28 两个5号轴和一个4号轴搭建 图7.1.29 机械手搭建完成 长臂机械手和短臂机械手都使用蜗杆与齿轮组合传动,具有自锁特性,所以夹持到物体时,即使电机的动力撤去,机械手也会牢牢地继续夹持着物体,而且蜗杆传动的减速特性使其在夹取物体时可以输出很大的力量,正好弥补了中型电机力量的不足。如果遇到需要快速取放物体的任务时,就需要选用其他类型的机械手,例如仅由齿轮结构设计机械手,通过搭配合适的齿轮齿数比可以让机械手快速抓取物体。机械传动有一个规律,如果机械传动是加速的,那么通过该机械结构输出的力量就小;如果机械结构是减速的,那么通过该机械结构输出的力量就大。 机械手的“手指”部分可以根据具体任务的要求选用长短不同、形状不同或材料不同的零件来设计。通常使用斜角梁作为机械手的“手指”,如果需要增大抓取物体的摩擦力,可以在机械手的“手指”上安装橡胶零件或橡筋圈。 4.有“手腕”的机械手 机械手在夹取物体时,由于物体位置的特殊性或放置的要求,有时需要横向或竖向等方位取放物体,这就需要机械手能够像人的手腕一样可以左右旋转运动,如图7.1.30所示。机械手的旋转结构搭建参考图7.1.31~图7.1.34。 图7.1.30 有“手腕”的机械手 搭建 图7.1.31 轴连接件与3号轴搭建 图7.1.32 齿轮转台搭建 图7.1.33 齿轮转台与轴连接件搭建 图7.1.34 齿轮转台与中型电机搭建 7.1.2 凶猛的鳄鱼 模仿鳄鱼嘴巴咬合的特点,设计一个夹子,如图7.1.35所示,在夹子内部放置一个触动传感器,当手伸进夹子按下触动传感器时,夹子迅速夹起,搭建方法参考图7.1.36~图7.1.38。 图7.1.35 凶猛的鳄鱼 搭建 图7.1.36 触动传感器搭建 图7.1.37 夹子底部搭建 图7.1.38 给夹子安装数据线 将大型电机连接到EV3程序块端口A,触动传感器连接端口1。设计程序,让夹子动起来,程序设计参考图7.1.39。 图7.1.39 “凶猛的鳄鱼”的程序 循环{当触动传感器被按下时,大型电机A以功率100旋转0.6秒(停止);等待3秒,大型电机A以功率-20反向旋转80度(停止)}。 练习 优化程序,当触动传感器被按下时,尽可能不让进入夹子里的手逃脱。 7.1.3 机械手取物 设计一个机械手,可以夹起不同大小的塑料杯。 不同大小的杯子的粗细可能不同,所以在夹取的过程中无法确定机械手电机旋转的角度,可以尝试采取时间来控制电机转动。夹取的杯子越细,电机需要转动的时间就越长,初步估计夹取最细杯子需要的时间作为电机转动的时间,可选择蜗杆传动的机械手来完成任务。 将控制机械手开合的中型电机连接到EV3程序块的端口A,触动传感器连接到端口1,程序设计参考图7.1.40。 图7.1.40 机械手夹起杯子的程序 第一行程序序列:循环{当触动传感器1被按下时,A电机开启,功率100,机械手张开;当触动传感器1松开时,A电机关闭(惯性滑行)} 。 第二行程序序列:循环{当触动传感器2被按下时,A电机开启,功率-100,机械手抓取水杯,当触动传感器2松开时,A电机关闭(制动)} 。 提示:由于两行的并行序列程序控制的是同一个电机,所以在运行程序时,两个触动传感器不能同时按下。 使用以上程序在夹取较粗的杯子时,机械手可以顺利夹取,但电机会提前被卡住,所以采取时间控制机械手容易损坏电机。还可以使用功率来控制电机的运动,当检测到正在闭合的机械手的电机功率降低时,说明已经夹取到杯子了,此时即可关闭电机。 由于绿色的电机模块在控制电机的实际转动过程中,当电机遇到阻力时,电机模块会自动对电机的功率进行控制并补偿电机遭遇的阻力,让电机的转动尽可能维持在设定的功率值。所以在设计机械手取放物体的程序时,可以使用蓝色未校准电机模块控制机械手的开合动作,本任务也可使用如图7.1.41所示的程序来完成。 图7.1.41 机械手夹起杯子的程序:功率控制 在第二行的程序序列中,循环{当触动传感器2被碰撞(按下并松开)时,A电机开启,功率为-100,等待0.3秒(目的是让电机的实际功率有足够的时间加速并接近-100),机械手在夹取杯子的过程中,电机遇到阻力,功率会趋向于0,当A电机的实际功率在-9~0时,A电机关闭}。 如图7.1.42所示,这个程序单元常用于控制机械手的运动,通过设置不同的功率阈值,可以控制机械手夹取物体的力量。等待模块的功率阈值越接近0,则机械手夹取物体时的力量就越大;功率阈值越接近于开启电机时设定的功率值,则机械手夹取的力量就越小。 图7.1.42 控制机械手夹取力量的程序单元 练习 设计一个机械手,既可以夹起玻璃杯,也可以夹起一次性纸杯而不会造成纸杯变形。 7.1.4 机械手为用户倒水 设计一个可以旋转的机械手,如图7.1.43所示,机械手在夹取装有水的杯子的过程中,能够始终保持水杯处于或接近于垂直状态。 图7.1.43 由陀螺仪传感器控制的机械手 可以使用陀螺仪传感器来控制机械手的姿态,当机械手夹取的水杯处于垂直状态时重置陀螺仪传感器的角度为0度;如果夹起杯子的口部向右倾斜,则陀螺仪传感器检测到角度大于0度,控制机械手向左转动;如果夹起杯子的口部向左倾斜,陀螺仪传感器检测到角度小于0度,控制机械手向右转动;当陀螺仪传感器的角度等于0度或在一个范围内时,电机关闭,机械手停止旋转,使用两个触动传感器控制机械手的张开与闭合。旋转机械手搭建参考图7.1.44~图7.1.49。 搭建 图7.1.44 大型电机与齿轮搭建 图7.1.45 斜角梁与连接件搭建 图7.1.46 齿轮转台搭建 图7.1.47 齿轮转台与大型电机搭建 图7.1.48 陀螺仪传感器搭建 图7.1.49 旋转机械手搭建完成 将中型电机连接到EV3程序块端口A,大型电机连接到端口B,两个触动传感器分别连接到端口1和2,陀螺仪传感器连接到端口3,程序设计参考图7.1.50。在机械手的两指处于水平时启动程序。 图7.1.50 旋转机械手的程序 采用并行序列程序设计。 左边的并行序列:陀螺仪传感器重置角度为0度。 循环{如果陀螺仪传感器检测的角度大于2度时,大型电机B以功率20旋转机械手;如果陀螺仪传感器检测的角度小于-2度,大型电机B以功率-20反向旋转机械手;否则陀螺仪传感器检测的角度范围为-2~2;B电机关闭}。 右边的并行序列: 循环{如果触动传感器1被按下,中型电机A以功率100旋转,机械手张开;如果触动传感器2被按下,中型电机A以功率-100旋转,机械手闭合;否则两个触动传感器都没有被按下,中型电机A关闭}。 练习 设计程序,旋转机械手既可以夹起水杯,还可以在需要时倒水。 EV3机器人设计的机械手大多都是电机驱动的机械手,在实际的生产应用中机械手还有液压驱动、气压驱动、电气驱动和机械驱动。 机械人手臂与人类手臂的最大区别就在于灵活性和耐力,机械手可以重复地做同一动作而不会觉得累。随着科技的发展,机械手的应用也越来越广泛,具有高精度动作的机械手可以进行外科手术,利用机械手臂在进行骨科手术时其动作精度达到了0.1毫米。机械手还用于焊接、搬运、包装、喷漆、切割等工作。 7.2 机械臂 学习内容 (1)认识摆式、升降式、伸缩式和旋转式机械臂。 (2)学会设计各种机械臂。 (3)学会设计程序和机械臂来完成指定的任务。 机器人有时需要将物体从一个位置移动到另一个位置,而在这个过程中并不需要机器人发生移动。这就要给机器人设计一个机械臂,通过机械臂的摆动、旋转、伸缩或升降等动作把机械手抓取的物体移动到指定位置。 7.2.1 机械臂设计 1.摆式机械臂 摆式机械臂像人的手臂一样有“关节”,如图7.2.1所示,机械臂在一个平面内可以上下摆动,动作比较灵活。关节式机械臂有大臂与小臂摆动,类似于肘关节和肩关节的运动,摆式机械臂的动力通常由电机通过齿轮减速结构控制摆臂的运动。 图7.2.1 摆式机械臂 2.升降式机械臂 升降式机械臂可以保证机械手方位不变的前提下进行升降式运动,升降式机械臂通常可使用连杆、齿条等结构来设计。 (1)升降式机械臂——平行四边形结构。 利用平行四边形结构来设计机械臂,如图7.2.2所示,可以使机械手具有很大高度的升降空间,但难以对机械手的高度进行精确定位。 图7.2.2 升降式机械臂:平行四边形结构 (2)升降式机械臂——齿条结构。 如图7.2.3和图7.2.4所示,齿条式机械臂利用齿条结构将电机的旋转运动转化为直行运动,再通过齿轮做减速设计。齿条式机械臂可以抬升较重的物体,利用大型电机的角度传感器可以对机械臂升降的高度进行精确定位,但齿条式机械臂升降的高度会受到齿条长度的限制。升降式机械臂搭建参考图7.2.5~图7.2.7。 图7.2.3 齿条式机械臂:上升 图7.2.4 齿条式机械臂:下降 搭建 图7.2.5 中型电机与梁的搭建 图7.2.6 齿条结构搭建 图7.2.7 齿条式机械臂底座搭建 3.旋转式机械臂 旋转式机械臂可以让机械臂在一个平面内进行360度的旋转,其结构设计是在旋转基座上安装一个转台,通过电机和齿轮驱动转台带动机械臂的旋转。旋转式机械臂可以让机械臂有更大的活动空间,安装有机械手的机械臂可以对四周的物体进行移动、抓取或操作。 机械臂旋转结构的设计可以使用中型电机或大型电机作为旋转结构的动力,但由于旋转的机械臂重量往往比较大,尤其在夹持比较重的物体时,机械臂的总重量可能是原有重量的两倍以上,这对旋转结构的承重性能提高了要求。所以在设计旋转结构时会用到一类机械结构件——齿轮转台。常用的齿轮转台有两种:小型齿轮转台和大型齿轮转台,如图7.2.8和图7.2.9所示。 图7.2.8 小型齿轮转台 图7.2.9 大型齿轮转台 机械臂的旋转通常在一圈左右,转动速度一般不会太快,而且在必要时能够提供较大的旋转力量,基于以上特点,旋转结构采用齿轮减速进行设计。 (1)大型齿轮转台的旋转结构设计。 大型齿轮转台采用二级齿轮减速设计,如图7.2.10所示。第一级使用12齿齿轮带动24齿齿轮传动,第二级使用12齿齿轮带动60齿的齿轮转台传动,共减速10倍,旋转结构搭建参考图7.2.11~图7.2.13。 图7.2.10 大型齿轮转台的旋转结构 搭建 图7.2.11 旋转结构底部搭建 图7.2.12 旋转结构一级齿轮减速搭建 图7.2.13 旋转结构二级齿轮减速搭建 (2)小型齿轮转台的旋转结构设计。 小型齿轮转台采用二级减速设计,如图7.2.14所示,第一级减速使用12齿齿轮带动24齿齿轮传动,第二级使用8齿齿轮带动28齿齿轮转台传动,共减速7倍,旋转结构搭建参考图7.2.15~图7.2.19。 图7.2.14 小型齿轮转台的旋转结构 搭建 图7.2.15 特殊销与5孔梁搭建 图7.2.16 小型齿轮转台搭建 图7.2.17 轴连接件与圈梁搭建 图7.2.18 第一级齿轮减速搭建 图7.2.19 第二级齿轮减速搭建 4.多轴机械臂 一个完整的机械臂往往可以同时实现机械臂的旋转、摆动、升降和机械手的抓取,而机械臂的每一个动作一般都需要一个电机独立控制,这样的机械臂通常至少需要四个电机来设计,如图7.2.20和图7.2.21所示。当然也可以设计一些只有三个电机控制的简易机械臂,在设计机械臂时,一般要尽可能做到设计的机械臂重量轻、结构有一定的强度、机械臂在执行任务时动作灵活。 图7.2.20 四轴机械臂:初始状态 图7.2.21 四轴机械臂:抓取状态 要使机械臂能够动起来,还需要给机械臂设计一个程序,通过程序控制机械臂各个“关节”的运动。有时机械臂不是自动控制的,而是通过人按动按钮或操纵遥控杆来控制机械臂的运动,使用EV3机器人设计的机械臂可以通过触动传感器、角度传感器、陀螺仪传感器或程序块按钮来手动操纵或自动控制机械臂的运动。 7.2.2 机械臂编程 设计一个机械臂,将一个带有环状的物体从一个位置移到另一个位置,环状物体设计如图7.2.22所示。 图7.2.22 环状物体 机械臂将环状物体从桌面上抓取后抬起来,通过机械臂旋转至一定角度,再将环状物体放下,最后松开机械手。由于抓取的是带有环状且重量比较轻的物体,所以可以选择较小的长臂机械手。从机械臂的动作来看,机械臂可以左右旋转、上下摆动,机械手可以抓取和松开,而旋转、摆动和抓取这三种动作,每一种都需要一个电机独立控制,即该机械臂的设计需要三个电机,如图7.2.23所示。使用中型电机控制机械手的开合,使用一个大型电机控制机械臂的上下摆动,使用另一个大型电机控制机械臂左右旋转,机械臂的搭建参考图7.2.24~图7.2.29。 图7.2.23 机械臂与环状物体 搭建 图7.2.24 大型电机与齿轮减速搭建 图7.2.25 圈梁与3个7孔梁搭建 图7.2.26 机械手搭建 图7.2.27 齿轮转台与电机搭建:侧面 图7.2.28 齿轮转台与电机搭建:上面 图7.2.29 机械臂搭建完成 机械臂设计好以后,还需要给机械臂设计一个控制系统,这样才能指挥机械手臂完成任务。可以使用程序块按钮的上、下、左、右键和两个触动传感器分别对应控制机械手臂上下摆动、左右旋转、机械手抓取和松开这六个动作。 将中型电机连接到EV3程序块的端口A,控制机械臂上下摆动的大型电机连接到端口B,控制机械臂左右旋转的大型电机连接到端口C,两个触动传感器分别连接到端口1和2,程序设计参考图7.2.30。 图7.2.30 控制机械臂运动的程序 循环{运行第一个切换模块:如果触动传感器1被按下,为“真”,中型电机A以功率8旋转,机械手抓取物体。否则运行第二个切换模块:如果触动传感器2被按下,中型电机A以功率-8反向旋转,机械手释放物体,否则两个触动传感器都没有被按下,中型电机A停止。第三个切换模块模式为“程序块按钮-比较-程序块按钮-[4]”,如果4号上键被按下,大型电机B以功率20旋转,控制机械臂向上摆动,否则运行第四个切换模块,模式为“程序块按钮-比较-程序块按钮-[5]”:如果5号下键被按下,大型电机B以功率-20反向旋转,控制机械臂向下摆动,否则这两个程序块按钮都没有被按下,大型电机B停止。第五个切换模块模式为“程序块按钮-比较-程序块按钮-[1]”,如果1号左键被按下,大型电机C以功率20旋转,控制机械臂向左旋转,否则运行第六个切换模块,模式为“程序块按钮-比较-程序块按钮-[3]”:如果3号右键被按下,大型电机B以功率-20反向旋转,控制机械臂向右旋转,否则这两个程序块按钮都没有被按下,大型电机B停止}。 练习 (1)优化机械臂的程序,当机械手在抓取到环状物体时可以自动控制电机停止转动。 (2)设计一个机械臂,将一个小球从桌面上移动到一个台面上,小球可以是乒乓球、乐高球或其他小球。 7.3 扫地机器人 学习内容 (1)认识扫地机器人和清障机器人。 (2)学习扫地机器人的路径规划,并根据规划的路径学会设计扫地机器人的程序。 (3)学会给机器人设计机械手臂清理较大的物体。 在学习设计机器人时,一不小心将装有各种连接销的零件盒打翻了,细小的零件撒了一地,如图7.3.1所示。这时要是有一个能够清扫地面零件的机器人就好了,现在让我们一起来设计一个这样的机器人吧。 图7.3.1 洒落满地的零件 7.3.1 设计扫地机器人 设计扫地机器人,清扫洒落在地面上的乐高零件。 机器人的连接销非常小,颜色也各有不同,无论是使用超声波传感器、颜色传感器还是触动传感器都无法检测到,而且数量特别多。根据任务的这些特点,可以在机器人的前部设计一个贴近地面的收集装置,如图7.3.2所示。由于机器人在收集地面上零件的过程中可能会出现后退和转弯的情况,还需要在这个收集装置的前端设计一个开合结构的机械臂,当机器人清扫零件时,机械臂向上打开,当零件清扫结束机器人开始后退或转弯时,机械臂向下关闭,防止零件溢出。扫地机器人搭建参考图7.3.3~图7.3.14。 图7.3.2 扫地机器人:收集状态 搭建 图7.3.3 中型电机与齿轮搭建 图7.3.4 陀螺仪传感器搭建 图7.3.5 机械臂搭建 图7.3.6 13孔梁搭建 图7.3.7 机械臂搭建完成 图7.3.8 连杆结构搭建 图7.3.9 收集装置搭建 图7.3.10 收集装置搭建完成 图7.3.11 扫地机器人主体搭建 图7.3.12 扫地机器人底部搭建 图7.3.13 扫地机器人侧面搭建 图7.3.14 扫地机器人搭建完成:关闭状态 有了扫地机器人,还要规划机器人的行走路径,地面上可能没有黑线或其他可以识别的标志,机器人只能依靠陀螺仪传感器识别方向,使用角度传感器控制机器人移动的距离,必要的时候可以使用超声波传感器进行避障。基于可以使用的传感器规划机器人的行走路径,如图7.3.15和图7.3.16所示。 图7.3.15 方形螺旋路径 图7.3.16 “弓”形路径 除此之外还有别的机器人行走路径吗?请设计新的扫地机器人路径。 选择“弓”形路径让机器人清扫洒落在地面上的机器人零件,如图7.3.17所示。 图7.3.17 机器人沿“弓”形路径清扫零件 陀螺仪传感器连接到EV3程序块的端口1,左右两个驱动轮的大型电机分别连接到端口B和C,中型电机连接到端口A。在机器人清扫地面之前,调节中型电机的机械臂处于上方的位置,如图7.3.2所示,程序设计参考图7.3.18。 图7.3.18 扫地机器人程序 第一行程序:陀螺仪传感器角度重置为0度;循环{机器人以功率20前进2圈,机器人清扫并收集零件;中型电机A以功率-30旋转300度,收集装置闭合,机器人以转向50、功率20向右前方转弯,当陀螺仪传感器测得的角度大于或等于180度时,机器人停止,中型电机A以功率30旋转300度,收集装置打开。 第二行程序:机器人以功率20前进2圈,机器人清扫并收集零件;中型电机A以功率-30旋转300度,收集装置闭合,机器人以转向-50、功率20向左前方转弯,当陀螺仪传感器测得的角度小于或等于0度时;机器人停止;中型电机A以功率30旋转300度,收集装置打开。直到循环达到5次时,结束循环}。 练习 给扫地机器人重新选择一个行走路径,设计扫地机器人程序,让机器人清扫地面上的零件。 随着机器人技术的不断发展,机器人逐渐走进人们的家里。扫地机器人就是智能家用电器的一种,它凭借一定的人工智能,能够在房间内自动完成地板清理工作。一般的扫地机器人采用刷扫和真空吸尘的方式,将地面杂物吸入自身的垃圾收纳盒,从而完成地面清理的功能。现在的扫地机器人除了可以清扫地面,还具有拖地、擦地的功能。 家用扫地机器人通常内置10多种传感器和具有强大的数据处理能力的芯片,例如顶部的激光测距传感器,侧边的超声传感器,底部的悬崖传感器和四周的触动传感器,等等。根据这些传感器设计机器人扫地的程序,可以让扫地机器人能够模拟人脑思考的方式,互相协助,通过对各种数据进行采集和运算,机器人可以全方位获取房间信息,从而让机器人具有实时定位、绘制地图、规划路径的功能。机器人根据构建的地图对房间进行区域划分和规划清扫路径,逐一完成分区清扫任务,通常家用的扫地机器人是先沿着墙边行走,然后按“弓”形路径完成清扫任务。 7.3.2 清障机器人 当地面上出现较大的物体需要清理时,仅使用扫地机器人是难以完成任务的,还需要设计一个可以用来清障的机器人。当机器人搜寻到较大的物体时,机器人将物体抓取并送回出发点,使用超声波传感器来探测物体,还需要给机器人设计一个机械臂,可以对物体进行抓取和拖移。这里的物体可以用一次性纸杯、塑料水杯或其他柱形物体来代替。清障机器人的搭建参考图7.3.19~图7.3.24。 设定要清理的物体在距离机器人35厘米的范围内,机器人首先利用超声波传感器来确定物体的方向,然后机器人运动到物体附近抓取物体,并将物体带回机器人的起点。 搭建 图7.3.19 轴连接件与11孔梁 图7.3.20 11孔梁结构搭建 图7.3.21 蜗杆式机械手搭建 图7.3.22 机械手与11孔梁结构搭建 图7.3.23 超声波传感器搭建 图7.3.24 清障机器人搭建完成 将超声波传感器连接到EV3程序块的端口1,左右两个驱动轮的大型电机分别对应连接到端口B和C,中型电机连接到端口A,程序设计参考图7.3.25。 图7.3.25 清障机器人程序 第一行程序:未校准电机模块控制A电机以功率100旋转0.3秒,当电机的实际功率小于20时,电机关闭,张开机械手。机器人以转向100、功率8顺时针自转,当超声波传感器测量的距离小于35厘米时,即检测到物体,机器人再以转向100、功率8顺时针自转0.11圈对准物体。 第二行程序:B电机角度重置为0度;机器人以20功率前进;当超声波传感器检测的距离小于5厘米时,机器人再以功率20前进0.2圈贴近物体。未校准电机模块控制A电机以功率-100旋转0.3秒,当A电机的实际功率大于-20时,电机关闭,机械手抓取物体。 第三行程序:B电机旋转的圈数输出给移动转向模块的圈数参数框,机器人以功率-20后退一定的圈数(即机器人前进时B电机旋转的圈数);A电机以功率100旋转0.3秒;当电机的实际功率小于20时,电机关闭,张开机械手。 练习 (1)设计程序,当机器人返回时显示初始状态下机器人与物体的距离。 (2)设计机器人,可以自动完成对地面上多个物体的清障任务。 (3)在水杯中装入水,设计程序,让机器人将水杯带回机器人的出发点,并且杯中的水没有流出。如果地面阻力过大,可设计一个带有轮子的平台,将水杯放置于平台上,减小水杯在拖动时与地面的摩擦。 7.4 投篮机器人 学习内容 (1)认识投篮机器人。 (2)学习设计投篮机器人及编程。 (3)学会设计机器人以不同的角度成功投篮。 在篮球运动中有一项关键性技术就是投篮,队员需要运用各种技术和战术以及合理的运球动作将球投进对方篮筐里。运动员投篮时需要根据篮筐的方位、距离以及进篮的方式决定投球的力量和方向。投球方向偏移、力量过大或过小都可能造成球进不了篮筐。 由于一个有着完整动作的投篮机器人需要非常高的机器人技术才可能实现,所以我们设计一个简单的投篮机器人,给机器人安装一个投球机械臂,投篮时机器人通过摆动机械臂将球投掷出去。 7.4.1 机器人投篮 设计投篮机器人,将乒乓球投掷到篮筐中,也可以是其他塑料球。 设计一个篮筐,给机器人安装一个投球机械臂,如图7.4.1所示,机器人对准篮筐的方向,使用超声波传感器探测篮筐的距离,机器人前进至设定的投篮距离停下并启动机械臂以一定的力量和角度将球投进篮筐。投篮机器人的搭建参考图7.4.2~图7.4.10。 图7.4.1 投篮机器人与篮筐 搭建 图7.4.2 7孔梁与3×5直角梁搭建 图7.4.3 机械臂限位结构搭建 图7.4.4 机械臂搭建 图 7.4.5 中型电机与机械臂搭建 图7.4.6 限位结构与机械臂搭建 图7.4.7 超声波传感器搭建 图7.4.8 投篮机器人搭建完成 图7.4.9 篮筐搭建:正面 图7.4.10 篮筐搭建:侧面 将超声波传感器连接到EV3程序块的端口1,中型电机连接到端口A,左右驱动轮的两个大型电机分别对应连接到端口B和C,程序设计参考图7.4.11。 图7.4.11 机器人投篮程序 循环“A”{如果超声波传感器测量的距离大于25厘米,机器人以功率15向篮筐靠近;否则传感器测量的距离小于或等于25厘米,机器人停止,循环“A”中断},中型电机A以功率-20旋转0.5秒,使投篮机械臂向下校准,A电机以功率100持续1秒启动机械臂投篮。 练习 优化机器人的结构和程序,不断调试机器人投篮的程序参数,提高机器人投篮的成功率。 7.4.2 机器人多距离随机投篮 设计投篮机器人,让机器人可以在篮筐前方不同的距离处成功投篮。 让投篮机器人在篮筐前方的不同距离处都可以成功投篮,这就需要机器人根据球框的远近来控制投球的力量。如果篮筐距离较远,则机器人需要适当增大投篮的力量;如果篮筐距离较近,则机器人需要适当减小投篮的力量。在投篮机器人结构不变的前提下设定机器人距离篮筐5厘米、10厘米和15厘米的位置进行投篮。 将超声波传感器连接到EV3程序块的端口1,中型电机连接到端口A,左右驱动轮的两个大型电机分别对应连接到端口B和C,程序设计参考图7.4.12。 图7.4.12 机器人多距离随机投篮的程序 中型电机A以功率-20旋转0.5秒,使投篮机械臂向下校准,随机模块随机产生1、2、3中的一个数乘以5,将结果输入给变量R,则变量R的值可能是5、10或15。 循环A{将变量R的数字输入给切换模块的阈值参数框,如果超声波传感器测量的距离大于变量R,机器人以功率15向篮筐靠近,否则传感器测量的距离小于或等于变量R,机器人停止,循环A中断}。 如果变量R的值是5,即机器人距离篮筐5厘米,中型电机A以功率13持续1秒投篮。 如果变量R的值是10,即机器人距离篮筐10厘米,中型电机A以功率17持续1秒投篮。 如果变量R的值是15,即机器人距离篮筐15厘米,中型电机A以功率22持续1秒投篮。 练习 (1)优化程序,不断调试机器人投篮的程序参数,提高机器人投篮的成功率。 (2)设计程序,让机器人以更多不同的距离进行投篮。 7.4.3 机器人多角度抛射投篮 设计投篮机器人,让机器人以向上的不同角度抛射投篮。 机器人投篮时,离开机械臂的球在空中运动的弧形轨迹是一个抛物线,向上抛射的角度越大,则球在空中运动得越高,这就是高抛物线投球。一般来说,高抛物线投球几乎能够垂直下落到篮筐内,这时候球最容易入篮。但球在空中的飞行路线太长,不容易控制,实际中往往会降低投篮的成功率。而如果采取低抛物线投球,即以向上较小的角度投篮,虽然球的飞行路线较短,投篮的力量容易控制,但球以接近水平的角度进入篮筐,投篮的成功率也不高。所以可以采取中抛物线投篮,即寻找最佳的向上投篮的角度,提高机器人投篮的成功率。 而要寻找最佳的投篮角度,就需要通过不断测试并改进机器人的程序和机械臂,可以通过机械限位的方法控制机械臂运动的角度,如图7.4.13所示,再通过不断地投篮测试来寻找最佳的投篮角度。投篮机器人在这样的投篮角度下能拥有很高的投篮成功率。还需要设计一个大小合适的篮筐,在投篮成功率不断提高的情况下,可以适当缩小篮筐,这样有助于我们找到最佳的投篮角度,程序设计参考图7.4.14。 图7.4.13 机械限位控制机器人向上投篮的角度 图7.4.14 机器人多角度抛射投篮调试的程序 练习 (1)机器人以20厘米进行投篮,适当缩小篮筐,设计程序,调试投篮的角度,让机器人每次都可以投篮成功。 (2)设计程序,寻找合适的投篮角度,让机器人可以以不同的距离投篮成功。 (3)适当增加篮筐的高度,设计程序,调试最佳的投篮角度,让机器人可以在不同的距离投篮成功。 (4)设计程序,调试投篮的角度,机器人投中篮筐的最远距离是多少? 近日国际上设计了一个名叫Cue的投篮机器人,其核心本领是投篮。当把球传给机器人时,机器人能够依靠身上的传感器计算篮筐在空间中的位置,依靠电机调整手臂和膝盖,摆好姿势,然后用和一个真正的球员相同的动作来投篮。 这个投篮机器人身高1.9米,在一次与真正的运动员进行投篮练习时,结果是职业球员在10次投篮中进了8球,而机器人的命中率为100%。投篮结果显示机器人比职业篮球运动员的投篮准确率高得多。这个机器人之所以有如此高的投篮成功率,是因为强大的人工智能技术可以让机器人不断地学习和精进。据悉这个机器人经过了大约200 000次投篮学习,该机器人的设计者表示,其在短距离内的投篮命中率几乎达到100%。 虽然Cue已经可以非常熟练地在人工智能的辅助计算下准确投篮了,但却没有迅速移动的能力,只能原地做出各种投篮的动作,无法像篮球运动员一样在球场上运球或者奔跑。随着人工智能技术的不断进步,相信以后的机器人可以像人一样在球场上进行一场机器人篮球竞赛。 7.5 搬运机器人 学习内容 (1)学习设计各种搬运机器人。 (2)设计程序,让机器人搬运物体。 在工业生产和制造时,常常需要搬运物体,而这重复繁重的搬运工作可以交给机器人来完成。搬运机器人能够准确、高效、灵活地完成各种物体的搬运任务,还可以节省大量人力,降低工人们的工作强度,安全性能高,同时搬运效率的提高还能极大地促进工业发展。 搬运机器人往往是根据任务需求来设计的,例如需要搬运物体的大小、重量和形状不同,搬运的距离和高度也不同。搬运任务不一样,设计出来的搬运机器人也不一样。搬运机器人通常的搬运动作是抬起、移动和放下。 如果需要搬运如图7.5.1和图7.5.2所示的物体,如何设计机器人呢? 图7.5.1 搬运的物体一 图7.5.2 搬运的物体二 设计一个机械臂可以升降的机器人,机械臂的升降可以使用绳索、齿条、连杆、履带等结构来设计。 7.5.1 搬运机器人设计 1.绳索升降式搬运机器人 绳索升降式搬运机器人如图7.5.3所示,使用中型电机绕紧细绳让机械臂在轨道内上升,电机反向转动松开细绳,机械臂受地球引力的作用在轨道内下降。 图7.5.3 绳索升降式搬运机器人 2.齿条升降式搬运机器人 齿条式搬运机器人如图7.5.4所示,中型电机将动力传动给蜗杆→24齿齿轮→12齿齿轮→齿条→机械臂,以此来实现机械臂的升降,多级减速设计可以让机械臂抬起更重的物体。 图7.5.4 齿条式搬运机器人 3.连杆升降式搬运机器人 连杆式搬运机器人如图7.5.5所示,机械臂运用齿轮减速和平行四边形连杆结构设计,可以将物体搬运到高处。 图7.5.5 连杆升降式搬运机器人 绳索式升降机械臂和齿条式升降机械臂可以搬运重量较大的物体,尤其是齿条结构设计的升降机械臂还采用了蜗杆结构进行动力传动,利用蜗杆的自锁和减速,大大增加了升降机械臂在搬运重量较大物体的优势。但由于受绳索结构和齿条结构的限制,难以将物体搬运到较高的高度,而连杆式升降机械臂弥补了这些不足,使用长连杆结构可以将物体搬运到高处或是从高处将物体搬运至低处,在连杆式升降机械臂表现出明显优势的同时也存在着重量方面搬运能力不足的缺陷。所以绳索式、齿条式与连杆式升降臂可以优势互补,需要根据具体的任务来选择合适的升降臂设计搬运机器人。 在需要搬运一些其他的物体时,还需要给搬运机器人设计不同的机械手,以满足不同任务的需要。 7.5.2 机器人搬运货物 设计搬运机器人,沿着墙壁行走,对货物进行搬运,参考图7.5.2搭建搬运的物体。将货物放于红线的右侧,机器人需要从黑线的位置靠着墙壁出发,将红线右侧的货物搬运到黑线的左侧,如图7.5.6所示。 图7.5.6 机器人搬运货物 机器人靠着墙向货物方向前进,当颜色传感器检测到红线时,机器人停下并将货物抬起,机器人将货物搬运到黑线的左侧。机器人需要安装导向轮才能靠着墙壁行走,还需要给机器人安装颜色传感器用于对地面红线和黑线的检测,可以选择在机器人的前方左侧(或右侧)安装一个颜色传感器,如图7.5.7所示。机械臂选择蜗杆齿条式升降结构设计,搬运机器人搭建参考图7.5.8~图7.5.20。 图7.5.7 搬运机器人:添加导向轮和颜色传感器 搭建 图7.5.8 齿条搭建 图7.5.9 齿轮搭建 图7.5.10 蜗杆搭建 图7.5.11 11孔梁搭建 图7.5.12 中型电机搭建 图7.5.13 齿条传动结构搭建 图7.5.14 中型电机传动搭建 图7.5.15 升降机械臂搭建完成 图7.5.16 机械臂与机器人搭建完成 图7.5.17 导向轮搭建 图7.5.18 导向轮与机器人搭建完成 图7.5.19 颜色传感器搭建 图7.5.20 搬运机器人搭建完成 将中型电机连接到端口A,左右驱动轮的两个大型电机分别对应连接到EV3程序块的端口B和C,颜色传感器连接到端口1,程序设计参考图7.5.21。 图7.5.21 机器人搬运货物的程序 机器人以转向-2、功率30前进,其中转向值-2是为了机器人能够靠着墙壁行走,当颜色传感器检测到红线时,机器人停止,中型电机以功率-100反向旋转20圈,抬升货物,之后机器人以功率-30后退,当颜色传感器检测到黑线时,机器人继续以功率-30后退一圈,中型电机以功率100旋转20圈,放下货物。 练习 设计机器人,让机器人可以连续地自动搬运两个以上的物体,机器人一次只搬运一个物体。 7.5.3 遥控机器人搬运货物 设计蓝牙遥控的搬运机器人,选用绳索式机器人来搬运物体,使用触动传感器和程序块按钮结合的形式来远程操控机器人。搬运机器人和遥控端搭建参考图7.5.22~图7.5.32。 搭建 图7.5.22 机械臂前臂搭建一 图7.5.23 机械臂前臂搭建二 图7.5.24 机械臂前臂搭建完成 图7.5.25 机械臂轨道搭建 图7.5.26 机械臂与中型电机搭建 图7.5.27 垂直传动结构搭建 图7.5.28 机械臂底座搭建 图7.5.29 机械臂轨道搭建完成 图7.5.30 机器人搭建 图7.5.31 搬运机器人搭建完成 图7.5.32 遥控端搭建 将遥控端的程序块命名为“EV1”,机器人端的程序块命名为“EV2”,开启蓝牙进行连接。将两个触动传感器分别连接到EV1程序块的端口1和2,遥控端EV1程序块的程序设计参考图7.5.33。 图7.5.33 遥控端EV1程序块程序 循环{ 第一个切换模块:如果触动传感器1被按下,消息传递模块向EV2程序块以标题“A”发送消息“up”,控制机械臂抬升;否则运行第二个内部的切换模块,如果触动传感器2被按下,则消息传递模块向EV2的程序块以标题“A”发送消息“down”,控制机械臂下降,否则消息传递模块向EV2的程序块以标题“A”发送消息“stop”,控制机械臂停止。 第三个切换模块模式为“程序块按钮-比较-程序块按钮-[4]”:如果4号上键被按下,消息传递模块向EV2程序块以标题“BC”发送消息“go”,控制机器人前进,否则不执行任何命令。 第四个切换模块模式为“程序块按钮-比较-程序块按钮-[5]”:如果5号下键被按下,消息传递模块向EV2程序块以标题“BC”发送消息“back”,控制机器人后退,否则不执行任何命令。 第五个切换模块模式为“程序块按钮-比较-程序块按钮-[1]”:如果1号左键被按下,消息传递模块向EV2程序块以标题“BC”发送消息“left”,控制机器人左前转弯,否则不执行任何命令。 第六个切换模块模式为“程序块按钮-比较-程序块按钮-[3]”:如果3号右键被按下,消息传递模块向EV2程序块以标题“BC”发送消息“right”,控制机器人右前转弯,否则不执行任何命令。 第七个切换模块模式为“程序块按钮-比较-程序块按钮-[1;3;4;5]”:如果1号、3号、4号、5号其中有按钮被按下,则不执行任何命令,否则按钮都松开,消息传递模块向EV2程序块以标题“BC”发送消息“stop”,控制机器人停止}。 将两个驱动轮的大型电机分别对应连接到EV2程序块的端口B和C,控制机械臂升降的中型电机连接到端口A,机器人端EV2程序块的程序设计参考图7.5.34。 图7.5.34 机器人端EV2程序块的程序 循环{ 第一个切换模块模式为“文本”:如果消息传递模块接收来自标题“A”的文本是“up”,A电机以功率20转动,机械臂抬升物体;如果是“down”,A电机以功率-20反向转动,机械臂放下物体;如果是“stop”,A电机停止转动。 第二个切换模块模式为“文本”:如果消息传递模块接收来自标题“A”的文本是“go”,机器人以功率20前进,如果是“back”,机器人以功率-20后退,如果是“left”,机器人以转向-50、功率20左前转弯,如果是“right”,机器人以转向50、功率20右前转弯,如果是“stop”,机器人停止}。 7.5.4 机器人堆高货物 设计搬运机器人,将物体搬运到高度约10厘米的高台上。由于需要将货物放于高处,可以使用连杆式升降机械臂,机器人搭建参考图7.5.35~图7.5.40,程序可参考连杆式搬运机器人的程序进行设计。 搭建 图7.5.35 直孔梁与直角梁搭建 图7.5.36 中型电机搭建 图7.5.37 齿轮垂直传动搭建 图7.5.38 连杆结构搭建 图7.5.39 升降机械臂搭建完成 图7.5.40 连杆式升降机器人搭建完成 练习 由于仓库场地有限,需要将货物堆积起来,设计程序,将货物自下而上整齐地堆积在一起,也可以设计如图7.5.41所示的机器人来堆高货物。 图7.5.41 装有机械手的升降式搬运机器人 由于搬运机器人能够不知疲倦地连续高效工作,人们已经设计出各种不同用途的搬运机器人。例如餐饮服务机器人可以端茶、端菜,在快递行业搬运机器人已经被运用在各个环节;在快递的仓库里设计出像盒子一样大小的搬运机器人对快递进行分拣,分拣好的快递再由快递员或机器人小车送至各个小区或收件人手中,还可以将快递交给无人机进行运送。搬运机器人已经从原来的地面移动拓展到天空领域,为此还需要不断地探索学习,设计更好的搬运机器人为人类服务。 7.6 捡球机器人 学习内容 (1)学习设计捡球机器人。 (2)学会设计程序让机器人自动完成对多个球的捡球任务。 对于有过乒乓球、网球等球类运动经历的人来说,在日常训练或者正式比赛结束后,整理散落在场地上的球特别麻烦,而捡球机器人能解决捡球的烦恼。 7.6.1 机器人巡线捡球 设计捡球机器人,把黑线边上的球捡起并带回出发点,如图7.6.1所示,可以是乒乓球或乐高球。 图7.6.1 机器人将黑线右边的球带回起点 机器人可以沿黑线巡线前进,如图7.6.2所示,借助超声波传感器探测小球,当机器人遇到小球时,通过机械手捕获小球,机器人带着球一起返回出发点。由于球在黑线的右边(相对于机器人行进的方向),可以在捡球机器人前方的左侧位置安装一个颜色传感器用于巡线。设计程序让机器人沿着黑线的左边缘前进,机器人启动前机械手处于完全张开的状态,颜色传感器需对准黑线起始端。机器人返回时行走的距离可以通过记录机器人前进时驱动轮电机旋转的圈数来获得。由于小球重量轻,可以选用仅由齿轮传动的机械手来快速抓取小球。机器人搭建参考图7.6.3~图7.6.8。 图7.6.2 巡线捡球机器人 搭建 图7.6.3 梁与9号轴搭建 图7.6.4 超声波传感器搭建 图7.6.5 超声波传感器结构搭建完成 图7.6.6 机械手搭建 图7.6.7 颜色传感器搭建 图7.6.8 巡线捡球机器人搭建完成 机器人左右驱动轮的两个大型电机分别对应连接到EV3程序块的端口B和C,控制机械手的中型电机连接到端口A,超声波传感器连接到端口1,颜色传感器连接到端口2,程序设计参考图7.6.9。 图7.6.9 机器人巡线捡球的程序 第一行程序:B电机角度重置为0度,循环{机器人沿黑线左边缘巡线,直到超声波传感器测量小球的距离小于或等于6厘米,循环结束},机器人以功率15前进0.2圈靠近小球。将B电机旋转的圈数输入给变量L(模式为“写入-数字”)。 第二行程序:机械手抓取小球,A电机以功率-50旋转0.3秒,当A电机实际功率大于或等于-10时,A电机关闭;C电机角度重置为0度,机器人以转向-100、功率15逆时针自转,当C电机的圈数大于0.3圈时(目的是让颜色传感器越过黑线,传感器越过黑线后才能在下一次检测到黑线),再次判断当颜色传感器测量的反射光线强度小于20时,机器人以转向-100、功率10逆时针自转0.15圈(目的是使颜色传感器位于黑线的左边缘附近)。 第三行程序:B电机角度重置为0度,循环{机器人按黑线左边缘巡线,直到B电机旋转的圈数大于或等于变量L的数值,循环结束},机器人停止;等待3秒,程序运行结束。 由于颜色传感器、环境光、地面颜色和黑线颜色的差异,程序中机器人巡线的功率、中间值和比例值以及机械手电机的功率均为参考值,在实际的机器人捡球任务中还需要通过不断调试程序中的参数才能提高机器人捡球的效率和成功率。 练习 当小球在黑线的左侧时,如图7.6.10所示,设计机器人和程序将小球取回出发点。 图7.6.10 小球在黑线的左侧 7.6.2 机器人捡球入筐 设计捡球机器人,机器人将黑线右侧的小球捡到起点的球筐内,如图7.6.11所示。 图7.6.11 机器人捡球入筐 要使捡回来的球可以进入球筐内,这就需要给机械手设计一个升降机械臂,如图7.6.12所示,通过降低机械手的高度来抓取小球,抬升机械手的高度将捡回的小球放入球筐内。机器人搭建参考图7.6.13~图7.6.20。 图7.6.12 可捡球入筐的巡线机器人 搭建 图7.6.13 颜色传感器搭建 图7.6.14 机器人前方支撑轮搭建 图7.6.15 5孔梁与7号轴搭建 图7.6.16 超声波传感器搭建 图7.6.17 机械手搭建 图7.6.18 超声波传感器与机械手搭建 图7.6.19 捡球机器人搭建完成:捡球状态 图7.6.20 捡球机器人搭建完成:放球状态 机器人左右驱动轮的两个大型电机分别对应连接到EV3程序块的端口B和C,控制机械手的中型电机连接到端口A,控制机械手升降的中型电机连接到端口D,超声波传感器连接到端口1,颜色传感器连接到端口2,程序设计参考图7.6.21。 图7.6.21 机器人捡球入筐的程序 本程序是在上一程序的基础上添加了一个控制机械臂升降的中型电机模块,如图7.6.22所示,通过这个电机模块控制机械臂的升降。 图7.6.22 抬升机械臂的程序 现在已经设计出一款可以捡网球的机器人,在机器人的正前方有一个摄像头和一个“V”形开口,通过摄像头捕捉球场的各种信息,借助机器人的视觉传感器识别出网球,这时“V”形开口内的机械装置就能把球捕获并且通过机械手臂把球“扔”到机器人后方的球筐里,整个过程不需要人工干预,就能轻松完成场地内所有的捡球任务。 练习 设计程序或改进捡球机器人,让机器人可以独自完成黑线边上多个小球的捡取任务,如图7.6.23所示。 图7.6.23 黑线右侧有多个小球 7.7 排爆机器人 学习内容 (1)认识排爆机器人,树立和平的价值观。 (2)学习设计排爆机器人及编程。 (3)学会运用电机的角度传感器设计程序,通过蓝牙通信远程操控排爆机器人。 在一些战乱国家中,可能有的地方存在未爆炸的各种炸弹,甚至还有恐怖分子利用炸药来制造社会动乱,这都将严重威胁人类的安全。如果采取人为拆除或移走炸弹的方式又存在极大的危险。为了维护世界和平,保护排爆人员的生命安全,人们设计出了专门用于搬运、转移、销毁那些有毒有害或易爆等危险物品的排爆机器人。 排爆机器人分为轮式和履带式,通过远程操控或自动搜寻对危险物品进行识别、转移和销毁。排爆机器人一般装有视觉传感器对危险品进行观察;搭载的多自由度机械臂可将爆炸物的引信或雷管拧下来,再将爆炸物移走;机器人身上还装有枪,可把爆炸物的定时装置及引爆装置击毁;有的排爆机器人还装有高压水枪,可以对爆炸物进行切割销毁。 7.7.1 机器人转移危险物品 设计轮式排爆机器人,将“危险物品”转移到销毁区,如图7.7.1所示。 图7.7.1 机器人转移危险物品 可以搭建一个方块模型来代替危险物品,如图7.7.2所示,搭建一个方框来代替销毁区,通过蓝牙远程操控排爆机器人将危险物品抓取后移动到销毁区。如图7.7.3所示,要实现对危险物品的抓取、移动和投放,就需要给排爆机器人设计一个既能抓取又能升降的机械臂,考虑到“危险易爆物品”可能很重,而且在抓取过程中需要小心翼翼,这里选用齿条来设计升降的机械臂,使用蜗杆结构设计机械手,排爆机器人的搭建参考图7.7.4~图7.7.13。 有了排爆机器人,还要设计一个遥控器,使用EV3程序块的上、下、左、右按钮分别对应控制机器人的前进、后退、左前转弯和右前转弯,使用遥控端大型电机的角度传感器控制机械臂的升降,使用遥控端的两个触动传感器控制机械手对物体的取放,遥控端搭建参考图7.7.14和图7.7.15。 图7.7.2 危险物品模型 图7.7.3 排爆机器人 搭建 图7.7.4 直角梁与5孔梁搭建 图7.7.5 直角梁与11孔梁 图7.7.6 直角梁与11孔梁 图7.7.7 直角梁与11孔梁搭建 图7.7.8 齿条与13孔梁搭建 图7.7.9 双齿条结构搭建 图7.7.10 中型电机与齿轮搭建 图7.7.11 蜗杆式机械手搭建 图7.7.12 机械臂搭建完成 图7.7.13 排爆机器人搭建完成 图7.7.14 遥控端搭建一 图7.7.15 遥控端搭建二 遥控端的EV3程序块命名为“EV1”, 机器人端的EV3程序块命名为“EV2”,通过蓝牙连接两个程序块。 将用于遥控机械臂升降的大型电机连接到EV1程序块的端口D,用于控制机械手取放动作的两个触动传感器连接到端口1和2,程序设计参考图7.7.16。 图7.7.16 遥控端EV1程序块的程序 这种采用电机的角度传感器控制另一个电机功率的方法,除了可以控制另一个电机的旋转方向,还可以控制电机的功率大小,既可以控制机械臂快速移动,提高执行任务的效率,也可以让机械臂在进行精细任务时缓慢操作,提高机器人动作的精准度。 程序使用了程序块按钮的上、下、左、右键分别控制机器人前进、后退、左前转弯和右前转弯的动作。通过遥控端的两个触动传感器控制机械手A电机的旋转方向,通过遥控端大型电机D旋转的角度控制机械臂D电机旋转的方向和快慢。 在如图7.7.17所示的程序中,如果遥控端的大型电机D旋转的角度在-15~15度的范围内,为“真”,信息传递模块以标题“D”向EV2程序块发送数字“0”;否则为“伪”,即遥控端大型电机D旋转的角度在-15~15度的范围之外,将D电机旋转的角度除以2,并将计算结果通过消息传递模块以标题“D”向EV2程序块发送消息。这里除法模块除以的数字越大,越易于对机械臂升降进行精细控制,但这样一来机械臂升降的速度就变慢了,所以需要根据自己的操作能力和任务要求来调整数字大小。 图7.7.17 遥控端D电机角度数据发送程序 在机器人端,驱动机械臂升降的中型电机连接到EV2程序块的端口D,驱动机械手的中型电机连接到端口A,左右两个驱动轮的大型电机分别对应连接到端口B和C,EV2程序块的程序设计参考图7.7.18。 图7.7.18 机器人端EV2程序块程序 循环{ 第一个切换模块:如果消息传递模块接收来自标题“BC”的文本内容为“go”,则机器人以功率20前进;如果文本内容为“back”,则机器人以功率-20后退,如果文本内容为“left”,则机器人以转向-50、功率20左前转弯;如果文本内容为“right”,则机器人以转向50、功率20右前转弯;如果文本内容为“stop”,则机器人停止。 第二个切换模块:如果消息传递模块接收来自标题“A”的文本内容为“open”,则中型电机A以功率20旋转,机械手张开;如果文本内容为“close”,则中型电机A以功率-20反向旋转,机械手闭合;如果文本内容为“stop”,则中型电机A停止旋转。 消息传递模块接收来自标题“D”的数字,并将这个数字输入给中型电机D的功率参数框,从而可以变速控制机械臂的升降}。 7.7.2 自动避障的排爆机器人 在远程操控机器人移动的过程中,机器人可能会遇到障碍物,如图7.7.19所示,为了操作方便,可以给机器人添加一个自动避障功能,即机器人遇到障碍物时能够停止前进,这时通过遥控机器人后退绕开障碍物。当机器人遇到危险物品时,由于机器人有避障功能,使得机器人难以靠近危险物品,所以还需要设计程序,让机器人在必要时可以解除自动避障。 图7.7.19 排爆机器人遇到障碍物 遥控端的程序块命名为“EV1”,机器人端的程序块命名为“EV2”,通过蓝牙连接两个程序块。 在遥控端添加一个触动传感器,并将这个传感器连接到EV1程序块的端口3,当这个触动传感器被按下时,解除机器人自动避障的功能,传感器处于松开状态时,机器人恢复自动避障,遥控端设计参考图7.7.20。将用于遥控机械臂升降的大型电机连接到EV1程序块的端口D,用于控制机械手取放动作的两个触动传感器连接到端口1和2,遥控端EV1程序设计参考图7.7.21。 图7.7.20 遥控端EV1程序块搭建 图7.7.21 遥控端EV1程序块的程序 本程序在图7.7.16的程序中添加了两个编程模块,如图7.7.22所示,用来发送EV1程序块端口3的触动传感器数据,如果该传感器被按下,则向EV2的程序块以标题“CSB”发送消息,消息内容为“真”,否则该传感器处于松开状态,发送消息的内容为“伪”。 图7.7.22 发送触动传感器数据的程序 在排爆机器人的前方安装一个超声波传感器,并将超声波传感器连接到EV2程序块的端口1,如图7.7.23和图7.7.24所示。将驱动机械臂升降的中型电机连接到EV2程序块的端口D,驱动机械手的中型电机连接到端口A,左右两个驱动轮的大型电机分别对应连接到端口B和C,EV2程序块的程序设计参考图7.7.25。 图7.7.23 超声波传感器搭建 图7.7.24 排爆避障机器人搭建 图7.7.25 机器人端EV2程序块程序 本程序在图7.7.18的程序中添加了两个切换模块,如图7.7.26所示,外部切换模块模式为“消息传递-比较-逻辑”,如果接收来自标题“CSB”的消息内容为“真”,即遥控端的触动传感器3被按下,解除机器人的自动避障功能,机器人以功率10前进,否则接收的消息内容为“伪”,即遥控端的触动传感器3处于松开状态,运行内部的切换模块让机器人自动避障:如果超声波传感器测量的距离小于或等于10厘米,机器人停止,否则机器人以功率20前进。 图7.7.26 排爆机器人避障程序 练习 (1)使用陀螺仪传感器设计排爆机器人,让排爆机器人更智能。 (2)使用多个传感器设计履带式排爆机器人,以适应各种地形的排爆任务,机器人设计参考图7.7.27。 图7.7.27 履带式排爆机器人 由于排爆机器人装有特殊的履带式结构,使机器人可以在楼层间、建筑工地、泥泞地、灌木丛、沙石地,甚至坑道、废墟等多种地形环境下行走工作。排爆机器人通常配有至少4个关节的机械手臂,可以轻松处理藏于各种地方的可疑物品。例如当发现汽车内有危险物品时,可在机器人手爪上装上钥匙将车门打开,并将危险物品取出,机械手臂甚至可以直接从车窗伸到汽车里或从车底下抓取和转移可疑物品。排爆机器人一般还具有全天候工作的特点,即使在黑暗环境或有积水的路面机器人仍能正常执行任务,双向语音通信系统还可以使指挥中心和现场人员及时交换信息。 排爆机器人不仅可以排除危险物品,机器人配有的侦察传感器还可以监视犯罪分子的活动,监视人员可以在远处对犯罪分子进行昼夜观察,甚至监听他们的谈话,在不暴露自己的前提下就可对情况了如指掌。