内容正文:
灵活避开障碍物
机器人在运动过程中会遇到障碍,它必须避开障碍物到达终点。如何灵活避开障碍物呢?我们是通过给机器人配置检测障碍物的传感器,然后编写相应的程序来避开障碍物的。
一、机器人触碰程序
1.事件分析
在流程图编程中,我们需要用到“触碰传感器”模块来检测机器人是否碰到障碍物。若碰到则返回数值1,赋值给变量iTouch_1。
2.算法分析
机器人需要根据触碰传感器是否碰到障碍物这一条件做出判断:当机器人碰到障碍物时,让机器人转换方向前进;没有碰到障碍物时,则继续倒车。此过程一直重复。
能完成判断功能的模块叫“条件判断”模块,能实现程序的分支结构;能完成重复功能的模块叫“循环”模块,能实现程序的循环结构。它们在流程类程序模块中。
3.程序分析
(1)机器人模型;
(2)程序;
(3)编译并在仿真场地中运行程序。
二、机器人避障行进
运行前面的程序,我们发现机器人碰撞到障碍物后会被扣分,那么有没有办法可以让机器人在距离障碍物一定距离就发现它,就像蝙蝠一样,可以灵活自如地避开障碍物呢?
在程序中,要让机器人能“看”到障碍物,我们需要用到“超声波”模块来检测机器人前面是否有障碍物。“超声波” 模块是传感器类程序模块。它的功能是在一定距离内探测与障碍物的距离,返回一个大于0小于39的数值,该数值越大表示距离越远,返回值为感应距离,赋值给变量iDist_1。
实践
利用超声波传感器模块,请试着改编“碰撞”程序,使机器人在倒车过程离障碍物一定距离(如10米)就检测到障碍物,并能提前作出前进动作,避免发生碰撞。
参考提示:
(1)机器人模型。
在机器人后面中部放置超声波传感器,属性设置如图3-3-3所示。
(2)程序。
参考程序如图所示。
11
谢 谢
$$