diff --git a/src/xml/bt_test.xml b/src/xml/bt_test.xml new file mode 100644 index 0000000000000000000000000000000000000000..dcbe000fab7e151e2ede727df96479f53c6ae358 --- /dev/null +++ b/src/xml/bt_test.xml @@ -0,0 +1,98 @@ +<?xml version="1.0"?> +<root main_tree_to_execute="BehaviorTree"> + <!-- ////////// --> + <BehaviorTree ID="BehaviorTree"> + <SequenceStar> + <SubTree ID="set_point_to_blackboard" x="x" y="y" z="z" max_vel="max_vel" new_goal="new_goal"/> + <Fallback> + <Action ID="async_point_to" max_vel="{max_vel}" new_goal="{new_goal}" x="{x}" y="{y}" z="{z}"/> + <Condition ID="is_point_to_finished"/> + </Fallback> + <SequenceStar> + <SubTree ID="set_base_frame_black_board"/> + <SubTree ID="set_tol_blackboard"/> + <SubTree ID="set_urdf_param_blackboard"/> + </SequenceStar> + <SequenceStar> + <Action ID="sync_point_to" max_vel="{max_vel}" x="{x}" y="{y}" z="{z}"/> + <Timeout msec="15000"> + <Condition ID="is_point_to_finished"/> + </Timeout> + </SequenceStar> + </SequenceStar> + </BehaviorTree> + <!-- ////////// --> + <BehaviorTree ID="set_base_frame_black_board"> + <SequenceStar> + <SetBlackboard output_key="base_frame" value="servo2"/> + <Action ID="set_base_frame" base_frame="{base_frame}"/> + </SequenceStar> + </BehaviorTree> + <!-- ////////// --> + <BehaviorTree ID="set_point_to_blackboard"> + <SequenceStar> + <SetBlackboard output_key="x" value="0.8"/> + <SetBlackboard output_key="y" value="0.7"/> + <SetBlackboard output_key="z" value="0.3"/> + <SetBlackboard output_key="max_vel" value="0.5"/> + <SetBlackboard output_key="new_goal" value="True"/> + </SequenceStar> + </BehaviorTree> + <!-- ////////// --> + <BehaviorTree ID="set_tol_blackboard"> + <SequenceStar> + <SetBlackboard output_key="tol" value="0.01"/> + <Action ID="set_tolerance" tol="{tol}"/> + </SequenceStar> + </BehaviorTree> + <!-- ////////// --> + <BehaviorTree ID="set_urdf_param_blackboard"> + <SequenceStar> + <SetBlackboard output_key="urdf_param" value="r_desc"/> + <Action ID="set_urdf_param" urdf_param="{urdf_param}"/> + </SequenceStar> + </BehaviorTree> + <!-- ////////// --> + <TreeNodesModel> + <Action ID="async_point_to"> + <input_port default="0.5" name="max_vel"> The maximum velocity for the servos</input_port> + <input_port default="True" name="new_goal"> The maximum velocity for the servos</input_port> + <input_port default="0.0" name="x"> Point X coordenate on its reference frame</input_port> + <input_port default="0.0" name="y"> Point Y coordenate on its reference frame</input_port> + <input_port default="0.0" name="z"> Point Z coordenate on its reference frame</input_port> + </Action> + <Action ID="cancel_point_to"/> + <Condition ID="is_point_to_aborted"/> + <Condition ID="is_point_to_action_start_fail"/> + <Condition ID="is_point_to_fb_watchdog"/> + <Condition ID="is_point_to_finished"/> + <Condition ID="is_point_to_param_not_present"/> + <Condition ID="is_point_to_preempted"/> + <Condition ID="is_point_to_rejected"/> + <Condition ID="is_point_to_running"/> + <Condition ID="is_point_to_set_param_fail"/> + <Condition ID="is_point_to_success"/> + <Condition ID="is_point_to_timeout"/> + <Action ID="set_base_frame"> + <input_port default="servo1" name="base_frame"> Servo kinematic chain base frame</input_port> + </Action> + <SubTree ID="set_base_frame_black_board"/> + <SubTree ID="set_point_to_blackboard"/> + <SubTree ID="set_tol_blackboard"/> + <Action ID="set_tolerance"> + <input_port default="0.001" name="tol"> Inverse kinematic solver tolerance</input_port> + </Action> + <Action ID="set_urdf_param"> + <input_port default="robot_description" name="urdf_param"> Ros param where is stored the urdf model</input_port> + </Action> + <SubTree ID="set_urdf_param_blackboard"/> + <Action ID="sync_point_to"> + <input_port default="0.5" name="max_vel"> The maximum velocity for the servos</input_port> + <input_port default="0.0" name="x"> Point X coordenate on its reference frame</input_port> + <input_port default="0.0" name="y"> Point Y coordenate on its reference frame</input_port> + <input_port default="0.0" name="z"> Point Z coordenate on its reference frame</input_port> + </Action> + </TreeNodesModel> + <!-- ////////// --> +</root> +