Skip to content

Tutorial Adv1: Multiple Instances of TeMoto

Robert edited this page Mar 15, 2023 · 2 revisions

General setup of the examples

Throughout the examples we emulate a situation where we have two actors: the Operator and Vaultbot. Both have their own set of TeMoto related subsystems running (Action Engine, Robot Manager, Process Manager, etc.), launched via temoto.launch.

Resoure sharing: Whenever an instance of a Robot or Component manager comes online, i.e., is launched, the respective managers share eachother's configurations (it's a default built-in behavior), illustrated below. Thus the Operator can access Vaultbot's resources.

Loading local resources: In the upcoming demos, we invoke all kinds of TeMoto actions which implement a specific behavior we want our system to do. Among those behaviors, we also use the actions to load resources that are needed for a respective behavior. The figure below illustrates how an action utilizes Component Manager (step 1) to invoke a joystick controller (step 3) through the Process Manager (step 2).

Loading remote resources: Similarly to loading local resources, remote resources can be loaded aswell. This behavior can be utilized to orchestrate different robots without knowing the specifics of how a certain resource must be initialized and controlled. The figure below illustrates how the Operator initializes the robot (step 1) that is actually maintained by Vaultbot. Since the Operator's instance of Robot Manager knows that Vaultbot is managed by a remote instance of the Robot Manager, it forwards the request (step 2). Next the Vaultbot's instance of the Robot Manager utilizes Process Manager (step 3) to load the resources specific to the robot (step 4).

Controlling remote resources: Finally, the Operator can again utilize the Robot Manager to control remote robots without knowing the specifics of the robot (topic names, service names, etc).

Clone this wiki locally