You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
Many thanks for the amazing library and all your efforts.
I realise that as my observation is in 3.8 it will be low priority etc. but hopefully this helps someone else who may run into the same issue I did after following the documentation and spending sometime confused.
The 3.8 docs specify that the correct syntax for remapping a port ought to be <SubTree ID="MoveRobot" target="{move_goal}"/> however this fails (details on the error message in XML example below) and the correct syntax ought to be <SubTree ID="MoveRobot" target="move_goal"/>.
I came across the fix reading here and here. However, this is contradicted in many other places (eg.).
My own test example is below, including the errors seen and some notes, but the easiest test for checking within this repo is likely here.
I think the solution would simply be a change to the 3.8 documentation on the specific syntax for subtree port remapping.
<?xml version="1.0"?>
<rootBTCPP_format="4" >
<BehaviorTreeID="MoveBase">
<Fallbackname="move_base_fallback">
<CheckPosename="base_check_location"child_frame="base_link"pose="{base_loc}"/>
<BaseToGoalname="base_to_location"pose="{base_loc}"/>
</Fallback>
</BehaviorTree>
<BehaviorTreeID="HomeBaseModularFailing">
<Sequencename="home_base_modular">
<SetBlackboardoutput_key="base_home_loc"value="map;-0.5468;-1.4370;0;0;0;0.1942;0.9809"/>
<SubTreeID="MoveBase"base_loc="{base_home_loc}"/>
</Sequence>
</BehaviorTree>
<BehaviorTreeID="HomeBaseModularPassing">
<Sequencename="home_base_modular">
<SetBlackboardoutput_key="base_home_loc"value="map;-0.5468;-1.4370;0;0;0;0.1942;0.9809"/>
<SubTreeID="MoveBase"base_loc="base_home_loc"/>
</Sequence>
</BehaviorTree>
<BehaviorTreeID="HomeBaseSingularPassing">
<Sequencename="home_base_singular">
<SetBlackboardoutput_key="base_home_loc"value="map;-0.5468;-1.4370;0;0;0;0.1942;0.9809"/>
<Fallbackname="move_base_fallback">
<CheckPosename="base_check_location"child_frame="base_link"pose="{base_home_loc}"/>
<BaseToGoalname="base_to_location"pose="{base_home_loc}"/>
</Fallback>
</Sequence>
</BehaviorTree>
<BehaviorTreeID="MainTree">
<Sequencename="test">
<!--<SubTree ID="HomeBaseModularFailing" />--><!-- Error Message: terminate called after throwing an instance of 'BT::RuntimeError' what(): CheckPose | error reading port [pose]:getInput() failed because the port [pose] remapped to BB [base_loc] was found,but its content was not initialized correctly--><!--<SubTree ID="HomeBaseSingularPassing" />-->
<SubTreeID="HomeBaseModularPassing" />
<!-- Fix found here: https://github.com/BehaviorTree/BehaviorTree.CPP/blob/v3.8/examples/t06_subtree_port_remapping.cpp ...and here: https://github.com/BehaviorTree/BehaviorTree.CPP/issues/173 ...but is contradicted in many other places: https://github.com/BehaviorTree/BehaviorTree.CPP/issues/44 https://www.behaviortree.dev/docs/3.8/tutorial-basics/tutorial_06_subtree_ports/ ...also, 'tree.subtrees' does not compile as subtrees is not a valid entity of tree.-->
</Sequence>
</BehaviorTree>
</root>
The text was updated successfully, but these errors were encountered:
Hello,
Many thanks for the amazing library and all your efforts.
I realise that as my observation is in 3.8 it will be low priority etc. but hopefully this helps someone else who may run into the same issue I did after following the documentation and spending sometime confused.
The 3.8 docs specify that the correct syntax for remapping a port ought to be
<SubTree ID="MoveRobot" target="{move_goal}"/>
however this fails (details on the error message in XML example below) and the correct syntax ought to be<SubTree ID="MoveRobot" target="move_goal"/>
.I came across the fix reading here and here. However, this is contradicted in many other places (eg.).
My own test example is below, including the errors seen and some notes, but the easiest test for checking within this repo is likely here.
I think the solution would simply be a change to the 3.8 documentation on the specific syntax for subtree port remapping.
The text was updated successfully, but these errors were encountered: