Runtime SDK
The MoveIt Pro Agent consists of the core processes & ROS nodes that command the robot, including the Objective Server.
See also SDK Terminology.
ROS Action Interface
The MoveIt Pro Agent advertises a ROS action interface to load, run, and halt Objectives:
Name | Message Type |
---|---|
/do_objective | moveit_studio_sdk_msgs/action/DoObjectiveSequence |
Agent Implementation
This section briefly summarizes how the Agent's Objective Server functions.
Initializing Objectives
The Objective Server Node contains an instance of BT::Tree
. When an Objective is executed, the tree is reset and populated with new nodes as determined by the contents of the Objective XML file associated with the Objective named in the /do_objective
goal request message.
The Objective Server Node contains an instance of BT::BehaviorTreeFactory
, which is responsible for creating the tree when each Objective is executed. When the Objective Server Node is initialized, a list of plugin libraries containing Behaviors is retrieved from the Objective Server Node's ROS parameters and used to register available Behaviors with the factory so that trees containing user-defined or 3rd-party Behaviors can be loaded and run.
Running Objectives
While the objective is running, the Objective Server ticks its root node at a rate of 100Hz.
Cleaning Up Objectives
When a new Objective is executed, the previous Objective's Behavior tree is destroyed, and it is replaced with a new tree for the new Objective. All instances of Behaviors that were created as part of that tree and all loggers associated with that tree are destroyed as well.