Add behavior for i2cnode and choosing side
This commit is contained in:
@ -1,16 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root BTCPP_format="4" project_name="Project">
|
||||
<include path="calib_bt.xml"/>
|
||||
<include path="tactics.xml"/>
|
||||
<!-- Description of Node Models (used by Groot) -->
|
||||
<TreeNodesModel>
|
||||
<Action ID="CalibWidth">
|
||||
<input_port name="PreviousWidth" type="double"/>
|
||||
<input_port name="Count" default="1" type="int"/>
|
||||
<input_port name="Count" type="int" default="1"/>
|
||||
<output_port name="NewWidth" type="double"/>
|
||||
<input_port name="service_name" type="std::string">Service name</input_port>
|
||||
<input_port name="service_name" type="std::string" default="">Service name</input_port>
|
||||
</Action>
|
||||
<Action ID="I2CSignal">
|
||||
<input_port name="Address" type="int" default="42"/>
|
||||
<input_port name="Data" type="int" default="0"/>
|
||||
<output_port name="Result" type="int"/>
|
||||
<input_port name="action_name" type="std::string" default="">Action server name</input_port>
|
||||
</Action>
|
||||
<Action ID="MovePoint">
|
||||
<input_port name="action_name" type="std::string">Action server name</input_port>
|
||||
<input_port name="action_name" type="std::string" default="">Action server name</input_port>
|
||||
<input_port name="tolerance" type="double"/>
|
||||
<input_port name="obst_mult_a" type="double"/>
|
||||
<input_port name="ornt_mult" type="double"/>
|
||||
@ -20,7 +27,7 @@
|
||||
<input_port name="obst_mult_b" type="double"/>
|
||||
<input_port name="max_vel" type="double"/>
|
||||
<input_port name="max_angular" type="double"/>
|
||||
<input_port name="IgnoreList" type="std::string"/>
|
||||
<input_port name="IgnoreList" type="std::string" default=""/>
|
||||
<input_port name="max_wheel_speed" type="double"/>
|
||||
<input_port name="x_goal" type="double"/>
|
||||
<input_port name="y_goal" type="double"/>
|
||||
@ -29,7 +36,7 @@
|
||||
<input_port name="angle" type="double"/>
|
||||
<input_port name="pos_mult" type="double"/>
|
||||
<input_port name="max_wheel_speed" type="double"/>
|
||||
<input_port name="IgnoreList" type="std::string"/>
|
||||
<input_port name="IgnoreList" type="std::string" default=""/>
|
||||
<input_port name="max_angular" type="double"/>
|
||||
<input_port name="max_vel" type="double"/>
|
||||
<input_port name="obst_mult_b" type="double"/>
|
||||
@ -38,10 +45,19 @@
|
||||
<input_port name="t_ornt_mult" type="double"/>
|
||||
<input_port name="obst_mult_a" type="double"/>
|
||||
<input_port name="tolerance" type="double"/>
|
||||
<input_port name="action_name" type="std::string">Action server name</input_port>
|
||||
<input_port name="action_name" type="std::string" default="">Action server name</input_port>
|
||||
</Action>
|
||||
<Condition ID="SideObstaclePub">
|
||||
<input_port name="tactic" type="int"/>
|
||||
<input_port name="topic_name" type="std::string" default="__default__placeholder__">Topic name</input_port>
|
||||
</Condition>
|
||||
<Action ID="TacticChooser">
|
||||
<output_port name="IsBlue" type="int"/>
|
||||
<output_port name="tactic" type="int"/>
|
||||
<input_port name="number" type="int"/>
|
||||
</Action>
|
||||
<Action ID="ZeroNode">
|
||||
<input_port name="service_name" type="std::string">Service name</input_port>
|
||||
<input_port name="service_name" type="std::string" default="">Service name</input_port>
|
||||
</Action>
|
||||
</TreeNodesModel>
|
||||
</root>
|
||||
|
||||
61
mg_bt/behavior_trees/tactics.xml
Normal file
61
mg_bt/behavior_trees/tactics.xml
Normal file
@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root BTCPP_format="4">
|
||||
<BehaviorTree ID="tactic_base">
|
||||
<Sequence>
|
||||
<I2CSignal Address="66"
|
||||
Data="1"
|
||||
Result="{tactic_id}"
|
||||
action_name="/i2c_action"/>
|
||||
<SideObstaclePub tactic="{tactic_id}"
|
||||
topic_name="/side"/>
|
||||
<TacticChooser IsBlue="{isBlue}"
|
||||
tactic="{tactic}"
|
||||
number="{tactic_id}"/>
|
||||
<SubTree ID="tactic_default_yellow"
|
||||
_skipIf="isBlue"
|
||||
_autoremap="false"/>
|
||||
<SubTree ID="tatic_default_blue"
|
||||
_skipIf="!isBlue"/>
|
||||
</Sequence>
|
||||
</BehaviorTree>
|
||||
|
||||
<BehaviorTree ID="tactic_default_yellow">
|
||||
<AlwaysSuccess/>
|
||||
</BehaviorTree>
|
||||
|
||||
<BehaviorTree ID="tatic_default_blue">
|
||||
<AlwaysFailure/>
|
||||
</BehaviorTree>
|
||||
|
||||
<!-- Description of Node Models (used by Groot) -->
|
||||
<TreeNodesModel>
|
||||
<Action ID="I2CSignal">
|
||||
<input_port name="Address"
|
||||
default="42"
|
||||
type="int"/>
|
||||
<input_port name="Data"
|
||||
default="0"
|
||||
type="int"/>
|
||||
<output_port name="Result"
|
||||
type="int"/>
|
||||
<input_port name="action_name"
|
||||
type="std::string">Action server name</input_port>
|
||||
</Action>
|
||||
<Condition ID="SideObstaclePub">
|
||||
<input_port name="tactic"
|
||||
type="int"/>
|
||||
<input_port name="topic_name"
|
||||
default="__default__placeholder__"
|
||||
type="std::string">Topic name</input_port>
|
||||
</Condition>
|
||||
<Action ID="TacticChooser">
|
||||
<output_port name="IsBlue"
|
||||
type="int"/>
|
||||
<output_port name="tactic"
|
||||
type="int"/>
|
||||
<input_port name="number"
|
||||
type="int"/>
|
||||
</Action>
|
||||
</TreeNodesModel>
|
||||
|
||||
</root>
|
||||
19
mg_bt/behavior_trees/tactics_blue.xml
Normal file
19
mg_bt/behavior_trees/tactics_blue.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root BTCPP_format="4">
|
||||
<BehaviorTree ID="tactic_base">
|
||||
<SideObstaclePub tactic="1"
|
||||
topic_name="/side"/>
|
||||
</BehaviorTree>
|
||||
|
||||
<!-- Description of Node Models (used by Groot) -->
|
||||
<TreeNodesModel>
|
||||
<Condition ID="SideObstaclePub">
|
||||
<input_port name="tactic"
|
||||
type="int"/>
|
||||
<input_port name="topic_name"
|
||||
default="__default__placeholder__"
|
||||
type="std::string">Topic name</input_port>
|
||||
</Condition>
|
||||
</TreeNodesModel>
|
||||
|
||||
</root>
|
||||
Reference in New Issue
Block a user