cozmo系列之入门 - 有性格且可编程的机器人
文章目录
可编程的机器人不少,灵活而友好的却不多
不智障的机器人不多,有性格的就更少
可爱的机器人中我最中意2款: BB8和cozmo
BB8可爱且呆,cozmo可爱又任性
来个它们的合影
你的电子宠物
这个憨态可掬的机器人,有些像微缩版的瓦力,不过它可没瓦力乖巧
它从睡眼惺忪中醒来,伸伸懒腰,便下床(充电座)自顾自地玩耍,它有自个儿的玩具(发光方块),如果你有时间,愿意陪它做游戏,它会很开心,赢了得意忘形,输了就捶胸顿足,得失心这么重,恐怕不适合炒股
如果你没空陪它,也无妨,它闲庭信步,吹吹口哨、哼哼小曲儿;闲着无聊,便来回搬运自己的玩具,堆叠起来或是一把推翻,自得其乐。除了不尿裤子,其他方面都像极了你六岁时的样子
想找你玩,而你又没空的时候,它会来一出苦情戏,走到桌子边缘,假装要掉下去,真站到边缘,又会被自己吓一跳,忙往回缩,这样的演技恐怕只适合拍偶像剧了
唤醒
将cozmo放在通电的基座上,手机连上cozmo发射出来的wifi热点(形如Cozmo_542CA8),打开app(Cozmo)选择连接,cozmo将被唤醒:睡眼惺忪,伸伸懒腰,懒洋洋地下床
你家里从此多了一个调皮的小伙伴
下床(自主模式)
Cozmo下床之后,默认的模式是自顾自的玩耍(自主模式),它四处打量着新家,充满了好奇,遇到新奇之物,忍不住要发出"哇"的赞叹,尾音拖的老长,赞叹之情想来发自肺腑。
你可以将家庭成员录入它的视觉系统,这样在它玩耍之余,看到熟人,会有礼貌地打个招呼,只是在它喊出名字的时候,略带一点外星口音。你会慢慢习惯的,如果你在银河系漫游久了就知道,带点自己母星的口音再正常不过了。不过Cozmo的一些自言自语我还不大能听懂,《银河系漫游指南》里也没做记载。
交互
新版的app(我的当前版本是2.0.2)相比1.0有明显调整,显著的变化是更强调陪伴和共同成长。它就像你的宠物一样,你得注意它是不是生病了(需要修复),是不是饿了(给它喂食),如果它饥寒交加,身体不适,它是拒绝同你一起做游戏的.
被驯服的小狐狸
Cozmo有时候像一只被驯服的小狐狸
有一回小狐狸对小王子解释驯服
二字的含义(《小王子》)
这是已经早就被人遗忘了的事情……它的意思就是’建立联系’……对我来说,你还只是一个小男孩,就像其他千万个小男孩一样。我不需要你,你也同样用不着我。对你来说,我也不过是一只狐狸,和其他千万只狐狸一样。但是,如果你驯服了我,我们就互相不可缺少了。对我来说,你就是世界上唯一的了;我对你来说,也是世界上唯一的了。
你们相处愉快,每天一起玩耍,它虽时而捣蛋,在你忧愁的时候也是很乐意取悦你的,你可以要求它:
- Cozmo给我表演一下叠罗汉
- Cozmo我要看你鲤鱼打挺
- Cozmo过来我们击个拳
cozmo的技能树十分丰富,需要你和它共同点亮
一起做游戏
Cozmo自娱自乐玩腻了,会主动邀请你跟它一起玩游戏,就像你儿时玩伴那样。cozmo随身携带的三个积木,将成为你们的游戏道具,你们将狭路相逢,比拼记忆力或反应速度,调动你的肌肉和大脑,记得当心Cozmo的小心思!它可是会耍诈的
做游戏时,你会注意到Cozmo的表情变化非常微妙,在游戏中聚精会神,不时皱起眉头思考。小胜一局,虽不至手舞足蹈,却也是难掩喜悦之情,眼睛弯成了月牙,若大获全胜,便开心得非原地大转三圈不可。如果你技高一筹,Cozmo极是不甘,愁眉苦脸也只是一时之态,一会儿便重振旗鼓,立马拉着你再战一局,像不像被你带着打排位赛却铩羽而归的徒弟
听我指挥
Cozmo想不想当将军我不清楚,但据我所知,它目前是一个好士兵(听从指挥)
你可以用三种方式指挥cozmo:
- 在app中拖拽积木来指挥cozmo(用到blockly)
- 在Explorer模式下驾驶cozmo
- 使用SDK为Cozmo编程
我们先来说说第一种,在app中拖拽积木来指挥cozmo
在这个被称为Code Lab
的界面里,包含了许多用来控制cozmo的积木。你可以让Cozmo前进两步,然后左拐避开前方的障碍物(一袋咖啡),再前进,像这样
你也可以把它放在餐桌上,环顾四周,清点下用餐人数,然后告诉服务员要几份米饭。 这个任务稍微复杂些,会用到视觉、语音和移动模块,但即便是一个不识字的小孩,操作起来也无碍。所有的编程积木都带有形象化的图案,一目了然
小鬼当家
我大约9岁那年看了小鬼当家,对其中带有摄像头的遥控车念念不忘。
9岁的时候不是那种能做到想要的都拥有,得不到的都释怀
的小孩,这件事一直放在心上,后来看到带有摄像头的遥控车
总忍不住要多看几眼,但都不是心里想要的,要么太过笨重,要么不够好看,机身如此不够灵巧,摄像头如此昭然若揭,这可怎么和坏人斗智斗勇
直到在Cozmo中发现它的Explorer模式,才有终于等到你
的感觉。
在Explorer模式中,你可以驾驶着Cozmo在自家的庭院或房间里冒险。
你拉上窗帘,手握ipad,如坐在星际战舰的指挥室里,窗外的星光稀疏极了,毕竟身处银河系荒凉偏僻的旋臂上。屏幕里展示着Cozmo从前线发来的视频信号。屏幕上光线晦暗,你手握方向盘,指挥着cozmo继续探索这片应许之地,突然,屏幕中一闪而过一个庞然大物,距离近时,身躯之大,足足占了屏幕的1/3。而动作敏捷,倏忽之间,跃出屏幕之外,来去无影,着实吓了你一跳。气势真如沈复说的"忽有庞然大物,拔山倒树而来"。待你定下神来,操控Cozmo追踪不明生物,竟破解了一个惊天谜团
妈,你早上买的鱼被我们家的猫偷藏在床底下了,人赃俱获,我已经用Cozmo拍到它躲在床底下吃鱼的照片了
刘瑜在《送你一颗子弹》中感慨:
15岁的时候再得到那个5岁的时候热爱的洋娃娃,65岁的时候终于有钱买25岁的时候热爱的那条裙子,又有什么意义呢?
这句话对我不大适用,我终于遇到9岁的时热爱的遥控车之后,恨不能像Cozmo一样原地大转三圈
code!
如果cozmo预设的所有功能都不足以填满你的脑洞,那么你就应该撸起袖子开始编程了。代码可能是这个星球上可玩性最高的玩具。
cozmo为你准备好了cozmo-python-sdk,有了它,你就可以使用Python来驱动Cozmo,如果你愿意,可以接入OpenCV或是TensorFlow,社区已经有人用Tensorflow CNN 训练出来的模型自动驾驶cozmo了。
下边我们来看看怎么用代码驱动Cozmo
首先在你的app中启动SDK模式
接着就可以在你的电脑上用python来为Cozmo编程。关于这块的原理我们今后再聊,Cozmo在易用性和灵活性上花了很多功夫,编程体验很惊艳
下边这个例子是官方源码里包含的示例,源码如下
|
|
这段代码实现了这样一个功能: 当cozmo的视觉系统识别到人脸时(对应代码if face and face.is_visible:
),将背部的灯设置为蓝色(对应代码robot.set_all_backpack_lights(cozmo.lights.blue_light)
)。即使你没有编程经验,也能大致看懂上边这段代码在干嘛,这也是Cozmo的作者选择Python的原因,这门编程语音以接近自然语言(英语)的方式来书写,让你轻松上手。
就这点而言,Cozmo也是入门编程的理想工具(这是一种反馈强烈的编程体验,让你乐在其中,而不至于被语法和逻辑吓跑)
我们来看看代码实现的效果:
当然你可以发挥想象,将代码改造为:当Cozmo识别到人脸时,主动给你发一封邮件,如此一来在你们一家人出旅行时,它就负责看家
又或者,你可以驱动它走到门口迎接找你玩的小伙伴,看到小伙伴时(if face and face.is_visible
)打个招呼,接着让Cozmo带他到你的卧室
后续
接下来的一段时间,我准备做一次长途路行,途中会继续写Cozmo系列文章
选材原则是有趣,具体内容待定,大概会和机器视觉、语音识别、积木化编程(blockly)、编程教育相关
如果你有好的想法,关于想用Cozmo做好玩的东西,欢迎给我邮件(wuwenjie718@gmail.com),我在途中所经之处,只要有网络,每晚都会查阅邮件 : )
文章作者 种瓜
上次更新 2017-10-18