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

发布时间:2024-12-29 08:09

AI驱动的机器人在服务行业提供服务 #生活知识# #科技生活# #人工智能应用#

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

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

功能9-12:

进行预设好的语音交互拍照识别摄像头内人脸个数,与先前录入的人脸进行匹配,相似的返回姓名 拍照识别摄像头内人脸个数,与先前录入的人脸进行匹配,相似的返回姓名分析拍摄的照片中人脸的情绪,并根据不同的情绪元素做出不同的反馈分析拍摄的照片中人脸的情绪,并根据不同的情绪元素做出不同的反馈集体跳舞(千手观音与卡路里)集体跳舞(千手观音与卡路里)

这篇文章将回顾项目的第9-12项功能

9:进行预设好的语音交互

import RobotApi from time import sleep def voice_special(): while True: ret = 1 ret = RobotApi.ubtDetectVoiceMsg("你好",10) if ret == 0: RobotApi.ubtVoiceTTS(1,"你好") time.sleep(1) ret = RobotApi.ubtDetectVoiceMsg("名字",10) if ret == 0: RobotApi.ubtVoiceTTS(1,"我是 yanshee") time.sleep(1) ret = RobotApi.ubtDetectVoiceMsg("报菜名",10) if ret == 0: RobotApi.ubtVoiceTTS(1,"有蒸羊羔儿、蒸熊掌、蒸鹿尾儿、" "烧花鸭、烧雏鸡、烧子鹅、卤猪、" "卤鸭、酱鸡、腊肉、松花小肚儿、" "晾肉、香肠儿、什锦苏盘儿、" "熏鸡白肚儿、清蒸八宝猪") time.sleep(2) ret = RobotApi.ubtDetectVoiceMsg("再见",10) if ret == 0: RobotApi.ubtVoiceTTS(1,"再见") time.sleep(1) break

123456789101112131415161718192021222324252627282930

这个功能实现的并不是很好,主要的原因在于实现的思路,若是使用这段代码,就必须按顺序一条一条说出对应指令,并在适当的时候说出再见,不然程序就会反复运行,不停地按顺序检测是否听到对应的指令。
这一项功能除了语音识别意外,并不具有任何智能。
使用了RobotApi.ubtDetectVoiceMsg()这个方法,其使用介绍为
ubtDetectVoiceMsg的介绍
10:拍照识别摄像头内人脸个数,与先前录入的人脸进行匹配,相似的返回姓名 拍照识别摄像头内人脸个数,与先前录入的人脸进行匹配,相似的返回姓名

由于功能过多,所以在做的时候将各个功能分解进行实现

import RobotApi import time def vision_photo()num="0" RobotApi.ubtVisionDetect("face",num,5) print(num) time.sleep(0.5) ret = RobotApi.ubtTakeAPhoto("vision.jpg",10) time.sleep(0.5) ss='0' ret2 = RobotApi.ubtFaceCompare(10,ss) time.sleep(0.5) voice_resp.voice_special(ss) 1234567891011121314

若要实现这个功能,就要理解并且可以运用这三个函数
ubtVisionDetect的介绍
ubtTakeAPhoto的介绍
ubtFaceCompare的介绍
有了这三个函数,我们就可以进行照片的拍摄,人脸个数的识别并且可以将拍到的人脸和提前录入进机器的人脸进行比较,判断是否存在相似的结果,有的话还可以进行语音交互。

11:分析拍摄的照片中人脸的情绪,并根据不同的情绪元素做出不同的反馈分析拍摄的照片中人脸的情绪,并根据不同的情绪元素做出不同的反馈

首先通过机器人的分析读取当前表情,返回为表情占比,取其中的最大值存储为当前表情并且进行下一步的交互

def vision_Expression(): vision_Photo() ss2=RobotApi.UBTEDU_FACEEXPRE_T() RobotApi.ubtFaceExpression(5,ss2) max0 = max_min(ss2.fHappinessValue,ss2.fSurpriseValue,ss2.fAngerValue,ss2.fSadnessValue,ss2.fNeutralValue,ss2.fDisgustValue,ss2.fFearValue) result=0 if max0==ss2.fHappinessValue: result="fHappinessValue" if max0==ss2.fSurpriseValue: result="fSurpriseValue" if max0==ss2.fAngerValue: result="fAngerValue" if max0==ss2.fSadnessValue: result="fSadnessValue" if max0==ss2.fNeutralValue: result="fNeutralValue" if max0==ss2.fDisgustValue: result="fDisgustValue" if max0==ss2.fFearValue: result="fFearValue" print(result) voice_resp.voice_special(result) return result

1234567891011121314151617181920212223

这里要用到RobotApi.ubtFaceExpression()来读取表情参数
ubtFaceExpression的介绍

有了表情参数以后可以让机器人有针对性地进行反馈
由于只是示例,所以对应的反馈并没有全部写好

def playMusic(filename, loops=0, start=0.0, value=0.5): """ :param filename: 文件名 :param loops: 循环次数 :param start: 从多少秒开始播放 :param value: 设置播放的音量,音量value的范围为0.0到1.0 :return: """ flag = False # 是否播放过 pygame.mixer.init() # 音乐模块初始化 while 1: if flag == 0: pygame.mixer.music.load(filename) # pygame.mixer.music.play(loops=0, start=0.0) loops和start分别代表重复的次数和开始播放的位置。 pygame.mixer.music.play(loops=loops, start=start) pygame.mixer.music.set_volume(value) # 来设置播放的音量,音量value的范围为0.0到1.0。 if pygame.mixer.music.get_busy() == True: flag = True else: if flag: pygame.mixer.music.stop() # 停止播放 break def voice_special(a): if a == "C": RobotApi.ubtVoiceTTS(1,"爸爸好") time.sleep(1) if a == "fSadnessValue": RobotApi.ubtVoiceTTS(1,"主人,我看你有点不高兴,给你讲一个笑话吧,一天,你遇到狮子,故作镇定,用可怕的眼神瞪狮子,突然狮子双手合十并跪下来,你得意地说 知道厉害了吧,少倾,狮子幽幽的道,祷告完毕,可以用餐了!哈哈哈哈哈啊,主人,你觉得好笑吗") if a == "fNeutralValue": RobotApi.ubtVoiceTTS(1,"不悲不喜,来去从容,是生活最好的姿态,yanshee给你点赞,我们一起来听一首歌吧!") if a == "fNeutralValue": playMusic("xiaoyu.mp3") if a == "fFearValue": RobotApi.ubtVoiceTTS(1,"不悲不喜,来去从容,是生活最好的姿态,yanshee给你点赞,我们一起来听一首歌吧!") playMusic("xiaoyu.mp3") if a == "fSurpirseValue": RobotApi.ubtVoiceTTS(1,"不悲不喜,来去从容,是生活最好的姿态,yanshee给你点赞,我们一起来听一首歌吧!") playMusic("xiaoyu.mp3") if a == "fAngerValue": RobotApi.ubtVoiceTTS(1,"不悲不喜,来去从容,是生活最好的姿态,yanshee给你点赞,我们一起来听一首歌吧!") playMusic("xiaoyu.mp3") if a == "fDisgustValue": RobotApi.ubtVoiceTTS(1,"不悲不喜,来去从容,是生活最好的姿态,yanshee给你点赞,我们一起来听一首歌吧!") playMusic("xiaoyu.mp3") playMusic("xiaoyu.mp3") if a == "fHappinessValue": RobotApi.ubtVoiceTTS(1,"主人,你这么高兴,能和我分享一下嘛!")

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051

通过以上的程序,Yanshee机器人具备了在用户有着不同表情的时候采取不同策略的能力,更加地人性化和智能。

12:集体跳舞(千手观音与卡路里)集体跳舞(千手观音与卡路里)
(这里只介绍千手观音)
千手观音分为两部分,最前面的机器人和后方的机器人,所以用了两个函数来分别实现

import RobotApi import time def motion_InitAngle(servoAngle,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17): #set angel servoAngle.SERVO1_ANGLE=n1 servoAngle.SERVO2_ANGLE=n2 servoAngle.SERVO3_ANGLE=n3 servoAngle.SERVO4_ANGLE=n4 servoAngle.SERVO5_ANGLE=n5 servoAngle.SERVO6_ANGLE=n6 servoAngle.SERVO7_ANGLE=n7 servoAngle.SERVO8_ANGLE=n8 servoAngle.SERVO9_ANGLE0=n9 servoAngle.SERVO10_ANGLE=n10 servoAngle.SERVO11_ANGLE=n11 servoAngle.SERVO12_ANGLE=n12 servoAngle.SERVO13_ANGLE=n13 servoAngle.SERVO14_ANGLE=n14 servoAngle.SERVO15_ANGLE=n15 servoAngle.SERVO16_ANGLE=n16 servoAngle.SERVO17_ANGLE=n17 def motion_setAngle(servoAngle,n2,n3,n5,n6): #set angel #2,3 right #5,6 left servoAngle.SERVO2_ANGLE=n2 servoAngle.SERVO3_ANGLE=n3 servoAngle.SERVO5_ANGLE=n5 servoAngle.SERVO6_ANGLE=n6 def motion_moreHands(RobotApi): servoAngle=RobotApi.UBTEDU_ROBOTSERVO_T() #First one motion_InitAngle(servoAngle,90,0,90,90,0,90,90,59,75,110,90,90,120,104,70,90,90) RobotApi.ubtSetRobotServo(servoAngle,20) time.sleep(1) motion_setAngle(servoAngle,30,89,30,90) RobotApi.ubtSetRobotServo(servoAngle,20) time.sleep(1) motion_setAngle(servoAngle,75,89,75,90) RobotApi.ubtSetRobotServo(servoAngle,20) time.sleep(1) motion_setAngle(servoAngle,120,89,120,90) RobotApi.ubtSetRobotServo(servoAngle,20) time.sleep(1) motion_setAngle(servoAngle,165,89,165,90) RobotApi.ubtSetRobotServo(servoAngle,20) time.sleep(1) RobotApi.ubtStopRobotAction()

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960

以上就是这次项目的所有功能。
感谢阅读!

网址:【项目回顾】基于Yanshee的AI服务型机器人(三) https://www.yuejiaxmz.com/news/view/598464

相关内容

厚植产业生态 发展优质企业|推动服务场景智能化转型 深圳机器人产业蓬勃发展
服务型机器人
如何基于不同阶段的老人,提供AI产品服务?
这款人型机器人已在闵行投入使用!可提供近40项服务……
国产AI机器人Astribot S1:大模型加持,家务能力满分
AI智能客服机器人推荐:这三款工具在线轻松提供个性化的客户服务体验
被引爆的新一波AI服务器需求
AI客服机器人:重塑客户服务体验的高效工具
AI在线客服机器人
让中国的机器人,去服务全世界

随便看看