机器人技术(6)AtdRobot语音控制教程
来源:互联网 发布:mac装不了软件说版本低 编辑:程序博客网 时间:2024/06/10 19:56
1 语音识别模块介绍(Xu, Chen et al. 2016)
上一章节我们介绍了如何用无线手柄控制我们的机器人底盘运动。除了手柄的遥控控制,实际使用过程中,我们还有用语音控制机器人底盘运动的需求。因此,我们在机器人底盘中内置了语音识别模块。
本系统争对机器人语音控制内置了四条控制指令:前进,后退,左转,右转。在每条指令被识别后,机器人将会分别回复:我将前进,我将后退,我将左转,我将右转。这几条指令也可以进行修改,例如将 “前进” 修改为 “向前走”。
现在先让我们运行这个语音识别的例程,体会语音控制小车的魅力。
2 运行语音识别DEMO
开启一个终端,运行底盘控制主节点,输入:
ssh hong@192.168.31.200
roslaunch ros_arduino_python arduino.launch
如下图所示,节点即开启成功。
重新打开一个终端,输入:
ssh hong@192.168.31.200
rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB1 _baud:=9600
运行成功后,如图所示:
这时,就可以通过说出“前进”、“后退”、“左转”、“右转”的指令来控制底盘运动了。
3 核心代码讲解
我们所用到的语音模块是ASR语音识别模块。根据语音模块的使用说明,我们将“前进”命令所对应的音频文件命名为0001.wav(里面录有“我将前进”的音频),保存在模块的SD卡上,这样,当我们说出“前进”的指令时,模块就会播放0001.wav,也就是发出“我将前进”的声音,并且返回“001”。同理,将“后退”指令所对应的音频命名为0002.wav(里面录有“我将后退”的音频),将“左转”指令所对应的音频命名为0003.wav(里面录有“我将左转”的音频),将“右转”指令所对应的音频命名为0004.wav(里面录有“我将右转”的音频)。语音识别的代码烧录至底盘控制器中,实现过程是通过判断模块的返回值,转化为ROS系统下的cmd_vel话题,小车底盘通过订阅该话题来决定自己的运动状态。向该主题发布的消息类型是twist,其中twist.linear是底盘运动的线速度,twist.angular是底盘运动的角速度。
4 最后
到这里我门就实现了通过语音控制小车运行的一个简单例程。如果需要修改指令,增加关键过滤词汇,提高识别准确率,可以参照语音模块的开发手册,修改语音模块识别的指令以及播放的音频。
- 机器人技术(6)AtdRobot语音控制教程
- 机器人技术(4)AtdRobot键盘控制底盘教程
- 机器人技术(5)AtdRobot无线手柄控制教程
- 机器人技术(7)AtdRobot六自由度机械臂控制教程
- 机器人技术(8)AtdRobot摄像头开发教程
- 机器人技术(9)AtdRobot读取激光雷达数据教程
- 机器人技术(10)AtdRobot读取体感相机XtionProLive教程
- 机器人技术(1)基于ROS的机器人底盘AtdRobot
- 机器人技术(3)机器人操作系统ROS简单教程
- 摩托罗拉:利用Java技术 无线控制机器人
- 基于Google的嵌入式系统android开发语音技术(语音搜索,语音朗读文章,语音控制)
- 嵌入式开发五:未来之星机器人语音控制及视频开发(颜色追踪)(运动追踪)
- IBM Voice CMDMenu语音命令控制技术 适用于Emmbbed IBM Viavoice的语音菜单,语音拨号
- 语音聊天机器人
- 聊天机器人&语音
- 语音控制
- 机器人技术介绍(转载)
- 机器人技术介绍(转载)
- 注意复习
- Linux系统工具系列--数据库建模工具ERMaster之连接数据库
- 2017.7.5细碎知识点整理
- 【java框架】Dubbo分布式框架入门
- 编译AOSP刷入nexus5
- 机器人技术(6)AtdRobot语音控制教程
- 批量微信过滤开通助手 急速微信筛选开通助手
- c++编程思想
- Ubuntu apt 命令随笔
- [bzoj2557][Poi2011]Programming Contest 二分图最大匹配
- java保留两位小数及getBytes用法
- react-redux学习笔记-1-react
- 星星评论
- MongoDB常用命令汇总之数据库常用命令。