La forma más sencilla de desarrollar usando la API Websocket es utilizar roslibpy. Aquí tienes un ejemplo que escuchará la odometría del robot:

odometry_stream.py
#!/usr/bin/env python
import roslibpy

client = roslibpy.Ros(host='192.168.3.42', port=9090)
client.run()

def callback(msg):
    position = msg['pose']['pose']['position']
    print(f"Received Pose: x={position['x']}, y={position['y']}")

listener = roslibpy.Topic(client, '/odometry/filtered', 'nav_msgs/Odometry')
listener.subscribe(callback)

try:
    while True:
        pass
except KeyboardInterrupt:
    client.terminate()

Se puede crear una biblioteca similar en C o C++ que siga el mismo protocolo Websocket.