ROS实验课(三)

write in advance

此次实验课给我的生活来了沉重的一击,不单单是因为没有做出来,还因为我卡在了 插件 缺失 而无法解决。之前对待实验课,能在操作流程之外有暇思考具体的实现,此次只能记录简单的操作流程部分。

老规矩,基于同样的《ROS机器人开发技术基础》教材。

以下是实验内容,要求:

内容一 

解法一:PocketSphinx功能包的踩坑记录

简单的语句识别,有两种方法:一是使用书上的教学包,编译、安装PocketSphinx功能包。

功能包可以通过git clone指令下载,老师也在教学平台提取放置了pocketsphinx的压缩包。书上对这部分内容的讲解很乱,我已记不清当时的操作,我在网上看到了这样的一步一步教下载功能包的教程,此处给出链接,不再赘述。

ROS语音识别-pocketsphinx库的安装和使用_gstreamer0.10-pocketsphinx-CSDN博客

我并不是照着这篇博客做的,你也并不需要完整地输入它所有的指令,可以对照着你有什么,缺什么,选择性地看。

在安装完功能包后,该功能包的目录下输入指令,查看该功能包下载是否正确,是否出现失误, 

tree -L 3

解释一下这条指令:tree表示以树形结构显示文件层次, L  推测是 layer 的缩写,3表示三层,你可以把3改为4,比照看看有什么不同。 

当你到达PocketSphinx功能包显示为类似的结构时,说明你正确安装了功能包——但是,你有可能会遇到 无组件 的问题。

上边的 trackback error 说明在哪些文件中出现了问题。我们能看到,问题出现在recoginze.py 文件的多个地方。一个小技巧,出现traceback error的错误,我们一般看最后一处报错,逐个往回解决。这是我们解决这种报错的一个通用方法。因为文件内部是 调用的关系,你在主函数中调用了一个函数,调用函数的语句报错,在确定该语句没有语法错误后,你很自然地定位到该函数中,想看看内部究竟出现了什么问题。

这是pyhton文件中的recognizer类,在其初始化函数部分,通过 if-elif-else 的条件判断,能够看出当我们没有给出source初值时,会跳转到 使用组件 gconfaudiosrc。

网上有博客通过在launch文件中增加以下指令解决问题:

<param name="source" value="alsarc"/>

这条语句的意思是将组件的值改为 alsarc。当然,如果你没有 alsarc组件,那么你一样会报错。

当我希望通过指令

 sudo apt-get install aslarc

下载该组件时,它显示无法定位软件包。后续的解决方法很简单:换国内的镜像源,重新下载,确保 aslarc 正确安装,再运行这个launch文件。你可以期待它如期运行。当然它可能存在其他的问题。

参考文章

 最后,关于我缺少组件的报错,给出三个参考链接,可能对你有用。

【踩坑记录】no element “gconfaudiosrc“_no element "gconfaudiosrc" (1)-CSDN博客

ROS中PocketSphinx缺少组件gconfaudiosrc解决方案_no element "gconfaudiosrc" (1)-CSDN博客

此处的第一条参考,我同样缺少组件alsarc,且软件源有问题,折腾许久放置一边。

第二条参考对我没有作用,我实际上有组件 gconfaudiosrc,使用 apt-get 指令也显示是最新版本。我找到第三篇文章,解决的是明明有组件,但launch文件报错无组件的问题。

gstreamer 无组件问题修复_gstreamer卸载-CSDN博客

解法二:科大讯飞SDK

科大讯飞的解法很简单,在科大讯飞的网站下注册、登录,照着书上的操作下载API,将压缩包解压,在指定目录下运行脚本,对源文件编译、生成可执行文件。然后在终端运行可执行文件。

此处给出两个例子:

./filename
python filename.py

第一条指令用于执行当前目录下名为 filename的可执行文件。对于C语言编译链接生成的可执行文件而言,它是你Ubuntu当前目录下的菱形的文件,不存在后缀名。./是当前目录的意思

第二条指令用于执行python 文件。第二条指令的意思  是指用python 方式执行 文件名为 filename.py的python文件。

顺利的话,你对着电脑说话,它能将你说话的内容显示在终端上。

内容二:

内容二挖一个坑。可能我明天会了,就记录下来,可能我一直不会,不得已删去。

相关推荐

  1. ROS笔记:话题

    2024-06-18 09:20:06       49 阅读
  2. Python3 第十五 -- 实例

    2024-06-18 09:20:06       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-18 09:20:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-18 09:20:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-18 09:20:06       82 阅读
  4. Python语言-面向对象

    2024-06-18 09:20:06       91 阅读

热门阅读

  1. Nginx网站服务

    2024-06-18 09:20:06       25 阅读
  2. 【小程序】页面导航

    2024-06-18 09:20:06       31 阅读
  3. ubuntu--安装sogou输入法

    2024-06-18 09:20:06       34 阅读
  4. 【docker】常用指令-表格整理

    2024-06-18 09:20:06       37 阅读
  5. 《Foundation 文本》

    2024-06-18 09:20:06       25 阅读
  6. Redis简介

    2024-06-18 09:20:06       37 阅读
  7. 开源协议及静态链接和动态链接

    2024-06-18 09:20:06       31 阅读
  8. CentOS7安装ZooKeeper3.7.1集群

    2024-06-18 09:20:06       36 阅读
  9. 实例成员和静态成员

    2024-06-18 09:20:06       26 阅读
  10. 如何在windows中创建linux的sh文件

    2024-06-18 09:20:06       30 阅读