Search documentation of bb

# API Reference bb v#0.8.0

View Source

## Modules

BB

Documentation for `BB` (Beam Bots).

BB.Actuator

Behaviour and API for actuators in the BB framework.

BB.Actuator.Server

Wrapper GenServer for actuator callback modules.

BB.Bridge

Behaviour for parameter bridge GenServers in the BB framework.

BB.BridgeSupervisor

Supervisor for parameter protocol bridges.

BB.Cldr

Provides the core functions to retrieve and manage the CLDR data that supports formatting and localisation.

BB.Cldr.AcceptLanguage

Parses HTTP `Accept-Language` header values as defined in rfc2616.

BB.Cldr.Currency
BB.Cldr.Locale

Backend module that provides functions to define new locales and display human-readable locale names for presentation purposes.

BB.Cldr.Number

Formats numbers and currencies based upon CLDR's decimal formats specification.

BB.Cldr.Number.Cardinal

Implements cardinal plural rules for numbers.

BB.Cldr.Number.Format

Functions to manage the collection of number patterns defined in Cldr.

BB.Cldr.Number.Formatter.Decimal
BB.Cldr.Number.Ordinal

Implements ordinal plural rules for numbers.

BB.Cldr.Number.PluralRule.Range

Implements plural rules for ranges

BB.Cldr.Number.Symbol
BB.Cldr.Number.System
BB.Cldr.Number.Transliterate

Transliteration for digits and separators.

BB.Cldr.Rbnf.NumberSystem

Functions to implement the number system rule-based-number-format rules of CLDR.

BB.Cldr.Rbnf.Ordinal

Functions to implement the ordinal rule-based-number-format rules of CLDR.

BB.Cldr.Rbnf.Spellout

Functions to implement the spellout rule-based-number-format rules of CLDR.

BB.Cldr.Unit

Supports the CLDR Units definitions which provide for the localization of many unit types.

BB.Command

Behaviour for implementing robot commands.

BB.Command.Arm

Standard command handler for arming a robot.

BB.Command.Context

Context provided to command handlers during execution.

BB.Command.Disarm

Standard command handler for disarming a robot.

BB.Command.Event

Payload type for command execution events.

BB.Command.MoveTo

Standard command handler for moving end-effectors to target positions.

BB.Controller

Behaviour for controllers in the BB framework.

BB.Controller.Server

Wrapper GenServer for controller callback modules.

BB.ControllerSupervisor

Supervisor for robot-level controllers.

BB.Dsl

The DSL extension for describing robot properties and topologies.

BB.Dsl.Actuator

An actuator attached to a joint.

BB.Dsl.Axis

Joint axis orientation specified as Euler angles.

BB.Dsl.Box

A box geometry

BB.Dsl.Bridge

A parameter protocol bridge for remote access.

BB.Dsl.Collision

Collision information

BB.Dsl.Color

A color

BB.Dsl.Command

A command that can be executed on the robot.

BB.Dsl.Command.Argument

An argument for a command.

BB.Dsl.CommandTransformer

Generates convenience functions for commands on the robot module.

BB.Dsl.Controller

A controller process at the robot level.

BB.Dsl.Cylinder

A cylindrical geometry

BB.Dsl.DefaultNameTransformer

Ensures that the default robot name is present

BB.Dsl.Dynamics

Specifies physical properties of the joint. These values are used to specify modeling properties of the joint, particularly useful for simulation

BB.Dsl.Inertia

Inertial information.

BB.Dsl.Inertial

Inertial information.

BB.Dsl.Joint

A joint in the robot topology chain.

BB.Dsl.Limit

Joint limits

BB.Dsl.Link

A kinematic link aka a solid body in a kinematic chain.

BB.Dsl.Material

A material

BB.Dsl.Mesh

A 3D model (mesh)

BB.Dsl.Origin

An origin location.

BB.Dsl.Param

A runtime-adjustable parameter.

BB.Dsl.ParamGroup

A group of runtime-adjustable parameters.

BB.Dsl.ParamRef

A reference to a parameter for use in DSL fields.

BB.Dsl.ParameterTransformer

Generates parameter schema and default values from DSL definitions.

BB.Dsl.RobotTransformer

Builds and persists the optimised Robot struct at compile-time.

BB.Dsl.Sensor

A sensor attached to the robot or a specific link.

BB.Dsl.Sphere

A spherical geometry

BB.Dsl.SupervisorTransformer

Injects `start_link/1` and `child_spec/1` into robot modules.

BB.Dsl.Texture

A 2D texture

BB.Dsl.TopologyTransformer

Validate and transform links as required.

BB.Dsl.UniquenessTransformer

Validates that all entity names are globally unique across the robot.

BB.Dsl.Verifiers.ValidateChildSpecs

Validates that child_spec options match the module's schema.

BB.Dsl.Verifiers.ValidateParamRefs

Validates that parameter references in the DSL refer to valid parameters.

BB.Dsl.Visual

A material

BB.ExampleRobots

Example robot topologies for testing and documentation.

BB.ExampleRobots.DifferentialDriveRobot

A simple two-wheeled differential drive robot with a caster.

BB.ExampleRobots.LinearActuator

A simple linear actuator (prismatic joint example).

BB.ExampleRobots.PanTiltCamera

A simple pan-tilt camera mount.

BB.ExampleRobots.SixDofArm

A 6 degree-of-freedom industrial robot arm.

BB.IK.Solver

Behaviour for inverse kinematics solvers in the BB ecosystem.

BB.JointSupervisor

Supervisor for a joint and its child link.

BB.LinkSupervisor

Supervisor for a link and its joints.

BB.Message

Message envelope and behaviour for payload types.

BB.Message.Actuator.BeginMotion

Message published by actuators when beginning a motion.

BB.Message.Actuator.Command.Effort

Command to apply a specific effort (torque/force) to an actuator.

BB.Message.Actuator.Command.Hold

Command an actuator to actively maintain its current position.

BB.Message.Actuator.Command.Position

Command to move an actuator to a target position.

BB.Message.Actuator.Command.Stop

Command to stop an actuator's motion.

BB.Message.Actuator.Command.Trajectory

Command an actuator to follow a trajectory defined by waypoints.

BB.Message.Actuator.Command.Velocity

Command to set an actuator's velocity.

BB.Message.Actuator.EndMotion

Message published by actuators when motion ends.

BB.Message.Geometry.Accel

Linear and angular acceleration in 3D space.

BB.Message.Geometry.Point3D

A 3D point in space.

BB.Message.Geometry.Pose

A position and orientation in 3D space.

BB.Message.Geometry.Transform

A transformation in 3D space (translation and rotation).

BB.Message.Geometry.Twist

Linear and angular velocity in 3D space.

BB.Message.Geometry.Wrench

Force and torque in 3D space.

BB.Message.Option

Custom Spark.Options types for message primitives.

BB.Message.Quaternion

Helper functions for quaternion tagged tuples.

BB.Message.Sensor.BatteryState

Battery state information.

BB.Message.Sensor.Image

Raw image data from a camera sensor.

BB.Message.Sensor.Imu

Inertial Measurement Unit data.

BB.Message.Sensor.JointState

State of a set of joints.

BB.Message.Sensor.LaserScan

Single scan from a planar laser range-finder.

BB.Message.Sensor.Range

Single range reading from a distance sensor.

BB.Message.Vec3

Helper functions for 3D vector tagged tuples.

BB.Motion

High-level motion primitives that bridge IK solving and actuator commands.

BB.Motion.Tracker

Behaviour for continuous position tracking with IK.

BB.Parameter

Runtime-adjustable parameters for robot components.

BB.Parameter.Changed

Payload type for parameter change events.

BB.Parameter.Schema

Builds nested Spark.Options schemas from flat parameter definitions.

BB.Parameter.Store

Behaviour for parameter persistence backends.

BB.Parameter.Store.Dets

DETS-backed parameter persistence.

BB.Parameter.Type

Validation for parameter type definitions in the DSL.

BB.Process

Helper functions for building child specs and looking up processes in the robot's registry.

BB.PubSub

Hierarchical pubsub system for robot component messages.

BB.Robot

An optimised robot representation for kinematic computations.

BB.Robot.Builder

Builds an optimised `BB.Robot` struct from DSL output.

BB.Robot.Joint

An optimised joint representation with all units converted to SI floats.

BB.Robot.Kinematics

Kinematic computations for robot manipulators.

BB.Robot.Link

An optimised link representation with all units converted to SI floats.

BB.Robot.ParamResolver

Resolves parameter references in robot structs.

BB.Robot.Runtime

Runtime process for a BB robot.

BB.Robot.Runtime.StateError

Error raised when a command is not allowed in the current robot state.

BB.Robot.State

ETS-backed mutable state for robot instances.

BB.Robot.Topology

Pre-computed topology metadata for efficient traversal and kinematic operations.

BB.Robot.Transform

Homogeneous transformation matrices for robot kinematics.

BB.Robot.Units

Unit conversion functions for transforming Cldr.Unit values into base SI floats.

BB.Safety

Safety system API.

BB.Safety.Controller

Global safety controller that owns arm/disarm state for all robots.

BB.Safety.HardwareError

Payload type for hardware error events.

BB.Sensor

Behaviour and API for sensors in the BB framework.

BB.Sensor.OpenLoopPositionEstimator

A "sensor" that estimates joint position for open-loop control systems.

BB.Sensor.Server

Wrapper GenServer for sensor callback modules.

BB.SensorSupervisor

Supervisor for robot-level sensors.

BB.StateMachine.Transition

Payload type for state machine transition events.

BB.Supervisor

Root supervisor for a BB robot.

BB.Test.MockActuator

Minimal mock actuator for testing.

BB.Test.MockSolver

Mock IK solver for testing BB.Motion without real IK computations.

BB.Test.ParameterBridge

Reference implementation of `BB.Bridge` for testing.

BB.Unit

Helpers for working with units in BB DSLs.

BB.Unit.Option

Functions for specifying and validating units in option schemas.

BB.Urdf.Exporter

Export a BB robot definition to URDF XML format.

BB.Urdf.Xml

XML building utilities using Erlang's xmerl library.

MySensor

A minimal test sensor that implements BB.Sensor behaviour. Used in DSL tests where a sensor module is required.

## Mix Tasks

mix bb.add_robot

Adds a new robot module to your project

mix bb.install

Installs BB into a project

mix bb.to_urdf

Export a BB robot definition to URDF XML format.