萝卜圈三维机器人教程_第1页
萝卜圈三维机器人教程_第2页
萝卜圈三维机器人教程_第3页
萝卜圈三维机器人教程_第4页
萝卜圈三维机器人教程_第5页
已阅读5页,还剩59页未读 继续免费阅读

萝卜圈三维机器人教程.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

萝卜圈三维机器人教程 日期:2012/4/28 版本:1.3 萝卜圈三维机器人在线仿真平台 目录目录目录目录 第一章 开始机器人的探索之旅初步的构建及编程知识介绍. 1 1.1 让我们飞.1 1.2基本训练任务.6 1.3体验跑道竞速.16 1.4金字塔之旅.18 第二章 迷宫灭火程序设计的提高. 19 2.1 迷宫灭火.19 2.2迷宫灭火回家.23 2.3 迷宫灭火搜救回家.30 第三章 跑道竞速机器人结构的合理性的提高. 31 3.1 汽车悬挂系统模拟及前轮转弯.31 3.2 体验极速快感.40 3.3 两轮摩托车的跑法.42 第四章 3D 图书馆请开动你的头脑 . 43 4.1 路线选择和基本跑法.43 4.2 90度直角转弯变形金刚?.50 4.3 手臂的模拟.56 第五章 野外生存更快更高更强. 58 5.1三种基本跑法.58 5.2爬绳索与过吊桥的结合跑法.61 5.3石板桥与过吊桥的结合跑法.62 萝卜圈三维机器人在线仿真平台 1 第一章开始机器人的探索之旅第一章开始机器人的探索之旅第一章开始机器人的探索之旅第一章开始机器人的探索之旅 初步的构建及编程知识介绍初步的构建及编程知识介绍初步的构建及编程知识介绍初步的构建及编程知识介绍 同学们,你能想象出吗?在几千米深的大洋底部,机器人在连接或修复海底的电缆; 在餐厅里,机器人侍者在为顾客提供优质服务;在医院的手术台前,机器人在为病人做开颅 手术这些并非科学幻想,它们正在或将要成为现实。那么,目前世界上机器人技术发展 到了什么样的水平,又在哪些领域得到了应用?现在,让我们萝卜圈的仿真机器人系统,了 解机器人吧。 1.11.11.11.1 让我们飞让我们飞让我们飞让我们飞 很多同学都有自己的飞行梦,现实我们很难自由的构建自己的飞行器,现在我们通过 萝卜圈的仿真系统来构建属于自己的飞行器吧! 通过本节课的学习,你将能够: 初步掌握机器人构建的基本技巧初步掌握机器人构建的基本技巧初步掌握机器人构建的基本技巧初步掌握机器人构建的基本技巧。 初步掌握编程的基本方法以及通过任务场景欣赏自己的作品初步掌握编程的基本方法以及通过任务场景欣赏自己的作品初步掌握编程的基本方法以及通过任务场景欣赏自己的作品初步掌握编程的基本方法以及通过任务场景欣赏自己的作品。 一一一一、机器人构建机器人构建机器人构建机器人构建 构建好之后,保存退出。文件名:飞。 思考:1、为什么风扇叶左右不会碰撞的话,前后一定也不会碰撞? 2、飞行器的构建首先要注意什么问题? 3、为什么要反转电机? 萝卜圈三维机器人在线仿真平台 2 二二二二、程序编写程序编写程序编写程序编写 写好之后,保存退出。文件名:飞。 三三三三、选择选择选择选择“训练训练训练训练- - - -前进前进前进前进”场景场景场景场景,查看效果查看效果查看效果查看效果。 四四四四:如何才能安全降落如何才能安全降落如何才能安全降落如何才能安全降落? 1、结构的改进:添加一个距离传感器,注意设置端口号。 2、程序的改进:添加一个条件循环让飞行器飞行3秒后开始下降 萝卜圈三维机器人在线仿真平台 3 当满足条件时,以28的电机速度下降 电机速度设置为28 思考:飞行器下降时的电机设置应注意什么问题? 注意注意注意注意:1.3版在电机开始飞行之前设置版在电机开始飞行之前设置版在电机开始飞行之前设置版在电机开始飞行之前设置3秒延时秒延时秒延时秒延时 巩固与提高巩固与提高巩固与提高巩固与提高:利用直升机控制器构建飞行器利用直升机控制器构建飞行器利用直升机控制器构建飞行器利用直升机控制器构建飞行器 萝卜圈三维机器人在线仿真平台 4 小节:通过本节的学习我们学到了什么? 1、_ 2、_ 拓展:直流电机驱动说明 直流电机(如图 1)是一种驱动轴可连续旋转的驱 动模块,其旋转速度可调,转向可正转或反转。 直流电机通常用于机器人运动。4个直流电机配合 轮子,可实现机器人的前进、后退、左转、右转和停止 等动作, 几乎所有采用轮式运动的机器人都要使用直流 电机。 在驱动直流电机时,可设置其速度和转向,或使其 停止。萝卜圈仿真中的直流电机的速度通常在0-20之 间,一般应用可使用10的速度。 直流电机有2种安装点,方形安装点用于安装,圆 形安装点为驱动轴。驱动直流电机时,其圆形安装点上安装的部件可以转动。正转正转正转正转/反转反转反转反转:默默默默 认的旋转方向定义为认的旋转方向定义为认的旋转方向定义为认的旋转方向定义为:从直流电机内部向驱动轴方向看从直流电机内部向驱动轴方向看从直流电机内部向驱动轴方向看从直流电机内部向驱动轴方向看,逆时针方向转动是正转逆时针方向转动是正转逆时针方向转动是正转逆时针方向转动是正转,顺时针方向是反转顺时针方向是反转顺时针方向是反转顺时针方向是反转。设设设设 置为置为置为置为“反转电机反转电机反转电机反转电机”旋转方向相反旋转方向相反旋转方向相反旋转方向相反。 直流电机属性设置直流电机属性设置直流电机属性设置直流电机属性设置 直流电机可设置名称、端口、反转电机等属性(图 2) 。 名称名称名称名称:直流电机在添加到编辑区时会自动按序号命名(第1个除外) ,修改成有意义的 名称有助于在编程时识别具体的直流电机。 端口端口端口端口:所有要驱动的直流电机都需要为其分配一个端口,可用范围为130。在编写控 制程序时,没有分配端口的直流电机不会出现在直流电机列表中,无法使用。 反转电机反转电机反转电机反转电机:选中“反转电机”属性时,控制程序在驱动其正转时,直流电机反转,反之 驱动轴 图 1 直流电机 萝卜圈三维机器人在线仿真平台 5 正转。 通常情况下,4轮结构的机 器人将左侧2个直流电机设为反 转,右侧2个不设置反转。在编 程时驱动机器人时,可按照一般 思维设置左、右两侧的转向,如 直行都正转,左转左侧 反转、右侧正转等。 相关编程模块相关编程模块相关编程模块相关编程模块 图形化编程中与直流电机相 关的编程模块有 “驱动” 类的 “直 流电机驱动” 、 “多直流电机驱 动” 、 “停止直流电机” 、 “停止所有直流电机”4个模块,如图 3所示。 “直流电机驱动直流电机驱动直流电机驱动直流电机驱动”用于驱动单个直流电机。此模块有2个容器,左容器放置表示直流 电机端口号的整型类模块,可放置“机器人端口” 、 “常量int” 、 “变量int”等模块。右容器 放置设置直流电机的速度和转向的整型类模块,可放置“常量int” , “变量int”等,数值为 正时直流电机正转,为负时反转。 “多直流电机驱动多直流电机驱动多直流电机驱动多直流电机驱动” 用于驱动一个或多个直流电机。 此模块没有容器, 在其属性面板 (如 直流电机名称 在编程时便于识别 选择直流电机端口 用于程序驱动 选择“反转电机”时 实际转向与程序设 置相反 图 2 直流电机属性 多直流电机驱动 图 3 直流电机相关编程模块 直流电机驱动 停止直流电机 停止所有直流电机 图4多直流电机属性设置 选择驱动,速度8,正转 选择驱动,速度8,反转 不驱动,保持之前的状态 萝卜圈三维机器人在线仿真平台 6 图 4)中列出机器人上所有的直流电机,选择需要驱动的直流电机,输入其速度和设置转 向,未选择的直流电机不会被驱动,保持之前的驱动状态。 “停止直流电机停止直流电机停止直流电机停止直流电机”用于停止一个或多个直流电机。此模块没有容器,在属性面板中选择 需要停止的直流电机,未选择的直流电机保持之前的状态。 “停止所有直流电机停止所有直流电机停止所有直流电机停止所有直流电机”用于停止机器人上所有直流电机。此模块没有容器,也无需设置 参数,使用此模块将停止机器人上所有的直流电机。 1.21.21.21.2 基本训练任务基本训练任务基本训练任务基本训练任务 本节我们以训练任务为线索,通过完成训练任务,进一步提高自己的构建机器人和程 序的设计能力。 通过本节课的学习,你将能够: 利用模板利用模板利用模板利用模板构建构建构建构建机器人机器人机器人机器人的基本技巧的基本技巧的基本技巧的基本技巧。 区分飞行与车行结构上不同区分飞行与车行结构上不同区分飞行与车行结构上不同区分飞行与车行结构上不同,初步了解伺服电机的使用初步了解伺服电机的使用初步了解伺服电机的使用初步了解伺服电机的使用。 1.2.1训练前进 一一一一、机器人构建机器人构建机器人构建机器人构建 这么复杂的机器人其实可以通过创建模板,就可以很简单的做出来。文件名:训练 萝卜圈三维机器人在线仿真平台 7 二、程序编写 写好之后,保存退出。文件名:训练。 三三三三、选择选择选择选择“训练训练训练训练- - - -前进前进前进前进”场景场景场景场景,查看效果查看效果查看效果查看效果。 四四四四:变形变形变形变形? 结构改进:更换较轻的轮子 萝卜圈三维机器人在线仿真平台 8 程序改进: 将左右手臂旋转 90 度 延时 500 直流电机启动,开始前行,速度设置改为 7 前行 4 秒 将头部和左右手臂的电机启动,以 43 的速度 效果如何?看一下!你的机器人飞 起来了么? 萝卜圈三维机器人在线仿真平台 9 思考:如果将伺服电机转动的角度改变一下,会怎样? 巩固与提高巩固与提高巩固与提高巩固与提高:独立完成训练独立完成训练独立完成训练独立完成训练后退任务的程序设计后退任务的程序设计后退任务的程序设计后退任务的程序设计 小节:通过本节的学习我们学到了什么? 1、_ 2、_ 拓展:伺服电机驱动说明 说明说明说明说明 伺服电机(图 9)是一种驱动轴可旋转到指定角 度且可保持在此角度的驱动部件,伺服电机不能像直 流电机能连续旋转,其旋转角度为-180 +179。 伺服电机可用于控制机械手臂、 仿生类机器人 (昆 虫、动物) 、类人机器人或其它完成特定动作的机械结 构,通常情况下需要多个伺服电机配合使用。 在驱动伺服电机时,可直接设置其目标角度,或 使用高级模块使其平滑转动。伺服电机在仿真开始时 总是处于0的角度。 伺服电机有2种安装点,方形安装点用于安装, 圆形安装点为驱动轴。驱动伺服电机时,其圆形安装点上安装的部件可转动。 相关编程模块相关编程模块相关编程模块相关编程模块 与伺服电机相关的编程模块有“驱动”类中的“伺服电机驱动” 、 “多伺服电机驱动” 、 “多伺服步进驱动” 、 “多伺服总时间驱动”4个模块,如图 10所示。 “伺服电机驱动伺服电机驱动伺服电机驱动伺服电机驱动”是基本驱动模块,将单个伺服电机从当前角度直接驱动到目标角度。 此模块有2个容器,左容器放置表示伺服电机端口号的模块,可放置“机器人端口” 、 “常 量int” 、 “变量int”等。右容器放置表示伺服电机角度值的模块,可放置“常量int” 、 “变量 int”等。 “多伺服电机驱动多伺服电机驱动多伺服电机驱动多伺服电机驱动” 是基本驱动模块, 将一个或多个伺服电机从当前角度直接驱动到目 标角度。此模块没有容器,在属性面板中列出了机器人所有的伺服电机,选择需要驱动的伺 服电机,并输入其目标角度。 “多伺服步进驱动多伺服步进驱动多伺服步进驱动多伺服步进驱动”是高级驱动模块,将一个或多个伺服电机从当前角度,按照指定的 步进角度,以指定的间隔时间驱动到目标角度。此模块没有容器,在属性面板中设置其驱动 参数, “步进量(角度) ” 设置所有选择的伺服电机每次改变的角度差值, “间隔时间(毫秒) ” 设置两次步进之间的等待时间, “伺服电机列表”中选择需要驱动的伺服电机, “值”输入目 驱动轴 图 1 伺服电机 伺服电机驱动 多伺服电机驱动 多伺服步进驱动 多伺服总时间驱动 图 2 伺服电机相关编程模块 萝卜圈三维机器人在线仿真平台 10 标角度,不选择的伺服电机不被驱动。此模块为堵塞执行,执行时间约为: 执行时间 = (最大角度差 步进量) 间隔时间 此模块驱动时,同时驱动所有选择的伺服电机,直到所有伺服电到达目标角度。角度差 较小的伺服电机先达到目标角度,并保持不动,等待角度差较大伺服电机到达目标角度。 “多伺服总时间驱动多伺服总时间驱动多伺服总时间驱动多伺服总时间驱动” 是高级驱动模块, 将一个或多个伺服电机从当前角度在指定时间 内自动匀速驱动到目标角度。在属性面板中设置其驱动参数, “驱动总时间(毫秒) ”设置驱 动的总时间, “伺服电机列表”中选择需要驱动的伺服电机, “值”输入目标角度,不选择的 伺服电机不被驱动。此模块会自动计算每次驱动时,每个伺服电机的步进量和间隔时间。一 般情况下,多个不同差值的伺服电机驱动时,差值较大伺服电机旋转较快,差值较小的伺服 电机旋转较慢,整体效果为同时到达目标角度。此模块为堵塞执行,执行时间为“驱动总时 间”的设定时间。 当前角度当前角度当前角度当前角度:伺服电机在执行某种驱动之前时的角度,进入仿真后,所有伺服电机的“当 前角度”为0。 目标角度目标角度目标角度目标角度:伺服电机要旋转到的角度(范围-180 +179) 。设置的目标角度小于-180 时,伺服电机旋转到-180时不再旋转,大于179时,转到179不再旋转。 角度差角度差角度差角度差:当前角度与目标角度的差值。 1.2.2 训练训练训练训练左转左转左转左转 通过本节课的学习,你将能够: 初步掌握指南针及距离探测器的使用初步掌握指南针及距离探测器的使用初步掌握指南针及距离探测器的使用初步掌握指南针及距离探测器的使用。 初步掌握转弯程序的构建初步掌握转弯程序的构建初步掌握转弯程序的构建初步掌握转弯程序的构建。 一一一一、机器人构建机器人构建机器人构建机器人构建 文件名:左转 注意注意注意注意:不要忘记给探测器设置端口号不要忘记给探测器设置端口号不要忘记给探测器设置端口号不要忘记给探测器设置端口号 萝卜圈三维机器人在线仿真平台 11 二、程序编写 当距离探测3000时, 条件循环成立, 执行循环内程序 左转至90度 直行 思考:为什么要设置这样的判断 条件?当从0度右转1度是多少度? 三三三三、选择选择选择选择“训练训练训练训练- - - -左转左转左转左转”场景场景场景场景,查看效果查看效果查看效果查看效果。 四四四四、汽车差速转弯的模拟汽车差速转弯的模拟汽车差速转弯的模拟汽车差速转弯的模拟 萝卜圈三维机器人在线仿真平台 12 程序改进: 巩固与提高巩固与提高巩固与提高巩固与提高:独立完成训练独立完成训练独立完成训练独立完成训练右转右转右转右转任务的程序设计任务的程序设计任务的程序设计任务的程序设计 小节:通过本节的学习我们学到了什么? 1、_ 2、_ 拓展:传感器说明 距离传感器距离传感器距离传感器距离传感器 说明说明说明说明 距离传感器用于检测传感器前方与物体之间的距离,返回值为03000的整型数值。距 离传感器最大检测距离为3000,超出其检测范围时返回3000。 距离传感器在工作时会发射一条蓝白相间的射线, 指示其检测的方向和检测范围。 射线 照射到物体上表示检测到了此物体,射线会被此物体截断。 距离传感器常用于检测机器人某个方向有无物体及物体的距离。 当距离传感器的返回值 小于3000时表明此传感器的前方(3000范围内)有物体,具体的数值表示与物体的距离。 相关编程模块相关编程模块相关编程模块相关编程模块 与距离传感器相关的编程模块是“侦测”类中的“距离”模块,此模板获取指定的距离 传感器的返回值,其返回值为整形。模块为容器内模块,不能连接,可放置到赋值、逻辑类 的关系表达式、运算类等模块容器内,在属性面板中选择要获取返回值的距离传感器。 障碍传感器障碍传感器障碍传感器障碍传感器 萝卜圈三维机器人在线仿真平台 13 说明说明说明说明 障碍传感器用于判断在指定的检测距离内有无障碍物,检测到障碍时返回1,没检测到 障碍时返回0。障碍传感器默认的检测距离为500,最大检测距离为500,最小检测距离为 1。 障碍传感器在工作时会发射一条蓝白相间的射线, 指示其检测的方向和距离, 射线照射 到物体上表示检测到了此物体,射线会被此物体截断。 障碍传感器常用于检测特定的范围内有无物体, 并不关心与物体的具体距离。 如迷宫灭 火项目中常使用障碍传感器用于走迷宫。 相关编程模块相关编程模块相关编程模块相关编程模块 与障碍传感器相关的编程模块有“侦测”类中的“障碍” 、 “驱动”类中的“传感器设置” 和“简便传感器设置” 。 “障碍”模块用于获取返回值, “传感器设置”和“简便传感器设置” 用于设置障碍传感器的检测距离。 “障碍”模块用于获取指定的障碍传感器的返回值,其返回值为整型。模块为容器内模 块,不能连接,可放置到赋值、逻辑类的关系表达式,运算类等模块容器内,在属性面板中 选择要获取返回值的距离传感器。 “传感器设置”模块用于设置障碍传感器的检测距离。此模块有2个容器,左容器放 置需要设置的障碍传感器的端口号,可放置“机器人端口” 、 “常量int” 、 “变量int”等。右 容器放置设置的检测距离,可放置“常量int” 、 “变量int”等。 “简便传感器设置” 模块用于设置障碍传感器的检测距离。 此模块在属性面板中选择要 设置的障碍传感器,在右容器中放置要设置的检测距离的模块,可放置“常量int” 、 “变量 int”等。 障碍传感器的检测距离有效范围为1500,不在此范围时自动设为500。 灰度传感器灰度传感器灰度传感器灰度传感器 说明说明说明说明 灰度传感器将检测到的各种颜色转换成灰度值,使用0255的数值表示,其检测距离 固定为5。转换方式依照计算机图像学公式进行转换,纯白色的灰度值为255,纯黑色的灰 度值为0。 灰度传感器常用于检测颜色的区别,如轨迹类任务用于区分黑色轨迹线和灰白色地面。 为了提高机器人仿真效率, 通常只有与任务相关的指定物体的颜色可以被灰度传感器检 测到,如轨迹、跑道、迷宫场地、颜色标记等。而大的地形、草地、山、建筑、家具等物体, 在灰度检测到时总是返回0。 相关编程模块 与灰度传感器相关的编程模块有“侦测”类中的“灰度”模块,此模块获取灰度传感器 的返回值,其返回值为整型。模块为容器内模块,不能连接,可放置到赋值、逻辑类的关系 表达式、运算类等模块容器内,在属性面板中选择要获取返回值的灰度传感器。 光线传感器光线传感器光线传感器光线传感器 说明说明说明说明 光线传感器用于检测其前方的光线强度。理想条件下,光线传感器在0距离检测1坎 萝卜圈三维机器人在线仿真平台 14 德拉发光强度的光源时返回值为1000,即在0距离、0角度检测1支蜡烛时,其返回值为 1000。光线传感器距离光源越近返回值越大,反之越小;与光源的夹角越小返回值越大, 反之越小。 光线传感器通常用于检测迷宫灭火中的蜡烛、足球比赛中的发光足球等。 光线传感器与1坎德拉发光强度的光源在0度夹角的情况时,返回值与光源距离的关 系如图 28所示。 光线传感器在安装时, 应与要检测到的光源的中心保持在同一水平线, 其前方不要有遮 挡物,为扩大检测的范围,可以在不同的方向安装多个光线传感器。 相关编程模块 与光线传感器相关的编程模块有“侦测”类中的“光线”模块,此模块获取光线传感器 返回值,其返回值为整型。模块为容器内模块,不能连接,可放置到赋值、逻辑类的关系表 达式、运算类等模块容器内,在属性面板中选择要获取返回值的光线传感器。 接触传感器接触传感器接触传感器接触传感器 说明说明说明说明 接触传感器用于检测其前方是否与其它物体接触, 当其前方接触到其它物体时, 返回1, 没有接触到其它物体时返回0。 接触传感器常用于检测机器人某个方位是否接触到其它物体, 一般安装到机器人最外缘 的位置,使之能最先接触到其它物体。 相关编程模块 与接触传感器相关的编程模块是“侦测”类中的“接 触”模块,此模块获取接触传感器返回值,其返回值为整 型。模块为容器内模块,不能连接,可放置到赋值、逻辑 类的关系表达式、运算类等模块内,在属性面板中选择要 获取返回值的距离传感器。 指南针传感器指南针传感器指南针传感器指南针传感器 图 3 光线传感器检测曲线 萝卜圈三维机器人在线仿真平台 15 说明说明说明说明 指南针传感器用于获取方向,返回其前方(指南针上标有“N” (北方)的方向)与场 景的正北(+Z轴)方向的夹角,返回值为0359度。 指南针传感器常用于使机器人转到某个方向,或使机器人沿某个方向行进。 使用指南针传感器时需要水平安装,且指针面朝上,否则可能无法正常工作。 相关编程模块相关编程模块相关编程模块相关编程模块 与指南针传感器相关的编程模块有“侦测”类中的“指南针”模块,此模块获取指南针 传感器的返回值,其返回值为整型。模块为容器内模块,不能连接,可放置到赋值、逻辑类 的关系表达式、运算类等模块容器内,在属性面板中选择要获取返回值的指南针传感器。 海拔高度计海拔高度计海拔高度计海拔高度计 说明说明说明说明 海拔高度计返回传感器相对海平面的垂直距离, 返回值为整型。 萝卜圈仿真场景的海平 面是Y轴坐标为0的XZ平面, 海拔高度计的位置高于海平面时返回正值, 低于海平面时返 回负值。 海拔高度计常用于检测机器人的行进过程中的高度变化。 相关编程模块相关编程模块相关编程模块相关编程模块 与海拔高度计相关的编程模块有“侦测”类中的“海拔”模块,此模块获取海拔高度计 的返回值,其返回值为整型。模块为容器内模块,不能连接,可放置到赋值、逻辑类的关系 表达式、运算类等模块容器内,在属性面板中选择要获取返回值的海拔高度计。 延时模块延时模块延时模块延时模块 说明说明说明说明 “延时”模块是编程模块,此模块是堵塞执行,程序等待指定的时间后再执行下面的模 块。使用此模块可使机器人保持当前状态一定时间,如停止1秒,保持前进2秒,转弯0.5 秒等。 计时计时计时计时 说明说明说明说明 计时是编程模块, 常用于控制某段程序或子程序执行指定的时间, 或计算某段程序执行 的时间。有“驱动”类中的“开始计时”和“获取计时”2个模块。 “开始计时”模块设置计时开始并将计时时间清0,下次获取的计时时间从当前时刻开 始。在使用“计时”之前必须至少使用一个“开始计时” ,否则“计时”模块的返回值将不 确定。 “计时”模块用于获取从上次开始计时到当前经过的时间,单位为毫秒。 计时类模块与“延时”的区别为:延时模块在执行时无法执行其它程序模块,必须等待 其执行完毕。而计时类模块可看作是系统自动更新的时间“变量” ,程序在需要时获取这个 “变量”的值或清空其值。 因此, 在使用计时类模块时,可以同时执行其它模块、子程序等。 萝卜圈三维机器人在线仿真平台 16 1.1.1.1.3 3 3 3 体验跑道竞速体验跑道竞速体验跑道竞速体验跑道竞速 一一一一、机器人构建机器人构建机器人构建机器人构建 文件名:走轨迹 二二二二、程序设计程序设计程序设计程序设计 文件名:走轨迹 如果左侧灰度100,则左转 如果右侧灰度100,则右转 如果都没有则直行 萝卜圈三维机器人在线仿真平台 17 三三三三、选择选择选择选择“训练训练训练训练- - - -走轨迹走轨迹走轨迹走轨迹”场景场景场景场景,查看效果查看效果查看效果查看效果。 四四四四、体验跑道竞速体验跑道竞速体验跑道竞速体验跑道竞速 结构改进: 思考:换用较重的控制器为什么可以以更快的速度行进? 注注注注:前面的蓝色块前面的蓝色块前面的蓝色块前面的蓝色块,可以有个小角度的抬头可以有个小角度的抬头可以有个小角度的抬头可以有个小角度的抬头,2 2 2 2 度角就可以度角就可以度角就可以度角就可以。换用较轻的直流电机目的是减换用较轻的直流电机目的是减换用较轻的直流电机目的是减换用较轻的直流电机目的是减 少整个车身的重量少整个车身的重量少整个车身的重量少整个车身的重量,该场景限制车身重量该场景限制车身重量该场景限制车身重量该场景限制车身重量1500 1500 1500 1500 。 程序改进: 萝卜圈三维机器人在线仿真平台 18 注注注注:整个程序基本不变整个程序基本不变整个程序基本不变整个程序基本不变,注意将原来左转的改为右转注意将原来左转的改为右转注意将原来左转的改为右转注意将原来左转的改为右转,灰度灰度灰度灰度180180180180 即可即可即可即可。 巩固提高巩固提高巩固提高巩固提高:继续改进结构继续改进结构继续改进结构继续改进结构,提高成绩提高成绩提高成绩提高成绩。 小节:通过本节的学习我们学到了什么? 1、_ 2、_ *1.4 *1.4 *1.4 *1.4 金字塔之旅金字塔之旅金字塔之旅金字塔之旅 本节为综合技能实践课本节为综合技能实践课本节为综合技能实践课本节为综合技能实践课。利用萝卜圈的网络利用萝卜圈的网络利用萝卜圈的网络利用萝卜圈的网络 pkpkpkpk 功能功能功能功能,4 4 4 4 人一组人一组人一组人一组,组织学生比赛组织学生比赛组织学生比赛组织学生比赛。本节课设本节课设本节课设本节课设 置的目的是通过竞赛的形式置的目的是通过竞赛的形式置的目的是通过竞赛的形式置的目的是通过竞赛的形式,提高学生的综合技能的掌握提高学生的综合技能的掌握提高学生的综合技能的掌握提高学生的综合技能的掌握。学生在想更快学生在想更快学生在想更快学生在想更快、更稳的过程中更稳的过程中更稳的过程中更稳的过程中 体验体验体验体验、提高提高提高提高。 萝卜圈三维机器人在线仿真平台 19 第二章第二章第二章第二章 迷宫灭火迷宫灭火迷宫灭火迷宫灭火程序设计的提高程序设计的提高程序设计的提高程序设计的提高 在这一章的学习中, 我们会通过三种模式的迷宫任务, 使我们对传感器和程序设计有一 个进一步的认识和提高。 我们在这一章更关注的是程序设计的合理性和技巧程序设计的合理性和技巧程序设计的合理性和技巧程序设计的合理性和技巧, 通过的学习使 同学们能够自己自己设计判断程序,使我们的机器人带有一定的智慧! 2.12.12.12.1 迷宫灭火迷宫灭火迷宫灭火迷宫灭火 一一一一、左手法则左手法则左手法则左手法则:让机器人沿墙壁的左侧行驶,那么机器人一定可以走完全部靠墙的房间。同 理,若让机器人沿右侧行驶,也一定可以走完,称为右手法则。 名 称 前中控制(右转控 制) 左前控制 (差速右转 控制) 左后控制(直行控 制) 左转控制 作 用 当前方有障碍物 时,使车身右转 当左前有障碍时, 使 车身右差速行驶, 离 开墙壁一些距离。 当左后有障碍时, 使 车身直行 当所有障碍检测为0 时,使车身左转 示 意 图 电 机 设 置 判 断 条 件 障碍中 障碍左前 障碍左后 前三者都为0 二二二二、构建机器人构建机器人构建机器人构建机器人 萝卜圈三维机器人在线仿真平台 20 注意 3 个光线传感器 及 3 个障碍传感器的 位置, 及直流电机的位 置。 三三三三、程序编写程序编写程序编写程序编写 下图为程序主体部分 萝卜圈三维机器人在线仿真平台 21 为 3 个障碍传感器赋值,依次为左后、左前、前中 用三个光线传感器的“或”判断,确定车身所处位置为:前方有光源前方有光源前方有光源前方有光源 If 判断的两个分支:若不成立则继续用“迷宫”子程序探 索;若成立则执行灭火程序。在“灭火”子程序前的电机 速度为 8 的前行 200 毫秒延时的模块,可以理解为“迷宫” 和“灭火”两个子程序之间的缓冲或者衔接。 下图为迷宫子程序的 VPL 程序图, 相关电机 设置参照左手法则的图表设置 障碍判断依次为:中、左前、左后。注意注意注意注意: 判断条件同时满足两个或两个以上时判断条件同时满足两个或两个以上时判断条件同时满足两个或两个以上时判断条件同时满足两个或两个以上时, 前前前前面面面面 的判断优先的判断优先的判断优先的判断优先。 萝卜圈三维机器人在线仿真平台 22 下图为灭火子程序的 VPL 程序图 思考思考思考思考:若下图此判断条件成立说明机器人在什么位置若下图此判断条件成立说明机器人在什么位置若下图此判断条件成立说明机器人在什么位置若下图此判断条件成立说明机器人在什么位置? 思考思考思考思考:若下图左侧光线传感器若下图左侧光线传感器若下图左侧光线传感器若下图左侧光线传感器- - - -右侧光线传感器右侧光线传感器右侧光线传感器右侧光线传感器20202020 说明机器人车身与蜡烛的位置关系如说明机器人车身与蜡烛的位置关系如说明机器人车身与蜡烛的位置关系如说明机器人车身与蜡烛的位置关系如 何何何何?以蜡烛为基准以蜡烛为基准以蜡烛为基准以蜡烛为基准,偏向那边偏向那边偏向那边偏向那边? 若条件成立时的差速转弯电机设置 萝卜圈三维机器人在线仿真平台 23 当下图这两个条件当下图这两个条件当下图这两个条件当下图这两个条件都都都都不满足时不满足时不满足时不满足时,说明车身与蜡烛位置什么关系说明车身与蜡烛位置什么关系说明车身与蜡烛位置什么关系说明车身与蜡烛位置什么关系? 试一试,下图模块你自己能看懂么? 通过电机端口赋值的方法可以不用通过属性面板来实现电机的 设置,你注意到了吗? 注意这个停止电机与上面的停止所注意这个停止电机与上面的停止所注意这个停止电机与上面的停止所注意这个停止电机与上面的停止所有电机的有电机的有电机的有电机的差别差别差别差别 此为卢俊工程师的恶搞,大家不用理会 O(_)O 哈哈 巩固提高巩固提高巩固提高巩固提高:在整个程序中在整个程序中在整个程序中在整个程序中仍仍仍仍有有有有很很很很多可以优多可以优多可以优多可以优化化化化的的的的地地地地方方方方,大家大家大家大家用自己的方法进行改进用自己的方法进行改进用自己的方法进行改进用自己的方法进行改进。 小节:通过本节的学习我们学到了什么? 1、_ 2、_ 2.22.22.22.2 迷宫灭火回家迷宫灭火回家迷宫灭火回家迷宫灭火回家 本节内容是在上节的基础上,在灭火之后回到起始位置。“回家回家回家回家”的的的的难点难点难点难点在在在在于于于于,我们我们我们我们如如如如 何能何能何能何能够让够让够让够让机器人自己机器人自己机器人自己机器人自己知道知道知道知道,它它它它是在那个是在那个是在那个是在那个房房房房间灭火的间灭火的间灭火的间灭火的呢呢呢呢?我们注意到机器人在灭火过程中, 不需要知道是在什么房间,而在不同房间灭火,机器人所机器人所机器人所机器人所走走走走过的过的过的过的路路路路程是不同的程是不同的程是不同的程是不同的,那么机器那么机器那么机器那么机器 人所用的时间人所用的时间人所用的时间人所用的时间也也也也是不同的是不同的是不同的是不同的,由此分析,我们可以通过设置不同的计时判断不同的计时判断不同的计时判断不同的计时判断机器人是在那个 房间灭火的,再根据机器人在不同房间的位置来决定回家的路线。注注注注:灭火之后不能进灭火之后不能进灭火之后不能进灭火之后不能进入其入其入其入其 他房他房他房他房间间间间。 萝卜圈三维机器人在线仿真平台 24 在以上的分析中的几个问题: 1、用什么确定机器人灭火的房间? 2、不同房间回家的路线相同吗? 一、不同房间回家路线的选择 分析: 1、从 1 房间返回思路:可以让车倒行,沿墙壁的右侧返回。 2、从 2 房间返回思路:先是继续以左手法则前行至路口,改为右手法则返回。 从 2 房间返回至路口判断可以通过计时控制判定。 3、从 3 房间返回思路:继续以左手法则前行即可返回。 4、从 4 房间返回思路:以右手法则返回。 5、无论从哪个房间返回,都可以以灰度判断是否回到起点。 6、在前面灭火程序的基础上,继续进行改进即可,前面灭火模块不变。 7、右手法则和后行右手法则的程序设定,可以通过参照左手法则进行设定,并构建响 萝卜圈三维机器人在线仿真平台 25 应的子程序 二、从 1 房间返回 1、后行右手法则程序与左手法则对照图 左 后前 左前 后左 中 左 后 左 后 通过上面图表同学们发现有什么规律吗? 萝卜圈三维机器人在线仿真平台 26 理解之后,后行右手法则程序,可以通过复制粘贴的方法构建。 2、下面是迷宫后行子程序的 VPL 程序图 3、右手法则与左手法则应该有什么关系?同学们尝试自己填写下面表格 左 右 左 右 1(9)2(9)3(-9)4(-9) 1(12)2(12)3(5)4(5) 1(7)2(7)3(7)4(7) 1(1)2(1)3(13)4(13) 4、构建右手法则的 VPL 程序 5、从 1 房间返回的 VPL 子程序图 萝卜圈三维机器人在线仿真平台 27 注意注意注意注意:机器人灰度探测器要机器人灰度探测器要机器人灰度探测器要机器人灰度探测器要添加添加添加添加,同学同学同学同学们们们们思考为什么要这思考为什么要这思考为什么要这思考为什么要这样样样样设置设置设置设置? 灰度探测器位置图 添加灰度探测器位置 原灰度探测器位置 三、从 2 房间返回 萝卜圈三维机器人在线仿真平台 28 四、从 3 号房间返回 五、从 4 号房间返回 六、迷宫灭火回家主程序 萝卜圈三维机器人在线仿真平台 29 萝卜圈三维机器人在线仿真平台 30 巩固提高巩固提高巩固提高巩固提高:如如如如果我们果我们果我们果我们的机器人探测的机器人探测的机器人探测的机器人探测到到到到 1 1 1 1 房房房房间间间间没没没没有光线有光线有光线有光线,能不能不进能不能不进能不能不进能不能不进入入入入 1 1 1 1 房房房房间间间间?同同同同样样样样的的的的道道道道理理理理, 我们我们我们我们能不能能不能能不能能不能很很很很快的快的快的快的从其他没从其他没从其他没从其他没有光线的有光线的有光线的有光线的房房房房间中间中间中间中出出出出来来来来,继续探继续探继续探继续探索索索索下一个下一个下一个下一个房房房房间间间间呢呢呢呢? 小节:通过本节的学习我们学到了什么? 1、_ 2、_ * * * *2.2.2.2.3 3 3 3 迷宫灭火迷宫灭火迷宫灭火迷宫灭火搜救搜救搜救搜救回家回家回家回家 在上一节中,我们已经将迷宫程序的难点解决。本节在上节的基础上添加了“搜救”模 块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论