场景:巡检

视频:巡检

视频1:巡检

一、概述

这里说的巡检,是机器人依次去用户选定的几个位置,在每个位置做用户选定的任务。地图有四个位置,要执行的巡检会用到三个。首先移动到门口,执行抓拍。然后去沙发,执行打开台灯。最后去床边,再次抓拍。实际使用时,巡检可能要去较多位置,这样一来,一次巡检要花较长时间,极可能被其它任务中断。举个例子,机器人在超市巡检时,碰到有顾客问询商品。为模拟这种情况,让在离开沙发到床边时,插进一个到窗台抓拍任务。

要让机器人执行巡检,首先向klink增加巡检任务。触发方式选为定时,触发任务是用任务窗口编写的“巡检、巡逻”。为模拟中断,再增加个要插进任务,触发方式是按下门铃,关联任务是去窗台执行抓拍。

 

二、巡检

为尽快触发巡检任务,修改定时时间。一到定时时间,机器人开始执行巡检,先是去门口抓拍。

按计划,机器人接下是去床边抓拍。但此刻B门铃按下,触发去窗台任务。机器人将中断巡检,改去新任务要求的窗台。此时在界面顶部中央,会显示被中断任务:巡检、巡逻。

在窗台执行完抓拍后,插进任务结束。机器人转回巡检任务,从断点开始执行,即移动到床边执行抓拍。

 

三、查看事件

巡检过程会产生事件,这里就是在各个位置拍到的图像。用kDesktop app,可查这些事件。

切到“事件”页,kDesktop会每隔数秒向服务器获取事件。如果等不急,可跳到列表顶部,下拉,下拉刷新会触发立即获取。

会收到三条事件,对应从3点3分49秒开始的三张图像。第一张和第三张发生在巡检任务中的门口和床边,左上角都有时间戳。中间那张是插进任务,位置窗台,没有时间戳。

在C洼个人中心,也可查看这些事件。不论kDesktop还是C洼,事件最多存储48小时。如果嫌48小时太长,个人中心提供了手动删除事件。

 

四、编写任务

接下看关联执行的“巡检、巡逻”任务。“可中断”设置为是,表示这任务可中断。启动状态设置的是“去门口”。在去门口状态,会执行kHome小程序实现的抓拍任务。这任务有两个bool类型输入变量,timestamp指示是否要加时间戳,这里设为true,表示要加。net_send指示是否不要把抓拍到图像送到C洼,这里设为false,表示要发送。

去门口结束后,执行去沙发。在去沙发状态,会执行BLE Smart小程序实现的打开台灯任务。

去沙发结束后,执行去床边。和去门口一样,会执行kHome小程序实现的抓拍任务。这里没给输入变量not_send赋值,表示用默认,这变量默认值是false,指示抓拍到图像要送去C洼。在去床边状态,“结束任务”设置了“是”,意味着去床边结束后,巡检任务结束。

 

五、扩展

5.1 界面编写kLink任务

通过任务编写界面,写出各样内置任务。以这个“起床、睡觉”任务为例。设想您床头有个门铃,要起床了,按下它后,机器人去执行和即将起床有关的操作。要睡觉了,按下它后,则改去执行和即将睡觉相关的。

在这个任务,启动状态有三条分支。第一条对应如果是早上6点和9点之间按下门铃,这认为是起床时段,进入“去沙发打开台灯”状态。hour24_time_是个内置变量,值是当前的系统时间,但范限制在24小时。21600是6乘以3600,也就是早上6点。相应的,32400是早上9点,75600是晚上9点,7200则是凌晨2点。第二条对应如果是晚上9点和凌晨2点之间按下门铃,这认为是睡觉时段,进入“去沙发关掉台灯”状态。其它时间按下则满足第三条分支,在这分支进入“无效时段”状态。

在起床时段,如果不只一个任务,像还要打开窗帘。那可增加个“打开窗帘”状态,同时增加个“异步任务后状态变换”,让打开台灯结束后,进入“打开窗帘”状态。

 

5.2 小程序实现更多单任务

此个示例执行了两个单任务,用到蓝牙的打开台灯,以及用相机抓拍。kHome将来会提供更多服务,这个“mismatch”是检测商品异位,设想是用在超市,判断货架上商品是否有脱落,有的话就向管理员发事件。

全部评论: 0

    写评论: