机器人编程第二步:具体问题具体分析

经过第一步分解任务后,接下来就要具体分析每一步是如何实现。
基本上到这里,孩子们都喜欢直接冲到电脑前开始写程序,但是呢,往往一堆问题,复杂点的任务更是写着写着就懵了。
虽然我们已经分解了任务,但只是一个初略的分解,具体每一步的如何实现,前面的分解步骤是否有纰漏,是否合理,这些是需要我们具体来分析一下的。
这一步我们需要写出每个步骤的具体完成动作,是那个传感器在发挥作用,各个马达应该如何运转。如下入所示。

下面我们来具体分析一下。
记得还在初中的时候,在《智慧背囊》(暴露年龄了)里有这么个故事:有个记者采访一个滑雪冠军,问他怎么学好滑雪,冠军说:你要先知道怎么停下来。
就像永动机是个伪命题一样,我不认为这世上有永远没有结束的事,大到太阳,看似永恒,可是50亿年后也会因为内部的氢元素全部耗尽,导致核心将发生坍缩。小到我们每天吃饭,我们不会一顿饭从早吃到晚,从今天吃到明天,当我们饱了,不想吃了,或者饭吃完了,吃饭这个事也就结束了。
所以对于我们机器人任务的每一步,“你要先知道怎么停下来”,我们需要知道这一步什么时候结束。
以上节课的巡线任务为例。
第一步是直行。具体任务描述是从起点巡线到A点。这里其实有两层含义:一个是巡线,一个是这一步的结束标志是到达A点。如果不去关注每一步的结果,就会导致程序停留在这一步,无法结束。
那怎么判断到达A点呢,A点处是一个直角,可以用光电来做遇黑判断,单光电遇黑时,就可以停下来结束这一步了。
然后在考虑巡线,巡线可以用单光电巡线来完成,一般到这个地步的孩子对单光电巡线都不陌生,不过这里就还是多啰嗦一下,因为单光电巡线看似简单,但是还是很容易出错的。
单光电巡线根据光电在黑线的左边还是右边会有不一样的走法,在左边时,遇黑要左转,否则右转,在右边则是反过来。
上面这个过程看似复杂,但是我把这个过程总结为三个问题:是我是谁?我从哪里来?要到哪里去?开玩笑的,是:终止条件是什么?终止状态是什么?这一步要干嘛?这是那个问题又可以叫做三板斧,我自嗨一下,不用在意。

弄清楚这三个问题后,再具体看下这步干嘛怎么做

文章刚开始我说这个环节我们要具体到每个光电每个马达的状态,所以这步干嘛还要在细化:

于是我们就可以把任务分析表给填好了,就是最开始那张表。
有学生会说:老师,搞这么复杂干嘛?
因为前面不这么分析的细致一点,所有最后调试遇到的问题都在这些细节里,马达转动方向不对,光电跟马达的配合不当,等等。其实都可以通过这一步的分析来避免的。
按照上面的套路,我们把第二步的任务分析表也整出来。

这时候我们对比一下第一步跟第二步的终止条件会发现,两个都是右光电遇黑,这就意味着第二步的右转在开始的时候就结束了。真是出师未捷身先死,尴尬了。这里其实就是一个光电状态的问题,我们可以在第一步跟第二步之间增加一个小的环节,让光电离开黑线上的状态。

这里呢,有些学生喜欢把前冲这个动作放在第一步的终止状态里,不是不行,但是我建议单独设置一步,这样使整个分析结果更加清晰明了,遇到问题容易定位也容易修改。所以我们第一步的分解步骤,在这里就要做修改。
前进,前冲,右转,前进,前冲,左转,前进,前冲,右转,前进,停留2秒,后退,掉头,前进,前冲,右转,前进。
前三步的任务分析表如下图所示,后面的步骤跟前面大同小异,用相同的办法分析就行了。

限于篇幅,这里稍作补充下,对于经验丰富的学生,他们其实会发现,第一步的巡线其实可以从起点一步到B点的,因为对于直角弯,单光电巡线完全可以在外侧直接通过,不需要分解成两段直线。只要把双光电放在黑线左侧,用右光电来巡线就行了。如果是这样的话,我们的任务分解又要做修改了,我要去给老婆做饭了,没时间了,这里就偷懒一下啦,还是按前面的步骤来吧。
下一篇就是要开始写程序啦,下周见。

老规矩,可子镇楼。

~

#18991928211# 求软件开发流程详解 - ******
#正凤# 第一步:需求调研分析1相关系统分析员向用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面.2 系统分析...

#18991928211# 是关于自动机器人的编程问题? - ******
#正凤# 能不能具体点1:传感器采集 环境信息 2: 程序 控制器 根据 采集信息 发出 指令3:计算机指令数模转换为 开关控制器 继电器 这些 设备 驱动 各种传动机构 4:动作 机构 进行 相应 动作

#18991928211# 发那科喷涂机器人自动运行方式JOB - BIN如何设置 - ******
#正凤# 属于机器人编程的可以参考使用手册,有详细说明.

#18991928211# CNC编程问题 ******
#正凤# 第一步,打开电源,第二步,检查急停开关,第三步,回原点

#18991928211# 关于机器人制作的一些问题??我们组建了一个小组想做一个灭火机器人 ******
#正凤# 为了解决灭火的动力问题最先的方案,我们设计了一个象老鼠夹子一样的装置,安装到机器人上,当发现蜡烛的火焰后,机器人缓慢前进,并左右摆动,以火焰作为一个触发源,当火焰烧断灭火装置前端的细线后,装置上的拍子释放,狠狠地拍下去.

  • 机器人编程怎么入门
  • 答:机器人编程系统以及方法 机器人编程是机器人运动和控制问题的结合点,也是机器人系统最关键的问题之一。当前实用的工业机器人常为离线编程或示教,在调试阶段可以通过示教控制盒对编译好的程序一步一步地进行,调试成功后可投入...

  • 机器人编程怎么入门?
  • 答:2、机器人编程是机器人运动和控制问题的结合点,也是机器人系统最关键的问题之一。当前实用的工业机器人常为离线编程或示教,在调试阶段可以通过示教控制盒对编译好的程序一步一步地进行,调试成功后可投入正式运行。基本说明:...

  • ev3机器人的编程是什么样的?
  • 答:EV3机器人使用的编程软件有LEGO、MINDSTORMS、NXT、ROBOLAB。基于图形化语言的编程环境,适合各个年龄段的用户使用,程序的编写方式类似于做逻辑表达,不过是全部图形化的。EV3是乐高公司开发的第三代MINDSTORMS机器人,它无需...

  • 计算机程序设计主要学什么?
  • 答:其中,指针是C语言的难点,必须好好学习,才能灵活运用C语言。4、如何运用编程语言解决问题。编程语言只是工具,我们要学会运用编程语言解决问题。合理掌握编程语言,具体问题具体分析,这样这门课才算是学懂了。所以在学会编程...

  • 求解决这几题工业机器人的问题
  • 答:二:机器人的主要技术参数 机器人的技术参数反映了机器人可胜任的工作、具有的最高操作性能等情况,是设计、应用机器人必须考虑的问题。机器人的主要技术参数有自由度、关节(运动副)、分辨率、精度、工作空间、工作速度、工作...

  • 如何利用ROS MoveIt快速搭建机器人运动规划平台
  • 答:第二步就是把眼睛看到的数据转化为地图:ROS的gmapping把激光雷达的/scan数据转换为栅格map数据,其中黑色代表障碍物、白色代表空白区域,可以顺利通行、灰色:未知领域。随着机器人的移动,激光雷达可以在多个不同方位观测同一个位置是否有障碍...

  • 小学生机器人编程如何入门?
  • 答:对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此。如果去问一个程序员怎么学习一块技术,他必然让你去多编程。机器人领域也是。如果想把基本功打扎实,那么实践更是必不可少了。对于普通...

  • 儿童机器人编程入门应该学什么?
  • 答:二、学习基础机械结构和传动,如连杆结构、多级传动;通过超声波传感器的应用,学习基础的编程知识,如顺序结构、循环结构、条件判断等,培养学生编程思维及分析简单问题、解决问题能力。三、学习中等难度的机械结构和传动,如曲柄...

  • 编程机器人是学些什么东西
  • 答:这包括对机器人的控制逻辑、传感器信息采集、机器人动作规划等方面的学习。通过机器人编程,孩子们可以锻炼自己的逻辑思维、问题解决能力以及动手实践能力。第三,电子电路基础。机器人是一种复杂的智能产品,为了更好地进行编程...

  • 关于机器人编程要学习哪些知识?
  • 答:你所讲这几条,不具体接触机器人,不深入现场,基本上入门都算不上。比如第1至4条,我敢说很难找到这样的详细资料来帮助你具体解决安装、信号、调试、通讯、编程等等一系列复杂工程。我是从事汽车焊装和涂装机器人维修维护...

    为传递更多家电数码信息,若有事情请联系
    数码大全网