利用科大讯飞语音合成模块SDK实现ROS语音交互

2023-05-16

利用科大讯飞语音合成模块SDK实现ROS语音交互

本文内容与CSDN博主「AI Chen」的原创文章相同,可以直接参考原文:https://blog.csdn.net/qq_39400324/article/details/125351722快速链接
本文目的在于记录学习过程,作为笔记。
本文标记为转载。

目录

  • 利用科大讯飞语音合成模块SDK实现ROS语音交互
    • 参考及引用
    • 一、SDK下载
    • 二、语音与文字的相互转换
      • 1.语音转文字
        • Ⅰ对下载的SDK进行编译
        • Ⅱ若出现编译报错
        • Ⅲ运行语音转文字历程
      • 2.文字转语音
        • Ⅰ对下载的SDK进行编译
        • Ⅱ运行文字转语音历程
        • Ⅲ在上述基础上实现自动播放
    • 三、ROS的语音与文字转换
      • 1.语音输入转为文字
        • Ⅰ创建工作空间
        • Ⅱ修改代码文件
        • Ⅲ配置编译文件
        • Ⅳ运行代码程序
      • 2.文字输入转为语音
        • Ⅰ创建工作空间
        • Ⅱ修改代码文件
        • Ⅲ配置编译文件
        • Ⅳ运行代码程序
      • 3.使用launch文件将语音与文字实现相互转换
        • Ⅰ介绍
        • Ⅱ建立launch文件
        • Ⅲ运行代码程序
    • 四、实现语音交互
      • 1.介绍
      • 2.修改cpp文件
      • 3.配置编译文件
      • 4.创建launch文件
      • 5.运行代码程序

参考及引用

CSDN博主「AI Chen」的原创文章
本文大部分内容根据CSDN博主「AI Chen」的原创文章(遵循CC 4.0 BY-SA版权协议)所记录的笔记。
原文链接:https://blog.csdn.net/qq_39400324/article/details/125351722快速链接

————————————————————————————————————————————

一、SDK下载

讯飞开放平台:https://www.xfyun.cn/快速链接
控制台——创建新应用——下载Linux MSC

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
下载后解压,移动到Ubuntu内,我命名为Linux_aisound

二、语音与文字的相互转换

1.语音转文字

Ⅰ对下载的SDK进行编译

home/安装Ubuntu的用户名/所下载的SDK包/samples/iat_online_record_sample路径下,使用如下命令进行编译

source 64bit_make.sh

在这里插入图片描述

Ⅱ若出现编译报错

若出现编译报错,则使用该命令安装后,再编译一次,具体可参考此处

sudo apt-get install libasound2-dev

Ⅲ运行语音转文字历程

在第Ⅰ步编译完成后,会在home/安装Ubuntu的用户名/所下载的SDK包/bin/路径下产生iat_online_record_sample,在home/安装Ubuntu的用户名/所下载的SDK包/bin/路径下打开终端,运行如下指令:

./iat_online_record_sample

在这里插入图片描述

出现如下报错:

./iat_online_record_sample: error while loading shared libraries: libmsc.so: cannot open shared object file: No such file or directory

解决办法:
home/安装Ubuntu的用户名/所下载的SDK包/bin/libs/x64/路径下的libmsc.so文件复制到usr/lib/在这里插入图片描述在这里插入图片描述
可以参考原作者提供的办法

sudo cp libs/x64/libmsc.so /usr/lib/
sudo ldconfig

我i这里尝试后发现会报错,于是更改了路径后(vm123是我的用户名)就能复制成功,指令如下:

sudo cp /home/vm123/Linux_aisound/libs/x64/libmsc.so /usr/lib

复制完成后,重新运行:

./iat_online_record_sample

并进行配置:
①是否上传使用者的字符库,选择 No

②语音从哪里来,选择From microphone

最后,对着麦克风讲话,将识别并转换为文字。

2.文字转语音

Ⅰ对下载的SDK进行编译

home/安装Ubuntu的用户名/所下载的SDK包/samples/tts_online_sample路径下,使用如下命令进行编译

source 64bit_make.sh

在这里插入图片描述

Ⅱ运行文字转语音历程

在第Ⅰ步编译完成后,会在home/安装Ubuntu的用户名/所下载的SDK包/bin/路径下产生tts_online_sample,在home/安装Ubuntu的用户名/所下载的SDK包/bin/路径下打开终端,运行如下指令:

./tts_online_sample

运行结束后关闭终端,会在home/安装Ubuntu的用户名/所下载的SDK包/bin/路径下生成刚才测试产生的语音。

Ⅲ在上述基础上实现自动播放

home/安装Ubuntu的用户名/所下载的SDK包/samples/tts_online_sample/路径下修改tts_online_sample.c文件。
在这里插入图片描述
在第174行printf("合成完毕\n");后面,添加如下代码,就可以在合成之后自动播放合成的文件。

popen("play tts_sample.wav","r");

添加完成后需按照上述重新编译。

三、ROS的语音与文字转换

1.语音输入转为文字

在这里插入图片描述

Ⅰ创建工作空间

创建工作空间,命名为catkin_ws_voice_control,在工作空间创建一个功能包,命名为robot_voice,创建功能包的依赖为roscpp std_msgs
所下载的语音SDK包/include/路径下的7个.h文件复制到home/安装Ubuntu的用户名/catkin_ws_voice_control/robot_voice/include/robot_voice/路径下。
在这里插入图片描述
所下载的语音SDK包/samples/iat_online_record_sample/路径下的3个.h文件复制到home/安装Ubuntu的用户名/catkin_ws_voice_control/robot_voice/include/robot_voice/路径下。
在这里插入图片描述
所下载的语音SDK包/samples/iat_online_record_sample/路径下的3个.c文件复制到home/安装Ubuntu的用户名/catkin_ws_voice_control/src/robot_voice/src/路径下。并把iat_online_record_sample.c改为iat_publish.cpp(注意后缀更改)。
在这里插入图片描述

Ⅱ修改代码文件

首先,修改iat_publish.cpp
①头文件

#include "qisr.h"
#include "msp_cmn.h"
#include "msp_errors.h"
#include "speech_recognizer.h"

改为

#include "robot_voice/qisr.h"
#include "robot_voice/msp_cmn.h"
#include "robot_voice/msp_errors.h"
#include "robot_voice/speech_recognizer.h"

如图所示:
在这里插入图片描述

在这里插入图片描述

#include "ros/ros.h"
#include "std_msgs/String.h"

int wakeupFlag   = 0 ;
int resultFlag   = 0 ;

添加后如图:
在这里插入图片描述


在这里插入图片描述

resultFlag=1;

在这里插入图片描述


在这里插入图片描述

// 初始化ROS
    ros::init(argc, argv, "voiceRecognition");
    ros::NodeHandle n;
    ros::Rate loop_rate(10);

    // 声明Publisher和Subscriber
    // 订阅唤醒语音识别的信号
    ros::Subscriber wakeUpSub = n.subscribe("voiceWakeup", 1000, WakeUp);   
    // 订阅唤醒语音识别的信号    
    ros::Publisher voiceWordsPub = n.advertise<std_msgs::String>("voiceWords", 1000);  

    ROS_INFO("Sleeping...");
    int count=0;


在这里插入图片描述
在这里插入图片描述

while(ros::ok())
{
	// 语音识别唤醒     
    if(wakeupFlag)
    {
		printf("Demo recognizing the speech from microphone\n");
		printf("Speak in 8 seconds\n");

		demo_mic(session_begin_params);

		printf("8 sec passed\n");
		wakeupFlag=0;
	}

	// 语音识别完成
	if(resultFlag){
		resultFlag=0;
		std_msgs::String msg;
		msg.data = g_result;
		voiceWordsPub.publish(msg);
	}
	ros::spinOnce();
    loop_rate.sleep();
    count++;
}


在这里插入图片描述

void WakeUp(const std_msgs::String::ConstPtr& msg)
{
    printf("waking up\r\n");
    usleep(700*1000);
    wakeupFlag=1;
}

⑦若需要修改15秒的语音转文字为其他时间的语音转文字,则
在这里插入图片描述

printf("Demo recognizing the speech from microphone\n");
printf("Speak in 8 seconds\n");

printf("Speak in 8 seconds\n");

printf("8 sec passed\n");

在这里插入图片描述

/* demo 8 seconds recording */
while(i++ < 8)
	sleep(1);

其次,修改linuxrec.cspeech_recognizer.c
在这里插入图片描述

#include "robot_voice/formats.h"
#include "robot_voice/linuxrec.h"


在这里插入图片描述

#include "robot_voice/speech_recognizer.h"
#include "robot_voice/qisr.h"
#include "robot_voice/msp_cmn.h"
#include "robot_voice/msp_errors.h"
#include "robot_voice/linuxrec.h"

Ⅲ配置编译文件

在这里插入图片描述
添加可执行文件:

add_executable(iat_publish src/iat_publish.cpp src/speech_recognizer.c src/linuxrec.c)

添加编译连接库:

target_link_libraries(iat_publish
  ${catkin_LIBRARIES}
  libmsc.so -ldl -lpthread -lm -lrt -lasound
)

Ⅳ运行代码程序

编译功能包
(环境变量)
(运行roscore)
运行代码程序

rosrun robot_voice iat_publish

发布话题

 rostopic pub /voiceWakeup std_msgs/String "data: 'input any words'" 

2.文字输入转为语音

在这里插入图片描述

Ⅰ创建工作空间

所下载的语音SDK包/samples/tts_online_sample/路径下的tts_online_sample.c文件复制到home/安装Ubuntu的用户名/catkin_ws_voice_control/src/robot_voice/src/路径下。并把tts_online_sample.c改为tts_subscribe.cpp(注意后缀更改)。

Ⅱ修改代码文件

修改tts_subscribe.cpp
①头文件

#include "qtts.h"
#include "msp_cmn.h"
#include "msp_errors.h"

改为

#include "robot_voice/qtts.h"
#include "robot_voice/msp_cmn.h"
#include "robot_voice/msp_errors.h"

如图所示:
在这里插入图片描述

②增加ROS头文件

#include "ros/ros.h"
#include "std_msgs/String.h"

③修改代码内容
将如图所示内容删除(main函数内)
在这里插入图片描述

④在主函数内插入ros句柄

ros::init(argc,argv,"TextToSpeech");
ros::NodeHandle n;
ros::Subscriber sub =n.subscribe("voiceWords", 1000, voiceWordsCallback);
ros::spin();

在这里插入图片描述

⑤在主函数前边插入文字转语音的回调函数

void voiceWordsCallback(const std_msgs::String::ConstPtr& msg)
{
char cmd[2000];
const char* text;
int         ret                  = MSP_SUCCESS;
const char* session_begin_params = "voice_name = xiaoyan, text_encoding = utf8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2";
const char* filename             = "tts_sample.wav"; //合成的语音文件名称

std::cout<<"I heard :"<<msg->data.c_str()<<std::endl;
text = msg->data.c_str(); 

/* 文本合成 */
printf("开始合成 ...\n");
ret = text_to_speech(text, filename, session_begin_params);
if (MSP_SUCCESS != ret)
{
    printf("text_to_speech failed, error code: %d.\n", ret);
}
printf("合成完毕\n");
popen("play tts_sample.wav","r");
sleep(1);
} 

在这里插入图片描述

⑥注释掉一部分
在这里插入图片描述

⑦修复一个错误
在这里插入图片描述

void toExit()
{
    printf("按任意键退出 ...\n");
    getchar();
    MSPLogout(); //退出登录
}

Ⅲ配置编译文件

将以下添加至CMakeLists.txt文件

add_executable(tts_subscribe src/tts_subscribe.cpp)
target_link_libraries(tts_subscribe
  ${catkin_LIBRARIES}
  libmsc.so -ldl -pthread 
)

Ⅳ运行代码程序

编译功能包
(环境变量)
(运行roscore)
运行代码程序

rosrun robot_voice tts_subscribe

随后打开另一终端运行

rostopic pub /voiceWords std_msgs/String "data: ' 这是一个测试案例'"

若报错,可自行寻找原因,或使用我运行成功的代码https://blog.csdn.net/m0_64730542/article/details/128792625

3.使用launch文件将语音与文字实现相互转换

Ⅰ介绍

在这里插入图片描述

Ⅱ建立launch文件

①在home/安装Ubuntu的用户名/catkin_ws_voice_control/src/robot_voice/路径下创建名为launch的文件。
②新建文本,命名为repeat_voice.launch
内容为

<launch>

	<node name="iat_publish" pkg="robot_voice" type="iat_publish" output="screen"/>
	<node name="tts_subscribe" pkg="robot_voice" type="tts_subscribe" output="screen"/>

</launch>
roslaunch robot_voice repeat_voice.launch

Ⅲ运行代码程序

四、实现语音交互

1.介绍

在这里插入图片描述

2.修改cpp文件

在这里插入图片描述
①添加to_string( )函数

std::string to_string(int val) 
{
    char buf[20];
    sprintf(buf, "%d", val);
    return std::string(buf);
}

②修改voiceWordsCallback( )函数

void voiceWordsCallback(const std_msgs::String::ConstPtr& msg)
{
    char cmd[2000];
    const char* text;
    int         ret                  = MSP_SUCCESS;
    const char* session_begin_params = "voice_name = xiaoyan, text_encoding = utf8, sample_rate = 16000, speed = 50, volume = 50, pitch = 50, rdn = 2";
    const char* filename             = "tts_sample.wav"; //合成的语音文件名称

    std::cout<<"I heard :"<<msg->data.c_str()<<std::endl;

    std::string dataString = msg->data;
    if(dataString.find("你是谁") != std::string::npos 
    || dataString.find("名字") != std::string::npos)
    {
        char nameString[100] = "我是你的语音小助手,你可以叫我小R";
        text = nameString;
        std::cout<<text<<std::endl;
    }
    else if(dataString.find("你几岁了") != std::string::npos 
         || dataString.find("年龄") != std::string::npos)
    {
        char eageString[100] = "我已经四岁了,不再是两三岁的小孩子了";
        text = eageString;
        std::cout<<text<<std::endl;
    }
    else if(dataString.find("你可以做什么") != std::string::npos 
         || dataString.find("干什么") != std::string::npos)
    {
        char helpString[100] = "你可以问我现在时间";
        text = helpString;
        std::cout<<text<<std::endl;
    }
    else if(dataString.find("时间") != std::string::npos)
    {
        //获取当前时间
        struct tm *ptm; 
        long ts; 

        ts = time(NULL); 
        ptm = localtime(&ts); 
        std::string string = "现在时间" + to_string(ptm-> tm_hour) + "点" + to_string(ptm-> tm_min) + "分";

        char timeString[40] = {0};
        string.copy(timeString, sizeof(string), 0);
        text = timeString;
        std::cout<<text<<std::endl;
    }
    else
    {
        text = msg->data.c_str();
    }


    /* 文本合成 */
    printf("开始合成 ...\n");
    ret = text_to_speech(text, filename, session_begin_params);
    if (MSP_SUCCESS != ret)
    {
        printf("text_to_speech failed, error code: %d.\n", ret);
    }
    printf("合成完毕\n");
 
    popen("play tts_sample.wav","r");
    sleep(1);
}

3.配置编译文件

CMakeLists.txt添加

add_executable(voice_assistant src/voice_assistant.cpp)
target_link_libraries(
   voice_assistant
   ${catkin_LIBRARIES} 
   libmsc.so -ldl -pthread
)

4.创建launch文件

创建名为voice_assistant.launch的文件,内容为

<launch>
	<node name="iat_publish" pkg="robot_voice" type="iat_publish" output="screen"/>
	<node name="voice_assistant" pkg="robot_voice" type="voice_assistant" output="screen"/>
</launch>

5.运行代码程序

运行

roslaunch robot_voice voice_assistant.launch

然后发布

rostopic pub /voiceWakeup std_msgs/String "data: 'any words'" 

即可进行
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用科大讯飞语音合成模块SDK实现ROS语音交互 的相关文章

  • 5、cmake的简单认识及CMakeLists.txt的编写语法

    文章目录 1 cmake是什么 xff08 1 xff09 cmake的两大功能 2 CMakeLists txt常用命令 xff08 即如何编写CMakeLists txt文件 xff09 xff08 1 xff09 cmake常见预定义
  • 6、在vscode上利用cmake创建第一个简单C++程序

    文章目录 xff08 1 xff09 前期准备工作 xff1a 即安装对应的环境1 xff09 在vscode上安装插件 xff1a C C 43 43 Cmake CMake tools2 xff09 安装Cmake环境 xff08 这是
  • 7、在vscode上利用cmake构建多文件C++工程

    文章目录 xff08 1 xff09 创建如下工程文件夹 xff1a 其中头文件放在include文件夹中 xff0c 源文件放在src文件夹中 xff08 2 xff09 在vscode上打开工程文件夹 xff0c 在对应的文件夹内建立相
  • js实现猜数字游戏

    随机输入两个数min 和max 在两个数中间生成一个随机数 进行猜数字游戏 且有猜的次数限制 1 不限制次数版本 function getRandom min max return Math floor Math random max mi
  • ubuntu更换阿里云镜像源操作步骤

    过程较为复杂 xff0c 能清楚自己改了镜像源 xff0c 避免了忘记或备份等 修改下载 xff08 镜像源 xff09 源 输入 xff1a sudo nano etc apt sources list 2 将所有deb 后的网址http
  • CSRF攻击原理与防御方法

    文章目录 CSRF概念CSRF攻击攻击原理及过程CSRF漏洞检测防御CSRF攻击1 验证 HTTP Referer 字段2 在请求地址中添加 token 并验证3 在 HTTP 头中自定义属性并验证 CSRF概念 CSRF跨站点请求伪造 C
  • Windows11安装Linux子系统(Ubuntu22.04LTS)+安装ROS

    目录 一 准备工作 二 安装Ubuntu 22 04 1 LTS 三 启动Ubuntu遇到的报错及解决方案 四 换源 五 安装ROS 设置编码 添加源 安装ROS 设置环境变量 测试 一 准备工作 控制面板 程序 程序和功能 启动或关闭 W
  • 如何在Github上建立自己的个人博客网站详细教程

    概述 之前闲着没事 就利用Github建了一个个人博客网站 效果还不错 今天就来分享一下 建立自己个人博客网站的好处 1 面试装逼 这个不必多说 2 把平时积累的知识和项目记录下来 方便日后查看使用 3 不受其他博客平台的限制 准备工作 开
  • 看野火的视频,用正点原子的板子(STM32F4探索者)做系统定时器实验

    1 实验目的 编写一个毫秒级的延时函数 xff0c 控制LED的亮灭 这里的灯是LED1 xff0c 端口是GPIOF xff0c 引脚是PIN10 2 实验流程 2 1 准备知识 SysTick 系统定时器 xff0c 24位 xff0c
  • 用正点原子的板子(STM32F4探索者)做PWM 输出实验

    1 实验目的 使用 TIM14 的通道 1 来产生 PWM 控制 LED0 DS0 的亮度 2 实验准备和流程 由上图可以看出 xff0c GPIOF9引脚对应的是定时器TIM14的通道1 由上图可以看出 xff0c GPIOF9引脚对应的
  • MATLAB快速入门(二):矩阵

    矩阵 目录 矩阵 1 冒号表达式 2 矩阵元素的引用 3 矩阵的运算 3 1算术运算 3 2逻辑运算 4 特殊矩阵 5 矩阵变换 5 1对角阵 5 2三角阵 5 3矩阵旋转 5 4稀疏矩阵 6 矩阵求值 1 冒号表达式 e1 e2 e3 省
  • toString方法使用

    一 Object类中toString的作用 1 在主方法中我们可以直接用toString 输出对象其中的内容 2 我们需要直接输出对象中所属内容时 xff0c 直接使用toString 方法输出语句 xff0c 输出内容不友好 xff0c
  • px4+mavros+offboard控制+gazebo仿真以及与pixhawk4飞控连接(一)

    记录一下自己从px4到板载控制的一系列流程以及踩坑过程 xff0c 希望也可以帮助大家避雷 话不多说直接上干货 一 软 硬件平台 px4版本 xff1a 1 10 1 飞控板 xff1a pixhawk4 ros版本 xff1a melod
  • 浅谈穿越机飞控如何烧写固件及其相关设置问题

    背景 xff1a 自己本人是无人机爱好者对穿越机也较为痴迷 xff0c 在使用DJI FPV天空端时发现无法显示OSD信息 xff0c 同时在眼镜端的OSD开关已经打开 xff0c 查阅相关资料发现自己的飞控版本过低需要烧写到4 1 0以上
  • XSS攻击原理及防范

    文章目录 一 XSS攻击简介二 XSS攻击分类1 反射型2 存储型3 DOM based型 三 XSS防范1 cookie安全策略2 X XSS Protection设置3 XSS防御HTML编码4 XSS 防御HTML Attribute
  • Jetson Xavier NX安装librealsense

    在nx上安装librealsense可以使用由jetsonhacks开源的安装脚本installRealSenseSDK 克隆仓库 xff0c 进入目录 git clone https github com jetsonhacks inst
  • Kubernetes(K8s)的简介及基础知识

    1 关于Kubernetes xff08 K8s xff09 的简介 Kubernetes xff0c 简称又叫K8s xff0c 为什么简称要叫K8s xff0c 据说是因为Kubernetes单词中K字母和S字母之间相隔8个字母 xff
  • 爬虫实战(三)

    随着互联网的不断发展 xff0c 网络数据的规模和价值也不断提升 在这个大数据时代 xff0c 如何从海量数据中提取有价值的信息并加以利用 xff0c 成为了数据科学 商业分析 金融预测 社会研究等领域中一个重要的问题 而网络爬虫作为一种数
  • 数据库连接

    一 连接数据库的方法和工具 数据库连接是访问数据库的关键步骤之一 xff0c 通过连接数据库 xff0c 我们可以进行数据的增删改查等操作 下面介绍几种连接数据库的方法和工具 命令行工具 在命令行中输入相应的命令即可连接数据库 常用的命令行
  • C语言之十进制转化为十六进制

    作者 xff1a 从未止步 博客主页 xff1a 从未止步的博客 专栏 xff1a 和我一起学C 语录 xff1a Every day is a second chance 行动是理想最高贵的表达 xff0c 给大家介绍一款超牛的斩获大厂o

随机推荐

  • 合肥工业大学机器人足球仿真robcup作业二(python实现)附代码有注释

    用面向对象的思维设计相关类 xff0c 从而实现直线与直线 直线与圆 直线与矩形的交点 要求各给出每个案例的至少一个示例的程序 这是第二次机器人足球的作业代码 xff0c 写的比较潦草 xff0c 但是用的方法还是通俗易懂的 xff0c 基
  • 合肥工业大学机器人足球仿真robcup作业三(python实现)附代码有注释

    第三次作业 题目 xff1a 已知2个点的信息 定位自己的绝对坐标 设图中C 0 0 P1 52 5 32 P2 52 5 32 P3 52 5 32 P4 52 5 32 P5 0 32 P6 0 32 P7 30 7 P8 30 7 P
  • 程序员一定要知道的10个网站,记得收藏

    为大家整理了对程序员超有用的网站合集 xff0c 今天主要分享知识社区 amp 学习刷题两大类 希望能助力各位早日成为码神 话不多说 xff0c 直接上干货 知识社区类 1 Github 程序员的Facebook 毋庸置疑 xff0c 首位
  • for in 和for of的区别

    文章目录 1 遍历数组通常用for循环2 for in遍历数组3 遍历对象总结 1 遍历数组通常用for循环 ES5的话也可以使用forEach xff0c ES5具有遍历数组功能的还有map filter some every reduc
  • win11打开移动热点显示“我们无法设置移动热点”

    解决方法 xff1a 以下方法是本人联系微软客服解决 xff0c 亲测有效 用管理员模式打开命令提示符 xff0c 输入netsh winsock reset xff08 按下Enter键 xff09 netsh int ip reset
  • 树莓派pico的软件安装及使用

    简介 xff1a 在些日子在芯查查积分商城兑换了一个树莓派pico xff0c 来教大家怎么安装Thonny软件 xff0c 并且使用Thonny编译运行树莓派pico 第一步 xff1a 安装固件 第二步 xff1a 在window上安装
  • Git分布式版本控制工具(linux)

    内容 xff1a Git 概述 Git 代码托管服务 Git 常用命令 在 IDEA 中使用 Git 目录 1 前言 xff1a 1 1 什么是Git xff1f 1 1 1 其他版本控制工具 xff1a 1 2 使用Git能做什么 xff
  • ADRC的simulink仿真实现与m代码实现

    本文章以最简单的二阶系统为例 xff0c 介绍其simulink仿真实现和m代码实现 案例中的二阶系统如下所示 经典ADRC的基本结构如下 xff1a 本案例中的simulink仿真整体结构 xff08 为便于理解 xff0c 结构图与上述
  • 安装ROS

    如何在电脑安装ROS 安装ROS环境是学习ROS的第一步 xff0c 本文将记录个人搭建的过程 xff0c 包括可能遇到的错误 解决办法 个人心得等 文章目录 如何在电脑安装ROS 前言一 在Windows系统下载VMware虚拟机并安装二
  • ROS命令行工具的使用

    一 命令行工具的使用 前言 在ROS里面 xff0c 命令行工具的使用能够使我们深入了解ROS xff0c 使我们操作ROS的时候更加方便 我们利用海龟作为示例进行命令行工具的学习 运行小海龟步骤 xff1a 终端输入 roscore 然后
  • ROS快捷操作键和话题记录与复现

    一 ROS快捷操作键 打开终端 xff1a Ctrl 43 alt 43 T 查看隐藏文件夹 xff1a Ctrl 43 H 结束终端的某个操作 xff1a Ctrl 43 C 启动运行ROS系统前必须的一个指令 xff1a roscore
  • ROS工作空间和功能包

    一 工作空间 工作空间 xff08 workspace xff09 xff08 缩写ws xff09 工作空间是存放工程开发相关文件的文件夹 代码空间 xff08 source space xff09 xff08 src xff09 是用来
  • ROS实现代码及已编译代码运行步骤

    目录 一 实现一个代码步骤1 C 43 43 代码实现步骤2 python代码实现步骤 二 已编译代码运行步骤 一 实现一个代码步骤 1 C 43 43 代码实现步骤 在catkin ws src 内创建功能包的步骤 其实可以任意创建工作空
  • 基于ROS的PX4+Gazebo仿真——PX4一键起飞及飞行控制

    一键起飞 参考及引用 1 CSDN博主 战争果子 的原创文章 xff0c 遵循CC 4 0 BY SA版权协议 原文 xff1a https blog csdn net EnthusiasmZing article details 7916
  • RT-Thread相比较于Freertos的优势在哪里

  • Up Board安装ROS及mavros

    Up Board安装ROS及mavros 目录 Up Board安装ROS及mavros一 在Up Board安装Ubuntu系统1 材料准备2 拿一个空的U盘作为驱动盘为Up Board安装系统3 安装Ubuntu系统 二 在Ubuntu
  • Unity和ROS通讯的机械臂

    Unity和ROS之间的通讯包 目录 Unity和ROS之间的通讯包参考及引用1 Github源码地址 Unity和ROS之间的通讯 一个ROS包 xff08 用于接收从Unity场景发送的ROS消息 xff09 两个导入到Unity的包
  • 虚拟机Ubuntu磁盘扩容个人记录

    虚拟机Ubuntu磁盘扩容个人记录 一 修改扩展大小 修改成功以后 xff0c 打开虚拟机Ubuntu 二 进入Ubuntu修改 打开终端 xff0c 输入 sudo gparted 右键点击后更改大小 然后确定修改 最后 xff0c 终端
  • 下载源码包后在Ubuntu编译

    下载源码包后在Ubuntu编译 学习使用Ubuntu过程中 xff0c 不免会尝试跑一遍别人的代码 xff0c 这时候要知道如何将源码下载后进行编译及运行 本文与以下两篇博客相关 xff1a ROS工作空间和功能包 ROS实现代码及已编译代
  • 利用科大讯飞语音合成模块SDK实现ROS语音交互

    利用科大讯飞语音合成模块SDK实现ROS语音交互 本文内容与CSDN博主 AI Chen 的原创文章相同 xff0c 可以直接参考原文 xff1a https blog csdn net qq 39400324 article detail