mirror of
https://gitee.com/dlmu-cone/Arborflow
synced 2026-10-23 17:52:20 +08:00
feat: dark/light theme, i18n (zh/en), inline node params with IN/OUT, root node, custom node creation, minimap & light mode contrast fixes
This commit is contained in:
144
test_rmul_2025.xml
Normal file
144
test_rmul_2025.xml
Normal file
@@ -0,0 +1,144 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<root BTCPP_format="4">
|
||||
<BehaviorTree ID="check_game_start">
|
||||
<Fallback>
|
||||
<IsGameStatus name="IsGameStart"
|
||||
max_remain_time="420"
|
||||
min_remain_time="0"
|
||||
expected_game_progress="4"
|
||||
key_port="{@referee_gameStatus}"/>
|
||||
<ForceFailure>
|
||||
<Sequence>
|
||||
<PublishSpinSpeed spin_speed="0.0"
|
||||
duration="0.0"
|
||||
topic_name="cmd_spin"/>
|
||||
<PublishTwist v_y="0.0"
|
||||
v_yaw="0.0"
|
||||
v_x="0.0"
|
||||
duration="0.0"
|
||||
topic_name="cmd_vel"/>
|
||||
</Sequence>
|
||||
</ForceFailure>
|
||||
</Fallback>
|
||||
</BehaviorTree>
|
||||
|
||||
<BehaviorTree ID="check_robot_status">
|
||||
<Fallback>
|
||||
<IsStatusOK ammo_min="0"
|
||||
heat_max="350"
|
||||
hp_min="200"
|
||||
key_port="{@referee_robotStatus}"/>
|
||||
<ForceFailure>
|
||||
<Fallback>
|
||||
<IsRfidDetected friendly_supply_zone_exchange="false"
|
||||
friendly_supply_zone_non_exchange="true"
|
||||
center_gain_point="false"
|
||||
friendly_fortress_gain_point="false"
|
||||
key_port="{@referee_rfidStatus}"/>
|
||||
<PubNav2Goal goal="0;0;0"
|
||||
topic_name="goal_pose"/>
|
||||
</Fallback>
|
||||
</ForceFailure>
|
||||
</Fallback>
|
||||
</BehaviorTree>
|
||||
|
||||
<BehaviorTree ID="rmul_2025">
|
||||
<KeepRunningUntilFailure>
|
||||
<ForceSuccess>
|
||||
<ReactiveSequence>
|
||||
<SubTree ID="check_game_start"/>
|
||||
<PublishSpinSpeed spin_speed="7.0"
|
||||
duration="0.0"
|
||||
topic_name="cmd_spin"/>
|
||||
<SubTree ID="check_robot_status"/>
|
||||
<PubNav2Goal goal="4.65;-3.5;0"
|
||||
topic_name="goal_pose"/>
|
||||
</ReactiveSequence>
|
||||
</ForceSuccess>
|
||||
</KeepRunningUntilFailure>
|
||||
</BehaviorTree>
|
||||
|
||||
<!-- Description of Node Models (used by Groot) -->
|
||||
<TreeNodesModel>
|
||||
<Condition ID="IsGameStatus">
|
||||
<input_port name="max_remain_time"
|
||||
default="420"
|
||||
type="int">Maximum remaining time (s)</input_port>
|
||||
<input_port name="min_remain_time"
|
||||
default="0"
|
||||
type="int">Minimum remaining time (s)</input_port>
|
||||
<input_port name="expected_game_progress"
|
||||
default="4"
|
||||
type="int">Expected game progress stage</input_port>
|
||||
<input_port name="key_port"
|
||||
default="{@referee_gameStatus}"
|
||||
type="pb_rm_interfaces::msg::GameStatus_<std::allocator<void> >">GameStatus port on blackboard</input_port>
|
||||
</Condition>
|
||||
<Condition ID="IsRfidDetected">
|
||||
<input_port name="friendly_supply_zone_exchange"
|
||||
default="false"
|
||||
type="bool">己方与兑换区重叠的补给区</input_port>
|
||||
<input_port name="friendly_supply_zone_non_exchange"
|
||||
default="false"
|
||||
type="bool">己方与兑换区不重叠的补给区 / RMUL 补给区</input_port>
|
||||
<input_port name="center_gain_point"
|
||||
default="false"
|
||||
type="bool">中心增益点(仅 RMUL 适用)</input_port>
|
||||
<input_port name="friendly_fortress_gain_point"
|
||||
default="false"
|
||||
type="bool">己方堡垒增益点</input_port>
|
||||
<input_port name="key_port"
|
||||
default="{@referee_rfidStatus}"
|
||||
type="pb_rm_interfaces::msg::RfidStatus_<std::allocator<void> >">RfidStatus port on blackboard</input_port>
|
||||
</Condition>
|
||||
<Condition ID="IsStatusOK">
|
||||
<input_port name="ammo_min"
|
||||
default="0"
|
||||
type="int">Lower then minimum ammo will return FAILURE</input_port>
|
||||
<input_port name="heat_max"
|
||||
default="350"
|
||||
type="int">Maximum heat. NOTE: Sentry heat limit is 400</input_port>
|
||||
<input_port name="hp_min"
|
||||
default="300"
|
||||
type="int">Minimum HP. NOTE: Sentry init/max HP is 400</input_port>
|
||||
<input_port name="key_port"
|
||||
default="{@referee_robotStatus}"
|
||||
type="pb_rm_interfaces::msg::RobotStatus_<std::allocator<void> >">RobotStatus port on blackboard</input_port>
|
||||
</Condition>
|
||||
<Condition ID="PubNav2Goal">
|
||||
<input_port name="goal"
|
||||
default="0;0;0"
|
||||
type="geometry_msgs::msg::PoseStamped_<std::allocator<void> >">Expected goal pose that send to nav2. Fill with format `x;y;yaw`</input_port>
|
||||
<input_port name="topic_name"
|
||||
default="__default__placeholder__"
|
||||
type="std::string">Topic name</input_port>
|
||||
</Condition>
|
||||
<Action ID="PublishSpinSpeed">
|
||||
<input_port name="spin_speed"
|
||||
default="0.000000"
|
||||
type="double">Angular Z velocity (rad/s)</input_port>
|
||||
<input_port name="duration"
|
||||
type="std::chrono::milliseconds">Publish then sleep duration in milliseconds</input_port>
|
||||
<input_port name="topic_name"
|
||||
default="__default__placeholder__"
|
||||
type="std::string">Topic name</input_port>
|
||||
</Action>
|
||||
<Action ID="PublishTwist">
|
||||
<input_port name="v_y"
|
||||
default="0.000000"
|
||||
type="double">Linear Y velocity (m/s)</input_port>
|
||||
<input_port name="v_yaw"
|
||||
default="0.000000"
|
||||
type="double">Angular Z velocity (rad/s)</input_port>
|
||||
<input_port name="v_x"
|
||||
default="0.000000"
|
||||
type="double">Linear X velocity (m/s)</input_port>
|
||||
<input_port name="duration"
|
||||
type="std::chrono::milliseconds">Publish then sleep duration in milliseconds</input_port>
|
||||
<input_port name="topic_name"
|
||||
default="__default__placeholder__"
|
||||
type="std::string">Topic name</input_port>
|
||||
</Action>
|
||||
</TreeNodesModel>
|
||||
|
||||
</root>
|
||||
Reference in New Issue
Block a user