<?xml version="1.0"?>
<!--
  For instructions on using Groot and description of the following BehaviorTree nodes,
  please refer to the groot_instructions.md and REAMDE.md respectively located in the
  nav2_behavior_tree package.
-->
<root>
    <TreeNodesModel>
        <!-- ############################### ACTION NODES ################################# -->
        <Action ID="ActorAnimation">
            <input_port name="animation">Name of animation to play</input_port>
        </Action>
        
        <Action ID="ActorMovement">
            <input_port name="animation">Name of animation to play</input_port>
            <input_port name="target">Pose to move to</input_port>
        </Action>
        
        <Condition ID="IsCalled">
        </Condition>

        <Action ID="SetCalledTo">
            <input_port name="state">state to set called to</input_port>
        </Action>

        <Action ID="GenerateXYPose">
            <input_port name="area">Area to generate pose in</input_port>
            <output_port name="pose">Generated pose in area</output_port>
        </Action>
        
        <Action ID="ActorMovement">
            <input_port name="target">Target to move actor to</input_port>
            <input_port name="animation">Animation name to use</input_port>
        </Action>

        <Action ID="ActorAnimation">
            <input_port name="animation">Animation name to use</input_port>
        </Action>

        <Action ID="MoveActorToTarget">
            <input_port name="current">Current actor position</input_port>
            <input_port name="target">Target to move actor to</input_port>
        </Action>

        <Control ID="WeightedRandom">
            <input_port name="weights">Weights for the children, separated by semicolon.</input_port>
        </Control>

        <Control ID="InterruptableSequence">
        </Control>

        <Action ID="SetRobotVelocity">
            <input_port name="velocity">Target velocity of robot</input_port>
        </Action>

        <Condition ID="InAreaTest">
            <input_port name="area">Area to check in</input_port>
            <input_port name="pose">Pose of object</input_port>
        </Condition>

        <Action ID="RobotMove">
            <input_port name="target">Target pose of robot.</input_port>
        </Action>

        <Action ID="OffsetPose">
            <input_port name="input">initial position as Pose</input_port>
            <input_port name="offset">offset as a Point</input_port>
            <input_port name="orientation">rotation of resulting pose as Quaternion</input_port>
            <output_port name="output">generated new pose</output_port>
        </Action>

        <Action ID="RandomFailure">
            <input_port name="failure_chance">Chance to fail from 0 to 1</input_port>
        </Action>
    </TreeNodesModel>
</root>
