1. 从开箱到听到“你好轮趣”:M260C ROS1开发环境快速搭建
拿到轮趣-科大讯飞的M260C开发板,第一眼就被那个环形六麦阵列吸引了。六个麦克风均匀排布,理论上能360度无死角拾音,这对于想做智能音箱、服务机器人或者任何需要远场语音交互的项目来说,诱惑力太大了。但硬件再好,也得软件跑起来才行。今天,我就以一个过来人的身份,带你从零开始,在ROS1(Robot Operating System 1)环境下,把这块板子的唤醒和语音识别功能跑通,并且把核心代码掰开揉碎了讲清楚。
首先别急着写代码,环境搭建是第一步,也是最容易踩坑的一步。M260C官方提供了比较完善的ROS功能包支持,但我们需要一个“基地”来运行它们。我个人的习惯是使用Ubuntu 18.04搭配ROS Melodic,这个组合非常稳定,社区支持也最广。当然,如果你用Ubuntu 20.04和ROS Noetic,原理也完全一样,只是个别包名可能需要微调。
第一步,安装ROS Melodic。如果你已经装好了,可以跳过。如果还没装,打开终端,依次执行下面这些命令。别怕,跟着敲就行,我当初也是一步步试过来的。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
安装完成后,记得初始化rosdep并设置环境变量,这是让系统知道ROS命令在哪的关键步骤。
sudo rosdep init
rosdep update
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
好了,ROS基础环境有了。接下来,我们需要为M260C创建一个专属的工作空间。想象这个工作空间就是一个独立的项目文件夹,里面放我们自己的代码和从官方拉取的功能包。
mkdir -p ~/m260c_ws/src
cd ~/m260c_ws/src
catkin_init_workspace
cd ..
catkin_make
每次新开终端,如果想使用这个工作空间里的功能包,都需要运行 source ~/m260c_ws/devel/setup.bash。嫌麻烦?同样可以把它加到.bashrc文件里。
环境准备就绪,下一步就是获取M260C的核心功能包。这些包通常包含了驱动、音频采集、唤醒和识别算法。你需要联系轮趣或科大讯飞的技术支持获取官方的ROS功能包(通常是一个Git仓库链接或压缩包)。假设你拿到了一个名为 lunqu_m260c_ros 的包,把它放到刚刚创建的 src 目录下。
然后,回到工作空间根目录(~/m260c_ws),运行 catkin_make 进行编译。如果一切顺利,没有报红字错误,那么恭喜你,硬件和软件的桥梁已经架设好了。这时候,你可以插上M260C开发板,通过 lsusb 命令检查一下系统是否识别到了设备。看到有科大讯飞或类似音频设备的信息,心里就踏实了一半。
2. 唤醒引擎:如何让M260C听懂“开机口令”
环境搭好了,我们来啃第一个硬骨头:唤醒。唤醒功能就像是设备的“耳朵”始终在待命,但只有听到特定的口令(比如“你好轮趣”)时,它才会“醒过来”并开始认真聆听后续的指令。M260C的环形六麦阵列在这里发挥了巨大作用,它通过波束成形技术,能有效聚焦声源方向,抑制环境噪音,让唤醒词在嘈杂环境中也能被准确捕捉。
2.1 唤醒功能包结构与启动
官方的唤醒功能包结构通常很清晰。我们以一个典型的包 m260c_wakeup 为例。在 src 目录下,你可能会看到几个关键的节点(Node)源


225

被折叠的 条评论
为什么被折叠?



