Through this guide, you will learn to connect to the robot via WebRTC, in order to exploit the following features:
Three packages from the robot software will be used:
madmux
the video serveryawl
the WebRTC librarygizmo_webrtc
the high-level application implementing signaling,
the ROS bridge and various connection lifecycle hookupsWebRTC is an open standard for real-time communication for browsers and other mobile applications. It is supported by most modern browsers, such as Firefox and Chrome.
The standard defines protocols and APIs to establish peer-to-peer connections, potentially through an intermediary.
In order for a WebRTC connection to be established between two peers, a third-party communication mechanism is needed to exchange the needed pieces of information needed by each peer to connect to the other. This is called signaling.
On the robot, there are two signaling mechanisms:
flubnub
: a websocket-based local-network-only signalingmqtt
: an authenticated pub/sub mechanism using AWS IoTThe following steps have to be run from a development environment connected to the same network as Kuri. The following has been tested with recent versions of Firefox and Chrome.
git clone https://github.com/KuriRobot/kuri-documentation
cd kuri-documentation/examples/webrtc
python3 -m http.server
http://localhost:8000
roboversion
Join
buttonThe text box that appeared enables you to send commands and receive responses to and from the robot via the rosbridge protocol.