BB.MCP.ParameterRobot (bb_mcp v0.3.2)

Copy Markdown View Source

A robot which declares runtime parameters, for exercising the parameter tools and resource against a real schema.

A {:unit, _} parameter's value is a Localize.Unit struct, which is not JSON on its own.

Summary

Functions

Returns default parameter values.

Returns the parameter schema for validation.

Returns a child specification for starting this robot under a supervisor.

Returns the optimised robot representation.

Starts the robot's supervision tree.

Functions

__bb_default_parameters__()

@spec __bb_default_parameters__() :: [{[atom()], term()}]

Returns default parameter values.

Returns a list of {path, value} tuples for parameters that have defaults.

__bb_parameter_schema__()

@spec __bb_parameter_schema__() :: [{[atom()], keyword()}]

Returns the parameter schema for validation.

The schema is a list of {path, opts} tuples where opts is a keyword list compatible with Spark.Options.

child_spec(opts \\ [])

@spec child_spec(Keyword.t()) :: Supervisor.child_spec()

Returns a child specification for starting this robot under a supervisor.

robot()

@spec robot() :: BB.Robot.t()

Returns the optimised robot representation.

This struct is built at compile-time from the DSL definition and contains:

  • All physical values converted to SI base units (floats)
  • Flat maps for O(1) lookup of links, joints, sensors, and actuators
  • Pre-computed topology metadata for efficient traversal

Examples

robot = Elixir.BB.MCP.ParameterRobot.robot()
{:ok, link} = BB.Robot.get_link(robot, :base_link)
{:ok, joint} = BB.Robot.get_joint(robot, :shoulder)

start_link(opts \\ [])

@spec start_link(Keyword.t()) :: Supervisor.on_start()

Starts the robot's supervision tree.

Options

All options are passed through to sensor and actuator child processes.