ros_respeaker的配置和使用
創(chuàng)建catkin工作空間
在終端中輸入如下命令,可以在根目錄下創(chuàng)建catkin工作空間:
source /opt/ros/indigo/setup/bash
mkdir -p ~/catkin_ws/src
cd ~catkin_ws/src
catkin_make
該空間的結(jié)構(gòu)如圖1所示。

編譯respeaker_ros程序包
所有ros程序包必須在catkin工作目錄下進(jìn)行編譯后才能運(yùn)行,首先我們在工作空間的src目錄下將遠(yuǎn)程庫中的代碼克隆下來。
cd ~/catkin_ws/src
git clone https://github.com/furushchev/respeaker_ros.git
cd ..
rosdep install --from-paths src -i -r -n -y
其中我們用到了rosdep命令,該命令用于安裝缺失的依賴項(xiàng)。在執(zhí)行該命令的過程中有可能會出現(xiàn)未安裝等錯(cuò)誤,需要執(zhí)行如下代碼在安裝后初始化并更新該工具。
sudo apt-get rospack-tools
rosdep init
rosdep update
最后使用catkin_make命令ros包進(jìn)行編譯
配置軟硬件的支持
首先要對respeaker麥克風(fēng)提供外部設(shè)備許可
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以實(shí)現(xiàn)對底層設(shè)備的控制,從遠(yuǎn)程倉庫中可以獲取到相應(yīng)的包,通過輸入如下命令進(jìn)行安裝。
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
運(yùn)行respeaker程序包
可以通過發(fā)布在rostopic上的消息獲得諸如聲源位置角度等信息
roslaunch respeaker_ros respeaker.launch
rostopic echo /sound_location
效果如下:

我也自行編寫了一個(gè)節(jié)點(diǎn)用于獲取和接收respeaker_node發(fā)出的消息,命名為info_shower,可以將該數(shù)據(jù)從話題中取出并輸出,效果如下:

遇到的問題
1.python_catkin_tools版本過低產(chǎn)生的依賴問題
該問題目前沒有能夠解決,嘗試了使用sudo apt-get install和sudo aptitude reinstall以及sudo apt-get -f install等命令都不能解決問題,在開源社區(qū)中也沒有找到類似問題,于是重新裝配了一個(gè)新的虛擬機(jī)后,直接更新軟件、下載依賴項(xiàng)后在進(jìn)行環(huán)境配置才解決問題。
2.程序中import angles語句引起的庫文件缺少的情況
這個(gè)問題的解決比較曲折,最開始我以為angles指的是python中的一個(gè)庫文件,故直接使用sudo pip install angles命令進(jìn)行安裝,但是最后始終沒有得到正確的輸出,在roscore的調(diào)試信息中顯示了沒有其中的shortest_angular_distance函數(shù),最后通過ROS wiki的官方文檔、社區(qū)發(fā)現(xiàn)了ROS實(shí)現(xiàn)的angles庫,克隆安裝后才解決問題,如下圖所示:

