惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
博客园_首页
H
Help Net Security
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
GbyAI
GbyAI
Scott Helme
Scott Helme
D
Docker
Hacker News: Ask HN
Hacker News: Ask HN
P
Privacy & Cybersecurity Law Blog
Jina AI
Jina AI
雷峰网
雷峰网
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
G
GRAHAM CLULEY
C
Cisco Blogs
The Hacker News
The Hacker News
F
Full Disclosure
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
Recent Announcements
Recent Announcements
G
Google Developers Blog
量子位
K
Kaspersky official blog
Cisco Talos Blog
Cisco Talos Blog
The Cloudflare Blog
A
About on SuperTechFans
C
Cybersecurity and Infrastructure Security Agency CISA
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
T
Tenable Blog
P
Palo Alto Networks Blog
H
Heimdal Security Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Schneier on Security
Schneier on Security
The Register - Security
The Register - Security
F
Fortinet All Blogs
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Blog of Author Tim Ferriss
N
News and Events Feed by Topic
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
V
V2EX
爱范儿
爱范儿

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ PaperWeekly开发笔记 创业二三事 blockly与结对编程
cozmo系列之入门 - 有性格且可编程的机器人
2017-10-18 · via 夜行人

可编程的机器人不少,灵活而友好的却不多

不智障的机器人不多,有性格的就更少

可爱的机器人中我最中意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在易用性和灵活性上花了很多功夫,编程体验很惊艳

下边这个例子是官方源码里包含的示例,源码如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import asyncio
import time

import cozmo


def light_when_face(robot: cozmo.robot.Robot):
    '''The core of the light_when_face program'''

    # Move lift down and tilt the head up
    robot.move_lift(-3)
    robot.set_head_angle(cozmo.robot.MAX_HEAD_ANGLE).wait_for_completed()

    face = None

    print("Press CTRL-C to quit")
    while True:
        if face and face.is_visible:
            robot.set_all_backpack_lights(cozmo.lights.blue_light)
        else:
            robot.set_backpack_lights_off()

            # Wait until we we can see another face
            try:
                face = robot.world.wait_for_observed_face(timeout=30)
            except asyncio.TimeoutError:
                print("Didn't find a face.")
                return

        time.sleep(.1)


cozmo.run_program(light_when_face, use_viewer=True, force_viewer_on_top=True)

这段代码实现了这样一个功能: 当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),我在途中所经之处,只要有网络,每晚都会查阅邮件 : )