Overview

Overview

Welcome to BOW! This is our documentation page which contains all the information you need to work with the BOW Software Development Kit (SDK). Here you can find references for the SDK and data structures, as well as tutorials for installation and developing.

Why BOW?

BOW enables you to create applications for any robot using your favourite programming language and operating system.

The most simple BOW enabled application consists of a robot (real or simulated), a BOW driver running on board this robot, your application using the BOW SDK to send and receive data from the robot driver, and a peer to peer connection to the robot over which this data is sent. Luckily for you, the only component of this system you have to worry about is your application*, we handle the rest! *we don't supply the robots!

Simple BOW Architecture Diagram

The Driver

The BOW driver sits on top of the existing robot architecture and packages all the data from its sensors into our unique data representation and sends this data to your application. It also receives packets of control data from your application and applies these to your robot.

Communication

The BOW messages are transmitted between client and robot using an optimised webrtc protocol which gives unrivaled low latency, this means you can control your robot from anywhere in the world without having long delays. Our SDK provides all the tools you need to easily establish this connection with one or more robots.

The SDK

The BOW Software Development Kit (SDK) is a set of tools which enable you to interact with the BOW framework using your preferred language. Using the SDK you can:

  • Establish a connection with a robot.
  • Create, populate and send BOW messages to control the robot.
  • Receive BOW messages from the robot.

For a more in depth introduction to the SDK see the SDK introduction page.

The Data Message

The BOW message is a unique data structure which is capable of representing any robot, regardless of form factor or capability. This means that your application is able to control any robot without the need to rewrite your code or spend days understanding the nuances of each robot you want to interact with. By breaking the capabilities of all robots down into individual human-centric modalities (e.g. vision, speech, proprioception, etc...), the message allows you to intuitively gather data from and control any robot.

BOW message representation

Tutorials

Documentation