API Reference bb v#0.15.3

Copy Markdown View Source

Modules

BB

Documentation for BB (Beam Bots).

Behaviour and API for actuators in the BB framework.

Wrapper GenServer for actuator callback modules.

Behaviour for parameter bridge GenServers in the BB framework.

Supervisor for parameter protocol bridges.

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

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

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

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

Implements cardinal plural rules for numbers.

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

Implements ordinal plural rules for numbers.

Implements plural rules for ranges

Transliteration for digits and separators.

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

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

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

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

Collision detection for BB robots.

Broad phase collision detection using Axis-Aligned Bounding Boxes (AABBs).

Mesh loading and bounding geometry computation for collision detection.

Collision detection algorithms for primitive geometry pairs.

Behaviour for implementing robot commands.

Standard command handler for arming a robot.

Context provided to command handlers during execution.

Standard command handler for disarming a robot.

Payload type for command execution events.

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

Caches command results for retrieval after the command process terminates.

GenServer wrapper for command callback modules.

Reusable command handler for transitioning between operational states.

Behaviour for controllers in the BB framework.

Action builders and executor for reactive controllers.

Action that calls an arbitrary function.

Action that invokes a robot command.

Context provided to action callbacks.

Controller that triggers an action when a message matches a predicate.

Wrapper GenServer for controller callback modules.

Convenience wrapper around PatternMatch for threshold monitoring.

Supervisor for robot-level controllers.

Diagnostic reporting for monitoring and awareness.

The DSL extension for describing robot properties and topologies.

An actuator attached to a joint.

Joint axis orientation specified as Euler angles.

A box geometry

A parameter protocol bridge for remote access.

A capsule geometry (cylinder with hemispherical caps).

A command category for grouping commands with concurrent execution limits.

Collects category definitions and injects category-related functions.

Collision information

A color

A command that can be executed on the robot.

An argument for a command.

Generates convenience functions for commands on the robot module.

A controller process at the robot level.

A cylindrical geometry

Ensures that the default robot name is present

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

Inertial information.

Inertial information.

A joint in the robot topology chain.

Joint limits

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

A material

A 3D model (mesh)

An origin location.

A runtime-adjustable parameter.

A group of runtime-adjustable parameters.

A reference to a parameter for use in DSL fields.

Generates parameter schema and default values from DSL definitions.

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

A sensor attached to the robot or a specific link.

A spherical geometry

A custom operational state for the robot.

Collects state definitions and injects state-related functions.

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

A 2D texture

Validate and transform links as required.

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

Validates that the units provided in a joint's limit block are compatible with the joint's type.

Validates that category references in commands are valid.

Validates that child_spec options match the module's schema.

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

Validates that state references in commands are valid.

A material

Expands :* wildcards in command allowed_states and cancel options.

Structured error handling for the Beam Bots ecosystem.

Error class for command category-related errors.

Category is at capacity for concurrent commands.

Hardware communication error classes.

Communication bus error (I2C, serial, etc.).

Error reported by the hardware device itself.

Hardware device is disconnected or not responding.

Communication timeout with a hardware device.

Configuration and validation error classes.

Invalid command or command arguments.

Invalid joint configuration.

Invalid runtime parameter.

Robot topology configuration error.

Kinematics and motion planning error classes.

Multi-target inverse kinematics failed.

Kinematic chain has no degrees of freedom.

Inverse kinematics solver failed to converge.

Motion would cause self-collision.

Robot is near or at a kinematic singularity.

Target link not found in robot topology.

Target pose is outside the robot's workspace.

Low-level protocol error classes.

Safety system error classes.

Potential collision detected.

Disarm callback failed for a component.

Emergency stop triggered.

Physical limit exceeded on a joint or actuator.

Protocol for determining error severity.

State machine error classes.

A command crashed during execution.

Invalid state reference.

Operation not allowed in current state.

Operation was preempted by another operation.

State transition timed out.

Example robot topologies for testing and documentation.

A simple 2-DOF arm with collision geometry for testing self-collision detection.

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

A simple linear actuator (prismatic joint example).

A simple pan-tilt camera mount.

A 6 degree-of-freedom industrial robot arm.

Behaviour for inverse kinematics solvers in the BB ecosystem.

Helpers for writing Igniter installers for BB add-on packages.

Supervisor for a joint and its child link.

Supervisor for a link and its joints.

Unit quaternion for 3D rotations, backed by an Nx tensor.

Homogeneous transformation matrices for 3D transformations, backed by an Nx tensor.

3D vector backed by an Nx tensor.

Message envelope and behaviour for payload types.

Message published by actuators when beginning a motion.

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

Command an actuator to actively maintain its current position.

Command to move an actuator to a target position.

Command to stop an actuator's motion.

Command an actuator to follow a trajectory defined by waypoints.

Command to set an actuator's velocity.

Message published by actuators when motion ends.

Linear and angular acceleration in 3D space.

A 3D point in space.

A position and orientation in 3D space.

Linear and angular velocity in 3D space.

Force and torque in 3D space.

Custom Spark.Options types for message primitives.

Battery state information.

Raw image data from a camera sensor.

Inertial Measurement Unit data.

State of a set of joints.

Single scan from a planar laser range-finder.

Single range reading from a distance sensor.

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

Behaviour for continuous position tracking with IK.

Runtime-adjustable parameters for robot components.

Payload type for parameter change events.

Builds nested Spark.Options schemas from flat parameter definitions.

Behaviour for parameter persistence backends.

DETS-backed parameter persistence.

Validation for parameter type definitions in the DSL.

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

Hierarchical pubsub system for robot component messages.

An optimised robot representation for kinematic computations.

Builds an optimised BB.Robot struct from DSL output.

Information about a currently executing command.

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

Kinematic computations for robot manipulators.

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

Resolves parameter references in robot structs.

Runtime process for a BB robot.

ETS-backed mutable state for robot instances.

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

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

Safety system API.

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

Payload type for hardware error events.

Behaviour and API for sensors in the BB framework.

A sensor that derives joint state from another joint.

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

Wrapper GenServer for sensor callback modules.

Supervisor for robot-level sensors.

Shared parameter resolution logic for wrapper servers.

Simulated actuator for kinematic simulation mode.

Mock bridge for simulation mode.

Mock controller for simulation mode.

Payload type for state machine transition events.

Root supervisor for a BB robot.

Telemetry events emitted by the BB framework.

A test command that waits for an explicit :complete message before finishing.

Minimal mock actuator for testing.

Minimal mock bridge for testing.

Minimal mock controller for testing.

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

Reference implementation of BB.Bridge for testing.

Helpers for working with units in BB DSLs.

Functions for specifying and validating units in option schemas.

Export a BB robot definition to URDF XML format.

XML building utilities using Erlang's xmerl library.

Mix Tasks

Adds a new robot module to your project

Installs BB into a project

Export a BB robot definition to URDF XML format.