Compiling ROS interfaces
WARNING: These instructions are located in https://github.com/modular-ml/wrapyfi_ros_interfaces
To transmit ROS audio messages with Wrapyfi, you need to compile the ROS interfaces. ROS must already be installed on your system, with all its build dependencies. You can find the installation instructions here or install using Robostack.
Prerequisites
ROS Noetic
Python 3.6
Compiling
Copy the
wrapyfi_ros_interfaces
folder to your ROS workspace (assumed to be~/ros_ws
).# from the current directory cd ../ cp -r wrapyfi_ros_interfaces ~/ros_ws/src
Compile the ROS interfaces:
cd ~/ros_ws catkin_make
Note: If the wrong version of Python is used, the compilation will fail. Make sure that the correct version of cmake is used by modifying the
cmake_minimum_required
version in the~/ros_ws/src/wrapyfi_ros_interfaces/CMakeLists.txt
file:# CMakeLists.txt cmake_minimum_required(VERSION 3.0.2) # ...
Replacing VERSION 3.0.2 with the correct version of cmake.
Source the ROS workspace:
source ~/ros_ws/devel/setup.bash
Verify that the ROS Audio message interface is compiled:
rosmsg show ROSAudioMessage
Which should output:
[wrapyfi_ros_interfaces/ROSAudioMessage]: std_msgs/Header header uint32 seq time stamp string frame_id uint32 chunk_size uint8 channels uint32 sample_rate string encoding uint8 is_bigendian uint32 bitrate string coding_format uint32 step uint8[] data
Verify that the ROS Audio service interface is compiled:
rossrv show ROSAudioService
Which should output:
[wrapyfi_ros_interfaces/ROSAudioService]: string request --- wrapyfi_ros_interfaces/ROSAudioMessage response std_msgs/Header header uint32 seq time stamp string frame_id uint32 chunk_size uint8 channels uint32 sample_rate string encoding uint8 is_bigendian uint32 bitrate string coding_format uint32 step uint8[] data
Run your Wrapyfi enabled script from the same terminal. Now you can transmit ROS audio messages in PUB/SUB [example] and REQ/REP [example].