Beam Bots Logo

BB Kino

CILicense: Apache 2.0Hex version badgeREUSE status

Interactive Livebook widgets for controlling and monitoring BB robots.

BB Kino Demo

Features

BB Kino provides a suite of interactive widgets for working with BB robots in Livebook:

Installation

Add bb_kino to your dependencies in mix.exs:

def deps do
  [
    {:bb_kino, "~> 0.1"}
  ]
end

Usage

In Livebook

The easiest way to use BB Kino is with the Manage Robot smart cell:

  1. Click + Smart in your Livebook notebook
  2. Select Manage robot
  3. Enter your robot module name (e.g., MyRobot)
  4. Select which widgets to display
  5. Evaluate the cell

Individual Widgets

You can also use widgets individually:

# Safety controls (arm/disarm)
BB.Kino.safety(MyRobot)

# Joint position control with sliders
BB.Kino.joints(MyRobot)

# Real-time event stream
BB.Kino.events(MyRobot)

# Command execution forms
BB.Kino.commands(MyRobot)

# 3D visualisation
BB.Kino.visualisation(MyRobot)

Combined Layout

Create a custom dashboard layout:

Kino.Layout.grid([
  Kino.Layout.grid([
    BB.Kino.safety(MyRobot),
    BB.Kino.joints(MyRobot),
    BB.Kino.events(MyRobot)
  ], columns: 1),
  Kino.Layout.grid([
    BB.Kino.visualisation(MyRobot),
    BB.Kino.commands(MyRobot)
  ], columns: 1)
], columns: 2)

Widget Details

Safety Widget

Displays the current robot state (disarmed, idle, executing, error) and provides buttons to arm and disarm the robot. The disarm button is only enabled when the robot is in the idle state.

Joint Control Widget

Shows all robot joints with:

Event Stream Widget

Real-time display of BB PubSub messages with:

Command Widget

Dynamically generates forms for robot commands:

3D Visualisation Widget

Interactive Three.js-based robot visualisation:

Requirements

Documentation

Full API documentation is available at HexDocs.