Files
toid/toid_bt/behavior_trees/behavior1.xml
2026-04-17 12:42:39 +02:00

237 lines
7.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<root BTCPP_format="4">
<BehaviorTree ID="pickup_crates">
<Seq1 service_name=""/>
</BehaviorTree>
<BehaviorTree ID="seq">
<Sequence>
<InPose timeout="1.000000">
<Sleep msec="999999"/>
</InPose>
<Seq1 service_name=""/>
<Seq2 text="1010"
service_name=""/>
<Seq3 service_name=""/>
</Sequence>
</BehaviorTree>
<BehaviorTree ID="seq1">
<Sequence>
<ZeroOdom service_name=""/>
<SetInitialPose y="0.805"
theta="-90"
frame_id="map"
x="1.325"
topic_name="__default__placeholder__"/>
<WaitPullPin action_name=""/>
<InPose timeout="1.000000">
<MovePointSimple x="1.325"
y="0.200"
theta="-90"
max_speed="0.200000"
backwards="false"
action_name=""/>
</InPose>
<Seq1 service_name=""/>
<Seq2 text=""
service_name=""/>
<MovePointSimple x="1.325"
y="-0.05"
theta="-90"
max_speed="0.200000"
backwards="false"
action_name=""/>
<Seq3 service_name=""/>
<MovePointSimple x="1.325"
y="0.805"
theta="-90"
max_speed="0.200000"
backwards="true"
action_name=""/>
</Sequence>
</BehaviorTree>
<BehaviorTree ID="seq2">
<Sequence>
<ZeroOdom service_name=""/>
<SetInitialPose y="0.806"
theta="-90"
frame_id="map"
x="1.328"
topic_name="__default__placeholder__"/>
<WaitPullPin action_name=""/>
<InPose timeout="1.000000">
<MovePointSimple x="1.328"
y="0.354"
theta="-90"
max_speed="0.300000"
backwards="false"
action_name=""/>
</InPose>
<Seq1 service_name=""/>
<Parallel failure_count="1"
success_count="-1">
<Seq2 text=""
service_name=""/>
<MovePointSimple x="0.795"
y="-0.2"
theta="180"
max_speed="0.500000"
backwards="false"
action_name=""/>
</Parallel>
<Parallel failure_count="1"
success_count="-1">
<Seq3 service_name=""/>
<Sequence>
<Sleep msec="500"/>
<TranslateX x="-0.3"
max_speed="0.000000"
action_name=""/>
<RotateTowards x="1.328"
y="0.354"
max_speed="2.000000"
min_angle="0.000000"
action_name=""/>
</Sequence>
</Parallel>
<MovePointSimple x="1.328"
y="0.354"
theta="-90"
max_speed="0.400000"
backwards="true"
action_name=""/>
<Seq1 service_name=""/>
<ParallelAll max_failures="1">
<Seq2 text=""
service_name=""/>
<MovePointSimple x="1.328"
y="-0.2"
theta="-90"
max_speed="0.200000"
backwards="false"
action_name=""/>
</ParallelAll>
<Parallel failure_count="1"
success_count="-1">
<Seq3 service_name=""/>
<Sequence>
<Sleep msec="500"/>
<MovePointSimple x="1.328"
y="0.354"
theta="-90"
max_speed="0.400000"
backwards="true"
action_name=""/>
</Sequence>
</Parallel>
</Sequence>
</BehaviorTree>
<BehaviorTree ID="test_1">
<Sequence>
<DetectStuck timeout="1.000000">
<RotateTowards x="0.4"
y="0.0"
max_speed="0.000000"
min_angle="0.000000"
action_name=""/>
</DetectStuck>
</Sequence>
</BehaviorTree>
<!-- Description of Node Models (used by Groot) -->
<TreeNodesModel>
<Decorator ID="DetectStuck">
<input_port name="timeout"
default="1.000000"
type="double"/>
</Decorator>
<Decorator ID="InPose">
<input_port name="timeout"
default="1.000000"
type="double"/>
</Decorator>
<Action ID="MovePointSimple">
<input_port name="x"
type="double"/>
<input_port name="y"
type="double"/>
<input_port name="theta"
type="double"/>
<input_port name="max_speed"
default="0.000000"
type="double"/>
<input_port name="backwards"
default="false"
type="bool"/>
<input_port name="action_name"
type="std::string">Action server name</input_port>
</Action>
<Action ID="RotateTowards">
<input_port name="x"
type="double"/>
<input_port name="y"
type="double"/>
<input_port name="max_speed"
default="0.000000"
type="double"/>
<input_port name="min_angle"
default="0.000000"
type="double"/>
<input_port name="action_name"
type="std::string">Action server name</input_port>
</Action>
<Action ID="Seq1">
<input_port name="service_name"
type="std::string">Service name</input_port>
</Action>
<Action ID="Seq2">
<input_port name="text"
type="std::string"/>
<input_port name="service_name"
type="std::string">Service name</input_port>
</Action>
<Action ID="Seq3">
<input_port name="service_name"
type="std::string">Service name</input_port>
</Action>
<Condition ID="SetInitialPose">
<input_port name="y"
default="0.000000"
type="double">Y position in meters</input_port>
<input_port name="theta"
default="0.000000"
type="double">Heading in degrees</input_port>
<input_port name="frame_id"
default="map"
type="std::string">Reference frame</input_port>
<input_port name="x"
default="0.000000"
type="double">X position in meters</input_port>
<input_port name="topic_name"
default="__default__placeholder__"
type="std::string">Topic name</input_port>
</Condition>
<Action ID="TranslateX">
<input_port name="x"
type="double"/>
<input_port name="max_speed"
default="0.000000"
type="double"/>
<input_port name="action_name"
type="std::string">Action server name</input_port>
</Action>
<Action ID="WaitPullPin">
<input_port name="action_name"
type="std::string">Action server name</input_port>
</Action>
<Action ID="ZeroOdom">
<input_port name="service_name"
type="std::string">Service name</input_port>
</Action>
</TreeNodesModel>
</root>