diff --git a/tesseract_task_composer/planning/src/nodes/raster_motion_task.cpp b/tesseract_task_composer/planning/src/nodes/raster_motion_task.cpp index 60df0f2883a..f722ec625d6 100644 --- a/tesseract_task_composer/planning/src/nodes/raster_motion_task.cpp +++ b/tesseract_task_composer/planning/src/nodes/raster_motion_task.cpp @@ -459,10 +459,12 @@ TaskComposerNodeInfo::UPtr RasterMotionTask::runImpl(TaskComposerContext& contex TaskComposerFuture::UPtr future = executor.value().get().run(task_graph, context.problem, context.data_storage); future->wait(); - /** @todo Need to merge child context into parent */ + // Merge child context data into parent context + context.task_infos.mergeInfoMap(future->context->task_infos); + if (future->context->isAborted()) + context.abort(future->context->task_infos.getAbortingNode()); auto info_map = context.task_infos.getInfoMap(); - if (context.problem->dotgraph) { std::stringstream dot_graph; diff --git a/tesseract_task_composer/planning/src/nodes/raster_only_motion_task.cpp b/tesseract_task_composer/planning/src/nodes/raster_only_motion_task.cpp index ef1e1e70f68..c9b5e1a4651 100644 --- a/tesseract_task_composer/planning/src/nodes/raster_only_motion_task.cpp +++ b/tesseract_task_composer/planning/src/nodes/raster_only_motion_task.cpp @@ -366,8 +366,12 @@ TaskComposerNodeInfo::UPtr RasterOnlyMotionTask::runImpl(TaskComposerContext& co TaskComposerFuture::UPtr future = executor.value().get().run(task_graph, context.problem, context.data_storage); future->wait(); - auto info_map = context.task_infos.getInfoMap(); + // Merge child context data into parent context + context.task_infos.mergeInfoMap(future->context->task_infos); + if (future->context->isAborted()) + context.abort(future->context->task_infos.getAbortingNode()); + auto info_map = context.task_infos.getInfoMap(); if (context.problem->dotgraph) { std::stringstream dot_graph;