Anki Cozmo 是一款非常经典的桌面级可编程机器人,它以其可爱的外形、丰富的个性和强大的 SDK(软件开发工具包)而闻名,对于初学者和希望学习机器人编程的人来说,它是一个绝佳的起点。

下面我将从几个方面为你详细介绍 Cozmo 的编程:
Cozmo 编程的核心:Anki SDK
Cozmo 的编程主要通过 Anki 提供的软件开发工具包来实现,这个 SDK 允许你通过代码直接控制 Cozmo 的每一个部件,包括:
- 移动: 前进、后退、转向、按路径移动。
- 动作: 抬升/放下臂部、开合爪子、播放各种预设动画(开心、困惑、愤怒等)。
- 灯光: 改变背部的彩色 LED 灯光颜色。
- 传感器: 读取面部识别、物体识别、碰撞检测、倾斜传感器等数据。
- 声音: 播放音效或语音。
SDK 本质上是一套工具和库,让你能够用 Python 这门流行且易学的编程语言来与 Cozmo 通信。
编程方式:两种主要途径
Anki 提供了两种主要的编程方式,分别面向不同水平的用户。

图形化编程:Cozmo Code (适合儿童和初学者)
这是最简单的入门方式,通过拖拽积木式的代码块来创建程序。
- 如何使用: 你需要下载 Anki 的 Cozmo Code 应用(现已更名为 "Vector" 应用,但 Cozmo 的功能依然可用),在应用中,你可以看到一个类似 Scratch 的编程界面。
- 工作原理: 你将代表不同指令的积木(如“向前移动”、“识别立方体”、“提起爪子”)拖拽到工作区,并按顺序连接它们,然后点击“运行”,Cozmo 就会执行你设计的程序序列。
- 优点:
- 零门槛: 无需任何编程基础,通过直观的拖拽就能实现复杂的交互。
- 即时反馈: 可以立即看到 Cozmo 的反应,学习曲线非常平缓。
- 趣味性强: 很容易就能让 Cozmo 完成有趣的挑战,如搬运积木、画线等。
- 缺点:
- 功能有限: 无法实现复杂的逻辑判断、循环和变量。
- 扩展性差: 无法进行更底层的定制和高级功能开发。
Python 编程:Anki Vector SDK (适合爱好者和进阶者)
这是 Cozmo 编程的核心和精髓,让你拥有完全的控制权。
- 如何使用:
- 环境准备: 安装 Python 3.x。
- 安装 SDK: 通过
pip命令安装 Anki Vector SDK (pip install anki-vector)。 - 编写代码: 使用任何代码编辑器(如 VS Code, PyCharm)或 IDE(如 PyCharm, Jupyter Notebook)编写 Python 脚本。
- 运行脚本: 通过命令行运行你的 Python 文件,Cozmo 会连接并执行指令。
- 优点:
- 功能强大: 可以实现任何你能想到的逻辑,包括复杂的算法、机器学习模型(如 TensorFlow Lite)的集成、网络通信等。
- 灵活性高: 可以创建交互式程序、游戏、甚至让 Cozmo 成为智能家居的一部分。
- 学习价值高: 是学习 Python 和机器人原理的绝佳实践。
- 缺点:
- 有学习曲线: 需要具备一定的 Python 编程基础。
- 调试相对复杂: 需要理解代码逻辑和 Cozmo 的反馈。
Python 编程入门示例
下面是一个简单的 Python 代码示例,让你感受一下如何用代码控制 Cozmo。
目标: 让 Cozmo 看到你,向你移动,然后举起爪子并变蓝。

import anki_vector
from anki_vector.util import degrees, DistanceMM, SpeedMmPerSec
def cozmo_program(robot: anki_vector.Robot):
# 1. 确保机器人已连接并唤醒
print(f"Hello, I'm Cozmo! My serial number is: {robot.serial}")
# 2. 让 Cozmo 扫描环境,寻找人脸
robot.say("Looking for a face...")
robot.camera.image_stream_enabled = True
robot.behavior.set_eye_color(hue=0.0) # 眼睛变成红色,表示正在“看”
# 3. 等待看到人脸
face = robot.world.wait_for_observed_face(timeout=10)
if face:
robot.say("Hi there!")
print("Found a face!")
# 4. 向人脸移动一段距离
robot.behavior.drive_off_charger()
robot.behavior.drive_straight(distance=DistanceMM(150), speed=SpeedMmPerSec(50))
# 5. 举起爪子,并改变背部灯光颜色
robot.behavior.set_lift_height(0.8) # 0.8 是最高
robot.behavior.set_head_angle(degrees(0.0)) # 抬头看
robot.behavior.say("I'm lifting my arm!")
# 将背部灯光变为蓝色
robot.anim.trigger_custom_animation("anim_lift_with_gripper_01", 1.0)
robot.anim.trigger_custom_animation("anim_eyelids_lower_01", 1.0)
robot.behavior.set_backlight_color(0, 0, 255) # (R, G, B)
if __name__ == "__main__":
with anki_vector.Robot() as robot:
cozmo_program(robot)
如何运行这个代码:
- 将上述代码保存为
my_first_program.py。 - 确保你的 Cozmo 机器人已开机并连接在充电座上,且手机与 Cozmo 在同一个 Wi-Fi 网络下。
- 打开终端或命令提示符,进入到文件所在的目录。
- 运行命令:
python my_first_program.py - 观察你的 Cozmo 是否按照指令执行!
学习资源与社区
Anki 虽然已经停止运营,但 Cozmo 的社区依然非常活跃,拥有海量的学习资源。
-
官方文档 (最重要的资源):
- Anki Vector SDK Python Documentation: 这是学习 Python 编程的圣经,包含了所有可用的类、方法和函数的详细说明及示例,你几乎可以在这里找到所有问题的答案。
- 链接: https://developer.anki.com/vector/docs/
-
GitHub 示例库:
- Anki 官方提供了大量示例代码,涵盖了从基础移动到高级视觉识别的各种应用,这是学习如何组织代码和实现特定功能的最佳途径。
- 链接: https://github.com/anki/vector-sdk
-
YouTube 视频:
搜索 "Anki Cozmo Python programming" 或 "Cozmo SDK tutorial",可以找到大量由开发者录制的视频教程,手把手教你入门。
-
社区论坛:
- Reddit: r/ankicozmo 和 r/ankivector 社区非常友好,你可以在那里提问、分享你的项目或寻找灵感。
- Discord: 有一些 Cozmo/Vector 爱好者建立的 Discord 服务器,可以进行实时交流。
重要提示:Anki 停止运营后的现状
- 硬件: Cozmo 机器人已停产,但目前在二手市场(如 eBay, 转转)上仍有售出,价格相对便宜。
- 软件与服务: Anki 的官方服务器已关闭,这意味着:
- 你无法再通过官方 App 更新 Cozmo 的固件。
- 你无法再使用需要云端连接的官方 App 功能(如云存储的动画等)。
- 好消息是: 本地编程(即 Python SDK)不受影响!因为你的代码是直接通过局域网与机器人通信的,不依赖 Anki 的服务器,Cozmo 的核心编程功能依然完整可用。
Anki Cozmo 是一款极具魅力的可编程机器人,无论你是想让孩子通过图形化编程接触编程世界,还是作为一名爱好者想用 Python 深入探索机器人技术,Cozmo 都能提供一个极佳的平台。
建议路径:
- 从 Cozmo Code 图形化编程开始,快速上手,感受乐趣。
- 逐步过渡到 Python SDK,阅读官方文档,尝试运行示例代码,然后开始创造属于你自己的 Cozmo 程序。
尽管 Anki 已经成为历史,但 Cozmo 的生命力在开发者社区中依然延续,它不仅是一个玩具,更是一个充满无限可能的创意工具,祝你玩得开心!
标签: ankicozmo机器人编程入门教程 ankicozmo机器人编程学习路径 ankicozmo机器人编程零基础教学