Ich habe Musik von einem USB-Lautsprecher mit dem ROS-Paket (gx_sound_player) abgespielt. Es gab einige Punkte, die vor dem Spielen stecken blieben, daher werde ich sie in diesem Artikel zusammen mit dem eigentlichen Bestätigungsverfahren zusammenfassen.
Der Inhalt dieses Artikels basiert auf den folgenden Artikeln.
Einführung in das Freigabeverfahren für gx_sound_player und ROS-Pakete
USB-Lautsprecher: Zum Beispiel hier Ubuntu16.04 + ROS kinetische Umgebung Musikdatei testen (.wav): Zum Beispiel werde ich sie von [hier] herunterladen (http://www.ne.jp/asahi/music/myuu/wave/wave.htm).
1. 1. Schließen Sie den USB-Lautsprecher an Ihren PC an
2. Überprüfen Sie, ob das Audiogerät sichtbar ist
$ ls -l /dev/snd/*
⇒ Sie sollten pcmC1D0p usw. sehen.
(Im Folgenden wird angenommen, dass pcmC1D0p die Gerätedatei des USB-Lautsprechers ist.)
3. 3. Spielen Sie WAV-Dateien mit aplay ab
$ aplay -D hw:1,0 musicbox.wav
⇒ OK, wenn Sie Musik über den USB-Lautsprecher abspielen können
Wenn Sie keine Musik über den USB-Lautsprecher abspielen können, überprüfen Sie das Verfahren.
Installieren Sie das gx-sound-Paket.
$ sudo apt install ros-kinetic-gx-sound
1. 1. Starten Sie roscore
$ source ~/catkin_ws/devel/setup.sh
$ roscore
2.gx-Soundknoten starten
$ roslaunch gx_sound_player sound_player.launch device_name:="hw:1,0"
3. 3. WAV-Wiedergabe
$ rosrun rulo sound-test.py
⇒ OK, wenn Sie Musik über den USB-Lautsprecher abspielen können
Musikdatei/home/ubuntu/Downloads/musicbox.In WAV speichern
sound-test.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import actionlib
import os
import rospy
from gx_sound_msgs.msg import SoundRequestAction, SoundRequestGoal
def main():
rospy.init_node('sound_request_client_node')
client = actionlib.SimpleActionClient('/gx_sound_player/sound_player/sound_request', SoundRequestAction)
client.wait_for_server()
rospy.loginfo("connected to actionlib server")
now = rospy.Time.now()
#Audio3 nach 0 Sekunden.Wav spielen
#Musikdatei/home/ubuntu/Downloads/musicbox.In WAV speichern
goal1 = SoundRequestGoal(stamp=now + rospy.Duration(0.0), file="/home/ubuntu/Downloads/musicbox.wav")
rospy.loginfo("send request")
client.send_goal(goal1)
rospy.loginfo("send complete")
#client.wait_for_result(rospy.Duration.from_sec(5.0))
if __name__ == '__main__':
main()
OK, wenn Sie die stille Datei senden Die stille Datei wird von [hier] heruntergeladen (http://hitotose-switch.blogspot.com/2013/12/wav.html).
gx-Installation des Soundpakets
$ sudo apt install ros-kinetic-gx-sound
ros-kinetic-gx-sound not found
Ich habe die Paketliste wie folgt aktualisiert und gelöst.
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-get update
--
Ich habe es gelöst, indem ich das Format mit ffmpeg konvertiert habe.
48000Hz Audiodatei, 16bit LittleEndian,So konvertieren Sie in Stereo
$ sudo apt-get install ffmpeg
$ ffmpeg -i input.wav -ar 48000 -format S16_LE -channel 2 output.wav
Einführung des Freigabeverfahrens für gx_sound_player und ROS-Pakete Free Wave, MP3
Recommended Posts