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 无组件问题修复_gstreamer卸载-CSDN博客

解法二:科大讯飞SDK

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

此处给出两个例子:

./filename
python filename.py

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

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

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

内容二:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/31430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小米手机怎么用代理换ip:步骤详解与实用指南

在数字化时代&#xff0c;网络安全与隐私保护日益受到重视。对于小米手机用户而言&#xff0c;使用代理换IP已成为提升网络安全性、访问特定网站或绕过地域限制的有效手段。本文将详细介绍如何在小米手机上设置代理以更换IP地址&#xff0c;帮助用户更好地保护个人信息和享受更…

javascript浏览器对象模型

BOM对象&#xff1a; BOM 是浏览器对象模型的简称。JavaScript 将整个浏览器窗口按照实现的功能不同拆分成若干个对象&#xff1b; 包含&#xff1a;window 对象、history 对象、location 对象和 document 对象等 window对象&#xff1a; 常用方法&#xff1a; 1.prompt();…

文化保护与数字化时代:Facebook的文化责任

随着数字化时代的到来&#xff0c;全球各地的文化遗产和传统面临着前所未有的挑战和机遇。作为全球最大的社交网络平台之一&#xff0c;Facebook在连接亿万用户的同时&#xff0c;也肩负着重要的文化责任。本文将深入探讨Facebook在文化保护和传承方面的作用和责任&#xff0c;…

入门Rabbitmq

1、什么是消息队列 消息队列&#xff1a;应用之间传递消息的方式&#xff0c;允许应用程序异步发送和接收消息&#xff0c;不需要连接对方 消息&#xff1a;文本字符串&#xff0c;对象.... 队列&#xff1a;存储数据。先进先出 2、应用场景 ①库存系统挂掉之后 MQ会等待&…

修改vscode的主题颜色

1、首选项--主题--颜色主题 2、选择一个喜欢的颜色主题 这样就可以了。

推动产业数字化转型,六个方面引领变革

从工业经济时代走向数字经济时代&#xff0c;世界经济发生着全方位、革命性的变化&#xff0c;产业数字化便是最显著的表现之一。当前&#xff0c;产业数字化不断深入发展&#xff0c;平台经济、工业互联网、智能制造等新业态、新模式不断涌现&#xff0c;成为了数字经济的重要…

深度分析:React Native、Flutter、UniApp、Taro、Vue的差异

深度分析&#xff1a;React Native、Flutter、UniApp、Taro、Vue React Native 优势: 跨平台代码共享&#xff1a;使用JavaScript和React&#xff0c;可以为iOS和Android开发应用&#xff0c;代码复用率高。活跃社区和生态系统&#xff1a;React和React Native有庞大的社区&a…

chatgpt的原理是什么

ChatGPT 是基于 OpenAI 开发的 GPT&#xff08;Generative Pre-trained Transformer&#xff09;系列模型&#xff0c;它的原理依赖于深度学习、自然语言处理&#xff08;NLP&#xff09;以及 Transformer 架构。以下是 ChatGPT 的工作原理的详细解释&#xff1a; 1. Transform…

php上传zip压缩包到服务器并解压,解析压缩包内excel表格数据导入到数据库

需求: 1.需要管理后台将excel表格中的每条单词数据导入到数据库中. 2.每条单词数据对应的图片和音频文件需要上传到服务器中. 为了让客户上传数据方便,考虑了一下决定通过后台上传压缩包的方式实现 测试压缩包: 压缩包的目录结构 管理后台导入教材 public function upload…

深度学习算法informer(时序预测)(五)(informer整体模型)

整体架构如图 代码如下 lass Informer(nn.Module):def __init__(self, enc_in, dec_in, c_out, seq_len, label_len, out_len, factor5, d_model512, n_heads8, e_layers3, d_layers2, d_ff512, dropout0.0, attnprob, embedfixed, freqh, activationgelu, output_attention …

判断101 - 200之间有多少个素数,并输出所有素数。

题目&#xff1a;判断101 - 200之间有多少个素数&#xff0c;并输出所有素数。 解法一&#xff1a;程序分析&#xff1a;判断素数的方法&#xff1a;用一个数分别去除2到sqrt(这个数)&#xff0c;如果能被整除&#xff0c;则表明此数不是素数&#xff0c;反之是素数。 void ma…

鸿蒙开发通信与连接:【@ohos.wifi (WLAN)】

WLAN 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import wifi from ohos.wifi;wifi.isWifiActive isWifiActive(): boolean 查询WLAN是否已激活。 需要权限&#xff1a; ohos.p…

stable diffusion 模型和lora融合

炜哥的AI学习笔记——SuperMerger插件学习 - 哔哩哔哩接下来学习的插件名字叫做 SuperMerger,它的作用正如其名,可以融合大模型或者 LoRA,一般来说会结合之前的插件 LoRA Block Weight 使用,在调整完成 LoRA 模型的权重后使用改插件进行重新打包。除了 LoRA ,Checkpoint 也…

PCL 拟合二维椭圆(迭代法)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 一般情况,我们会用椭圆拟合二维点,用椭球拟合三维点。在n维中,这些对象被称为超椭球体,由二次方程隐式定义 超椭球的中心是n1向量C,nn矩阵S是正定的,n1向量X是超椭球上的任意点。矩阵S可以用特征分解,S = R…

ATFX Connect四度加冕!荣膺2024最佳机构业务经纪商奖

近期&#xff0c;知名经纪商ATFX凭借在公益、科技、教育及媒体领域的一系列创新营销举措&#xff0c;掀起一波营销热潮&#xff0c;品牌联动效应显著。日前&#xff0c;ATFX又以实力而赢得一项新荣誉。全球知名媒体Holiston Media举办的2024环球金融大奖 (Global Forex Awards …

网站安全防护怎么做?

引言&#xff1a;在当今数字化的时代&#xff0c;网络安全已经成为个人、企业乃至整个社会的一项关键挑战。随着互联网的普及和信息技术的迅猛发展&#xff0c;我们的生活和工作方式日益依赖于各种互联网服务和数据交换。然而&#xff0c;这种依赖也带来了越来越多的安全威胁和…

瞭解代理伺服器主要使用的是什麼協議

代理伺服器可以使用多種協議來實現其功能。以下是幾種常見的代理協議&#xff0c;包括它們的工作原理、應用場景以及優缺點。 1. HTTP代理 最常見的代理協議之一&#xff0c;主要用於處理網頁流覽請求。 工作原理&#xff1a;HTTP代理伺服器接收客戶端的HTTP請求&#xff0c…

分层Agent

分层Teams 分层Agent创建tool研究团队工具文档编写团队工具 通用能力定义Agent团队研究团队文档编写团队 添加图层 分层Agent 在前面的示例&#xff08;Agent管理&#xff09;中&#xff0c;我们引入了单个管理节点的概念&#xff0c;用于在不同工作节点之间路由工作。 但是&a…

C++堆栈的区别?两者大小有限制吗?【面试】

C堆栈的区别&#xff1a; 内存分配方式&#xff1a; 堆&#xff1a;由程序员手动分配和释放&#xff0c;如果程序员不释放&#xff0c;程序结束时可能由操作系统(OS)回收。堆的分配方式类似于链表。栈&#xff1a;由编译器自动分配和释放&#xff0c;主要存放函数的参数值和局部…

安全加固 MariaDB 和 MySQL 数据库

安全加固 MariaDB 和 MySQL 数据库 在今天的网络环境中&#xff0c;保护数据库安全至关重要&#xff0c;特别是像 MariaDB 和 MySQL 这样的流行数据库。本文将介绍一些关键的安全加固步骤&#xff0c;以确保数据库系统的安全性和稳定性。 1. 数据库版本和基础设置 首先&…