Work in progress: this documentation is still being written and reviewed. Check details against the source code.

Tool exchange action server

Expose configured dock/load motion through ToolExchangeAction.

beambot.action_servers.tool_exchange_server · Source

Tools and end effectors · Guide · Symbol index

How it is used

This endpoint executes configured load/dock motion through ToolExchangeStages. The orchestrator calls it through ToolExchangeManager, which separately coordinates tool voltage, active-tool state, and MoveIt relaunch.

main() starts beambot_toolexchange. Sending a goal directly reaches the motion stages; it does not perform the manager’s surrounding lifecycle work.

Start here

Callable

Purpose

main

Run ToolExchangeActionServer through the shared multithreaded ROS server runner.

ToolExchangeActionServer.create_stages

Bind ToolExchangeStages to this action-server node.

Functions

main()

Run ToolExchangeActionServer through the shared multithreaded ROS server runner.

Entry point · Source

main(args=None)

Parameter

Meaning

args

Optional ROS initialization arguments; None uses normal rclpy argument handling.

Returns: None when the server exits.

Errors: KeyboardInterrupt during spin is handled by run_server; initialization/construction and other executor errors propagate.

Side effects: Initializes ROS, constructs the action node, spins until shutdown and destroys the node/context.

ToolExchangeActionServer

Concrete BaseActionServer for dock/load motion. It supplies ToolExchangeStages; hardware voltage and model coordination belong to ToolExchangeManager.

Inherits from: BaseActionServer.

ToolExchangeActionServer.create_stages()

Bind ToolExchangeStages to this action-server node.

Extension hook · Source

create_stages(self)

Returns: New ToolExchangeStages instance.

Errors: Stage initialization errors propagate.

Side effects: Initializes stage resources.

ToolExchangeActionServer.__init__()

Configure the shared action base as node beambot_toolexchange_server serving beambot_toolexchange.

Lifecycle · Source

__init__(self)

Errors: Stage/node/action initialization errors propagate.

Side effects: Constructs the ROS action endpoint and operation stages; logs startup.