Changes to trees

This commit is contained in:
Bastian Hofmann 2023-03-31 12:46:53 +00:00
parent b558f8d401
commit 1e12d84ed4
6 changed files with 44 additions and 131 deletions

View File

@ -1,60 +1,20 @@
<?xml version="1.0"?>
<root main_tree_to_execute="BehaviorTree">
<!-- ////////// -->
<BehaviorTree ID="BehaviorTree">
<root main_tree_to_execute="actorTree">
<BehaviorTree ID="actorTree">
<Control ID="WeightedRandom" weights="95,5">
<Sequence>
<Control ID="WeightedRandom" weights="100,5,2">
<Control ID="WeightedRandom" weights="95,5">
<Action ID="GenerateXYPose" area="{safeArea}" pose="{actorTarget}"/>
<Action ID="GenerateXYPose" area="{warningArea}" pose="{actorTarget}"/>
<Action ID="GenerateXYPose" area="{unsafeArea}" pose="{actorTarget}"/>
</Control>
<Action ID="ActorMovement" animation="walk" target="{actorTarget}"/>
<Action ID="ActorAnimation" animation="standing_extend_arm"/>
<Action ID="ActorAnimation" animation="standing_retract_arm"/>
</Sequence>
<Sequence>
<Action ID="GenerateXYPose" area="{unsafeArea}" pose="{actorTarget}"/>
<Action ID="ActorMovement" animation="walk" target="{actorTarget}"/>
</Sequence>
</BehaviorTree>
<!-- ////////// -->
<TreeNodesModel>
<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"/>
<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>
<Condition ID="InAreaTest">
<input_port name="area">Bounds to check in</input_port>
<input_port name="pose">Position of object</input_port>
</Condition>
<Action ID="MoveActorToTarget">
<input_port name="current">Current actor position</input_port>
<input_port name="target">Target to move actor to</input_port>
</Action>
<Action ID="PositionToPose">
<input_port name="offset">offset as a Point</input_port>
<input_port name="orientation">rotation of resulting pose as Quaternion</input_port>
<input_port name="output">generated new pose</input_port>
<input_port name="position">initial position as Position2D</input_port>
</Action>
<Action ID="SetRobotVelocity">
<input_port name="velocity">Target velocity of robot</input_port>
</Action>
<Action ID="RandomFailure">
<input_port name="failureChance">Chance to fail from 0 to 1</input_port>
</Action>
<Action ID="RobotMove">
<input_port name="target">Target pose of robot.</input_port>
</Action>
<Control ID="WeightedRandom">
<input_port name="weights">Weights for the children, separated by semicolon.</input_port>
</Control>
</TreeNodesModel>
<!-- ////////// -->
</BehaviorTree>
</root>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<root main_tree_to_execute="BehaviorTree">
<root main_tree_to_execute="actorTree">
<!-- ////////// -->
<BehaviorTree ID="BehaviorTree">
<BehaviorTree ID="actorTree">
<Fallback>
<ReactiveSequence>
<Inverter>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<root main_tree_to_execute="BehaviorTree">
<root main_tree_to_execute="actorTree">
<!-- ////////// -->
<BehaviorTree ID="BehaviorTree">
<BehaviorTree ID="actorTree">
<Fallback>
<ReactiveSequence>
<Inverter>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<root main_tree_to_execute="BehaviorTree">
<!-- ////////// -->
<BehaviorTree ID="BehaviorTree">
<root main_tree_to_execute="robotTree">
<BehaviorTree ID="robotTree">
<ReactiveSequence>
<Inverter>
<Condition ID="InAreaTest" area="{unsafeArea}" pose="{actorPos}"/>
@ -23,48 +22,4 @@
</Fallback>
</ReactiveSequence>
</BehaviorTree>
<!-- ////////// -->
<TreeNodesModel>
<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"/>
<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>
<Condition ID="InAreaTest">
<input_port name="area">Bounds to check in</input_port>
<input_port name="pose">Position of object</input_port>
</Condition>
<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="failureChance">Chance to fail from 0 to 1</input_port>
</Action>
<Action ID="RobotMove">
<input_port name="target">Target pose of robot.</input_port>
</Action>
<Action ID="SetRobotVelocity">
<input_port name="velocity">Target velocity of robot</input_port>
</Action>
<Control ID="WeightedRandom">
<input_port name="weights">Weights for the children, separated by semicolon.</input_port>
</Control>
<Control ID="InterruptableSequence">
</Control>
</TreeNodesModel>
<!-- ////////// -->
</root>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<root main_tree_to_execute="BehaviorTree">
<root main_tree_to_execute="robotTree">
<!-- ////////// -->
<BehaviorTree ID="BehaviorTree">
<BehaviorTree ID="robotTree">
<ReactiveSequence>
<Inverter>
<Condition ID="InAreaTest" area="{unsafeArea}" pose="{actorPos}"/>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<root main_tree_to_execute="BehaviorTree">
<root main_tree_to_execute="robotTree">
<!-- ////////// -->
<BehaviorTree ID="BehaviorTree">
<BehaviorTree ID="robotTree">
<ReactiveSequence>
<Inverter>
<Condition ID="InAreaTest" area="{unsafeArea}" pose="{actorPos}"/>
@ -11,25 +11,23 @@
<Action ID="SetRobotVelocity" velocity="0.1"/>
<Action ID="SetRobotVelocity" velocity="1"/>
</IfThenElse>
<Fallback>
<Control ID="InterruptableSequence">
<Action ID="GenerateXYPose" area="{negativeYTable}" pose="{target}"/>
<Action ID="OffsetPose" input="{target}" offset="0,0,1.1" orientation="0,0,1,0" output="{target}"/>
<Action ID="RobotMove" target="{target}"/>
<Control ID="WeightedRandom" weights="90,10">
<Sequence>
<Action ID="GenerateXYPose" area="{dropoff}" pose="{target}"/>
<Action ID="OffsetPose" input="{target}" offset="0,0,1.1" orientation="0,0,1,0" output="{target}"/>
<Action ID="OffsetPose" input="-0.68,0,1.215" offset="0,0,0" orientation="0,-0.707,0,0.707" output="{target}"/>
<Action ID="RobotMove" target="{target}"/>
</Sequence>
<Sequence>
<Action ID="GenerateXYPose" area="{positiveYTable}" pose="{target}"/>
<Action ID="OffsetPose" input="{target}" offset="0,0,1.1" orientation="0,0,1,0" output="{target}"/>
<Action ID="RobotMove" target="{target}"/>
<Action ID="SetCalledTo" state="true"/>
</Sequence>
</Control>
<Action ID="RobotMove" target="{target}"/>
</Control>
<Action ID="SetCalledTo" state="true"/>
</Fallback>
</ReactiveSequence>
</BehaviorTree>
<!-- ////////// -->