BB.ExampleRobots.FloatingDrone (bb v0.28.0)

Copy Markdown View Source

An airframe with a fully free base, plus a revolute gimbal.

The :base joint is :floating, so the airframe has all six degrees of freedom. The gimbal below it is revolute, and its origin is deliberately offset on two axes so that composing the two does not commute.

Summary

Functions

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

Returns the optimised robot representation.

Starts the robot's supervision tree.

Functions

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.ExampleRobots.FloatingDrone.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.