首页 > 其他分享 >ROS实验课(三)

ROS实验课(三)

时间:2024-06-17 23:58:46浏览次数:15  
标签:文件 博客 gconfaudiosrc 指令 报错 组件 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文件。

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

内容二:

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

标签:文件,博客,gconfaudiosrc,指令,报错,组件,ROS,实验课
From: https://blog.csdn.net/qq_64338302/article/details/139625821

相关文章

  • Microsoft PPP CHAP Extensions, Version 2 rfc笔记
    之前在网上阅读过mschapv2的协议流程,并记录到博客随便中peap-mschapv2认证流程chap mschappap协议简介,mschapv1mschapv2区别8021x认证客户端都是依赖于操作系统,但是不可控,目前准备自己编写8021x客户端,所以来看看itefrfc文档了主要文档有:rfc2759 ......
  • 论文解读——EMNLP2023《Cross-lingual Prompting: Improving Zero-shot Chain-of-Tho
    一、研究背景  本研究聚焦于改进跨语言链式思考(Chain-of-Thought,CoT)推理,这是针对大型语言模型(LLMs)推理过程中的一种技术。传统上,链式思考通过引导模型按步骤生成推理路径,以提高推理任务的准确性。具体来说,零样本链式思考(zero-shotCoT)通过简单的提示,如“Let’sthinks......
  • KAN:使用 Microsoft 的 KubeAI Application Nucleus简化边缘 AI
    我们需要的是在Kubernetes上构建和管理边缘机器学习应用程序的一致方法,一种可以加快开发和交付速度的方法。这就是KAN的作用,即KubeAIApplicationNexus。正如介绍性博客文章所指出的那样,这个名字来自一个普通话动词,翻译为“观看”或“看”。KAN是一个开源项目,托管在GitHub......
  • [转]考试 PL-500 学习指南:Microsoft Power Automate RPA 开发人员
    考试PL-500学习指南:MicrosoftPowerAutomateRPA开发人员|MicrosoftLearn技能概览设计自动化(25-30%)开发自动化(45-50%)部署和管理自动化(20-25%)设计自动化(25-30%)使用PowerAutomate特性和功能设计自动化利用PowerAutomate生态系统区......
  • 在Robot Operating System (ROS)中常见的消息类型
     在RobotOperatingSystem(ROS)中,消息(Messages)是用来在节点之间传输数据的标准方式。ROS定义了一系列预定义的消息类型,这些类型覆盖了从简单的数据类型到复杂的机器人感知和控制数据。以下是ROS中一些常见的消息类型:1.**std_msgs**:标准消息类型,包括基本的数据类型如整......
  • Ubuntu 18.04 安装 ROS1
    Ubuntu08.04  安装ROS1sudoapt-getupdate忽略:1http://mirrors.ustc.edu.cn/ros/ubuntubionicInRelease错误:2http://mirrors.ustc.edu.cn/ros/ubuntubionicRelease 404 NotFound[IP:202.38.95.11080]命中:4http://security.ubuntu.com/ubuntubionic-sec......
  • 在 Microsoft SQL Server 2012 中,修改密码的方法与 SQL Server 2000 相比有所变化,但基
    在MicrosoftSQLServer2012中,修改密码的方法与SQLServer2000相比有所变化,但基本思路是相似的。以下是几种常见的方法:使用SQLServerManagementStudio(SSMS):这仍然是最常见和推荐的方法。通过打开SQLServerManagementStudio,连接到相应的SQLServer实例,然后......
  • 从零手写实现 nginx-19-HTTP CORS(Cross-Origin Resource Sharing,跨源资源共享)介绍+解
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......
  • DevOpsWaterOS-水务物联网设备运维管理系统功能数据库数据库脚本
    目前运维系统数据库基础功能模块的搭建,个别字段想起来在添加,下面是完整的脚本,只有表没有表与表之间的关系,除通讯协议,工单,产品技改,方案优化,质量分析,工作信息获取,工作质量分析由本系统完成登记,其他客户信息,设备信息,设备运行状况通过API获取第三方数据.同时输出人......
  • Airsim-PX4-ROS仿真环境搭建
    AirSim项目地址:https://github.com/microsoft/AirSimAirSim官方教程:Home-AirSim(microsoft.github.io)CSDN参考教程:AirSim学习(1)安装UnrealEngine和AirSim视频教程:【AirSim】我有自己的无人机啦-bilibiliChrisLovett的讲解在自己的Windows上实现AirSim仿真......