cozmo 入坑日记及开发环境搭建
原文链接:
参考文章:
1. 入坑始末
前几日,朋友在群里发了一个机器人的小视频,视频里机器人可以对话,可以推箱子,开心以后会哈哈大笑,非常有趣。
详细了解里一下,这是个叫 Cozmo 的智能机器人,可以配合 SDK 用 Python 编程,兴趣一下子就来了,询问了一下价格,闲鱼 500 左右。顺便跟同事看了一下,同事也感兴趣,立马去闲鱼淘了 2个 蓝色限量款。
第一天下单,没想到第二天下午就到了,哈哈哈。满心激动的打开箱子,里面有:
- 说明书
- 充电器
- 3 个魔方
- 还有一个就是 Cozmo 本体了
先上张图
原文链接:https://www.cnblogs.com/David-domain/p/11216603.html
2. 启动 Cozmo
打开箱子以后,接下来就是要启动 Cozmo 了,拿起 Cozmo 找了好几圈都没找到开关,emmm~~什么鬼?
通过阅读说明书才知道,Cozmo 开机其实很简单,把充电座接上电,把 Cozmo 放上去就可以了。Cozmo 的底部有 2 个金属触点,通电后屏幕就亮了。
屏幕上有 2 行字,这 2 行字的用途稍后说明。
接下来我们需要掏出手机,下载 App。
App 有 iOS 和 Android 两种,值得注意的是:iOS 版本即使在国内,也可以直接从 App Store 下载安装;而 Android 版需要连接 Google Store 才能下载,不禁吐槽一下,国内的 Go 开发者还真是艰难。
为了方便起见,祭出了我的神器——老古董 5s。下载、安装完成 App 后,更换 Wi-Fi 。Wi-Fi 名就是 Cozmo 屏幕右上方的一串字,名为
Cozmo_700xxx
的 Wi-Fi,密码则是第2行的一长串字符串。连接成功后,切换 App 连接 Cozmo,此时就可以互动了。
原文链接:https://www.cnblogs.com/David-domain/p/11216603.html
3. 开始鼓捣
- App 上可以互动的功能比较多,但是 App 编程只有一个类似 Scratch 的模块,对于具有探索精神的程序猿来说,肯定不能满足于此,so,立马打开官方手册,准备搭建开发环境。
- 官方的 SDK 放在了 GitHub ,链接地址: Cozmo Explorer Tool
- UI 界面,通过该 SDK,你可以看到 cozmo 看到的世界,以及在它观察到这个世界时,在思考什么。
- 闲话少叙,下面进入正题。
原文链接:https://www.cnblogs.com/David-domain/p/11216603.html
4. 开发环境搭建——Cozmo Explorer Tool 安装
4.1. 下载
git clone https://github.com/GrinningHermit/Cozmo-Explorer-Tool.git
4.2. 安装依赖
4.2.1. Cozmo SDK 安装
快速浏览 README 后,找到了 docs 链接:Welcome to the Cozmo SDK!。
因为我使用的是 MacBook,直接浏览 Mac OSX 部分: Installation - macOS / OS X
安装步骤很简单,总共需要 3 步:
4.2.1.1. Python Installation
# 首先,根据说明安装最新的 Homebrew
# 如果已经安装了BREW,请打开终端窗口并键入以下内容来更新它:
brew update
# 安装并更新homebrew后,在终端窗口中键入以下内容以安装最新版本的python 3:
brew install python3
4.2.1.2. SDK Installation
# 在终端中输入以下命令安装 SDK
pip3 install --user 'cozmo[camera]'
# [camera] 选项增加了对 Cozmo 相机处理图像。
- 提示安装成功:
Pillow-6.1.0
、cozmo-1.4.10
、cozmoclad-3.4.0
、numpy-1.16.4
4.2.1.3. SDK Upgrade
# 输入如下命令升级 SDK
pip3 install --user --upgrade cozmo
- 提示当前 SDK 已经满足需求,忽略更新。
4.2.1.4. 手机驱动安装(补充步骤)
- 在 macOS 系统上运行 Cozmo SDK,iOS 设备不需要安装其他驱动。
- 而使用 Android 设备需要安装 Android Debug Bridge (adb) 才能运行 Cozmo SDK ,并且需要用 USB 线连接手机。
4.2.2. 安装 Pillow
模块
- 一般说来装
Cozmo SDK
的时候已经自带了
pip3 install --user Pillow
4.2.3. 安装 Flask
模块
Flask
是Python
的 Web 应用框架,因为Cozmo Explorer Tool
是浏览器应用,故必须安装
pip3 install --user flask
4.2.4. 安装 Flask Socket-IO
模块
pip3 install --user flask-socketio
原文链接:https://www.cnblogs.com/David-domain/p/11216603.html
5. 启动 Cozmo Explorer Tool
- 因为没有使用 venv 环境,所以直接运行即可
- 进入 Cozmo Explorer Tool 目录
cd Cozmo-Explorer-Tool
python3 explorer_tool.py
5.1. 报错 1
╭─david@MyAir ~/Cozmo-Explorer-Tool ‹master›
╰─➤ python3 explorer_tool.py 1 ↵
WARNING:root:Cannot import from eventlet: Do `pip3 install --user eventlet` to install
Event monitoring works, but performance is decreased
2019-07-20 09:21:42,886 cozmo.general WARNING No iOS device found running Cozmo: No connected iOS devices running Cozmo in SDK mode
WARNING:cozmo.general:No iOS device found running Cozmo: No connected iOS devices running Cozmo in SDK mode
2019-07-20 09:21:42,887 cozmo.general WARNING No Android device found running Cozmo: Failed to execute adb command adb: [Errno 2] No such file or directory: 'adb': 'adb'
WARNING:cozmo.general:No Android device found running Cozmo: Failed to execute adb command adb: [Errno 2] No such file or directory: 'adb': 'adb'
* Serving Flask app "explorer_tool" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
ERROR:flask.app:Exception on / [GET]
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "explorer_tool.py", line 89, in index
return render_template('index.html', randomID=rndID, animations=lists[0], triggers=lists[1], behaviors=lists[2], hasSocketIO=flask_socketio_installed, hasPillow=active_viewer)
IndexError: list index out of range
- 提示中有
pip3 install --user eventlet
,说明安装依赖中还有一个包要安装,docs 中没有提及
pip3 install --user eventlet
- 提示安装完成
5.2. 再次启动,弹出一个网页显示 500
- 页面500,emmmm~~~,什么情况?
5.3. 查看目录中 README
System requirements
-
- PC with Windows OS, mac OSX or Linux
- Python 3.5.1 or later
- WiFi connection
- An iOS or Android mobile device with the Cozmo app installed, connected to the PC via USB cable
- 最后一条提示要用 USB 线连接手机和电脑
- 之后呢?拜托一口气说完好不好~~~
- 再次查看 docs,Starting Up the SDK
- 终于找到了
- 手机连接 Cozmo Wi-Fi后,用 App 连接 Cozmo
- 点击右上角的⚙️设置菜单
- 开启 SDK 功能
- 最后运行
explorer_tool.py
- 点击开启 SDK 模式
- 进入 SDK 模式后
- 接下来Cozmo 就傻傻的、迷惑的看着你,等待你下指令了
5.4. 启动 explorer_tool.py
- 重新运行,哈哈,页面正常打开 _
- Terminal 详细日志输出
- 因为这种启动类似 run server 方式,所以后续操作日志还会持续不断的输出到 Terminal 中。
原文链接:https://www.cnblogs.com/David-domain/p/11216603.html
6. Python 开发 —— 远程控制及示例脚本运行
- 以上是 UI 工具安装过程,类似与一个调试界面,下面进入真正的 Python 开发部分
6.1. 项目 Anki Cozmo - Python SDK
- 手册中第二部分是 GitHub 项目地址:Anki Cozmo - Python SDK
- 下载完 SDK 案例,就可以准备进行 python 开发了
6.2. 下载 SDK Examples
- 点击手册中下载标签:SDK Examples
- 第一部分是 SDK 案例,有 Mac OSX / Linux 和 Windows 版本。
6.3. 查看 SDK Examples 内容
╭─david@MyAir ~/Downloads/cozmo_sdk_examples_1.4.10
╰─➤ ll
total 32
-rw-r--r--@ 1 david staff 10K 3 13 04:32 LICENSE.txt
-rw-r--r--@ 1 david staff 676B 3 13 04:32 README.md
drwxr-xr-x@ 10 david staff 320B 3 13 04:32 apps
drwxr-xr-x@ 7 david staff 224B 3 13 04:32 face_images
drwxr-xr-x@ 7 david staff 224B 3 13 04:32 if_this_then_that
drwxr-xr-x@ 4 david staff 128B 7 20 13:27 lib
drwxr-xr-x@ 4 david staff 128B 3 13 04:32 multi_robot
drwxr-xr-x@ 3 david staff 96B 3 13 04:32 tools
drwxr-xr-x@ 8 david staff 256B 3 13 04:32 tutorials
╭─david@MyAir ~/Downloads/cozmo_sdk_examples_1.4.10
╰─➤ tree -Cl .
.
|-- LICENSE.txt
|-- README.md
|-- apps
| |-- 3d_viewer.py
| |-- cli.py
| |-- color_finder.py
| |-- desk_security_guard.py
| |-- quick_tap.py
| |-- quiz_questions.json
| |-- quizmaster_cozmo.py
| `-- remote_control_cozmo.py
|-- face_images
| |-- cozmosdk.png
| |-- hello_world.png
| |-- ifttt_gmail.png
| |-- ifttt_sports.png
| `-- ifttt_stocks.png
|-- if_this_then_that
| |-- common
| | `-- __init__.py
| |-- ifttt_gmail.py
| |-- ifttt_sports.py
| |-- ifttt_sports_flask.py
| `-- ifttt_stocks.py
|-- lib
| `-- flask_helpers.py
|-- multi_robot
| |-- multi_robot_independent.py
| `-- multi_robot_unified.py
|-- tools
| `-- cubes
| |-- auto_cube_disconnect.py
| |-- connect_cubes.py
| |-- disconnect_cubes.py
| `-- log_cube_battery_levels.py
`-- tutorials
|-- 01_basics
| |-- 01_hello_world.py
| |-- 02_drive_and_turn.py
| |-- 03_count.py
| |-- 04_drive_square.py
| |-- 05_motors.py
| |-- 06_sing_scales.py
| |-- 07_backpack_lights.py
| |-- 08_animation.py
| |-- 09_cube_lights.py
| |-- 10_play_sound.py
| |-- 11_play_song.py
| `-- 12_random_animation.py
|-- 02_cozmo_face
| |-- 01_cozmo_face_image.py
| |-- 02_cozmo_face_mirror.py
| `-- 03_alarm_clock.py
|-- 03_vision
| |-- 01_light_when_face.py
| |-- 02_face_follower.py
| |-- 03_annotate.py
| `-- 04_exposure.py
|-- 04_cubes_and_objects
| |-- 01_go_to_pose_test.py
| |-- 02_create_wall.py
| |-- 03_go_to_object_test.py
| |-- 04_stack_or_roll.py
| |-- 05_cube_stack.py
| |-- 06_pickup_furthest.py
| |-- 07_lookaround.py
| |-- 08_drive_to_charger_test.py
| |-- 09_custom_objects.py
| |-- 10_object_moved.py
| |-- 11_dock_with_cube.py
| |-- 12_roll_cube.py
| `-- 13_pop_a_wheelie.py
|-- 05_async_python
| |-- 01_cube_blinker_sync.py
| `-- 02_cube_blinker.py
`-- 06_actions
`-- 01_parallel_actions.py
15 directories, 62 files
- 因为梯子故障,docs 里的视频链接无法观看,所以只能自己摸索
- tree 目录后,看到 lib 库中有一个
flask_helper.py
的文件,通过刚才Cozmo Explorer Tool
的调试,我们能知道 Cozmo 使用 flask 框架做的 web 。所以,这个应该也是有 flask web 界面的。
6.4. 离成功不远了
- 打开
flask_helper.py
文件,可以看到顶部注释部分有一个说明
Flask is a Python web framework. remote_control_cozmo.py and other scripts may use
these utility functions to interact with a web browser.
我们看到了什么?
你说对了!——
remote_control_cozmo.py
find
一下
╭─david@MyAir ~/Downloads/cozmo_sdk_examples_1.4.10
╰─➤ find ./* -name "remote_control_cozmo.py"
./apps/remote_control_cozmo.py
6.5. 启动远程控制—— remote_control_cozmo.py
╭─david@MyAir ~/Downloads/cozmo_sdk_examples_1.4.10
╰─➤ python3 apps/remote_control_cozmo.py
Traceback (most recent call last):
File "apps/remote_control_cozmo.py", line 29, in <module>
import flask_helpers
ModuleNotFoundError: No module named 'flask_helpers'
- what the fuck? 发生了什么?
- 没找到
flask_helpers
模块。你觉得在哪?是的,flask_helper.py
文件中 - so,切换到
lib
目录中
╭─david@MyAir ~/Downloads/cozmo_sdk_examples_1.4.10
╰─➤ cd lib 1 ↵
╭─david@MyAir ~/Downloads/cozmo_sdk_examples_1.4.10/lib
╰─➤ python3 ../apps/remote_control_cozmo.py
2019-07-20 13:27:29,093 cozmo.general WARNING No iOS device found running Cozmo: No connected iOS devices running Cozmo in SDK mode
2019-07-20 13:27:29,095 cozmo.general WARNING No Android device found running Cozmo: Failed to execute adb command adb: [Errno 2] No such file or directory: 'adb': 'adb'
A connection error occurred: No devices connected running Cozmo in SDK mode
- 好吧,你赢了,还是需要用手机连接,开启 SDK 模式
- so,念咒:天灵灵,地灵灵,太上老君急急如律令,变~变~变~
- 屏幕白光一闪,已经打开了一个神奇的页面
- 看到这简(lián)洁(jià)的布局,各位看官就知道我已经成功了
cozmo 入坑日记及开发环境搭建的更多相关文章
- 1、 小白带你入坑xamarin系列之环境搭建和准备
重点提示 由于xamarin发展更新很快 目前教程部分内容已经过时 请注意下载最新版本 2018.05.23 www.xamarin.com 1. 小白带你入坑xamarin系列之环境搭建和准备 ...
- android开发环境搭建日记和嵌入式Android开发环境初探
非常感谢博客园的各位,按照你们的博文,还有利用百度和谷歌逐渐建立了android的开发环境,只是给自己备份参考查看,看过的人可以忽略这篇文章. 本文章大部分参考了:http://www.cnblogs ...
- oracle入坑日记<二>认识oracle(含sqlplus基础使用)
1.SID(数据库实例) 1.1. oracle安装的时候有一项叫[全局数据库名]的填写项,这个就是oracle的SID也是数据库的唯一标识符: 1.2.一个oracle数据库有且只有一个SID(一般 ...
- oracle入坑日记<一> 安装
学习日记系列(前辈/大神勿喷) 一.下载 下载地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads ...
- IntelliJ IDEA安装及jsp开发环境搭建
一.前言 现在.net国内市场不怎么好,公司整个.net组技术转型,就个人来说还是更喜欢.net,毕竟不是什么公司都像微软一样财大气粗开发出VS这样的宇宙级IDE供开发者使用,双击sln即可打开项目, ...
- Ionic- Android 开发环境搭建
Ionic- Android 开发环境搭建 为时一周的IONIC ADNROID 环境终于在各种处理错误中搭建成功,以下记录下搭建过程中遇到的各种情况的处理办法. 一 首先,当然是enviroment ...
- Java、Android 开发环境搭建
一.准备工作 为便于管理,将java开发工具集中到一个文件夹中.创建D:\javaDevE文件夹,JDK.Android-SDK.Eclipse.tomcat等都可以安装到这个文件夹中. 二.搭建Ja ...
- Go语言开发环境搭建
1.Go的安装 (1)下载go安装程序 下载地址:https://golang.org/dl/ (墙内下载地址http://www.golangtc.com/download),如果是您的系统是win ...
- (转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)
原文传送门(http://blog.csdn.net/bingtianxuelong/article/details/17843111) 版本说明: V1: 2014-2-13 ...
随机推荐
- Newtonsoft.Json高级用法之枚举中文转义
最近看博客园中 焰尾迭的两篇关于"Newtonsoft.Json高级用法"的文章受到了很多人的评论,一度登入到头条推荐. 今天我就不再重复焰尾迭博文中的一些提过的Newtonsof ...
- Linux可以把vmdk当做磁盘加载进去
VMware虚拟机由于停电,无法启动MAC系统 下午的时候,正在开发ios app,结果停电了.当时还不知道,伴随而来的灾难竟然折腾了好几天,真是心力交瘁. 我是在VMware虚拟机下装的Mac os ...
- 冒泡排序C#实现,使用委托,包括三种方式:Fun<>,匿名方法,Lambda表达式
冒泡排序是一种简单的排序方法,适合于小量数字排序,对于大量数字(超过10个),还有更高效的排序方法. 这里的实现的冒泡排序,需实现功能: 不仅数字排序,还要对任意对象排序 示例: 对People对象的 ...
- 一个类的实例化对象所占空间的大小(对象大小= vptr(可能不止一个) + 所有非静态数据成员大小 + Aligin字节大小(依赖于不同的编译器))
注意不要说类的大小,是类的对象的大小. 首先,类的大小是什么?确切的说,类只是一个类型定义,它是没有大小可言的. 用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小. 如果 Class ...
- 百度 Echarts 地图表 js 引用路径
使用地图表格,除了需echarts,还需zrender,自行下载JS文件: 目标,做成这样的效果:http://echarts.baidu.com/doc/example/map3.html ...
- ASP.NET Core 通过 Microsoft.DotNet.Watcher.Tools 实现热部署
之前开发前端的时候,webpack 会有热更新工具,在修改了代码之后,自动将代码编译,实时展现到页面上,给开发带来了极大的方便. Java也可以通过第三方插件JRebel实现热部署,不用频繁的重启To ...
- Realm_King 之 .NET操作XML完整类
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;u ...
- Codility---BinaryGap
Task description A binary gap within a positive integer N is any maximal sequence of consecutive zer ...
- 台电P89s mini root教程
根据论坛内的一些内容再结合自己的使用心得整理如下,本人双11购入P89s mini root成功 自带软件什么的都不见了 以下是个人root过程,有不一样的地方欢迎交流,说实话我也不是很懂 1.升级 ...
- Ubuntu --- Xshell 连接 VirtualBox下安装的Ubuntu
1.桥接模式 打开VirtualBox管理器---设置---网络---连接方式选择桥接网卡 2.安装ssh服务 安装: sudo apt-get install openssh-server 启动: ...
- 1、 小白带你入坑xamarin系列之环境搭建和准备