Spark DSL extension for integrating Reactor with BB robotics framework.
This extension provides command, wait_for_event, and wait_for_state
entities that simplify building robot operation sequences with proper safety
handling and compensation.
Usage
defmodule MyRobot.PickAndPlace do
use Reactor, extensions: [BB.Reactor]
input :pick_pose
input :place_pose
command :approach do
command :move_to_pose
argument :target, input(:pick_pose)
end
command :grip do
command :close_gripper
wait_for :approach
end
command :retreat do
command :move_to_pose
argument :target, input(:place_pose)
wait_for :grip
compensate :return_home
end
return :retreat
endRunning a Reactor
Reactors using this extension must be run with the robot module in context:
Reactor.run(MyRobot.PickAndPlace, inputs, %{private: %{bb_robot: MyRobot}})Entities
command- Execute a BB command with safety handling and compensation supportwait_for_event- Wait for a PubSub event matching a patternwait_for_state- Wait for the robot to reach a specific state