1月20日-1月25日
我参加了河海大学和深圳优必选公司联合举办的训练营
作为机器人领域的龙头企业,优必选公司的产品Alpha曾经登陆过春晚进行表演,这次活动中他们的机器人产品Yanshee也非常厉害
在训练营的末尾,我们小组用了一天半的时间做了一个小型的项目,当作我们的结营汇报,以下为项目内容。

功能1-4:【项目回顾】基于Yanshee的AI服务型机器人(一)

功能5-8:

  1. 通过网络爬虫程序获得当前城市当日的天气预报并通过语音播报
  2. 通过红外传感器(Infrared Sensor)进行避障巡逻
  3. 通过红外传感器(Infrared Sensor)进行遇障绕路行走
  4. 通过摄像头的抓拍进行人脸识别、跟踪

这篇文章将回顾项目的第5-8项功能

5:通过网络爬虫程序获得当前城市当日的天气预报并通过语音播报

#!/usr/bin/python
#_*_ coding:utf-8 _*_import urllib
import sys
import RobotApi
from bs4 import BeautifulSoupreload(sys)
sys.setdefaultencoding('utf-8')def weather_get():resp=urllib.urlopen('http://www.weather.com.cn/weather/101270101.shtml')soup=BeautifulSoup(resp,'html.parser')tagDate=soup.find('ul', class_="t clearfix")dates=tagDate.h1.stringtagToday=soup.find('p', class_="tem")try:temperatureHigh=tagToday.span.stringexcept AttributeError as e:temperatureHigh=tagToday.find_next('p', class_="tem").span.stringtemperatureLow=tagToday.i.stringweather=soup.find('p', class_="wea").stringtagWind=soup.find('p',class_="win")winL=tagWind.i.stringprint('今天是:'+dates)print('风级:'+winL)print('最低温度:'+temperatureLow)print('最高温度:'+temperatureHigh)print('天气:'+weather)a='今天是:'+str(dates)b='风级:'+str(winL)c='最低温度:'+str(temperatureLow)d='最高温度:'+str(temperatureHigh)e='天气:'+str(weather)RobotApi.ubtVoiceTTS(1,a)RobotApi.ubtVoiceTTS(1,b)RobotApi.ubtVoiceTTS(1,c)RobotApi.ubtVoiceTTS(1,d)RobotApi.ubtVoiceTTS(1,e)

因为天气信息分布在网络上,因此实现这个功能就要使用网络爬虫,又因为Yanshee中内置了Python 2.7的版本,所以这个程序使用了urllib和bs4两个模块,用sys模块进行编码,提取中国天气网上的信息,并通过文字转语音的接口输出出来。

6:通过红外传感器进行避障巡逻

import RobotApi
from time import sleepdef alert1():i=1while i<=7:sensorValue1=RobotApi.UBTEDU_ROBOTINFRARED_SENSOR_T()ret=-1while (ret!=0):ret=RobotApi.ubtReadSensorValue("infrared",sensorValue1,4)if (ret!=0):print("read sensor error!\n")time.sleep(0.3)RobotApi.ubtSearchExtendSensor()if i==7:ret = RobotApi.ubtSetRobotMotion("turn around","left",5,5)i=1if sensorValue1.iValue>300:ret = RobotApi.ubtSetRobotMotion("walk","front",5,1)i=i+1else:RobotApi.ubtStopRobotAction()RobotApi.ubtVoiceTTS(1,"碰到障碍物")break

这个避障巡逻的思路很简单

if sensorValue1.iValue>300:ret = RobotApi.ubtSetRobotMotion("walk","front",5,1)i=i+1

当红外检测到300mm内没有障碍物的时候就执行向前走的动作,动作速度为5,重复次数为1

当向前走的次数超过七次的时候向左转,然后i的数值回到1,重复检测障碍物,向前行走

        if i==7:ret = RobotApi.ubtSetRobotMotion("turn around","left",5,5)i=1

当遇到障碍物的时候,机器人停止动作并且播报:“遇到障碍物”

         else:RobotApi.ubtStopRobotAction()RobotApi.ubtVoiceTTS(1,"碰到障碍物")break

7:通过红外传感器进行遇障绕路行走

import RobotApi
from time import sleepdef walk1():k=1l=0i=1while i<35:sensorValue1=RobotApi.UBTEDU_ROBOTINFRARED_SENSOR_T()ret=RobotApi.ubtReadSensorValue("infrared",sensorValue1,4)while (ret!=0):ret=RobotApi.ubtReadSensorValue("infrared",sensorValue1,4)if (ret!=0):print("read sensor error!\n")time.sleep(0.3)RobotApi.ubtSearchExtendSensor()if sensorValue1.iValue<300:ret = RobotApi.ubtSetRobotMotion("turn around","left",5,2)k=0l=l+1ret=RobotApi.ubtReadSensorValue("infrared",sensorValue1,4)while (ret!=0):ret=RobotApi.ubtReadSensorValue("infrared",sensorValue1,4)if (ret!=0):print("read sensor error!\n")time.sleep(0.3)RobotApi.ubtSearchExtendSensor()else:ret = RobotApi.ubtSetRobotMotion("walk","front",5,2)k=1i=i+1if l!=0:if k==1:ret=RobotApi.ubtSetRobotMotion("turn around","right",5,2)l=l-1k=0

绕路行走的时候机器人会向左绕过障碍物,并且不断检测是否已经通过障碍物,通过后即会向右回到原本的路线,继续向前行走
在这段代码中,变量k代表是否向左,若k大于1,机器人就会不断地试图向右回到原来的路径上,但是若是还没有度过障碍物,就会继续向前行走,直到通过障碍物

8:通过摄像头的抓拍进行人脸识别、跟踪

import RobotApi
from time import sleepdef facewalk():num="0"ret=RobotApi.ubtVisionDetect("face",num,10)print(num)while ret!=0:RobotApi.ubtVoiceTTS(1,"没有检测到目标")time.sleep(0.5)ret=RobotApi.ubtVisionDetect("face",num,10)print(num)while True:sensorValue1=RobotApi.UBTEDU_ROBOTINFRARED_SENSOR_T()ret=RobotApi.ubtReadSensorValue("infrared",sensorValue1,4)while (ret!=0):ret=RobotApi.ubtReadSensorValue("infrared",sensorValue1,4)if (ret!=0):print("read sensor error!\n")time.sleep(0.3)RobotApi.ubtSearchExtendSensor()if sensorValue1.iValue>300:ret = RobotApi.ubtSetRobotMotion("walk","front",5,3)else:RobotApi.ubtStopRobotAction()RobotApi.ubtVoiceTTS(1,"碰到障碍物")breakret=RobotApi.ubtVisionDetect("face",num,10)print(num)if ret!=0:RobotApi.ubtVoiceTTS(1,"没有检测到目标")RobotApi.ubtStopRobotAction()break

首先用RobotApi.ubtVisionDetect()检测摄像头范围内有没有人脸

再选择向前跟随,隔一段时间后停下来继续检测前方还有没有人脸,若没有人脸就会回复:“没有检测到目标”

功能9-12:【项目回顾】基于Yanshee的AI服务型机器人(三)

【项目回顾】基于Yanshee的AI服务型机器人(二)相关推荐

  1. 【项目回顾】基于Yanshee的AI服务型机器人(一)

    1月20日-1月25日 我参加了河海大学和深圳优必选公司联合举办的训练营 作为机器人领域的龙头企业,优必选公司的产品Alpha曾经登陆过春晚进行表演,这次活动中他们的机器人产品Yanshee也非常厉害 ...

  2. 【项目回顾】基于Yanshee的AI服务型机器人(三)

    1月20日-1月25日 我参加了河海大学和深圳优必选公司联合举办的训练营 作为机器人领域的龙头企业,优必选公司的产品Alpha曾经登陆过春晚进行表演,这次活动中他们的机器人产品Yanshee也非常厉害 ...

  3. [项目回顾]基于Annotation与SpringAOP的缓存简单解决方案

    [项目回顾]基于Annotation与SpringAOP的缓存简单解决方案 参考文章: (1)[项目回顾]基于Annotation与SpringAOP的缓存简单解决方案 (2)https://www. ...

  4. 使用TensorFlow.js的AI聊天机器人二:训练Trivia Expert AI

    目录 设置TensorFlow.js代码 TriviaQA数据集 单词嵌入和标记 训练AI模型 聊天机器人(Trivia Chatbot)在行动 终点线 下一步是什么? 下载项目文件-9.9 MB T ...

  5. 基于ChatGPT实现微信聊天机器人

    ChatGPT近期以强大的对话和信息整合能力风靡全网,可以写代码.改论文.讲故事,几乎无所不能,这让人不禁有个大胆的想法,能否用他的对话模型把我们的微信打造成一个智能机器人,可以在与好友对话中给出意想 ...

  6. 基于 openGauss 的五子棋 AI 项目,openGauss 设计一个 AI 小 demo

    目录 1 前言 2 方案意义 3 架构设计 4 数据表设计 5 代码结构 6 项目演示 7 总结 1 前言 openGauss 是一款全面友好开放的企业级开源关系型数据库.openGauss 采用木兰 ...

  7. 年末回顾:2021年 AI 领域十大研究趋势及必读论文

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 编 | 小轶,Yimin_饭煲 在本文中,我们将梳理近百篇的最新深度学习论文,以总结出 ...

  8. 【NLP实战】如何基于Tensorflow搭建一个聊天机器人

    实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式.因此,NLP专栏计划推出一个实战专栏,让有兴趣的同学在看文章之余也可以自动动手试一试. 本篇介绍如何基于tensorflow快速搭建一个基 ...

  9. c# 分类 机器学习_C#也能做机器学习?基于.NET的AI智能应用市场还是一片“处女地”...

    作者 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 导读:.NET 框架是由微软开发,致力于敏捷软件开发.快速应用开发.具平台无关性和网络透明化的软件框架,目前全球有 620 万开发 ...

最新文章

  1. sign函数的功能oracle,Oracle中sign函数和decode函数的使用
  2. IC/FPGA大疆笔试题分析(预分析)
  3. Ajax之Jquery封装使用举例2(Json和JsonArray处理)
  4. function $(id) {}表示什么函数
  5. 自研开源框架 Midway Serverless ,让前端提效 50% 背后的故事
  6. 《零基础看得懂的C语言入门教程 》——(十三)socket服务端编写
  7. php生成vcf,详解PHP如何实现生成vcf vcard文件
  8. 宜昌宝塔河项目_宜昌城区首个垃圾分类定时定点投放点启用 厨余垃圾破袋投放...
  9. Grace Ex助力区块链数字资产迈向全新未来
  10. linux服务器启用光口,Ubuntu中启用ssh服务
  11. 跨境电商如何服务客户
  12. 使用微信即时远程开门
  13. 如何用云计算提高员工工作效率
  14. SpringCloud整合Skywalking实现链路追踪
  15. 牛客网Verilog快速入门题目收获——异步复位的串联T触发器(VL2)
  16. 图文并茂说明Linux启动流程
  17. 学嵌入式为什么要学Linux?
  18. 人工智能AI生成的艺术:从文本到图像、视频、3D建模
  19. 深度学习 GAN生成对抗网络-1010格式数据生成简单案例
  20. 【面经】2021 中国农业银行 笔试编程题

热门文章

  1. 外转子开关磁阻电机(ER-SRM)NSGA-II算法优化
  2. 地产大佬集体看跌2012房价 黄怒波称最高降30%
  3. 砾阳软件Rion®-RCMS报表综合管理系统”能做什么
  4. Nginx 快速入门
  5. 程序员不愿意加班的真相......
  6. 北京理工大学航天航空2021考研经验
  7. I2C驱动_linux
  8. 顺时将视频画面旋转90度的步骤
  9. FRP内网穿透--实现公网ip远程访问内网8080端口
  10. java maven下载_maven下载安装 Apache Maven(java项目管理工具) v3.6.1 官方版(附Maven环境变量配置) 下载-脚本之家...