2019-03-10 ros_respeaker的配置和使用

ros_respeaker的配置和使用

创建catkin工作空间

在终端中输入如下命令,可以在根目录下创建catkin工作空间:

source /opt/ros/indigo/setup/bash
mkdir -p ~/catkin_ws/src
cd ~catkin_ws/src
catkin_make

该空间的结构如图1所示。


图1 catkin工作空间的目录

编译respeaker_ros程序包

所有ros程序包必须在catkin工作目录下进行编译后才能运行,首先我们在工作空间的src目录下将远程库中的代码克隆下来。

cd ~/catkin_ws/src
git clone https://github.com/furushchev/respeaker_ros.git
cd ..
rosdep install --from-paths src -i -r -n -y

其中我们用到了rosdep命令,该命令用于安装缺失的依赖项。在执行该命令的过程中有可能会出现未安装等错误,需要执行如下代码在安装后初始化并更新该工具。

sudo apt-get rospack-tools
rosdep init
rosdep update

最后使用catkin_make命令ros包进行编译

配置软硬件的支持

首先要对respeaker麦克风提供外部设备许可

roscd respeaker_ros
sudo cp -f $(rospack find respeaker_ros)/config/60-respeaker.rules /etc/udev/rules.d/60-respeaker.rules
sudo systemctl restart udev

其次安装python包的依赖

roscd respeaker_ros
sudo pip install -r requirements.txt

最后更新firmware以实现对底层设备的控制,从远程仓库中可以获取到相应的包,通过输入如下命令进行安装。

git clone https://github.com/respeaker/usb_4_mic_array.git
cd usb_4_mic_array
sudo python dfu.py --download 6_channels_firmware.bin  # The 6 channels version 

运行respeaker程序包

可以通过发布在rostopic上的消息获得诸如声源位置角度等信息

roslaunch respeaker_ros respeaker.launch
rostopic echo /sound_location

效果如下:


图2 直接从话题获得的消息.png

我也自行编写了一个节点用于获取和接收respeaker_node发出的消息,命名为info_shower,可以将该数据从话题中取出并输出,效果如下:


图3 自行编写接收节点订阅消息.png

遇到的问题

1.python_catkin_tools版本过低产生的依赖问题

该问题目前没有能够解决,尝试了使用sudo apt-get installsudo aptitude reinstall以及sudo apt-get -f install等命令都不能解决问题,在开源社区中也没有找到类似问题,于是重新装配了一个新的虚拟机后,直接更新软件、下载依赖项后在进行环境配置才解决问题。

2.程序中import angles语句引起的库文件缺少的情况

这个问题的解决比较曲折,最开始我以为angles指的是python中的一个库文件,故直接使用sudo pip install angles命令进行安装,但是最后始终没有得到正确的输出,在roscore的调试信息中显示了没有其中的shortest_angular_distance函数,最后通过ROS wiki的官方文档、社区发现了ROS实现的angles库,克隆安装后才解决问题,如下图所示:

图4 ROS wiki上的介绍.png
图5 Github上提供的开源代码.png

你可能感兴趣的:(2019-03-10 ros_respeaker的配置和使用)