使用自动化功能
什么是自动化功能?
自动化功能可以让你在不使用任何代码的情况下,通过简单的配置就可以实现机器人的各种功能。比如你可以通过自动化功能来实现:在某个时间让机器人导航到某个位置,并说一句话。
如何使用自动化功能?
首先在客户端上方的导航栏中选择自动化菜单。然后就会打开下面的窗口(如果没有这个菜单可能是由于你尚未开通自动化功能,可以联系客服进行开通)。
主界面按照竖向分为三栏。分别是:运行中的程序,未运行的程序和示例。其中运行中的程序是指当前正在运行的程序,未运行的程序是指当前保存在机器人中但没有运行的程序,示例是指一些常用的程序示例。
界面中最上面上面有三个按钮,分别是创建新程序,导入程序和导出程序。导入和导出用于把程序从一个机器人导出到另一个机器人。
创建新程序
点击创建新程序后,显示如下内容
这个页面主要分为三部分,最左侧侧边栏是我们可以用的一些自动化组件,比如说:导航,语音合成,语音识别等等。中间的部分是我们的程序编辑区域。右侧一排按钮是我们的程序控制区域,包括:保存,调试,单步执行等等。
下面我们以一个简单的例子来说明如何使用自动化功能。我们的目标是让机器人等待5秒后说5秒钟到了,然后继续等待5秒后再说10秒钟到了。
首先从左侧菜单栏中选择常用
从中选择等待一秒这个组件并拉动到开始运行框内
然后修改等待时间为5秒
然后从左侧菜单栏中选择语音控制,然后从中拖出播放语音这个组件
将这个组件放置在等待五秒组件的下方
修改其语音内容为5秒钟到了
下面我们就可以直接复制上面的组件然后放置在其后面。可以用右键也可以直接通过Ctrl + C, Ctrl + V 进行复制。
全部设置完成之后我们点击右侧的开始运行按钮即可以开始执行程序了
当机器人执行到某个模块时,这个模块会被高亮。我们也可以通过这种方式了解模块执行的流程。如果一切正常那么我们的程序会在5秒后说5秒钟到了,然后再过5秒说10秒钟到了。
机器人播放语音需要保证机器人联网,这点要注意一下。
以上只是一个简单例子,我们通过自动化可以实现更复杂的功能。比如下面这个例子。如果机器人的电量小于20%就让它去充电,否则就让它导航到1号点。
只要我们熟悉这些组件,我们就可以让机器人完成非常复杂的工作。
上面的例子实际上执行一遍就会结束了。但是更实际的场景是我们需要机器人不断的判断是否满足某个条件,如果满足就执行某个动作,如果不满足就继续判断。这时候我们就需要用到循环了。
上面的例子中,我们让机器人不断的判断电量是否小于20%,如果小于20%就播放电量低的语音。注意其中的延时组件,如果在循环中没有延时,那么机器人会不断的执行循环,这样会导致机器人的CPU占用率非常高,所以我们需要在循环中加入延时,这样机器人就会在每次循环结束后等待一段时间再进行下一次循环。
至此你应该已经掌握了自动化的基本用法了。下面介绍一下具体的组件。
组件介绍
常用
常用组件中包含的比较杂,总而言之就是一些比较常用的组件。
系统信息
系统信息中包含了一些系统相关的组件,比如说:获取电量,获取机器人的位置等等。如果你想获取机器人的一些信息,那么可以在这里找到。
移动控制
移动控制是机器人的局部移动组件。例如让机器人向前走一米。让机器人旋转90度等等。
导航控制
导航控制就是和机器人导航相关的组件,包括开始关闭导航,导航到特定目标点等等。需要注意的是导航组件分为异步和同步两种。异步的组件会立即执行之后的组件,而同步的组件会等待导航完成后再执行下面的组件。
语音控制
语音控制包括语音合成和语音识别。语音合成就是让机器人说话,语音识别就是让机器人听我们说话。
外设控制
外设控制包括了一些外设的控制,比如说:控制机器人的驱动器io,语音模块io。其中语音模块的io不仅能控制电平也可以控制PWM,用于控制舵机也是可以的。语音模块io不仅能够输出也能够输入。 其他的外设目前还有滑台,顶升机构。后续会陆续增加。
自动充电
自动充电包含开始充电,停止充电的控制等等。
API
有时候我们需要通过API去触发自动化任务。这时候就会用到这个组件。详细的请参考HTTP API文档中关于blockly的部分。
录像
录像组件可以直接把机器人的图像话题录制下来。也可以连接onvif协议的摄像头,录制摄像头的视频。同时也支持控制onvif协议的摄像头的云台。
逻辑
逻辑是一些常用的逻辑判断组件,比如如果,否则,等等。
循环
循环是一些常用的循环组件,比如条件循环,列表循环,等等。
数学
数学是一些常用的数学组件,比如加减乘除,取余,等等。
列表
列表是一些常用的列表组件,比如列表长度,列表元素,等等。
变量
变量是一些常用的变量组件,比如设置变量,获取变量,等等。
函数
函数是一些常用的函数组件,比如定义函数,调用函数,等等。
保存和加载
在程序编辑完成之后,我们可以点击右下角的保存按钮将程序保存到机器人中。保存之后我们可以在左侧的项目列表中看到我们保存的项目。
保存完成后点击右下角退出按钮返回到任务管理页面。
在任务管理页面中我们可以看到我们刚刚保存的任务。
现在程序尚未在机器人中执行,点击右上角的三个点,然后选择其中的开启程序,程序就会在机器人中执行了。
现在我们可以看到机器人在执行我们刚刚保存的程序了。
同样停止程序也可以点击正在运行的程序的右上角的三个点。然后选择停止程序。
示例程序
对于一些比较常用的功能,我们已经为大家准备了一些示例程序。大家可以在右侧的项目列表中找到这些示例程序。你可以直接在示例程序的基础上进行修改,实现自己需要的功能。
定时巡逻
定时巡逻实现的功能和定时任务中的定时循环类似。就是让机器人在特定时间段内循环走多个目标点。不过因为是通过自动化实现的这个功能,我们的自由度就很高了。你可以随意修改其中的逻辑,实现自己想要的功能。这个示例中同时增加了定时任务中没有的星期的功能,你可以选择在哪些星期执行这个任务。
监控摄像头拍照
这个任务是当机器人移动到特定的目标点后,控制监控摄像头云台到特定的位置然后进行拍照。配合上面的定时巡逻,就可以实现定时定点拍照的功能了。
开启导航语音提示
在机器人开启导航的时候播放语音开始导航
到达目标点语音提示
在机器人到达目标点后进行语音播报
开始导航动作语音提示
当机器人开始移动到目标点时,播放语音提示
充电呼吸灯
充电时的呼吸灯效果
转向灯控制
机器人的转向灯效果