@@ -349,34 +349,34 @@ class NaughtyNav2Node : public BT::SyncActionNode
349
349
}
350
350
};
351
351
352
- TEST (SubTree, SubtreeIssue563 )
352
+ TEST (SubTree, SubtreeNav2_Issue563 )
353
353
{
354
354
static const char * xml_text = R"(
355
355
<root BTCPP_format="4" >
356
356
357
- <BehaviorTree ID="Tree1">
358
- <Sequence>
359
- <SetBlackboard output_key="the_message" value="hello world"/>
360
- <SubTree ID="Tree2" _autoremap="true"/>
361
- <SaySomething message="{reply}" />
362
- </Sequence>
363
- </BehaviorTree>
364
-
365
- <BehaviorTree ID="Tree2">
366
- <SubTree ID="Tree3" _autoremap="true"/>
367
- </BehaviorTree>
368
-
369
- <BehaviorTree ID="Tree3">
370
- <SubTree ID="Talker" _autoremap="true"/>
371
- </BehaviorTree>
372
-
373
- <BehaviorTree ID="Talker">
374
- <Sequence>
375
- <SaySomething message="{the_message}" />
376
- <Script code=" reply:='done' "/>
377
- <NaughtyNav2Node/>
378
- </Sequence>
379
- </BehaviorTree>
357
+ <BehaviorTree ID="Tree1">
358
+ <Sequence>
359
+ <SetBlackboard output_key="the_message" value="hello world"/>
360
+ <SubTree ID="Tree2" _autoremap="true"/>
361
+ <SaySomething message="{reply}" />
362
+ </Sequence>
363
+ </BehaviorTree>
364
+
365
+ <BehaviorTree ID="Tree2">
366
+ <SubTree ID="Tree3" _autoremap="true"/>
367
+ </BehaviorTree>
368
+
369
+ <BehaviorTree ID="Tree3">
370
+ <SubTree ID="Talker" _autoremap="true"/>
371
+ </BehaviorTree>
372
+
373
+ <BehaviorTree ID="Talker">
374
+ <Sequence>
375
+ <SaySomething message="{the_message}" />
376
+ <Script code=" reply:='done' "/>
377
+ <NaughtyNav2Node/>
378
+ </Sequence>
379
+ </BehaviorTree>
380
380
381
381
</root>)" ;
382
382
@@ -395,6 +395,49 @@ TEST(SubTree, SubtreeIssue563)
395
395
ASSERT_EQ (ret, NodeStatus::SUCCESS);
396
396
}
397
397
398
+ TEST (SubTree, SubtreeNav2_Issue724)
399
+ {
400
+
401
+ static const char * xml_text = R"(
402
+ <root BTCPP_format="4" >
403
+
404
+ <BehaviorTree ID="Tree1">
405
+ <Sequence>
406
+ <SubTreePlus ID="Tree2" ros_node="{ros_node}"/>
407
+ </Sequence>
408
+ </BehaviorTree>
409
+
410
+ <BehaviorTree ID="Tree2">
411
+ <SubTreePlus ID="Tree3" ros_node="{ros_node}"/>
412
+ </BehaviorTree>
413
+
414
+ <BehaviorTree ID="Tree3">
415
+ <SubTreePlus ID="Talker" ros_node="{ros_node}"/>
416
+ </BehaviorTree>
417
+
418
+ <BehaviorTree ID="Talker">
419
+ <Sequence>
420
+ <NaughtyNav2Node/>
421
+ </Sequence>
422
+ </BehaviorTree>
423
+
424
+ </root>)" ;
425
+
426
+ BehaviorTreeFactory factory;
427
+ factory.registerNodeType <NaughtyNav2Node>(" NaughtyNav2Node" );
428
+
429
+ factory.registerBehaviorTreeFromText (xml_text);
430
+
431
+ auto blackboard = BT::Blackboard::create ();
432
+ blackboard->set <std::string>(" ros_node" , " nav2_shouldnt_do_this" );
433
+
434
+ Tree tree = factory.createTree (" Tree1" , blackboard);
435
+
436
+ auto ret = tree.tickOnce ();
437
+ ASSERT_EQ (ret, NodeStatus::SUCCESS);
438
+ }
439
+
440
+
398
441
399
442
TEST (SubTree, SubtreeIssue592)
400
443
{
0 commit comments